ES3025197T3 - Inter prediction method based on history-based motion vector, and device therefor - Google Patents

Inter prediction method based on history-based motion vector, and device therefor Download PDF

Info

Publication number
ES3025197T3
ES3025197T3 ES19850303T ES19850303T ES3025197T3 ES 3025197 T3 ES3025197 T3 ES 3025197T3 ES 19850303 T ES19850303 T ES 19850303T ES 19850303 T ES19850303 T ES 19850303T ES 3025197 T3 ES3025197 T3 ES 3025197T3
Authority
ES
Spain
Prior art keywords
ctu
hmvp
current
candidate
information
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
ES19850303T
Other languages
English (en)
Inventor
Naeri Park
Junghak Nam
Hyeongmoon Jang
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
LG Electronics Inc
Original Assignee
LG Electronics Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by LG Electronics Inc filed Critical LG Electronics Inc
Application granted granted Critical
Publication of ES3025197T3 publication Critical patent/ES3025197T3/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/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/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
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • 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/423Methods 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 characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • 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)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)

Abstract

Un método de decodificación de imágenes según la presente invención comprende los pasos de: derivar un búfer de predicción de vector de movimiento basado en historial (HMVP) para un bloque actual; derivar información de movimiento del bloque actual sobre la base de un candidato HMVP incluido en el búfer HMVP; generar muestras de predicción para el bloque actual sobre la base de la información de movimiento; y generar muestras de restauración sobre la base de las muestras de predicción, en donde el búfer HMVP se inicializa cuando se procesa una primera CTU de una fila de CTU, en la que se posiciona una CTU actual que incluye el bloque actual. (Traducción automática con Google Translate, sin valor legal)

Description

