ES3063233T3 - Image decoding method and image encoding method for deriving weight index information for generation of prediction sample - Google Patents
Image decoding method and image encoding method for deriving weight index information for generation of prediction sampleInfo
- Publication number
- ES3063233T3 ES3063233T3 ES20823416T ES20823416T ES3063233T3 ES 3063233 T3 ES3063233 T3 ES 3063233T3 ES 20823416 T ES20823416 T ES 20823416T ES 20823416 T ES20823416 T ES 20823416T ES 3063233 T3 ES3063233 T3 ES 3063233T3
- Authority
- ES
- Spain
- Prior art keywords
- block
- information
- weighting index
- candidate
- merge candidate
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
- H04N19/52—Processing of motion vectors by encoding by predictive encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/109—Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N19/159—Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/527—Global motion vector estimation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/537—Motion estimation other than block-based
- H04N19/54—Motion estimation other than block-based using feature points or meshes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
Description
[0001] DESCRIPCIÓN
[0002] Método de decodificación de imagen y método de codificación de imagen para derivar información de índice de ponderación para generación de muestra de predicción
[0003] Antecedentes de la descripción
[0004] Campo de la descripción
[0005] La presente descripción se refiere a un método de decodificación de imagen y a un método de codificación de imagen para derivar información de índice de ponderación para generar una muestra de predicción.
[0006] Técnica relacionada
[0007] Recientemente, la demanda de imagen/vídeo de alta resolución y alta calidad, tal como imagen/vídeo de definición ultraalta (UHD) de 4K, 8K o más, 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 por cable/inalámbrica existente o se almacenan en un medio de almacenamiento heredado, los costes de transmisión y almacenamiento aumentan con facilidad. Además, está creciendo el interés y la demanda de contenidos de realidad virtual (VR) y 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.
[0008] Por lo tanto, se requiere una técnica de compresión de imagen/vídeo altamente eficiente para comprimir y transmitir, almacenar o reproducir de manera eficaz imágenes/vídeos de alta calidad y alta resolución que presentan diversas características como las descritas anteriormente.
[0009] El documento "Versatile Video Coding (Draft 5)", publicado el 11-06-2019 con el número de documento JVET-N1001-v8 como parte del esfuerzo de estandarización JVET en la URL http://phenix.intevry.fr/jvet/doc_end_user/documents/14_Geneva/wg11/JVET-N1001-v8.zip, describe la sintaxis y la semántica para un estándar de codificación de vídeo en desarrollo en ese momento. El estándar prevé un modo de codificación de interpredicción usando bipredicción de promedio ponderado en combinación con candidatos de fusión afines construidos.
[0010] Resumen
[0011] La invención protegida se define por la combinación de características especificadas respectivamente en las reivindicaciones independientes adjuntas. Las realizaciones preferidas se definen en las reivindicaciones dependientes. Las Figuras 12 y 14 muestran una descripción habilitante de la invención, mientras que otros aspectos, ejemplos o realizaciones se describen a continuación con fines ilustrativos para facilitar la comprensión general del contexto de la invención.
[0012] La presente descripción da a conocer un método y un aparato para aumentar la eficiencia de codificación de imagen.
[0013] La presente descripción también da a conocer un método y un aparato para derivar información de índice de ponderación para generar una muestra de predicción en interpredicción.
[0014] La presente descripción también da a conocer un método y un aparato para derivar información de índice de ponderación sobre un candidato en una lista de candidatos de fusión afines durante bipredicción.
[0015] En un aspecto de la presente descripción, se da a conocer un método de decodificación de imagen realizado por un aparato de decodificación. El método de decodificación de imagen incluye recibir información de imagen que incluye información de modo de interpredicción a través de un flujo de bits, generar una lista de candidatos de fusión para un bloque actual en base a la información de modo de interpredicción, derivar información de movimiento sobre el bloque actual en base a un candidato seleccionado de la lista de candidatos de fusión, generar muestras de predicción L0 y muestras de predicción L1 del bloque actual en base a la información de movimiento; y generar muestras de predicción del bloque actual en base a las muestras de predicción L0, las muestras de predicción L1 e información de ponderación, en donde la información de ponderación se deriva en base a información de índice de ponderación sobre el candidato seleccionado. Los candidatos incluyen un candidato de fusión afín, y el candidato de fusión afín incluye vectores de movimiento de punto de control (CPMV). Cuando el candidato de fusión afín incluye un CPMV0 para un punto de control 0 (CP0) posicionado en un lado superior izquierdo del bloque actual, la información de índice de ponderación sobre el candidato de
fusión afín se deriva en base a información de índice de ponderación 0-ésimo sobre el CP0. Cuando el candidato de fusión afín no incluye el CPMV0 para el CP0 posicionado en el lado superior izquierdo del bloque actual, la información de índice de ponderación sobre el candidato de fusión afín se deriva en base a información de índice de ponderación 1<o>sobre un CP1 posicionado en un lado superior derecho del bloque actual.
[0016] En otro aspecto de la presente descripción, se da a conocer un método de codificación de imagen realizado por un aparato de codificación. El procedimiento de codificación de imagen incluye determinar un modo de interpredicción de un bloque actual y generar información de modo de interpredicción que indica el modo de interpredicción, generar una lista de candidatos de fusión para el bloque actual en base al modo de interpredicción, generar información de selección que indica un candidato entre candidatos incluidos en la lista de candidatos de fusión, y codificar información de imagen que incluye la información de modo de interpredicción y la información de selección. Los candidatos incluyen un candidato de fusión afín, y el candidato de fusión afín incluye vectores de movimiento de punto de control (CPMV). Cuando el candidato de fusión afín incluye CPMV0 para el punto un control 0 (CP0) posicionado en un lado superior izquierdo del bloque actual, la información de índice de ponderación sobre el candidato de fusión afín se expresa en base a información de índice de ponderación 0-ésimo sobre el CP0. Cuando el candidato de fusión afín no incluye el CPMV0 para el CP0 posicionado en el lado superior izquierdo del bloque actual, la información de índice de ponderación sobre el candidato de fusión afín se expresa en base a información de índice de ponderación 1<o>sobre el punto de control 1 (CP1) posicionado en un lado superior derecho del bloque actual.
[0017] En otro aspecto adicional de la presente descripción, se da a conocer un medio de almacenamiento legible por ordenador que almacena información codificada que hace que un aparato de decodificación de imagen implemente un método de decodificación de imagen. El método de decodificación de imagen incluye obtener información de imagen que incluye información de modo de interpredicción a través de un flujo de bits, generar una lista de candidatos de fusión para un bloque actual en base a la información de modo de interpredicción, seleccionar un candidato entre candidatos incluidos en la lista de candidatos de fusión, derivar información de movimiento sobre el bloque actual en base al candidato seleccionado, generar muestras de predicción L0 y muestras de predicción L1 del bloque actual en base a la información de movimiento, y generar muestras de predicción del bloque actual en base a las muestras de predicción L0, las muestras de predicción L1 e información de ponderación. La información de ponderación se deriva en base a información de índice de ponderación sobre el candidato seleccionado. Los candidatos incluyen un candidato de fusión afín, y el candidato de fusión afín incluye vectores de movimiento de punto de control (CPMV). Cuando el candidato de fusión afín incluye CPMV0 para un punto de control 0 (CP0) posicionado en un lado superior izquierdo del bloque actual, la información de índice de ponderación sobre el candidato de fusión afín se deriva en base a información de índice de ponderación 0-ésimo sobre el CP0. Cuando el candidato de fusión afín no incluye el CPMV0 para el CP0 posicionado en el lado superior izquierdo del bloque actual, la información de índice de ponderación sobre el candidato de fusión afín se deriva en base a información de índice de ponderación 1<o>sobre el punto de control 1 (CP1).
[0018] Según la presente descripción, es posible aumentar la eficiencia de compresión de imagen/vídeo general. Según la presente, es posible construir eficientemente candidatos de vector de movimiento durante interpredicción.
[0019] Según la presente descripción, es posible realizar eficientemente bipredicción en base a ponderación.
[0020] Breve descripción de los dibujos
[0021] La FIG. 1 es un diagrama que ilustra esquemáticamente un ejemplo de un sistema de codificación de vídeo/imagen en donde se pueden aplicar realizaciones de la presente descripción.
[0022] La FIG. 2 es un diagrama que ilustra esquemáticamente una configuración de un aparato de codificación de vídeo/imagen en donde se pueden aplicar realizaciones de la presente descripción.
[0023] La FIG.3 es un diagrama que ilustra esquemáticamente una configuración de un aparato de decodificación de vídeo/imagen en donde se pueden aplicar realizaciones de la presente descripción.
[0024] La FIG.4 es un diagrama que ilustra un ejemplo de un procedimiento de interpredicción.
[0025] La FIG.5 es un diagrama para explicar un modo de fusión en interpredicción.
[0026] La FIG.6 es un diagrama que ilustra un ejemplo de un movimiento representado por un modelo de movimiento afín.
[0027] Las FIGS. 7A y 7B son diagramas que ilustran un ejemplo de vectores de movimiento de punto de control (CPMV) para predicción de movimiento afín.
[0028] La FIG. 8 es un diagrama que ilustra un ejemplo en donde se determina un MVF afín en una unidad de subbloque.
[0029] La FIG.9 es un diagrama para explicar un modo de fusión afín en interpredicción.
[0030] La FIG.10 es un diagrama para explicar posiciones de candidatos en el modo de fusión afín.
[0031] La FIG. 11 es un diagrama para explicar predicción de vector de movimiento temporal en base a subbloque (SbTMVP) en interpredicción.
[0032] Las FIGS.12 y 13 son diagramas que ilustran esquemáticamente un ejemplo de un método de codificación de vídeo/imagen según una realización o realizaciones de la presente descripción y componentes relacionados. Las FIGS. 14 y 15 son diagramas que ilustran esquemáticamente un ejemplo de un método de decodificación de imagen/vídeo según una realización o realizaciones de la presente descripción y componentes relacionados. La FIG.16 es un diagrama que ilustra un ejemplo de un sistema de transmisión continua de contenido en donde se pueden aplicar realizaciones de la presente descripción.
[0033] Descripción de realizaciones ilustrativas
[0034] La presente descripción puede modificarse de diversas maneras y tener varias realizaciones ilustrativas. Por lo tanto, las realizaciones ilustrativas específicas de la presente descripción se ilustrarán en los dibujos adjuntos y se describirán en detalle. Sin embargo, esto no pretende limitar la presente descripción a realizaciones específicas. Los términos usados en la presente memoria descriptiva se usan solo para describir realizaciones ilustrativas específicas en lugar de para limitar la presente descripción. Las formas singulares pretenden incluir formas plurales, a menos que el contexto indique claramente lo contrario. Debe entenderse que los términos "incluir", "tener" o similares, usados en la presente memoria descriptiva especifican la presencia de características, números, etapas, operaciones, componentes, partes o una combinación de los mismos establecida en la presente memoria descriptiva, pero no excluyen la presencia o adición de una o más características, números, etapas, operaciones, componentes, partes adicionales, o una combinación de los mismos.
[0035] Asimismo, cada componente en los dibujos descritos en la presente descripción se ilustra independientemente por conveniencia de la descripción con respecto a diferentes funciones características, y esto no significa que cada componente se implemente como hardware separado o software separado. Por ejemplo, dos o más componentes entre cada componente pueden combinarse para formar un componente, o un componente puede dividirse en una pluralidad de componentes. Las realizaciones en donde cada componente está integrado y/o separado también están incluidas en el alcance de la presente descripción.
[0036] En la presente descripción, "A o B" puede significar "solo A", "solo B" o "tanto A como B". En otras palabras, "A o B" en la presente descripción puede interpretarse como "A y/o B". Por ejemplo, en la presente descripción, "A, B o C" significa "solo A", "solo B", "solo C" o "cualquiera y cualquier combinación de A, B y C".
[0037] Una barra inclinada (/) o una coma (coma) usada en la presente descripción puede significar "y/o". Por ejemplo, "A/B" puede significar "y/o B". Por consiguiente, "A/B" puede significar "solo A", "solo B" o "tanto A como B". Por ejemplo, "A, B, C" puede significar "A, B o C".
[0038] En la presente memoria descriptiva, "al menos uno de A y B" puede significar "solo A", "solo B" o "tanto A como B". Además, en la presente memoria descriptiva, la expresión "al menos uno de A o B" o "al menos uno de A y/o B" puede interpretarse igual que "al menos uno de A y B".
[0039] Asimismo, en la presente memoria descriptiva, "al menos uno de A, B y C" puede significar "solo A", "solo B", "solo C" o "cualquier combinación de A, B y C". Además, "al menos uno de A, B o C" o "al menos uno de A, B y/o C" puede significar "al menos uno de A, B y C".
[0040] Además, los paréntesis usados en la presente memoria descriptiva pueden significar "por ejemplo". Específicamente, en el caso de que se exprese "predicción (intrapredicción)", puede indicarse que se propone "intrapredicción" como ejemplo de "predicción". En otras palabras, el término "predicción" en la presente memoria descriptiva no se limita a "intrapredicción", y puede indicarse que se propone "intrapredicción" como un ejemplo de "predicción". Además, incluso en el caso de que se exprese "predicción (es decir, intrapredicción)", puede indicarse que se propone "intrapredicción" como un ejemplo de "predicción".
[0041] En la presente memoria descriptiva, las características técnicas explicadas individualmente en un dibujo pueden implementarse individualmente o pueden implementarse simultáneamente.
[0042] En lo sucesivo, las realizaciones de la presente descripción se describirán en detalle con referencia a los dibujos adjuntos. Además, se usan números de referencia similares para indicar elementos similares en todos los dibujos, y se pueden omitir las mismas descripciones de los elementos similares.
[0043] La FIG. 1 ilustra un ejemplo de un sistema de codificación de vídeo/imagen en donde se pueden aplicar las realizaciones de la presente descripción.
[0044] Con referencia a la FIG. 1, un sistema de codificación de vídeo/imagen puede incluir un primer dispositivo (un dispositivo de origen) y un segundo dispositivo (un dispositivo de recepción). El dispositivo de origen 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 transmisión continua.
[0045] El dispositivo de origen 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 incluirse en el aparato de codificación. El receptor puede incluirse en el aparato de decodificación. El renderizador puede incluir una pantalla, y la pantalla puede configurarse como un dispositivo separado o un componente externo.
[0046] La fuente de vídeo puede adquirir vídeo/imagen a través de un proceso de captura, síntesis o generación del vídeo/imagen. La fuente de vídeo puede incluir un dispositivo de captura de vídeo/imagen y/o un dispositivo de generación de vídeo/imagen. El dispositivo de captura de video/imagen puede incluir, por ejemplo, una o más cámaras, archivos de video/imagen que incluyen video/imágenes capturados previamente y similares. El dispositivo de generación 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.
[0047] 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 lograr compacidad y eficiencia de codificación. Los datos codificados (información de vídeo/imagen codificada) pueden emitirse en forma de un flujo de bits.
[0048] El transmisor puede transmitir la información o datos de imagen/imagen codificados emitidos en forma de un flujo de bits al receptor del dispositivo de recepción a través de un medio de almacenamiento digital o una red en forma de un archivo o transmisión continua. El medio de almacenamiento digital puede incluir diversos medios de almacenamiento, tales como USB, SD, CD, DVD, Blu-ray, HDD, SSD y similares. El transmisor puede incluir un elemento para generar un archivo de medios a través de un formato de archivo predeterminado y puede incluir un elemento para la transmisión a través de una red de difusión/comunicación. El receptor puede recibir/extraer el flujo de bits y transmitir el flujo de bits recibido al aparato de decodificación.
[0049] El aparato de decodificación puede decodificar el vídeo/imagen realizando una serie de procedimientos tales como descuantificación, transformación inversa y predicción en correspondencia con la operación del aparato de codificación.
[0050] El renderizador puede renderizar el vídeo/imagen decodificado. El vídeo/imagen renderizado puede mostrarse a través de la pantalla.
[0051] La presente descripción se refiere a la codificación de vídeo/imagen. Por ejemplo, el método/realización descrito en la presente descripción puede aplicarse en los métodos descritos en un estándar de codificación de vídeo versátil (VVC), un estándar de codificación de vídeo esencial (EVC), un estándar AOMedia Vídeo 1 (AV1), un estándar de codificación de vídeo y audio de 2a generación (AVS2) o un estándar de codificación de vídeo/imagen de próxima generación (p. ej., H.267 o H.268, etc.).
[0052] Este documento sugiere diversas realizaciones de codificación de vídeo/imagen, y las realizaciones anteriores también pueden realizarse en combinación entre sí, a menos que se especifique lo contrario.
[0053] En este documento, un vídeo puede referirse a una serie de imágenes a lo largo del tiempo. Una imagen (picture, en inglés) se refiere generalmente a la unidad que representa una imagen en un intervalo de tiempo particular, y un segmento (slice, en inglés)/tesela (tile, en inglés) se refiere a la unidad que constituye una parte de 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.
[0054] 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 elementos de sintaxis en el conjunto de parámetros de imagen. La fila de teselas es una región rectangular de CTU que tiene una altura especificada por elementos de sintaxis en el conjunto de parámetros de imagen y una anchura igual a la anchura de la imagen. Un escaneo de teselas es un ordenamiento secuencial específico de CTU que dividen una imagen, en donde las CTU se ordenan consecutivamente en un escaneo de trama (raster scan, en inglés) 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 puede comprender un número de teselas completas o un número de filas de CTU consecutivas en una tesela de una imagen que puede estar contenida en una unidad NAL. En este documento, grupo de teselas y segmento se pueden usar indistintamente. Por ejemplo, en este documento, un grupo de teselas/cabecera de grupo de teselas puede denominarse segmento/ cabecera de segmento.
[0056] Asimismo, una imagen puede dividirse en dos o más subimágenes. La subimagen puede ser una región rectangular de uno o más segmentos dentro de una imagen.
[0058] Un píxel o un pel puede significar la unidad más pequeña que constituye una imagen (picture) (o imagen). Además, 'muestra' puede usarse como un término correspondiente a un píxel. Una muestra puede representar generalmente un píxel o un valor de un píxel, y puede representar solo un píxel/valor de píxel de un componente de luma o solo un píxel/valor de píxel de un componente de croma.
[0060] Una unidad puede representar una unidad básica de procesamiento de imagen. 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 (p. ej. 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 transformación de M columnas y N filas. Alternativamente, la muestra puede significar un valor de píxel en el dominio espacial, y cuando dicho valor de píxel se transforma al dominio de frecuencia, puede significar un coeficiente de transformación en el dominio de frecuencia.
[0062] La FIG. 2 es un diagrama que ilustra esquemáticamente la configuración de un aparato de codificación de vídeo/imagen en donde se puede aplicar la descripción del presente documento. En lo sucesivo, lo que se denomina aparato de codificación de vídeo puede incluir un aparato de codificación de imagen.
[0064] Con referencia a la FIG.2, el aparato de codificación 200 puede incluir y configurarse con un particionador de imagen 210, un predictor 220, un procesador residual 230, un codificador de entropía 240, 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 puede denominarse reconstructor o generador de bloques reconstruidos. El particionador de imagen 210, el predictor 220, el procesador residual 230, el codificador de entropía 240, el sumador 250 y el filtro 260, que se han descrito anteriormente, pueden configurarse mediante uno o más componentes de hardware (p. ej., conjuntos de chips o procesadores de codificador) según una realización. Además, la memoria 270 puede incluir un búfer de imágenes decodificadas (DPB) y también puede configurarse mediante un medio de almacenamiento digital. El componente de hardware puede incluir además la memoria 270 como un componente interno/externo.
[0066] El particionador de imagen 210 puede dividir una entrada de imagen de entrada (o imagen, fotograma) al aparato de codificación 200 en una o más unidades de procesamiento. Como ejemplo, la unidad de procesamiento puede denominarse unidad de codificación (CU). En este caso, la unidad de codificación puede dividirse recursivamente según una estructura de árbol cuádruple, árbol binario, árbol ternario (QTBTTT) a partir de una unidad de árbol de codificación (CTU) o la 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 con una mayor profundidad en base a una estructura de árbol cuádruple, una estructura de árbol binario y/o una estructura de árbol ternario. En este caso, por ejemplo, se aplica primero la estructura de árbol cuádruple y la estructura de árbol binario y/o la estructura de árbol ternario pueden aplicarse posteriormente. Alternativamente, la estructura de árbol binario también puede aplicarse en primer lugar. Un procedimiento de codificación según la presente descripción puede realizarse en base a una unidad de codificación final que ya no se divide. En este caso, en base a la eficiencia de codificación según características de imagen o similares, la unidad de codificación máxima puede usarse directamente como la unidad de codificación final, o según sea necesario, la unidad de codificación puede dividirse recursivamente en unidades de codificación con una mayor profundidad, de manera que puede usarse una unidad de codificación que tiene un tamaño óptimo como la unidad de codificación final. En este caso, el procedimiento de codificación puede incluir un procedimiento tal como predicción, transformación y reconstrucción, que se describirá más adelante. A título de ejemplo adicional, la unidad de procesamiento puede incluir además un predictor (PU) o una unidad de transformación (TU). En este caso, cada uno del predictor y la unidad de transformación puede dividirse o particionarse a partir de la unidad
de codificación final mencionada anteriormente. El predictor puede ser una unidad de predicción de muestra, y la unidad de transformación puede ser una unidad para inducir un coeficiente de transformación y/o una unidad para inducir una señal residual a partir del coeficiente de transformación.
[0068] La unidad puede usarse indistintamente con un término tal como un bloque o un área en algunos casos. En general, un bloque MxN puede representar muestras compuestas por M columnas y N filas o un grupo de coeficientes de transformación. La muestra puede representar generalmente un píxel o un valor del píxel, y también puede representar solo el píxel/valor de píxel de un componente de luma, y también representar solo el píxel/valor de píxel de un componente de croma. La muestra puede usarse como el término en correspondencia con un píxel o un pel que configura una imagen (picture) (o imagen).
[0070] El aparato de codificación 200 puede restar la señal de predicción (bloque previsto, matriz de muestras de predicción) emitida desde el interpredictor 221 o el intrapredictor 222 de la señal de imagen de entrada (bloque original, matriz de muestras originales) para generar una señal residual (bloque residual, matriz de muestras residuales), y la señal residual generada se transmite al transformador 232. En este caso, tal como se ilustra, una unidad para restar la señal de predicción (bloque de predicción, matriz de muestras de predicción) de una 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 objetivo de procesamiento (en lo sucesivo, denominado bloque actual) y generar un bloque previsto que incluye muestras de predicción para el bloque actual. El predictor puede determinar si la intrapredicción o la interpredicción se aplica en unidades de un bloque o CU actual. El predictor puede generar información diversa sobre la predicción, tal como información de modo de predicción, y transmitir la información generada al codificador de entropía 240, tal como se describe a continuación en la descripción de cada modo de predicción. La información sobre la predicción puede codificarse mediante el codificador de entropía 240 y emitirse en forma de un flujo de bits.
[0071] El intrapredictor 222 puede predecir un bloque actual con referencia a muestras dentro de una imagen actual. Las muestras referenciadas pueden ubicarse adyacentes al bloque actual, o también pueden ubicarse alejadas del bloque actual según el modo de predicción. Los modos de predicción en la intrapredicción pueden incluir una pluralidad de modos no direccionales y una pluralidad de modos direccionales. El modo no direccional puede incluir, por ejemplo, un modo DC o 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 fino de la dirección de predicción. Sin embargo, esto es ilustrativo y es posible usar más o menos modos de predicción direccional que el número anterior según la disposición. El intrapredictor 222 también puede determinar el modo de predicción aplicado al bloque actual usando el modo de predicción aplicado al bloque vecino.
[0073] El interpredictor 221 puede inducir un bloque previsto del bloque actual en base a un bloque de referencia (matriz de muestras de referencia) especificado por un vector de movimiento en una imagen de referencia. En este momento, para disminuir la cantidad de información de movimiento transmitida en el modo de interpredicción, la información de movimiento puede predecirse en unidades de un bloque, un subbloque o una muestra en base a la correlación de la información de movimiento entre el bloque vecino y el bloque actual. La información de movimiento puede incluir un vector de movimiento y un índice de imagen de referencia. La información de movimiento puede incluir además información de dirección de interpredicción (predicción L0, predicción L1, predicción Bi o similares). En el caso de la interpredicción, el bloque vecino puede incluir un bloque vecino espacial existente dentro de la imagen actual y un bloque vecino temporal existente en la imagen de referencia. La imagen de referencia que incluye el bloque de referencia y la imagen de referencia que incluye el bloque vecino temporal también pueden ser iguales entre sí, y también pueden ser diferentes entre sí. El bloque vecino temporal puede denominarse bloque de referencia coubicado, CU coubicada (colCU) o similar, y la imagen de referencia que incluye el bloque vecino temporal también puede denominarse imagen coubicada (colPic). Por ejemplo, el interpredictor 221 puede configurar una lista de candidatos de información de movimiento en base a los bloques vecinos, y generar información que indica qué candidato se usa para derivar el vector de movimiento y/o el índice de imagen de referencia del bloque actual. La interpredicción puede realizarse en base a diversos modos de predicción y, por ejemplo, en el caso de un modo de omisión y un modo de fusión, el interpredictor 221 puede usar la información de movimiento del bloque vecino como la información de movimiento del bloque actual. En el caso del modo de omisión, la señal residual puede no transmitirse, a diferencia del modo de fusión. Un modo de predicción de vector de movimiento (MVP) puede indicar el vector de movimiento del bloque actual usando el vector de movimiento del bloque vecino como un predictor de vector de movimiento, y señalando una diferencia de vector de movimiento.
[0075] El predictor 220 puede generar una señal de predicción en base a diversos métodos de predicción, que se describirán a continuación. Por ejemplo, el predictor puede aplicar intrapredicción o interpredicción para la predicción de un bloque y puede aplicar simultáneamente intrapredicción e interpredicción. Esto puede denominarse inter e intrapredicción combinadas (CIIP). Además, el predictor puede basarse en un modo de predicción de copia intrabloque (IBC) o basarse en un modo de paleta para la predicción de un bloque. El modo de predicción de IBC o el modo de paleta pueden usarse para la codificación de imagen/vídeo de contenido, tal como juegos, por ejemplo, codificación de contenido de pantalla (SCC). La IBC básicamente realiza la predicción dentro de la imagen actual, pero puede realizarse de manera similar a la interpredicción por el hecho
de que se deriva un bloque de referencia dentro de 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 verse como un ejemplo de intracodificación o intrapredicción. Cuando se aplica el modo de paleta, un valor de muestra en la imagen puede señalarse en base a información sobre la tabla de paleta y el índice de paleta.
[0077] La señal de predicción generada por el predictor (incluyendo el interpredictor 221 y/o el intrapredictor 222) puede usarse para generar una señal reconstruida o puede usarse para generar una señal residual. El transformador 232 puede generar coeficientes de transformación aplicando una técnica de transformación a la señal residual. Por ejemplo, la técnica de transformación puede incluir al menos una de una transformación de coseno discreta (DCT), una transformación de seno discreta (DST), una transformación de Karhunen-Loeve (KLT), una transformación basada en gráficos (GBT) o una transformación condicionalmente no lineal (CNT). En este caso, GBT se refiere a una transformación obtenida a partir de un gráfico cuando se expresa información de relación entre píxeles en el gráfico. CNT se refiere a la transformación obtenida en base a una señal de predicción generada usando todos los píxeles reconstruidos previamente. Además, el proceso de transformación puede aplicarse a un bloque de píxeles con el mismo tamaño que un cuadrado o puede aplicarse a un bloque de un tamaño variable que no es un cuadrado.
[0079] El cuantificador 233 cuantifica los coeficientes de transformación y los transmite al codificador de entropía 240, y el codificador de entropía 240 codifica la señal cuantificada (información sobre los coeficientes de transformación cuantificados) y emite la señal codificada como un flujo de bits. La información sobre los coeficientes de transformación cuantificados puede denominarse información residual. El cuantificador 233 puede reorganizar los coeficientes de transformación cuantificados en la forma de bloque en una forma de vector unidimensional en base a un orden de escaneo de coeficientes y puede generar información sobre los coeficientes de transformación en base a los coeficientes de transformación cuantificados en la forma de vector unidimensional. El codificador de entropía 240 puede realizar diversos métodos de codificación, tales como, por ejemplo, Golomb exponencial, codificación de longitud variable adaptativa al contexto (CAVLC) y codificación aritmética binaria adaptativa al contexto (CABAC). El codificador de entropía 240 puede codificar la información necesaria para la reconstrucción de vídeo/imagen (p. ej., valores de elementos de sintaxis, etc.) además de los coeficientes de transformación cuantificados, conjuntamente o por separado. La información codificada (p. ej., información de vídeo/imagen codificada) puede transmitirse o almacenarse en unidades de una unidad de capa de abstracción de red (NAL) 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 de sintaxis transmitidos/señalados desde el aparato de codificación al aparato de decodificación pueden incluirse en la información de vídeo/imagen. La información de vídeo/imagen puede codificarse a través del procedimiento de codificación descrito anteriormente e incluirse en el flujo de bits. El flujo de bits puede transmitirse a través de una red o puede almacenarse en un medio de almacenamiento digital. En este caso, la red puede incluir una red de difusión y/o una red de comunicación, y el medio de almacenamiento digital puede incluir diversos medios de almacenamiento, tales como USB, SD, CD, DVD, Blu-ray, HDD y SSD. Una unidad de transmisión (no mostrada) y/o una unidad de almacenamiento (no mostrada) para transmitir o almacenar una señal emitida desde el codificador de entropía 240 pueden configurarse como elementos internos/externos del aparato de codificación 200, o la unidad de transmisión puede incluirse en el codificador de entropía 240.
[0081] Los coeficientes de transformación cuantificados emitidos desde el cuantificador 233 pueden usarse para generar una señal de predicción. Por ejemplo, la señal residual (bloque residual o muestras residuales) puede reconstruirse aplicando descuantificación y transformación inversa a los coeficientes de transformación cuantificados a través del descuantificador 234 y la unidad de transformación inversa 235. El sumador 250 puede sumar la señal residual reconstruida a la señal de predicción emitida desde el interpredictor 221 o el intrapredictor 222 para generar una señal reconstruida (imagen reconstruida, bloque reconstruido, matriz de muestras reconstruidas). Cuando no existe ningún residuo para el bloque objetivo de procesamiento, tal como cuando se aplica el modo de omisión, el bloque previsto puede usarse como un bloque reconstruido. El sumador 250 puede denominarse unidad de restauración o generador de bloques de restauración. La señal reconstruida generada puede usarse para la intrapredicción de un siguiente bloque objetivo de procesamiento en la imagen actual, o puede usarse para la interpredicción de la siguiente imagen después de filtrarse como se describe a continuación.
[0083] Asimismo, es posible aplicar mapeo de luma con escalado de croma (LMCS) durante un proceso de codificación y/o reconstrucción de imagen.
[0085] 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, en un 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 diversos tipos de información relacionada con el filtrado, y transferir la información generada al codificador de entropía 240, como se describe más adelante en la descripción de cada método de filtrado. La información relacionada con el filtrado puede ser codificada por el codificador de entropía 240 y emitida en forma de un flujo de bits.
[0086] La imagen reconstruida modificada transmitida a la memoria 270 puede usarse como una imagen de referencia en el interpredictor 221. Cuando la interpredicción se aplica a través del aparato de codificación, puede evitarse una falta de coincidencia de predicción entre el aparato de codificación 200 y el aparato de decodificación y puede mejorarse la eficiencia de codificación.
[0087] El DPB de la memoria 270 puede almacenar la imagen reconstruida modificada para su uso como imagen de referencia en el interpredictor 221. La memoria 270 puede almacenar información de movimiento de un bloque del que se deriva (o codifica) la información de movimiento en la imagen actual y/o información de movimiento de bloques en la imagen, que ya se ha reconstruido. La información de movimiento almacenada puede transferirse al interpredictor 221 para utilizarse como información de movimiento del bloque vecino espacial o información de movimiento del bloque vecino temporal. La memoria 270 puede almacenar muestras reconstruidas de bloques reconstruidos en la imagen actual, y puede transferir las muestras reconstruidas al intrapredictor 222.
[0088] Asimismo, en este documento, al menos una de cuantificación/descuantificación y/o transformación/transformación inversa puede omitirse. Cuando se omite la cuantificación/descuantificación, el coeficiente de transformación cuantificado puede denominarse coeficiente de transformación. Cuando se omite la transformación/transformación inversa, el coeficiente de transformación puede denominarse coeficiente o coeficiente residual o puede seguir denominándose coeficiente de transformación, a efectos de uniformidad de expresión.
[0089] Además, en este documento, el coeficiente de transformación cuantificado y el coeficiente de transformación pueden denominarse coeficiente de transformación y coeficiente de transformación escalado, respectivamente. En este caso, la información residual puede incluir información sobre un coeficiente o coeficientes de transformación, y la información sobre el coeficiente o coeficientes de transformación puede señalarse a través de sintaxis de codificación residual. Los coeficientes de transformación pueden derivarse en base a la información residual (o información sobre el coeficiente o coeficientes de transformación), y los coeficientes de transformación escalados pueden derivarse a través de transformación inversa (escalado) sobre los coeficientes de transformación. Se pueden derivar muestras residuales en base a transformación inversa (transformación) de los coeficientes de transformación escalados. Esto puede aplicarse/expresarse también en otras partes de este documento.
[0090] La FIG.3 es un diagrama para explicar esquemáticamente la configuración de un aparato de decodificación de vídeo/imagen en donde puede aplicarse la descripción del presente documento.
[0091] Con referencia a la FIG.3, el aparato de decodificación 300 puede incluir y configurarse con un decodificador de entropía 310, un procesador residual 320, un predictor 330, un sumador 340, un filtro 350 y una memoria 360. El predictor 330 puede incluir un intrapredictor 331 y un interpredictor 332. El procesador residual 320 puede incluir un descuantificador 321 y un transformador inverso 322. El decodificador de entropía 310, el procesador residual 320, el predictor 330, el sumador 340 y el filtro 350, que se han descrito anteriormente, pueden configurarse mediante uno o más componentes de hardware (p. ej., conjuntos de chips o procesadores de decodificador) según una realización. Además, la memoria 360 puede incluir un búfer de imágenes decodificadas (DPB) y puede configurarse mediante un medio de almacenamiento digital. El componente de hardware puede incluir además la memoria 360 como un componente interno/externo.
[0092] Cuando se introduce el flujo de bits que incluye la información de vídeo/imagen, el aparato de decodificación 300 puede reconstruir la imagen en respuesta a un proceso en donde la información de vídeo/imagen se procesa en el aparato de codificación ilustrado en la FIG. 2. Por ejemplo, el aparato de decodificación 300 puede derivar las unidades/bloques en base a información relacionada con división de bloque adquirida a partir del flujo de bits. El aparato de decodificación 300 puede realizar decodificación usando la unidad de procesamiento aplicada al aparato de codificación. Por lo tanto, la unidad de procesamiento para la decodificación puede ser, por ejemplo, una unidad de codificación, y la unidad de codificación puede dividirse según la estructura de árbol cuádruple, la estructura de árbol binario y/o la estructura de árbol ternario a partir de la unidad de árbol de codificación o la unidad de codificación máxima. Una o más unidades de transformación pueden derivarse de la unidad de codificación. Además, la señal de imagen reconstruida decodificada y emitida a través del aparato 300 de decodificación puede reproducirse a través de un aparato de reproducción.
[0093] El aparato 300 de decodificación puede recibir una señal emitida desde el aparato de codificación de la figura 2 en forma de un flujo de bits, y la señal recibida puede decodificarse a través del decodificador 310 de entropía.
[0094] Por ejemplo, el decodificador de entropía 310 puede analizar el flujo de bits para derivar información (p. ej., información de vídeo/imagen) necesaria para la reconstrucción de imagen (o reconstrucción de imagen (picture)). La información de vídeo/imagen puede incluir además información sobre diversos conjuntos de parámetros, tales como un conjunto de parámetros de adaptación (APS), un conjunto de parámetros de imagen (PPS), un conjunto de parámetros de secuencia (SPS) o un conjunto de parámetros de vídeo (VPS). Además, la información de vídeo/imagen puede incluir también información de restricción general. El aparato de decodificación puede decodificar además una imagen en base a la información sobre el conjunto de parámetros y/o la información de restricción general. La información y/o los elementos de sintaxis señalados/recibidos descritos más adelante en este documento pueden decodificarse pueden decodificar el procedimiento de decodificación y obtenerse a partir del flujo de bits. Por ejemplo, el decodificador de entropía 310 decodifica la información en el flujo de bits en base a un método de codificación, tal como codificación exponencial de Golomb, codificación de longitud variable adaptativa al contexto (CAVLC) o codificación aritmética adaptativa al contexto (CABAC) y emite elementos de sintaxis requeridos para reconstrucción de imagen y valores cuantificados de coeficientes de transformación para residuo. Más específicamente, el método de decodificación por entropía CABAC puede recibir un bin en correspondencia con cada elemento de sintaxis en el flujo de bits, determinar un modelo de contexto usando una información de elemento de sintaxis objetivo de decodificación, decodificar información de un bloque objetivo de decodificación o 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 ocurrencia de un bin según el modelo de contexto determinado, y generar un símbolo en correspondencia con el valor de cada elemento de sintaxis. En este caso, el método de decodificación por entropía 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 de entropía 310 puede proporcionarse al predictor (interpredictor 332 e intrapredictor 331), y los valores residuales en donde se ha realizado la decodificación por entropía en el decodificador de entropía 310, es decir, los coeficientes de transformación cuantificados e información de parámetros relacionada, pueden introducirse en el procesador residual 320.
[0096] El descuantificador 321 puede descuantificar los coeficientes de transformación cuantificados para emitir los coeficientes de transformación. El descuantificador 321 puede reorganizar los coeficientes de transformación cuantificados en una forma de bloque bidimensional. En este caso, la reorganización puede realizarse en base a un orden de escaneo de coeficientes realizado por el aparato de codificación. El descuantificador 321 puede realizar descuantificación para los coeficientes de transformación cuantificados usando un parámetro de cuantificación (p. ej., información de tamaño de etapa de cuantificación), y adquirir los coeficientes de transformación.
[0098] El transformador inverso 322 transforma inversamente los coeficientes de transformación para adquirir la señal residual (bloque residual, matriz de muestras residuales).
[0100] El predictor 330 puede realizar la predicción del bloque actual y generar un bloque previsto que incluye las muestras de predicción del bloque actual. El predictor puede determinar si se aplica la intrapredicción o si se aplica la interpredicción al bloque actual en base a la información sobre predicción emitida desde el decodificador de entropía 310, y determinar un modo de intrapredicción/interpredicción específico.
[0102] El predictor 330 puede generar una señal de predicción en base a diversos métodos de predicción, que se describirán a continuación. Por ejemplo, el predictor puede aplicar intrapredicción o interpredicción para la predicción de un bloque, y puede aplicar simultáneamente intrapredicción e interpredicción. Esto puede denominarse interpredicción e intrapredicción combinadas (CIIP). Además, el predictor puede basarse en un modo de predicción de copia intrabloque (IBC) o basarse en un modo de paleta para la predicción de un bloque. El modo de predicción de IBC o el modo de paleta pueden usarse para la codificación de imagen/vídeo de contenido, tal como juegos, por ejemplo, codificación de contenido de pantalla (SCC). La IBC puede realizar básicamente predicción dentro de la imagen actual, pero puede realizarse de manera similar a la interpredicción por el hecho de que se deriva un bloque de referencia dentro de 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, puede incluirse información sobre la tabla de paleta y el índice de paleta en la información de vídeo/imagen y señalarse.
[0104] El intrapredictor 3321 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 del bloque actual según el modo de predicción. En 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 a aplicar al bloque actual usando el modo de predicción aplicado al bloque vecino.
[0105] El interpredictor 332 puede derivar un bloque previsto para el bloque actual en base a 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 que se transmite en el modo de interpredicción, la información de movimiento puede predecirse en la unidad de bloques, subbloques o muestras en base a una correlación de información de movimiento entre el bloque vecino y el bloque actual. La información de movimiento puede incluir un vector de movimiento y un índice de imagen de referencia. La información de movimiento puede incluir además información sobre dirección de interpredicción (predicción L0, predicción L1, predicción Bi y similares). En caso de interpredicción, el bloque vecino puede incluir un bloque vecino espacial existente en la imagen actual y un bloque vecino temporal existente en la imagen de referencia. Por ejemplo, el interpredictor 332 puede construir una lista de candidatos de información de movimiento en base a bloques vecinos, y derivar un vector de movimiento del bloque actual y/o un índice de imagen de referencia en base a la información de selección de candidatos recibida. La interpredicción puede realizarse en base a 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.
[0106] El sumador 340 puede generar una señal reconstruida (imagen reconstruida, bloque reconstruido o matriz de muestras reconstruidas) sumando la señal residual obtenida a la señal de predicción (bloque previsto o matriz de muestras previstas) emitida desde el predictor (incluyendo el interpredictor 332 y/o el intrapredictor 331). Si no existe ningún residuo para el bloque objetivo de procesamiento, tal como un caso en donde se aplica un modo de omisión, el bloque previsto puede usarse como el bloque reconstruido.
[0107] El sumador 340 puede denominarse reconstructor o generador de bloques reconstruidos. La señal reconstruida generada puede usarse para la intrapredicción de un siguiente bloque que va a procesarse en la imagen actual, y tal como se describe más adelante, también puede emitirse a través de filtrado o también puede usarse para la interpredicción de una imagen siguiente.
[0108] Asimismo, también es posible aplicar un mapeo de luma con escalado de croma (LMCS) en el proceso de decodificación de imagen.
[0109] 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, en un 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.
[0110] La imagen reconstruida (modificada) almacenada en el DPB de la memoria 360 puede usarse como una imagen de referencia en el interpredictor 332. La memoria 360 puede almacenar la información de movimiento del bloque de donde 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 ha reconstruido. La información de movimiento almacenada puede transferirse al interpredictor 332 para utilizarse como la información de movimiento del bloque vecino espacial o la información de movimiento del bloque vecino temporal. La memoria 360 puede almacenar muestras reconstruidas de bloques reconstruidos en la imagen actual, y transferir las muestras reconstruidas al intrapredictor 331.
[0111] En esta descripción, las realizaciones descritas en el filtro 260, el interpredictor 221 y el intrapredictor 222 del aparato de codificación 200 pueden aplicarse por igual o de forma correspondiente con respecto al filtro 350, el interpredictor 332 y el intrapredictor 331.
[0112] Asimismo, tal como se ha descrito anteriormente, al realizar codificación de vídeo, se realiza predicción para mejorar la eficiencia de compresión. Con ello, se puede generar un bloque previsto que incluye muestras de predicción para un bloque actual, como un bloque a codificar (es decir, un bloque objetivo de codificación). En este caso, el bloque previsto incluye muestras de predicción en un dominio espacial (o dominio de píxeles). El bloque previsto se deriva de la misma manera en un aparato de codificación y un aparato de decodificación, y el aparato de codificación puede señalar información (información residual) sobre el residuo entre el bloque original y el bloque previsto, en lugar de un valor de muestra original de un bloque original, al aparato de decodificación, aumentando de este modo la eficiencia de codificación de imagen. El aparato de decodificación puede derivar un bloque residual que incluye muestras residuales en base a la información residual, añadir el bloque residual y el bloque previsto para generar bloques reconstruidos que incluyen muestras reconstruidas y generar una imagen reconstruida que incluye los bloques reconstruidos.
[0113] La información residual puede generarse a través de un procedimiento de transformación y cuantificación. Por ejemplo, el aparato de codificación puede derivar un bloque residual entre el bloque original y el bloque previsto, realizar un procedimiento de transformación en muestras residuales (matriz de muestras residuales) incluidas en el bloque residual para derivar coeficientes de transformación, realizar un procedimiento de cuantificación en los coeficientes de transformación para derivar coeficientes de transformación cuantificados, y señalar
información residual relacionada al aparato de decodificación (a través de un flujo de bits). En este caso, la información residual puede incluir información de valor de coeficientes de transformación cuantificados, información de ubicación, una técnica de transformación, un núcleo de transformación, un parámetro de cuantificación y similares. El aparato de decodificación puede realizar un procedimiento de descuantificación/transformación inversa en base a la información residual y derivar muestras residuales (o bloques residuales). El aparato de decodificación puede generar una imagen reconstruida en base al bloque previsto y el bloque residual. Además, a efectos de referencia para interpredicción de una imagen posterior, el aparato de codificación también puede descuantificar/transformar inversamente los coeficientes de transformación cuantificados para derivar un bloque residual y generar una imagen reconstruida en base a ello.
[0114] La FIG.4 es un diagrama que ilustra un ejemplo de un procedimiento de interpredicción.
[0116] Con referencia a la FIG. 4, el procedimiento de interpredicción puede incluir determinar un modo de interpredicción, derivar información de movimiento según el modo de predicción determinado y realizar predicción en base a la información de movimiento derivada (generar una muestra de predicción). El procedimiento de interpredicción puede realizarse mediante un aparato de codificación y un aparato de decodificación, tal como se describió anteriormente. En la presente descripción, un aparato de codificación puede incluir un aparato de codificación y/o un aparato de decodificación.
[0118] Con referencia a la FIG. 4, el aparato de codificación determina un modo de interpredicción para un bloque actual en la operación S400. Se pueden usar varios modos de interpredicción para predicción del bloque actual en una 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 un modo de fusión con MVD (MMVD). Un modo de refinamiento de vector de movimiento de lado de decodificador (DMVR), un modo de resolución de vector de movimiento adaptativa (AMVR), una bipredicción con ponderación a nivel de CU (BCW), un flujo óptico bidireccional (BDOF), etc., se pueden usar además como un modo auxiliar o se pueden usar en su lugar. El modo afín puede denominarse modo de predicción de movimiento afín. El modo MVP puede denominarse modo de predicción de vector de movimiento avanzada (AMVP). En la presente descripción, algunos modos y/o candidatos de información de movimiento derivados por algunos modos pueden incluirse como uno de candidatos relacionados con información de movimiento de otros modos. Por ejemplo, el candidato HMVP puede añadirse como un candidato de fusión del modo de fusión/omisión, o puede añadirse como un candidato MVP del modo MVP. Cuando el candidato HMVP se usa como un candidato de información de movimiento del modo de fusión o modo de omisión, el candidato HMVP puede denominarse candidato de fusión HMVP.
[0120] La información de modo de predicción que indica un modo de interpredicción del bloque actual puede señalarse desde el aparato de codificación al aparato de decodificación. La información de modo de predicción puede incluirse en un flujo de bits y recibirse mediante 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 candidatos. Alternativamente, el modo de interpredicción puede indicarse 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, se señala un indicador de omisión para indicar si aplicar el modo de omisión; cuando no se aplica el modo de omisión, se señala un indicador de fusión para indicar si aplicar el modo de fusión; y cuando no se aplica el modo de fusión, puede indicarse que se aplica el modo MVP o puede señalarse adicionalmente un indicador para clasificación adicional. El modo afín puede señalarse como un modo independiente, o puede señalarse como un modo dependiente del modo de fusión o el modo MVP. Por ejemplo, el modo afín puede incluir un modo de fusión afín y un modo MVP afín.
[0122] El aparato de codificación deriva información de movimiento sobre el bloque actual en la operación S410. La información de movimiento puede derivarse en base al modo de interpredicción.
[0124] El aparato de codificación puede realizar interpredicción usando información de movimiento sobre el bloque actual. El aparato de codificación puede derivar información de movimiento óptimo sobre 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 con alta correlación en una unidad de píxel fraccional dentro de un intervalo de búsqueda predeterminado en una imagen de referencia usando un bloque original en una imagen original para el bloque actual, y puede derivar información de movimiento usando el bloque de referencia similar. Una similitud de bloques puede derivarse en base a una diferencia entre valores de muestra basados en fase. Por ejemplo, la similitud de bloques puede calcularse en base a una SAD entre el bloque actual (o una plantilla del bloque actual) y un bloque de referencia (o una plantilla del bloque de referencia). En este caso, la información de movimiento puede derivarse en base a un bloque de referencia que tiene una SAD más pequeña en un área de búsqueda. La información de movimiento derivada puede señalarse al aparato de decodificación según cualquiera de los diversos métodos en base al modo de interpredicción.
[0126] El aparato de codificación realiza interpredicción en base a la información de movimiento sobre el bloque actual en la operación S420. El aparato de codificación puede derivar una muestra o muestras de predicción para el
bloque actual en base a la información de movimiento. El bloque actual que incluye las muestras de predicción puede denominarse bloque previsto.
[0127] La FIG.5 es un diagrama para explicar un modo de fusión en interpredicción.
[0128] Cuando se aplica el modo de fusión, la información de movimiento sobre el bloque de predicción actual no se transmite directamente, sino que la información de movimiento sobre el bloque de predicción actual se deriva usando información de movimiento sobre un bloque de predicción vecino. Por consiguiente, la información de movimiento sobre el bloque de predicción actual puede indicarse transmitiendo información de indicador que indica que se usa el modo de fusión y un índice de fusión que indica qué bloque de predicción en las proximidades se usa. El modo de fusión puede denominarse modo de fusión regular. Por ejemplo, el modo de fusión puede aplicarse cuando un valor de un elemento de sintaxis regular_merge_flag es 1.
[0129] Para realizar el modo de fusión, el aparato de codificación necesita buscar un bloque candidato de fusión usado para derivar información de movimiento sobre el bloque de predicción actual. Por ejemplo, se pueden usar hasta cinco bloques candidatos de fusión, pero la realización o realizaciones de la presente descripción no se limitan a ello. Además, el número máximo de bloques candidatos de fusión puede transmitirse en una cabecera de segmento o una cabecera de grupo de teselas, pero la realización o realizaciones de la presente descripción no se limitan a ello. Después de encontrar los bloques candidatos de fusión, el aparato de codificación puede generar una lista de candidatos de fusión, y puede seleccionar un bloque candidato de fusión que tiene el coste más pequeño entre los bloques candidatos de fusión como un bloque candidato de fusión final.
[0130] La presente descripción puede dar a conocer diversas realizaciones de bloques candidatos de fusión que constituyen la lista de candidatos de fusión.
[0131] Por ejemplo, la lista de candidatos de fusión puede usar cinco bloques candidatos de fusión. Por ejemplo, se pueden usar cuatro candidatos de fusión espacial y un candidato de fusión temporal. Como ejemplo específico, en el caso del candidato de fusión espacial, los bloques ilustrados en la FIG.4 pueden usarse como candidatos de fusión espacial. En lo sucesivo, el candidato de fusión espacial o un candidato MVP espacial, que se describirá más adelante, se puede denominar un SMVP, y el candidato de fusión temporal o un candidato MVP temporal, que se describirá más adelante, se puede denominar un TMVP.
[0132] La lista de candidatos de fusión para el bloque actual puede construirse, por ejemplo, en base al siguiente procedimiento.
[0133] El aparato de codificación (aparato de codificación/aparato de decodificación) puede insertar candidatos de fusión espacial, que se derivan buscando bloques vecinos espaciales del bloque actual, en la lista de candidatos de fusión. Por ejemplo, los bloques vecinos espaciales pueden 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. Sin embargo, esto es simplemente un ejemplo, y además de los bloques vecinos espaciales descritos anteriormente, otros bloques vecinos, tales como un bloque vecino derecho, un bloque vecino inferior y un bloque vecino inferior derecho, pueden usarse adicionalmente como los bloques vecinos espaciales. El aparato de codificación puede detectar bloques disponibles buscando los bloques vecinos espaciales en base a prioridad, y puede derivar información de movimiento sobre los bloques detectados como los candidatos de fusión espacial. Por ejemplo, el aparato de codificación o el aparato de decodificación pueden buscar cinco bloques mostrados en la FIG.5 según el orden A1→B1 B0→A0→B2, e indexar secuencialmente candidatos disponibles para construir una lista de candidatos de fusión.
[0134] El aparato de codificación puede buscar un bloque vecino temporal del bloque actual e insertar un candidato de fusión temporal derivado en la lista de candidatos de fusión. El bloque vecino temporal puede posicionarse en una imagen de referencia que es una imagen diferente de la imagen actual en donde se posiciona el bloque actual. La imagen de referencia en donde se posicionan los bloques vecinos temporales puede denominarse imagen coubicada o imagen col. Los bloques vecinos temporales pueden buscarse en el orden del bloque vecino de esquina inferior derecha y el bloque central inferior derecho del bloque coubicado con respecto al bloque actual en la imagen col. Asimismo, cuando se aplica compresión de datos de movimiento, es posible almacenar información de movimiento específica como información de movimiento representativa sobre cada unidad de almacenamiento predeterminada en la imagen col. En este caso, no existe necesidad de almacenar información de movimiento sobre todos los bloques en la unidad de almacenamiento predeterminada, y a través de esto, se puede obtener un efecto de compresión de datos de movimiento. En este caso, la unidad de almacenamiento predeterminada puede predeterminarse como, por ejemplo, unidades de 16x16 muestras o unidades de 8x8 muestras, o es posible señalar información de tamaño sobre la unidad de almacenamiento predeterminada desde el aparato de codificación al aparato de decodificación. Cuando se aplica compresión de datos de movimiento, la información de movimiento sobre los bloques temporalmente vecinos puede reemplazarse por información de movimiento representativa sobre la unidad de almacenamiento predeterminada en donde se posicionan los bloques temporalmente vecinos. Es decir, en este caso, desde un
punto de vista de implementación, en lugar del bloque previsto posicionado en las coordenadas de los bloques temporalmente vecinos, el candidato de fusión temporal puede derivarse en base a la información de movimiento sobre el bloque de predicción que cubre la posición desplazada a la izquierda aritmética después de un desplazamiento a la derecha aritmético según un cierto valor en base a las coordenadas (posición de muestra superior izquierda) del bloque vecino temporal. Por ejemplo, cuando la unidad de almacenamiento predeterminada son unidades de 2nx2n muestras, si las coordenadas de los bloques temporalmente vecinos son (xTnb, yTnb), la información de movimiento sobre el bloque de predicción posicionado en la posición corregida ((xTnb>>n)<<n), (yTnb>>n)<<n)) puede usarse para el candidato de fusión temporal. Específicamente, cuando la unidad de almacenamiento predeterminada son unidades de 16x16 muestras, si las coordenadas de los bloques temporalmente vecinos son (xTnb, yTnb), la información de movimiento sobre el bloque de predicción posicionado en la posición corregida ((xTnb>>4)<<4), (yTnb>>4)<<4)) puede usarse para el candidato de fusión temporal. Alternativamente, cuando la unidad de almacenamiento predeterminada son unidades de 8x8 muestras, si las coordenadas de los bloques temporalmente vecinos son (xTnb, yTnb), la información de movimiento sobre el bloque de predicción posicionado en la posición corregida ((xTnb>>3)<<3), (yTnb>>3)<<3)) puede usarse para el candidato de fusión temporal.
[0136] El aparato de codificación puede comprobar si el número de candidatos de fusión actuales es menor que el número de candidatos de fusión máximos. El número máximo de candidatos de fusión puede predefinirse o señalarse desde el aparato de codificación al aparato de decodificación. Por ejemplo, el aparato de codificación puede generar y codificar información sobre el número máximo de candidatos de fusión, y transmitir la información al decodificador en forma de un flujo de bits. Cuando se llena el número máximo de candidatos de fusión, el proceso de adición de candidatos posterior puede no proceder.
[0138] Como resultado de la comprobación, cuando el número actual de candidatos de fusión es menor que el número máximo de candidatos de fusión, el aparato de codificación puede insertar un candidato de fusión adicional en la lista de candidatos de fusión. Por ejemplo, los candidatos de fusión adicionales pueden incluir al menos uno de un candidato o candidatos de fusión en base a historial, un candidato o candidatos de fusión de promedio por pares, ATMVP, un candidato de fusión bipredictivo combinado (cuando el tipo de grupo segmento/tesela del grupo segmento/tesela actual es tipo B) y/o un candidato de fusión de vector cero, que se describirá más adelante.
[0140] Como resultado de la comprobación, cuando el número actual de candidatos de fusión no es menor que el número máximo de candidatos de fusión, el aparato de codificación puede terminar la construcción de la lista de candidatos de fusión. En este caso, el aparato de codificación puede seleccionar un candidato de fusión óptimo entre los candidatos de fusión que constituyen la lista de candidatos de fusión en base al coste de tasadistorsión (RD), y señalar información de selección que indica el candidato de fusión seleccionado (p. ej., índice de fusión) al aparato de decodificación. El aparato de decodificación puede seleccionar el candidato de fusión óptimo en base a la lista de candidatos de fusión y la información de selección.
[0142] Tal como se ha descrito anteriormente, la información de movimiento sobre el candidato de fusión seleccionado puede usarse como la información de movimiento sobre el bloque actual, y las muestras de predicción del bloque actual pueden derivarse en base a la información de movimiento sobre el bloque actual. El aparato de codificación puede derivar muestras residuales del bloque actual en base a las muestras de predicción, y puede señalar información residual sobre las muestras residuales al aparato de decodificación. Tal como se ha descrito anteriormente, el aparato de decodificación puede generar muestras reconstruidas en base a muestras residuales derivadas en base a la información residual y las muestras de predicción, y puede generar una imagen reconstruida en base a ello.
[0144] Cuando se aplica el modo de omisión, la información de movimiento sobre el bloque actual puede derivarse de la misma manera que cuando se aplica el modo de fusión. Sin embargo, cuando se aplica el modo de omisión, se omite la señal residual para el bloque correspondiente y, por lo tanto, las muestras de predicción pueden usarse directamente como muestras reconstruidas. El modo de omisión puede aplicarse, por ejemplo, cuando el valor del elemento de sintaxis cu_skip_flag es 1.
[0146] Asimismo, el candidato de fusión de promedio por pares puede denominarse candidato promedio por pares o candidato por pares. El candidato o candidatos promedio por pares pueden generarse promediando pares de candidatos predefinidos en una lista de candidatos de fusión existente. Además, los pares predefinidos pueden definirse como {(0, 1), (0, 2), (1, 2), (0, 3), (1, 3), (2, 3)}. En este caso, los números pueden indicar índices de fusión para la lista de candidatos de fusión. Un vector de movimiento promediado puede calcularse por separado para cada lista de referencia. Por ejemplo, cuando dos vectores de movimiento están disponibles en una lista, los dos vectores de movimiento pueden promediarse incluso si apuntan a diferentes imágenes de referencia. Por ejemplo, cuando solo está disponible un vector de movimiento, puede usarse directamente un vector de movimiento. Por ejemplo, cuando no existen vectores de movimiento disponibles, la lista puede permanecer inválida.
[0147] Por ejemplo, cuando la lista de candidatos de fusión no está llena, incluso después de añadir candidatos de fusión de promedio por pares, es decir, cuando el número de candidatos de fusión actuales en la lista de candidatos de fusión es menor que el número de candidatos de fusión máximos, puede insertarse un vector cero (MVP cero) en último lugar hasta que aparezca el número máximo de candidatos de fusión. Es decir, se puede insertar un vector cero hasta que el número de candidatos de fusión actuales en la lista de candidatos de fusión se convierta en el número máximo de candidatos de fusión.
[0148] Asimismo, convencionalmente, solo se puede usar un vector de movimiento para expresar un movimiento de un bloque de codificación. Es decir, se puede usar un modelo de movimiento de traslación. Sin embargo, aunque este método puede haber expresado el movimiento óptimo en una unidad de bloque, no es el movimiento óptimo real de cada muestra, y si es posible determinar un vector de movimiento óptimo en una unidad de muestra, la eficiencia de codificación puede mejorar. Con tal fin, se puede usar un modelo de movimiento afín. El método de predicción de movimiento afín, que va a realizar codificación usando el modelo de movimiento afín, puede expresar eficazmente cuatro movimientos, tal como se describe a continuación. La FIG. 6 es un diagrama que ilustra un ejemplo de un movimiento expresado por un modelo de movimiento afín.
[0149] Con referencia a la FIG. 6, los movimientos que pueden expresarse mediante el modelo de movimiento afín pueden incluir un movimiento de traslación, un movimiento de escala, un movimiento de rotación y un movimiento de cizalladura. Es decir, no solo el movimiento de traslación, en donde (una parte de) la imagen se mueve en un plano a lo largo del tiempo como se muestra en la FIG.6, sino también el movimiento de escala, en donde (una parte de) la imagen se escala a lo largo del tiempo, el movimiento de rotación, en donde (una parte de) la imagen gira a lo largo del tiempo, y el movimiento de cizalladura, en donde (una parte de) la imagen se deforma hasta una forma de paralelogramo a lo largo del tiempo, pueden expresarse eficientemente a través de la predicción de movimiento afín.
[0150] El aparato de codificación/aparato de decodificación puede predecir una forma distorsionada de una imagen en base a vectores de movimiento en puntos de control (CP) del bloque actual a través de la predicción de movimiento afín. Haciendo esto, el aparato de codificación/aparato de decodificación puede aumentar la precisión de la predicción, mejorando así el rendimiento en la compresión de la imagen. Además, un vector de movimiento para al menos un punto de control del bloque actual puede derivarse usando un vector de movimiento de un bloque vecino del bloque actual, reduciendo de ese modo la cantidad de datos sobre información adicional añadida y mejorando la eficiencia de interpredicción.
[0151] Un modelo de movimiento afín que expresa tres movimientos (traslación, escala y rotación) entre los movimientos que pueden expresarse mediante el modelo de movimiento afín puede denominarse modelo de movimiento afín de similitud (o simplificado). Sin embargo, el modelo de movimiento afín no se limita al modelo de movimiento descrito anteriormente.
[0152] El método de predicción de movimiento afín puede expresar un vector de movimiento en cada unidad de muestra de un bloque usando dos, tres o cuatro vectores de movimiento.
[0153] Las FIGS. 7A y 7B son diagramas que ilustran un ejemplo de vectores de movimiento de punto de control (CPMV) para predicción de movimiento afín.
[0154] En la predicción de movimiento afín, es posible determinar un vector de movimiento de una posición de muestra que se incluye en un bloque usando dos o más vectores de movimiento de punto de control (CPMV). En este caso, un conjunto de vectores de movimiento puede denominarse campo de vectores de movimiento afín (MVF).
[0155] Por ejemplo, la FIG.7A puede ilustrar un caso en donde se usan dos CPMV, lo cual puede denominarse modelo afín de 4 parámetros. En este caso, un vector de movimiento en una posición de muestra (x, y) puede determinarse, por ejemplo, como en la Ecuación 1.
[0156] [Ecuación 1]
[0159]
[0161] Por ejemplo, la FIG.7B puede ilustrar un caso en donde se usan tres CPMV, lo cual puede denominarse modelo afín de 6 parámetros. En este caso, un vector de movimiento en una posición de muestra de (x, y) puede determinarse, por ejemplo, como en la Ecuación 2.
[0162] [Ecuación 2]
[0165]
[0167] En las ecuaciones 1 y 2, {vx, vy} puede indicar un vector de movimiento en la posición de (x, y). Además, {v0x, v0y} puede indicar un CPMV de un punto de control (CP) en la esquina superior izquierda del bloque de codificación, {v1x, v1y} puede indicar un CPMV de un CP en la esquina superior derecha del bloque de codificación, y {v2x, v2y} puede indicar un CPMV de un CP en la esquina inferior izquierda del bloque de codificación. Además, W puede indicar una anchura del bloque actual, y H puede indicar una altura del bloque actual.
[0168] La FIG. 8 es un diagrama que ilustra un ejemplo en donde se determina un MVF afín en una unidad de subbloque.
[0169] En un proceso de codificación/decodificación, el MVF afín puede determinarse en una unidad de muestra o en una unidad de subbloque predefinida. Por ejemplo, cuando el MVF afín se determina en una unidad de muestra, se puede obtener un vector de movimiento en base a cada valor de muestra. Alternativamente, por ejemplo, cuando el MVF afín se determina en una unidad de subbloque, se puede obtener un vector de movimiento de un bloque correspondiente en base a un valor de muestra del centro (que es el lado inferior derecho del centro, es decir, la muestra inferior derecha entre las cuatro muestras centrales) de los subbloques. Es decir, el vector de movimiento del bloque actual en la estimación de movimiento afín puede derivarse en una unidad de muestra o subbloque.
[0170] En el caso de la FIG. 8, el MVF afín se determina en la unidad de subbloque de 4x4, pero el tamaño de los subbloques puede modificarse de diversas maneras.
[0171] Es decir, cuando la predicción afín está disponible, tres modelos de movimiento aplicables al bloque actual pueden incluir un modelo de movimiento de traslación, un modelo de movimiento afín de 4 parámetros y un modelo de movimiento afín de 6 parámetros. En este caso, el modelo de movimiento de traslación puede representar un modelo en donde se usa el vector de movimiento de unidad de bloque existente, el modelo de movimiento afín de 4 parámetros puede representar un modelo en donde se usan dos CPMV, y el modelo de movimiento afín de 6 parámetros puede representar un modelo en donde se usan tres CPMV.
[0172] Asimismo, la predicción de movimiento afín puede incluir un modo MVP afín (o interafín) o un modo de fusión afín.
[0173] La FIG.9 es un diagrama para explicar un modo de fusión afín en interpredicción.
[0174] Por ejemplo, en el modo de fusión afín, el CPMV puede determinarse según el modelo de movimiento afín del bloque vecino codificado por la predicción de movimiento afín. Por ejemplo, los bloques vecinos codificados como predicción de movimiento afín en orden de búsqueda pueden usarse para modo de fusión afín. Es decir, cuando al menos uno de los bloques vecinos se codifica en la predicción de movimiento afín, el bloque actual puede codificarse en el modo de fusión afín. En este caso, el modo de fusión fina puede denominarse AF_MERGE.
[0175] Cuando se aplica el modo de fusión afín, los CPMV del bloque actual pueden derivarse usando CPMV de bloques vecinos. En este caso, los CPMV del bloque vecino pueden usarse como los CPMV del bloque actual tal como están, y los CPMV del bloque vecino pueden modificarse en base al tamaño del bloque vecino y el tamaño del bloque actual y usarse como los CPMV del bloque actual.
[0176] Por otro lado, en el caso del modo de fusión afín en donde el vector de movimiento (MV) se deriva en unidades de subbloques, puede denominarse un modo de fusión de subbloque, que puede indicarse en base a un indicador de fusión de subbloque (o un elemento de sintaxis merge_subblock_flag). Alternativamente, cuando el valor del elemento de sintaxis merge_subblock_flag es 1, puede indicarse que se aplica el modo de fusión de subbloque. En este caso, una lista de candidatos de fusión afines, que se describirá más adelante, puede denominarse una lista de candidatos de fusión de subbloque. En este caso, la lista de candidatos de fusión de subbloque puede incluir además un candidato derivado por SbTMVP, que se describirá más adelante. En este caso, el candidato derivado por la SbTMVP puede usarse como candidato de índice 0 de la lista de candidatos de fusión de subbloque. En otras palabras, el candidato derivado de la SbTMVP puede posicionarse antes de un candidato afín heredado o un candidato afín construido, lo que se describirá más adelante, en la lista de candidatos de fusión de subbloque.
[0177] Cuando se aplica el modo de fusión afín, la lista de candidatos de fusión afines puede construirse para derivar CPMV para el bloque actual. Por ejemplo, la lista de candidatos de fusión afines puede incluir al menos uno de los siguientes candidatos.1) Un candidato de fusión afín heredado. 2) Candidato de fusión afín construido.3) Candidato de vector de movimiento cero (o vector cero). En este caso, el candidato de fusión afín heredado es un candidato derivado en base a los CPMV del bloque vecino cuando el bloque vecino se codifica en modo afín, el candidato de fusión afín construido es un candidato derivado construyendo los CPMV en base a las MV de bloques vecinos del CP correspondiente en unidades de cada CPMV, y el candidato de vector de movimiento cero puede indicar un candidato compuesto por CPMV cuyo valor es 0.
[0178] La lista de candidatos de fusión afines puede construirse tal como sigue, por ejemplo.
[0179] Es posible la presencia de hasta dos candidatos afines heredados, y los candidatos afines heredados pueden derivarse de modelos de movimiento afines de bloques vecinos. Los bloques vecinos pueden contener un bloque vecino izquierdo y un bloque vecino superior. Los bloques candidatos pueden posicionarse tal como se ilustra en la FIG.4. Un orden de escaneo para un predictor izquierdo puede ser A<1>→ A<0>, y un orden de escaneo para el predictor superior puede ser B<1>→ B<0>→ B<2>. Es posible seleccionar solamente un candidato heredado de cada uno del izquierdo y el superior. Es posible no realizar una comprobación de poda entre dos candidatos heredados.
[0180] Cuando se identifica un bloque afín vecino, los vectores de movimiento de punto de control del bloque identificado pueden usarse para derivar un candidato de CPMVP en la lista de fusión afín del bloque actual. En este caso, el bloque afín vecino puede indicar un bloque codificado en el modo de predicción afín entre bloques vecinos del bloque actual. Por ejemplo, con referencia a la FIG. 8, cuando un bloque vecino inferior izquierdo A se codifica en el modo de predicción afín, se puede obtener un vector de movimiento v2 de la esquina superior izquierda del bloque vecino A, un vector de movimiento v2 de la esquina superior derecha del bloque vecino A y un vector de movimiento v4 de la esquina inferior izquierda del bloque vecino A. Cuando el bloque vecino A se codifica con el modelo de movimiento afín de 4 parámetros, se pueden calcular dos CPMV del bloque actual según v2 y v3. Cuando el bloque vecino A se codifica con el modelo de movimiento afín de 6 parámetros, se pueden calcular tres CPMV del bloque actual según v2, v3 y v4.
[0181] La FIG.10 es un diagrama para explicar las posiciones de los candidatos en el modo de fusión afín.
[0182] Un candidato afín construido puede referirse a un candidato construido combinando información de movimiento de traslación vecino sobre cada punto de control. La información de movimiento sobre puntos de control puede derivarse de vecindades espaciales y vecindades temporales especificadas. CPMVk (k=0, 1, 2, 3) puede indicar un k-ésimo punto de control.
[0183] Con referencia a la FIG.10, para CPMV0, los bloques pueden comprobarse en el orden B2 → B3 → A2 y puede usarse un vector de movimiento de un primer bloque disponible. Para CPMV1, los bloques pueden comprobarse en el orden B1 → B0. Para CPMV2, los bloques pueden comprobarse en el orden A1 → A0. Se puede usar un predictor de vector de movimiento temporal (TMVP) como CPMV3, en caso de estar disponible. Después de obtener vectores de movimiento de cuatro puntos de control, los candidatos de fusión afines pueden generarse en base a la información de movimiento adquirida. La combinación de los vectores de movimiento de punto de control puede corresponder a uno cualquiera de {CPMV0, CPMV1, CPMV2}, {CPMV0, CPMV1, CPMV3}, {CPMV0, CPMV2, CPMV3}, {CPMV1, CPMV2, CPMV3}, {CPMV0, CPMV1} y {CPMV0, CPMV2}.
[0184] Una combinación de tres CPMV puede constituir un candidato de fusión afín de 6 parámetros, y una combinación de dos CPMV puede constituir un candidato de fusión afín de 4 parámetros. Para evitar el proceso de escalado de movimiento, cuando los índices de referencia de los puntos de control son diferentes, pueden descartarse las combinaciones relevantes de los vectores de movimiento de punto de control.
[0185] La FIG.11 es un diagrama para explicar la predicción de vector de movimiento temporal en base a subbloque (SbTMVP) en interpredicción.
[0186] Asimismo, también puede usarse el método de predicción de vector de movimiento temporal en base a subbloque (SbTMVP). Por ejemplo, la SbTMVP puede denominarse predicción de vector de movimiento temporal avanzada (ATMVP). La SbTMVP puede usar un campo de movimiento en una imagen coubicada para mejorar la predicción de vector de movimiento y el modo de fusión para CU en la imagen actual. En este caso, la imagen coubicada puede denominarse imagen col.
[0187] Por ejemplo, la SbTMVP puede predecir movimiento a nivel de subbloque (o sub-CU). Además, la SbTMVP puede aplicar un desplazamiento de movimiento antes de obtener la información de movimiento temporal de la imagen col. En este caso, el desplazamiento de movimiento puede adquirirse a partir de un vector de movimiento de uno de los bloques espacialmente vecinos del bloque actual.
[0188] La SbTMVP puede predecir el vector de movimiento de un subbloque (o sub-CU) en el bloque actual (o CU) según dos etapas.
[0189] En la primera etapa, los bloques espacialmente vecinos pueden probarse según el orden A<1>, B<1>, B<0>y A<0>en la FIG.4. Se puede comprobar un primer bloque vecino espacial que tiene un vector de movimiento que usa una imagen col como su imagen de referencia, y el vector de movimiento se puede seleccionar como un desplazamiento de movimiento a aplicar. Cuando un movimiento de este tipo no se comprueba a partir de bloques espacialmente vecinos, el desplazamiento de movimiento puede establecerse en (0, 0).
[0190] En la segunda etapa, el desplazamiento de movimiento comprobado en la primera etapa puede aplicarse para obtener información de movimiento a nivel de subbloque (vector de movimiento e índices de referencia) de la imagen col. Por ejemplo, el desplazamiento de movimiento puede añadirse a las coordenadas del bloque actual. Por ejemplo, el desplazamiento de movimiento puede establecerse en el movimiento de A<1>de la FIG.
[0191] 4. En este caso, para cada subbloque, la información de movimiento sobre un bloque correspondiente en la imagen col puede usarse para derivar la información de movimiento sobre el subbloque. El escalado de movimiento temporal puede aplicarse para alinear imágenes de referencia de vectores de movimiento temporal con imágenes de referencia del bloque actual.
[0192] La lista de fusión en base a subbloque combinada que incluye tanto candidatos de SbTVMP como candidatos de fusión afines puede usarse para la señalización del modo de fusión afín. En este caso, el modo de fusión afín puede denominarse modo de fusión en base a subbloque. El modo SbTVMP puede estar disponible o no estar disponible según un indicador incluido en un conjunto de parámetros de secuencia (SPS). Cuando el modo SbTMVP está disponible, el predictor de SbTMVP puede añadirse como la primera entrada de la lista de candidatos de fusión en base a subbloque, los candidatos de fusión afines pueden ser los siguientes. El tamaño máximo permisible de la lista de candidatos de fusión afines puede ser cinco.
[0193] El tamaño de la sub-CU (o subbloque) usada en la SbTMVP puede fijarse como 8x8, y de la misma manera que en el modo de fusión afín, el modo SbTMVP puede aplicarse solo a bloques que tienen tanto una anchura como una altura de 8 o más. La lógica de codificación del candidato de fusión de SbTMVP adicional puede ser la misma que la de otros candidatos de fusión. Es decir, para cada CU en el segmento P o B, se puede realizar una comprobación de RD usando un coste de distorsión de tasa (RD) adicional para determinar si usar el candidato de SbTMVP.
[0194] Asimismo, el bloque previsto para el bloque actual puede derivarse en base a la información de movimiento derivada según el modo de predicción. El bloque previsto puede incluir muestras de predicción (matriz de muestras de predicción) del bloque actual. Cuando el vector de movimiento del bloque actual indica una unidad de muestra fraccional, se puede realizar un procedimiento de interpolación. A través de esto, las muestras de predicción del bloque actual pueden derivarse en base a las muestras de referencia de unidad de muestra fraccional en la imagen de referencia. Cuando la interpredicción afín (modo de predicción afín) se aplica al bloque actual, las muestras de predicción pueden generarse en base a una unidad de muestra/subbloque MV. Cuando se aplica la bipredicción, las muestras de predicción pueden usarse como las muestras de predicción del bloque actual derivadas a través de una suma ponderada o promedio ponderado (según una fase) de las muestras de predicción derivadas en base a la predicción L0 (es decir, predicción usando la imagen de referencia y MVL0 en la lista de imágenes de referencia L0) y las muestras de predicción derivadas en base a la predicción L1 (es decir, predicción usando la imagen de referencia y MVL1 en la lista de imágenes de referencia L1). En este caso, el vector de movimiento en la dirección L0 puede denominarse vector de movimiento L0 o MVL0, y el vector de movimiento en la dirección L1 puede denominarse vector de movimiento L1 o MVL1. En el caso en donde se aplica la bipredicción, cuando la imagen de referencia usada para la predicción L0 y la imagen de referencia usada para la predicción L1 se posicionan en diferentes direcciones temporales con respecto a la imagen actual (es decir, caso correspondiente a la dirección bidireccional o bipredicción), puede denominarse una bipredicción verdadera.
[0195] Además, tal como se ha descrito anteriormente, las muestras reconstruidas y las imágenes reconstruidas pueden generarse en base a las muestras de predicción derivadas y, así, pueden realizarse procedimientos tales como filtrado en bucle.
[0196] Asimismo, cuando la bipredicción se aplica al bloque actual, las muestras de predicción pueden derivarse en base a un promedio ponderado. Por ejemplo, la bipredicción que usa el promedio ponderado puede denominarse bipredicción con ponderación a nivel de CU (BCW), bipredicción con promedio ponderado (BWA) o bipredicción de promedio ponderado.
[0197] Convencionalmente, la señal de bipredicción (es decir, muestras de bipredicción) puede derivarse a través de un promedio simple de la señal de predicción L0 (muestras de predicción L0) y las señales de predicción L1. Es decir, las muestras de bipredicción se derivan como un promedio de las muestras de predicción L0 en base a la imagen de referencia L0 y MVL0 y las muestras de predicción L1 en base a la imagen de referencia L1 y
MVL1. Sin embargo, cuando se aplica la bipredicción, la señal de bipredicción (muestras de bipredicción) puede derivarse a través del promedio ponderado de la señal de predicción L0 y la señal de predicción L1 de la siguiente manera. Por ejemplo, las señales de bipredicción (muestras de bipredicción) pueden derivarse como en la Ecuación 3.
[0198] [Ecuación 3]
[0200]
[0201] En la ecuación 3, Pbi-pred puede indicar un valor de una señal de bipredicción, es decir, un valor de muestra de predicción derivado aplicando bipredicción, y w puede indicar una ponderación. Además, P0 puede indicar el valor de la señal de predicción L0, es decir, el valor de muestra de predicción derivado aplicando la predicción L0, y P1 puede indicar el valor de la señal de predicción L1, es decir, el valor de muestra de predicción derivado aplicando la predicción L1.
[0202] Por ejemplo, se pueden permitir 5 ponderaciones en la bipredicción de promedio ponderado. Por ejemplo, las cinco ponderaciones w pueden incluir -2, 3, 4, 5 o 10. Es decir, la ponderación w puede determinarse como uno de los candidatos de ponderación que incluyen -2, 3, 4, 5 o 10. Para cada CU en donde se aplica la bipredicción, la ponderación w puede determinarse mediante uno de dos métodos. En el primer método, el índice de ponderación puede señalarse después de una diferencia de vector de movimiento para una CU no fusionada. En el segundo método, un índice de ponderación para una CU fusionada puede inferirse a partir de bloques vecinos en base a un índice candidato de fusión.
[0203] Por ejemplo, la bipredicción de promedio ponderado puede aplicarse a una CU que tiene 256 o más muestras de luma. Es decir, cuando el producto de la anchura por la altura de la CU es mayor o igual a 256, se puede aplicar la bipredicción de promedio ponderado. En el caso de una imagen de bajo retardo (bajo retardo), se pueden usar cinco ponderaciones, y en el caso de una imagen que no es de bajo retardo, se pueden usar tres ponderaciones. Por ejemplo, las tres ponderaciones pueden incluir 3, 4 o 5.
[0204] Por ejemplo, en el aparato de codificación, se puede aplicar un algoritmo de búsqueda rápida para encontrar un índice de ponderación sin aumentar significativamente la complejidad del aparato de codificación. Este algoritmo puede resumirse como sigue. Por ejemplo, cuando la imagen actual es una imagen de bajo retardo cuando se combina con resolución de vector de movimiento adaptativa (AMVR) (cuando se usa AMVR como modo de interpredicción), pueden comprobarse de manera condicional ponderaciones desiguales para una precisión de vector de movimiento de 1 pel y 4 pel. Por ejemplo, cuando se combina con afines (cuando el modo de predicción afín se usa como el modo de interpredicción), en el caso en donde el modo de predicción afín se selecciona actualmente como el mejor modo, la estimación de movimiento afín (ME) puede realizarse en ponderaciones desiguales. Por ejemplo, cuando dos imágenes de referencia de bipredicción son iguales, se pueden comprobar de manera condicional ponderaciones desiguales. Por ejemplo, cuando se satisface una condición específica dependiendo de una distancia POC entre la imagen actual y una imagen de referencia, un parámetro de cuantificación de codificación (QP) y un nivel temporal, es posible que no se busquen ponderaciones desiguales.
[0205] Por ejemplo, el índice de ponderación de BCW puede codificarse usando un bin codificado por contexto seguido de un bin codificado por baipás. El primer bin codificado por contexto puede indicar si se usa la misma ponderación. Cuando se usan las ponderaciones desiguales en base al primer bin codificado por contexto, se pueden señalar bins adicionales usando codificación por baipás para indicar ponderaciones desiguales que se van a usar.
[0206] Asimismo, cuando se aplica la bipredicción, la información de ponderación usada para generar muestras de predicción puede derivarse en base a información de índice de ponderación sobre un candidato seleccionado entre candidatos incluidos en la lista de candidatos de fusión.
[0207] Según una realización de la presente descripción, cuando se construye un candidato de vector de movimiento para un modo de fusión, la información de índice de ponderación sobre un candidato de vector de movimiento temporal puede derivarse de la siguiente manera. Por ejemplo, cuando un candidato de vector de movimiento temporal usa bipredicción, puede derivarse información de índice de ponderación sobre un promedio ponderado. Es decir, cuando el tipo de interpredicción es bipredicción, puede derivarse información de índice de ponderación (o un candidato de vector de movimiento temporal) sobre un candidato de fusión temporal en la lista de candidatos de fusión.
[0208] Por ejemplo, la información de índice de ponderación sobre un promedio ponderado con respecto a un candidato de vector de movimiento temporal siempre puede derivarse como 0. En este caso, la información de índice de ponderación sobre 0 puede significar que las ponderaciones de cada dirección de referencia (es decir, la dirección de predicción L0 y la dirección de predicción L1 en bipredicción) son iguales. Por ejemplo, un procedimiento para derivar un vector de movimiento de un componente de luma para el modo de fusión puede mostrarse en la Tabla 1 a continuación.
[0209] [Tabla 1]
[0210]
[0211]
[0212]
[0214] Con referencia a la Tabla 1, gbiIdx puede indicar un índice de ponderación de bipredicción, y gbiIdxCol puede indicar un índice de ponderación de bipredicción para un candidato de fusión temporal (p. ej., un candidato de vector de movimiento temporal en la lista de candidatos de fusión). En el procedimiento para derivar el vector de movimiento del componente de luma para el modo de fusión (Tabla de Contenidos 3 de 8.4.2.2), gbiIdxCol puede derivarse como 0. Es decir, el índice de ponderación del candidato de vector de movimiento temporal puede derivarse como 0.
[0215] Alternativamente, un índice de ponderación para un promedio ponderado de candidatos de vector de movimiento temporal puede derivarse en base a información de índice de ponderación sobre un bloque coubicado. En este caso, el bloque coubicado puede denominarse bloque col, bloque coubicado o bloque de referencia coubicado, y el bloque col puede indicar un bloque en la misma posición que el bloque actual en la imagen de referencia. Por ejemplo, un procedimiento para derivar un vector de movimiento de un componente de luma para el modo de fusión puede ser como se muestra en la Tabla 2 a continuación.
[0216] [Tabla 2]
[0218]
[0219]
[0220]
[0223] Con referencia a la Tabla 2, gbiIdx puede indicar un índice de ponderación de bipredicción, y gbiIdxCol puede indicar un índice de ponderación de bipredicción para un candidato de fusión temporal (p. ej., un candidato de vector de movimiento temporal en la lista de candidatos de fusión). En el procedimiento de derivar el vector de movimiento del componente de luma para el modo de fusión, cuando el tipo de segmento o el tipo de grupo de teselas es B (Tabla de Contenidos 4 de 8.4.2.2), gbiIdxCol puede derivarse como gbiIdxCol. Es decir, el índice de ponderación del candidato de vector de movimiento temporal puede derivarse como el índice de ponderación del bloque col.
[0225] Asimismo, según otra realización de la presente descripción, cuando se construye un candidato de vector de movimiento para un modo de fusión en unidades de subbloques, puede derivarse un índice de ponderación
para un promedio ponderado de candidatos de vector de movimiento temporal. En este caso, el modo de fusión en unidades de subbloques puede denominarse modo de fusión afín (en unidades de subbloques). El candidato de vector de movimiento temporal puede indicar un candidato de vector de movimiento temporal en base a subbloque, y puede denominarse candidato de SbTMVP (o ATMVP). Es decir, cuando el tipo de interpredicción es bipredicción, puede derivarse la información de índice de ponderación sobre el candidato de SbTMVP (o un candidato de vector de movimiento temporal en base a subbloque) en la lista de candidatos de fusión afines o la lista de candidatos de fusión de subbloque.
[0226] Por ejemplo, la información de índice de ponderación sobre el promedio ponderado de candidatos de vector de movimiento temporal en base a subbloque siempre puede derivarse como 0. En este caso, la información de índice de ponderación de 0 puede significar que las ponderaciones de cada dirección de referencia (es decir, la dirección de predicción L0 y la dirección de predicción L1 en bipredicción) son iguales. Por ejemplo, un procedimiento para derivar un vector de movimiento y un índice de referencia en un modo de fusión de subbloque y un procedimiento para derivar un candidato de fusión temporal en base a subbloque pueden ser tal como se muestra en las Tablas 3 y 4.
[0227] [Tabla 3]
[0229]
[0230]
[0231]
[0232]
[0234] [Tabla 4]
[0235]
[0236]
[0239] Con referencia a las Tablas 3 y 4 anteriores, gbiIdx puede indicar un índice de ponderación de bipredicción, gbiIdxSbCol puede indicar un índice de ponderación de bipredicción para un candidato de fusión temporal en base a subbloque (p. ej., un candidato de vector de movimiento temporal en una lista de candidatos de fusión en base a subbloque), y en el procedimiento (8.4.4.3) para derivar el candidato de fusión temporal en base a subbloque, gbiIdxSbCol puede derivarse como 0. Es decir, el índice de ponderación del candidato de vector de movimiento temporal en base a subbloque puede derivarse como 0.
[0241] Alternativamente, la información de índice de ponderación sobre un promedio ponderado de candidatos de vector de movimiento temporal en base a subbloque puede derivarse en base a información de índice de ponderación sobre un bloque central temporal. Por ejemplo, el bloque central temporal puede indicar un subbloque o muestra posicionados en el centro del bloque col o el bloque col y, específicamente, puede indicar un subbloque posicionado como el inferior derecho de los cuatro subbloques o muestras centrales del bloque col o una muestra. Por ejemplo, en este caso, el procedimiento para derivar el vector de movimiento y el índice de referencia en el modo de fusión de subbloque, el procedimiento para derivar el candidato de fusión temporal en base a subbloque y el procedimiento para derivar la información de movimiento de base para la fusión temporal en base a subbloque pueden mostrarse en la Tabla 5, la Tabla 6 y la Tabla 7.
[0243] [Tabla 5]
[0245]
[0246]
[0247]
[0248]
[0249]
[0251] [Tabla 6]
[0252]
[0253]
[0254]
[0256] [Tabla 7]
[0257]
[0258]
[0259]
[0262] Con referencia a la Tabla 5, la Tabla 6 y la Tabla 7, gbiIdx puede indicar un índice de ponderación de bipredicción, y gbiIdxSbCol puede indicar un índice de ponderación de bipredicción para un candidato de fusión temporal en base a subbloque (p. ej., un candidato de vector de movimiento temporal en una lista de candidatos de fusión en base a subbloque).<0} En el procedimiento (8.4.4.4) para derivar información de movimiento de base sobre fusión temporal en base a subbloque, gbiIdxSbCol puede derivarse como gbiIdxcolCb. Es decir, el índice de ponderación del candidato de vector de movimiento temporal en base a subbloque puede derivarse como el índice de ponderación del bloque central temporal. Por ejemplo, el bloque central temporal puede indicar un subbloque o muestra posicionado en el centro del bloque col o el bloque col y, específicamente, puede indicar un subbloque posicionado como el inferior derecho de los cuatro subbloques o muestras centrales del bloque col o una muestra.
[0264] Alternativamente, la información de índice de ponderación sobre el promedio ponderado de los candidatos de vector de movimiento temporal en base a subbloque puede derivarse en base a la información de índice de ponderación en unidades de cada subbloque, y puede derivarse en base a la información de índice de ponderación sobre el bloque central temporal cuando el subbloque no está disponible. Por ejemplo, el bloque central temporal puede indicar un subbloque o muestra posicionado en el centro del bloque col o el bloque col y, específicamente, puede indicar un subbloque posicionado como el inferior derecho de los cuatro subbloques o muestras centrales del bloque col o una muestra. Por ejemplo, en este caso, el procedimiento para derivar el vector de movimiento y el índice de referencia en el modo de fusión de subbloque, el procedimiento para derivar el candidato de fusión temporal en base a subbloque y el procedimiento para derivar la información de movimiento de base para la fusión temporal en base a subbloque pueden mostrarse en la Tabla 8, la Tabla 9 y la Tabla 10.
[0266] [Tabla 8]
[0268]
[0269]
[0270]
[0271]
[0272]
[0274] [Tabla 9]
[0275]
[0276]
[0277]
[0279] [Tabla 10]
[0280]
[0281]
[0282]
[0285] Con referencia a la Tabla 8, la Tabla 9 y la Tabla 10, gbiIdx puede indicar un índice de ponderación de bipredicción, y gbiIdxSbCol puede indicar un índice de ponderación de bipredicción para un candidato de fusión temporal en base a subbloque (p. ej., un candidato de vector de movimiento temporal en una lista de candidatos de fusión en base a subbloque). En el procedimiento (8.4.4.3) para derivar información de movimiento de base sobre fusión temporal en base a subbloque, gbiIdxSbCol puede derivarse como gbiIdxcolCb. Alternativamente, en el procedimiento (8.4.4.3) de derivar información de movimiento de base sobre fusión temporal en base a subbloque según una condición (p. ej., cuando tanto availableFlagL0SbCol como availableFlagL1SbCol son 0), gbiIdxSbCol puede derivarse como ctrgbiIdx, y en el procedimiento (8.4.4.4) para derivar información de movimiento de base sobre fusión temporal en base a subbloque, ctrgbiIdx puede derivarse como gbiIdxSbCol. Es decir, el índice de ponderación del candidato de vector de movimiento temporal en base a subbloque puede derivarse como un índice de ponderación en unidades de cada subbloque, o cuando el subbloque no está disponible, puede derivarse como el índice de ponderación del bloque central temporal. Por ejemplo, el bloque central temporal puede indicar un subbloque o muestra posicionado en el centro del bloque col o el bloque col y, específicamente, puede indicar un subbloque posicionado como el inferior derecho de los cuatro subbloques o muestras centrales del bloque col o una muestra.
[0287] Asimismo, según otra realización de la presente descripción, cuando se construye un candidato de vector de movimiento para un modo de fusión, puede derivarse información de índice de ponderación sobre un candidato por pares. Por ejemplo, un candidato por pares puede incluirse en la lista de candidatos de fusión, y puede derivarse información de índice de ponderación sobre un promedio ponderado del candidato por pares. El candidato por pares puede derivarse en base a otros candidatos de fusión en la lista de candidatos de fusión, y cuando el candidato por pares usa bipredicción, puede derivarse un índice de ponderación para un promedio ponderado. Es decir, cuando el tipo de interpredicción es bipredicción, puede derivarse información de índice de ponderación sobre candidatos por pares en la lista de candidatos de fusión.
[0289] El candidato por pares puede derivarse en base a otros dos candidatos de fusión (p. ej., cand0 y cand1) entre los candidatos incluidos en la lista de candidatos de fusión.
[0291] Por ejemplo, la información de índice de ponderación sobre el candidato por pares puede derivarse en base a la información de índice de ponderación sobre uno cualquiera de los dos candidatos de fusión (p. ej., el candidato de fusión cand0 o el candidato de fusión cand1). Por ejemplo, la información de índice de ponderación sobre el candidato por pares puede derivarse en base a la información de índice de ponderación sobre un candidato que usa bipredicción entre los dos candidatos de fusión.
[0293] Alternativamente, cuando la información de índice de ponderación sobre cada uno de los otros dos candidatos de fusión es la misma que la primera información de índice de ponderación, la información de índice de ponderación sobre el candidato por pares puede derivarse en base a la primera información de índice de
ponderación. Asimismo, cuando la información de índice de ponderación sobre cada uno de los otros dos candidatos de fusión no es la misma, la información de índice de ponderación sobre el candidato por pares puede derivarse en base a la información de índice de ponderación por defecto. La información de índice de ponderación por defecto puede corresponder a información de índice de ponderación sobre asignación de la misma ponderación a cada una de las muestras de predicción L0 y las muestras de predicción L1.
[0294] Alternativamente, cuando la información de índice de ponderación sobre cada uno de los otros dos candidatos de fusión es la misma que la primera información de índice de ponderación, la información de índice de ponderación sobre el candidato por pares puede derivarse en base a la primera información de índice de ponderación. Asimismo, cuando la información de índice de ponderación sobre cada uno de los otros dos candidatos de fusión no es la misma, la información de índice de ponderación sobre el candidato por pares incluye la información de índice de ponderación por defecto entre la información de índice de ponderación sobre cada uno de los otros dos candidatos. La información de índice de ponderación por defecto puede corresponder a información de índice de ponderación sobre la asignación de la misma ponderación a cada una de las muestras de predicción L0 y las muestras de predicción L1.
[0295] Asimismo, según otra realización de la presente descripción, cuando se construye un candidato de vector de movimiento para un modo de fusión en unidades de subbloques, puede derivarse información de índice de ponderación sobre un promedio ponderado de candidatos de vector de movimiento temporal. En este caso, el modo de fusión en unidades de subbloques puede denominarse modo de fusión afín (en unidades de subbloques). El candidato de vector de movimiento temporal puede indicar un candidato de vector de movimiento temporal en base a subbloque, y puede denominarse candidato de SbTMVP (o ATMVP). La información de índice de ponderación sobre el candidato de SbTMVP puede derivarse en base a la información de índice de ponderación sobre el bloque vecino izquierdo del bloque actual. Es decir, cuando el candidato derivado por SbTMVP usa bipredicción, el índice de ponderación del bloque vecino izquierdo del bloque actual puede derivarse como el índice de ponderación para el modo de fusión en base a subbloque.
[0296] Por ejemplo, dado que el candidato de SbTMVP puede derivar un bloque col en base al bloque izquierdo adyacente espacialmente (o bloque vecino izquierdo) del bloque actual, el índice de ponderación del bloque vecino izquierdo puede considerarse fiable. Por consiguiente, el índice de ponderación para el candidato de SbTMVP puede derivarse como el índice de ponderación del bloque vecino izquierdo.
[0297] Asimismo, según otra realización de la presente descripción, cuando se construye un candidato de vector de movimiento para un modo de fusión afín, en el caso en done un candidato de fusión afín usa bipredicción, puede derivarse información de índice de ponderación sobre un promedio ponderado. Es decir, cuando el tipo de interpredicción es bipredicción, puede derivarse información de índice de ponderación sobre un candidato en la lista de candidatos de fusión afines o la lista de candidatos de fusión de subbloque.
[0298] Por ejemplo, entre candidatos de fusión afines, un candidato de fusión afín construido puede derivar candidatos de CP0, CP1, CP2 o CP3 en base a un bloque adyacente espacialmente del bloque actual o un bloque adyacente temporalmente para indicar un candidato para derivar el MVF como el modelo afín. Por ejemplo, CP0 puede indicar un punto de control ubicado en la posición de muestra superior izquierda del bloque actual, CP1 puede indicar un punto de control ubicado en la posición de muestra superior derecha del bloque actual, y CP2 puede indicar la posición de muestra inferior izquierda del bloque actual. Además, CP3 puede indicar un punto de control ubicado en la posición de muestra inferior derecha del bloque actual.
[0299] Por ejemplo, un candidato de fusión afín construido entre los candidatos de fusión afines puede generarse en base a una combinación de puntos de control respectivos del bloque actual, tal como {CP0, CP1, CP2}, {CP0, CP1, CP3}, {CP0, CP2, CP3}, {CP1, CP2, CP3}, {CP0, CP1} y {CP0, CP2}. Por ejemplo, un candidato de fusión afín puede incluir al menos uno de {CPMV0, CPMV1, CPMV2}, {CPMV0, CPMV1, CPMV3}, {CPMV0, CPMV2, CPMV3}, {CPMV1, CPMV2, CPMV3}, {CPMV0, CPMV1} y {CPMV0, CPMV2}, CPMV0, CPMV1, CPMV2 y CPMV3 pueden corresponder a vectores de movimiento para CP0, CP1, CP2 y CP3, respectivamente.
[0300] En una realización según la invención protegida, cuando el candidato de fusión afín incluye CPMV0 para un punto de control 0 (CP0) posicionado en el lado superior izquierdo del bloque actual, se deriva información de índice de ponderación sobre el candidato de fusión afín en base a información de índice de ponderación 0-ésimo sobre el CP0. La información de índice de ponderación 0-ésimo corresponde a información de índice de ponderación sobre un bloque que se usa para derivar el CPMV0 entre bloques vecinos del CP0. En este caso, los bloques vecinos del CP0 pueden incluir el bloque vecino de esquina superior izquierda del bloque actual, un bloque vecino izquierdo adyacente al lado inferior del bloque vecino de esquina superior izquierda y un bloque vecino superior adyacente al lado derecho del bloque vecino de esquina superior izquierda.
[0301] Por otro lado, cuando el candidato de fusión afín no incluye CPMV0 para el CP0 posicionado en el lado superior izquierdo del bloque actual, se deriva información de índice de ponderación sobre el candidato de fusión afín en base a primera información de índice de ponderación sobre el punto de control 1 (CP1) posicionado en el lado superior derecho del bloque actual. La primera información de índice de ponderación corresponde a
información de índice de ponderación sobre un bloque que se usa para derivar el CPMV1 entre bloques vecinos del CP1. En este caso, los bloques vecinos del CP1 pueden incluir un bloque vecino de esquina superior derecha del bloque actual y un bloque vecino superior adyacente al lado izquierdo del bloque vecino de esquina superior derecha.
[0302] Según el método descrito anteriormente y según la invención protegida, se deriva información de índice de ponderación sobre el candidato de fusión afín en base a información de índice de ponderación sobre un bloque que se usa para derivar el primer CPMV con respecto a cada uno de {CPMV0, CPMV1, CPMV2}, {CPMV0, CPMV1, CPMV3}, {CPMV0, CPMV2, CPMV3}, {CPMV1, CPMV2, CPMV3}, {CPMV0, CPMV1} y {CPMV0, CPMV2}.
[0303] Según otra realización para derivar información de índice de ponderación sobre el candidato de fusión afín, fuera del alcance de la invención protegida, cuando la información de índice de ponderación sobre el CP0 posicionado en el lado superior izquierdo del bloque actual y la información de índice de ponderación sobre el CP1 posicionado en el lado derecho del bloque actual son idénticas entre sí, la información de índice de ponderación sobre el candidato de fusión afín puede derivarse en base a la información de índice de ponderación 0-ésimo sobre el CP0. La información de índice de ponderación 0-ésimo puede corresponder a información de índice de ponderación sobre un bloque que se usa para derivar el CPMV0 entre bloques vecinos del CP0. Por otro lado, cuando la información de índice de ponderación sobre el CP0 posicionado en el lado superior izquierdo del bloque actual y la información de índice de ponderación sobre el CP1 posicionado en el lado superior derecho del bloque actual no son idénticas entre sí, la información de índice de ponderación sobre el candidato de fusión afín puede derivarse en base a información de índice de ponderación por defecto. La información de índice de ponderación por defecto puede corresponder a información de índice de ponderación para proporcionar la misma ponderación a cada una de las muestras de predicción L0 y las muestras de predicción L1.
[0304] Según otra realización para derivar la información de índice de ponderación sobre el candidato de fusión afín, fuera del alcance de la invención protegida, la información de índice de ponderación sobre el candidato de fusión afín puede derivarse como un índice de ponderación de un candidato que tiene una alta frecuencia de ocurrencia entre los índices de ponderación de cada candidato. Por ejemplo, un índice de ponderación de un bloque candidato determinado como un vector de movimiento en CP0 entre bloques candidatos de CP0, un índice de ponderación de un bloque candidato determinado como un vector de movimiento en CP1 entre bloques candidatos de CP1, un índice de ponderación de un bloque candidato determinado como un vector de movimiento en CP2 entre bloques candidatos de CP2, y/o el índice de ponderación más superpuesto entre los índices de ponderación de los bloques candidatos determinados como el vector de movimiento en CP3 entre los bloques candidatos de CP3 pueden derivarse como el índice de ponderación del candidato de fusión afín. Por ejemplo, CP0 y CP1 pueden usarse como punto de control, CP0 CP1 y CP2 pueden usarse, y CP3 puede no usarse. Sin embargo, por ejemplo, cuando se va a usar un candidato de CP3 de un bloque afín (un bloque codificado en el modo de predicción afín), se puede usar el método para derivar un índice de ponderación en el bloque candidato temporal descrito en las realizaciones descritas anteriormente.
[0305] Las FIGS.12 y 13 son diagramas que ilustran esquemáticamente un ejemplo de un método de codificación de vídeo/imagen según una realización o realizaciones de la presente descripción y componentes relacionados. El método descrito en la FIG.12 puede ser realizado mediante el aparato de codificación descrito en la FIG.2 o 13. Específicamente, por ejemplo, las operaciones S1200 a S1220 de la FIG. 12 pueden ser realizadas mediante el predictor 220 del aparato de codificación 200 de la FIG. 13, y la operación S1230 de la FIG. 12 puede ser realizada mediante el codificador de entropía 240 del aparato de codificación 200 de la FIG. 13. Además, aunque no se ilustra en la FIG. 12, es posible derivar muestras de predicción o información relacionada con predicción mediante el predictor 220 del aparato de codificación 200 en la FIG. 12, es posible derivar información residual de muestras originales o muestras de predicción mediante el procesador residual 230 del aparato de codificación 200, es posible generar un flujo de bits a partir de la información residual o información relacionada con predicción mediante el codificador de entropía 240 del aparato de codificación 200. El método descrito en la FIG. 12 puede incluir las realizaciones descritas anteriormente en la presente descripción.
[0306] Con referencia a la FIG. 12, el aparato de codificación puede determinar un modo de interpredicción de un bloque actual y generar información de modo de interpredicción que indica el modo de interpredicción en la operación S1200. Por ejemplo, el aparato de codificación puede determinar un modo de fusión, un modo afín (fusión) o un modo de fusión de subbloque como un modo de interpredicción a aplicar al bloque actual, y puede generar información de modo de interpredicción que indica el modo de interpredicción determinado.
[0307] El aparato de codificación puede generar una lista de candidatos de fusión para el bloque actual en base al modo de interpredicción en la operación S1210. Por ejemplo, el aparato de codificación puede generar una lista de candidatos de fusión según el modo de interpredicción determinado. En este caso, cuando el modo de
interpredicción determinado es un modo de fusión afín o un modo de fusión de subbloque, la lista de candidatos de fusión puede denominarse lista de candidatos de fusión afines o lista de candidatos de fusión de subbloque, pero también puede denominarse simplemente lista de candidatos de fusión.
[0309] Por ejemplo, es posible insertar candidatos en la lista de candidatos de fusión hasta que el número de candidatos en la lista de candidatos de fusión se convierta en el número máximo de candidatos. En este caso, el candidato puede indicar un candidato o un bloque candidato para derivar información de movimiento (o vector de movimiento) del bloque actual. Por ejemplo, es posible derivar el bloque candidato a través de una búsqueda de bloques vecinos del bloque actual. Por ejemplo, un bloque vecino puede incluir un bloque vecino espacial y/o un bloque vecino temporal del bloque actual, un bloque vecino espacial puede buscarse preferiblemente para derivar un candidato (fusión espacial), y luego puede buscarse un bloque vecino temporal para derivar un candidato (fusión temporal), y los candidatos derivados pueden insertarse en la lista de candidatos de fusión. Por ejemplo, cuando el número de candidatos en la lista de candidatos de fusión es menor que el número máximo de candidatos en la lista de candidatos de fusión incluso después de que se insertan los candidatos, es posible insertar candidatos adicionales. Por ejemplo, candidatos adicionales incluyen al menos uno de candidato o candidatos de fusión en base a historial, candidato o candidatos de fusión de promedio por pares, ATMVP y candidatos de fusión bipredictivos combinados (cuando el tipo de grupo de segmento/tesela del grupo de segmento/tesela actual es tipo B) y/o un candidato de fusión de vector cero.
[0311] Alternativamente, por ejemplo, es posible insertar candidatos en la lista de candidatos de fusión afines hasta que el número de candidatos en la lista de candidatos de fusión afines se convierta en el número máximo de candidatos. En este caso, el candidato puede incluir un vector de movimiento de punto de control (CPMV) del bloque actual. Alternativamente, el candidato puede indicar un candidato o un bloque candidato para derivar el CPMV. El CPMV puede indicar un vector de movimiento en un punto de control (CP) del bloque actual. Por ejemplo, el número de CP puede ser 2, 3 o 4, el CP puede posicionarse en al menos una parte de la parte superior izquierda (o esquina superior izquierda), la parte superior derecha (o esquina superior derecha), la parte inferior izquierda (o esquina inferior izquierda) o la parte inferior derecha (o esquina inferior derecha) del bloque actual, y solo puede existir un CP en cada posición.
[0313] Por ejemplo, un candidato puede derivarse a través de una búsqueda de un bloque vecino (o un bloque vecino de un CP del bloque actual) del bloque actual. Por ejemplo, la lista de candidatos de fusión afines puede incluir al menos uno de un candidato de fusión afín heredado, un candidato de fusión afín construido y un candidato de vector de movimiento cero. Por ejemplo, en la lista de candidatos de fusión afines, el candidato de fusión afín heredado puede insertarse primero, y luego puede insertarse el candidato de fusión afín construido. Además, aunque se inserten candidatos de fusión afines construidos en la lista de candidatos de fusión afines, cuando el número de candidatos en la lista de candidatos de fusión afines es menor que el número máximo de candidatos, el resto puede llenarse con candidatos de vector de movimiento cero. En este caso, el candidato de vector de movimiento cero puede denominarse vector cero. Por ejemplo, la lista de candidatos de fusión afines puede ser una lista según un modo de fusión afín en donde se deriva un vector de movimiento en unidades de muestras, o puede ser una lista según un modo de fusión afín en donde se deriva un vector de movimiento en unidades de subbloques. En este caso, la lista de candidatos de fusión afines puede denominarse lista de candidatos de fusión de subbloque, y la lista de candidatos de fusión de subbloque también puede incluir candidatos (o candidatos de SbTMVP) derivados de SbTMVP. Por ejemplo, cuando el candidato de SbTMVP se incluye en la lista de candidatos de fusión de subbloque, puede posicionarse antes del candidato de fusión afín heredado y el candidato de fusión afín construido en la lista de candidatos de fusión de subbloque.
[0315] El aparato de codificación puede generar información de selección que indica un candidato entre candidatos incluidos en la lista de candidatos de fusión en la operación S1220. Por ejemplo, la lista de candidatos de fusión puede incluir al menos uno de un candidato de fusión espacial, un candidato de fusión temporal, un candidato por pares o un candidato de vector cero, y un candidato entre estos candidatos puede seleccionarse para interpredicción del bloque actual. Alternativamente, por ejemplo, la lista de candidatos de fusión de subbloque puede incluir al menos uno de un candidato de fusión afín heredado, un candidato de fusión afín construido, un candidato de SbTMVP o un candidato de vector cero, y un candidato entre estos candidatos puede seleccionarse para interpredicción del bloque actual.
[0317] Por ejemplo, la información de selección puede incluir información de índice que indica un candidato seleccionado en la lista de candidatos de fusión. Por ejemplo, la información de selección puede denominarse información de índice de fusión o información de índice de fusión de subbloque.
[0319] Además, el aparato de codificación puede generar información de tipo interpredicción que indica un tipo de interpredicción del bloque actual como bipredicción. Por ejemplo, el tipo de interpredicción del bloque actual puede determinarse como bipredicción entre predicción L0, predicción L1 o bipredicción, y es posible generar información de tipo interpredicción que indica la determinación. En este caso, la predicción L0 puede indicar predicción en base a una lista de imágenes de referencia 0, la predicción L1 puede indicar predicción en base a una lista de imágenes de referencia 1, y la bipredicción puede indicar predicción en base a la lista de imágenes
de referencia 0 y la lista de imágenes de referencia 1. Por ejemplo, el aparato de codificación puede generar información de tipo interpredicción en base a un tipo de interpredicción. Por ejemplo, la información de tipo interpredicción puede incluir un elemento de sintaxis inter_pred_idc.
[0320] El aparato de codificación puede codificar información de imagen que incluye información de modo de interpredicción e información de selección en la operación S1230. Por ejemplo, la información de imagen puede denominarse información de vídeo. La información de imagen puede incluir diversa información según la realización o realizaciones descritas anteriormente de la presente descripción. Por ejemplo, la información de imagen puede incluir al menos una parte de información relacionada con predicción o información relacionada con residuos. Por ejemplo, la información relacionada con predicción puede incluir al menos una parte de la información de modo de interpredicción, la información de selección y la información del tipo de interpredicción. Por ejemplo, el aparato de codificación puede generar un flujo de bits o información codificada codificando información de imagen que incluye la totalidad o parte de la información descrita anteriormente (o elementos de sintaxis). Alternativamente, el aparato de codificación puede emitir lo mismo en forma de un flujo de bits. Además, el flujo de bits o la información codificada pueden transmitirse al aparato de decodificación a través de una red o un medio de almacenamiento.
[0321] Aunque no se ilustra en la FIG. 12, por ejemplo, el aparato de codificación puede generar muestras de predicción del bloque actual. O, por ejemplo, el aparato de codificación puede generar muestras de predicción del bloque actual en base a un candidato seleccionado. O, por ejemplo, el aparato de codificación puede derivar información de movimiento en base a un candidato seleccionado y generar muestras de predicción del bloque actual en base a la información de movimiento. Por ejemplo, el aparato de codificación puede generar muestras de predicción L0 y muestras de predicción L1 según bipredicción, y puede generar muestras de predicción del bloque actual en base a las muestras de predicción L0 y las muestras de predicción L1. En este caso, las muestras de predicción del bloque actual pueden generarse a partir de las muestras de predicción L0 y las muestras de predicción L1 usando información de índice de ponderación (o información de ponderación) para bipredicción. En este caso, la información de ponderación puede expresarse en base a la información de índice de ponderación.
[0322] En otras palabras, por ejemplo, el aparato de codificación puede generar muestras de predicción L0 y muestras de predicción L1 del bloque actual en base al candidato seleccionado. Por ejemplo, cuando se determina que el tipo de interpredicción del bloque actual es bipredicción, la lista de imágenes de referencia 0 y la lista de imágenes de referencia 1 pueden usarse para predicción del bloque actual. Por ejemplo, las muestras de predicción L0 pueden representar muestras de predicción del bloque actual derivadas en base a la lista de imágenes de referencia 0, y las muestras de predicción L1 pueden representar muestras de predicción del bloque actual derivadas en base a la lista de imágenes de referencia 1.
[0323] Por ejemplo, los candidatos pueden incluir un candidato de fusión espacial. Por ejemplo, cuando el candidato seleccionado es el candidato de fusión espacial, la información de movimiento L0 y la información de movimiento L1 pueden derivarse en base al candidato de fusión espacial, y las muestras de predicción L0 y las muestras de predicción L1 se generan en base a ello.
[0324] Por ejemplo, los candidatos pueden incluir un candidato de fusión temporal. Por ejemplo, cuando el candidato seleccionado es el candidato de fusión temporal, la información de movimiento L0 y la información de movimiento L1 pueden derivarse en base al candidato de fusión temporal, y las muestras de predicción L0 y las muestras de predicción L1 se generan en base a ello.
[0325] Por ejemplo, los candidatos pueden incluir candidatos por pares. Por ejemplo, cuando el candidato seleccionado es un candidato por pares, la información de movimiento L0 y la información de movimiento L1 pueden derivarse en base al candidato por pares, y las muestras de predicción L0 y las muestras de predicción L1 pueden generarse en base a ello. Por ejemplo, el candidato por pares puede derivarse en base a otros dos candidatos entre los candidatos incluidos en la lista de candidatos de fusión.
[0326] Alternativamente, por ejemplo, la lista de candidatos de fusión puede ser una lista de candidatos de fusión de subbloque, y se puede seleccionar un candidato de fusión afín, un candidato de fusión de subbloque o un candidato de SbTMVP. En este caso, el candidato de fusión afín en unidades de subbloques puede denominarse candidato de fusión de subbloque.
[0327] Por ejemplo, los candidatos pueden incluir un candidato de fusión de subbloque. Por ejemplo, cuando el candidato seleccionado es el candidato de fusión de subbloque, la información de movimiento L0 y la información de movimiento L1 pueden derivarse en base al candidato de fusión de subbloque, y las muestras de predicción L0 y las muestras de predicción L1 se generan en base a ello. Por ejemplo, el candidato de fusión de subbloque puede incluir vectores de movimiento de punto de control (CPMV), y las muestras de predicción L0 y las muestras de predicción L1 pueden generarse realizando predicción en unidades de subbloque en base a los CPMV.
[0328] En este caso, el CPMV puede indicarse en base a un bloque entre bloques vecinos de un punto de control (CP) del bloque actual. Por ejemplo, el número de CP puede ser 2, 3 o 4, el CP puede posicionarse en al menos una parte de la parte superior izquierda (o esquina superior izquierda), la parte superior derecha (o esquina superior derecha), la parte inferior izquierda (o esquina inferior izquierda) o la parte inferior derecha (o esquina inferior derecha) del bloque actual, y solo puede existir un CP en cada posición.
[0329] Por ejemplo, el CP puede ser un CP0 posicionado en el lado superior izquierdo del bloque actual. En este caso, los bloques vecinos pueden incluir un bloque vecino de esquina superior izquierda del bloque actual, un bloque vecino izquierdo adyacente al lado inferior del bloque vecino de esquina superior izquierda y un bloque vecino superior adyacente al lado derecho del bloque vecino de esquina superior izquierda. O bien, los bloques vecinos pueden incluir un bloque A2, un bloque B2 o un bloque B3 en la FIG.10.
[0330] O, por ejemplo, el CP puede ser un CP1 posicionado en el lado derecho del bloque actual. En este caso, los bloques vecinos pueden incluir un bloque vecino de esquina superior derecha del bloque actual, y un bloque vecino superior adyacente al lado izquierdo del bloque vecino de esquina superior derecha del bloque actual. O bien, los bloques vecinos pueden incluir un bloque B0 o un bloque B1 en la FIG.10.
[0331] O, por ejemplo, el CP puede ser un CP2 posicionado en el lado inferior izquierdo del bloque actual. En este caso, los bloques vecinos pueden incluir un bloque vecino de esquina inferior izquierda del bloque actual, y un bloque vecino izquierdo adyacente al lado superior del bloque vecino de esquina inferior izquierda. O bien, los bloques vecinos pueden incluir un bloque A0 o un bloque A1 en la FIG.10.
[0332] O, por ejemplo, el CP puede ser un CP3 posicionado en el lado inferior derecho del bloque actual. En este caso, CP3 también puede denominarse RB. En este caso, los bloques vecinos pueden incluir un bloque coubicado del bloque actual o un bloque vecino de esquina inferior derecha del bloque coubicado. En este caso, el bloque coubicado puede incluir un bloque en la misma posición que el bloque actual en una imagen de referencia que es diferente de la imagen actual en donde se posiciona el bloque actual. O bien, el bloque vecino puede incluir un bloque T en la FIG.10.
[0333] Alternativamente, por ejemplo, los candidatos pueden incluir candidatos de SbTMVP. Por ejemplo, cuando el candidato seleccionado es el candidato de SbTMVP, la información de movimiento L0 y la información de movimiento L1 pueden derivarse en base al bloque vecino izquierdo del bloque actual, y en base a ello, pueden generarse las muestras de predicción L0 y las muestras de predicción L1. Por ejemplo, las muestras de predicción L0 y las muestras de predicción L1 pueden generarse realizando predicción en unidades de subbloques.
[0334] Por ejemplo, la información de movimiento L0 puede incluir un índice de imagen de referencia L0, un vector de movimiento L0 y similares, y la información de movimiento L1 puede incluir un índice de imagen de referencia L1, un vector de movimiento L1 y similares. El índice de imagen de referencia L0 puede incluir información que indica la imagen de referencia en la lista de imágenes de referencia 0, y el índice de imagen de referencia L1 puede incluir información que indica la imagen de referencia en la lista de imágenes de referencia 1.
[0335] Por ejemplo, el aparato de codificación puede generar muestras de predicción del bloque actual en base a muestras de predicción L0, muestras de predicción L1 e información de ponderación. Por ejemplo, la información de ponderación puede visualizarse en base a la información de índice de ponderación. La información de índice de ponderación puede indicar información de índice de ponderación sobre bipredicción. Por ejemplo, la información de ponderación puede incluir información sobre un promedio ponderado de muestras de predicción L0 o muestras de predicción L1. Es decir, la información de índice de ponderación puede indicar información de índice sobre una ponderación usada para el promedio ponderado, y puede generar información de índice de ponderación en un procedimiento de generación de muestras de predicción en base al promedio ponderado. Por ejemplo, la información de índice de ponderación puede incluir información que indica una cualquiera de tres o cinco ponderaciones. Por ejemplo, el promedio ponderado puede representar un promedio ponderado en bipredicción con ponderación a nivel de CU (BCW) o bipredicción con promedio ponderado (BWA).
[0336] Por ejemplo, los candidatos pueden incluir un candidato de fusión temporal, y la información de índice de ponderación sobre el candidato de fusión temporal puede representarse mediante 0. Es decir, la información de índice de ponderación sobre el candidato de fusión temporal puede representarse mediante 0. En este caso, la información de índice de ponderación de 0 puede significar que las ponderaciones de cada dirección de referencia (es decir, la dirección de predicción L0 y la dirección de predicción L1 en bipredicción) son iguales. Alternativamente, por ejemplo, los candidatos pueden incluir un candidato de fusión temporal, y la información de índice de ponderación puede indicarse en base a información de índice de ponderación sobre un bloque col. Es decir, la información de índice de ponderación sobre el candidato de fusión temporal puede indicarse en base a la información de índice de ponderación sobre el bloque col. En este caso, el bloque coubicado puede incluir un bloque en la misma posición que el bloque actual en una imagen de referencia diferente de la imagen actual en donde se posiciona el bloque actual.
[0337] Por ejemplo, los candidatos pueden incluir un candidato por pares, y la información de índice de ponderación puede indicarse en base a información de índice de ponderación sobre uno de los otros dos candidatos en la lista de candidatos de fusión usados para derivar el candidato por pares. Es decir, la información de índice de ponderación sobre el candidato por pares puede indicarse en base a la información de índice de ponderación sobre uno de los otros dos candidatos en la lista de candidatos de fusión usados para derivar el candidato por pares.
[0338] Por ejemplo, los candidatos pueden incluir el candidato por pares, y el candidato por pares puede indicarse en base a otros dos candidatos entre los candidatos. Cuando la información de índice de ponderación sobre cada uno de los otros dos candidatos es la misma que la primera información de índice de ponderación, la información de índice de ponderación sobre el candidato por pares puede indicarse en base a la primera información de índice de ponderación. Cuando la información de índice de ponderación sobre cada uno de los otros dos candidatos no es la misma, la información de índice de ponderación sobre el candidato por pares puede indicarse en base a información de índice de ponderación por defecto y, en este caso, la información de índice de ponderación por defecto puede corresponder a información de índice de ponderación sobre proporcionar la misma ponderación a cada una de las muestras de predicción L0 y las muestras de predicción L1.
[0339] Por ejemplo, los candidatos pueden incluir el candidato por pares, y el candidato por pares puede indicarse en base a otros dos candidatos entre los candidatos. Cuando la información de índice de ponderación sobre cada uno de los otros dos candidatos es la misma que la primera información de índice de ponderación, la información de índice de ponderación sobre el candidato por pares puede indicarse en base a la primera información de índice de ponderación. Cuando la información de índice de ponderación sobre cada uno de los otros dos candidatos no es la misma, la información de índice de ponderación puede indicarse en base a información de índice de ponderación, en lugar de la información de índice de ponderación por defecto, entre la información de índice de ponderación de cada uno de los otros dos candidatos. La información de índice de ponderación por defecto puede corresponder a información de índice de ponderación sobre proporcionar la misma ponderación a cada una de las muestras de predicción L0 y las muestras de predicción L1.
[0340] Por ejemplo, la lista de candidatos de fusión puede ser una lista de candidatos de fusión de subbloque, y se puede seleccionar un candidato de fusión afín, un candidato de fusión de subbloque o un candidato de SbTMVP. En este caso, el candidato de fusión afín en unidades de subbloques puede denominarse candidato de fusión de subbloque.
[0341] Por ejemplo, los candidatos incluyen un candidato de fusión afín, y el candidato de fusión afín puede incluir vectores de movimiento de punto de control (CPMV).
[0342] Por ejemplo, cuando el candidato de fusión fina incluye CPMV0 para el punto de control 0 (CP0) posicionado en el lado superior izquierdo del bloque actual, la información de índice de ponderación sobre el candidato de fusión afín puede expresarse en base a información de índice de ponderación 0-ésimo sobre el CP0. Cuando el candidato de fusión afín no incluye el CPMV0 para el CP0 posicionado en el lado superior izquierdo del bloque actual, la información de índice de ponderación sobre el candidato de fusión afín puede expresarse en base a la primera información de índice de ponderación sobre el punto de control 1 (CP1) posicionado en el lado superior derecho del bloque actual.
[0343] La información de índice de ponderación 0-ésimo puede corresponder a información de índice de ponderación sobre un bloque que se usa para derivar el CPMV0 entre los bloques vecinos del CP0, y los bloques vecinos del CP0 pueden incluir un bloque vecino de esquina superior izquierda del bloque actual, un bloque vecino izquierdo adyacente al lado inferior del bloque vecino de esquina superior izquierda y un bloque vecino superior adyacente al lado derecho del bloque vecino de esquina superior izquierda.
[0344] La primera información de índice de ponderación puede corresponder a información de índice de ponderación sobre un bloque que se usa para derivar CPMV1 entre los bloques vecinos del CP1, y los bloques vecinos del CP1 pueden incluir un bloque vecino de esquina superior derecha del bloque actual y un bloque vecino superior adyacente al lado izquierdo del bloque vecino de esquina superior derecha.
[0345] Alternativamente, por ejemplo, los candidatos pueden incluir un candidato de SbTMVP, y es posible indicar información de índice de ponderación sobre el candidato de SbTMVP en base a información de índice de ponderación sobre un bloque vecino izquierdo del bloque actual. Es decir, la información de índice de ponderación sobre el candidato de SbTMVP puede indicarse en base a la información de índice de ponderación sobre el bloque vecino izquierdo.
[0346] Alternativamente, por ejemplo, los candidatos pueden incluir el candidato de SbTMVP, y la información de índice de ponderación sobre el candidato de SbTMVP puede representarse mediante 0. Es decir, la información de índice de ponderación sobre el candidato de SbTMVP puede representarse mediante 0. En este caso, la
información de índice de ponderación de 0 puede significar que las ponderaciones de cada dirección de referencia (es decir, la dirección de predicción L0 y la dirección de predicción L1 en bipredicción) son iguales. Alternativamente, por ejemplo, los candidatos pueden incluir el candidato de SbTMVP, y la información de índice de ponderación puede indicarse en base a información de índice de ponderación sobre un bloque central en un bloque col. Es decir, la información de índice de ponderación sobre el candidato de SbTMVP puede indicarse en base a la información de índice de ponderación sobre el bloque central en el bloque col. En este caso, el bloque coubicado puede incluir un bloque en la misma posición que el bloque actual en una imagen de referencia diferente de la imagen en donde está posicionado el bloque actual, y el bloque central puede incluir un subbloque inferior derecho entre cuatro subbloques ubicados en el centro del bloque coubicado. Alternativamente, por ejemplo, los candidatos pueden incluir el candidato de SbTMVP, y la información de índice de ponderación puede indicarse en base a información de índice de ponderación sobre cada uno de los subbloques en un bloque col. Es decir, la información de índice de ponderación sobre el candidato de SbTMVP puede indicarse en base a la información de índice de ponderación sobre cada uno de los subbloques del bloque col.
[0347] Alternativamente, aunque no se ilustra en la FIG. 12, por ejemplo, el aparato de codificación puede derivar muestras residuales en base a las muestras de predicción y las muestras originales. En este caso, es posible derivar información relacionada con residuos en base a las muestras residuales. Las muestras residuales pueden derivarse en base a la información relacionada con residuos. Es posible generar muestras reconstruidas en base a las muestras residuales y las muestras de predicción. Un bloque reconstruido y una imagen reconstruida pueden derivarse en base a las muestras reconstruidas. Alternativamente, por ejemplo, el aparato de codificación puede codificar información de imagen que incluye información relacionada con residuos o información relacionada con predicción.
[0348] Por ejemplo, el aparato de codificación puede generar un flujo de bits o información codificada codificando información de imagen que incluye la totalidad o parte de la información descrita anteriormente (o elementos de sintaxis). Alternativamente, el aparato de codificación puede emitir lo mismo en forma de un flujo de bits. Además, el flujo de bits o la información codificada pueden transmitirse al aparato de decodificación a través de una red o un medio de almacenamiento. Alternativamente, el flujo de bits o la información codificada pueden almacenarse en un medio de almacenamiento legible por ordenador, y el flujo de bits o la información codificada pueden generarse mediante el método de codificación de imagen descrito anteriormente.
[0349] Las FIGS.14 y 15 son diagramas que ilustran esquemáticamente un ejemplo de un método de decodificación de vídeo/imagen según una realización o realizaciones de la presente descripción y componentes relacionados. El método descrito en la FIG.14 puede ser realizado por el aparato de decodificación ilustrado en la FIG. 3 o 15. Específicamente, por ejemplo, la operación S1400 de la FIG.14 puede realizarse mediante el decodificador de entropía 310 del aparato de decodificación 300 en la FIG. 15, y las operaciones S1410 a S1440 de la FIG.
[0350] 14 pueden realizarse mediante el predictor 330 del aparato de decodificación 300 en la FIG. 15. Además, aunque no se ilustra en la FIG. 14, es posible derivar información relacionada con predicción o información residual a partir de un flujo de bits mediante el decodificador de entropía 310 del aparato de decodificación 300 en la FIG. 15, las muestras residuales pueden derivarse de la información residual mediante el procesador residual 320 del aparato de decodificación 300, las muestras de predicción pueden derivarse de la información relacionada con predicción mediante el predictor 330 del aparato de decodificación 300, y un bloque reconstruido o imagen reconstruida puede derivarse de las muestras residuales o muestras de predicción mediante el sumador 340 del aparato de decodificación 300. El método descrito en la FIG.14 puede incluir las realizaciones descritas anteriormente en la presente descripción.
[0351] Con referencia a la FIG. 14, el aparato de decodificación puede recibir información de imagen que incluye información de modo de interpredicción a través de un flujo de bits en la operación S1400. Por ejemplo, la información de imagen puede denominarse información de vídeo. La información de imagen puede incluir una variedad de información según la realización o realizaciones descritas anteriormente de la presente descripción. Por ejemplo, la información de imagen puede incluir al menos una parte de información relacionada con predicción o información relacionada con residuos.
[0352] Por ejemplo, la información relacionada con predicción puede incluir información de modo de interpredicción o información de tipo interpredicción. Por ejemplo, la información de modo de interpredicción puede incluir información que indica al menos uno de varios modos de interpredicción. 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 o una fusión con un modo MVD (MMVD). Además, un modo de refinamiento de vector de movimiento de lado de decodificador (DMVR), un modo de resolución de vector de movimiento adaptativo (AMVR), una BCW (bipredicción con ponderación a nivel de CU) o un BDOF (flujo óptico bidireccional), etc., se pueden usar adicionalmente como un modo auxiliar o se pueden usar en su lugar. Por ejemplo, la información de tipo interpredicción puede incluir un elemento de sintaxis inter_pred_idc.
[0353] Alternativamente, la información de tipo interpredicción puede incluir información que indica una cualquiera de predicción L0, predicción L1 y bipredicción.
[0355] El aparato de decodificación puede generar una lista de candidatos de fusión para el bloque actual en base a la información de modo de interpredicción en la operación S1410. Por ejemplo, el aparato de decodificación puede determinar el modo de interpredicción del bloque actual como un modo de fusión, un modo afín (fusión) o un modo de fusión de subbloque en base a la información de modo de interpredicción, y puede generar una lista de candidatos de fusión según el modo de interpredicción determinado. En este caso, cuando el modo de interpredicción se determina como el modo de fusión afín o el modo de fusión de subbloque, la lista de candidatos de fusión puede denominarse lista de candidatos de fusión afines o lista de candidatos de fusión de subbloque, pero también puede denominarse simplemente lista de candidatos de fusión.
[0357] Por ejemplo, los candidatos pueden insertarse en la lista de candidatos de fusión hasta que el número de candidatos en la lista de candidatos de fusión se convierta en el número máximo de candidatos. En este caso, el candidato puede indicar un candidato o un bloque candidato para derivar información de movimiento (o vector de movimiento) del bloque actual. Por ejemplo, el bloque candidato puede derivarse a través de una búsqueda de bloques vecinos del bloque actual. Por ejemplo, un bloque vecino puede incluir un bloque vecino espacial y/o un bloque vecino temporal del bloque actual, un bloque vecino espacial puede buscarse preferiblemente para derivar un candidato (fusión espacial), y luego puede buscarse un bloque vecino temporal para derivar un candidato (fusión temporal), y los candidatos derivados pueden insertarse en la lista de candidatos de fusión. Por ejemplo, cuando el número de candidatos en la lista de candidatos de fusión es menor que el número máximo de candidatos en la lista de candidatos de fusión incluso después de que se insertan los candidatos, es posible insertar candidatos adicionales. Por ejemplo, candidatos adicionales incluyen al menos uno de un candidato o candidatos de fusión en base a historial, un candidato o candidatos de fusión promedio por pares, ATMVP y candidatos de fusión bipredictivos combinados (cuando el tipo de grupo de segmento/tesela del grupo de segmento/tesela actual es tipo B) y/o un candidato de fusión de vector cero.
[0359] Alternativamente, por ejemplo, es posible insertar candidatos en la lista de candidatos de fusión afines hasta que el número de candidatos en la lista de candidatos de fusión afines se convierta en el número máximo de candidatos. En este caso, el candidato puede incluir un vector de movimiento de punto de control (CPMV) del bloque actual. Alternativamente, el candidato puede indicar un candidato o un bloque candidato para derivar el CPMV. El CPMV puede indicar un vector de movimiento en un punto de control (CP) del bloque actual. Por ejemplo, el número de CP puede ser 2, 3 o 4, el CP puede posicionarse en al menos una parte de la parte superior izquierda (o esquina superior izquierda), la parte superior derecha (o esquina superior derecha), la parte inferior izquierda (o esquina inferior izquierda) o la parte inferior derecha (o esquina inferior derecha) del bloque actual, y solo puede existir un CP en cada posición.
[0361] Por ejemplo, un bloque candidato puede derivarse a través de una búsqueda de un bloque vecino (o un bloque vecino de un CP del bloque actual) del bloque actual. Por ejemplo, la lista de candidatos de fusión afines puede incluir al menos uno de un candidato de fusión afín heredado, un candidato de fusión afín construido y un candidato de vector de movimiento cero. Por ejemplo, en la lista de candidatos de fusión afines, el candidato de fusión afín heredado puede insertarse primero, y luego puede insertarse el candidato de fusión afín construido. Además, aunque se inserten candidatos de fusión afines construidos en la lista de candidatos de fusión afines, cuando el número de candidatos en la lista de candidatos de fusión afines es menor que el número máximo de candidatos, el resto puede llenarse con candidatos de vector de movimiento cero. En este caso, el candidato de vector de movimiento cero puede denominarse vector cero. Por ejemplo, la lista de candidatos de fusión afines puede ser una lista según un modo de fusión afín en donde se deriva un vector de movimiento en unidades de muestras, o puede ser una lista según un modo de fusión afín en donde se deriva un vector de movimiento en unidades de subbloques. En este caso, la lista de candidatos de fusión afines puede denominarse lista de candidatos de fusión de subbloque, y la lista de candidatos de fusión de subbloque también puede incluir candidatos (o candidatos de SbTMVP) derivados de SbTMVP. Por ejemplo, cuando el candidato de SbTMVP se incluye en la lista de candidatos de fusión de subbloque, puede posicionarse antes del candidato de fusión afín heredado y el candidato de fusión afín construido en la lista de candidatos de fusión de subbloque.
[0363] El aparato de decodificación puede derivar información de movimiento del bloque actual en base a un candidato seleccionado de la lista de candidatos de fusión en la operación S1420. Por ejemplo, la lista de candidatos de fusión puede incluir al menos uno de un candidato de fusión espacial, un candidato de fusión temporal, un candidato por pares o un candidato de vector cero, y un candidato entre estos candidatos puede seleccionarse para interpredicción del bloque actual. Alternativamente, por ejemplo, la lista de candidatos de fusión de subbloque puede incluir al menos uno de un candidato de fusión afín heredado, un candidato de fusión afín construido, un candidato de SbTMVP o un candidato de vector cero, y un candidato entre estos candidatos puede seleccionarse para interpredicción del bloque actual. Por ejemplo, el candidato seleccionado puede seleccionarse de la lista de candidatos de fusión en base a información de selección. Por ejemplo, la información de selección puede incluir información de índice que indica un candidato seleccionado en la lista de candidatos de fusión. Por ejemplo, la información de selección puede denominarse información de índice
de fusión o información de índice de fusión de subbloque. Por ejemplo, la información de selección puede incluirse en la información de imagen. Alternativamente, la información de selección puede incluirse en la información de modo de interpredicción.
[0364] El aparato de decodificación puede generar muestras de predicción L0 y muestras de predicción L1 del bloque actual en base a la información de movimiento en la operación S1430. Por ejemplo, cuando el tipo de interpredicción se deriva como bipredicción, el aparato de decodificación puede derivar información de movimiento L0 e información de movimiento L1 en base al candidato seleccionado. El aparato de decodificación puede derivar el tipo de interpredicción del bloque actual como bipredicción en base a la información de tipo interpredicción. Por ejemplo, el tipo de interpredicción del bloque actual puede derivarse como bipredicción entre la predicción L0, la predicción L1 o bipredicción en base a la información de tipo interpredicción. En este caso, la predicción L0 puede indicar predicción en base a una lista de imágenes de referencia 0, la predicción L1 puede indicar predicción en base a una lista de imágenes de referencia 1, y la bipredicción puede indicar predicción en base a la lista de imágenes de referencia 0 y la lista de imágenes de referencia 1. Por ejemplo, la información de tipo interpredicción puede incluir un elemento de sintaxis inter_pred_idc.
[0365] Por ejemplo, la información de movimiento L0 puede incluir un índice de imagen de referencia L0 y un vector de movimiento L0, y la información de movimiento L1 puede incluir un índice de imagen de referencia L1 y un vector de movimiento L1. El índice de imagen de referencia L0 puede incluir información que indica la imagen de referencia en la lista de imágenes de referencia 0, y el índice de imagen de referencia L1 puede incluir información que indica la imagen de referencia en la lista de imágenes de referencia 1.
[0366] Por ejemplo, los candidatos pueden incluir un candidato de fusión espacial. Por ejemplo, cuando el candidato seleccionado es el candidato de fusión espacial, la información de movimiento L0 y la información de movimiento L1 pueden derivarse en base al candidato de fusión espacial, y las muestras de predicción L0 y las muestras de predicción L1 se generan en base a ello.
[0367] Por ejemplo, los candidatos pueden incluir un candidato de fusión temporal. Por ejemplo, cuando el candidato seleccionado es el candidato de fusión temporal, la información de movimiento L0 y la información de movimiento L1 pueden derivarse en base al candidato de fusión temporal, y las muestras de predicción L0 y las muestras de predicción L1 se generan en base a ello.
[0368] Por ejemplo, los candidatos pueden incluir candidatos por pares. Por ejemplo, cuando el candidato seleccionado es un candidato por pares, la información de movimiento L0 y la información de movimiento L1 pueden derivarse en base al candidato por pares, y las muestras de predicción L0 y las muestras de predicción L1 pueden generarse en base a ello. Por ejemplo, el candidato por pares puede derivarse en base a otros dos candidatos entre los candidatos incluidos en la lista de candidatos de fusión.
[0369] Alternativamente, por ejemplo, la lista de candidatos de fusión puede ser una lista de candidatos de fusión de subbloque, y se puede seleccionar un candidato de fusión afín, un candidato de fusión de subbloque o un candidato de SbTMVP. En este caso, el candidato de fusión afín en unidades de subbloques puede denominarse candidato de fusión de subbloque.
[0370] Por ejemplo, los candidatos pueden incluir un candidato de fusión afín. Por ejemplo, cuando el candidato seleccionado es el candidato de fusión afín, la información de movimiento L0 y la información de movimiento L1 pueden derivarse en base al candidato de fusión afín, y las muestras de predicción L0 y las muestras de predicción L1 se generan en base a ello. Por ejemplo, el candidato de fusión afín puede incluir vectores de movimiento de punto de control (CPMV), y las muestras de predicción L0 y las muestras de predicción L1 pueden generarse realizando predicción en unidades de subbloque en base a los CPMV.
[0371] En este caso, el CPMV puede derivarse en base a un bloque entre bloques vecinos de un punto de control (CP) del bloque actual. Por ejemplo, el número de CP puede ser 2, 3 o 4, el CP puede posicionarse en al menos una parte de la parte superior izquierda (o esquina superior izquierda), la parte superior derecha (o esquina superior derecha), la parte inferior izquierda (o esquina inferior izquierda) o la parte inferior derecha (o esquina inferior derecha) del bloque actual, y solo puede existir un CP en cada posición.
[0372] Por ejemplo, el CP puede ser un CP0 posicionado en el lado superior izquierdo del bloque actual. En este caso, los bloques vecinos pueden incluir un bloque vecino de esquina superior izquierda del bloque actual, un bloque vecino izquierdo adyacente al lado inferior del bloque vecino de esquina superior izquierda, y un bloque vecino superior adyacente al lado derecho del bloque vecino de esquina superior izquierda. O bien, los bloques vecinos pueden incluir un bloque A2, un bloque B2 o un bloque B3 en la FIG.10.
[0373] O, por ejemplo, el CP puede ser un CP1 posicionado en el lado derecho del bloque actual. En este caso, los bloques vecinos pueden incluir un bloque vecino de esquina superior derecha del bloque actual, y un bloque vecino superior adyacente al lado izquierdo del bloque vecino de esquina superior derecha del bloque actual. O bien, los bloques vecinos pueden incluir un bloque B0 o un bloque B1 en la FIG.10.
[0374] O, por ejemplo, el CP puede ser un CP2 posicionado en el lado inferior izquierdo del bloque actual. En este caso, los bloques vecinos pueden incluir un bloque vecino de esquina inferior izquierda del bloque actual, y un bloque vecino izquierdo adyacente al lado superior del bloque vecino de esquina inferior izquierda. O bien, los bloques vecinos pueden incluir un bloque A0 o un bloque A1 en la FIG.10.
[0375] O, por ejemplo, el CP puede ser un CP3 posicionado en el lado inferior derecho del bloque actual. En este caso, CP3 también puede denominarse RB. En este caso, los bloques vecinos pueden incluir un bloque coubicado del bloque actual o un bloque vecino de esquina inferior derecha del bloque coubicado. En este caso, el bloque coubicado puede incluir un bloque en la misma posición que el bloque actual en una imagen de referencia que es diferente de la imagen actual en donde se posiciona el bloque actual. O bien, el bloque vecino puede incluir un bloque T en la FIG.10.
[0376] O, por ejemplo, los candidatos pueden incluir un candidato de SbTMVP. Por ejemplo, cuando el candidato seleccionado es el candidato de SbTMVP, la información de movimiento L0 y la información de movimiento L1 pueden derivarse en base al bloque vecino izquierdo del bloque actual, y las muestras de predicción L0 y las muestras de predicción L1 pueden generarse en base a la información de movimiento L0 y la información de movimiento L1. Por ejemplo, las muestras de predicción L0 y las muestras de predicción L1 pueden generarse realizando predicción en una unidad de subbloque.
[0377] El aparato de decodificación puede generar muestras de predicción del bloque actual en base a las muestras de predicción L0, las muestras de predicción L1 y la información de ponderación en la operación S1440. Por ejemplo, la información de ponderación puede derivarse en base a información de índice de ponderación sobre un candidato seleccionado entre candidatos incluidos en la lista de candidatos de fusión. Por ejemplo, la información de ponderación puede incluir información sobre un promedio ponderado de las muestras de predicción L0 o las muestras de predicción L1. Es decir, la información de índice de ponderación puede indicar información de índice sobre las ponderaciones usadas para el promedio ponderado, y el promedio ponderado puede obtenerse en base a la información de índice de ponderación. Por ejemplo, la información de índice de ponderación puede incluir información que indica una cualquiera de tres o cinco ponderaciones. Por ejemplo, el promedio ponderado puede indicar un promedio ponderado en bipredicción con ponderación a nivel de CU (BCW) o bipredicción con promedio ponderado (BWA).
[0378] Por ejemplo, los candidatos pueden incluir un candidato de fusión temporal, y la información de índice de ponderación sobre el candidato de fusión temporal puede derivarse como 0. Es decir, la información de índice de ponderación sobre el candidato de fusión temporal puede derivarse como 0. En este caso, la información de índice de ponderación de 0 puede significar que las ponderaciones de cada dirección de referencia (es decir, la dirección de predicción L0 y la dirección de predicción L1 en bipredicción) son iguales.
[0379] Por ejemplo, los candidatos pueden incluir un candidato de fusión temporal, y la información de índice de ponderación sobre el candidato de fusión temporal puede derivarse en base a información de índice de ponderación sobre un bloque col. Es decir, la información de índice de ponderación sobre el candidato de fusión temporal puede derivarse en base a la información de índice de ponderación sobre el bloque col. En este caso, el bloque coubicado puede incluir un bloque en la misma posición que el bloque actual en una imagen de referencia diferente de la imagen actual en donde se posiciona el bloque actual.
[0380] Por ejemplo, los candidatos pueden incluir un candidato por pares, y la información de índice de ponderación puede derivarse como la información de índice de ponderación sobre uno de los otros dos candidatos en la lista de candidatos de fusión usados para derivar el candidato por pares. Es decir, la información de índice de ponderación sobre el candidato por pares puede derivarse como la información de índice de ponderación sobre uno de los otros dos candidatos en la lista de candidatos de fusión usados para derivar el candidato por pares. Por ejemplo, los candidatos pueden incluir el candidato por pares, y el candidato por pares puede derivarse en base a otros dos candidatos entre los candidatos. Cuando la información de índice de ponderación de cada uno de los otros dos candidatos es la misma que la primera información de índice de ponderación, la información de índice de ponderación para el candidato por pares puede derivarse en base a la primera información de índice de ponderación. Cuando la información de índice de ponderación sobre cada uno de los otros dos candidatos no es la misma, la información de índice de ponderación sobre el candidato por pares puede derivarse en base a información de índice de ponderación por defecto, y en este caso, la información de índice de ponderación por defecto puede corresponder a información de índice de ponderación sobre proporcionar la misma ponderación a cada una de las muestras de predicción L0 y las muestras de predicción L1.
[0381] Por ejemplo, los candidatos pueden incluir el candidato por pares, y el candidato por pares puede derivarse en base a otros dos candidatos entre los candidatos. Cuando la información de índice de ponderación de cada uno de los otros dos candidatos es la misma que la primera información de índice de ponderación, la información de índice de ponderación para el candidato por pares puede derivarse en base a la primera
información de índice de ponderación. Cuando la información de índice de ponderación sobre cada uno de los otros dos candidatos no es la misma, la información de índice de ponderación puede derivarse en base a información de índice de ponderación, en lugar de la información de índice de ponderación por defecto, entre la información de índice de ponderación de cada uno de los otros dos candidatos. La información de índice de ponderación por defecto puede corresponder a información de índice de ponderación sobre proporcionar la misma ponderación a cada una de las muestras de predicción L0 y las muestras de predicción L1.
[0382] Por ejemplo, la lista de candidatos de fusión puede ser una lista de candidatos de fusión de subbloque, y se puede seleccionar un candidato de fusión afín, un candidato de fusión de subbloque o un candidato de SbTMVP. En este caso, el candidato de fusión afín en unidades de subbloques puede denominarse candidato de fusión de subbloque.
[0383] Por ejemplo, los candidatos incluyen un candidato de fusión afín, y el candidato de fusión afín puede incluir vectores de movimiento de punto de control (CPMV).
[0384] Por ejemplo, cuando el candidato de fusión afín incluye CPMV0 para un punto de control 0 (CP0) posicionado en el lado superior izquierdo del bloque actual, es posible derivar información de índice de ponderación sobre el candidato de fusión afín en base a información de índice de ponderación 0-ésimo sobre el CP0. Cuando el candidato de fusión afín no incluye el CPMV0 para el CP0 posicionado en el lado superior izquierdo del bloque actual, es posible derivar información de índice de ponderación sobre el candidato de fusión afín en base a primera información de índice de ponderación sobre un punto de control (CP1) posicionado en el lado superior derecho del bloque actual.
[0385] La información de índice de ponderación 0-ésimo puede corresponder a información de índice de ponderación sobre un bloque que se usa para derivar el CPMV0 entre los bloques vecinos del CP0, y los bloques vecinos del CP0 pueden incluir un bloque vecino de esquina superior izquierda del bloque actual, un bloque vecino izquierdo adyacente al lado inferior del bloque vecino de esquina superior izquierda y un bloque vecino superior adyacente al lado derecho del bloque vecino de esquina superior izquierda.
[0386] La primera información de índice de ponderación puede corresponder a información de índice de ponderación sobre un bloque usado para derivar CPMV1 entre los bloques vecinos del CP1, y los bloques vecinos del CP1 pueden incluir un bloque vecino de esquina superior derecha del bloque actual y un bloque vecino superior adyacente al lado izquierdo del bloque vecino de esquina superior derecha.
[0387] Alternativamente, por ejemplo, los candidatos pueden incluir un candidato de SbTMVP, y es posible derivar información de índice de ponderación sobre el candidato de SbTMVP en base a información de índice de ponderación sobre un bloque vecino izquierdo del bloque actual. Es decir, la información de índice de ponderación sobre el candidato de SbTMVP puede derivarse en base a información de índice de ponderación sobre el bloque vecino izquierdo.
[0388] O, por ejemplo, los candidatos pueden incluir un candidato de SbTMVP, y es posible derivar como 0 información de índice de ponderación sobre el candidato de SbTMVP. Es decir, es posible derivar como 0 la información de índice de ponderación sobre el candidato de SbTMVP. En este caso, la información de índice de ponderación igual a 0 puede indicar que las ponderaciones de las direcciones de referencia respectivas (es decir, la dirección de predicción L0 y la dirección de predicción L1 en bipredicción) son iguales.
[0389] Alternativamente, por ejemplo, los candidatos pueden incluir candidatos de SbTMVP, y la información de índice de ponderación puede derivarse en base a información de índice de ponderación sobre un bloque central en un bloque coubicado. Es decir, la información de índice de ponderación sobre el candidato de SbTMVP puede derivarse en base a la información de índice de ponderación sobre el bloque central en el bloque coubicado. En este caso, el bloque coubicado puede incluir un bloque en la misma posición que la posición del bloque actual en una imagen de referencia diferente de una imagen actual en donde está ubicado el bloque actual, y el bloque central puede incluir un subbloque inferior derecho entre cuatro subbloques posicionados en un área central del bloque coubicado.
[0390] Alternativamente, por ejemplo, los candidatos pueden incluir un candidato de SbTMVP, y la información de índice de ponderación puede derivarse en base a información de índice de ponderación sobre cada subbloque en el bloque coubicado. Es decir, es posible derivar información de índice de ponderación sobre el candidato de SbTMVP en base a la información de índice de ponderación sobre cada subbloque en el bloque coubicado. Aunque no se ilustra en la FIG.14, por ejemplo, el aparato de decodificación puede derivar muestras residuales en base a información relacionada con residuos incluida en la información de imagen. Además, el aparato de decodificación puede generar muestras reconstruidas en base a las muestras de predicción y las muestras residuales. Es posible derivar un bloque reconstruido y una imagen reconstruida en base a las muestras reconstruidas.
[0391] Por ejemplo, el aparato de decodificación puede obtener información de imagen que incluye la totalidad o partes de los fragmentos de información (o elementos de sintaxis) descritos anteriormente decodificando el flujo de bits o la información codificada. Además, el flujo de bits o la información codificada pueden almacenarse en un medio de almacenamiento legible por ordenador, y pueden hacer que se realice el método de decodificación descrito anteriormente.
[0393] Aunque se han descrito métodos en base a un diagrama de flujo en donde se enumeran etapas o bloques en secuencia en las realizaciones descritas anteriormente, las etapas del presente documento no se limitan a un cierto orden, y una cierta etapa se puede realizar en una etapa diferente o en un orden diferente o simultáneamente con respecto a lo descrito anteriormente. Además, los expertos en la técnica entenderán que las etapas de los diagramas de flujo no son exclusivas, y se puede incluir otra etapa o se pueden eliminar una o más etapas en el diagrama de flujo sin ejercer influencia en el alcance de la presente descripción.
[0395] El método mencionado anteriormente según la presente descripción puede ser en forma de software, y el aparato de codificación y/o el aparato de decodificación según la presente descripción pueden incluirse en un dispositivo para realizar procesamiento de imágenes, por ejemplo, una TV, un ordenador, un teléfono inteligente, un decodificador, un dispositivo de visualización o similares.
[0397] Cuando las realizaciones de la presente descripción se implementan mediante software, el método mencionado anteriormente puede implementarse mediante un módulo (proceso o función) que realiza la función mencionada anteriormente. El módulo puede almacenarse en una memoria y ejecutarse mediante un procesador. La memoria puede instalarse dentro o fuera del procesador y puede conectarse al procesador a través de diversos medios bien conocidos. El procesador puede incluir un circuito integrado de aplicación específica (ASIC), otros conjuntos de chips, un circuito lógico y/o un dispositivo 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 otro dispositivo de almacenamiento. En otras palabras, las realizaciones según la presente descripción pueden implementarse y ejecutarse en un procesador, un microprocesador, un controlador o un chip. Por ejemplo, las unidades funcionales ilustradas en las figuras respectivas pueden implementarse y ejecutarse en un ordenador, un procesador, un microprocesador, un controlador o un chip. En este caso, es posible almacenar información sobre implementación (por ejemplo, información sobre instrucciones) o algoritmos en un medio de almacenamiento digital.
[0399] Además, el aparato de decodificación y el aparato de codificación en donde se aplican la realización o realizaciones del presente documento pueden incluirse en un transceptor de difusión multimedia, un terminal de comunicación móvil, un dispositivo de vídeo de cine en casa, un dispositivo de vídeo de cine digital, una cámara de vigilancia, un dispositivo de chat de vídeo y un dispositivo de comunicación en tiempo real, tal como comunicación de vídeo, un dispositivo de transmisión móvil, un medio de almacenamiento, una videocámara, un proveedor de servicios de vídeo bajo demanda (VoD), un dispositivo de vídeo Over the Top (OTT), un proveedor de servicios de transmisión de internet, un dispositivo de vídeo 3D, un dispositivo de realidad virtual (VR), un dispositivo de realidad aumentada (AR), un dispositivo de vídeo de teléfono de imagen, un terminal de vehículo (por ejemplo, un terminal de vehículo (incluyendo un vehículo autónomo), un terminal de avión o un terminal de barco) y un dispositivo de vídeo médico; y pueden usarse para procesar una señal o datos de imagen. Por ejemplo, el dispositivo de vídeo OTT puede incluir una consola de juegos, un reproductor Bluray, una TV conectada a Internet, un sistema de cine en casa, un teléfono inteligente, una tableta y un grabador de vídeo digital (DVR).
[0401] Además, el método de procesamiento en donde se aplican la realización o realizaciones del presente documento puede producirse en forma de un programa ejecutado por un ordenador y puede almacenarse en un medio de grabación legible por ordenador. Los datos multimedia que tienen una estructura de datos según la realización o realizaciones del presente documento también pueden almacenarse en el medio de grabación legible por ordenador. El medio de grabación legible por ordenador incluye todo tipo de dispositivos de almacenamiento y dispositivos de almacenamiento distribuidos en donde se almacenan datos legibles por ordenador. El medio de grabación legible por ordenador puede incluir, por ejemplo, un disco Bluray (BD), un bus serie universal (USB), una ROM, una PROM, una EPROM, una EEPROM, una RAM, un CD-ROM, una cinta magnética, un disquete y un dispositivo de almacenamiento de datos óptico. El medio de grabación legible por ordenador también incluye medios integrados en forma de una onda portadora (por ejemplo, transmisión a través de Internet). Además, un flujo de bits generado por el método de codificación puede almacenarse en el medio de grabación legible por ordenador o transmitirse a través de una red de comunicación por cable o inalámbrica.
[0403] Además, la realización o realizaciones del presente documento pueden realizarse como un producto de programa informático en base a un código de programa, y el código de programa puede ejecutarse en un ordenador según la realización o realizaciones del presente documento. El código de programa puede almacenarse en un soporte legible por ordenador.
[0404] La FIG. 16 es un diagrama que ilustra un ejemplo de un sistema de transmisión de contenido en donde son aplicables realizaciones de la presente descripción.
[0405] Con referencia a la FIG. 16, un sistema de transmisión de contenido en donde se aplican realizaciones de la presente descripción puede incluir en general un servidor de codificación, un servidor de transmisión, un servidor web, un almacenamiento de medios, un equipo de usuario y un dispositivo de entrada multimedia. El servidor de codificación funciona para comprimir en datos digitales los contenidos introducidos desde los dispositivos de entrada multimedia, tales como el teléfono inteligente, la cámara, la videocámara y similares, para generar un flujo de bits, y para transmitirlo al servidor de transmisión. A título de ejemplo adicional, en un caso en donde el dispositivo de entrada multimedia, tal como el teléfono inteligente, la cámara, la videocámara o similares, genera directamente un flujo de bits, el servidor de codificación puede omitirse.
[0406] El flujo de bits puede generarse mediante un método de codificación o un método de generación de flujo de bits en donde se aplican las realizaciones del presente documento. Y el servidor de transmisión puede almacenar temporalmente el flujo de bits en un proceso de transmisión o recepción del flujo de bits.
[0407] El servidor de transmisión transmite datos multimedia al equipo de usuario en base a una solicitud del usuario a través del servidor web, que funciona como un instrumento que informa a un usuario de qué servicio está presente. Cuando el usuario solicita un servicio que desea, el servidor web transfiere la solicitud al servidor de transmisión, y el servidor de transmisión transmite datos multimedia al usuario. A este respecto, el sistema de transmisión de contenidos puede incluir un servidor de control separado, y en este caso, el servidor de control funciona para controlar órdenes/respuestas entre equipos respectivos en el sistema de transmisión de contenidos.
[0408] El servidor de transmisión puede recibir contenidos desde el almacenamiento de medios y/o el servidor de codificación. Por ejemplo, en un caso en donde los contenidos se reciben desde el servidor de codificación, los contenidos pueden recibirse en tiempo real. En este caso, el servidor de transmisión puede almacenar el flujo de bits durante un período de tiempo predeterminado para proporcionar el servicio de transmisión de manera fluida.
[0409] Por ejemplo, el equipo de usuario puede incluir un teléfono móvil, un teléfono inteligente, un ordenador portátil, un terminal de difusión digital, un asistente digital personal (PDA), un reproductor multimedia portátil (PMP), un navegador, un PC tipo pizarra, una tableta, un ultrabook, un dispositivo portátil (p. ej., un terminal tipo reloj (reloj inteligente), un terminal tipo cristal (cristal inteligente), una pantalla montada en la cabeza (HMD)), una TV digital, un ordenador de sobremesa, una señalización digital o similares.
[0410] Cada uno de los servidores en el sistema de transmisión de contenidos puede ser operado como un servidor distribuido, y en este caso, los datos recibidos por cada servidor pueden ser procesados de manera distribuida.
Claims (11)
1. REIVINDICACIONES
1. Método de decodificación de imagen realizado por un aparato de decodificación, comprendiendo el método: recibir información de imagen que comprende información de modo de interpredicción a través de un flujo de bits;
generar una lista de candidatos de fusión para un bloque actual en base a la información de modo de interpredicción;
derivar información de movimiento sobre el bloque actual en base a un candidato seleccionado entre candidatos en la lista de candidatos de fusión;
generar muestras de predicción L0 y muestras de predicción L1 del bloque actual en base a la información de movimiento; y
generar muestras de predicción del bloque actual realizando bipredicción de promedio ponderado en base a las muestras de predicción L0, las muestras de predicción L1 y un índice de ponderación para el bloque actual, en donde el índice de ponderación se deriva en base a un índice de ponderación para el candidato seleccionado,
en donde los candidatos comprenden un candidato de fusión afín construido, y el candidato de fusión afín construido comprende vectores de movimiento de punto de control (CPMV),
caracterizado por que,
en base a un caso en donde el candidato de fusión afín construido comprende un CPMV0 para un punto de control 0 (CP0), un índice de ponderación para el candidato de fusión afín construido se establece igual a un índice de ponderación para el CP0, en donde el CP0 se ubica en una esquina superior izquierda del bloque actual, y
en base a un caso en donde el candidato de fusión afín construido no comprende el CPMV0 para el CP0, el índice de ponderación para el candidato de fusión afín construido se establece igual a un índice de ponderación para un punto de control 1 (CP1), en donde el CP1 se ubica en una esquina superior derecha del bloque actual.
2. Método de decodificación de imagen de la reivindicación 1,
en donde el índice de ponderación para el CP0 es igual a un índice de ponderación para un bloque que se usa para derivar el CPMV0 entre bloques vecinos del CP0, y
en donde los bloques vecinos del CP0 comprenden un bloque vecino de esquina superior izquierda del bloque actual, un bloque vecino izquierdo adyacente a un lado inferior del bloque vecino de esquina superior izquierda y un bloque vecino superior adyacente a un lado derecho del bloque vecino de esquina superior izquierda.
3. Método de decodificación de imagen de la reivindicación 1,
en donde el índice de ponderación para el CP1 es igual a un índice de ponderación para un bloque que se usa para derivar el CPMV1 entre bloques vecinos del CP1, y
en donde los bloques vecinos del CP1 comprenden un bloque vecino de esquina superior derecha del bloque actual y un bloque vecino superior adyacente a un lado izquierdo del bloque vecino de esquina superior derecha.
4. Método de decodificación de imagen de la reivindicación 1,
en donde los candidatos comprenden un candidato de predicción de vector de movimiento temporal en base a subbloque (SbTMVP), y
en donde un índice de ponderación para el candidato de SbTMVP se deriva en base a un índice de ponderación para un bloque vecino izquierdo del bloque actual.
5. Método de decodificación de imagen de la reivindicación 1,
en donde los candidatos comprenden un candidato de predicción de vector de movimiento temporal en base a subbloque (SbTMVP), y
en donde un índice de ponderación para el candidato de SbTMVP se deriva como 0.
6. Método de decodificación de imagen de la reivindicación 1,
en donde los candidatos comprenden un candidato de predicción de vector de movimiento temporal en base a subbloque (SbTMVP),
en donde un índice de ponderación para el candidato de SbTMVP se deriva en base a un índice de ponderación para un bloque central en un bloque coubicado,
en donde el bloque coubicado comprende un bloque en una misma posición que una posición del bloque actual en una imagen de referencia diferente de una imagen actual en donde se posiciona el bloque actual, y en donde el bloque central comprende un subbloque inferior derecho entre cuatro subbloques posicionados en un área central del bloque coubicado.
7. Método de codificación de imagen realizado por un aparato de codificación, comprendiendo el método: determinar un modo de interpredicción de un bloque actual y generar información de modo de interpredicción que indica el modo de interpredicción;
generar una lista de candidatos de fusión para el bloque actual en base al modo de interpredicción; generar información de selección que indica un candidato entre candidatos incluidos en la lista de candidatos de fusión; y
codificar información de imagen que comprende la información de modo de interpredicción y la información de selección,
en donde el modo de interpredicción comprende bipredicción de promedio ponderado usando muestras de predicción L0, muestras de predicción L1 y un índice de ponderación para el bloque actual,
en donde los candidatos comprenden un candidato de fusión afín construido, y el candidato de fusión afín construido comprende vectores de movimiento de punto de control (CPMV),
caracterizado por que
en base a un caso en donde el candidato de fusión afín construido comprende CPMV0 para un punto de control 0 (CP0), un índice de ponderación para el candidato de fusión afín construido se establece igual a un índice de ponderación para el CP0, en donde el CP0 se ubica en una esquina superior izquierda del bloque actual, y en base a un caso en donde el candidato de fusión afín construido no comprende el CPMV0 para el CP0, el índice de ponderación para el candidato de fusión afín construido se establece igual a un índice de ponderación para un punto de control 1 (CP1), en donde el CP1 se ubica en una esquina superior derecha del bloque actual.
8. Método de decodificación de imagen de la reivindicación 1, en donde, en base al caso en donde el candidato de fusión afín construido comprende el CPMV0 para el CP0, el índice de ponderación para el candidato de fusión afín construido se establece igual al índice de ponderación para el CP0 independientemente del índice de ponderación para el CP1 y un índice de ponderación para un punto de control 2 (CP2), en donde el CP2 se ubica en una esquina inferior izquierda del bloque actual.
9. Método de decodificación de imagen de la reivindicación 1, en donde, en base al caso en donde el candidato de fusión afín construido comprende el CPMV0 para el CP0, el índice de ponderación para el candidato de fusión afín construido se establece igual al índice de ponderación para el CP0 sin comparar el índice de ponderación para el CP0 con el índice de ponderación para el CP1 o un índice de ponderación para un punto de control 2 (CP2), en donde el CP2 se ubica en una esquina inferior izquierda del bloque actual.
10. Método de codificación de imagen de la reivindicación 7, en donde, en base al caso en donde el candidato de fusión afín construido comprende el CPMV0 para el CP0, el índice de ponderación para el candidato de fusión afín construido se establece igual al índice de ponderación para el CP0 independientemente del índice de ponderación para el CP1 y un índice de ponderación para un punto de control 2 (CP2), en donde el CP2 se ubica en una esquina inferior izquierda del bloque actual.
11. Método de codificación de imagen de la reivindicación 7, en donde, en base al caso en donde el candidato de fusión afín construido comprende el CPMV0 para el CP0, el índice de ponderación para el candidato de fusión afín construido se establece igual al índice de ponderación para el CP0 sin comparar el índice de ponderación para el CP0 con el índice de ponderación para el CP1 o un índice de ponderación para un punto de control 2 (CP2), en donde el CP2 se ubica en una esquina inferior izquierda del bloque actual.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201962861986P | 2019-06-14 | 2019-06-14 | |
| PCT/KR2020/007521 WO2020251257A1 (ko) | 2019-06-14 | 2020-06-10 | 예측 샘플을 생성하기 위한 가중치 인덱스 정보를 도출하는 영상 디코딩 방법 및 그 장치 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES3063233T3 true ES3063233T3 (en) | 2026-04-15 |
Family
ID=73782157
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES20823416T Active ES3063233T3 (en) | 2019-06-14 | 2020-06-10 | Image decoding method and image encoding method for deriving weight index information for generation of prediction sample |
Country Status (17)
| Country | Link |
|---|---|
| US (4) | US11445184B2 (es) |
| EP (2) | EP4697720A3 (es) |
| JP (5) | JP7249441B2 (es) |
| KR (2) | KR20250076671A (es) |
| CN (5) | CN114208171B (es) |
| AU (3) | AU2020293843B2 (es) |
| CA (2) | CA3240497A1 (es) |
| ES (1) | ES3063233T3 (es) |
| FI (1) | FI3985980T3 (es) |
| HR (1) | HRP20260242T1 (es) |
| LT (1) | LT3985980T (es) |
| MX (5) | MX2021015521A (es) |
| PL (1) | PL3985980T3 (es) |
| PT (1) | PT3985980T (es) |
| RS (1) | RS67742B1 (es) |
| SI (1) | SI3985980T1 (es) |
| WO (1) | WO2020251257A1 (es) |
Families Citing this family (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| MX2021007510A (es) * | 2018-12-21 | 2021-08-05 | Hfi Innovation Inc | Metodo y aparato de derivacion de lista de candidatos del modo de fusion de triangulo simplificado. |
| WO2020262901A1 (ko) * | 2019-06-24 | 2020-12-30 | 엘지전자 주식회사 | 영상 디코딩 방법 및 그 장치 |
| CN118714351A (zh) | 2019-06-24 | 2024-09-27 | Lg电子株式会社 | 图像编码设备、图像解码设备及发送图像数据的设备 |
| CN114402591B (zh) * | 2019-09-13 | 2024-08-02 | 北京字节跳动网络技术有限公司 | 并置运动矢量的推导 |
| CN120848785A (zh) * | 2024-04-26 | 2025-10-28 | 戴尔产品有限公司 | 用于回收存储空间的方法、电子设备和程序产品 |
Family Cites Families (30)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CA2655970A1 (en) * | 2006-07-07 | 2008-01-10 | Telefonaktiebolaget L M Ericsson (Publ) | Video data management |
| KR20110071047A (ko) | 2009-12-20 | 2011-06-28 | 엘지전자 주식회사 | 비디오 신호 디코딩 방법 및 장치 |
| ES2621231T3 (es) | 2011-04-12 | 2017-07-03 | Sun Patent Trust | Método de codificación de video de movimiento, aparato de codificación de video de movimiento, método de decodificación de video de movimiento, aparato de decodificación de video de movimiento y aparato de codificación/decodificación de video de movimiento |
| US9906786B2 (en) * | 2012-09-07 | 2018-02-27 | Qualcomm Incorporated | Weighted prediction mode for scalable video coding |
| JP6787667B2 (ja) | 2012-09-21 | 2020-11-18 | ノキア テクノロジーズ オサケユイチア | ビデオコーディングのための方法と装置 |
| KR101982788B1 (ko) * | 2014-10-01 | 2019-05-27 | 엘지전자 주식회사 | 향상된 예측 필터를 이용하여 비디오 신호를 인코딩, 디코딩하는 방법 및 장치 |
| EP3273692A4 (en) * | 2015-06-10 | 2018-04-04 | Samsung Electronics Co., Ltd. | Method and apparatus for encoding or decoding image using syntax signaling for adaptive weight prediction |
| CN109274974B (zh) * | 2015-09-29 | 2022-02-11 | 华为技术有限公司 | 图像预测的方法及装置 |
| US20190158870A1 (en) * | 2016-01-07 | 2019-05-23 | Mediatek Inc. | Method and apparatus for affine merge mode prediction for video coding system |
| WO2017147765A1 (en) * | 2016-03-01 | 2017-09-08 | Mediatek Inc. | Methods for affine motion compensation |
| KR102425722B1 (ko) * | 2016-04-29 | 2022-07-27 | 세종대학교산학협력단 | 영상 신호 부호화/복호화 방법 및 장치 |
| US10834420B2 (en) * | 2016-04-29 | 2020-11-10 | Intellectual Discovery Co., Ltd. | Method and apparatus for encoding/decoding video signal |
| US10560718B2 (en) | 2016-05-13 | 2020-02-11 | Qualcomm Incorporated | Merge candidates for motion vector prediction for video coding |
| US11363253B2 (en) | 2016-05-13 | 2022-06-14 | Vid Scale, Inc. | Systems and methods for generalized multi-hypothesis prediction for video coding |
| CN116708783A (zh) * | 2016-07-12 | 2023-09-05 | 韩国电子通信研究院 | 图像编码/解码方法以及用于该方法的记录介质 |
| US10880552B2 (en) * | 2016-09-28 | 2020-12-29 | Lg Electronics Inc. | Method and apparatus for performing optimal prediction based on weight index |
| US10681370B2 (en) | 2016-12-29 | 2020-06-09 | Qualcomm Incorporated | Motion vector generation for affine motion model for video coding |
| US10491917B2 (en) * | 2017-03-22 | 2019-11-26 | Qualcomm Incorporated | Decoder-side motion vector derivation |
| EP3468195A1 (en) * | 2017-10-05 | 2019-04-10 | Thomson Licensing | Improved predictor candidates for motion compensation |
| TWI719519B (zh) * | 2018-07-02 | 2021-02-21 | 大陸商北京字節跳動網絡技術有限公司 | 對於dmvr的塊尺寸限制 |
| WO2020032609A1 (ko) * | 2018-08-09 | 2020-02-13 | 엘지전자 주식회사 | 영상 코딩 시스템에서 어파인 머지 후보 리스트를 사용하는 어파인 움직임 예측에 기반한 영상 디코딩 방법 및 장치 |
| CN111107373B (zh) | 2018-10-29 | 2023-11-03 | 华为技术有限公司 | 基于仿射预测模式的帧间预测的方法及相关装置 |
| EP4300965A3 (en) | 2018-11-05 | 2024-01-17 | Beijing Bytedance Network Technology Co., Ltd. | Interpolation for inter prediction with refinement |
| US11153590B2 (en) * | 2019-01-11 | 2021-10-19 | Tencent America LLC | Method and apparatus for video coding |
| CN118612453A (zh) * | 2019-02-14 | 2024-09-06 | Lg 电子株式会社 | 基于dmvr的帧间预测方法和设备 |
| US11190797B2 (en) * | 2019-03-01 | 2021-11-30 | Qualcomm Incorporated | Constraints on decoder-side motion vector refinement based on weights for bi-predicted prediction |
| JP7192145B2 (ja) | 2019-03-06 | 2022-12-19 | 北京字節跳動網絡技術有限公司 | サイズに依存したインターコーディング |
| US11323731B2 (en) | 2019-03-08 | 2022-05-03 | Tencent America LLC | Method and apparatus for video coding |
| CN113950838B (zh) | 2019-06-06 | 2026-03-17 | 北京字节跳动网络技术有限公司 | 基于子块的帧内块复制 |
| AU2020290835B2 (en) * | 2019-06-14 | 2023-12-07 | Lg Electronics Inc. | Image decoding method for deriving weight index information for bi-prediction, and device for same |
-
2020
- 2020-06-10 KR KR1020257016142A patent/KR20250076671A/ko active Pending
- 2020-06-10 FI FIEP20823416.1T patent/FI3985980T3/fi active
- 2020-06-10 LT LTEPPCT/KR2020/007521T patent/LT3985980T/lt unknown
- 2020-06-10 WO PCT/KR2020/007521 patent/WO2020251257A1/ko not_active Ceased
- 2020-06-10 CN CN202080051015.4A patent/CN114208171B/zh active Active
- 2020-06-10 SI SI202030728T patent/SI3985980T1/sl unknown
- 2020-06-10 RS RS20260151A patent/RS67742B1/sr unknown
- 2020-06-10 CN CN202511267381.4A patent/CN121151548A/zh active Pending
- 2020-06-10 JP JP2021574322A patent/JP7249441B2/ja active Active
- 2020-06-10 PT PT208234161T patent/PT3985980T/pt unknown
- 2020-06-10 KR KR1020217039748A patent/KR102810852B1/ko active Active
- 2020-06-10 CN CN202511267374.4A patent/CN121151547A/zh active Pending
- 2020-06-10 CN CN202511266939.7A patent/CN121151545A/zh active Pending
- 2020-06-10 PL PL20823416.1T patent/PL3985980T3/pl unknown
- 2020-06-10 EP EP25227336.2A patent/EP4697720A3/en active Pending
- 2020-06-10 EP EP20823416.1A patent/EP3985980B1/en active Active
- 2020-06-10 ES ES20823416T patent/ES3063233T3/es active Active
- 2020-06-10 HR HRP20260242TT patent/HRP20260242T1/hr unknown
- 2020-06-10 CA CA3240497A patent/CA3240497A1/en active Pending
- 2020-06-10 CA CA3143538A patent/CA3143538C/en active Active
- 2020-06-10 CN CN202511267378.2A patent/CN121151546A/zh active Pending
- 2020-06-10 AU AU2020293843A patent/AU2020293843B2/en active Active
- 2020-06-10 MX MX2021015521A patent/MX2021015521A/es unknown
-
2021
- 2021-12-13 MX MX2024015140A patent/MX2024015140A/es unknown
- 2021-12-13 MX MX2024015137A patent/MX2024015137A/es unknown
- 2021-12-13 MX MX2024015141A patent/MX2024015141A/es unknown
- 2021-12-13 MX MX2024015139A patent/MX2024015139A/es unknown
- 2021-12-14 US US17/550,476 patent/US11445184B2/en active Active
-
2022
- 2022-07-26 US US17/873,487 patent/US11843771B2/en active Active
-
2023
- 2023-03-17 JP JP2023043048A patent/JP7432035B2/ja active Active
- 2023-11-01 US US18/386,130 patent/US12289444B2/en active Active
-
2024
- 2024-02-02 JP JP2024014779A patent/JP7592909B2/ja active Active
- 2024-02-21 AU AU2024201124A patent/AU2024201124B2/en active Active
- 2024-11-20 JP JP2024202107A patent/JP7729968B2/ja active Active
- 2024-12-20 US US18/989,342 patent/US20250142051A1/en active Pending
-
2025
- 2025-08-14 JP JP2025134969A patent/JP2025166162A/ja active Pending
- 2025-08-15 AU AU2025217380A patent/AU2025217380A1/en active Pending
Also Published As
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES3063233T3 (en) | Image decoding method and image encoding method for deriving weight index information for generation of prediction sample | |
| ES3019563T3 (en) | Image decoding and encoding apparatus based on motion prediction in sub-block unit in image coding system | |
| ES3010265T3 (en) | Inter-prediction method and device based on dmvr and bdof | |
| ES3040713T3 (en) | Signaling method and device for merge data syntax in video/image coding system | |
| ES2926196T3 (es) | Codificación de imágenes basada en la predicción de movimiento afín usando la lista de candidatos de MVP afines | |
| ES3057716T3 (en) | Syntax design method and apparatus for performing coding by using syntax | |
| KR102943304B1 (ko) | 머지 후보를 이용하여 예측 샘플을 도출하는 영상 디코딩 방법 및 그 장치 | |
| ES3046821T3 (en) | Device for removing redundant syntax from merge data syntax | |
| KR20210118952A (ko) | 쌍 예측을 위한 가중치 인덱스 정보를 유도하는 비디오 또는 영상 코딩 | |
| KR20210158402A (ko) | 현재 블록에 대하여 최종적으로 예측 모드를 선택하지 못하는 경우 인터 예측을 수행하는 영상 디코딩 방법 및 그 장치 | |
| JP2023145702A (ja) | 双予測(bi-prediction)が適用される場合、加重平均のための加重値インデックス情報を導出する画像デコード方法及びその装置 | |
| ES2960029T3 (es) | Método y aparato para inter predicción en un sistema de codificación de vídeo | |
| KR20210158401A (ko) | 결정된 예측 모드를 적용하여 예측 샘플들을 생성하는 영상 디코딩 방법 및 그 장치 | |
| KR20210153736A (ko) | 쌍 예측(bi-prediction)을 위한 가중치 인덱스 정보를 도출하는 영상 디코딩 방법 및 그 장치 | |
| KR20210153739A (ko) | 디폴트 머지 모드에 기반하여 예측 샘플을 도출하는 영상 디코딩 방법 및 그 장치 | |
| KR102701582B1 (ko) | Sbtmvp 기반 영상 또는 비디오 코딩 | |
| ES2949795T3 (es) | Método y dispositivo de decodificación de imágenes basado en la predicción de movimiento afín usando un candidato de MVP afín construido en el sistema de codificación de imágenes | |
| ES3041014T3 (en) | Image encoding/decoding device for performing bdof, and device for transmitting bitstream | |
| KR20220003117A (ko) | 영상 디코딩 방법 및 그 장치 | |
| ES3043608T3 (en) | Method for signaling picture partitioning information | |
| RU2812840C2 (ru) | Способ и устройство декодирования изображения для выведения информации индекса веса для генерации выборки предсказания | |
| RU2823775C2 (ru) | Способ и устройство декодирования изображения для выведения информации индекса веса для генерации выборки предсказания | |
| BR112021025255B1 (pt) | Método de decodificação de imagens realizado por um aparelho de decodificação, método de codificação de imagens realizado por um aparelho de codificação e meio de armazenamento digital não transitório legível por computador | |
| BR122023011395B1 (pt) | Aparelho de decodificação para decodificação de imagem, aparelho de codificação para codificação de imagem e aparelho de transmissão de dados para uma imagem | |
| BR122023011446B1 (pt) | Método de decodificação de imagens realizado por um aparelho de decodificação, método de codificação de imagens realizado por um aparelho de codificação, meio de armazenamento digital não transitório legível por computador e método de transmissão de dados para uma imagem |