DESCRIPCIÓN
Método de inter-predicción basado en el vector de movimiento basado en historial, y dispositivo para el mismoCampo técnico
La presente divulgación se refiere a una tecnología de codificación de imágenes y, más particularmente, a un procedimiento y aparato de interpredicción basados en un vector de movimiento basado en historial.
Antecedentes
Recientemente, la demanda de imagen/vídeo de alta resolución y alta calidad, tal como imagen/vídeo de Ultra alta Definición (UHD) de 4K u 8K está aumentando en diversos campos. A medida que la resolución o calidad de imagen/vídeo se hace más alta, se transmite relativamente más cantidad de información o bits que en el caso de 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 costes de transmisión y almacenamiento aumentan fácilmente. Además, están creciendo intereses y demandas de contenidos de realidad virtual (VR) y de realidad artificial (AR), y medios inmersivos tales como hologramas; y también está creciendo 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, tales 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 imágenes/vídeos de alta calidad y alta resolución que muestran diversas características como se ha descrito anteriormente
El documento ("CE4-related: History-based Motion Vector Prediction", no. JVET-K0104) describe un método de MVP basada en historial (HMVP). En el documento se describe que un candidato de HMVP se define como la información de movimiento de un bloque codificado previamente, se mantiene una tabla con múltiples candidatos de HMVP durante el proceso de codificación/decodificación, la tabla se vacía cuando se encuentra un nuevo segmento, y siempre que haya un bloque intercodificado, la información de movimiento asociada se añade a la última entrada de la tabla como un nuevo candidato de HMVP.
Compendio
Un objeto de la presente divulgación es proporcionar un método y un aparato para aumentar la eficiencia de codificación de imágenes.
Otro objeto de la presente divulgación es proporcionar un método y aparato de interpredicción eficiente. Otro objeto más de la presente divulgación es proporcionar un método y aparato para obtener un vector de movimiento basado en historial.
Otro objeto más de la presente divulgación es proporcionar un método y aparato para obtener de manera eficiente un candidato de predicción de vectores de movimiento basada en historial (HMVP).
Otro objeto más de la presente divulgación es proporcionar un método y aparato para inicializar eficientemente una memoria intermedia de HMVP.
La invención está definida por las reivindicaciones adjuntas.
Según una realización de la presente divulgación, es posible aumentar la eficiencia de compresión de imagen/vídeo global.
Según una realización de la presente divulgación, es posible reducir la cantidad de datos transmitidos requeridos para el procesamiento residual a través de la interpredicción eficiente.
Según una realización de la presente divulgación, es posible gestionar de manera eficiente la memoria intermedia de HMVP.
Según una realización de la presente divulgación, 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 de la presente divulgación, es posible obtener de manera eficiente el vector de movimiento para la interpredicción.
Breve descripción de los dibujos
La FIG. 1 es un diagrama que muestra esquemáticamente un ejemplo de un sistema de codificación de vídeo/imagen al que se puede aplicar la presente invención.
La FIG. 2 es un diagrama que explica esquemáticamente una configuración de un aparato de codificación de vídeo/imagen al que se puede aplicar la presente divulgación.
La FIG. 3 es un diagrama que explica esquemáticamente una configuración de un aparato de decodificación de vídeo/imagen al que se puede aplicar la presente divulgación.
La FIG.4 es un diagrama que muestra un ejemplo de un procedimiento de codificación de vídeo/imagen basado en interpredicción.
La FIG. 5 es un diagrama que muestra un ejemplo de un método de decodificación de vídeo/imagen basado en interpredicción.
La FIG. 6 es un diagrama que muestra a modo de ejemplo un procedimiento de interpredicción.
La FIG. 7 es un diagrama que muestra a modo de ejemplo bloques vecinos espaciales usados para obtener un candidato de información de movimiento en un modo de fusión o AMVP convencional.
La FIG. 8 es un diagrama que muestra esquemáticamente un ejemplo de un procedimiento de decodificación basado en candidatos de HMVP.
La FIG. 9 es un diagrama que muestra a modo de ejemplo una actualización de tabla de HMVP según una regla de FIFO, y la FIG. 10 es un diagrama que muestra a modo de ejemplo una actualización de la tabla de HMVP según una regla de FIFO limitada.
La FIG. 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 FIG. 12 es un diagrama que muestra a modo de ejemplo un problema cuando se aplica un método de HMVP general en consideración al procesamiento paralelo.
La FIG. 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 de la presente divulgación.
La FIG. 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 de la presente divulgación.
La FIG. 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 de la presente divulgación.
La FIG. 16 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 más de la presente divulgación.
La FIG. 17 es un diagrama que muestra a modo de ejemplo el método de gestión de memoria intermedia de HMVP.
Las FIGS. 18 y 19 son diagramas que muestran esquemáticamente un ejemplo de un método de codificación de vídeo/imagen y componentes relacionados que incluyen el método de interpredicción según una realización de la presente divulgación.
Las FIGS. 20 y 21 son diagramas que muestran esquemáticamente un ejemplo de un método de decodificación de imágenes y componentes relacionados que incluye el método de interpredicción según una realización de la presente divulgación.
La FIG. 22 es un diagrama que muestra un ejemplo de un sistema de transmisión en flujo continuo de contenidos al que se puede aplicar la invención descrita en este documento.
Descripción de realizaciones a modo de ejemplo
Dado que la presente invención puede cambiarse de diversas maneras y tener diversas realizaciones, las realizaciones específicas se ilustrarán en los dibujos y se describirán en detalle.
Al mismo tiempo, las configuraciones respectivas en los dibujos descritos en la presente divulgación se muestran independientemente por conveniencia de explicación de las diferentes funciones características, y no significa que las configuraciones respectivas se implementen mediante hardware separado o software separado. Por ejemplo, dos o más configuraciones de las configuraciones respectivas se pueden combinar para formar una configuración, o una configuración se puede dividir en una pluralidad de configuraciones. Las realizaciones en las que las configuraciones respectivas están integradas y/o separadas también están incluidas en el alcance de la presente divulgación sin apartarse de la materia objeto de la presente divulgación.
En lo sucesivo, se describirá con más detalle una realización preferida de la presente divulgación haciendo referencia a los dibujos adjuntos. En lo sucesivo, se usan los mismos números de referencia para los mismos componentes en los dibujos, y se pueden omitir descripciones redundantes de los mismos componentes.
La FIG. 1 ilustra un ejemplo de un sistema de codificación de vídeo/imagen al que se puede aplicar la presente invención.
Haciendo referencia a la FIG. 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 información o datos de vídeo/imagen codificados al dispositivo de recepción a través de un medio o red de almacenamiento digital en forma de un archivo o de transmisión en flujo continuo.
El dispositivo fuente puede incluir una fuente de vídeo, un aparato de codificación y un transmisor. El dispositivo de recepción puede incluir un receptor, un aparato de decodificación y un renderizador. 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 renderizador puede incluir una pantalla, y la pantalla se puede configurar como un dispositivo separado o como 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 de 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 video/imagen puede incluir, por ejemplo, una o más cámaras, archivos de video/imagen que incluyen video/imágenes capturadas 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 video/imagen puede ser sustituido por un proceso de generación de datos relacionados.
El aparato de codificación puede codificar vídeo/imagen de entrada. El aparato de codificación puede realizar una serie de procedimientos tales como predicción, transformación y cuantificación para la eficiencia de compresión y codificación. Los datos codificados (información de vídeo/imagen codificada) pueden producir en forma de un flujo de bits.
El transmisor puede transmitir la información de imagen/imagen codificada o datos producidos en forma de un flujo de bits al receptor del dispositivo de recepción a través de un medio de almacenamiento digital o de una red en forma de un archivo o de transmisión en flujo continuo. El medio de almacenamiento digital puede incluir diversos medios de almacenamiento tales como USB, SD, CD, DVD, Blu-ray, HDD, SSD y similares. El transmisor puede incluir un elemento para generar un archivo multimedia a través de un formato de archivo predeterminado y puede incluir un elemento para la transmisión en flujo continuo 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 con funcionamiento del aparato de codificación.
El renderizador puede renderizar el vídeo/imagen decodificado. El vídeo/imagen renderizados se pueden mostrar a través de la pantalla.
Este documento se refiere a la codificación de vídeo/imagen. Por ejemplo, el método/realización divulgado en este documento se puede aplicar al método divulgado en el estándar de codificación de vídeo versátil (VVC), el estándar EVC (codificación de vídeo esencial), el estándar AOMedia Video 1 (AV1), la 2a generación de estándar de codificación de vídeo de audio (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.).
Este documento presenta diversas realizaciones de codificación de vídeo/imagen, y las realizaciones se pueden realizar en combinación entre sí a menos que se mencione lo contrario.
En este documento, un vídeo puede referirse a una serie de imágenes a lo largo del tiempo. Una imagen se refiere generalmente a la unidad que representa una imagen en un fotograma 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 consistir en uno o más segmentos/teselas. Una imagen puede consistir en uno o más grupos de teselas. Un grupo de teselas puede incluir una o más teselas. Un brick puede representar una región rectangular de filas de CTU dentro de una tesela en una imagen. Una tesela se puede dividir en múltiples bricks, cada uno de los cuales consiste en una o más filas de CTU dentro de la tesela. Una tesela que no está dividida en múltiples bricks también se puede denominar brick. Un escaneo de bricks es un ordenamiento secuencial específico de CTU que dividen una imagen en donde las CTU se ordenan consecutivamente en un escaneo de trama de CTU en un brick, los bricks dentro de una tesela se ordenan consecutivamente en un escaneo de trama de los bricks de la tesela, y las teselas en una imagen se ordenan consecutivamente en un escaneo 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 teselas es una región rectangular de CTU que tiene una altura igual a la altura de la imagen y una anchura especificada por los elementos sintácticos en el conjunto de parámetros de imagen. La fila de tesela es una región rectangular de CTU que tiene una altura especificada por elementos sintácticos en el conjunto de parámetros de imagen y una anchura igual a la anchura de la imagen. Un escaneo de teselas es un ordenamiento secuencial especificado de CTU que dividen una imagen en donde las CTU se ordenan consecutivamente en un escaneo de trama de CTU en una tesela, mientras que las teselas en una imagen se ordenan consecutivamente en un escaneo de trama de las teselas de la imagen. Un segmento incluye un número entero de bricks de una imagen que puede estar contenida exclusivamente en una única unidad NAL. Un segmento puede consistir en un cierto número de teselas completas o solamente una secuencia consecutiva de bricks completos de una tesela. En este documento, un grupo de teselas y un segmento se pueden utilizar indistintamente. Por ejemplo, en este documento, una cabecera de grupo de teselas/grupo de teselas también se puede denominar segmento/ cabecera de segmento.
Un píxel o un pel puede significar la unidad más pequeña que constituye una fotografía (o imagen). Además, "muestra" se puede utilizar como un término correspondiente a un píxel. Una muestra puede representar generalmente un píxel o un valor de un píxel, y puede representar solo un píxel/ valor de píxel de 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 de luma y dos bloques de croma (por ejemplo, cb, cr). La unidad puede usarse indistintamente con términos tales como bloque o área en algunos casos. En un caso general, un bloque MxN puede incluir muestras (o matrices de muestras) o un conjunto (o matriz) de coeficientes de transformada de M columnas y N filas.
En este documento, el signo "/" y "," debe interpretarse para indicar "y/o". Por ejemplo, la expresión "A/B" puede significar "A y/o B". Además, "A, B" puede significar "A y/o B". Además, "A/B/C" puede significar "al menos uno de A, B y/o C". Además, "A/B/C" puede significar "al menos uno de A, B y/o C".
Además, en el documento, el término "o" debe interpretarse para indicar "y/o". Por ejemplo, la expresión "A o B" puede comprender 1) solo A, 2) solo B y/o 3) tanto A como B. En otras palabras, el término "o" en este documento debe interpretarse que indica "adicional o alternativamente".
La FIG. 2 ilustra una estructura de un aparato de codificación de vídeo/imagen al que se puede aplicar la presente invención. En lo que sigue, un aparato de codificación de vídeo puede incluir un aparato de codificación de imágenes.
Con referencia a la FIG. 2, el aparato 200 de codificación incluye un particionador 210 de imágenes, un predictor 220, un procesador residual 230 y un codificador 240 de entropía, un sumador 250, un filtro 260 y una memoria 270. El predictor 220 puede incluir un interpredictor 221 y un intrapredictor 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 se puede denominarse reconstructor o generador de bloques reconstruidos. El particionador 210 de imagen, el predictor 220, el procesador 230 residual, el codificador 240 de entropía, el sumador 250 y el filtro 260 se pueden configurar mediante al menos un componente de hardware (por ejemplo, un conjunto de chips o procesador de 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 un componente interno/externo.
El particionador 210 de imagen puede dividir una imagen de entrada (o una imagen o un fotograma) introducida al aparato 200 de codificación 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 (QBTTT) a partir de una unidad de árbol de codificación (CTU) o una unidad de codificación más grande (LCU). Por ejemplo, una unidad de codificación puede dividirse en una pluralidad de unidades de codificación de una profundidad más profunda basándose en una estructura de árbol cuaternario, una estructura de árbol binario y/o una estructura ternaria. En este caso, por ejemplo, la estructura de árbol cuaternario puede aplicarse primero y la estructura de árbol binario y/o la estructura ternaria pueden aplicarse más tarde. Alternativamente, la estructura de árbol binario se puede aplicar primero. El procedimiento de codificación según este documento puede realizarse 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 la 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 profundidad más profunda y puede usarse una unidad de codificación que tenga un tamaño óptimo como la unidad de codificación final. En este caso, el procedimiento de codificación puede incluir un procedimiento de predicción, transformación y reconstrucción, que se describirá más adelante. Como otro ejemplo, el procesador puede incluir además un predictor (PU) o una unidad de transformada (TU). En este caso, el predictor y la unidad de transformada pueden separar o dividirse de la unidad de codificación final mencionada anteriormente. El predictor puede ser una unidad de predicción de muestra, y la unidad de transformada puede ser una unidad para obtener un coeficiente de transformada y/o una unidad para obtener una señal residual del coeficiente de transformada.
La unidad se puede utilizar indistintamente con términos tales como bloque o área en algunos casos. 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 representar generalmente 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 puede usarse como un término correspondiente a una fotografía (o imagen) para un píxel o un pel.
En el aparato 200 de codificación, una señal de predicción (bloque predicho, matriz de muestras de predicción) producida desde el interpredictor 221 o el intrapredictor 222 se resta de una señal de imagen de entrada (bloque original, matriz de muestras originales) para generar un bloque residual de señal residual, matriz de muestras residuales), y la señal residual generada se transmite al transformador 232. En este caso, como se muestra, una unidad para restar una señal de predicción (bloque predicho, matriz de muestras de predicción) de la señal de imagen de entrada (bloque original, matriz de muestras originales) en el codificador 200 puede denominarse restador 231. El predictor puede realizar la predicción en 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 la intrapredicción o la interpredicción se aplican en un bloque actual o en una base de 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 de modo de predicción, y transmitir la información generada al codificador 240 de entropía. La información sobre la predicción se puede codificar en el codificador 240 de entropía y producirse en forma de un flujo de bits.
El intrapredictor 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 intrapredicció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 de DC y un modo plano. 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 meramente un ejemplo, se pueden usar más o menos modos de predicción direccionales dependiendo de un ajuste. El intrapredictor 222 puede determinar el modo de predicción aplicado al bloque actual usando un modo de predicción aplicado a un bloque vecino.
El interpredictor 221 puede obtener 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, con el fin de reducir la cantidad de información de movimiento transmitida en el modo de interpredicción, la información de movimiento se puede predecir en unidades de bloques, subbloques o muestras basándose en la correlación de información de movimiento entre el bloque vecino y el bloque actual. La información de movimiento puede incluir un vector de movimiento y un índice de imagen de referencia. La información de movimiento puede incluir además información de dirección de interpredicción (predicción L0, predicción L1, predicción Bi, etc.). En el caso de interpredicción, el bloque vecino puede incluir un bloque vecino espacial presente en la imagen actual y un bloque vecino temporal presente en la imagen de referencia. La imagen de referencia que incluye el bloque de referencia y la imagen de referencia que incluye el bloque vecino temporal pueden ser iguales o diferentes. El bloque vecino temporal puede denominarse bloque de referencia coubicado, una CU coubicada (colCU) y similares, y la imagen de referencia que incluye el bloque vecino temporal puede denominarse imagen coubicada (colPic). Por ejemplo, el interpredictor 221 puede configurar una lista de candidatos de información de movimiento basándose en bloques vecinos y generar información que indica qué candidato se usa para obtener un vector de movimiento y/o un índice de imagen de referencia del bloque actual. La interpredicción se puede realizar basándose en diversos modos de predicción. Por ejemplo, en el caso de un modo de omisión 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 omisión, a diferencia del modo de fusión, la señal residual puede no ser transmitida. En el caso del modo de predicción de vectores de movimiento (MVP), el vector de movimiento del bloque vecino se puede utilizar como un predictor de vector de movimiento y el vector de movimiento del bloque actual se puede indicar señalando una diferencia de vector de movimiento.
El predictor 220 puede generar una señal de predicción basándose en diversos métodos de predicción descritos a continuación. Por ejemplo, el predictor puede no solo aplicar intrapredicción o interpredicción para predecir un bloque, sino también aplicar simultáneamente tanto intrapredicción como interpredicción. Esto se puede denominar inter e intrapredicción combinada (CIIP). Además, el predictor puede basarse en un modo de predicción de copia intrabloque (IBC) o un modo de paleta para la predicción de un bloque. El modo de predicción de IBC o el modo de paleta se pueden utilizar para la codificación de imagen/vídeo de contenido de un juego o similar, por ejemplo, la codificación de contenido de pantalla (SCC). La IBC realiza básicamente predicción en la imagen actual, pero se puede realizar de manera similar a interpredicción en donde se deriva un bloque de referencia en la imagen actual. Es decir, la IBC puede usar al menos una de las técnicas de interpredicción descritas en este documento. El modo de paleta puede considerarse como un ejemplo de intracodificación o intrapredicción. Cuando se aplica el modo de paleta, un valor de muestra dentro de una imagen puede señalizarse basándose en información sobre la tabla de paleta y el índice de paleta.
La señal de predicción generada por el predictor (incluyendo el interpredictor 221 y/o el intrapredictor 222) se puede utilizar 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 de Karhunen-Loeve (KLT), una transformada basada en gráfico (GBT) o una transformada condicionalmente no lineal (CNT). En este caso, la GBT significa transformada obtenida de un gráfico cuando la información de relación entre píxeles se representa por el gráfico. La CNT se refiere a la transformada generada basándose en una señal de predicción generada usando todos los píxeles reconstruidos previamente. Además, el proceso de transformación puede aplicarse a bloques de píxeles cuadrados que tienen el mismo tamaño o puede aplicarse a bloques que tienen un tamaño variable en lugar de cuadrado.
El cuantificador 233 puede cuantificar los coeficientes de transformada y transmitirlos al codificador 240 de entropía y el codificador 240 de entropía puede codificar la señal cuantificada (información sobre los coeficientes de transformada cuantificados) y producir 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 de vector unidimensional basándose en un orden de escaneo de coeficientes y generar información sobre los coeficientes de transformada cuantificados basándose en los coeficientes de transformada cuantificados en la forma de vector unidimensional. Se puede generar información sobre coeficientes de transformada. El codificador 240 de entropía puede realizar diversos métodos de codificación tales como, por ejemplo, exponencial de Golomb, codificación de longitud variable adaptativa al contexto (CAVLC), codificación aritmética binaria adaptativa al contexto (CABAC) y similares. El codificador 240 de entropía puede codificar la información necesaria para la reconstrucción de vídeo/imagen distinta de los coeficientes de transformada cuantificados (por ejemplo, valores de elementos sintácticos, 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 también información de restricción general. En este documento, la información y/o los elementos sintácticos transmitidos/señalizados desde el aparato de codificación al aparato de decodificación se pueden incluir en la información de vídeo/imagen. La información de vídeo/imagen se puede codificar a través del procedimiento de codificación descrito anteriormente e incluirse en el flujo de bits. El flujo de bits puede transmitirse a través de una red o puede almacenarse en un medio de almacenamiento digital. La red puede incluir una red de radiodifusión y/o una red de comunicación, y el medio de almacenamiento digital puede incluir diversos medios de almacenamiento tales como USB, SD, CD, DVD, Blu-ray, HDD, SSD y similares. Un transmisor (no mostrado) que transmite una señal producida desde el codificador 240 de entropía y/o desde una unidad de almacenamiento (no mostrada) que almacena la señal puede incluirse como elemento interno/externo del aparato 200 de codificación y, alternativamente, el transmisor puede estar incluido en el codificador 240 de entropía.
Los coeficientes de transformada cuantificados producidos desde el cuantificador 233 se pueden utilizar 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 transformación 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 con la señal de predicción producida desde el interpredictor 221 o desde el intrapredictor 222 para generar una señal reconstruida (imagen reconstruida, bloque reconstruido, matriz de muestras reconstruidas). Si no hay ningún residuo para el bloque que va a procesarse, tal como un caso en donde se aplica el modo de omisión, el bloque predicho se puede utilizar como el bloque reconstruido. El sumador 250 puede denominarse reconstructor o generador de bloques reconstruidos. La señal reconstruida generada se puede utilizar para la intrapredicción de un siguiente bloque que va a procesarse en la imagen actual y se puede utilizar para la interpredicción de una imagen siguiente a través del filtrado tal como se describe a continuación.
Al mismo tiempo, el mapeo de luma con ajuste de escala de croma (LMCS) se puede aplicar durante la codificación y/o la reconstrucción de imágenes.
El filtro 260 puede mejorar la calidad de imagen subjetiva/objetiva aplicando filtrado a la señal reconstruida. Por ejemplo, el filtro 260 puede generar una imagen reconstruida modificada aplicando diversos métodos de filtrado a la imagen reconstruida y almacenar la imagen reconstruida modificada en la memoria 270, específicamente, una DPB de la memoria 270. Los diversos métodos de filtrado pueden incluir, por ejemplo, filtrado de desbloqueo, un desplazamiento adaptativo de muestra, un filtro de bucle adaptativo, un filtro bilateral y similares. El filtro 260 puede generar diversa información relacionada con el filtrado y transmitir la información generada al codificador 240 de entropía como se describe más adelante en la descripción de cada método de filtrado. La información relacionada con el filtrado puede ser codificada por el codificador 240 de entropía y producida en forma de un flujo de bits.
La imagen reconstruida modificada transmitida a la memoria 270 se puede utilizar como la imagen de referencia en el interpredictor 221. Cuando la interpredicción se aplica a través del aparato de codificación, puede evitarse el desajuste de predicción entre el aparato 200 de codificación y el aparato de decodificación y puede mejorarse la eficiencia de codificación.
La DPB de la memoria 270 DPB puede almacenar la imagen reconstruida modificada para su uso como una imagen de referencia en el interpredictor 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 se han reconstruido. La información de movimiento almacenada se puede transmitir al interpredicor 221 y utilizar como la información de movimiento del bloque vecino espacial o como la información de movimiento del bloque vecino temporal. La memoria 270 puede almacenar muestras reconstruidas de bloques reconstruidos en la imagen actual y puede transferir las muestras reconstruidas al intrapredictor 222.
La FIG. 3 ilustra una estructura de un aparato de decodificación de vídeo/imagen al que se puede aplicar la presente invención.
Con referencia a la FIG. 3, el aparato 300 de decodificación puede incluir un decodificador 310 de entropía, un procesador residual 320, un predictor 330, un sumador 340, un filtro 350 y una memoria 360. El predictor 330 puede incluir un interpredictor 331 y un intrapredictor 332. El procesador residual 320 puede incluir un descuantificador 321 y un transformador inverso 321. El decodificador 310 de entropía, el procesador residual 320, el predictor 330, el sumador 340 y el filtro 350 se pueden configurar mediante un componente de hardware (por ejemplo, un conjunto de chips de 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 300 de decodificación 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 FIG. 2. Por ejemplo, el aparato 300 de decodificación puede obtener unidades/bloques basándose en información relacionada con partición de bloques obtenida a partir del flujo de bits. El aparato 300 de decodificación puede realizar una decodificación usando un procesador aplicado en el aparato de codificación. Por lo tanto, el procesador de decodificación puede ser una unidad de codificación, por ejemplo, y la unidad de codificación puede dividirse según una estructura de árbol cuaternario, una estructura de árbol binario y/o una estructura de árbol ternario 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 obtenerse de la unidad de codificación. La señal de imagen reconstruida decodificada y producida a través del aparato 300 de decodificación se puede reproducir a través de un aparato de reproducción.
El aparato 300 de decodificación puede recibir una señal producida desde el aparato de codificación de la FIG.
2 en forma de un flujo de bits, y la señal recibida se puede decodificar a través del decodificador 310 de entropía. Por ejemplo, el decodificador 310 de entropía puede analizar el flujo de bits para obtener información (por ejemplo, información de vídeo/imagen) necesaria para la reconstrucción de imágenes (o reconstrucción de fotografías). La información de vídeo/imagen puede incluir además información sobre diversos conjuntos de parámetros, tales como un conjunto de parámetros de adaptación (APS), un conjunto de parámetros de imagen (PPS), un conjunto de parámetros de secuencia (SPS) o un conjunto de parámetros de vídeo (VPS). Además, la información de vídeo/imagen puede incluir además información de restricción general. El aparato de decodificación puede decodificar además la imagen basándose en la información sobre el conjunto de parámetros y/o la información de restricción general. La información señalizada/recibida y/o los elementos sintácticos descritos más adelante en este documento pueden decodificarse y obtenerse a partir del flujo de bits. Por ejemplo, el decodificador 310 de entropía decodifica la información en el flujo de bits basándose en un método de codificación tal como la codificación exponencial de Golomb, CAVLC o CABAC, y produce elementos sintácticos requeridos para la reconstrucción de imágenes y valores cuantificados de coeficientes de transformada para el residuo. Más específicamente, el método de decodificación de entropía de CABAC puede recibir un bin correspondiente a cada elemento sintáctico en el flujo de bits, determinar un modelo de contexto usando una información de elemento sintáctico objetivo de decodificación, decodificar información de un bloque objetivo de decodificación o la información de un símbolo/bin decodificado en una etapa anterior, y realizar una decodificación aritmética en el bin prediciendo una probabilidad de aparición de un bin según el modelo de contexto determinado, y generar un símbolo correspondiente al valor de cada elemento sintáctico. En este caso, el método de decodificación de entropía de CABAC puede actualizar el modelo de contexto usando la información del símbolo/bin decodificado para un modelo de contexto de un siguiente símbolo/bin después de determinar el modelo de contexto. La información relacionada con la predicción entre la información decodificada por el decodificador 310 de entropía se puede proporcionar al predictor (el interpredictor 332 y el intrapredictor 331), y el valor residual en el que se realizó la decodificación de entropía en el decodificador 310 de entropía, es decir, los coeficientes de transformada cuantificados y la información de parámetros relacionados, se puede introducir en el procesador residual 320. El procesador residual 320 puede obtener la señal residual (el bloque residual, las muestras residuales, la matriz de muestras residuales). Además, la información sobre el filtrado entre la información decodificada por el decodificador 310 de entropía puede proporcionarse al filtro 350. Al mismo tiempo, un receptor (no mostrado) para recibir una señal producida desde el aparato de codificación puede configurarse además como un elemento interno/externo del aparato 300 de decodificación, o el receptor puede ser un componente del decodificador 310 de entropía. Al mismo tiempo, el aparato de decodificación según este documento puede denominarse aparato de decodificación de vídeo/imagen/imagen, y el aparato de decodificación puede clasificarse en un decodificador de información (decodificador de información de vídeo/imagen/fotografía) y un decodificador de muestra (decodificador de muestra de vídeo/imagen/fotografía). El decodificador de información puede incluir el decodificador 310 de entropía, y el decodificador de muestras puede incluir al menos uno del descuantificador 321, el transformador inverso 322, el sumador 340, el filtro 350, la memoria 360, el interpredictor 332 y el intrapredictor 331.
El descuantificador 321 puede descuantificar los coeficientes de transformada cuantificados y producir los coeficientes de transformada. El descuantificador 321 puede reorganizar los coeficientes de transformada cuantificados en forma de una forma de bloque bidimensional. En este caso, la reorganización puede realizarse basándose en el orden de escaneo de coeficientes realizado en el aparato de codificación. El descuantificador 321 puede realizar la descuantificación en los coeficientes de transformada cuantificados usando un parámetro de cuantificación (por ejemplo, información de tamaño de etapa de cuantificación) y obtener coeficientes de transformada.
El transformador inverso 322 transforma inversamente los coeficientes de transformada para obtener una señal residual (bloque residual, matriz de muestras residuales).
El predictor puede realizar la predicción en 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 intrapredicción o interpredicción al bloque actual basándose en la información sobre la predicción producida desde el decodificador 310 de entropía y puede determinar un modo de intrapredicción/interpredicción específico.
El predictor 320 puede generar una señal de predicción basándose en diversos métodos de predicción descritos a continuación. Por ejemplo, el predictor puede no solo aplicar intrapredicción o interpredicción para predecir un bloque, sino también aplicar simultáneamente intrapredicción e interpredicción. Esto puede denominarse inter e intrapredicción combinada (CIIP). Además, el predictor puede basarse en un modo de predicción de copia intrabloque (IBC) o un modo de paleta para la predicción de un bloque. El modo de predicción de IBC o el modo de paleta se pueden utilizar para la codificación de imagen/vídeo de contenido de un juego o similar, por ejemplo, la codificación de contenido de pantalla (SCC). La IBC realiza básicamente predicción en la imagen actual, pero puede realizarse de manera similar a la interpredicción en cuanto a que se deriva un bloque de referencia en la imagen actual. Es decir, la IBC puede usar al menos una de las técnicas de interpredicción descritas en este documento. El modo de paleta puede considerarse como un ejemplo de intracodificación o intrapredicción. Cuando se aplica el modo de paleta, un valor de muestra dentro de una imagen puede señalizarse basándose en información sobre la tabla de paleta y el índice de paleta.
El intrapredictor 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 intrapredicción, los modos de predicción pueden incluir una pluralidad de modos no direccionales y una pluralidad de modos direccionales. El intrapredictor 331 puede determinar el modo de predicción aplicado al bloque actual usando un modo de predicción aplicado a un bloque vecino.
El interpredictor 332 puede obtener 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 interpredicción, la información de movimiento puede predecirse en unidades de bloques, subbloques o muestras basándose en la correlación de información de movimiento entre el bloque vecino y el bloque actual. La información de movimiento puede incluir un vector de movimiento y un índice de imagen de referencia. La información de movimiento puede incluir además información de dirección de interpredicción (predicción L0, predicción L1, predicción Bi, etc.). En el caso de interpredicció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 interpredictor 332 puede configurar una lista de candidatos de información de movimiento basándose en bloques vecinos y obtener 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 interpredicción puede realizarse basándose en diversos modos de predicción, y la información sobre la predicción puede incluir información que indica un modo de interpredicción para el bloque actual.
El sumador 340 puede generar una señal reconstruida (imagen reconstruida, bloque reconstruido, matriz de muestras reconstruidas) sumando la señal residual obtenida a la señal de predicción (bloque predicho, matriz de muestras predicha) producida desde el predictor (incluyendo el interpredictor 332 y/o el intrapredictor 331). Si no hay ningún residuo para el bloque que se va a procesar, tal como cuando se aplica el modo de omisión, el bloque predicho se puede usar como el bloque reconstruido.
El sumador 340 puede denominarse reconstructor o generador de bloques reconstruidos. La señal reconstruida generada se puede utilizar para la intrapredicción de un siguiente bloque que va a procesarse en la imagen actual, se puede producir a través de filtrado tal como se describe a continuación, o se puede utilizar para la intrapredicción de una siguiente imagen.
Al mismo tiempo, el mapeo de luma con el ajuste de escala de croma (LMCS) puede aplicarse en el proceso de decodificación de imágenes.
El filtro 350 puede mejorar la calidad de imagen subjetiva/objetiva aplicando filtrado a la señal reconstruida. Por ejemplo, el filtro 350 puede generar una imagen reconstruida modificada aplicando diversos métodos de filtrado a la imagen reconstruida y almacenar la imagen reconstruida modificada en la memoria 360, específicamente, una DPB de la memoria 360. Los diversos métodos de filtrado pueden incluir, por ejemplo, filtrado de desbloqueo, un desplazamiento adaptativo de muestra, un filtro de bucle adaptativo, un filtro bilateral y similares.
La imagen reconstruida (modificada) almacenada en la DPB de la memoria 360 se puede utilizar como una imagen de referencia en el interpredictor 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 se han reconstruido. La información de movimiento almacenada se puede transmitir al interpredictor 260 para ser utilizada como la información de movimiento del bloque vecino espacial o como la información de movimiento del bloque vecino temporal. La memoria 360 puede almacenar muestras reconstruidas de bloques reconstruidos en la imagen actual y transferir las muestras reconstruidas al intrapredictor 331.
En la presente divulgación, las realizaciones descritas en el filtro 260, el interpredictor 221 y el intrapredictor 222 del aparato 200 de codificación pueden ser iguales o aplicarse respectivamente para corresponder al filtro 350, el interpredictor 332 y el intrapredictor 331 del aparato 300 de decodificación. Lo mismo puede aplicarse también a la unidad 332 y al intrapredictor 331 .
Como se ha descrito anteriormente, al realizar la codificación de vídeo, se realiza la predicción para aumentar la eficiencia de 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. En este caso, el bloque predicho incluye las muestras de predicción en un dominio espacial (o dominio de píxeles). El bloque predicho se obtiene de manera idéntica en el aparato de codificación y el aparato de decodificación, y el aparato de codificación pueden 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 de este modo la eficiencia de codificación de imágenes. El aparato de decodificación puede obtener 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 se puede generar a través de 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 obteniendo el bloque residual entre el bloque original y el bloque predicho, obteniendo coeficientes de transformada realizando el procedimiento de transformada para las muestras residuales (matriz de muestras residuales) incluidas en el bloque residual, y obteniendo coeficientes de transformada cuantificados realizando el procedimiento de cuantificación para los coeficientes de transformada. En este caso, la información residual puede incluir información tal como información de valor, información de posición, técnica de transformación, núcleo de transformación 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 obtener las muestras residuales (o bloques residuales). El aparato de decodificación puede generar una imagen reconstruida basándose en el bloque predicho y en el bloque residual. El aparato de codificación también puede descuantificar/transformar inversamente los coeficientes de transformada cuantificados para referencia para la interpredicción de la postimagen para obtener el bloque residual, y generar la imagen reconstruida basándose en el mismo.
Si se aplica la interpredicción, los predictores del aparato de codificación/aparato de decodificación pueden obtener la muestra de predicción realizando la interpredicción en unidades de bloques. La interpredicción puede ser una predicción obtenida de manera que dependa de elementos de datos (por ejemplo, valores de muestra, información de movimiento o similares) de la imagen(s) distintas de la imagen actual. Si la interpredicció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 interpredicció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 una información de tipo de interpredicción (predicción L0, predicción L1, predicción Bi o similares). Si se aplica la interpredicció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 coubicado, una CU coubicada (colCU) o similar, y la imagen de referencia que incluye el bloque vecino temporal puede denominarse imagen coubicada (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 la información de indicador o índice que indica qué candidato se selecciona (usa) se puede señalizar para obtener el vector de movimiento y/o el índice de imagen de referencia del bloque actual. La interpredicción se puede realizar basándose en diversos modos de predicción y, por ejemplo, en el caso de un modo de omisión 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 omisión, a diferencia del modo de fusión, la señal residual puede no transmitirse. En el caso del modo de predicción de vectores de movimiento (MVP), el vector de movimiento del bloque vecino seleccionado se puede utilizar como un predictor de vector de movimiento, y se puede señalizar una diferencia de vectores de movimiento. En este caso, el vector de movimiento del bloque actual puede obtenerse usando la suma del predictor de vector de movimiento y la diferencia de vector de movimiento.
Un procedimiento de codificación de vídeo/imagen basado en la interpredicción puede incluir esquemáticamente, por ejemplo, lo siguiente.
La FIG. 4 ilustra un ejemplo de un método de codificación de vídeo/imagen basado en interpredicción.
El aparato de codificación realiza la interpredicción para el bloque actual (S400). El aparato de codificación puede obtener el modo de interpredicción y la información de movimiento del bloque actual, y generar muestras de predicción del bloque actual. En este caso, los procedimientos para determinar el modo de interpredicción, obtener la información de movimiento y generar las muestras de predicción se pueden realizar simultáneamente, o puede realizarse cualquier procedimiento antes de los otros procedimientos. Por ejemplo, un interpredictor del aparato de codificación puede incluir un determinador de modo de predicción, un derivador de información de movimiento y un derivador 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 derivador de información de movimiento puede obtener la información de movimiento del bloque actual, y el derivador de muestra de predicción puede obtener las muestras de predicción del bloque actual. Por ejemplo, el interpredictor 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 a través de la estimación de movimiento, y obtener el bloque de referencia en el que la diferencia del bloque actual es mínima o una determinada referencia o menos. Basándose en esto, se puede obtener un índice de imagen de referencia que indica la imagen de referencia en donde está ubicado el bloque de referencia, y puede obtenerse un vector de movimiento basándose en la 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 costes 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 omisión o el modo de fusión se aplica al bloque actual, el aparato de codificación puede constituir una lista de candidatos de fusión que se describirá más adelante, y obtener el bloque de referencia en el que la diferencia del bloque actual es mínima o una cierta 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 obtenido, y la información de índice de fusión que indica el candidato de fusión seleccionado se puede generar y señalizar al aparato de decodificación. La información de movimiento del bloque actual se puede obtener usando la información de movimiento del candidato de fusión seleccionado.
Como otro ejemplo, si se aplica un modo de (A)MVP al bloque actual, el aparato de codificación puede constituir 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 seleccionado (mvp), 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 obtenido por la estimación de movimiento descrita anteriormente se puede utilizar como el vector de movimiento del bloque actual, y el candidato de mvp que tiene el vector de movimiento en donde la diferencia del 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 obtener la diferencia de vector de movimiento (MVD) que es la diferencia obtenida restando el mvp del vector de movimiento del bloque actual. En este caso, la información sobre la MVD se puede señalizar al aparato de decodificación. Además, si se aplica el modo de (A)MVP, el valor del índice de imagen de referencia se puede configurar 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 obtener muestras residuales basándose en las muestras de predicción (S410). El aparato de codificación puede obtener 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 producir la información de imagen codificada en forma de un flujo de bits. La información de predicción puede incluir información sobre información de modo de predicción (por ejemplo, indicador de omisión, indicador de fusión, índice de modo o similares) 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 de mvp o índice de mvp) que es información para obtener 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 de índice de imagen de referencia descrita anteriormente. Además, la información sobre la información de movimiento puede incluir información que indica si se aplica la predicción L0, la predicción L1 o la bipredicción. 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 se puede almacenar en un medio de almacenamiento (digital) y suministrarse al aparato de decodificación, o también se puede suministrar al aparato de decodificación a través de una red.
Al mismo tiempo, como se ha descrito anteriormente, el aparato de codificación puede generar una imagen reconstruida (incluyendo muestras reconstruidas y bloque reconstruido) basándose en las muestras de referencia y a las muestras residuales. Esto es para obtener, mediante el aparato de codificación, el mismo resultado de predicción que el obtenido por el aparato de decodificación y, por lo tanto, es posible aumentar la eficiencia de codificación. Por lo tanto, el aparato de codificación puede almacenar la imagen reconstruida (o muestras reconstruidas, bloque reconstruido) en una memoria, y usarla como imagen de referencia para la interpredicción. Como se ha descrito anteriormente, un procedimiento de filtrado en bucle o similar se puede aplicar además a la imagen reconstruida.
Un procedimiento de decodificación de vídeo/imagen basado en la interpredicción puede incluir esquemáticamente, por ejemplo, lo siguiente.
La FIG. 5 ilustra un ejemplo de un método de decodificación de vídeo/imagen basado en interpredicción.
Haciendo referencia a la FIG. 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 la predicción para un bloque actual basándose en la información de predicción recibida y obtener 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 (aplica?) un modo de (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 de modo de interpredicción pueden incluir un modo de omisión, un modo de fusión y/o un modo de (A)MVP, o pueden incluir diversos modos de interpredicció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 interpredicción determinado (S510). Por ejemplo, si el modo de omisión o el modo de fusión se aplica al bloque actual, el aparato de decodificación puede constituir 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 puede obtenerse usando 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 de (A)MVP se aplica al bloque actual, el aparato de decodificación puede constituir 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 seleccionado (mvp), 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 de mvp o índice de mvp). En este caso, la MVD del bloque actual puede obtenerse basándose en la información sobre la MVD, y el vector de movimiento del bloque actual puede obtenerse basándose en el mvp y a la MVD del bloque actual. Además, un índice de imagen de referencia del bloque actual puede obtenerse basándose en la información de í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 obtenerse como la imagen de referencia a la que se hace referencia para la interpredicción del bloque actual.
Al mismo tiempo, como se describe más adelante, la información de movimiento del bloque actual puede obtenerse sin constituir la lista de candidatos, y en este caso, la información de movimiento del bloque actual puede obtenerse según un procedimiento divulgado en un modo de predicción que se describirá más adelante. En este caso, la configuración de lista de candidatos descrita anteriormente se puede omitir.
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 obtener la imagen de referencia basándose en el índice de imagen de referencia del bloque actual, y obtener las muestras de predicción del bloque actual usando 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 adicionalmente 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 interpredictor del aparato de decodificación puede incluir un determinador de modo de predicción, un derivador de información de movimiento y un derivador de muestra de predicción, y el determinador de modo de predicción puede determinar el modo de predicción para el bloque actual basándose en la información de modo de predicción recibida, el derivador de información de movimiento puede obtener la información de movimiento (tal como el vector de movimiento y/o el índice de imagen de referencia) del bloque actual basándose en la información sobre la información de movimiento recibida, y el derivador de muestra de predicción puede obtener 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 a las muestras residuales, y generar una imagen reconstruida basándose en las mismas (S540). Después de esto, un procedimiento de filtrado en bucle o similar se puede aplicar adicionalmente a la imagen reconstruida como se describió anteriormente.
La FIG. 6 ilustra a modo de ejemplo un procedimiento de interpredicción.
Haciendo referencia a la FIG. 6, como se describió anteriormente, el procedimiento de interpredicción puede incluir determinar un modo de interpredicción, obtener 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 obtenida. El procedimiento de interpredicción puede ser realizado por el aparato de codificación y por 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 FIG. 6, el aparato de codificación determina el modo de interpredicción para el bloque actual (S600). Se pueden usar diversos modos de interpredicció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 omisión, un modo de predicción de vector de movimiento (MVP), un modo afín, un modo de fusión de subbloque y una fusión con el modo MVD (MMVD). Un modo de refinamiento de vector de movimiento del lado del decodificador (DMVR), un modo de resolución de vector de movimiento adaptativo (AMVR), una bipredicción con ponderación de nivel de CU (BCW), un flujo óptico bidireccional (BDOF) y similares pueden usarse adicionalmente o en lugar de los modos como modos incidentales. El modo afín puede denominarse modo de predicción de movimiento afín. El modo de MVP se puede denominar modo de predicción de vector de movimiento avanzado (AMVP). En este documento, algunos modos y/o el candidato de información de movimiento obtenido por algunos modos también se pueden incluir como uno de los candidatos relacionados con la información de movimiento de otro modo. Por ejemplo, el candidato de HMVP se puede añadir como un candidato de fusión en los modos de fusión/omisión, o se puede añadir como un candidato de mvp en el modo de MVP. Si el candidato de HMVP se utiliza como el candidato de información de movimiento en el modo de fusión o en el modo de omisión, el candidato de HMVP se puede denominar candidato de fusión de HMVP.
La información de modo de predicción que indica el modo de interpredicción del bloque actual se puede señalizar desde el aparato de codificación al aparato de decodificación. La información de modo de predicción se puede incluir en un flujo de bits y ser recibida por el aparato de decodificación. La información de modo de predicción puede incluir información de índice que indica uno de una pluralidad de modos de candidato. Alternativamente, la información de modo de predicción también puede indicar el modo de interpredicción a través de señalización jerárquica de información de indicador. En este caso, la información de modo de predicción puede incluir uno o más indicadores. Por ejemplo, la información de modo de predicción puede indicar si aplicar un modo de omisión, mediante la señalización de un indicador de omisión, indicar si aplicar el modo de fusión, mediante la señalización de un indicador de fusión si el modo de omisión no se aplica, e indicar que el modo de MVP se aplica o un indicador para clasificación adicional puede señalizarse adicionalmente si el modo de fusión no se aplica. 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, del modo de MVP, o similares. Por ejemplo, el modo afín puede incluir un modo de fusión afín y un modo de MVP afín.
El aparato de codificación deriva información de movimiento para el bloque actual (S610). La información de movimiento puede obtenerse basándose en el modo de interpredicción.
El aparato de codificación puede realizar la interpredicción usando la información de movimiento del bloque actual. El aparato de codificación puede obtener 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 píxeles fraccionarios dentro de un intervalo de búsqueda predeterminado en la imagen de referencia, usando el bloque original en la imagen original para el bloque actual, obteniendo de ese modo la información de movimiento. La similitud del bloque puede obtenerse basándose en la diferencia entre los valores de muestra basados en fase. Por ejemplo, la similitud del bloque se puede calcular 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 obtenerse basándose en un bloque de referencia que tiene el SAD más pequeño dentro de la región de búsqueda. La información de movimiento obtenida se puede señalizar al aparato de decodificación según diversos métodos basados en el modo de interpredicción.
El aparato de codificación realiza la interpredicción basándose en la información de movimiento para el bloque actual (S620). El aparato de codificación puede obtener la muestra(s) de predicción para el bloque actual basándose en la información de movimiento. El bloque actual que incluye las muestras de predicción puede denominarse bloque predicho.
Al mismo tiempo, según la fusión convencional o modo de AMVP en la interpredicción, se ha usado un método para reducir la cantidad de información de movimiento usando el vector de movimiento del bloque espacialmente/temporalmente adyacente del bloque actual como candidato de información de movimiento. Por ejemplo, los bloques vecinos usados para obtener candidatos de información de movimiento del bloque actual podrían incluir un bloque vecino de esquina inferior izquierda, un bloque vecino izquierdo, un bloque vecino de esquina superior derecha, un bloque vecino superior y un bloque vecino de esquina superior izquierda del bloque actual.
La FIG. 7 ilustra a modo de ejemplo bloques vecinos espaciales usados para obtener un candidato de información de movimiento en el modo de fusión o de AMVP convencional.
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 de hardware, y se debe a que se produce un problema tal como un aumento en una memoria intermedia de línea para inducir información de un bloque lejos del bloque actual. Sin embargo, el uso de la información de movimiento del bloque no adyacente para obtener el candidato de información de movimiento del bloque actual puede constituir varios candidatos, mejorando así el rendimiento. Se puede usar un método de predicción de vectores de movimiento (HMVP) basado en historial para usar la información de movimiento del bloque no adyacente sin aumentar la memoria intermedia de línea. En este documento, la HMVP puede representar una predicción de vector de movimiento basada en historial o un predictor de vector de movimiento basado en historial. Según la presente divulgación, es posible realizar eficientemente la interpredicción y soportar procesamiento paralelo, usando la HMVP. Por ejemplo, las realizaciones de la presente divulgación proponen diversos métodos de gestión de 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 o no realizar el procesamiento paralelo en consideración del rendimiento de hardware o tipo de servicio. Por ejemplo, si el aparato de codificación tiene un procesador de múltiples núcleos, el aparato de codificación puede procesar algunos de los segmentos, bricks y/o teselas en paralelo. Al mismo tiempo, incluso cuando el aparato de codificación tiene un único procesador central o tiene un procesador multinúcleo, el aparato de codificación puede realizar un procesamiento secuencial al mismo tiempo que reduce el cálculo y la carga de memoria.
El candidato de HMVP según el método de HMVP descrito anteriormente puede incluir información de movimiento de un bloque codificado previamente. Por ejemplo, la información de movimiento del bloque codificado previamente según el orden de codificación de bloques en la imagen actual no ha sido considerada como la información de movimiento del bloque actual si el bloque codificado previamente no está adyacente al bloque actual. Sin embargo, el candidato de HMVP se puede considerar 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 codificado previamente es adyacente al bloque actual. En este caso, una pluralidad de candidatos de HMVP se puede almacenar 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 de HMVP) se puede añadir a la lista de candidatos de fusión. En este caso, el candidato de HMVP se puede añadir después de los candidatos de fusión espacial y del candidato de fusión temporal incluido en la lista de candidatos de fusión.
Según el método de HMVP, la información de movimiento del bloque codificado previamente se puede almacenar en forma de tabla, y usarse como el candidato de información de movimiento (por ejemplo, candidato de fusión) del bloque actual. Una tabla (o memoria intermedia, lista) que incluye una pluralidad de candidatos de HMVP se puede mantener durante los procedimientos de codificación/decodificación. La tabla (o memoria intermedia, lista) puede denominarse tabla de HMVP (o memoria intermedia, lista). Según una realización de la presente divulgación, la tabla (o memoria intermedia, lista) puede inicializarse cuando se encuentra con un nuevo segmento. Alternativamente, según una realización de la presente divulgación, la tabla (o memoria intermedia, lista) puede ser inicializada cuando se encuentra con una nueva fila de CTU. Si la tabla se inicializa, el número de candidatos de HMVP incluidos en la tabla se puede establecer en cero. El tamaño de la tabla (o memoria intermedia, lista) se puede fijar a un valor específico (por ejemplo, 5 o similar). Por ejemplo, si existe un bloque intercodificado, 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) se puede denominar memoria intermedia (HMVP) o lista (HMVP).
La FIG. 8 ilustra esquemáticamente un ejemplo de un procedimiento de decodificación basado en candidatos de HMVP. En este caso, el procedimiento de decodificación basado en candidatos de HMVP puede incluir un procedimiento de interpredicción basado en candidatos de HMVP.
Haciendo referencia a la FIG. 8, el aparato de decodificación carga la tabla de HMVP que incluye el candidato(s) de HMVP, y decodifica el bloque basándose en al menos uno del candidato(s) de HMVP. Específicamente, por ejemplo, el aparato de decodificación puede obtener la información de movimiento del bloque actual basándose en al menos uno del candidato(s) de HMVP, y obtener el bloque predicho (incluyendo la muestra de predicción) realizando la interpredicción para el bloque actual basándose en la información de movimiento. Como se ha descrito anteriormente, se puede generar un bloque reconstruido en base al bloque predicho. La información de movimiento obtenida 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 un 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 primero entra en la tabla se puede eliminar, y la información de movimiento obtenida se puede añadir a la última entrada de la tabla como un nuevo candidato de HMVP.
La FIG. 9 ilustra a modo de ejemplo una actualización de tabla de HMVP según una regla de primero en entrar, primero en salir (FIFO), y la FIG. 10 ilustra a modo de ejemplo una actualización de tabla de HMVP según una regla FIFO limitada.
Se puede aplicar una regla FIFO a la tabla. Por ejemplo, si el tamaño de 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 hasta 16 candidatos de información de movimiento codificados más recientemente. En este caso, como se muestra en la FIG. 9, la regla FIFO se puede aplicar para eliminar el candidato de HMVP más antiguo, y se puede añadir un nuevo candidato de HMVP.
Al mismo tiempo, con el fin de mejorar adicionalmente la eficiencia de codificación, también se puede aplicar una regla FIFO limitada tal como se muestra en la FIG. 10. Haciendo referencia a la FIG. 10, cuando el candidato de HMVP se inserta en la tabla, se puede aplicar primero una comprobació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 se elimina de la tabla, y los candidatos de HMVP de después del candidato de HMVP eliminado se mueven en un espacio (es decir, cada Índices-1), entonces se puede insertar un nuevo candidato de HMVP.
Como se describió anteriormente, los candidatos de HMVP se pueden utilizar en un procedimiento de constitución de lista de candidatos de fusión. En este caso, por ejemplo, todos los candidatos de HMVP insertables desde la última entrada a la primera entrada en la tabla se pueden insertar después de los candidatos de fusión espacial y del candidato de fusión temporal. En este caso, la comprobación de poda puede aplicarse a los candidatos de HMVP. El número máximo de candidatos de fusión permisibles puede señalizarse, 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 constitución de lista de candidatos de fusión.
De manera similar, los candidatos de HMVP también se pueden usar en el procedimiento de constitución de 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 los candidatos de TMVP que constituyen la lista de candidatos de MVP. En este caso, por ejemplo, se puede utilizar un candidato de HMVP que tiene la misma imagen de referencia que la imagen de referencia de objetivo de MVP para constituir la lista de candidatos de MVP. En este caso, la imagen de referencia objetivo de MVP puede representar la imagen de referencia para la interpredicción del bloque actual al que se ha aplicado el modo de MVP. En este caso, la comprobación de poda se puede aplicar a los candidatos de HMVP. El parámetro k puede ser, por ejemplo, 4. Sin embargo, este es un ejemplo y k puede tener varios valores tales como 1, 2, 3 y 4.
Al mismo tiempo, 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 de longitud fija más una unidad truncada (con 3 bits) para la codificación de índice de fusión como en la siguiente tabla 1.
Tabla 1
La tabla ha supuesto que Nmrg = 15, en donde Nmrg se refiere al número total de candidatos de fusión.
Al mismo tiempo, el procesamiento paralelo puede soportarse en la codificación de imagen/vídeo para optimizar la implementación cuando se desarrolla una solución que aplica un códec de vídeo.
La FIG. 11 ilustra a modo de ejemplo el Procesamiento Paralelo de Frente de Onda (WPP), que es una de las técnicas para el procesamiento paralelo.
Haciendo referencia a la FIG. 11, si se aplica el WPP, el procesamiento de paralelización se puede realizar en unidades de filas de CTU. En este caso, la posición y dependencia indicadas por la flecha existen cuando se codifican (codificación/decodificación) los bloques marcados con X. Por lo tanto, es necesario esperar que la CTU superior derecha del bloque, que está siendo codifica actualmente, se codifique completamente. Además, si se aplica el WPP, la inicialización de una tabla de probabilidad de CABAC (contexto) se puede realizar en unidades de segmentos, y para realizar el procesamiento de paralelización que incluye codificación/decodificación de entropía, la tabla de probabilidad de CABAC debe inicializarse en unidades de filas de CTU. El WPP se puede considerar como una técnica propuesta para determinar una posición de inicialización eficiente.
El método de HMVP descrito anteriormente almacena, como candidato, información de movimiento obtenida de un procedimiento de codificación de cada bloque por el tamaño de una memoria intermedia predeterminada (tabla de HMVP). En este caso, como se describe en la FIG. 9 sin ninguna condición adicional, se pueden rellenar los candidatos tantos como el número de memorias intermedias, o los candidatos también se pueden rellenar para no ser redundantes a través de la comprobación de redundancia entre el candidato recién añadido y el candidato existente en la memoria intermedia (tabla de HMVP). Por lo tanto, se pueden configurar varios candidatos. Sin embargo, cuando se desarrolla una solución a la que se aplica un códec de vídeo, generalmente es imposible saber cuándo se rellenan los candidatos de HMVP en la memoria intermedia, de modo que es imposible habilitar el procesamiento paralelo incluso si se aplica el WPP o no se aplica el WPP.
La FIG. 12 ilustra a modo de ejemplo un problema cuando se aplica un método de HMVP general en consideración al procesamiento paralelo.
Haciendo referencia a la FIG. 12, cuando se realiza la 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 de primer orden en una fila de CTU de orden N(N>=1) puede rellenarse solo cuando se completa la codificación (codificación/decodificación) de un bloque existente en una fila de CTU de orden (N-1), por ejemplo, un bloque en la última CTU en la fila de CTU de orden (N-1). 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 usada para decodificar el bloque (objetivo) actual. Esto se debe a que se puede producir una diferencia entre la memoria intermedia de HMVP obtenida del punto de tiempo de codificación del bloque actual cuando se aplica el procesamiento secuencial y la memoria intermedia de HMVP obtenida del punto de tiempo de codificación del bloque actual cuando se aplica el procesamiento paralelo.
En una realización de la presente divulgación, para resolver el problema anterior, cuando se aplica la HMVP, la memoria intermedia de gestión de historial (memoria intermedia de HMVP) se inicializa de modo que puede soportarse el procesamiento paralelo.
La FIG. 13 ilustra 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 de la presente divulgación.
Haciendo referencia a la FIG. 13, la memoria intermedia de HMVP puede inicializarse para cada primera CTU en la fila de CTU. Es decir, cuando se codifica la CTU de primer orden en la fila de CTU, la memoria intermedia de HMVP se puede inicializar, de modo que el número de candidatos de HMVP incluidos en la memoria intermedia de HMVP sea cero. Inicializando la memoria intermedia de HMVP para cada fila de CTU como se describió anteriormente, incluso cuando se soporta el procesamiento paralelo, los candidatos de HMVP obtenidos del proceso de codificación de las CTU ubicadas en la dirección izquierda del bloque actual se pueden utilizar sin restricción. En este caso, por ejemplo, si la CU actual que es el bloque actual se ubica en la CTU de primer orden en la fila de CTU, y la CU actual corresponde a la CU de primer orden en la CTU de primer orden, 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 se codifica en el modo inter, el candidato de HMVP puede obtenerse basándose en la información de movimiento de la CU codificada anteriormente e incluirse en la memoria intermedia de HMVP.
La FIG. 14 ilustra a modo de ejemplo un método de gestión de memoria intermedia de HMVP según una realización de la presente divulgación.
Haciendo referencia a la FIG. 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 de primer orden en cada fila de CTU incluso con respecto a las CTU en el segmento. En la FIG. 14, por ejemplo, si (ctu_idx % Num) es cero, se ha descrito como la CTU de primer orden. En este momento, Num significa el número de CTU en cada fila de CTU. Como otro ejemplo, en el caso de usar el concepto de brick descrito anteriormente, si (ctu_idx_in_brick % de BrickWidth) es cero, se puede determinar que es la CTU de primer orden en la fila de CTU (en el brick correspondiente). En este caso, el ctu_idx_in_brick se refiere al índice de la CTU correspondiente en el brick, y BrickWidth se refiere a la anchura del brick en unidades de CTU. Es decir, BrickWidth puede referirse al número de columnas CTU en el brick correspondiente. Si la CTU actual es la CTU de primer orden en la fila de CTU, la memoria intermedia de HMVP se inicializa (es decir, el número de candidatos en la memoria intermedia de HMVP se establece en cero) y, de lo contrario, se mantiene la memoria intermedia de HMVP. A continuación, se realiza el proceso de predicción (por ejemplo, basado en la fusión o el modo de MVP) para cada CU en la CTU correspondiente, y en este momento, el candidato almacenado en la memoria intermedia de HMVP se puede incluir como un 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 de MVP. La información de movimiento del bloque objetivo (bloque actual) obtenida en el proceso de interpredicción basado en el modo de fusión o el modo de MVP se almacena (actualiza) en la memoria intermedia de HMVP como un nuevo candidato de HMVP. En este caso, el proceso de comprobación de redundancia descrito anteriormente se puede realizar adicionalmente. A continuación, el procedimiento descrito anteriormente también se puede repetir para la CU y la CTU.
Como otro ejemplo, cuando se aplica la HMVP, es posible eliminar la dependencia de la unidad de CTU inicializando la memoria intermedia de HMVP para cada 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 de HMVP. En este caso, se puede obtener el candidato de HMVP basándose en la información de movimiento de los bloques (por ejemplo, las CU) en la misma CTU, y es posible la inicialización de memoria intermedia de HMVP sin determinar si la CTU actual es la CTU de primer orden en cada fila de CTU de la siguiente manera.
La FIG. 15 ilustra a modo de ejemplo un método de gestión de memoria intermedia de HMVP según otra realización de la presente divulgación.
Haciendo referencia a la FIG. 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 de primer orden en cada fila de CTU.
Al mismo tiempo, cuando se inicializa la memoria intermedia de HMVP para cada CTU, solo el candidato de HMVP obtenido de la información de movimiento de los bloques existentes en la CTU correspondiente se incluye en la memoria intermedia de HMVP, de manera que el uso del candidato obtenido de bloques no adyacentes está necesariamente limitado. Por lo tanto, el candidato de la CTU izquierda adyacente a la CTU actual se puede almacenar en la memoria intermedia de HMVP para aumentar el candidato disponible.
La FIG. 16 ilustra a modo de ejemplo un método de gestión de memoria intermedia de HMVP según otra realización más de la presente divulgación.
Haciendo referencia a la FIG. 16, cuando la CTU actual (CTU de enésimo orden) y dos CTU, es decir, las CTU de (N-1 )ésimorde y de (N-2)ésimo orden existen a la izquierda de la misma, las CU existentes en la CTU actual pueden usar el candidato(s) de HMVP obtenido de los bloques en la CTU de (N-1)ésimo orden. En este caso, el candidato(s) de HMVP obtenido de los bloques en la CTU de (N-2)ésimo orden puede no usarse, y se inicializa o elimina.
La memoria intermedia de HMVP para aplicar el método propuesto en esta realización se puede controlar o gestionar de la siguiente manera.
La FIG. 17 ilustra a modo de ejemplo el método de gestión de memoria intermedia de HMVP.
Haciendo referencia a la FIG. 17, cuando el tamaño de la memoria intermedia de la HMVP es S (por ejemplo, 16) (índice de memoria intermedia 0 a 15), las CU en cada CTU se almacenan como se muestra en la FIG. 17, que puede representarse como un índice de bloque. Si se completa la codificación de la CTU de (N-1) ésimo orden, los candidatos de HMVP obtenidos de la CTU de (N-2) ésimo orden se eliminan de la memoria intermedia, y la información de movimiento obtenida de los bloques en la CTU actual se almacena en la memoria intermedia de HMVP como candidatos de HMVP. Como se muestra en la figura para la gestión de memoria intermedia, puede existir un indicador de CTU representado por el índice de CTU, y el aparato de codificación puede encontrar un objetivo a eliminar de la memoria intermedia basándose en el índice de CTU.
El tamaño de la memoria intermedia de gestión de historial (memoria intermedia de HMVP) de la HMVP descrita anteriormente se puede determinar teniendo en cuenta un incremento en el rendimiento según el tamaño de la memoria intermedia, una cantidad de cálculo para la comprobación de redundancia con los candidatos que salen en la memoria intermedia, y similares. Como en las realizaciones descritas anteriormente, el candidato de HMVP disponible es más pequeño que la HMVP existente debido a la inicialización de memoria intermedia, de modo que hay poco cambio en el rendimiento incluso si el tamaño de la memoria intermedia de gestión para la HMVP se hace más pequeño. Por ejemplo, el tamaño de la memoria intermedia (S) puede establecerse en 5 o 6 cuando se aplica una realización de inicialización de la memoria intermedia de HMVP para cada fila de CTU, o una realización de uso de hasta los candidatos de HMVP obtenidos de la CTU izquierda adyacente a la CTU actual. Además, por ejemplo, cuando se aplica la realización descrita anteriormente de inicialización de la memoria intermedia de HMVP para cada CTU, el tamaño de memoria intermedia (S) se puede establecer en 4 o 5, y en este caso, hay poca reducción en el rendimiento. Además, cuando se determina el tamaño de la memoria intermedia de gestión del historial, se puede considerar si aplicar datos múltiples de instrucciones únicas (SIMD). Por ejemplo, si es posible comparar y calcular múltiples (por ejemplo, 8) datos a la vez, aplicar los SIMD sin reducir el tamaño de la memoria intermedia resulta eficiente porque puede mantener el rendimiento sin aumentar la complejidad computacional.
Las FIGS. 18 y 19 ilustran esquemáticamente un ejemplo de un método de codificación de vídeo/imagen y de componentes relacionados que incluyen el método de interpredicción según una realización de la presente divulgación. El método descrito en la FIG. 18 puede ser realizado por el aparato de codificación descrito en la FIG. 2. Específicamente, por ejemplo, S1800 a S1830 en la FIG. 18 pueden ser realizados por el predictor 220 del aparato de codificación, S1840 en la FIG. 18 puede ser realizado por el procesador residual 230 del aparato de codificación, y S1850 en la FIG. 18 puede ser realizado por el codificador de entropía 240 del aparato de codificación. Un método descrito en la FIG. 18 puede incluir las realizaciones descritas anteriormente en este documento.
Haciendo referencia a la FIG. 18, el aparato de codificación deriva una memoria intermedia de HMVP para un bloque actual (S1800). El aparato de codificación puede realizar los métodos de gestión de memoria intermedia de HMVP descritos anteriormente en las realizaciones de este documento. Como ejemplo, la memoria intermedia de HMVP se puede inicializar en unidades de segmentos.
Como otro ejemplo, la memoria intermedia de HMVP se puede inicializar en unidades de filas de CTU. El aparato de codificación puede determinar si la CTU actual es la CTU de primer orden en la fila de CTU. En este caso, la memoria intermedia de HMVP se puede inicializar en la CTU de primer orden en la fila de CTU en donde está ubicada la CTU actual que incluye el bloque actual. Es decir, la memoria intermedia de HMVP puede inicializarse cuando se procesa la CTU de primer orden en la fila de CTU en donde está ubicada la CTU actual que incluye el bloque actual. Si se determina que la CTU actual ha sido la CTU de primer orden en la fila de CTU, la memoria intermedia de HMVP puede incluir un candidato de HMVP obtenido en función de la información de movimiento de un bloque codificado antes que el bloque actual en la CTU actual. Si se determina que la CTU actual no ha sido la CTU de primer orden en la fila de CTU, la memoria intermedia de HMVP puede incluir un candidato de HMVP obtenido en función de la información de movimiento de un bloque codificado antes que el bloque actual en la CTU actual y un candidato de HMVP obtenido basándose en la información de movimiento de un bloque codificado previamente en una CTU anterior en la fila de CTU. Además, por ejemplo, si la CU actual que es el bloque actual está ubicada en la CTU de primer orden en la fila de CTU, y la CU actual corresponde a la CU de primer orden en la CTU de primer orden, 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 (por ejemplo, una CU codificada antes que la CU actual en la CTU actual y/o una CU en la CTU codificada antes que la CTU actual en la fila de CTU actual) se codifica en el modo inter, se puede obtener el 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 el modo de fusión se aplica al bloque actual, el candidato de HMVP se puede añadir a una lista de candidatos de fusión para el bloque actual si el número de candidatos de fusión disponibles (por ejemplo, incluyendo candidatos de fusión espaciales y candidatos de fusión temporales) en la lista de candidatos de fusión es menor que el número máximo predeterminado de los candidatos de fusión. En este caso, el candidato de HMVP se puede insertar 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 el índice asignado a los candidatos espaciales y a los candidatos temporales en la lista de candidatos de fusión.
Como otro ejemplo más, la memoria intermedia de HMVP se puede inicializar en unidades de CTU. Alternativamente, la memoria intermedia de HMVP puede incluir hasta candidatos de HMVP obtenidos de la CTU izquierda de la CTU actual. Si se inicializa la memoria intermedia de HMVP, el número de candidatos de HMVP incluidos en la memoria intermedia de HMVP puede establecerse en cero.
El aparato de codificación deriva la información de movimiento del bloque actual basándose en la memoria intermedia de HMVP (S1810). El aparato de codificación puede obtener la información de movimiento del bloque actual en base al candidato de HMVP incluido en la memoria intermedia de HMVP. Por ejemplo, si se aplica un modo de fusión o un modo de predicción de vector de movimiento (MVP) al bloque actual, el candidato de HMVP incluido en la memoria intermedia de HMVP se puede utilizar como un candidato de fusión o un 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 se incluye como candidato de la lista de candidatos de fusión, y se puede indicar el candidato de HMVP entre los candidatos incluidos en la lista de candidatos de fusión basándose en un índice de fusión. El índice de fusión se puede incluir en la información de imagen 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 en una prioridad más baja que los candidatos de fusión espacial y el candidato de fusión temporal incluido 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 más alto que los valores de índice de los candidatos de fusión espacial y el candidato de fusión temporal.
El aparato de codificación genera muestras de predicción para el bloque actual basándose en la información de movimiento obtenida (S1820). El aparato de codificación puede obtener las muestras de predicción usando las muestras de referencia indicadas por la información de movimiento en la imagen de referencia realizando la interpredicció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 (S1830). El aparato de codificación puede generar las muestras residuales basándose en las muestras originales para el bloque actual y en 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 que incluye la información sobre las muestras residuales (S1840). La información sobre las muestras residuales se puede denominar información residual, y puede incluir información sobre coeficientes de transformada cuantificados. El aparato de codificación puede obtener los coeficientes de transformada cuantificados realizando procedimientos de transformada/cuantificación para las muestras residuales.
La información de imagen codificada se puede producir 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 de un medio de almacenamiento. La información de imagen 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 de MVP y similares), información de MVD y similares.
Las FIGS. 20 y 21 ilustran esquemáticamente ejemplos de un método de decodificación de imágenes y componentes relacionados que incluyen un método de interpredicción según una realización de la presente divulgación. El método descrito en la FIG. 20 puede ser realizado por el aparato de decodificación descrito en la FIG. 3. Específicamente, por ejemplo, S2000 a S2030 en la FIG. 20 pueden ser realizados por el predictor 330 del aparato de decodificación, y S2040 puede ser realizado por el sumador 340 del aparato de decodificación. El método descrito en la FIG. 20 puede incluir las realizaciones descritas anteriormente en este documento.
Haciendo referencia a la FIG. 20, el aparato de decodificación deriva una memoria intermedia de HMVP para el bloque actual (S2000). El aparato de decodificación puede realizar los métodos de gestión de memoria intermedia de HMVP descritos anteriormente en las realizaciones de este documento. Como ejemplo, la memoria intermedia de HMVP se puede inicializar en unidades de segmentos.
Como otro ejemplo, la memoria intermedia de HMVP se puede inicializar en unidades de filas de CTU. El aparato de decodificación puede determinar si la CTU actual es la CTU de primer orden en la fila de CTU. En este caso, la memoria intermedia de HMVP se puede inicializar en la CTU de primer orden en la fila de CTU en donde está ubicada la CTU actual que incluye el bloque actual. Es decir, la memoria intermedia de HMVP se puede inicializar cuando se procesa la CTU de primer orden en la fila de CTU en donde está ubicada la CTU actual que incluye el bloque actual. Si se determina que la CTU actual ha sido la CTU de primer orden en la fila de CTU, la memoria intermedia de HMVP puede incluir un candidato de HMVP obtenido basándose en la información de movimiento de un bloque decodificado antes que el bloque actual en la CTU actual. Si se determina que la CTU actual no ha sido la CTU de primer ordena en la fila de CTU, la memoria intermedia de HMVP puede incluir un candidato de HMVP obtenido en función de la información de movimiento de un bloque decodificado antes que el bloque actual en la CTU actual y un candidato de HMVP obtenido en función de la información de movimiento de un bloque decodificado previamente en una CTU anterior en la fila de CTU. Además, por ejemplo, si la CU actual que es el bloque actual está ubicada en la CTU de primer orden en la fila de CTU, y la CU actual corresponde a la CU de primer orden en la CTU de primer orden, el número de candidatos de HMVP incluidos en la memoria intermedia de HMVP es cero. Además, por ejemplo, una CU codificada antes que la CU actual en la fila de CTU (por ejemplo, una CU codificada antes que la CU actual en la CTU actual y/o una CU en la CTU codificada antes que la CTU actual en la fila de CTU actual) se codifica en el modo inter, el candidato de HMVP puede obtenerse basándose en la información de movimiento de la CU codificada anteriormente e incluirse en la memoria intermedia de HMVP. Si el modo de fusión se aplica al bloque actual, el candidato de HMVP se puede añadir a una lista de candidatos de fusión para el bloque actual si el número de candidatos de fusión disponibles (por ejemplo, incluyendo candidatos de fusión espaciales y candidatos de fusión temporales) en la lista de candidatos de fusión es menor que el número máximo predeterminado de los candidatos de fusión. En este caso, el candidato de HMVP se puede insertar 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 el índice asignado a los candidatos espaciales y los candidatos temporales en la lista de candidatos de fusión.
Como otro ejemplo más, la memoria intermedia de HMVP se puede inicializar en unidades de CTU. Alternativamente, la memoria intermedia de HMVP puede incluir hasta candidatos de HMVP obtenidos de la CTU izquierda de la CTU actual. Si se inicializa la memoria intermedia de HMVP, el número de candidatos de HMVP incluidos en la memoria intermedia de HMVP puede establecerse en cero.
El aparato de decodificación deriva información de movimiento del bloque actual basándose en la memoria intermedia de HMVP (S2010). El aparato de decodificación puede obtener la información de movimiento del bloque actual en base al candidato de HMVP incluido en la memoria intermedia de HMVP. Por ejemplo, si el modo de fusión o el modo de predicción de vector de movimiento (MVP) se aplica al bloque actual, el candidato de HMVP incluido en la memoria intermedia de HMVP se puede utilizar como un candidato de fusión o como un 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 se incluye 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 basándose en el í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 en una prioridad más baja que los candidatos de fusión espacial y el candidato de fusión temporal incluido 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 más alto que a los valores de índice de los candidatos de fusión espacial y al candidato de fusión temporal.
El aparato de decodificación genera muestras de predicción para el bloque actual basándose en la información de movimiento obtenida (S2020). El aparato de decodificación puede obtener las muestras de predicción usando las muestras de referencia indicadas por la información de movimiento en la imagen de referencia realizando la interpredicción (compensación de movimiento) basándose en la información de movimiento. El bloque actual que incluye las muestras de predicción se puede denominar bloque predicho.
El aparato de decodificación genera muestras reconstruidas basándose en las muestras de predicción (S2030). Como se ha descrito anteriormente, el bloque/imagen reconstruido puede generarse basándose en las muestras de reconstrucción. Como se ha descrito anteriormente, el aparato de decodificación puede adquirir información residual (incluyendo información sobre los coeficientes de transformada cuantificados) del flujo de bits, obtener las muestras residuales de la información residual y generar las muestras reconstruidas basándose en las muestras de predicción y en las muestras residuales. Después, como se ha descrito anteriormente, un procedimiento de filtrado en bucle tal como filtrado de desbloqueo, procedimientos SAO y/o ALF se pueden aplicar a la imagen reconstruida con el fin de mejorar las cualidades subjetivas/objetivas de la imagen según sea necesario.
En la realización descrita anteriormente, los métodos se describen basándose en diagramas de flujo como una serie de etapas o bloques, pero la presente divulgación no está limitada en el orden de etapas, y puede producirse una determinada etapa en la etapa y orden diferentes de los descritos anteriormente o al mismo tiempo. Además, los expertos en la técnica entenderán que las etapas mostradas en el diagrama de flujo no son exclusivas y que pueden incluirse otras etapas o que pueden eliminarse una o más etapas en los diagramas de flujo sin afectar al alcance de la presente divulgación.
El método descrito anteriormente según la presente divulgación puede implementarse en forma de software, y el aparato de codificación y/o el aparato de decodificación según la presente divulgación pueden incluirse en el aparato para realizar el procesamiento de imágenes de, por ejemplo, una televisión, un ordenador, un teléfono inteligente, un decodificador, un dispositivo de visualización y similares.
Cuando las realizaciones de la presente divulgación 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 se puede almacenar en una memoria y ser ejecutado por un procesador. La memoria puede estar situada dentro o fuera del procesador, y puede estar conectada con el procesador por 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 solo 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 la presente divulgación se pueden implementar y realizar en un procesador, un microprocesador, un controlador o un chip. Por ejemplo, las unidades funcionales mostradas en cada dibujo se pueden implementar y realizar 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 se pueden almacenar en un medio de almacenamiento digital.
Además, el aparato de decodificación y el aparato de codificación al que se aplica la presente divulgación 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 chat de vídeo, un dispositivo de comunicación en tiempo real tal como comunicación de vídeo, un dispositivo de transmisión en flujo continuo móvil, un medio de almacenamiento, una videocámara, un proveedor de servicios de vídeo bajo demanda (VoD), un dispositivo "Over The Top" (OTT), un proveedor de servicios de transmisión en flujo continuo por internet, un dispositivo de vídeo en 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 (incluyendo un vehículo autónomo), un terminal de avión, un terminal de barco o similares), un dispositivo de vídeo médico o similares, y se pueden utilizar para procesar señales de vídeo o señales de datos. Por ejemplo, el dispositivo "Over The Top" (OTT) puede incluir una consola de juegos, un reproductor de Blu-ray, una televisión con acceso a Internet, un sistema de cine doméstico, un teléfono inteligente, un ordenador personal de tipo tableta, un grabador de vídeo digital (DVR) y similares.
Además, el método de procesamiento al que se aplica la presente invención puede implementarse 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 presente divulgación también se pueden almacenar 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 donde 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 PROM, una EPROM, una EEPROM, 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 una 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 se puede almacenar en el medio de grabación legible por ordenador o transmitirse a través de una red de comunicación cableada e inalámbrica.
Además, las realizaciones de la presente divulgación 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 las realizaciones de la presente divulgación. El código de programa se puede almacenar en un portador legible por un ordenador.
La FIG. 22 ilustra un ejemplo de un sistema de transmisión en flujo continuo de contenidos al que se puede aplicar la presente divulgación.
Con referencia a la FIG. 22, el sistema de transmisión en flujo continuo de contenidos al que se aplica la divulgación puede incluir en gran medida un servidor de codificación, un servidor de transmisión en flujo continuo, un servidor web, un almacenamiento multimedia, un dispositivo de usuario y un dispositivo de entrada multimedia.
El servidor de codificación realiza el papel de generar un flujo de bits comprimiendo contenidos introducidos 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 flujo continuo. Como otro ejemplo, si dispositivos de entrada multimedia tales como un teléfono inteligente, cámara o videocámara producen directamente un flujo de bits, el servidor de codificación se puede omitir.
El flujo de bits se puede generar mediante un método de codificación o un método para generar un flujo de bits al que se aplica la presente divulgación, y el servidor de transmisión en flujo continuo puede almacenar temporalmente el flujo de bits a la vez que se transmite o recibe el flujo de bits.
El servidor de transmisión en flujo continuo realiza el papel de transmitir datos multimedia a un dispositivo de usuario en base a una solicitud de usuario a través de un servidor web, y el servidor web realiza el papel de informar al usuario de qué servicios están disponibles. Si el usuario solicita un servicio deseado desde el servidor web, el servidor web transmite la solicitud al servidor de transmisión en flujo continuo, y el servidor de transmisión en flujo continuo transmite datos multimedia al usuario. En este momento, el sistema de transmisión en flujo continuo de contenidos puede incluir un servidor de control separado, y en este caso, el servidor de control realiza el papel de controlar comandos/respuestas entre dispositivos dentro del sistema de transmisión en flujo continuo de contenidos.
El servidor de transmisión en flujo continuo puede recibir contenido desde un servidor de almacenamiento y/o codificación multimedia. 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 fluido, el servidor de transmisión en flujo continuo puede almacenar el flujo de bits durante un período de tiempo predeterminado.
Los ejemplos del dispositivo de usuario pueden incluir un teléfono móvil, un teléfono inteligente, un ordenador portátil, un terminal de radiodifusión digital, un asistente digital personal (PDA), un reproductor multimedia portátil (PMP), un terminal de navegación, un PC de tipo pizarra, un PC de tipo tableta, un ultrabook, un dispositivo que se puede llevar puesto (por ejemplo, un reloj inteligente o una gafas inteligentes), una TV digital, un ordenador de escritorio y una señalización digital.
Cada servidor individual dentro del sistema de transmisión en flujo continuo de contenidos puede ser operado como un servidor distribuido, y en este caso, los datos recibidos por cada servidor pueden ser procesados de una manera distribuida.

Claims (3)

REIVINDICACIONES
1. Un método de decodificación de imágenes realizado por un aparato de decodificación, comprendiendo el método:
obtener información sobre un índice de fusión a partir de un flujo de bits;
obtener (S2000) una memoria intermedia de predicción de vectores de movimiento basada en historial, HMVP, para un bloque actual;
obtener candidatos de fusión para configurar una lista de candidatos de fusión para el bloque actual, en donde los candidatos de fusión incluyen candidatos espaciales obtenidos basándose en bloques de candidatos espaciales y un candidato temporal obtenido basándose en un bloque de candidatos temporales, en donde un candidato de HMVP comprendido en la memoria intermedia de HMVP se inserta como un candidato de fusión de la lista de candidatos de fusión, en donde el candidato de HMVP se inserta después de los candidatos espaciales y del candidato temporal en la lista de candidatos de fusión; obtener (S2010) información de movimiento del bloque actual basándose en el candidato de HMVP en la lista de candidatos de fusión;
generar (S2020) muestras de predicción para el bloque actual basándose en la información de movimiento; y
generar (S2040) muestras reconstruidas basadas en las muestras de predicción,
en donde el candidato de HMVP entre los candidatos de fusión comprendidos en la lista de candidatos de fusión se indica basándose en el índice de fusión,
en donde el bloque actual está relacionado con una unidad de codificación, CU, que es dividida a partir de una unidad de árbol de codificación, CTU,
en donde una imagen actual incluye más de un segmento,
en donde un segmento incluido en la imagen actual incluye más de una fila de CTU,
en donde la memoria intermedia de HMVP se actualiza basándose en la información de movimiento de un bloque anterior,
en donde para un segmento del cual una CTU de primer orden es distinta de una CTU de primer orden de una fila de CTU de la imagen actual, la memoria intermedia de HMVP se inicializa en una CTU de primer orden por cada fila de CTU del segmento,
en donde el método comprende además determinar, para un segmento actual del cual una CTU de primer orden es distinta de la CTU de primer orden de la fila de CTU de la imagen actual, si la CTU es una CTU de primer orden en una fila de CTU del segmento actual,
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, para un segmento actual del cual una CTU de primer orden es distinta de la CTU de primer orden de la fila de CTU de la imagen actual, la CTU es la CTU de primer orden en la fila de CTU del segmento actual, la memoria intermedia de HMVP se inicializa para la CTU.
2. Un método de codificación de imágenes realizado por un aparato de codificación, comprendiendo el método: obtener (S1800) una memoria intermedia de predicción de vector de movimiento basada en historial, HMVP, para un bloque actual;
obtener candidatos de fusión para configurar una lista de candidatos de fusión para el bloque actual, en donde los candidatos de fusión incluyen candidatos espaciales obtenidos basándose en bloques de candidatos espaciales y un candidato temporal obtenido basándose en un bloque de candidatos temporales, en donde un candidato de HMVP comprendido en la memoria intermedia de HMVP se inserta como un candidato de fusión de la lista de candidatos de fusión, en donde el candidato de HMVP se inserta después de los candidatos espaciales y del candidato temporal en la lista de candidatos de fusión; obtener (S1810) información de movimiento del bloque actual basándose en el candidato de HMVP en la lista de candidatos de fusión;
generar (S1820) muestras de predicción para el bloque actual basándose en la información de movimiento; obtener (S1840) muestras residuales basadas en las muestras de predicción; y
codificar (S1850) información de imagen que comprende información sobre las muestras residuales, en donde la información de imagen incluye información sobre un índice de fusión que indica el candidato de HMVP entre los candidatos de fusión comprendidos en la lista de candidatos de fusión,
en donde el bloque actual está relacionado con una unidad de codificación, CU, que se divide de una unidad de árbol de codificación, CTU,
en donde una imagen actual incluye más de un segmento,
en donde un segmento incluido en la imagen actual incluye más de una fila de CTU,
en donde la memoria intermedia de HMVP se actualiza basándose en la información de movimiento de un bloque anterior,
en donde para un segmento del cual una CTU de primer orden es distinta de una CTU de primer orden de una fila de CTU de la imagen actual, la memoria intermedia de HMVP se inicializa en una CTU de primer orden por cada fila de CTU del segmento,
en donde el método comprende además determinar, para un segmento actual del cual una CTU de primer orden es distinta de la CTU de primer orden de la fila de CTU de la imagen actual, si la CTU es una CTU de primer orden en una fila de CTU del segmento actual,
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, para un segmento actual del cual una CTU de primer orden es distinta de la CTU de primer orden de la fila de CTU de la imagen actual, la CTU es la CTU de primer orden en la fila de CTU del segmento actual, la memoria intermedia de HMVP se inicializa para la CTU.
3. Un medio de almacenamiento no transitorio legible por ordenador que almacena un flujo de bits de información de imagen generado por un método, comprendiendo el método:
obtener una memoria intermedia de predicción de vectores de movimiento basada en historial, HMVP, para un bloque actual;
obtener candidatos de fusión para configurar una lista de candidatos de fusión para el bloque actual, en donde los candidatos de fusión incluyen candidatos espaciales obtenidos basándose en bloques de candidatos espaciales y un candidato temporal obtenido basándose en un bloque de candidatos temporales, en donde un candidato de HMVP comprendido en la memoria intermedia de HMVP se inserta como un candidato de fusión de la lista de candidatos de fusión, en donde el candidato de HMVP se inserta después de los candidatos espaciales y del candidato temporal en la lista de candidatos de fusión; obtener información de movimiento del bloque actual basándose en el candidato de HMVP en la lista de candidatos de fusión;
generar muestras de predicción para el bloque actual basándose en la información de movimiento; obtener muestras residuales basadas en muestras de predicción; y
codificar información de imagen que comprende información sobre las muestras residuales,
en donde la información de imagen incluye información sobre un índice de fusión que indica el candidato de HMVP entre los candidatos de fusión comprendidos en la lista de candidatos de fusión,
en donde el bloque actual está relacionado con una unidad de codificación, CU, que es dividida a partir de una unidad de árbol de codificación, CTU,
en donde una imagen actual incluye más de un segmento,
en donde un segmento incluido en la imagen actual incluye más de una fila de CTU,
en donde la memoria intermedia de HMVP se actualiza basándose en la información de movimiento de un bloque anterior,
en donde para un segmento del cual una CTU de primer orden es distinta de una CTU de primer orden de una fila de CTU de la imagen actual, la memoria intermedia de HMVP se inicializa en una CTU de primer orden por cada fila de CTU del segmento,
en donde el método comprende además determinar, para un segmento actual del cual una CTU de primer orden es distinta de la CTU de primer orden de la fila de CTU de la imagen actual, si la CTU es una CTU de primer orden en una fila de CTU del segmento actual,
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, para un segmento actual del cual una CTU de primer orden es distinta de la CTU de primer orden de la fila de CTU de la imagen actual, la CTU es la CTU de primer orden en la fila de CTU del segmento actual, la memoria intermedia de HMVP se inicializa para la CTU.
ES19850303T 2018-08-13 2019-08-13 Inter prediction method based on history-based motion vector, and device therefor Active ES3025197T3 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20180094609 2018-08-13
PCT/KR2019/010312 WO2020036417A1 (ko) 2018-08-13 2019-08-13 히스토리 기반 움직임 벡터에 기반한 인터 예측 방법 및 그 장치

Publications (1)

Publication Number Publication Date
ES3025197T3 true ES3025197T3 (en) 2025-06-06

Family

ID=69525664

Family Applications (1)

Application Number Title Priority Date Filing Date
ES19850303T Active ES3025197T3 (en) 2018-08-13 2019-08-13 Inter prediction method based on history-based motion vector, and device therefor

Country Status (13)

Country Link
US (5) US10841607B2 (es)
EP (2) EP3813369B1 (es)
JP (1) JP7282872B2 (es)
KR (3) KR102745971B1 (es)
CN (4) CN116800982A (es)
BR (4) BR122021008228A2 (es)
ES (1) ES3025197T3 (es)
HR (1) HRP20250556T1 (es)
HU (1) HUE071333T2 (es)
MX (2) MX2021001670A (es)
PL (1) PL3813369T3 (es)
RS (1) RS66779B1 (es)
WO (1) WO2020036417A1 (es)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106686378B (zh) 2011-06-14 2019-10-08 三星电子株式会社 对图像进行解码的方法和设备
KR102680903B1 (ko) 2018-06-29 2024-07-04 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 Hmvp 후보를 병합/amvp에 추가할 때의 부분/풀 프루닝
WO2020003265A1 (en) 2018-06-29 2020-01-02 Beijing Bytedance Network Technology Co., Ltd. Conditions of usage of luts
EP4322533A3 (en) 2018-06-29 2024-03-06 Beijing Bytedance Network Technology Co., Ltd. Checking order of motion candidates in lut
CN110662052B (zh) 2018-06-29 2022-07-08 北京字节跳动网络技术有限公司 更新查找表(lut)的条件
KR102840294B1 (ko) * 2018-06-29 2025-07-30 두인 비전 컴퍼니 리미티드 하나 또는 다수의 룩업 테이블들을 사용하여 이전에 코딩된 모션 정보를 순서대로 저장하고 이를 사용하여 후속 블록들을 코딩하는 개념
KR102627814B1 (ko) 2018-06-29 2024-01-23 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 룩업 테이블의 업데이트: fifo, 제약된 fifo
SG11202013028PA (en) 2018-06-29 2021-01-28 Beijing Bytedance Network Technology Co Ltd Interaction between lut and amvp
WO2020003282A1 (en) 2018-06-29 2020-01-02 Beijing Bytedance Network Technology Co., Ltd. Managing motion vector predictors for video coding
CN110677669B (zh) 2018-07-02 2021-12-07 北京字节跳动网络技术有限公司 具有lic的lut
WO2020007362A1 (en) * 2018-07-06 2020-01-09 Mediatek Inc. Inherited motion information for decoding a current coding unit in a video coding system
KR20250142932A (ko) * 2018-08-10 2025-09-30 후아웨이 테크놀러지 컴퍼니 리미티드 비디오 처리 방법, 비디오 처리 장치, 인코더, 디코더, 매체 및 컴퓨터 프로그램
CN116800982A (zh) 2018-08-13 2023-09-22 Lg电子株式会社 图像编码/解码设备和图像数据发送设备
WO2020053798A1 (en) 2018-09-12 2020-03-19 Beijing Bytedance Network Technology Co., Ltd. Conditions for starting checking hmvp candidates depend on total number minus k
EP4561068A3 (en) * 2018-10-04 2025-07-30 LG Electronics Inc. History-based image coding method
US11317099B2 (en) 2018-10-05 2022-04-26 Tencent America LLC Method and apparatus for signaling an offset in video coding for intra block copy and/or inter prediction
CN112840658B (zh) * 2018-10-10 2023-04-28 华为技术有限公司 帧间预测方法及装置
CN117459721A (zh) 2018-10-24 2024-01-26 华为技术有限公司 视频编解码器和方法
CN118042115A (zh) * 2018-12-07 2024-05-14 松下电器(美国)知识产权公司 编码装置、解码装置、编码方法、解码方法和计算机可读取介质
CN112715031B (zh) 2018-12-21 2022-05-24 华为技术有限公司 一种基于历史的运动矢量预测的编码器、解码器及方法
CN112954364A (zh) 2018-12-28 2021-06-11 Jvc建伍株式会社 图像编码装置和方法、图像解码装置和方法
US11025935B2 (en) * 2019-01-10 2021-06-01 Tencent America LLC Method and apparatus for history based motion information buffer update with parallel processing capability
KR102648159B1 (ko) 2019-01-10 2024-03-18 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 Lut 업데이트의 호출
WO2020143824A1 (en) 2019-01-13 2020-07-16 Beijing Bytedance Network Technology Co., Ltd. Interaction between lut and shared merge list
CN113330739B (zh) 2019-01-16 2025-01-10 北京字节跳动网络技术有限公司 Lut中的运动候选的插入顺序
SG11202107959WA (en) 2019-02-02 2021-08-30 Beijing Bytedance Network Technology Co Ltd Buffer management for intra block copy in video coding
WO2020156549A1 (en) * 2019-02-02 2020-08-06 Beijing Bytedance Network Technology Co., Ltd. Buffer access methods for intra block copy in video coding
WO2020173477A1 (en) * 2019-02-27 2020-09-03 Beijing Bytedance Network Technology Co., Ltd. Regression-based motion vector field based sub-block motion vector derivation
EP3915265A4 (en) 2019-03-01 2022-06-22 Beijing Bytedance Network Technology Co., Ltd. DIRECTION-BASED PREDICTION FOR INTRA BLOCK COPY IN VIDEO CODING
CN113545068B (zh) 2019-03-01 2023-09-15 北京字节跳动网络技术有限公司 用于视频编解码中的帧内块复制的基于顺序的更新
KR20240132530A (ko) 2019-03-04 2024-09-03 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비디오 코딩에서 인트라 블록 복사의 구현 형태
US10979716B2 (en) * 2019-03-15 2021-04-13 Tencent America LLC Methods of accessing affine history-based motion vector predictor buffer
CN113615193B (zh) * 2019-03-22 2024-06-25 北京字节跳动网络技术有限公司 Merge列表构建和其他工具之间的交互
CN111989925B (zh) * 2019-03-22 2024-04-26 罗斯德尔动力有限责任公司 基于dmvr和bdof的帧间预测方法及其设备
CN113950838B (zh) 2019-06-06 2026-03-17 北京字节跳动网络技术有限公司 基于子块的帧内块复制
KR102662603B1 (ko) 2019-06-06 2024-04-30 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비디오 코딩을 위한 움직임 후보 리스트 구성
US11277616B2 (en) * 2019-06-20 2022-03-15 Qualcomm Incorporated DC intra mode prediction in video coding
WO2020259426A1 (en) 2019-06-22 2020-12-30 Beijing Bytedance Network Technology Co., Ltd. Motion candidate list construction for intra block copy mode
CN117294841A (zh) 2019-07-06 2023-12-26 北京字节跳动网络技术有限公司 用于视频编解码中的帧内块复制的虚拟预测缓冲
KR102635519B1 (ko) 2019-07-10 2024-02-07 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비디오 코딩에서 인트라 블록 카피를 위한 샘플 식별
KR102695788B1 (ko) 2019-07-11 2024-08-14 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비디오 코딩에서 인트라 블록 복사를 위한 비트스트림 적합 제약
US11223840B2 (en) 2019-08-19 2022-01-11 Tencent America LLC Method and apparatus for video coding
US12120289B2 (en) * 2019-08-21 2024-10-15 Lg Electronics Inc. Image encoding/decoding method and device for performing prediction on basis of HMVP candidate, and method for transmitting bitstream
WO2022031115A1 (ko) * 2020-08-06 2022-02-10 현대자동차주식회사 딥러닝 기반 인터 예측을 이용하는 영상 부호화 및 복호화
US12034949B2 (en) 2021-01-14 2024-07-09 Samsung Electronics Co., Ltd. Video decoding apparatus and video decoding method
KR102519664B1 (ko) * 2021-08-31 2023-04-10 삼성전자주식회사 스토리지 장치, 스토리지 컨트롤러 및 스토리지 컨트롤러의 동작 방법
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
US12132906B2 (en) * 2022-04-25 2024-10-29 Tencent America LLC CTU level inheritance of CABAC context initialization
WO2024184581A1 (en) * 2023-03-09 2024-09-12 Nokia Technologies Oy An apparatus, a method and a computer program for video coding and decoding

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU1412100A (en) * 1999-11-29 2001-06-12 Sony Corporation Video/audio signal processing method and video/audio signal processing apparatus
KR101762294B1 (ko) * 2011-10-18 2017-07-28 주식회사 케이티 영상 부호화 방법, 영상 복호화 방법, 영상 부호화기 및 영상 복호화기
US8964845B2 (en) * 2011-12-28 2015-02-24 Microsoft Corporation Merge mode for motion information prediction
KR20140048783A (ko) * 2012-10-09 2014-04-24 한국전자통신연구원 깊이정보값을 공유하여 움직임 정보를 유도하는 방법 및 장치
US9350970B2 (en) * 2012-12-14 2016-05-24 Qualcomm Incorporated Disparity vector derivation
US20160134883A1 (en) * 2013-04-05 2016-05-12 Samsung Electronics Co., Ltd. Video stream coding method according to prediction struction for multi-view video and device therefor, and video stream decoding method according to prediction structure for multi-view video and device therefor
CN105532004B (zh) * 2013-07-12 2019-01-25 三星电子株式会社 层间视频解码方法及设备
WO2015120823A1 (zh) * 2014-02-16 2015-08-20 同济大学 使用多种形式的参考像素存储空间的图像压缩方法和装置
US9681135B2 (en) * 2014-03-14 2017-06-13 Hfi Innovation Inc. Method for palette table initialization and management
US10021418B2 (en) * 2014-06-19 2018-07-10 Hfi Innovation Inc. Method and apparatus of candidate generation for single sample mode in video coding
KR101748620B1 (ko) * 2014-06-20 2017-07-04 성균관대학교산학협력단 영상의 부호화/복호화 방법 및 이를 이용하는 장치
WO2016056822A1 (ko) * 2014-10-08 2016-04-14 엘지전자 주식회사 3d 비디오 코딩 방법 및 장치
CN106162181B (zh) * 2015-04-09 2019-03-05 杭州海康威视数字技术股份有限公司 视频编码中背景图像的更新方法及其装置
CN105187845B (zh) * 2015-08-10 2018-07-03 珠海全志科技股份有限公司 视频数据解码装置及解码方法
JP6740549B2 (ja) * 2016-03-16 2020-08-19 日本電気株式会社 動画像符号化装置、方法、プログラム、および動画像符号化システム
FI20165547A1 (fi) * 2016-06-30 2018-12-31 Nokia Technologies Oy Laitteisto, menetelmä ja tietokoneohjelma videokoodausta ja videokoodauksen purkua varten
CN109996081B (zh) * 2017-12-31 2023-09-12 华为技术有限公司 图像预测方法、装置以及编解码器
WO2020007362A1 (en) * 2018-07-06 2020-01-09 Mediatek Inc. Inherited motion information for decoding a current coding unit in a video coding system
US11606575B2 (en) * 2018-07-10 2023-03-14 Qualcomm Incorporated Multiple history based non-adjacent MVPs for wavefront processing of video coding
US10440378B1 (en) * 2018-07-17 2019-10-08 Tencent America LLC Method and apparatus for history-based motion vector prediction with parallel processing
US10958934B2 (en) * 2018-07-27 2021-03-23 Tencent America LLC History-based affine merge and motion vector prediction
US10362330B1 (en) * 2018-07-30 2019-07-23 Tencent America LLC Combining history-based motion vector prediction and non-adjacent merge prediction
CN116800982A (zh) * 2018-08-13 2023-09-22 Lg电子株式会社 图像编码/解码设备和图像数据发送设备
US11212550B2 (en) * 2018-09-21 2021-12-28 Qualcomm Incorporated History-based motion vector prediction for affine mode
US11070796B2 (en) * 2018-09-28 2021-07-20 Qualcomm Incorporated Ultimate motion vector expression based pruning for video coding
HUE062512T2 (hu) * 2018-10-02 2023-11-28 Lg Electronics Inc Eljárás és eszköz HMVP alapján predikciós jelölt képzéséhez
EP4561068A3 (en) * 2018-10-04 2025-07-30 LG Electronics Inc. History-based image coding method
KR102578820B1 (ko) * 2018-10-05 2023-09-15 엘지전자 주식회사 히스토리 기반 움직임 정보를 이용한 영상 코딩 방법 및 그 장치
US10979716B2 (en) * 2019-03-15 2021-04-13 Tencent America LLC Methods of accessing affine history-based motion vector predictor buffer

Also Published As

Publication number Publication date
CN116800982A (zh) 2023-09-22
CN112585966B (zh) 2023-08-15
CN116781930A (zh) 2023-09-19
KR102541425B1 (ko) 2023-06-13
JP2021533681A (ja) 2021-12-02
JP7282872B2 (ja) 2023-05-29
CN112585966A (zh) 2021-03-30
US20250047894A1 (en) 2025-02-06
US20200186820A1 (en) 2020-06-11
EP4561069A2 (en) 2025-05-28
EP3813369A1 (en) 2021-04-28
KR20210010633A (ko) 2021-01-27
HRP20250556T1 (hr) 2025-07-04
MX2021001670A (es) 2021-04-19
US12155857B2 (en) 2024-11-26
MX2024002763A (es) 2024-03-27
US11632564B2 (en) 2023-04-18
EP3813369A4 (en) 2021-04-28
KR20230085219A (ko) 2023-06-13
US20230013535A1 (en) 2023-01-19
BR122021008224A2 (pt) 2021-05-04
US20240129517A1 (en) 2024-04-18
HUE071333T2 (hu) 2025-08-28
EP3813369B1 (en) 2025-04-16
KR102745971B1 (ko) 2024-12-24
CN116781931A (zh) 2023-09-19
US11895315B2 (en) 2024-02-06
BR122021008241A2 (pt) 2021-05-04
WO2020036417A1 (ko) 2020-02-20
RS66779B1 (sr) 2025-06-30
PL3813369T3 (pl) 2025-06-23
EP3813369C0 (en) 2025-04-16
BR112021002604A2 (pt) 2021-05-04
EP4561069A3 (en) 2025-08-20
US10841607B2 (en) 2020-11-17
US20210029373A1 (en) 2021-01-28
KR20250004150A (ko) 2025-01-07
BR122021008228A2 (pt) 2021-05-04

Similar Documents

Publication Publication Date Title
ES3025197T3 (en) Inter prediction method based on history-based motion vector, and device therefor
ES2966115T3 (es) Métodos de codificación de imagen basados en historial
US12289443B2 (en) Intra prediction-based image coding method and apparatus using MPM list
ES2952457T3 (es) Método y aparato para construir un candidato de predicción en base a HMVP
ES2981910T3 (es) Transformada en codificación de imágenes basada en intrapredicción
ES3057716T3 (en) Syntax design method and apparatus for performing coding by using syntax
ES2926196T3 (es) Codificación de imágenes basada en la predicción de movimiento afín usando la lista de candidatos de MVP afines
ES2988060T3 (es) Método y dispositivo para eliminar la sintaxis redundante de la sintaxis de datos de fusión
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
ES3025090T3 (en) Signaling information related to slice in image/video encoding/decoding system
BR122022025588B1 (pt) Aparelho de decodificação para decodificação de imagem, aparelho de codificação para codificação de imagem e aparelho para transmitir dados para uma imagem
BR112021025591B1 (pt) Método de decodificação de imagens realizado por um aparelho decodificador, método de codificação de imagens realizado por um aparelho codificador e meio de armazenamento digital não transitório legível por computador
BR122023007106B1 (pt) Método de decodificação/codificação de imagem realizado por um aparelho de decodificação / codificação , aparelho de decodificação/codificação para decodificação/codificação de imagem, aparelho para transmitir dados para uma imagem e meio de armazenamento digital legível por computador não transitório
BR112021020758B1 (pt) Método de decodificação de imagem realizado por um aparelho de decodificação, método de codificação de imagem realizado por um aparelho de codificação, mídia de armazenamento legível por computador não transitória e método de transmissão de dados para uma imagem