ES3022187T3 - Transform for matrix-based intra-prediction in image coding - Google Patents
Transform for matrix-based intra-prediction in image coding Download PDFInfo
- Publication number
- ES3022187T3 ES3022187T3 ES23205062T ES23205062T ES3022187T3 ES 3022187 T3 ES3022187 T3 ES 3022187T3 ES 23205062 T ES23205062 T ES 23205062T ES 23205062 T ES23205062 T ES 23205062T ES 3022187 T3 ES3022187 T3 ES 3022187T3
- Authority
- ES
- Spain
- Prior art keywords
- information
- transform
- mip
- current block
- block
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
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/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/12—Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
-
- 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/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- 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/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- 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/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/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/18—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 a set of transform coefficients
-
- 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/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
-
- 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/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- 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
-
- 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/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/96—Tree coding, e.g. quad-tree coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Discrete Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Un método de codificación de imágenes, según el presente documento, comprende los pasos siguientes: derivar los coeficientes de transformada de un bloque actual a partir de la información residual; y generar muestras residuales del bloque actual a partir de los coeficientes de transformada. La información residual comprende la información del índice de transformada no separable de baja frecuencia (LFNST), que muestra información relativa a la transformada no separable para los coeficientes de transformada de baja frecuencia del bloque actual, basándose en un indicador de intrapredicción matricial (MIP) que indica si se aplica o no MIP al bloque actual. Las muestras residuales se generan a partir de los coeficientes de transformada a partir de la información del índice LFNST. (Traducción automática con Google Translate, sin valor legal)
Description
DESCRIPCIÓN
Transformada para intra predicción basada en matriz en codificación de imágenes
Antecedentes de la descripción
Campo de la descripción
La presente descripción se refiere a una tecnología de codificación de imágenes y, más particularmente, a una transformada para intra predicción basada en matriz en codificación de imágenes.
Técnica relacionada
Recientemente, la demanda de imágenes/vídeos de alta resolución y alta calidad, tales como imagen/vídeo 4K, 8K o más de ultra alta definición (UHD), está aumentando en diversos campos. A medida que la resolución o calidad de la imagen/vídeo aumenta, se transmite relativamente más cantidad de información o bits que para los datos de imagen/vídeo convencionales. Por lo tanto, si los datos de imagen/vídeo se transmiten a través de un medio tal como una línea de banda ancha alámbrica/inalámbrica existente o se almacenan en un medio de almacenamiento heredado, los costes de transmisión y almacenamiento aumentan fácilmente.
Además, está creciendo el interés y la demanda de contenidos de realidad virtual (VR) y realidad artificial (AR), y medios inmersivos tales como los hologramas; y también está aumentando la difusión de imágenes/vídeos que presentan características de imagen/vídeo diferentes de las de una imagen/vídeo real, tales como imágenes/vídeos de juegos.
Por lo tanto, se requiere una técnica de compresión de imágenes/vídeo altamente eficiente para comprimir y transmitir, almacenar o reproducir de forma eficiente imágenes/vídeos de alta resolución y alta calidad que muestren diversas características como se ha descrito anteriormente.
El documento JVET-J0024_v2 publicado por el Equipo Mixto de Exploración de Vídeo (JVET) de ITU-T SG 16 WP 3 e ISO/IEC JTC 1/SC 29/WG 11, San Diego, Estados Unidos, 10-20 de abril de 2018, proporciona una descripción de propuesta de tecnología de codificación de vídeo de rango dinámico estándar (SDR), alto rango dinámico (HDR) y de 360° considerando la situación de aplicaciones móviles de Samsung, Huawei, GoPro y HiSilicon.
El documento JVET-N0509-v3 publicado por el JVET de ITU-T SG 16 WP 3 e ISO/IEC JTC 1/SC 29/WG 11, Ginebra, CH, 19-27 de marzo de 2019, "CE6-Related: NSST with 8 Coeffcients Computations", analiza una simplificación de la herramienta de codificación de transformada secundaria no separable (NSST). En el borrador de texto VVC modificado adjunto publicado con JVET-N0509-v3, se describe una señalización condicional de un índice de NSST basado en el uso de intra subparticiones, ISP. PFAFF, JONATHAN et al en "C'E3: Affine linear weighted intra prediction (CE3-4.1, CE3-4.2)", publicado por el Equipo Mixto de Expertos en Vídeo (JVET) de [TU-T SG 16 WP 3 e ISO/IEC JTC 1/SC 29/WG 11 como JVET-N0217 el 12 de marzo de 2019 (12-03-2019) describe detalles de una herramienta de codificación que se desarrolló además en el modo de intra predicción basado en matriz, MIP, de VVC.
Compendio
La invención se define en las reivindicaciones adjuntas.
De acuerdo con el presente documento, en caso de que se apliquen MIP y transformada no separable de baja frecuencia (LFNST), se puede minimizar la interferencia entre ellos, se puede mantener una eficiencia de codificación óptima y se puede reducir la complejidad.
Los efectos que se pueden obtener a través de un ejemplo detallado del presente documento no están limitados a los efectos enumerados anteriormente. Por ejemplo, puede haber diversos efectos técnicos que una persona con conocimientos habituales en la técnica relacionada puede entender o inducir a partir del presente documento. En consecuencia, los efectos detallados del presente documento no están limitados a aquellos explícitamente indicados en el presente documento, sino que pueden incluir diversos efectos que pueden entenderse o inducirse a partir de las características técnicas del presente documento.
Descripción de las figuras
La Figura 1 ilustra esquemáticamente un ejemplo de un sistema de codificación de vídeo/imágenes al que puede aplicarse el presente documento.
La Figura 2 es un diagrama que explica esquemáticamente la configuración de un aparato de codificación de vídeo/imágenes al que puede aplicarse el presente documento.
La Figura 3 es un diagrama que explica esquemáticamente la configuración de un aparato de decodificación de vídeo/imágenes al que puede aplicarse el presente documento.
La Figura 4 ilustra esquemáticamente una técnica de transformada múltiple de acuerdo con una realización del presente documento.
La Figura 5 ilustra a modo de ejemplo modos intra direccionales en 65 direcciones de predicción.
Las Figuras 6 y 7 son diagramas que explican RST de acuerdo con una realización del presente documento. La Figura 8 ilustra a modo de ejemplo la codificación aritmética binaria adaptativa al contexto (CABAC) para codificar elementos de sintaxis.
La Figura 9 es un diagrama que explica MIP para un bloque de 8x8.
La Figura 10 es un diagrama de flujo que explica un método al que se aplican MIP y LFNST.
Las Figuras 11 y 12 ilustran esquemáticamente un método de codificación de vídeo/imágenes y un ejemplo de componentes relacionados de acuerdo con la realización o realizaciones del presente documento.
Las Figuras 13 y 14 ilustran esquemáticamente un método de decodificación de vídeo/imágenes y un ejemplo de componentes relacionados de acuerdo con la realización o realizaciones del presente documento.
La Figura 15 ilustra un ejemplo de un sistema de envío por flujo continuo de contenido al que son aplicables realizaciones descritas en el presente documento.
Descripción detallada de la invención
La presente descripción puede modificarse de diversas formas y en los dibujos se describirán e ilustrarán realizaciones específicas de la misma. Sin embargo, las realizaciones no pretenden limitar la descripción. Los términos usados en la siguiente descripción se usan para describir simplemente realizaciones específicas, pero no pretenden limitar la descripción. Una expresión de un número singular incluye una expresión del número plural, siempre que se lea claramente de manera diferente. Los términos tales como "incluir" y "tener" pretenden indicar que existen características, números, etapas, operaciones, elementos, componentes o combinaciones de los mismos usados en la siguiente descripción y, por lo tanto, se debería entender que no se excluye la posibilidad de existencia o adición de una o más características, números, etapas, operaciones, elementos, componentes o combinaciones de los mismos diferentes.
Además, cada configuración de los dibujos descritos en este documento es una ilustración independiente para explicar funciones como características que son diferentes entre sí, y no significa que cada configuración se implemente mediante hardware o software mutuamente diferentes entre sí. Por ejemplo, se pueden combinar dos o más configuraciones para formar una configuración, y una configuración también se puede dividir en múltiples configuraciones.
En lo sucesivo en el presente documento, se describirán con detalle ejemplos de la presente realización con referencia a los dibujos adjuntos. Además, se usan números de referencia semejantes para indicar elementos semejantes en todos los dibujos y se omitirán las mismas descripciones acerca de los elementos semejantes. Este documento se refiere a la codificación de vídeo/imágenes. Por ejemplo, los métodos/realizaciones descritos en este documento pueden estar relacionados con la norma de codificación de vídeo versátil (VVC) (ITU-T Rec. H.266), una norma de codificación de vídeo/imágenes de próxima generación después de VVC, u otras normas relacionadas con la codificación de vídeo (por ejemplo, la norma HEVC (codificación de vídeo de alta eficiencia) (ITU-T Rec. H.265), norma de codificación de vídeo esencial (EVC), norma AVS2 y similares). Este documento sugiere diversas realizaciones de codificación de vídeo/imágenes, y las realizaciones pueden realizarse también en combinación entre sí a menos que se especifique lo contrario.
En este documento, un vídeo puede referirse a una serie de imágenes a lo largo del tiempo. Una imagen generalmente se refiere a la unidad que representa una imagen en un marco de tiempo particular, y un corte/pieza se refiere a la unidad que constituye una parte de la imagen en términos de codificación. Un corte/pieza puede incluir una o más unidades de árbol de codificación (CTU). Una imagen puede consistir en uno o más cortes/piezas. Una imagen puede consistir en uno o más grupos de piezas. Un grupo de piezas puede incluir una o más piezas.
Un píxel o un pel puede significar una unidad más pequeña que constituye una fotografía (o imagen). Asimismo, puede usarse 'muestra' como un término que corresponde a un píxel. Una muestra puede representar generalmente un píxel o un valor de un píxel, y puede representar solo un píxel/valor de píxel de un componente de luma o solo un píxel/valor de píxel de un componente de croma.
Una unidad puede representar una unidad básica de procesamiento de imágenes. La unidad puede incluir al menos una de una región específica de la imagen e información relacionada con la región. Una unidad puede incluir un bloque de luma y dos bloques de croma (por ejemplo, cb, cr). La unidad puede usarse de forma intercambiable con términos tales como bloque o área en algunos casos. En un caso general, un bloque M x N puede incluir muestras (o matrices de muestras) o un conjunto (o matriz) de coeficientes de transformada de M columnas y N filas. Como alternativa, la muestra puede significar un valor de píxel en el dominio espacial, y cuando un valor de píxel de este tipo se transforma al dominio de frecuencia, puede significar un coeficiente de transformada en el dominio de frecuencia.
En este documento, debería interpretarse que el término "/" y "," indica "y/o". Por ejemplo, la expresión "A/B" puede significar "A y/o B". Además, "A, B" puede significar "A y/o B". Además, "A/B/C" puede significar "al menos uno de A, B y/o C". Además, "A/B/C" puede significar "al menos uno de A, B y/o C".
Además, en el documento, debería interpretarse que el término "o" indica "y/o". Por ejemplo, la expresión "A o B" puede comprender 1) solo A, 2) solo B y/o 3) tanto A como B. En otras palabras, el término "o" en este documento debe interpretarse para indicar "adicionalmente o como alternativa".
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 como "al menos uno de A y B".
Además, 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".
Además, los paréntesis usados en la presente memoria descriptiva pueden significar "por ejemplo". En concreto, en el caso de que se exprese "predicción (intra predicción)", se podrá indicar que se propone "intra predicción" como ejemplo de "predicción". En otras palabras, el término "predicción" en la presente memoria descriptiva no está limitado a "intra predicción", y puede indicarse que "intra predicción" se propone como ejemplo de "predicción". Además, incluso el caso de que se exprese "predicción (es decir, intra predicción)", se podrá indicar que se propone "intra predicción" como ejemplo de "predicción".
En la presente memoria descriptiva, las características técnicas explicadas individualmente en un dibujo pueden implementarse individualmente o simultáneamente.
La Figura 1 ilustra un ejemplo de un sistema de codificación de vídeo/imágenes al que se puede aplicar la descripción del presente documento.
Haciendo referencia a la Figura 1, un sistema de codificación de vídeo/imágenes puede incluir un dispositivo de fuente y un dispositivo de recepción. El dispositivo de fuente puede transferir datos o información de vídeo/imágenes codificados al dispositivo de recepción a través de un medio de almacenamiento digital o una red en forma de archivo o de envío por flujo continuo.
El dispositivo de fuente puede incluir una fuente de vídeo, un aparato de codificación y un transmisor. El dispositivo de recepción puede incluir un receptor, un aparato de decodificación y un representador. El aparato de codificación puede denominarse aparato de codificación de vídeo/imágenes, y el aparato de decodificación puede denominarse aparato de decodificación de vídeo/imágenes. El transmisor puede estar incluido en el aparato de codificación. El receptor puede estar incluido en el aparato de decodificación. El representador puede incluir una pantalla, y la pantalla puede configurarse como un dispositivo separado o un componente externo.
La fuente de vídeo puede adquirir vídeo/imágenes a través de un proceso de captura, síntesis o generación del vídeo/imágenes. La fuente de vídeo puede incluir un dispositivo de captura de vídeo/imágenes y/o un dispositivo de generación de vídeo/imágenes. El dispositivo de captura de vídeo/imágenes puede incluir, por ejemplo, una o más cámaras, archivos de vídeo/imágenes que incluyen vídeo/imágenes capturadas previamente y similares. El dispositivo de generación de vídeo/imágenes puede incluir, por ejemplo, ordenadores, tabletas y teléfonos inteligentes, y puede (electrónicamente) generar vídeo/imágenes. Por ejemplo, puede generarse una imagen/vídeo virtual a través de un ordenador o similar. En este caso, el proceso de captura de vídeo/imágenes puede remplazase por un proceso de generación de datos relacionados.
El aparato de codificación puede codificar vídeo/imágenes de entrada. El aparato de codificación puede realizar una serie de procedimientos tales como predicción, transformada y cuantificación para la eficiencia de compactación y codificación. Los datos codificados (información de vídeo/imágenes codificada) pueden emitirse en forma de un flujo de bits.
El transmisor puede transmitir la imagen codificada/información de imagen o la salida de datos en forma de flujo de bits al receptor del dispositivo de recepción a través de un medio de almacenamiento digital o una red en forma de archivo o envío por flujo continuo. El medio de almacenamiento digital puede incluir diversos medios de almacenamiento, tales como USB, SD, CD, DVD, Blu-ray, HDD, SSD y similares. El transmisor puede incluir un elemento para generar un archivo de medios a través de un formato de archivo predeterminado y puede incluir un elemento para la transmisión a través de una red de difusión/comunicación. El receptor puede recibir/extraer el flujo de bits y transmitir el flujo de bits recibido al aparato de decodificación.
El aparato de decodificación puede decodificar el vídeo/imágenes realizando una serie de procedimientos tales como descuantificación, transformada inversa y predicción correspondientes a la operación del aparato de codificación.
El representador puede representar el vídeo/imágenes decodificados. El vídeo/imágenes representados puede visualizarse a través de la pantalla.
La Figura 2 es un diagrama que ilustra esquemáticamente la configuración de un aparato de codificación de vídeo/imágenes al que 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 imágenes.
Haciendo referencia a la Figura 2, el aparato 200 de codificación puede incluir y estar configurado con un divisor en particiones 210 de imágenes, un predictor 220, un procesador 230 residual, un codificador 240 por entropía, un sumador 250, un filtro 260 y una memoria 270. El predictor 220 puede incluir un inter predictor 221 y un intra predictor 222. El procesador 230 residual puede incluir un transformador 232, un cuantificador 233, un descuantificador 234 y un transformador 235 inverso. El procesador 230 residual puede incluir además un restador 231. El sumador 250 puede denominarse reconstructor o generador de bloques reconstruidos. El divisor en particiones 210 de imágenes, el predictor 220, el procesador 230 residual, el codificador 240 por entropía, el sumador 250 y el filtro 260 que se han descrito anteriormente, pueden estar configurados por uno o más componentes de hardware (por ejemplo, conjuntos de chips de codificador o procesadores), de acuerdo con una realización. Además, la memoria 270 puede incluir una memoria intermedia de imágenes decodificadas (DPB), y también puede estar configurada mediante un medio de almacenamiento digital. El componente de hardware puede incluir además la memoria 270 como un componente interno/externo.
El divisor en particiones 210 de imágenes puede dividir una imagen (o una fotografía o un fotograma) de entrada introducida en el aparato 200 de codificación en una o más unidades de procesamiento. Como un ejemplo, la unidad de procesamiento puede denominarse unidad de codificación (CU). En este caso, la unidad de codificación puede dividirse recursivamente de acuerdo con una estructura de árbol ternario de árbol binario de árbol cuádruple (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 de una profundidad más profunda basándose en una estructura de árbol cuádruple, una estructura de árbol binario y/o una estructura de árbol ternario. En este caso, por ejemplo, se aplica en primer lugar la estructura de árbol cuádruple, y se aplica más tarde la estructura de árbol binario y/o la estructura de árbol ternario. Como alternativa, también se puede aplicar en primer lugar la estructura de árbol binario. Un procedimiento de codificación de acuerdo con la presente descripción se puede realizar basándose en una unidad de codificación final que ya no se divide más. En este caso, basándose en la eficiencia de codificación de acuerdo con las características de la 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 de una profundidad más profunda, de manera que puede usarse una unidad de codificación que tenga un tamaño óptimo como unidad de codificación final. En este punto, el procedimiento de codificación puede incluir un procedimiento tal como predicción, transformada y reconstrucción, que se describirá más adelante. Como otro ejemplo, la unidad de procesamiento puede incluir además una unidad de predicción (PU) o una unidad de transformada (TU). En este caso, cada una de la unidad de predicción y la unidad de transformada pueden dividirse por la mitad o dividirse de la unidad de codificación final mencionada anteriormente. La unidad de predicción puede ser una unidad de predicción de muestras, y la unidad de transformada puede ser una unidad para inducir un coeficiente de transformada y/o una unidad para inducir una señal residual a partir del coeficiente de transformada.
La unidad puede usarse de manera intercambiable con el término tal como bloque o área, en algunos casos. Generalmente, un bloque de MxN puede representar muestras compuestas por M columnas y N filas o un grupo de coeficientes de transformada. La muestra puede representar generalmente un píxel o un valor de un píxel, y puede representar también solo el píxel/valor de píxel de un componente de luma y representar también solo el píxel/valor de píxel de un componente de croma. La muestra puede usarse como el término correspondiente a un píxel o un pel que configura una fotografía (o imagen).
El restador 231 puede generar una señal residual (bloque residual, muestras residuales o matriz de muestras residuales) restando una señal de predicción (bloque previsto, muestras de predicción o matriz de muestras de predicción) emitida desde el predictor 220 de una señal de imagen de entrada (bloque original, muestras originales o matriz de muestras original), y la señal residual generada se transmite al transformador 232. El predictor 220 puede realizar la predicción para un bloque objetivo de procesamiento (en lo sucesivo en el presente documento denominado "bloque actual"), y generar un bloque previsto que incluye muestras de predicción para el bloque actual. El predictor 220 puede determinar si se aplica intra predicción o inter predicción en un bloque actual o en una unidad de CU. Como se describe más adelante en la descripción de cada modo de predicción, el predictor puede generar diversos tipos de información relacionada con la predicción, tal como información de modo de predicción, y transferir la información generada al codificador 240 por entropía. La información acerca de la predicción puede codificarse en el codificador 240 por entropía y emitirse en forma de un flujo de bits.
El intra predictor 222 puede predecir un bloque actual con referencia a muestras dentro de una imagen actual. Las muestras referenciadas pueden estar ubicadas contiguas al bloque actual, o también pueden estar ubicadas lejos del bloque actual de acuerdo con el modo de predicción. Los modos de predicción en la intra predicción pueden incluir una pluralidad de modos no direccionales y una pluralidad de modos direccionales. El modo no direccional puede incluir, por ejemplo, un modo CC o un modo planar. El modo direccional puede incluir, por ejemplo, 33 modos de predicción direccional o 65 modos de predicción direccional de acuerdo con el grado de la dirección de predicción. Sin embargo, esto es ilustrativo y los modos de predicción direccional que sean mayores o menores que el número anterior se pueden usar de acuerdo con la configuración. El intra predictor 222 también puede determinar el modo de predicción aplicado al bloque actual usando el modo de predicción aplicado al bloque contiguo.
El inter predictor 221 puede inducir un bloque previsto del bloque actual basándose en un bloque de referencia (una matriz de muestras de referencia) especificado por un vector de movimiento en una imagen de referencia. En este momento, para reducir la cantidad de información de movimiento transmitida en el modo de inter predicción, la información de movimiento puede predecirse en unidades de un bloque, un subbloque o una muestra basándose en la correlación de la información de movimiento entre el bloque contiguo y el bloque actual. La información de movimiento puede incluir un vector de movimiento y un índice de imagen de referencia. La información de movimiento puede incluir además información de dirección de inter predicción (predicción de L0, predicción de L1, bipredicción, o similares). En el caso de inter predicción, el bloque contiguo puede incluir un bloque contiguo espacial existente dentro de la imagen actual y un bloque contiguo 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 contiguo temporal también pueden ser iguales entre sí y también pueden ser diferentes entre sí. El bloque contiguo temporal puede denominarse con el nombre bloque de referencia coubicado, CU coubicada (colCU) o similar, y la imagen de referencia que incluye el bloque contiguo temporal también puede denominarse imagen coubicada (colPic). Por ejemplo, el inter predictor 221 puede configurar una lista de candidatos de información de movimiento basándose en bloques contiguos 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 inter predicción se puede realizar basándose en diversos modos de predicción y, por ejemplo, en el caso de un modo de salto y un modo de fusión, el inter predictor 221 puede usar la información de movimiento del bloque contiguo como la información de movimiento del bloque actual. En el caso del modo de salto, 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 contiguo como predictor del vector de movimiento y señalizando una diferencia del vector de movimiento.
El predictor 220 puede generar una señal de predicción basándose en diversos métodos de predicción que se describen a continuación. Por ejemplo, el predictor no solo puede aplicar la intra predicción o la inter predicción para predecir un bloque, sino que también puede aplicar simultáneamente tanto la intra predicción como la inter predicción. Esto puede denominarse inter e intra predicción combinadas (CIIP). Además, el predictor puede realizar copia intra bloque (IBC) para la predicción de un bloque. La copia intra bloque se puede usar para la codificación de imagen de contenido/imagen en movimiento de un juego o similar, por ejemplo, codificación de contenido de pantalla (SCC). La IBC realiza básicamente la predicción en la imagen actual, pero se puede realizar de manera similar a la inter predicción en la que se deriva un bloque de referencia en la imagen actual. Es decir, la IBC puede usar al menos una de las técnicas de inter predicción descritas en el presente documento.
La señal de predicción generada a través del inter predictor 221 y/o el intra predictor 222 puede usarse para generar una señal reconstruida o para generar una señal residual. El transformador 232 puede generar coeficientes de transformada aplicando una técnica de transformada a la señal residual. Por ejemplo, la técnica de transformada puede incluir al menos una transformada de coseno discreta (DCT), una transformada de seno discreta (DST), una transformada basada en grafos (GBT) o una transformada condicionalmente no lineal (CNT). En este punto, la GBT significa una transformada obtenida de un grafo cuando la información de relación entre píxeles está representada por el grafo. La CNT se refiere a la transformada obtenida basándose en una señal de predicción generada usando todos los píxeles reconstruidos previamente. Además, el proceso de transformada puede aplicarse a bloques de píxeles cuadrados que tienen el mismo tamaño o puede aplicarse a bloques que tienen un tamaño variable en lugar de cuadrados.
El cuantificador 233 puede cuantificar los coeficientes de transformada y transmitir los mismos al codificador 240 por entropía y el codificador 240 por entropía puede codificar la señal cuantificada (información acerca de los coeficientes de transformada cuantificados) y emitir un flujo de bits. La información acerca de los coeficientes de transformada cuantificados puede denominarse información residual. El cuantificador 233 puede reorganizar coeficientes de transformada cuantificados de tipo bloque en una forma de vector unidimensional basándose en un orden de exploración de coeficientes y generar información acerca de los coeficientes de transformada cuantificados basándose en los coeficientes de transformada cuantificados en forma de vector unidimensional. El codificador 240 por entropía puede realizar diversos métodos de codificación tales como, por ejemplo, Golomb exponencial, codificación de longitud variable adaptativa al contexto (CAVLC), codificación aritmética binaria adaptativa al contexto (CABAC) y similares. El codificador 240 por entropía puede codificar información necesaria para la reconstrucción de vídeo/imágenes junto con o por separado de los coeficientes de transformada cuantificados (por ejemplo, valores de elementos de sintaxis y similares). La información codificada (por ejemplo, información de vídeo/imágenes codificada) puede transmitirse o almacenarse en base a una unidad de una capa de abstracción de red (NAL) en forma de un flujo de bits. La información de vídeo/imágenes puede incluir además información acerca de diversos conjuntos de parámetros tales como un conjunto de parámetros de adaptación (APS), un conjunto de parámetros de imagen (PPS), un conjunto de parámetros de secuencia (SPS) o un conjunto de parámetros de vídeo (VPS). Además, la información de vídeo/imágenes puede incluir además información de restricción general. En el presente documento, los elementos de información y/o sintaxis que se señalizan/transmiten para ser descritos más adelante pueden codificarse mediante el procedimiento de codificación descrito anteriormente e incluirse en el flujo de bits. El flujo de bits puede transmitirse a través de una red o puede almacenarse en un medio de almacenamiento digital. En este punto, la red puede incluir una red de difusión y/o una red de comunicación, y el medio de almacenamiento digital puede incluir diversos medios de almacenamiento tales como USB, SD, CD, DVD, Blu-ray, HDD y SSD y similares. Un transmisor (no ilustrado) que transmite una señal emitida desde el codificador 240 por entropía y/o una unidad de almacenamiento (no ilustrada) que almacena la señal pueden configurarse como un elemento interno/externo del aparato 200 de codificación y, como alternativa, el transmisor puede incluirse en el codificador 240 por entropía.
Los coeficientes de transformada cuantificados emitidos desde el cuantificador 233 pueden usarse para generar una señal de predicción. Por ejemplo, la señal residual (bloque residual o muestras residuales) puede reconstruirse aplicando descuantificación y transformada inversa a los coeficientes de transformada cuantificados a través del descuantificador 234 y el transformador 235 inverso. El sumador 250 añade la señal residual reconstruida a la señal de predicción emitida desde el predictor 220 para generar una señal reconstruida (imagen reconstruida, bloque reconstruido, muestras reconstruidas o matriz de muestras reconstruida). Si no hay residuos para el bloque objetivo de procesamiento, tal como un caso en el que se aplica un modo de salto, el bloque previsto puede usarse como el bloque reconstruido. La señal reconstruida generada puede usarse para intra predicción de un bloque objetivo de procesamiento siguiente en la imagen actual y puede usarse para inter predicción de una imagen siguiente a través del filtrado como se describe a continuación.
Por otro lado, puede aplicarse un mapeo de luma con ajuste a escala de croma (LMCS) durante el proceso de codificación y/o reconstrucción de imágenes.
El filtro 260 puede mejorar la calidad de imagen subjetiva/objetiva aplicando filtrado a la señal reconstruida. Por ejemplo, el filtro 260 puede generar una imagen reconstruida modificada aplicando diversos métodos de filtrado a la imagen reconstruida y almacenar la imagen reconstruida modificada en la memoria 270, específicamente, en una DPB de la memoria 270. Los diversos métodos de filtrado pueden incluir, por ejemplo, filtrado de desbloqueo, un desplazamiento adaptativo de muestra (SAO), 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 290 por entropía como se describe más adelante en la descripción de cada método de filtrado. La información relacionada con el filtrado puede codificarse por el codificador 290 por entropía y emitirse en forma de un flujo de bits.
La imagen reconstruida modificada transmitida a la memoria 270 puede usarse como una imagen de referencia en el inter predictor 221. Cuando la inter predicción se aplica a través del aparato de codificación, puede evitarse el desajuste de predicción entre el aparato 200 de codificación y el aparato de decodificación y puede mejorarse la eficiencia de codificación.
La DPB de la memoria 270 puede almacenar la imagen reconstruida modificada para su uso como imagen de referencia en el inter predictor 221. La memoria 270 puede almacenar información de movimiento de un bloque del que se deriva (o codifica) la información de movimiento de la imagen actual y/o información de movimiento de bloques en la imagen ya reconstruidos. La información de movimiento almacenada puede transferirse al inter predictor 221 para utilizarse como información de movimiento del bloque contiguo espacial o información de movimiento del bloque contiguo temporal. La memoria 270 puede almacenar muestras reconstruidas de bloques reconstruidos en la imagen actual y puede transferir las muestras reconstruidas al intra predictor 222.
La Figura 3 es un diagrama para explicar esquemáticamente la configuración de un aparato de decodificación de vídeo/imágenes al que se puede aplicar la descripción del presente documento.
Haciendo referencia a la Figura 3, el aparato 300 de decodificación puede incluir y estar configurado con un decodificador 310 por entropía, un procesador 320 residual, un predictor 330, un sumador 340, un filtro 350 y una memoria 360. El predictor 330 puede incluir un inter predictor 331 y un intra predictor 332. El procesador 320 residual puede incluir un descuantificador 321 y un transformador 322 inverso. El decodificador 310 por entropía, el procesador 320 residual, el predictor 330, el sumador 340 y el filtro 350, que se han descrito anteriormente, pueden estar configurados por uno o más componentes de hardware (por ejemplo, conjuntos de chips de decodificador o procesadores) de acuerdo con una realización. Además, la memoria 360 puede incluir una memoria intermedia de imágenes decodificadas (DPB) y puede estar configurada por un medio de almacenamiento digital. El componente de hardware puede incluir además la memoria 360 como un componente interno/externo.
Cuando se introduce el flujo de bits que incluye la información de vídeo/imágenes, el aparato 300 de decodificación puede reconstruir la imagen en respuesta a un proceso en el que se procesa la información de vídeo/imágenes en el aparato de codificación ilustrado en la Figura 2. Por ejemplo, el aparato 300 de decodificación puede derivar las unidades/bloques basándose en información relacionada con la división en bloques adquirida del flujo de bits. El aparato 300 de decodificación puede realizar la decodificación usando una 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 de acuerdo con la estructura de árbol cuádruple, la estructura de árbol binario y/o la estructura de árbol ternario de la unidad de árbol de codificación o la unidad de codificación máxima. Una o más unidades de transformada pueden derivarse a partir 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.
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 por entropía. Por ejemplo, el decodificador 310 por entropía puede analizar el flujo de bits para derivar información (por ejemplo, información de vídeo/imágenes) necesaria para la reconstrucción de imágenes (o reconstrucción de fotografías). La información de vídeo/imágenes puede incluir además información acerca de diversos conjuntos de parámetros tales como un conjunto de parámetros de adaptación (APS), un conjunto de parámetros de imagen (PPS), un conjunto de parámetros de secuencia (SPS) o un conjunto de parámetros de vídeo (VPS). Además, la información de vídeo/imágenes puede incluir además información de restricción general. El aparato de decodificación puede decodificar además la imagen basándose en la información acerca del conjunto de parámetros y/o la información de restricción general. La información señalizada/recibida y/o los elementos de sintaxis descritos más adelante en este documento que pueden decodificarse, pueden decodificar el procedimiento de decodificación y obtenerse del flujo de bits. Por ejemplo, el decodificador 310 por entropía decodifica la información en el flujo de bits basándose en un método de codificación tal como la codificación Golomb exponencial, CAVLC o CABAC, y emite elementos de sintaxis requeridos para la reconstrucción de imágenes y valores cuantificados de coeficientes de transformada para residuos. Más específicamente, el método de decodificación por entropía CABAC puede recibir un binario correspondiente a cada elemento de sintaxis en el flujo de bits, determinar un modelo de contexto usando una información de elemento de sintaxis objetivo de decodificación, información de decodificación de un bloque objetivo de decodificación o información de un símbolo/binario decodificado en un etapa anterior, y realizar una decodificación aritmética en el binario prediciendo una probabilidad de ocurrencia de un binario de acuerdo con el modelo de contexto determinado, y generar un símbolo correspondiente al valor de cada elemento de sintaxis. En este caso, el método de decodificación por entropía de CABAC puede actualizar el modelo de contexto usando la información del símbolo/binario decodificado para un modelo de contexto de un siguiente símbolo/binario después de determinar el modelo de contexto. La información relacionada con la predicción entre la información decodificada por el decodificador 310 por entropía se puede proporcionar al predictor 330, y la información sobre los residuos en el que se ha realizado la decodificación por entropía en el decodificador 310 por entropía, es decir, los coeficientes de transformada cuantificados e información de parámetros relacionada, puede introducirse al descuantificador 321. Además, la información sobre el filtrado entre la información decodificada por el decodificador 310 por entropía puede proporcionarse al filtro 350. Por otro lado, un receptor (no ilustrado) para recibir una señal emitida desde el aparato de codificación puede configurarse además como un elemento interno/externo del aparato 300 de decodificación, o el receptor puede ser un elemento constituyente del decodificador 310 por entropía. Por otro lado, el aparato de decodificación de acuerdo con el presente documento puede denominarse aparato de decodificación de vídeo/imágenes/fotografías, y el aparato de decodificación puede clasificarse en un decodificador de información (decodificador de información de vídeo/imágenes/fotografías) y un decodificador de muestras (decodificador de muestras de vídeo/imágenes/fotografías). El decodificador de información puede incluir el decodificador 310 por entropía, y el decodificador de muestras puede incluir al menos uno del descuantificador 321, el transformador 322 inverso, el predictor 330, el sumador 340, el filtro 350, y la memoria 360.
El descuantificador 321 puede descuantificar los coeficientes de transformada cuantificados para emitir los coeficientes de transformada. El descuantificador 321 puede reorganizar los coeficientes de transformada cuantificados en forma de un bloque bidimensional. En este caso, la reorganización puede realizarse basándose en un orden de exploración de coeficientes realizado en el aparato de codificación. El descuantificador 321 puede realizar la descuantificación para los coeficientes de transformada cuantificados usando un parámetro de cuantificación (por ejemplo, información de tamaño de etapa de cuantificación), y obtener coeficientes de transformada.
El transformador 322 inverso transforma a la inversa los coeficientes de transformada para adquirir la señal residual (bloque residual, matriz de muestras residuales).
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 intra predicción o se aplica la inter predicción al bloque actual basándose en la información acerca de la predicción emitida desde el decodificador 310 por entropía y determinar un modo de intra/inter predicción específico.
El predictor puede generar una señal de predicción basándose en diversos métodos de predicción que se describen a continuación. Por ejemplo, el predictor no solo puede aplicar la intra predicción o la inter predicción para predecir un bloque, sino que también puede aplicar simultáneamente la intra predicción y la inter predicción. Esto puede denominarse inter e intra predicción combinadas (CIIP). Además, el predictor puede realizar copia intra bloque (IBC) para la predicción de un bloque. La copia intra bloque se puede usar para la codificación de imagen de contenido/imagen en movimiento de un juego o similar, por ejemplo, codificación de contenido de pantalla (SCC). La IBC realiza básicamente la predicción en la imagen actual, pero se puede realizar de manera similar a la inter predicción en la que se deriva un bloque de referencia en la imagen actual. Es decir, la IBC puede usar al menos una de las técnicas de inter predicción descritas en el presente documento.
El intra predictor 332 puede predecir el bloque actual haciendo referencia a las muestras en la imagen actual. Las muestras referidas pueden ubicarse en la proximidad del bloque actual o pueden ubicarse alejadas del bloque actual de acuerdo con el modo de predicción. En la intra predicción, los modos de predicción pueden incluir una pluralidad de modos no direccionales y una pluralidad de modos direccionales. El intra predictor 332 puede determinar el modo de predicción que se va a aplicar al bloque actual usando el modo de predicción aplicado al bloque contiguo.
El inter predictor 331 puede derivar un bloque previsto para el bloque actual basándose en un bloque de referencia (matriz de muestras de referencia) especificado por un vector de movimiento en una imagen de referencia. En este caso, para reducir la cantidad de información de movimiento que se transmite en el modo de inter predicción, la información de movimiento puede predecirse en las unidades de bloques, subbloques o muestras basándose en la correlación de la información de movimiento entre el bloque contiguo 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 la dirección de inter predicción (predicción L0, predicción L1, bipredicción y similares). En el caso de inter predicción, el bloque contiguo puede incluir un bloque contiguo espacial existente en la imagen actual y un bloque contiguo temporal existente en la imagen de referencia. Por ejemplo, el inter predictor 331 puede construir una lista de candidatos de información de movimiento basándose en bloques contiguos y derivar un vector de movimiento del bloque actual y/o un índice de imagen de referencia basándose en la información de selección de candidatos recibida. La inter predicción puede realizarse basándose en diversos modos de predicción, y la información acerca de la predicción puede incluir información que indica un modo de inter predicción para el bloque actual.
El sumador 340 puede generar una señal reconstruida (imagen reconstruida, bloque reconstruido, matriz de muestras reconstruida), sumando la señal residual obtenida a la señal de predicción (bloque previsto, matriz de muestras prevista) emitida desde el predictor 330. Si no hay residuos para el bloque objetivo de procesamiento, tal como un caso en el que se aplica un modo de salto, el bloque previsto puede usarse como el bloque reconstruido.
El sumador 340 puede denominarse reconstructor o generador de bloques reconstruidos. La señal reconstruida generada se puede usar para la intra predicción de un siguiente bloque a procesar en la imagen actual y, como se describe más adelante, también se puede generar mediante filtrado o también se puede usar para la inter predicción de una siguiente imagen.
Por otro lado, puede aplicarse también un mapeo de luma con ajuste a escala de croma (LMCS) en el proceso de decodificación de imágenes.
El filtro 350 puede mejorar la calidad de imagen subjetiva/objetiva aplicando filtrado a la señal reconstruida. Por ejemplo, el filtro 350 puede generar una imagen reconstruida modificada aplicando diversos métodos de filtrado a la imagen reconstruida y almacenar la imagen reconstruida modificada en la memoria 360, específicamente, en una DPB de la memoria 360. Los diversos métodos de filtrado pueden incluir, por ejemplo, filtrado de desbloqueo, un desplazamiento adaptativo de muestra, un filtro de bucle adaptativo, un filtro bilateral y similares.
La imagen reconstruida (modificada) almacenada en la DPB de la memoria 360 puede usarse como una imagen de referencia en el inter predictor 331. La memoria 360 puede almacenar la información de movimiento del bloque del que se deriva (o decodifica) la información de movimiento de la imagen actual y/o la información de movimiento de los bloques de la imagen que ya se ha reconstruido. La información de movimiento almacenada puede transferirse al inter predictor 331 para utilizarse como la información de movimiento del bloque contiguo espacial o la información de movimiento del bloque contiguo temporal. La memoria 360 puede almacenar muestras reconstruidas de bloques reconstruidos en la imagen actual y transferir las muestras reconstruidas al intra predictor 332.
En la presente memoria descriptiva, las realizaciones descritas en el predictor 330, el descuantificador 321, el transformador 322 inverso, y el filtro 350 del aparato 300 de decodificación también pueden aplicarse de la misma manera o correspondiente al predictor 220, al descuantificador 234, al transformador 235 inverso, y al filtro 260 del aparato 200 de codificación.
Por otro lado, como se ha descrito anteriormente, al realizar codificación de vídeo, se realiza predicción para mejorar la eficiencia de compresión. A través de esto, 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 punto, 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 en un aparato de decodificación, y el aparato de codificación puede señalizar información (información residual) sobre los residuos 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 esta manera la eficiencia de codificación de imágenes. El aparato de decodificación puede derivar un bloque residual que incluye muestras residuales basándose en 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.
La información residual puede generarse a través de un procedimiento de transformada y de cuantificación. Por ejemplo, el aparato de codificación puede derivar un bloque residual entre el bloque original y el bloque previsto, realizar un procedimiento de transformada en las muestras residuales (matriz de muestras residuales) incluidas en el bloque residual para derivar coeficientes de transformada, realizar un procedimiento de cuantificación en los coeficientes de transformada para derivar coeficientes de transformada cuantificados, y puede señalizar información relacionada con los residuos al aparato de decodificación (a través de un flujo de bits). En este punto, la información residual puede incluir información de valor de los coeficientes de transformada cuantificados, información de ubicación, una técnica de transformada, un núcleo de transformada, un parámetro de cuantificación y similares. El aparato de decodificación puede realizar un procedimiento de descuantificación/transformada inversa basándose en la información residual y derivar muestras residuales (o bloques residuales). El aparato de decodificación puede generar una imagen reconstruida basándose en el bloque previsto y el bloque residual. Además, como referencia para la inter predicción posterior de una imagen, el aparato de codificación también puede descuantificar/transformar a la inversa los coeficientes de transformada cuantificados para derivar un bloque residual y generar una imagen reconstruida basándose en el mismo.
La Figura 4 ilustra esquemáticamente una técnica de transformada múltiple de acuerdo con el presente documento.
Haciendo referencia a la Figura 4, un transformador puede corresponder al transformador en el aparato de codificación de la Figura 2, como se ha descrito anteriormente, y un transformador inverso puede corresponder al transformador inverso en el aparato de codificación de la Figura 2, o al transformador inverso en el aparato de decodificación de la Figura 3, como se ha descrito anteriormente.
El transformador puede derivar coeficientes de transformada (primaria) realizando una transformada primaria basándose en la muestra residual (matriz de muestras residuales) en un bloque residual (S410). Tal transformada primaria puede denominarse transformada principal. En este punto, la transformada primaria puede basarse en la selección de transformada múltiple (MTS) y en caso de que se aplique la transformada múltiple como la transformada primaria, puede denominarse transformada de múltiples núcleos.
Por ejemplo, la transformada de múltiples núcleos puede representar un método de transformada usando adicionalmente transformada de coseno discreta (DCT) tipo 2 (DCT-II), transformada de seno discreta (DST) tipo 7 (DST-VII), DCT tipo 8 (DCT-VIII), y/o DST tipo 1 (dSt -I). Es decir, la transformada de múltiples núcleos puede representar un método de transformada para transformar una señal residual (o bloque residual) de un dominio espacial en coeficientes de transformada (o coeficiente de transformada primaria) de un dominio de frecuencia basándose en una pluralidad de núcleos de transformada seleccionados entre los DCT tipo 2, DST tipo 7, DCT tipo 8 y DST tipo 1. En este punto, los coeficientes de transformada primaria pueden denominarse coeficientes de transformada temporales en el lado del transformador.
En otras palabras, en caso de que se aplique el método de transformada existente, se puede aplicar la transformada del dominio espacial para la señal residual (o bloque residual) al dominio de frecuencia basándose en la DCT tipo 2, y se pueden generar los coeficientes de transformada. Sin embargo, a diferencia de esto, en caso de que se aplique la transformada de múltiples núcleos, se puede aplicar la transformada del dominio espacial para la señal residual (o bloque residual) al dominio de frecuencia basándose en DCT tipo 2, DST tipo 7, DCT tipo 8, y/o DST tipo 1, y se pueden generar los coeficientes de transformada (o coeficientes de transformada primaria). En este punto, la DCT tipo 2, DST tipo 7, DCT tipo 8 y DST tipo 1 pueden denominarse el tipo de transformada, el núcleo de transformada o el centro de transformada. Los tipos de transformada de DCT/DST pueden definirse basándose en las funciones básicas.
En caso de que se realice la transformada de múltiples núcleos, se puede seleccionar un núcleo de transformada vertical y/o un núcleo de transformada horizontal para un bloque objetivo de entre los núcleos de transformada, se puede realizar una transformada vertical para el bloque objetivo basándose en el núcleo de transformada vertical, y se puede realizar una transformada horizontal para el bloque objetivo basándose en el núcleo de transformada horizontal. En este punto, la transformada horizontal puede representar una transformada para los componentes horizontales del bloque objetivo, y la transformada vertical puede representar una transformada para los componentes verticales del bloque objetivo. El núcleo de transformada vertical/el núcleo de transformada horizontal puede determinarse de forma adaptativa basándose en el modo de predicción y/o índice de transformada del bloque objetivo (CU o subbloque) que incluye el bloque residual.
Además, por ejemplo, en el caso de realizar una transformada primaria aplicando MTS, se pueden configurar funciones de base específicas para valores específicos, y en el caso de una transformada vertical o una transformada horizontal, la relación de mapeo para el núcleo de transformada se puede configurar combinando qué funciones de base se aplican. Por ejemplo, en caso de que el núcleo de transformada de dirección horizontal esté representado por trTypeHor y el núcleo de transformada de dirección vertical esté representado por trTypeVer, trTypeHor o trTypeVer que tenga un valor de 0 puede configurarse como DCT2, y trTypeHor o trTypeVer que tenga un valor de 1 se puede configurar como DCT7. El trTypeHor o trTypeVer que tiene un valor de 2 se puede configurar como DCT8.
Además, por ejemplo, para indicar uno cualquiera de los múltiples conjuntos de núcleos de transformada, se puede codificar un índice MTS y se puede señalizar información de índice de MTS al aparato de decodificación. En este punto, el índice MTS se puede representar como un elemento de sintaxis tu_mts_idx o un elemento de sintaxis mts_idx. Por ejemplo, si el índice MTS es 0, puede representar que los valores de trTypeHor y trTypeVer son todos 0, y si el índice MTS es 1, puede representar que los valores de trTypeHor y trTypeVer son todos 1. Si el índice MTS es 2, puede representar que el valor de trTypeHor es 2 y el valor de trTypeVer es 1, y si el índice MTS es 3, puede representar que el valor de trTypeHor es 1 y el valor de trTypeVer es 2. Si el índice MTS es 4, puede representar que los valores de trTypeHor y trTypeVer son todos 2. Por ejemplo, un núcleo de transformada establecido de acuerdo con el índice de MTS se puede representar como en la siguiente tabla.
El transformador puede derivar coeficientes de transformada (secundaria) modificados realizando transformada secundaria basándose en los coeficientes de transformada (primaria) (S420). La transformada primaria puede ser una transformada del dominio espacial al dominio de frecuencia, y la transformada secundaria puede representar una transformada en una expresión más compresiva usando una correlación existente entre los coeficientes de transformada (primaria).
Por ejemplo, la transformada secundaria puede incluir una transformada no separable. En este caso, la transformada secundaria puede llamarse transformada secundaria no separable (NSST) o transformada secundaria no separable dependiente del modo (MDNSST). La transformada secundaria no separable puede representar una transformada para generar coeficientes de transformada modificados (o coeficientes de transformada secundarios) para la señal residual transformando secundariamente los coeficientes de transformada (primarios) derivados a través de la transformada primaria basándose en una matriz de transformada no separable. En este punto, la transformada vertical y la transformada horizontal no pueden aplicarse por separado (o independientemente) con respecto a los coeficientes de transformada (primarios) basándose en la matriz de transformada no separable, sino que pueden aplicarse todas a la vez.
En otras palabras, la transformada secundaria no separable puede representar un método de transformada para reorganizar, por ejemplo, señales bidimensionales (coeficientes de transformada) en señales unidimensionales a través de una dirección específicamente determinada (por ejemplo, dirección de primera fila o dirección de primera columna), sin separar los coeficientes de transformada (primarios) en componentes verticales y componentes horizontales, y, a continuación, generar coeficientes de transformada modificados (o coeficientes de transformada secundarios) basándose en la matriz de transformada no separable.
Por ejemplo, la dirección (u orden) de primera fila puede representar una disposición de un bloque MxN en una línea en el orden de una primera fila a una fila N-ésima, y la dirección (u orden) de primera columna puede representar una disposición de un bloque MxN en una línea en el orden de una primera columna a una M-ésima columna. En este punto, M y N pueden representar una anchura (W) y una altura (H) del bloque, y pueden ser todos números enteros positivos.
Por ejemplo, la transformada secundaria no separable puede aplicarse a un área superior izquierda del bloque compuesto por coeficientes de transformada (primarios) (en lo sucesivo en el presente documento, bloque de coeficientes de transformada). Por ejemplo, si la anchura (W) y la altura (H) del bloque de coeficientes de transformada son iguales o mayores que 8, se puede aplicar una transformada secundaria no separable de 8x8 a un área superior izquierda de 8x8 del bloque de coeficientes de transformada. Además, si la anchura (W) y la altura (H) del bloque de coeficientes de transformada son todas iguales o mayores que 4 y menores que 8, se puede aplicar una transformada secundaria no separable de 4x4 al área superior izquierda de mín (8, W) x mín (8, H) del bloque de coeficientes de transformada. Sin embargo, las realizaciones no están limitadas a lo mismo, y, por ejemplo, incluso si se cumple la condición de que la anchura (W) y la altura (H) del bloque de coeficientes de transformada son todos iguales o mayores que 4, puede aplicarse la transformada secundaria no separable de 4x4 al área superior izquierda de mín (8, W) x mín (8, H) del bloque de coeficientes de transformada.
Específicamente, por ejemplo, en caso de que se use un bloque de entrada de 4x4, la transformada secundaria no separable se puede realizar de la siguiente manera.
El bloque de entrada X de 4x4 se puede representar de la siguiente manera.
[Ecuación 1]
Por ejemplo, la forma vectorial de X se puede representar de la siguiente manera.
[Ecuación 2]
<X — [X o o X>01X02 X03<X>10X31 X12 X13 X20 X21 X22 X23 X30 X31 X32 X 33\ t
<Haciendo referencia a la Ecuación 2,>
reorganizarse y repX<puede representar el vector X, y el bloque bidimensional de X en la>Ecuación 1 puede resentarse como el vector unidimensional de acuerdo con el orden de la primera fila.
En este caso, la transformada secundaria no separable se puede calcular de la siguiente manera.
[Ecuación 3]
En este punto, puede representar un vector de coeficientes de transformada y T puede representar una matriz de transformada de 16x16 (no separable).
Basado en la Ecuación 3, se puede derivar " que tiene un tamaño de 16x1, y se puede reorganizarrcomo un bloque de 4x4 mediante un orden de exploración (horizontal, vertical o diagonal). Sin embargo, el cálculo descrito anteriormente es ilustrativo, y para reducir la complejidad del cálculo de la transformada secundaria no separable, se pueden usar transformadas dadas de hipercubo (HyGT) y similares para calcular la transformada secundaria no separable.
Mientras tanto, en la transformada secundaria no separable, se puede seleccionar un núcleo de transformada (o núcleo de transformada o tipo de transformada) de una manera dependiente del modo. En este punto, el modo puede incluir un modo de intra predicción y/o un modo de inter predicción.
Por ejemplo, como se ha descrito anteriormente, la transformada secundaria no separable se puede realizar basándose en la transformada de 8x8 o la transformada de 4x4 determinada basándose en la anchura (W) y la altura (H) del bloque de coeficientes de transformada. Por ejemplo, si W y H son todos iguales o mayores que 8, la transformada de 8x8 puede representar una transformada que se puede aplicar al área de 8x8 incluida dentro del bloque de coeficientes de transformada correspondiente, y el área de 8x8 puede ser el área superior izquierda de 8x8 dentro del bloque de coeficientes de transformada correspondiente. Además, de manera similar, si W y H son todos iguales o mayores que 4, la transformada de 4x4 puede representar una transformada que se puede aplicar al área de 4x4 incluida dentro del bloque de coeficientes de transformada correspondiente, y el área de 4x4 puede ser el área superior izquierda de 4x4 dentro del bloque de coeficientes de transformada correspondiente. Por ejemplo, una matriz de núcleo transformada de 8x8 puede ser una matriz de 64x64 / 16x64, y una matriz de núcleo de transformada de 4x4 puede ser una matriz de 16x16 / 8x16.
En este caso, para la selección de núcleo de transformada basada en modo, se pueden establecer dos núcleos de transformada secundaria no separables para la transformada secundaria no separable con respecto a todas de la transformada de 8x8 y la transformada de 4x4, y se pueden proporcionar cuatro conjuntos de transformada. Es decir, se pueden configurar cuatro conjuntos de transformada con respecto a la transformada de 8x8, y se pueden configurar cuatro conjuntos de transformada con respecto a la transformada de 4x4. En este caso, cada uno de los cuatro conjuntos de transformada para la transformada de 8x8 puede incluir dos núcleos de transformada de 8x8, y cada uno de los cuatro conjuntos de transformada para la transformada de 4x4 puede incluir dos núcleos de transformada de 4x4.
Sin embargo, el tamaño de la transformada, el número de conjuntos y el número de núcleos de transformada en el conjunto son ilustrativos, y se puede usar un tamaño que excluye 8x8 o 4x4, o se pueden configurar n conjuntos, o se pueden incluir k núcleos de transformada en cada conjunto. En este punto, n y k pueden ser números enteros positivos.
Por ejemplo, el conjunto de transformadas puede denominarse conjunto de NSST y el núcleo de transformada del conjunto de NSST puede denominarse núcleo de NSSAT. Por ejemplo, la selección de un conjunto específico entre los conjuntos de transformada se puede realizar basándose en el modo de intra predicción del bloque objetivo (CU o subbloque).
Por ejemplo, el modo de intra predicción puede incluir dos modos de intra predicción no direccionales o no angulares y 65 modos de intra predicción direccionales o angulares. Los modos de intra predicción no direccionales pueden incluir el modo de intra predicción planar n° 0 y el modo de intra predicción CC n° 1, y los modos de intra predicción direccionales pueden incluir 65 modos de intra predicción (n° 2 a n° 66). Sin embargo, esto es ilustrativo, y la realización de acuerdo con el presente documento puede aplicarse incluso en el caso de que se proporcione un número diferente de modos de intra predicción. Mientras tanto, en algunos casos, se puede usar además el modo de intra predicción n° 67, y el modo de intra predicción n° 67 puede representar un modo de modelo lineal (LM).
La Figura 5 ilustra a modo de ejemplo modos intradireccionales en 65 direcciones de predicción.
Haciendo referencia a la Figura 5, los modos pueden dividirse en modos de intra predicción que tienen direccionalidad horizontal y modos de intra predicción que tienen direccionalidad vertical alrededor del modo de intra predicción n° 34 que tiene una dirección de predicción diagonal superior izquierda. En la Figura 5, H y V pueden significar la direccionalidad horizontal y la direccionalidad vertical, respectivamente, y los números de -32 a 32 pueden representar desplazamientos en la unidad de 1/32 en una posición de cuadrícula de muestra. Esto puede representar un desplazamiento para un valor de índice de modo.
Por ejemplo, los modos de intra predicción n° 2 a n° 33 pueden tener la direccionalidad horizontal, y los modos de intra predicción n° 34 a n° 66 tienen la direccionalidad vertical. Mientras tanto, técnicamente hablando, se puede considerar que el modo de intra predicción n° 34 no tiene direccionalidad horizontal ni direccionalidad vertical, pero puede clasificarse para pertenecer a la direccionalidad horizontal desde el punto de vista de determinar el conjunto de transformadas de la transformada secundaria. Esto se debe a que los datos de entrada se transponen y se usan con respecto a los modos de dirección vertical que son simétricos alrededor del modo de intra predicción n° 34, y se usa un método de disposición de datos de entrada para el modo de dirección horizontal con respecto al modo de intra predicción n° 34. En este punto, la transposición de los datos de entrada puede significar la configuración de NxM datos de manera que las filas se conviertan en columnas y las columnas se conviertan en filas con respecto a los datos de bloque bidimensionales MxN.
Además, el modo de intra predicción n° 18 y el modo de intra predicción n° 50 pueden representar un modo de intra predicción horizontal y un modo de intra predicción vertical, respectivamente, y el modo de intra predicción n2 puede denominarse modo de intra predicción diagonal superior derecha ya que se realiza la predicción en la dirección superior derecha con un píxel de referencia izquierdo. En el mismo contexto, el modo de intra predicción n° 34 puede denominarse modo de intra predicción diagonal inferior derecha, y el modo de intra predicción n° 66 puede denominarse modo de intra predicción diagonal inferior izquierda.
Mientras tanto, si se determina que se usa un conjunto específico para la transformada no separable, puede seleccionarse uno de los k núcleos de transformada en el conjunto específico a través del índice de transformada secundaria no separable. Por ejemplo, el aparato de codificación puede derivar el índice de transformada secundaria no separable que representa un núcleo de transformada específico basándose en una comprobación de tasa-distorsión (RD), y puede señalizar el índice de transformada secundaria no separable al aparato de decodificación. Por ejemplo, el aparato de decodificación puede seleccionar uno de los k núcleos de transformada en el conjunto específico basándose en el índice de transformada secundario no separable. Por ejemplo, un índice de NSST que tiene un valor de 0 puede representar un primer núcleo de transformada secundaria no separable, un índice de NSST que tiene un valor de 1 puede representar un segundo núcleo de transformada secundaria no separable y un índice de NSST que tiene un valor de 2 puede representar un tercer núcleo de transformada secundaria no separable. Como alternativa, un índice de NSST que tiene un valor de 0 puede representar que la primera transformada secundaria no separable no se aplica al bloque objetivo, y un índice de NSST que tiene un valor de 1 a 3 puede indicar los tres núcleos de transformada como se indicó anteriormente.
El transformador puede realizar la transformada secundaria no separable basándose en los núcleos de transformada seleccionados y puede obtener coeficientes de transformada (secundaria) modificados. Los coeficientes de transformada modificados pueden derivarse como coeficientes de transformada cuantificados a través del cuantificador descrito anteriormente, y pueden codificarse para señalizarse al aparato de decodificación y pueden transferirse al descuantificador/transformador inverso en el aparato de codificación.
Mientras tanto, si se omite la transformada secundaria como se ha descrito anteriormente, los coeficientes de transformada (primaria) que son salidas de la transformada primaria (separable) pueden derivarse como los coeficientes de transformada cuantificados a través del cuantificador como se ha descrito anteriormente, y pueden codificarse para señalizarse al aparato de decodificación y pueden transferirse al descuantificador/transformador inverso en el aparato codificador.
Haciendo referencia de nuevo a la Figura 4, el transformador inverso puede realizar una serie de procedimientos en orden inverso a los procedimientos realizados por el transformador descrito anteriormente. El transformador inverso puede recibir coeficientes de transformada (descuantificados), derivar coeficientes de transformada (primaria) realizando la transformada secundaria (inversa) (S450), y obtener un bloque residual (muestras residuales) realizando la transformada primaria (inversa) con respecto a los coeficientes de transformada (primaria) (S460). En este punto, los coeficientes de transformada primaria pueden denominarse coeficientes de transformada modificados en el lado del transformador inverso. Como se ha descrito anteriormente, el aparato de codificación y/o el aparato de decodificación pueden generar un bloque reconstruido basándose en el bloque residual y un bloque previsto, y pueden generar una imagen reconstruida basándose en esto.
Mientras tanto, el aparato de decodificación puede incluir además un determinador de aplicación/no aplicación de transformada inversa secundaria (o elemento para determinar si se aplica la transformada inversa secundaria) y un determinador de transformada inversa secundaria (o elemento para determinar la transformada inversa secundaria). Por ejemplo, el determinador de aplicación/no aplicación de transformada inversa secundaria puede determinar si aplicar la transformada inversa secundaria. Por ejemplo, la transformada inversa secundaria puede ser una NSST o una RST, y el determinador de aplicación/no aplicación de transformada inversa secundaria puede determinar si aplicar la transformada inversa secundaria basándose en un indicador de transformada secundaria analizada u obtenida a partir del flujo de bits. Como alternativa, el determinador de aplicación/no aplicación de transformada inversa secundaria puede determinar si aplicar la transformada inversa secundaria basándose en el coeficiente de transformada del bloque residual.
El determinador de transformada inversa secundaria puede determinar la transformada inversa secundaria. En este caso, el determinador de transformada inversa secundaria puede determinar la transformada inversa secundaria que se aplica al bloque actual basándose en un conjunto de transformadas de NSST (o RST) especificado de acuerdo con el modo de intra predicción. Como alternativa, se puede determinar un método de determinación de transformada secundaria dependiendo de un método de determinación de transformada primaria. Como alternativa, se pueden determinar diversas combinaciones de la transformada primaria y la transformada secundaria de acuerdo con el modo de intra predicción. Por ejemplo, el determinador de transformada inversa secundaria puede determinar un área a la que se aplica la transformada inversa secundaria basándose en el tamaño del bloque actual.
Mientras tanto, si se omite la transformada secundaria (inversa) como se ha descrito anteriormente, el bloque residual (muestras residuales) se puede obtener recibiendo los coeficientes de transformada (descuantificados) y realizando la transformada inversa primaria (separable). Como se ha descrito anteriormente, el aparato de codificación y/o el aparato de decodificación pueden generar un bloque reconstruido basándose en el bloque residual y el bloque previsto, y pueden generar una imagen reconstruida basándose en esto.
Mientras tanto, en el presente documento, para reducir la cantidad de cálculo y la cantidad de requisitos de memoria que van acompañadas de la transformada secundaria no separable, se puede aplicar una transformada secundaria reducida (RST) que tiene un tamaño reducido de la matriz de transformada (núcleo) en el concepto de NSST.
En el presente documento, la RST puede significar una transformada (simplificación) que se realiza con respecto a las muestras residuales para el bloque objetivo basándose en la matriz de transformada cuyo tamaño se reduce de acuerdo con un factor de simplificación. En caso de realizar esto, la cantidad de cálculo que se requiere durante la transformada puede reducirse debido a la reducción del tamaño de la matriz de transformada. Es decir, la RST puede usarse para resolver el problema de complejidad de cálculo que ocurre durante la transformada de un bloque que tiene un tamaño grande o una transformada no separable.
Por ejemplo, se puede hacer referencia a la RST con diversos términos, tales como transformada reducida, transformada secundaria reducida, transformada de reducción, transformada simplificada o transformada sencilla, y los nombres a los que se hace referencia la RST no están limitados a los ejemplos enumerados. Además, la RST se realiza principalmente en un dominio de baja frecuencia que incluye coeficientes que no son 0 en el bloque de transformada y, por lo tanto, puede denominarse transformada no separable de baja frecuencia (LFNST).
Por otro lado, en caso de que se realice la transformada inversa secundaria basándose la RST, el transformador 235 inverso del aparato 200 de codificación y el transformador 322 inverso del aparato 300 de decodificación pueden incluir una unidad de RST inversa que deriva coeficientes de transformada modificados basándose en la RST inversa para los coeficientes de transformada, y un transformador primario inverso que deriva muestras residuales para el bloque objetivo basándose en la transformada primaria inversa para los coeficientes de transformada modificados. La transformada primaria inversa significa una transformada inversa de la transformada primaria que se ha aplicado a los residuos. En el presente documento, la derivación de los coeficientes de transformada basándose en la transformada puede significar la derivación de los coeficientes de transformada aplicando la transformada correspondiente.
Las Figuras 6 y 7 son diagramas que explican RST de acuerdo con una realización del presente documento.
Por ejemplo, la Figura 6 puede ser una figura que explica que se aplica una transformada reducida hacia adelante, y la Figura 7 puede ser una figura que explica que se aplica una transformada reducida inversa. En el presente documento, el bloque objetivo puede representar el bloque actual, un bloque residual o un bloque de transformada del que se realiza la codificación.
Por ejemplo, en la RST, se puede mapear un vector de N dimensiones en un vector de R dimensiones ubicado en otro espacio, y se puede determinar una matriz de transformada reducida. En este punto, N y R pueden ser números enteros positivos, y R puede ser menor que N. N puede significar un cuadrado de una longitud de un lado de un bloque al que se aplica la transformada o el número total de coeficientes de transformada correspondientes al bloque al que se aplica la transformada y un factor de simplificación puede significar un valor de R/N. El factor de simplificación puede denominarse mediante diversos términos, tal como factor reducido, factor de reducción, factor simplificado o factor simple. Mientras tanto, se puede hacer referencia a R como un coeficiente reducido y, en algunos casos, el factor de simplificación puede significar R. Además, en algunos casos, el factor de simplificación puede significar el valor de N/R.
Por ejemplo, el factor de simplificación o el coeficiente reducido se pueden señalizar a través del flujo de bits, pero esto no está limitado a lo mismo. Por ejemplo, se pueden almacenar valores predefinidos para el factor de simplificación o el coeficiente reducido en el aparato 200 de codificación y el aparato 300 de decodificación, y, en este caso, el factor de simplificación o el coeficiente reducido pueden no señalizarse por separado.
Por ejemplo, el tamaño (RxN) de la matriz de transformada de simplificación puede ser menor que el tamaño (NxN) de una matriz de transformada normal y puede definirse como en la siguiente ecuación.
[Ecuación 4]
Por ejemplo, la matriz T en el bloque de transformada reducida ilustrado en la Figura 6 puede representar la matriz TRxN de la Ecuación 4. Como se muestra en la Figura 6, en caso de que las muestras residuales para el bloque objetivo se multipliquen por la matriz de transformada de simplificación TRxN, se pueden derivar los coeficientes de transformada para el bloque objetivo.
Por ejemplo, en el caso de que el tamaño del bloque al que se aplica la transformada sea 8x8 y R sea 16 (es decir, R/N = 16/64 = 1/4), la RST de acuerdo con la Figura 6 puede expresarse mediante una operación matricial como en la Ecuación 5 a continuación. En este caso, la memoria y la operación de multiplicación pueden reducirse a aproximadamente 1/4 mediante el factor de simplificación.
En el presente documento, la operación matricial puede entenderse como una operación para obtener un vector de columna colocando la matriz en el lado izquierdo del vector de columna y multiplicando la matriz y el vector de columna.
[Ecuación 5]
En la Ecuación 5, r1 a r64 puede representar muestras residuales para el bloque objetivo. Como alternativa, por ejemplo, pueden ser coeficientes de transformada generados aplicando la transformada primaria. Con base en el resultado de la operación de la Ecuación 5, pueden derivarse ci coeficientes de transformada para el bloque objetivo.
Por ejemplo, en caso de que R sea 16, pueden derivarse c1 a c16 coeficientes de transformada para el bloque objetivo. Si la matriz de transformada que tiene un tamaño de 64x64 (NxN) a través de la aplicación de una transformada normal en lugar de la RST se multiplica por las muestras residuales que tienen un tamaño de 64x1 (Nx1), pueden derivarse 64 (N) coeficientes de transformada para el bloque objetivo, pero, dado que se aplica la rSt , únicamente pueden derivarse 16 (N) coeficientes de transformada para el bloque objetivo. Dado que el número total de coeficientes de transformada para el bloque objetivo se reduce de N a R, se puede reducir la cantidad de datos que el aparato 200 de codificación transmite al aparato 300 de decodificación y, por tanto, puede aumentarse la eficiencia de transmisión entre el aparato 200 de codificación y el aparato 300 de decodificación.
Considerando el tamaño de la matriz de transformada, dado que el tamaño de la matriz de transformada normal es 64x64 (NxN), y el tamaño de la matriz de transformada de simplificación se reduce a 16x64 (RxN), el uso de memoria cuando se realiza la RST se puede reducir en una relación R/N en comparación con el caso en el que se realiza la transformada normal. Además, en comparación con el número (NxN) de operaciones de multiplicación cuando se usa la matriz de transformada normal, el uso de la matriz de transformada de simplificación puede reducir el número de operaciones de multiplicación (RxN) en la relación R/N.
En una realización, el transformador 232 del aparato 200 de codificación puede derivar los coeficientes de transformada para el bloque objetivo realizando una transformada primaria y una transformada secundaria basada en RST de las muestras residuales para el bloque objetivo. Los coeficientes de transformada pueden transferirse al transformador inverso del aparato 300 de decodificación, y el transformador 322 inverso del aparato 300 de decodificación puede derivar los coeficientes de transformada modificados basándose en la transformada secundaria reducida inversa (RST) para los coeficientes de transformada, y puede derivar las muestras residuales para el bloque objetivo basándose en la transformada primaria inversa de los coeficientes de transformada modificados.
El tamaño de la matriz de RST inversa TNxR de acuerdo con una realización puede ser NxR que es menor que el tamaño NxN de la matriz de transformada inversa normal, y puede estar en relación de transposición con la matriz de transformada de simplificación TRxN ilustrada en la Ecuación 4.
La matriz Tt en el bloque de transformada inversa reducida ilustrado en la Figura 7 puede representar una matriz de RST inversa TRxNT. En este punto, el superíndice T puede representar la transpuesta. Como se muestra en la Figura 7, en caso de que los coeficientes de transformada para el bloque objetivo se multipliquen por la matriz de RST inversa TRxNT, se pueden derivar los coeficientes de transformada modificados para el bloque objetivo o las muestras residuales para el bloque objetivo. La matriz de RST inversa TRxNT puede expresarse como (TRxN)TNxR.
Más específicamente, en caso de que la RST inverso se aplique como la transformada inversa secundaria, los coeficientes de transformada modificados para el bloque objetivo pueden derivarse multiplicando los coeficientes de transformada para el bloque objetivo por la matriz de<r>S<t>inversa TRxNT. Mientras tanto, la RST inverso puede aplicarse como la transformada primaria inversa y, en este caso, las muestras residuales para el bloque objetivo se pueden derivar multiplicando los coeficientes de transformada para el bloque objetivo por la matriz de RST inversa TRxNT.
En una realización, en el caso de que el tamaño del bloque al que se aplica la transformada inversa sea 8x8 y R sea 16 (es decir, R/N = 16/64 = 1/4), la RST de acuerdo con la Figura 7 puede expresarse mediante una operación matricial como en la Ecuación 6 a continuación.
[Ecuación 6]
' E , i ^2,1
E ,2 ^2,2 '
E ,3 E ,3
7 l ,64 E ,64
En la Ecuación 6, c1 a c16 pueden representar coeficientes de transformada para el bloque objetivo. rj que representa los coeficientes de transformada modificados para el bloque objetivo o las muestras residuales para el bloque objetivo se puede derivar basándose en el resultado de la operación de la Ecuación 6. Es decir, pueden derivarse r1 a rN que representan los coeficientes de transformada modificados para el bloque objetivo o las muestras residuales para el bloque objetivo.
Considerando el tamaño de la matriz de transformada inversa, dado que el tamaño de la matriz de transformada inversa normal es 64x64 (NxN), y el tamaño de la matriz de transformada inversa simplificada se reduce a 64x16 (NxR), el uso de memoria cuando se realiza la RST inversa se puede reducir en una relación de R/N en comparación con el caso en el que se realiza la transformada inversa normal. Además, en comparación con el número (NxN) de operaciones de multiplicación cuando se usa la matriz de transformada inversa, el uso de la matriz de transformada inversa de simplificación puede reducir el número de operaciones de multiplicación (NxR) en la relación R/N.
Mientras tanto, los conjuntos de transformada se pueden configurar y aplicar incluso con respecto a RST de 8x8. Es decir, puede aplicarse la RST de 8x8 correspondiente de acuerdo con el conjunto de transformadas. Dado que un conjunto de transformadas está compuesto por dos o tres núcleos de transformadas de acuerdo con el modo de intra predicción, se puede configurar para seleccionar una de cuatro transformadas como máximo, incluyendo incluso el caso en que no se aplica la transformada secundaria. En la transformada, cuando no se aplica la transformada secundaria se puede considerar que se ha aplicado una matriz identidad. Si se supone que se da un índice de 0, 1,2 o 3 para cuatro transformadas (por ejemplo, el índice n° 0 puede asignarse a un caso en el que no se aplica la matriz de identidad, es decir, la transformada secundaria), la transformada que se va a aplicar puede designarse señalizando un elemento de sintaxis que es un índice de NSST para cada bloque de coeficientes de transformada. Es decir, a través del índice de NSST, se puede designar NSST de 8x8 para un bloque superior izquierdo de 8x8, y en la configuración de RST, se puede designar RST de 8x8. La NSST de 8x8 y la RST de 8x8 pueden representar transformadas que pueden aplicarse al área de 8x8 incluida dentro del bloque de coeficientes de transformada correspondiente en caso de que la W y la H del bloque objetivo que se convierte en el objetivo de la transformada son todas iguales o mayores que 8, y el área de 8x8 puede ser el área superior izquierda de 8x8 dentro del bloque de coeficientes de transformada correspondiente. De manera similar, la NSST de 4x4 y la RST de 4x4 pueden representar transformadas que pueden aplicarse al área de 4x4 incluida dentro del bloque de coeficientes de transformada correspondiente en caso de que la W y la H del bloque objetivo son todas iguales o mayores que 4, y el área de 4x4 puede ser el área superior izquierda de 4x4 dentro del bloque de coeficientes de transformada correspondiente.
Mientras tanto, por ejemplo, el aparato de codificación puede derivar el flujo de bits codificando el valor del elemento de sintaxis o los valores cuantificados del coeficiente de transformada para los residuos basándose en diversos métodos de codificación, tales como Golomb exponencial, codificación de longitud variable adaptativa al contexto (CAVLC), codificación aritmética binaria adaptativa al contexto (CABAC) y similares. Además, el aparato de decodificación puede derivar el valor del elemento de sintaxis o los valores cuantificados del coeficiente de transformada para los residuos basándose en diversos métodos de codificación, tales como codificación Golomb exponencial, CAVLC, CABAC y similares.
Por ejemplo, los métodos de codificación descritos anteriormente se pueden realizar como los contenidos que se van a describir más adelante.
La Figura 8 ilustra a modo de ejemplo la codificación aritmética binaria adaptativa al contexto (CABAC) para codificar un elemento de sintaxis.
Por ejemplo, en un proceso de codificación de CABAC, si una señal de entrada es un elemento de sintaxis que no es un valor binario, un valor de la señal de entrada puede transformarse en un valor binario a través de conversión a binario. Además, si la señal de entrada ya es el valor binario (es decir, si el valor de la señal de entrada es el valor binario), puede que no se realice la conversión a binario, si no que la señal de entrada se puede usar tal como está. En este punto, cada número binario 0 o 1 que constituye el valor binario puede denominarse binario. Por ejemplo, si una cadena binaria después de la conversión a binario es 110, cada uno de 1, 1 y 0 puede representarse como un binario. Los binarios para un elemento de sintaxis pueden representar el valor del elemento de sintaxis. La conversión a binario puede basarse en diversos métodos de conversión a binario, tales como un proceso de conversión a binario de Rice truncado o un proceso de conversión a binario de longitud fija, y el método de conversión a binario para un elemento de sintaxis objetivo puede estar predefinido. El procedimiento de conversión a binario puede realizarse mediante un conversor a binario en un codificador por entropía.
Posteriormente, los binarios convertidos a binario del elemento de sintaxis pueden introducirse en un motor de codificación normal o en un motor de codificación por derivación. El motor de codificación normal del aparato de codificación puede asignar un modelo de contexto que refleje un valor de probabilidad con respecto al binario correspondiente, y codificar el binario correspondiente basándose en el modelo de contexto asignado. El motor de codificación normal del aparato de codificación puede actualizar el modelo de contexto para el binario correspondiente después de realizar la codificación con respecto a los binarios respectivos. Los binarios que se codifican como los contenidos descritos anteriormente pueden representarse como binarios codificados por contexto.
Mientras tanto, en caso de que los binarios convertidos a binario del elemento de sintaxis se introduzcan en el motor de codificación por derivación, se pueden codificar de la siguiente manera. Por ejemplo, el motor de codificación por derivación del aparato de codificación puede omitir un procedimiento para estimar la probabilidad con respecto al binario de entrada y un procedimiento para actualizar un modelo de probabilidad que se ha aplicado al binario después de la codificación. En caso de que se aplique la codificación por derivación, el aparato de codificación puede codificar el binario de entrada aplicando una distribución de probabilidad normal en lugar de asignar el modelo de contexto y, a través de esto, se puede mejorar la velocidad de codificación. El binario que se codifica de acuerdo con el contenido descrito anteriormente puede representarse como un binario de derivación.
La decodificación por entropía puede representar un proceso para realizar el mismo proceso que la codificación por entropía descrita anteriormente en orden inverso.
El aparato de decodificación (decodificador por entropía) puede decodificar información de imagen/vídeo codificada. La información de imagen/vídeo puede incluir información relacionada con la división, información relacionada con la predicción (por ejemplo, información de división inter/intra predicción, información del modo intra predicción, información del modo inter predicción y similares), información residual o información relacionada con el filtrado en bucle, o puede incluir diversos elementos de sintaxis al respecto. La codificación por entropía se puede realizar en la unidad de un elemento de sintaxis.
El aparato de decodificación puede realizar la conversión a binario de elementos de sintaxis objetivo. En este punto, la conversión a binario puede basarse en diversos métodos de conversión a binario, tales como un proceso de conversión a binario de Rice truncado o un proceso de conversión a binario de longitud fija, y el método de conversión a binario para el elemento de sintaxis objetivo puede estar predefinido. El aparato de decodificación puede derivar cadenas de binarios disponibles (candidatas de cadena de binarios) para valores disponibles de los elementos de sintaxis objetivo a través del procedimiento de conversión a binario. El procedimiento de conversión a binario puede realizarse mediante el conversor a binario en el decodificador por entropía.
El aparato de decodificación puede comparar la cadena de binarios derivada con cadenas de binarios disponibles para los elementos de sintaxis correspondientes mientras decodifica o analiza secuencialmente los binarios respectivos para los elementos de sintaxis objetivo a partir del bit o bits de entrada en el flujo de bits. Si la cadena de binarios derivada es igual a una de las cadenas de binarios disponibles, el valor correspondiente a la cadena de binarios correspondiente se deriva como el valor del elemento de sintaxis correspondiente. De lo contrario, el aparato de decodificación puede volver a realizar el procedimiento descrito anteriormente después de analizar adicionalmente el siguiente bit en el flujo de bits. A través de un proceso de este tipo, es posible realizar señalización de información específica (o elemento de sintaxis específico) en el flujo de bits usando un bit de longitud variable incluso sin usar un bit de inicio o un bit de final de la información correspondiente. A través de esto, se puede asignar un bit relativamente más pequeño con respecto a un valor más pequeño y, por lo tanto, se puede mejorar la eficiencia de codificación general.
El aparato de decodificación puede realizar una decodificación basada en modelo de contexto o basada en derivación de los binarios respectivos en la cadena de binarios del flujo de bits basándose en una técnica de codificación por entropía, tal como CABAC o CAVLC.
En caso de que el elemento de sintaxis se decodifique basándose en el modelo de contexto, el aparato de decodificación puede recibir el binario correspondiente al elemento de sintaxis a través del flujo de bits, puede determinar un modelo de contexto usando el elemento de sintaxis y la información de decodificación del bloque objetivo de decodificación o la información de bloque o símbolo/binario contiguo decodificada en la etapa anterior, y puede derivar el valor del elemento de sintaxis realizando la decodificación aritmética del binario a través de la predicción de la probabilidad de aparición del binario recibido de acuerdo con el modelo de contexto determinado. Posteriormente, el modelo de contexto del binario que se decodifica a continuación puede actualizarse basándose en el modelo de contexto determinado.
El modelo de contexto puede asignarse y actualizarse mediante binarios codificados por contexto (codificados regularmente), y el modelo de contexto puede indicarse basándose en el índice de contexto (ctxIdx) o del incremento del índice de contexto (ctxInc). CtxIdx se puede derivar basándose en ctxInc. Específicamente, por ejemplo, el ctxldx que representa el modelo de contexto para cada uno de los binarios codificados de manera normal puede derivarse de la suma de ctxlnc y el desplazamiento de índice de contexto (ctxIdxOffset). Por ejemplo, ctxInc puede derivarse de forma diferente mediante binarios. ctxIdxOffset se puede representar como el valor más bajo de ctxldx. Generalmente, ctxIdxOffset puede ser un valor que se usa para distinguirlo de los modelos de contexto para otros elementos de sintaxis, y el modelo de contexto para un elemento de sintaxis puede dividirse o derivarse basándose en el ctxInc.
En el procedimiento de codificación por entropía, se puede determinar si se realiza la codificación a través del motor de codificación normal o se realiza la codificación a través del motor de codificación por derivación y, en consecuencia, se puede cambiar una ruta de codificación. La decodificación por entropía puede realizar el mismo proceso que la codificación por entropía en orden inverso.
Mientras tanto, por ejemplo, en caso de que el elemento de sintaxis se decodifique por derivación, el aparato de decodificación puede recibir el binario correspondiente al elemento de sintaxis a través del flujo de bits, y puede decodificar el binario de entrada aplicando una distribución de probabilidad normal. En este caso, el aparato de decodificación puede omitir un procedimiento para derivar el modelo de contexto del elemento de sintaxis y un procedimiento para actualizar el modelo de contexto aplicado al binario después de la decodificación.
Como se ha descrito anteriormente, la muestra residual se puede derivar como coeficientes de transformada cuantificados a través de los procesos de transformada y cuantificación. Los coeficientes de transformada cuantificados pueden denominarse coeficientes de transformada. En este caso, los coeficientes de transformada en el bloque pueden señalizarse en forma de información residual. La información residual puede incluir una sintaxis o un elemento de sintaxis acerca de la codificación residual. Por ejemplo, el aparato de codificación puede codificar la información residual y puede emitir la misma en forma de un flujo de bits, y el aparato de decodificación puede decodificar la información residual del flujo de bits y puede derivar los coeficientes de transformada residuales (cuantificados). Como se describe más adelante, la información residual puede incluir elementos de sintaxis que representan si la transformada se ha aplicado al bloque correspondiente, dónde está la ubicación del último coeficiente de transformada efectivo en el bloque, si existe un coeficiente de transformada efectivo en el subbloque o cómo es el tamaño/signo del coeficiente de transformada efectivo.
Mientras tanto, por ejemplo, el predictor en el aparato de codificación de la Figura 2 o el predictor en el aparato de decodificación de la Figura 3 pueden realizar intra predicción. La intra predicción se describirá con más detalle a continuación.
La intra predicción puede representar una predicción para generar muestras de predicción para el bloque actual basándose en muestras de referencia en la imagen (en lo sucesivo en el presente documento, imagen actual) a la que pertenece el bloque actual. En caso de que la intra predicción se aplique al bloque actual, se pueden derivar muestras de referencia contiguas que se van a usar para la intra predicción del bloque actual. Las muestras de referencia contiguas del bloque actual pueden incluir una muestra adyacente a un límite izquierdo del bloque actual que tiene un tamaño de nWxnH, un total de 2xnH muestras contiguas a la parte inferior izquierda, una muestra adyacente al límite superior del bloque actual bloque, un total de 2xnW muestras contiguas a la parte superior derecha y una muestra contigua a la parte superior izquierda del bloque actual. Como alternativa, las muestras de referencia contiguas del bloque actual pueden incluir una muestra contigua superior de varias columnas y una muestra contigua izquierda de varias filas. Como alternativa, las muestras de referencia contiguas del bloque actual pueden incluir un total de nH muestras adyacentes al límite derecho del bloque actual que tienen un tamaño de nWxnH, un total de nH muestras adyacentes al límite derecho del bloque actual, un total de nW muestras adyacentes al límite inferior del bloque actual y una muestra contigua a la parte inferior derecha del bloque actual.
Sin embargo, algunas de las muestras de referencia contiguas del bloque actual pueden no haberse decodificado aún o pueden no estar disponibles. En este caso, el decodificador puede configurar las muestras de referencia contiguas que se van a usar para la predicción mediante la sustitución de muestras disponibles por muestras no disponibles. Como alternativa, las muestras de referencia contiguas que se van a usar para la predicción se pueden configurar a través de la interpolación de las muestras disponibles.
En caso de que se deriven las muestras de referencia contiguas, (i) se puede inducir una muestra de predicción basándose en un promedio o interpolación de las muestras de referencia contiguas del bloque actual, y (ii) se puede inducir una muestra de predicción basándose en una muestra de referencia existente en una dirección específica (predicción) con respecto a la muestra de predicción entre las muestras de referencia contiguas del bloque actual. El caso de (i) puede denominarse modo no direccional o modo no angular y el caso de (ii) puede denominarse modo direccional o modo angular.
Además, la muestra de predicción se puede generar a través de interpolación entre la primera muestra contigua y la segunda muestra contigua ubicada en una dirección opuesta a la dirección de predicción del modo de intra predicción del bloque actual basándose en la muestra de predicción del bloque actual entre las muestras de referencia contiguas. El caso descrito anteriormente puede denominarse intra predicción por interpolación lineal (LIP). Además, se pueden generar muestras de predicción de croma basándose en muestras de luma usando un modelo lineal. Este caso puede denominarse modo de modelo lineal (LM). Como alternativa, la muestra de predicción del bloque actual se puede derivar derivando una muestra de predicción temporal del bloque actual basándose en las muestras de referencia contiguas filtradas y realizando la suma ponderada de la muestra de predicción temporal y al menos una muestra de referencia derivada de acuerdo con el modo de intra predicción entre las muestras de referencia contiguas no filtradas. El caso descrito anteriormente puede denominarse intra predicción dependiente de la posición (PDPC). Como alternativa, la codificación de intra predicción se puede realizar en un método para derivar una muestra de predicción usando una muestra de referencia ubicada en la dirección de predicción en la línea de muestra de referencia que tiene la precisión de predicción más alta a través de la selección de la línea correspondiente entre líneas de muestra de múltiples referencias contiguas del bloque actual, y para indicar (señalizar) la línea de muestra de referencia usada en ese momento al aparato de decodificación. El caso descrito anteriormente puede denominarse intra predicción de línea de múltiples referencias (MRL) o intra predicción basada en MRL. Además, al realizar la intra predicción basándose en los mismos modos de intra predicción a través de la división del bloque actual en subparticiones verticales u horizontales, las muestras de referencia contiguas pueden derivarse y usarse en la unidad de la subpartición. Es decir, el modo de intra predicción para el bloque actual puede aplicarse igualmente a las subparticiones y, en este caso, dado que las muestras de referencia contiguas se derivan y usan en la unidad de la subpartición, el rendimiento de intra predicción puede mejorarse, en algunos casos. Este método de predicción puede denominarse intra predicción basada en intra subparticiones (ISP) o basada en ISP.
Los métodos de intra predicción descritos anteriormente pueden denominarse un tipo de intra predicción a diferencia del modo de intra predicción. El tipo de intra predicción puede denominarse con diversos términos, tales como técnica de intra predicción o modo de intra predicción adicional. Por ejemplo, el tipo de intra predicción (o modo de intra predicción adicional) puede incluir al menos uno de LIP, PDPC, MRL e ISP como se ha descrito anteriormente. Un método de intra predicción general que excluye el tipo de intra predicción específico, tal como LIP, PDPC, MRL o ISP, puede denominarse tipo de intra predicción normal. En caso de que no se aplique el tipo de intra predicción específico descrito anteriormente, generalmente se puede aplicar el tipo de intra predicción normal y la predicción se puede realizar basándose en el modo de intra predicción descrito anteriormente. Mientras tanto, según sea necesario, se puede realizar un filtrado posterior para la muestra de predicción derivada.
En otras palabras, el procedimiento de intra predicción puede incluir determinación de modo/tipo de intra predicción, derivación de muestra de referencia contigua y derivación de muestra de predicción basada en modo/tipo de intra predicción. Además, según sea necesario, se puede realizar un filtrado posterior para la muestra de predicción derivada.
Mientras tanto, entre los tipos de intra predicción descritos anteriormente, la ISP puede dividir el bloque actual en una dirección horizontal o una dirección vertical, y puede realizar una intra predicción en la unidad de bloques divididos. Es decir, la ISP puede derivar subbloques dividiendo el bloque actual en dirección horizontal o la dirección vertical, y puede realizar intra predicción para cada uno de los subbloques. En este caso, se puede generar un bloque reconstruido realizando codificación/decodificación en la unidad del subbloque dividido, y el bloque reconstruido se puede usar como bloque de referencia del siguiente subbloque dividido. En este punto, el subbloque puede denominarse intra subpartición.
Por ejemplo, en caso de que se aplique la ISP, el bloque actual puede dividirse en dos o cuatro subbloques en dirección vertical o dirección horizontal de acuerdo con el tamaño del bloque actual.
Por ejemplo, para aplicar la ISP, se puede transmitir un indicador que representa si se aplica la ISP en la unidad de un bloque, y en caso de que la ISP se aplique al bloque actual, se puede codificar/decodificar un indicador que representa si el tipo de partición es horizontal o vertical, es decir, si la dirección de partición es una dirección horizontal o una dirección vertical. El indicador que representa si aplicar la ISP puede denominarse indicador de ISP, y el indicador de ISP puede representarse como un elemento de sintaxis intra_subpartitions_mode_flag. Además, el indicador que representa el tipo de partición puede denominarse indicador de partición de ISP, y el indicador de partición de ISP puede representarse como un elemento de sintaxis intra subpartitions_split_flag.
Por ejemplo, mediante el indicador de ISP o el indicador de partición de ISP, puede representarse información que representa que la ISP no se aplica al bloque actual (IntraSubPartitionsSplitType == ISP_NO_SPLIT), información que representa la partición en la dirección horizontal (IntraSubPartitionsSplitType == ISP_HOR_SPLIT), información que representa la partición en la dirección vertical (IntraSubPartitionsSplitType == ISP_VER_SPLIT). Por ejemplo, el indicador de ISP o el indicador de partición de ISP pueden denominarse información relacionada con la ISP sobre la subpartición del bloque.
Mientras tanto, además de los tipos de intra predicción descritos anteriormente, puede usarse una intra predicción ponderada lineal afín (ALWIP). La ALWIP puede denominarse intra predicción ponderada lineal (LWIP), intra predicción ponderada matricial (MWIP) o intra predicción basada en matriz (MIP). En caso de que la ALWIP se aplique al bloque actual, i) usando muestras de referencia contiguas de las cuales se ha realizado un procedimiento de promedio, ii) se puede realizar un procedimiento de multiplicación de matriz-vector, y iii) según sea necesario, pueden derivarse muestras de predicción para el bloque actual realizando además un procedimiento de interpolación horizontal/vertical.
Los modos de intra predicción usados para la ALWIP pueden ser los modos de intra predicción LIP, PDPC, MRL o ISP descritos anteriormente, pero pueden configurarse de manera diferente a los modos de intra predicción usados en la intra predicción normal. El modo de intra predicción para la ALWIP puede denominarse modo ALWIP. Por ejemplo, de acuerdo con el modo de intra predicción para la ALWIP, la matriz y el desplazamiento que se usan en la multiplicación de vectores de matriz pueden configurarse de manera diferente. En este punto, la matriz puede denominarse matriz de ponderación (afín) y el desplazamiento puede denominarse vector de desplazamiento (afín) o vector de derivación (afín). En el presente documento, el modo de intra predicción para la ALWIP puede denominarse modo de ALWIP, modo de intra predicción de ALWIP, modo de LWIP, modo de intra predicción de LWIP, modo de MWIP, modo de intra predicción de MWIP, modo de MIP o un modo de intra predicción de MIP. Más adelante se describirá un método de ALWIP detallado.
La Figura 9 es un diagrama que explica un MIP para un bloque de 8x8.
Para predecir muestras de un bloque rectangular que tiene una anchura W y una altura H, la MIP puede usar muestras contiguas al límite izquierdo del bloque y muestras contiguas al límite superior. En este punto, las muestras contiguas al límite izquierdo pueden representar muestras ubicadas en una línea adyacente al límite izquierdo del bloque, y pueden representar muestras reconstruidas. Las muestras contiguas al límite superior pueden representar muestras ubicadas en una línea adyacente al límite superior del bloque, y pueden representar muestras reconstruidas.
Por ejemplo, si las muestras reconstruidas no están disponibles, las muestras reconstruidas como en la intra predicción en la técnica relacionada pueden generarse o derivarse, y pueden usarse.
Se puede generar una señal de predicción (o muestras de predicción) basándose en un proceso de promedio, un proceso de multiplicación de vectores de matriz y un proceso de interpolación (lineal).
Por ejemplo, el proceso de promedio puede ser un proceso para extraer muestras fuera del límite a través del promedio. Por ejemplo, si la anchura W y el alto H de las muestras son todas 4, las muestras que se extraen pueden ser cuatro muestras y, en otro caso, pueden ser 8 muestras. Por ejemplo, en la Figura 9, bdryleft y bdrytop pueden representar muestras izquierdas y muestras superiores extraídas, respectivamente.
Por ejemplo, el proceso de multiplicación de vectores de matrices puede ser un proceso de realizar una multiplicación de vectores de matrices con las muestras promediadas como entradas. Además, se puede añadir un desplazamiento. Por ejemplo, en la Figura 9, Ak puede representar una matriz, bk puede representar un desplazamiento, y bdryred puede ser una señal reducida para las muestras extraídas mediante el proceso de promedio. Además, bdryred puede ser información reducida sobre bdryleft y bdrytop. El resultado puede ser una señal de predicción reducida predred para un conjunto de muestras submuestreadas en el bloque original.
Por ejemplo, el proceso de interpolación (lineal) puede ser un proceso en el que se genera una señal de predicción en las ubicaciones restantes a partir de la señal de predicción para el conjunto submuestreado mediante la interpolación lineal. En este punto, la interpolación lineal puede representar una única interpolación lineal en direcciones respectivas. Por ejemplo, la interpolación lineal se puede realizar basándose en la señal de predicción reducida predred marcada en gris en el bloque de la Figura 9 y muestras de límites contiguas, y, a través de esto, se pueden derivar todas las muestras de predicción en el bloque.
Por ejemplo, las matrices (Ak en la Figura 9) y vectores de desplazamiento (bk en la Figura 9) requeridos para generar la señal de predicción (o bloque de predicción o muestras de predicción) puede obtenerse de tres conjuntos S0, S1 y S2. Por ejemplo, el conjunto S0 puede estar compuesto por 18 matrices (A0i, i=0, 1, ..., 17) y 18 vectores de desplazamiento (b0i, i=0, 1, ..., 17). En este punto, cada una de las 18 matrices puede tener 16 filas y 4 columnas, y cada uno de los 18 vectores de desplazamiento puede tener 16 tamaños. Las matrices y los vectores de desplazamiento del conjunto S.0 pueden usarse para un bloque que tiene un tamaño de 4x4. Por ejemplo, el conjunto S1 puede estar compuesto por 10 matrices (A1i, i=0, 1, ..., 9) y 10 vectores de desplazamiento (b1 i, i=0, 1, ..., 9). En este punto, cada una de las 10 matrices puede tener 16 filas y 8 columnas, y cada uno de los 10 vectores de desplazamiento puede tener 16 tamaños. Las matrices y los vectores de desplazamiento del conjunto S1 pueden usarse para un bloque que tiene un tamaño de 4x8, 8x4 u 8x8. Por ejemplo, el conjunto S2 puede estar compuesto por 6 matrices (A2i, i=0, 1, ..., 5) y 6 vectores de desplazamiento (b2i, i=0, 1, ..., 5). En este punto, cada una de las 6 matrices puede tener 64 filas y 8 columnas, y cada uno de los 6 vectores de desplazamiento puede tener 64 tamaños. Las matrices y los vectores de desplazamiento del conjunto S2 pueden usarse para todos los bloques restantes.
Mientras tanto, en una realización del presente documento, la información de índice de LFNST puede señalizarse con respecto al bloque al que se aplica la MIP. Como alternativa, el aparato de codificación puede generar un flujo de bits codificando la información de índice de LFNST para transformar el bloque al que se aplica la MIP, y el aparato de decodificación puede obtener la información de índice de LFNST para transformar el bloque al que se aplica la MIP analizando o decodificando el flujo de bits.
Por ejemplo, la información de índice de LFNST puede ser información para discriminar el conjunto de transformadas de LFNST de acuerdo con el número de transformadas que constituyen el conjunto de transformadas. Por ejemplo, se puede seleccionar un núcleo de LFNST óptimo con respecto al bloque en el que se aplica la intra predicción al que se aplica la MIP basándose en la información de índice de LFNST. Por ejemplo, la información de índice de LFNST puede representarse como el elemento de sintaxis st_idx o el elemento de sintaxis lfnst_idx.
Por ejemplo, la información de índice de LFNST (o elemento de sintaxis de st_idx) puede incluirse en la sintaxis como en las siguientes tablas.
[Tabla 2]
[Tabla 3]
[Tabla 4]
[Tabla 5]
De la Tabla 2 a 5 anteriores pueden representar sucesivamente una sintaxis o información.
Por ejemplo, de la Tabla 2 a la Tabla 5, la información o la semántica representada por un elemento de sintaxis intra_mip_flag, un elemento de sintaxis intra_mip_mpm_flag, un elemento de sintaxis intra_mip_mpm_idx, un elemento de sintaxis intra_mip_mpm_remainder o un elemento de sintaxis st_idx puede ser como en la siguiente tabla.
[Tabla 6] ___________________________________________________________________________ flag_intra_mip[ x0 ][ y0 ] igual a 1 especifica que el tipo de intra predicción para muestras de luma es una intra predicción basada en matriz. intra_mip_flag[ x0 ][ y0 ] igual a 0 especifica que el tipo de intra predicción para muestras de luma no es una intra predicción basada en matriz.
Cuando intra mip flag[ x0 ][ y0 ] no está presente, se infiere que es igual a 0._________
Los elementos de sintaxis intra_mip_mpm_flag[ x0 ][ y0 ], intra_mip_mpm_idx[ x0 ][ y0 ] e intra_mip_mpm_remainder[ x0 ][ y0 ] especifican el modo de intra predicción basado en matriz para muestras de luma. Los índices de serie x0, y0 especifican la ubicación (x0, y0) de la muestra de luminancia superior izquierda del bloque de codificación considerado con relación a la muestra de luma superior izquierda de la imagen. Cuando intra_mip_mpm_flag[ x0 ][ y0 ] es igual a 1, el modo de intra predicción basado en matriz
se infiere a partir de una unidad de codificación intra prevista contigua.
Cuando intra mip mpm flag[ x0 ][ y0 ] no está presente, se infiere que es igual a 1. st_idx[x0] [y0] especifica qué núcleos de transformada (núcleos de LFNST) se aplican a la LFNST para el bloque actual. st_idx puede indicar uno de los núcleos de transformada en el conjunto de transformadas de LFNST que puede determinarse basándose en la intra/inter predicción y/o del tamaño de bloque del bloque actual.____________________
Por ejemplo, el elemento de sintaxis intra_mip_flag puede representar información sobre si se aplica MIP a muestras de luma o al bloque actual. Además, por ejemplo, el elemento de sintaxis intra_mip_mpm_flag, el elemento de sintaxis intra_mip_mpm_idx o el elemento de sintaxis intra_mip_mpm_remainder pueden representar información sobre el modo de intra predicción que se va a aplicar al bloque actual en caso de que se aplique la MIP. Además, por ejemplo, el elemento de sintaxis st_idx puede representar información sobre el núcleo de transformada (núcleo de LFNST) que se va a aplicar a la LFNST para el bloque actual. Es decir, el elemento de sintaxis st_idx puede ser información que representa uno de los núcleos de transformada en el conjunto de transformadas de LFNST. En este punto, el elemento de sintaxis st_idx puede representarse como el elemento de sintaxis lfnst_idx o la información de índice de LFNST.
La Figura 10 es un diagrama de flujo que explica un método al que se aplican MIP y LFNST.
Mientras tanto, otra realización del presente documento puede no señalizar información de índice de LFNST con respecto a un bloque al que se aplica MIP. Además, el aparato de codificación puede generar un flujo de bits codificando información de imagen excluyendo la información de índice de LFNST para la transformada del bloque al que se aplica la MIP, y el aparato de decodificación puede analizar o decodificar el flujo de bits, y puede realizar un proceso de transformación del bloque sin la información de índice de LFNST para transformar el bloque al que se aplica la MIP.
Por ejemplo, si no se señaliza la información de índice de LFNST, la información de índice de LFNST puede inducirse como un valor predeterminado. Por ejemplo, la información de índice de LFNST inducida como valor predeterminado puede ser un valor de 0. Por ejemplo, la información de índice de LFNST que tiene el valor de 0 puede representar que no se aplica la LFNST al bloque correspondiente. En este caso, dado que no se transmite la información de índice de LFNST, se puede reducir la cantidad de bits para codificar la información de índice de LFNST. Además, la complejidad se puede reducir evitando que se apliquen la MIP y LFNST simultáneamente y, por lo tanto, también se puede reducir la latencia.
Haciendo referencia a la Figura 10, en primer lugar, se puede determinar si la MIP se aplica al bloque correspondiente. Es decir, se puede determinar si el valor del elemento de sintaxis intra_mip_flag es 1 o 0 (S1000). Por ejemplo, si el valor del elemento de sintaxis intra_mip_flag es 1, se puede considerar verdadero o sí, y puede representar que la MIP se aplica al bloque correspondiente. En consecuencia, la predicción de MIP se puede realizar para el bloque correspondiente (S 1010). Es decir, el bloque de predicción para el bloque correspondiente puede derivarse realizando la predicción de MIP. Posteriormente, se puede realizar un procedimiento de transformada primaria inversa (S 1020) y se puede realizar un procedimiento de intra reconstrucción (S1030). En otras palabras, se puede derivar un bloque residual realizando la transformada primaria inversa con respecto a los coeficientes de transformada obtenidos de un flujo de bits, y se puede generar un bloque reconstruido basándose en el bloque de predicción de acuerdo con la predicción de MIP y el bloque residual. Es decir, puede que no se incluya la información de índice de LFNST para el bloque al que se aplica la MIP. Además, puede que no se aplique la LFNST no se aplique al bloque al que se aplica la MIP.
Además, por ejemplo, si el valor del elemento de sintaxis intra_mip_flag es 0, se puede considerar falso o no, y puede representar que la MIP no se aplica al bloque correspondiente. Es decir, se puede aplicar una intra predicción convencional al bloque correspondiente (S1040). Es decir, el bloque de predicción para el bloque correspondiente puede derivarse realizando la intra predicción convencional. A partir de entonces, se puede determinar si la LFNST se aplica al bloque correspondiente basándose en la información de índice de LFNST. En otras palabras, se puede determinar si el valor del elemento de sintaxis st_idex es mayor que 0 (S1050). Por ejemplo, si el valor del elemento de sintaxis st_idex es mayor que 0, puede realizarse el procedimiento de transformada de LFNST inversa usando el núcleo de transformada representado por el elemento de sintaxis st_idex (S 1060). Además, si el valor del elemento de sintaxis st_idex no es mayor que 0, puede representar que no se aplica la LFNST al bloque correspondiente y puede que no se realice el procedimiento de transformada de LFNST inversa. Posteriormente, se puede realizar el procedimiento de transformada primaria inversa (S 1020) y se puede realizar el procedimiento de intra reconstrucción (S1030). En otras palabras, se puede derivar un bloque residual realizando la transformada primaria inversa con respecto a los coeficientes de transformada obtenidos del flujo de bits, y se puede generar un bloque reconstruido basándose en el bloque de predicción de acuerdo con la intra predicción convencional y el bloque residual.
En resumen, si se aplica la MIP, el bloque de predicción de MIP puede generarse sin decodificar la información de índice de LFNST, y la señal de intra reconstrucción final puede generarse aplicando la transformada primaria inversa al coeficiente recibido.
Por el contrario, si no se aplica la MIP, puede decodificarse la información de índice de LFNST, y si el valor del indicador (o la información de índice de LFNST o el elemento de sintaxis st_idx) es mayor que 0, la señal intra reconstrucción final puede generarse aplicando la transformada de LFNST inversa y la transformada primaria inversa con respecto al coeficiente recibido.
Por ejemplo, para el procedimiento descrito anteriormente, la información de índice de LFNST (o elemento de sintaxis st_idx) puede incluirse en la sintaxis o información de imagen basándose en la información (o elemento de sintaxis intra_mip_flag) sobre si se aplica la MIP, y puede señalizarse. Además, la información de índice de LFNST (o elemento de sintaxis st_idx) puede configurarse/analizarse/señalizarse/transmitirse/recibirse selectivamente con referencia a la información (o elemento de sintaxis intra_mip_flag) sobre si se aplica o no la MIP. Por ejemplo, la información de índice de LFNST puede representarse como el elemento de sintaxis st_idx o el elemento de sintaxis lfnst_idex.
Por ejemplo, la información de índice de LFNST (o elemento de sintaxis st_idx) puede incluirse como en la Tabla 7 a continuación.
[Tabla 7]
Por ejemplo, con referencia a la Tabla 7, el elemento de sintaxis st_idx puede incluirse basándose en el elemento de sintaxis intra_mip_flag. En otras palabras, si el valor del elemento de sintaxis intra_mip_flag es 0(!intra_mip_flag), se puede incluir el elemento de sintaxis st_idx.
Además, por ejemplo, la información de índice de LFNST (o elemento de sintaxis lfnst_idx) puede incluirse como en la Tabla 8 a continuación.
[Tabla 8]
Por ejemplo, con referencia a la Tabla 8, el elemento de sintaxis lfnst_idx puede incluirse basándose en el elemento de sintaxis intra_mip_flag. En otras palabras, si el valor del elemento de sintaxis intra_mip_flag es 0(!intra_mip_flag), se puede incluir el elemento de sintaxis lfnst_idx.
Por ejemplo, con referencia a la Tabla 7 o la Tabla 8, el elemento de sintaxis st_idx o el elemento de sintaxis lfnst_idx pueden incluirse basándose en información relacionada con intra subparticiones (ISP) sobre la subpartición del bloque. Por ejemplo, la información relacionada con la ISP puede incluir el indicador de ISP o el indicador de partición de ISP y, a través de esto, se puede representar información sobre si se realiza una subpartición con respecto al bloque. Por ejemplo, la información sobre si se realiza la subpartición se puede representar como IntraSubPartitionsSplitType, ISP_NO_SPLIT puede representar que no se realiza la subpartición, ISP_HOR_SPLIT puede representar que la subpartición se realiza en dirección horizontal e ISP_VER_SPLIT puede representar que la subpartición se realice en dirección vertical.
La información relacionada con los residuos puede incluir la información de índice de LFNST basándose en el indicador de MIP y la información relacionada con la ISP.
Mientras tanto, en otra realización del presente documento, la información de índice de LFNST puede inducirse con respecto al bloque al que se aplica la MIP sin señalizarse por separado. Además, el aparato de codificación puede generar el flujo de bits codificando información de imagen excluyendo la información de índice de LFNST para transformar el bloque al que se aplica la MIP, y el aparato de decodificación puede analizar o decodificar el flujo de bits, inducir y obtener la información de índice de LFNST para transformar el bloque al que se aplica la MIP, y realizar un proceso de transformación del bloque basándose en esto.
Es decir, la información de índice de LFNST no puede decodificarse con respecto al bloque correspondiente, pero, a través de un proceso de inducción, puede determinarse el índice para dividir las transformadas que constituyen el conjunto de transformadas de LFNST. Además, a través del proceso de inducción, se puede determinar que se usa un núcleo de transformada optimizado separado para el bloque al que se aplica la MIP. En este caso, se puede seleccionar el núcleo LFNST óptimo con respecto al bloque al que se aplica la MIP, y se puede reducir la cantidad de bits para codificarlo.
Por ejemplo, la información de índice de LFNST puede inducirse basándose en al menos una de la información de índice de línea de referencia para intra predicción, información de modo de intra predicción, información de tamaño de bloque o información de aplicación/no aplicación de MIP.
Mientras tanto, en otra realización del presente documento, la información de índice de LFNST para el bloque al que se aplica la MIP puede convertirse a binario para señalizarse. Por ejemplo, el número de transformadas de LFNST aplicables puede diferir dependiendo de si la MIP se aplica al bloque actual y, para esto, el método de conversión a binario para la información de índice de LFNST puede cambiarse selectivamente.
Por ejemplo, se puede usar un núcleo de LFNST con respecto al bloque al que se aplica la MIP, y este núcleo puede ser uno de los núcleos de LFNST que se aplican al bloque al que no se aplica la MIP. Además, el núcleo de LFNST existente que se ha usado no se puede usar para el bloque al que se aplica la MIP, pero se puede definir y usar un núcleo independiente optimizado para el bloque al que se aplica la MIP.
En este caso, dado que se usa un número reducido de núcleos de LFNST con respecto al bloque al que se aplica la MIP en comparación con el del bloque al que no se aplica la MIP, puede reducirse la sobrecarga debida a la señalización de la información de índice de LFNST y puede reducirse la complejidad.
Por ejemplo, la información de índice de LFNST puede usar el método de conversión a binario como en la siguiente tabla.
[Tabla 9]
Con referencia a la Tabla 9, por ejemplo, el elemento de sintaxis st_idx puede convertirse a Rice truncado (TR) en caso de que la MIP no se aplique al bloque correspondiente, en el caso de intra_mip_flag[][]==false, o en caso de que el valor del elemento de sintaxis intra_mip_flag es 0. En este caso, por ejemplo, cMax, que es un parámetro de entrada, puede tener un valor de 2 y cRiceParam puede tener un valor de 0.
Además, por ejemplo, el elemento de sintaxis st_idx se puede convertir a binario a una longitud fija (FL) en caso de que la MIP se aplique al bloque correspondiente, en el caso de intra_mip_flag[][]==true, o en caso de que el valor del elemento de sintaxis intra_mip_flag es 1. En este caso, por ejemplo, el cMax que es un parámetro de entrada puede tener un valor de 1.
En este punto, el elemento de sintaxis st_idx puede representar la información de índice de LFNST y puede representarse como el elemento de sintaxis lfnst_idx.
Mientras tanto, en otra realización del presente documento, la información relacionada con LFNST puede señalarse con respecto al bloque al que se aplica la MIP.
Por ejemplo, la información de índice de LFNST puede incluir un elemento de sintaxis y puede representar información sobre si se aplica LFNST basándose en un elemento de sintaxis e información sobre el tipo de núcleo de transformada que se usa para LFNST. En este caso, la información de índice de LFNST se puede representar como, por ejemplo, el elemento de sintaxis st_idx o el elemento de sintaxis lfnst_idx.
Además, por ejemplo, la información de índice de LFNST puede incluir uno o más elementos de sintaxis, y puede representar información sobre si se aplica LFNST basándose en uno o más elementos de sintaxis e información sobre el tipo de núcleo de transformada que se usa para LFNST. Por ejemplo, la información de índice de LFNST puede incluir dos elementos de sintaxis. En este caso, la información de índice de LFNST puede incluir un elemento de sintaxis que representa información sobre si se aplica LFNST y un elemento de sintaxis que representa información sobre el tipo de núcleo de transformada que se usa para la LFNST. Por ejemplo, la información sobre si se aplica la LFNST puede representarse como un indicador de LFNST y puede representarse como un elemento de sintaxis st_flag o un elemento de sintaxis lfnst_flag. Además, por ejemplo, la información sobre el tipo de núcleo de transformada que se usa para la LFNST se puede representar como el indicador de índice de núcleo de transformada y se puede representar como un elemento de sintaxis st_idx_flag, un elemento de sintaxis st_kernel_flag, un elemento de sintaxis lfnst_idx_flag o un elemento de sintaxis lfnst_kernel_flag. Por ejemplo, en caso de que la información de índice de LFNST incluya uno o más elementos de sintaxis, como se ha descrito anteriormente, la información de índice de LFNST puede denominarse información relacionada con LFNST.
Por ejemplo, la información relacionada con LFNST (por ejemplo, elemento de sintaxis st_flag o elemento de sintaxis st_idx_flag) puede incluirse como en la Tabla 10 a continuación.
[Tabla 10]
Mientras tanto, el bloque al que se aplica la MIP puede usar un número diferente de transformadas de LFNST (núcleos) que el del bloque al que no se aplica la MIP. Por ejemplo, el bloque al que se aplica la MIP puede usar únicamente un núcleo de transformada de LFNST. Por ejemplo, el núcleo de transformada de LFNST puede ser uno de los núcleos de LFNST que se aplican al bloque al que no se aplica la MIP. Además, en lugar de usar el núcleo de LFNST existente con respecto al bloque al que se aplica la MIP, se puede definir y usar un núcleo separado optimizado para el bloque al que se aplica la MIP.
En este caso, la información (por ejemplo, indicador de índice de núcleo de transformada) sobre el tipo de núcleo de transformada que se usa para la LFNST entre la información relacionada con la LFNST puede señalizarse selectivamente dependiendo de si se aplica la MIP y la información relacionada con LFNST en este momento puede incluirse, por ejemplo, como en la Tabla 11 a continuación.
[Tabla 11]
En otras palabras, haciendo referencia a la Tabla 11, la información (o elemento de sintaxis st_idx_flag) sobre el tipo de núcleo de transformada que se usa para LFNST puede incluirse basándose en la información (o elemento de sintaxis intra_mip_flag) sobre si se ha aplicado la MIP al bloque correspondiente. Además, por ejemplo, el elemento de sintaxis st_idx_flag puede señalizarse a !intra_mip_flag en caso de que la MIP no se aplique al bloque correspondiente.
Por ejemplo, en la Tabla 10 o la Tabla 11, la información o la semántica representada por el elemento de sintaxis st_flag o el elemento de sintaxis st_idx_flag puede ser como en la siguiente tabla.
[Tabla 12]____________________________________________________________________________________ st_flag[ x0 ][ y0 ] especifica si se aplica o no la transformada secundaria. st_flag[ x0 ][ y0 ] igual a 0 especifica que no se aplica la transformada secundaria. Los índices de serie x0, y0 especifican la ubicación (x0, y0) de la muestra superior izquierda del bloque de transformada considerado con relación a la muestra superior izquierda de la imagen.
Cuando st flag[ x0 ][ y0 ] no está presente, se infiere que st idx[ x0 ][ y0 ] es igual a 0._________________ st_idx_flag[ x0 ][ y0 ] especifica qué núcleo de transformada secundaria se aplica entre dos núcleos candidatos en un conjunto de transformadas seleccionado. Los índices de serie x0, y0 especifican la ubicación (x0, y0) de la muestra superior izquierda del bloque de transformada considerado con relación a la muestra superior izquierda de la imagen.
Cuando st idx flag[ x0 ][ y0 ] no está presente, se infiere que st idx[ x0 ][ y0 ] es igual a 0.______________
Por ejemplo, el elemento de sintaxis st_flag puede representar información sobre si se aplica la transformada secundaria. Por ejemplo, si el valor del elemento de sintaxis st_flag es 0, puede representar que no se aplica la transformada secundaria, mientras que si es 1, puede representar que se aplica la transformada secundaria. Por ejemplo, el elemento de sintaxis st_idx_flag puede representar información sobre el núcleo de transformada secundaria aplicado de dos núcleos candidatos en el conjunto de transformadas seleccionado.
Por ejemplo, para la información relacionada con LFNST, se puede usar un método de conversión a binario como el de la siguiente tabla.
[Tabla 13]
Haciendo referencia a la Tabla 13, por ejemplo, el elemento de sintaxis st_flag se puede convertir a binario a FL. Por ejemplo, en este caso, cMax, que es el parámetro de entrada, puede tener un valor de 1. Además, por ejemplo, el elemento de sintaxis st_idx_flag puede convertirse a binario a FL. Por ejemplo, en este caso, el cMax, que es el parámetro de entrada, puede tener un valor de 1.
Por ejemplo, haciendo referencia a la Tabla 10 o a la Tabla 11, un descriptor del elemento de sintaxis st_flag o del elemento de sintaxis st_idx_flag puede ser ae(v). En este punto, ae(v) puede representar una codificación por entropía aritmética adaptativa al contexto. Además, el elemento de sintaxis cuyo descriptor es ae(v) puede ser un elemento de sintaxis codificado por entropía aritmética adaptable al contexto. Es decir, la codificación por entropía aritmética adaptativa al contexto se puede aplicar a la información relacionada con LFNST (por ejemplo, elemento de sintaxis st_flag o elemento de sintaxis st_idx_flag). Además, la información relacionada con LFNST (por ejemplo, elemento de sintaxis st_flag o el elemento de sintaxis st_idx_flag) puede ser información o un elemento de sintaxis al que se aplica la codificación por entropía aritmética adaptativa al contexto. Además, la información relacionada con LFNST (por ejemplo, binarios de una cadena de binarios del elemento de sintaxis st_flag o el elemento de sintaxis st_idx_flag) puede codificarse/decodificarse basándose en la CABAC descrita anteriormente y similares. En este punto, la codificación por entropía aritmética adaptativa al contexto se puede representar como codificación basada en modelo de contexto, codificación de contexto o codificación normal.
Por ejemplo, el incremento del índice de contexto (ctxInc) de la información relacionada con LFNST (por ejemplo, el elemento de sintaxis st_flag o el elemento de sintaxis st_idx_flag) o ctxInc de acuerdo con la ubicación del binario del elemento de sintaxis st_flag o el elemento de sintaxis st_idx_flag puede asignarse o determinarse como en Tabla 14. Además, como en la Tabla 14, se puede seleccionar un modelo de contexto basándose en el ctxInc de acuerdo con la ubicación del binario del elemento de sintaxis st_flag o el elemento de sintaxis st_idx_flag que se asigna o determina como en la Tabla 14.
[Tabla 14]
Haciendo referencia a la Tabla 14, por ejemplo, (el binario de la cadena de binarios o el primer binario de) el elemento de sintaxis st_flag puede usar dos modelos de contexto (o ctxIdx), y se puede seleccionar un modelo de contexto basándose en que ctxInc tenga un valor de 0 o 1. Además, por ejemplo, se puede aplicar codificación por derivación a (el binario de la cadena de binarios o el primer binario de) el elemento de sintaxis st_idx_flag. Además, la codificación puede realizarse aplicando una distribución de probabilidad regular.
Por ejemplo, el ctxInc de (el binario de la cadena de binarios o el primer binario de) el elemento de sintaxis st_flag se puede determinar basándose en la Tabla 15 a continuación.
Tabla 15]____________________________________________________________________________________ 9.5.4.2.8 Proceso de derivación de ctxInc para el elemento de sintaxis st_flag
Las entradas a este proceso son el índice del componente de color cIdx, la ubicación de luma o croma ( x0. y0 ) que especifica la muestra superior izquierda del bloque de codificación de luma o croma actual en relación con la muestra superior izquierda de la imagen actual dependiendo de cIdx, el tipo de árbol treeType y el índice de selección de transformada múltiple tu_mts_idx[ x0 ][ y0 ]. El resultado de este proceso es ctxInc.
La asignación de ctxInc se especifica de la siguiente manera:
ctxInc = ( tu mts idx[ x0 ][ y0 ] = 0 && treeType != SINGLE TREE ) ? 1 : 0__________________________
Haciendo referencia a la Tabla 15, por ejemplo, el ctxInc de (el binario de la cadena de binarios o el primer binario de) el elemento de sintaxis st_flag se puede determinar basándose en un índice de MTS (o elemento de sintaxis tu_mts_idx) o información de tipo de árbol (treeType). Por ejemplo, ctxInc se puede derivar como 1 en caso de que el valor del índice de MTS sea 0 y el tipo de árbol no sea un árbol único. Además, ctxlnc se puede derivar como 0 en caso de que el valor del índice de MTS no sea 0 o el tipo de árbol sea un árbol único.
En este caso, dado que se usa un número reducido de núcleos de LFNST con respecto al bloque al que se aplica la MIP en comparación con el que no se aplica la MIP, puede reducirse la sobrecarga debida a la señalización de la información de índice de LFNST y puede reducirse la complejidad.
Mientras tanto, en otra realización del presente documento, el núcleo de LFNST puede inducirse y usarse con respecto al bloque al que se aplica la MIP. Es decir, el núcleo LFNST puede inducirse sin señalizar información por separado en el núcleo de LFNST. Además, el aparato de codificación puede generar el flujo de bits codificando información de imagen excluyendo la información de índice de LFNST para transformar el bloque al que se aplica la MIP y la información sobre (el tipo de) núcleo de transformada que se está demandando para la LFNST, y el aparato de decodificación puede analizar o decodificar el flujo de bits, inducir y obtener la información de índice de LFNST para transformar el bloque al que se aplica la MIP y la información sobre el núcleo de transformada que se usa para la LFNST, y realizar un proceso de transformada del bloque basándose en esto.
Es decir, la información de índice de LFNST para el bloque correspondiente o la información sobre el núcleo de transformada usado para la LFNST no puede decodificarse, pero a través de un proceso de inducción, puede determinarse el índice para dividir las transformadas que constituyen el conjunto de transformadas de LFNST. Además, a través del proceso de inducción, se puede determinar que se usa un núcleo de transformada optimizado separado para el bloque al que se aplica la MIP. En este caso, se puede seleccionar el núcleo LFNST óptimo con respecto al bloque al que se aplica la MIP, y se puede reducir la cantidad de bits para codificarlo.
Por ejemplo, la información de índice de LFNST o la información sobre el núcleo de transformada que se usa para la LFNST se puede inducir basándose en al menos una de la información de índice de línea de referencia para intra predicción, información de modo de intra predicción, información de tamaño de bloque o información de aplicación/no aplicación de MIP.
En las realizaciones descritas anteriormente del presente documento, la conversión a binario de longitud fija (FL) puede representar un método de conversión a binario con una longitud fija tal como un número específico de bits, y el número específico de bits puede estar predefinido o puede representarse basándose en el cMax. La conversión a binario unaria truncada (TU) puede representar un método de conversión a binario con una longitud variable sin anexar 0 en caso de que el número de símbolos, que se pretende expresar usando 1, de los cuales el número es tanto como el número de símbolos y un 0, sea igual a la longitud máxima, y la longitud máxima se puede representar basándose en cMax. La conversión a binario de Rice truncado (TR) puede representar un método de conversión a binario en la forma en que el prefijo y el sufijo están conectados entre sí, tal como TU FL, usando la longitud máxima y la información de desplazamiento, y en caso de que la información de desplazamiento tenga un valor de 0, puede ser igual a la TU. En este punto, la longitud máxima se puede representar basándose en cMax y la información de desplazamiento se puede representar basándose en cRiceParam.
Las Figuras 11 y 12 ilustran esquemáticamente un método de codificación de vídeo/imágenes y un ejemplo de componentes relacionados de acuerdo con la realización o realizaciones del presente documento.
El método desvelado en la Figura 11 puede realizarse por un aparato de codificación desvelado en la Figura 2 o en la Figura 12. Específicamente, por ejemplo, S 1100 a S1120 de la Figura 11 pueden realizarse por el predictor 220 del aparato de codificación de la Figura 12, y S1130 a S1150 de la Figura 11 pueden realizarse por el procesador 230 residual del aparato de codificación de la Figura 12, y S1160 de la Figura 11 puede realizarse por el codificador 240 por entropía del aparato de codificación de la Figura 12. Además, aunque no se ilustra en la Figura 11, el predictor 220 del aparato de codificación en la Figura 12 puede derivar muestras de predicción o información relacionada con la predicción, el procesador 230 residual del aparato de codificación puede derivar información residual de las muestras originales o muestras de predicción, y el codificador 240 por entropía del aparato de codificación puede generar un flujo de bits a partir de la información residual o de la información relacionada con la predicción. El método desvelado en la Figura 11 puede incluir las realizaciones descritas anteriormente del presente documento.
Haciendo referencia a la Figura 11, el aparato de codificación puede determinar un tipo de intra predicción del bloque actual (S1100), y puede generar información de tipo de intra predicción para el bloque actual basándose en el tipo de intra predicción (S1110). Por ejemplo, el aparato de codificación puede determinar el tipo de intra predicción del bloque actual teniendo en cuenta un coste de tasa-distorsión (RD). La información de tipo de intra predicción puede representar información sobre si aplicar un tipo de intra predicción normal usando una línea de referencia adyacente al bloque actual, una línea de múltiples referencias (MRL) usando una línea de referencia que no es adyacente al bloque actual, intra subparticiones (ISP) que realizan subparticiones para el bloque actual, o intra predicción basada en matriz (MIP) que usa una matriz.
Por ejemplo, la información del tipo de intra predicción puede incluir un indicador de MIP que representa si se aplica la MIP al bloque actual. Además, por ejemplo, la información de tipo de intra predicción puede incluir información relacionada con intra subparticiones (ISP) sobre la subpartición de ISP para el bloque actual. Por ejemplo, la información relacionada con la ISP puede incluir un indicador de ISP que representa si se aplica la ISP al bloque actual o un indicador de partición de ISP que representa una dirección de partición. Además, por ejemplo, la información del tipo de intra predicción puede incluir el indicador de MIP y la información relacionada con la ISP. Por ejemplo, el indicador de MIP puede representar un elemento de sintaxis intra_mip_flag. Además, por ejemplo, el indicador de ISP puede representar un elemento de sintaxis intra_subpartitions_mode_flag, y el indicador de partición de ISP puede representar un elemento de sintaxis intra_subpartitions_split_flag.
Además, aunque no se ilustra en la Figura 11, por ejemplo, el aparato de codificación puede determinar el modo de intra predicción para el bloque actual, y puede generar información de intra predicción para el bloque actual basándose en el modo de intra predicción. Por ejemplo, el aparato de codificación puede determinar el modo de intra predicción teniendo en cuenta el coste de RD. La información de modo de intra predicción puede representar el modo de intra predicción que se va a aplicar al bloque actual entre los modos de intra predicción. Por ejemplo, los modos de intra predicción pueden incluir los modos de intra predicción n° 0 a n° 66. Por ejemplo, el modo de intra predicción n° 0 puede representar un modo plano, y el modo de intra predicción n° 1 puede representar un modo de CC. Además, los modos de intra predicción n° 2 a n° 66 pueden representarse como modos de intra predicción direccionales o angulares, y pueden representar direcciones a las que se hará referencia. Además, los modos de intra predicción n° 0 y n° 1 pueden representarse como modos de intra predicción no direccionales o no angulares. La explicación detallada de los mismos se ha hecho con referencia a la Figura 5.
Por ejemplo, el aparato de codificación puede generar información relacionada con la predicción para el bloque actual, y la información relacionada con la predicción puede incluir información de modo de intra predicción y/o información del tipo de intra predicción.
El aparato de codificación puede derivar muestras de predicción del bloque actual basándose en el tipo de intra predicción (S1120). Además, por ejemplo, el aparato de codificación puede generar las muestras de predicción basándose en el modo de intra predicción y/o el tipo de intra predicción. Además, el aparato de codificación puede generar las muestras de predicción basándose en la información relacionada con la predicción.
El aparato de decodificación puede generar muestras reconstruidas para el bloque actual basándose en las muestras de predicción (S1130). Por ejemplo, el aparato de codificación puede generar las muestras residuales basándose en las muestras originales (por ejemplo, señal de imagen de entrada) y las muestras de predicción. Además, por ejemplo, el aparato de codificación puede generar las muestras residuales basándose en una diferencia entre las muestras originales y las muestras de predicción.
El aparato de codificación puede derivar coeficientes de transformada para el bloque actual basándose en las muestras residuales (S1140). Por ejemplo, el aparato de codificación puede derivar los coeficientes de transformada realizando una transformada primaria basándose en las muestras residuales. Además, por ejemplo, el aparato de codificación puede derivar coeficientes de transformada temporales realizando la transformada primaria basándose en las muestras residuales, y puede derivar los coeficientes de transformada aplicando la LFNST a los coeficientes de transformada temporales. Por ejemplo, en caso de que se aplique la LFNST, el aparato de codificación puede generar la información de índice de LFNST. Es decir, el aparato de codificación puede generar la información de índice de LFNST basándose en el núcleo de transformada usado para derivar los coeficientes de transformada.
El aparato de codificación puede generar información relacionada con los residuos basándose en los coeficientes de transformada (S1150). Por ejemplo, el aparato de codificación puede derivar coeficientes de transformada cuantificados realizando una cuantificación basándose en los coeficientes de transformada. Además, el aparato de codificación puede generar información sobre los coeficientes de transformada cuantificados basándose en los coeficientes de transformada cuantificados. Además, la información relacionada con los residuos puede incluir información sobre los coeficientes de transformada cuantificados.
El aparato de codificación puede codificar la información de tipo de intra predicción y la información relacionada con los residuos (S1160). Por ejemplo, la información relacionada con los residuos puede incluir la información sobre los coeficientes de transformada cuantificados como se ha descrito anteriormente. Además, por ejemplo, la información relacionada con los residuos puede incluir la información de índice de LFNST. Además, por ejemplo, la información relacionada con los residuos puede no incluir la información de índice de LFNST.
Por ejemplo, la información relacionada con los residuos puede incluir la información de índice de LFNST que representa información sobre una transformada no separable para coeficientes de transformada de baja frecuencia del bloque actual. Además, por ejemplo, la información relacionada con los residuos puede incluir la información de índice de LFNST basándose en el indicador de MIP o el tamaño del bloque actual. Además, por ejemplo, la información relacionada con los residuos puede incluir la información de índice de LFNST basándose en el indicador de MIP o la información del bloque actual. En este punto, la información sobre el bloque actual puede incluir al menos uno del tamaño del bloque actual, información de estructura de árbol que representa un árbol único o un árbol doble, un indicador habilitada para LFNST o información relacionada con la ISP. Por ejemplo, el indicador de MIP puede ser una de una pluralidad de condiciones para determinar si la información relacionada con los residuos incluye la información de índice de LFNST, y por otras condiciones, tales como el tamaño del bloque actual, además del indicador de MIP, la información relacionada con los residuos puede incluir la información de índice de LFNST. Sin embargo, en lo sucesivo en el presente documento, se dará una explicación acerca del indicador de MIP. En este punto, la información de índice de LFNST puede representarse como información de índice de transformada. Además, la información de índice de LFNST puede representarse como el elemento de sintaxis st_idx o el elemento de sintaxis lfnst_idx.
Por ejemplo, la información relacionada con los residuos puede incluir la información de índice de LFNST basándose en el indicador de MIP que representa que no se aplica la MIP. Además, por ejemplo, la información relacionada con los residuos puede no incluir la información de índice de LFNST basándose en el indicador de MIP que representa que se aplica la MIP. Es decir, en caso de que el indicador de MIP represente que se aplica la MIP al bloque actual (por ejemplo, en caso de que el valor del elemento de sintaxis intra_mip_flag sea 1), la información relacionada con los residuos puede no incluir la información de índice de LFNST, y en caso de que el indicador de MIP represente que no se aplica la MIP al bloque actual (por ejemplo, en caso de que el valor del elemento de sintaxis intra_mip_flag sea 0), la información relacionada con los residuos puede incluir la información de índice de LFNST.
Además, por ejemplo, la información relacionada con los residuos puede incluir la información de índice de LFNST basándose en el indicador de MIP y la información relacionada con la ISP. Por ejemplo, en caso de que el indicador de MIP represente que no se aplica la MIP al bloque actual (por ejemplo, en caso de que el valor del elemento de sintaxis intra_mip_flag sea 0), la información relacionada con los residuos puede incluir la información de índice de LFNST con referencia a la información relacionada con la ISP (IntraSubPartitionsSplitType). En este punto, IntraSubPartitionsSplitType puede representar que no se aplica la ISP (ISP_NO_SPLIT), que se aplica la ISP en dirección horizontal (ÍSp_HOR_s Pl IT) o que se aplica la ISP en dirección vertical (ISP_VER_SPLIT), y esto puede derivarse basándose en el indicador de ISP o el indicador de partición de ISP.
Por ejemplo, como el indicador de MIP representa que la MIP se aplica al bloque actual, la información de índice de LFNST puede inducirse o derivarse para que se use y, en este caso, la información relacionada con los residuos puede no incluir la información de índice de LFNST. Es decir, el aparato de codificación puede no señalizar la información de índice de LFNST. Por ejemplo, la información de índice de LFNST puede inducirse o derivarse para usarse basándose en al menos una de la información de índice de la línea de referencia para el bloque actual, la información de modo de intra predicción del bloque actual, la información de tamaño del bloque actual y el indicador de MIP.
Además, por ejemplo, la información de índice de LFNST puede incluir un indicador de LFNST que representa si se aplica una transformada no separable para los coeficientes de transformada de baja frecuencia del bloque actual y/o un indicador de índice del núcleo de transformada que representa el núcleo de transformada aplicado al bloque actual entre los candidatos de núcleo de transformada. Es decir, aunque la información de índice de LFNST puede representar la información sobre la transformada no separable para los coeficientes de transformada de baja frecuencia del bloque actual basándose en un elemento de sintaxis o una pieza de información, también puede representar la información basándose en dos elementos de sintaxis o dos piezas de información. Por ejemplo, el indicador de LFNST se puede representar como el elemento de sintaxis st_flag o el elemento de sintaxis lfnst_flag, y el indicador de índice de núcleo de transformada se puede representar como el elemento de sintaxis st_idx_flag, el elemento de sintaxis st_kernel_flag, el elemento de sintaxis lfnst_idx_flag o el elemento de sintaxis lfnst_kernel_flag. En este punto, el indicador de índice del núcleo de transformada puede incluirse en la información de índice de LFNST basándose en el indicador de LFNST que representa que se aplica la transformada no separable y el indicador de MIP que representa que no se aplica la MIP. Es decir, en caso de que el indicador de LFNST represente que se aplica la transformada no separable y el indicador de MIP represente que se aplica la MIP, la información de índice de LFNST puede incluir el indicador de índice del núcleo de transformada.
Por ejemplo, como el indicador de MIP representa que se aplica la MIP al bloque actual, el indicador de LFNST y el indicador de índice del núcleo de transformada pueden inducirse o derivarse para usarse y, en este caso, la información relacionada con los residuos puede no incluir el indicador de LFNST y el indicador de índice de núcleo de transformada. Es decir, el aparato de codificación puede no señalizar el indicador de LFNST y el indicador de índice de núcleo de transformada. Por ejemplo, el indicador de LFNST y el indicador de índice de núcleo de transformada pueden inducirse o derivarse para usarse basándose en al menos una de la información de índice de la línea de referencia para el bloque actual, la información de modo de intra predicción del bloque actual, la información de tamaño del bloque actual y el indicador de MIP.
Por ejemplo, en caso de que la información relacionada con los residuos incluya la información de índice de LFNST, la información de índice de LFNST puede representarse a través de conversión a binario. Por ejemplo, la información de índice de LFNST (por ejemplo, el elemento de sintaxis st_idx o el elemento de sintaxis lfnst_idx) se puede representar a través de conversión a binario basada en Rice truncado (TR) basándose en el indicador de MIP que representa que no se aplica la MIP, y la información de índice de LFNST (por ejemplo, el elemento de sintaxis st_idx o el elemento de sintaxis lfnst_idx) se puede representar a través de conversión a binario basada en longitud fija (FL) basándose en el indicador de MIP que representa que se aplica la MIP. Es decir, en caso de que el indicador de MIP represente que no se aplica la MIP al bloque actual (por ejemplo, en caso de que el elemento de sintaxis intra_mip_flag sea 0 o falso), la información de índice de LFNST (por ejemplo, el elemento de sintaxis st_idx o el elemento de sintaxis lfnst_idx) se puede representar a través de la conversión a binario basada en TR, y en caso de que el indicador de MIP represente que se aplica la MIP al bloque actual (por ejemplo, en caso de que el elemento de sintaxis intra_mip_flag sea 1 o verdadero), la información de índice de LFNST (por ejemplo, el elemento de sintaxis st_idx o el elemento de sintaxis lfnst_idx) se puede representar a través de la conversión a binario basada en FL.
Además, por ejemplo, en el caso de que la información relacionada con los residuos incluya la información de índice de LFNST, y la información de índice de LFNST incluya el indicador de LFNST y el indicador de índice de núcleo de transformada, el indicador de LFNST y el indicador del índice del núcleo de transformada se pueden representar a través de la conversión a binario basada en longitud fija (FL).
Por ejemplo, la información de índice de LFNST puede representarse como (un binario de) una cadena de enlace mediante la conversión a binario descrita anteriormente y, al codificarla, se puede generar un bit, una cadena de bits o un flujo de bits.
Por ejemplo, (el primer) binario de la cadena de binarios del indicador de LFNST puede codificarse basándose en la codificación de contexto, y la codificación de contexto puede realizarse basándose en el valor de incremento del índice de contexto para el indicador de LFNST. En este caso, la codificación de contexto es una codificación que se realiza basándose en un modelo de contexto y puede denominarse codificación normal. Además, el modelo de contexto puede representarse mediante por el índice de contexto ctsIdx, y el índice de contexto puede representarse basándose en el incremento del índice de contexto ctxInc y el desplazamiento del índice de contexto ctxIdxOffset. Por ejemplo, el valor del incremento del índice de contexto se puede representar como uno de los candidatos que incluyen 0 y 1. Por ejemplo, el valor del incremento del índice de contexto se puede determinar basándose en el índice de MTS (por ejemplo, el elemento de sintaxis mts_idx o el elemento de sintaxis tu_mts_idx) que representa el conjunto de núcleos de transformada que se va a usar para el bloque actual entre los conjuntos de núcleos de transformada y la información de tipo de árbol que representa la estructura de partición del bloque actual. En este punto, la información de tipo de árbol puede representar un árbol único que representa que las estructuras de partición del componente luma y el componente croma del bloque actual son iguales entre sí o un árbol doble que representa que las estructuras de partición del componente luma y el componente croma del bloque actual son diferentes entre sí.
Por ejemplo, (el primer) binario de la cadena de binarios del indicador de índice de núcleo de transformada puede codificarse basándose en la codificación por derivación. En este punto, la codificación por derivación puede representar que se realiza la codificación de contexto basándose en la distribución de probabilidad regular, y la eficiencia de codificación se puede mejorar a través de la omisión del procedimiento de actualización de codificación de contexto.
Además, aunque no se ilustra en la Figura 11, por ejemplo, el aparato de codificación puede generar muestras reconstruidas basándose en las muestras residuales y las muestras de predicción. Además, se puede derivar un bloque reconstruido y una imagen reconstruida basándose en las muestras reconstruidas.
Por ejemplo, el aparato de codificación puede generar el flujo de bits o información codificada codificando información de imagen que incluye todo o parte de las piezas de información (o elementos de sintaxis) descritas anteriormente. Además, el aparato de codificación puede emitir la información en forma de un flujo de bits. Además, el flujo de bits o la información codificada se puede transmitir al aparato de decodificación a través de una red o un medio de almacenamiento. Además, el flujo de bits o la información codificada se pueden almacenar en un medio de almacenamiento legible por ordenador, y el flujo de bits o la información codificada se pueden generar mediante el método de codificación de imágenes descrito anteriormente.
Las Figuras 13 y 14 ilustran esquemáticamente un método de decodificación de vídeo/imágenes y un ejemplo de componentes relacionados de acuerdo con la realización o realizaciones del presente documento.
El método desvelado en la Figura 13 puede realizarse por el aparato de decodificación desvelado en la Figura 3 o en la Figura 14. Específicamente, por ejemplo, S1300 de la Figura 13 puede realizarse mediante el decodificador 310 por entropía del aparato de decodificación de la Figura 14, y S1310 y S1320 de la Figura 13 pueden realizarse por el procesador 320 residual del aparato de decodificación de la Figura 14. Además, aunque no se ilustra en la Figura 13, el decodificador 310 por entropía del aparato de decodificación de la Figura 14 puede derivar información relacionada con la predicción o información residual del flujo de bits, el procesador 320 residual del aparato de decodificación puede derivar muestras residuales de la información residual, el predictor 330 del aparato de decodificación puede derivar muestras de predicción de la información relacionada con la predicción, y el sumador 340 del aparato de decodificación puede derivar un bloque reconstruido o una imagen reconstruida a partir de las muestras residuales o las muestras de predicción. El método desvelado en la Figura 13 puede incluir las realizaciones descritas anteriormente del presente documento.
Haciendo referencia a la Figura 13, el aparato de decodificación puede obtener información de tipo de intra predicción para el bloque actual e información relacionada con los residuos del flujo de bits (S1300). Por ejemplo, el aparato de decodificación puede obtener la información de tipo de intra predicción o información relacionada con los residuos analizando o decodificando el flujo de bits. En este punto, el flujo de bits puede denominarse información codificada (imagen).
Por ejemplo, el aparato de decodificación puede obtener información relacionada con la predicción del flujo de bits, y la información relacionada con la predicción puede incluir información de modo de intra predicción y/o información del tipo de intra predicción. Por ejemplo, el aparato de decodificación puede generar muestras de predicción para el bloque actual.
La información de modo de intra predicción puede representar el modo de intra predicción que se va a aplicar al bloque actual entre los modos de intra predicción. Por ejemplo, los modos de intra predicción pueden incluir los modos de intra predicción n° 0 a n° 66. Por ejemplo, el modo de intra predicción n° 0 puede representar un modo plano, y el modo de intra predicción n° 1 puede representar un modo de CC. Además, los modos de intra predicción n° 2 a n° 66 pueden representarse como modos de intra predicción direccionales o angulares, y pueden representar direcciones a las que se hará referencia. Además, los modos de intra predicción n° 0 y n° 1 pueden representarse como modos de intra predicción no direccionales o no angulares. La explicación detallada de los mismos se ha hecho con referencia a la Figura 5.
Además, la información de tipo de intra predicción puede representar información sobre si aplicar un tipo de intra predicción normal usando una línea de referencia adyacente al bloque actual, una línea de múltiples referencias (MRL) usando una línea de referencia que no es adyacente al bloque actual, intra subparticiones (ISP) que realizan subparticiones para el bloque actual, o intra predicción basada en matriz (MIP) que usa una matriz.
Por ejemplo, el aparato de decodificación puede obtener información relacionada con los residuos del flujo de bits. En este punto, la información relacionada con los residuos puede representar información que se usa para derivar muestras residuales, y puede incluir información sobre las muestras residuales, información relacionada con la transformada (inversa) y/o información relacionada con la cuantificación (inversa). Por ejemplo, la información relacionada con los residuos puede incluir información sobre coeficientes de transformada cuantificados.
Por ejemplo, la información del tipo de intra predicción puede incluir un indicador de MIP que representa si se aplica la MIP al bloque actual. Además, por ejemplo, la información de tipo de intra predicción puede incluir información relacionada con intra subparticiones (ISP) sobre la subpartición de ISP para el bloque actual. Por ejemplo, la información relacionada con la ISP puede incluir un indicador de ISP que representa si se aplica la ISP al bloque actual o un indicador de partición de ISP que representa una dirección de partición. Además, por ejemplo, la información del tipo de intra predicción puede incluir el indicador de MIP y la información relacionada con la ISP. Por ejemplo, el indicador de MIP puede representar un elemento de sintaxis intra_mip_flag. Además, por ejemplo, el indicador de ISP puede representar un elemento de sintaxis intra_subpartitions_mode_flag, y el indicador de partición de ISP puede representar un elemento de sintaxis intra_subpartitions_split_flag.
Por ejemplo, la información relacionada con los residuos puede incluir la información de índice de transformada no separable de baja frecuencia (LFNST) que representa información sobre una transformada no separable para coeficientes de transformada de baja frecuencia del bloque actual. Además, por ejemplo, la información relacionada con los residuos puede incluir la información de índice de LFNST basándose en el indicador de MIP o el tamaño del bloque actual. Además, por ejemplo, la información relacionada con los residuos puede incluir la información de índice de LFNST basándose en el indicador de MIP o la información del bloque actual. En este punto, la información sobre el bloque actual puede incluir al menos uno del tamaño del bloque actual, información de estructura de árbol que representa un árbol único o un árbol doble, un indicador habilitada para LFNST o información relacionada con la ISP. Por ejemplo, el indicador de MIP puede ser una de una pluralidad de condiciones para determinar si la información relacionada con los residuos incluye la información de índice de LFNST, y por otras condiciones, tales como el tamaño del bloque actual, además del indicador de MIP, la información relacionada con los residuos puede incluir la información de índice de LFNST. Sin embargo, en lo sucesivo en el presente documento, se dará una explicación acerca del indicador de MIP. En este punto, la información de índice de LFNST puede representarse como información de índice de transformada. Además, la información de índice de LFNST puede representarse como el elemento de sintaxis st_idx o el elemento de sintaxis Ifnst_idx.
Por ejemplo, la información relacionada con los residuos puede incluir la información de índice de LFNST basándose en el indicador de MIP que representa que no se aplica la MIP. Además, por ejemplo, la información relacionada con los residuos puede no incluir la información de índice de LFNST basándose en el indicador de MIP que representa que se aplica la MIP. Es decir, en caso de que el indicador de MIP represente que se aplica la MIP al bloque actual (por ejemplo, en caso de que el valor del elemento de sintaxis intra_mip_flag sea 1), la información relacionada con los residuos puede no incluir la información de índice de LFNST, y en caso de que el indicador de MIP represente que no se aplica la MIP al bloque actual (por ejemplo, en caso de que el valor del elemento de sintaxis intra_mip_flag sea 0), la información relacionada con los residuos puede incluir la información de índice de LFNST.
Además, por ejemplo, la información relacionada con los residuos puede incluir la información de índice de LFNST basándose en el indicador de MIP y la información relacionada con la ISP. Por ejemplo, en caso de que el indicador de MIP represente que no se aplica la MIP al bloque actual (por ejemplo, en caso de que el valor del elemento de sintaxis intra_mip_flag sea 0), la información relacionada con los residuos puede incluir la información de índice de LFNST con referencia a la información relacionada con la ISP (IntraSubPartitionsSplitType). En este punto, IntraSubPartitionsSplitType puede representar que no se aplica la ISP (ISP_NO_SPLIT), que se aplica la ISP en dirección horizontal (ÍSp_HOR_s Pl IT) o que se aplica la ISP en dirección vertical (ISP_VER_SPLIT), y esto puede derivarse basándose en el indicador de ISP o el indicador de partición de ISP.
Por ejemplo, como el indicador de MIP representa que la MIP se aplica al bloque actual, la información de índice de LFNST puede inducirse o derivarse para usarse en caso de que la información relacionada con los residuos no incluya la información de índice de LFNST, es decir, en caso que no se señalice la información de índice de LFNST. Por ejemplo, la información de índice de LFNST se puede derivar basándose en al menos una de la información de índice de la línea de referencia para el bloque actual, la información de modo de intra predicción del bloque actual, la información de tamaño del bloque actual y el indicador de MIP.
Además, por ejemplo, la información de índice de LFNST puede incluir un indicador de LFNST que representa si se aplica una transformada no separable para los coeficientes de transformada de baja frecuencia del bloque actual y/o un indicador de índice del núcleo de transformada que representa el núcleo de transformada aplicado al bloque actual entre los candidatos de núcleo de transformada. Es decir, aunque la información de índice de LFNST puede representar la información sobre la transformada no separable para los coeficientes de transformada de baja frecuencia del bloque actual basándose en un elemento de sintaxis o una pieza de información, también puede representar la información basándose en dos elementos de sintaxis o dos piezas de información. Por ejemplo, el indicador de LFNST se puede representar como el elemento de sintaxis st_flag o el elemento de sintaxis lfnst_flag, y el indicador de índice de núcleo de transformada se puede representar como el elemento de sintaxis st_idx_flag, el elemento de sintaxis st_kernel_flag, el elemento de sintaxis lfnst_idx_flag o el elemento de sintaxis lfnst_kernel_flag. En este punto, el indicador de índice del núcleo de transformada puede incluirse en la información de índice de LFNST basándose en el indicador de LFNST que representa que se aplica la transformada no separable y el indicador de MIP que representa que no se aplica la MIP. Es decir, en caso de que el indicador de LFNST represente que se aplica la transformada no separable y el indicador de MIP represente que se aplica la MIP, la información de índice de LFNST puede incluir el indicador de índice del núcleo de transformada.
Por ejemplo, como el indicador de MIP representa que la MIP se aplica al bloque actual, el indicador de LFNST y el indicador de índice de núcleo de transformada pueden inducirse o derivarse en caso de que la información relacionada con los residuos no incluya el indicador de LFNST y el indicador de índice de núcleo de transformada, es decir, no se señalicen el indicador de LFNST y el indicador de índice de núcleo de transformada. Por ejemplo, el indicador de LFNST y el indicador de índice de núcleo de transformada pueden derivarse basándose en al menos una de la información de índice de la línea de referencia para el bloque actual, la información de modo de intra predicción del bloque actual, la información del tamaño del bloque actual y el indicador de MIP.
Por ejemplo, en caso de que la información relacionada con los residuos incluya la información de índice de LFNST, la información de índice de LFNST puede representarse a través de conversión a binario. Por ejemplo, la información de índice de LFNST (por ejemplo, el elemento de sintaxis st_idx o el elemento de sintaxis lfnst_idx) se puede derivar a través de conversión a binario basada en Rice truncado (TR) basándose en el indicador de MIP que representa que no se aplica la MIP, y la información de índice de LFNST (por ejemplo, el elemento de sintaxis st_idx o el elemento de sintaxis lfnst_idx) se puede derivar a través de conversión a binario basada en longitud fija (FL) basándose en el indicador de MIP que representa que se aplica la MIP. Es decir, en caso de que el indicador de MIP represente que no se aplica la MIP al bloque actual (por ejemplo, en caso de que el elemento de sintaxis intra_mip_flag sea 0 o falso), la información de índice de LFNST (por ejemplo, el elemento de sintaxis st_idx o el elemento de sintaxis lfnst_idx) se puede derivar a través de la conversión a binario basada en TR, y en caso de que el indicador de MIP represente que se aplica la MIP al bloque actual (por ejemplo, en caso de que el elemento de sintaxis intra_mip_flag sea 1 o verdadero), la información de índice de LFNST (por ejemplo, el elemento de sintaxis st_idx o el elemento de sintaxis lfnst_idx) se puede derivar a través de la conversión a binario basada en FL.
Además, por ejemplo, en el caso de que la información relacionada con los residuos incluya la información de índice de LFNST, y la información de índice de LFNST incluya el indicador de LFNST y el indicador de índice de núcleo de transformada, el indicador de LFNST y el indicador del índice del núcleo de transformada se pueden derivar a través de la conversión a binario basada en longitud fija (FL).
Por ejemplo, la información de índice de LFNST puede derivar candidatos a través de la conversión a binario descrita anteriormente, puede comparar binarios representados analizando o decodificando el flujo de bits con los candidatos y, a través de esto, se puede obtener la información de índice de LFNST.
Por ejemplo, (el primer) binario de la cadena de binarios del indicador de LFNST puede derivarse basándose en la codificación de contexto, y la codificación de contexto puede realizarse basándose en el valor de incremento del índice de contexto para el indicador de LFNST. En este caso, la codificación de contexto es una codificación que se realiza basándose en el modelo de contexto y puede denominarse codificación normal. Además, el modelo de contexto puede representarse por el índice de contexto ctsIdx, y el índice de contexto puede derivarse basándose en el incremento del índice de contexto ctxInc y el desplazamiento de índice de contexto ctxIdxOffset. Por ejemplo, el valor del incremento del índice de contexto se puede derivar como uno de los candidatos que incluyen 0 y 1. Por ejemplo, el valor del incremento del índice de contexto se puede derivar basándose en el índice de MTS (por ejemplo, el elemento de sintaxis mts_idx o el elemento de sintaxis tu_mts_idx) que representa el conjunto de núcleos de transformada que se va a usar para el bloque actual entre los conjuntos de núcleos de transformada y la información de tipo de árbol que representa la estructura de partición del bloque actual. En este punto, la información de tipo de árbol puede representar un árbol único que representa que las estructuras de partición del componente luma y el componente croma del bloque actual son iguales entre sí o un árbol doble que representa que las estructuras de partición del componente luma y el componente croma del bloque actual son diferentes entre sí.
Por ejemplo, (el primer) binario de la cadena de binarios del indicador de índice de núcleo de transformada puede derivarse basándose en la codificación por derivación. En este punto, la codificación por derivación puede representar que se realiza la codificación de contexto basándose en la distribución de probabilidad regular, y la eficiencia de codificación se puede mejorar a través de la omisión del procedimiento de actualización de codificación de contexto.
El aparato de decodificación puede derivar coeficientes de transformada para el bloque actual basándose en la información relacionada con los residuos (S1310). Por ejemplo, la información relacionada con los residuos puede incluir información sobre los coeficientes de transformada cuantificados, y el aparato de decodificación puede derivar los coeficientes de transformada cuantificados para el bloque actual basándose en la información sobre los coeficientes de transformada cuantificados. Por ejemplo, el aparato de decodificación puede derivar los coeficientes de transformada para el bloque actual realizando la descuantificación de los coeficientes de transformada cuantificados.
El aparato de decodificación puede generar las muestras residuales del bloque actual basándose en los coeficientes de transformada (S1320). Por ejemplo, el aparato de decodificación puede generar las muestras residuales a partir de los coeficientes de transformada basándose en la información de índice de LFNST. Por ejemplo, en caso de que la información de índice de LFNST esté incluida en la información relacionada con los residuos o se induzca o derive la información de índice de LFNST, la LFNST puede realizarse con respecto a los coeficientes de transformada de acuerdo con la información de índice de LFNST y pueden derivarse los coeficientes de transformada modificados. Posteriormente, el aparato de decodificación puede generar las muestras residuales basándose en los coeficientes de transformada modificados. Además, por ejemplo, en caso de que la información de índice de LFNST no esté incluida en la información relacionada con los residuos o se represente que no se realiza la LFNST, el aparato de decodificación puede no realizar la LFNST con respecto a los coeficientes de transformada, pero puede generar los muestras residuales basándose en los coeficientes de transformada.
Aunque no se ilustra en la Figura 13, por ejemplo, el aparato de decodificación puede generar las muestras reconstruidas basándose en las muestras de predicción y las muestras residuales. Además, por ejemplo, el bloque reconstruido y la imagen reconstruida pueden derivarse basándose en las muestras reconstruidas.
Por ejemplo, el aparato de decodificación puede obtener información de imagen que incluye todo o parte de las piezas de información (o elementos de sintaxis) descritas anteriormente decodificando el flujo de bits o la información codificada. Además, el flujo de bits o la información codificada se pueden almacenar en un medio de almacenamiento legible por ordenador y pueden provocar que se realice el método de decodificación descrito anteriormente.
Aunque los métodos se han descrito basándose en un diagrama de flujo en el que las etapas o bloques se enumeran en secuencia en las realizaciones descritas anteriormente, las etapas del presente documento no están limitadas a un cierto orden, y una cierta etapa puede realizarse en una etapa diferente o en un orden diferente o concurrentemente con respecto al descrito anteriormente. Además, los expertos en la técnica entenderán que las etapas de los diagramas de flujo no son exclusivas y que se puede incluir otra etapa en los mismos o se pueden eliminar una o más etapas del diagrama de flujo.
El método mencionado anteriormente de acuerdo con la presente descripción puede tener la forma de software, y el aparato de codificación y/o aparato de decodificación de acuerdo con 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 de salón, un dispositivo de visualización o similares.
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 se puede almacenar en una memoria y ejecutarse por un procesador. La memoria puede instalarse dentro o fuera del procesador y puede conectarse al procesador mediante diversos medios bien conocidos. El procesador puede incluir un circuito integrado específico de la aplicación (ASIC), otros conjuntos de chips, circuito lógico y/o 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 de acuerdo con la presente descripción pueden implementarse y realizarse 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, se puede almacenar información sobre la implementación (por ejemplo, información sobre instrucciones) o los algoritmos en un medio de almacenamiento digital.
Además, el aparato de decodificación y el aparato de codificación a los que se aplica 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, un cámara de vigilancia, un dispositivo de chat de vídeo y un dispositivo de comunicación en tiempo real tal como comunicación por vídeo, un dispositivo de envío por flujo continuo móvil, un medio de almacenamiento, una videocámara, un proveedor de servicios de vídeo bajo demanda (VoD), un dispositivo de vídeo de transmisión libre (OTT), un proveedor de servicio de envío por flujo continuo por Internet, un dispositivo de vídeo 3D, un dispositivo de Realidad Virtual (VR), un dispositivo de Realidad Aumentada (AR), un dispositivo de vídeo telefónico con imágenes, un terminal de vehículo (por ejemplo, un terminal de vehículo (incluido un vehículo autónomo), un terminal de avión o un terminal de barco) y un dispositivo de vídeo médico; y puede usarse para procesar una señal o datos de imagen. Por ejemplo, el dispositivo de vídeo OTT pueden incluir una consola de juegos, un reproductor de Blu-ray, una TV conectada a Internet, un sistema de cine en casa, un teléfono inteligente, un PC de tableta y una grabadora de vídeo digital (DVR).
Además, el método de procesamiento al que se aplica la realización o realizaciones del presente documento se puede producir en forma de un programa ejecutado por un ordenador y se puede almacenar en un medio de grabación legible por ordenador. Los datos multimedia que tienen una estructura de datos de acuerdo con la realización o realizaciones del presente documento también se pueden almacenar en el medio de grabación legible por ordenador. El medio de grabación legible por ordenador incluye todo tipo de dispositivos de almacenamiento y dispositivos de almacenamiento distribuidos en los que se almacenan datos legibles por ordenador. El medio de grabación legible por ordenador puede incluir, por ejemplo, un disco Blu-ray (BD), un bus serie universal (USB), una ROM, una PROM, una EPROM, una EEPROM, una RAM, un CD-<r>O<m>, 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 incorporados en forma de 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 alámbrica o inalámbrica.
Además, la realización o realizaciones del presente documento pueden realizarse como un producto de programa informático basado en un código de programa, y el código del programa puede ejecutarse en un ordenador de acuerdo con la realización o realizaciones del presente documento. El código de programa puede almacenarse en un soporte legible por ordenador.
La Figura 15 representa un ejemplo de un sistema de envío por flujo continuo de contenidos al que se puede aplicar la realización del presente documento.
Haciendo referencia a la Figura 15, el sistema de envío por flujo continuo de contenido al que se aplican las realizaciones del presente documento puede incluir en general un servidor de codificación, un servidor de envío por flujo continuo, un servidor web, un almacenamiento de medios, un dispositivo de usuario y un dispositivo de entrada multimedia.
El servidor de codificación funciona para comprimir en datos digitales la entrada de contenido desde los dispositivos de entrada multimedia, tal 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 envío por flujo continuo. Como otro ejemplo, en un caso en el que el dispositivo de entrada multimedia, tal como el teléfono inteligente, la cámara, la videocámara o similar, genere directamente un flujo de bits, se puede omitir el servidor de codificación.
El flujo de bits puede generarse mediante un método de codificación o un método de generación de flujo de bits al que se aplican las realizaciones del presente documento. Y el servidor de envío por flujo continuo puede almacenar temporalmente el flujo de bits en un proceso de transmisión o recepción del flujo de bits.
El servidor de envío por flujo continuo transmite datos multimedia al equipo del usuario basándose en la solicitud de un usuario a través del servidor web, que funciona como un instrumento que informa al usuario de qué servicio existe. Cuando el usuario solicita un servicio que desea, el servidor web transfiere la solicitud al servidor de envío por flujo continuo en tiempo real, y el servidor de envío por flujo continuo en tiempo real transmite los datos multimedia al usuario. A este respecto, el sistema de envío por flujo continuo de contenidos puede incluir un servidor de control separado y, en este caso, el servidor de control funciona para controlar comandos/respuestas entre equipo respectivo en el sistema de envío por flujo continuo de contenido.
El servidor de envío por flujo continuo puede recibir contenidos desde el almacenamiento de medios y/o el servidor de codificación. Por ejemplo, en el caso de que los contenidos se reciban del servidor de codificación, los contenidos pueden recibirse en tiempo real. En este caso, el servidor de envío por flujo continuo puede almacenar el flujo de bits durante un período de tiempo predeterminado para proporcionar el servicio de envío por flujo continuo sin problemas.
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 sistema de navegación, un PC pizarra, un PC tableta, un ultra portátil, un dispositivo que se puede llevar puesto (por ejemplo, un terminal tipo reloj (reloj inteligente)), un terminal de tipo gafas (gafas inteligentes), una pantalla montada en la cabeza (Head-Mounted-Display, HMD)), una TV digital, un ordenador de sobremesa, una señalización digital o similar.
Cada uno de los servidores del sistema de envío por flujo continuo de contenido puede funcionar como un servidor distribuido y, en este caso, los datos recibidos por cada servidor pueden procesarse de forma distribuida.
Las reivindicaciones de la presente descripción se pueden combinar de diversas maneras. Por ejemplo, las características técnicas de las reivindicaciones del método de la presente descripción pueden combinarse para implementarse o realizarse en un aparato, y las características técnicas de las reivindicaciones del aparato pueden combinarse para implementarse o realizarse en un método. Además, las características técnicas de la reivindicación o reivindicaciones de método y de aparato se pueden combinar para implementarse o realizarse en un aparato. Además, las características técnicas de la reivindicación o reivindicaciones de método y de aparato se pueden combinar para implementarse o realizarse en un método.
Claims (3)
1. Un aparato de decodificación para decodificación de imágenes, comprendiendo el aparato de decodificación:
- una memoria; y
- al menos un procesador conectado a la memoria, el al menos un procesador está configurado para: obtener información de tipo de intra predicción e información sobre coeficientes de transformada cuantificados para un bloque actual a partir de un flujo de bits;
derivar los coeficientes de transformada para el bloque actual basándose en la información sobre los coeficientes de transformada cuantificados; y
generar muestras residuales del bloque actual a partir de los coeficientes de transformada,
en donde la información de tipo de intra predicción incluye un indicador de intra predicción basado en matriz, MIP, que representa si se aplica MIP al bloque actual,
en donde un valor del indicador MIP igual a 0 representa que el MIP no se aplica al bloque actual, y el valor del indicador MIP igual a 1 representa que el MIP se aplica al bloque actual,
en donde en respuesta a que el MIP se aplique al bloque actual como el valor del indicador de MIP es igual a 1, las muestras de predicción del bloque actual se derivan reduciendo, a través de promedio, muestras de referencia contiguas del bloque actual, realizando una multiplicación de matriz en las muestras de referencia contiguas reducidas, y añadiendo un desplazamiento (bk) a valores en los que se realiza la multiplicación de matriz,
en donde se determina un tamaño de la matriz (Ak) utilizada para la multiplicación de matriz en respuesta a un tamaño del bloque actual,
en donde el tamaño de la matriz (Ak) es 16x8 en respuesta a que el tamaño del bloque actual es 8x8, en donde si la información sobre los coeficientes de transformada cuantificados incluye información de índice de transformada no separable de baja frecuencia, LFNST, o no para el bloque actual se basa en el indicador MIP,
en donde las muestras residuales se generan a partir de los coeficientes de transformada basándose en la información de índice de LFNST,
en donde un orden de análisis sintáctico del indicador MIP es anterior a un orden de análisis sintáctico de la información de índice de LFNST,
en donde, basándose en que el valor del indicador MIP no sea igual a 1, la información sobre los coeficientes de transformada cuantificados incluye la información de índice de LFNST, y
en donde la información de índice de LFNST está configurada en una sintaxis de unidad de codificación basada en el indicador de MIP.
2. Un aparato de codificación para codificación de imágenes, comprendiendo el aparato de codificación: - una memoria; y
- al menos un procesador conectado a la memoria, estando configurado el al menos un procesador para: determinar un tipo de intra predicción para un bloque actual;
generar información de tipo de intra predicción para el bloque actual basándose en el tipo de intra predicción; derivar muestras de predicción del bloque actual basándose en el tipo de intra predicción;
generar muestras residuales del bloque actual basándose en las muestras de predicción;
derivar coeficientes de transformada para el bloque actual basándose en las muestras residuales; generar información sobre coeficientes de transformada cuantificados basándose en coeficientes de transformada; y codificar la información de tipo de intra predicción y la información sobre los coeficientes de transformada cuantificados,
en donde la información de tipo de intra predicción incluye un indicador de intra predicción basado en matriz, MIP, que representa si se aplica MIP al bloque actual,
en donde un valor del indicador MIP igual a 0 representa que el MIP no se aplica al bloque actual, y el valor del indicador MIP igual a 1 representa que el MIP se aplica al bloque actual,
en donde en respuesta al valor del indicador MIP igual a 1 cuando el MIP se aplica al bloque actual, las muestras de predicción del bloque actual se derivan reduciendo, a través del promedio, muestras de referencia contiguas del bloque actual, realizando una multiplicación de matriz en las muestras de referencia contiguas reducidas, y añadiendo un desplazamiento a valores en los que se realiza la multiplicación de matriz,
en donde se determina un tamaño de la matriz utilizada para la multiplicación de matriz en respuesta a un tamaño del bloque actual,
en donde el tamaño de la matriz es 16x8 en respuesta a que el tamaño del bloque actual es 8x8, en donde si la información sobre los coeficientes de transformada cuantificados incluye información de índice de transformada no separable de baja frecuencia, LFNST, que representa la información sobre la transformada no separable de los coeficientes de transformada de baja frecuencia o no para el bloque actual se basa en el indicador MIP,
en donde la información de índice de LFNST se genera basándose en un núcleo de transformada utilizado para derivar los coeficientes de transformada,
en donde un orden de análisis sintáctico del indicador MIP es anterior a un orden de análisis sintáctico de la información de índice de LFNST,
en donde, basándose en que el valor del indicador MIP no sea igual a 1, la información sobre los coeficientes de transformada cuantificados incluye la información de índice de LFNST, y
en donde la información de índice de LFNST está configurada en una sintaxis de unidad de codificación basada en el indicador MIP.
3. Un aparato para transmitir datos para una imagen, estando el aparato conectado al aparato de codificación de la reivindicación 2 y que comprende:
al menos un procesador configurado para obtener un flujo de bits para la imagen, en el que el flujo de bits es generado por, y luego obtenido a partir de, el aparato de codificación de la reivindicación 2; y
un transmisor configurado para transmitir los datos que comprenden el flujo de bits.
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201962834946P | 2019-04-16 | 2019-04-16 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES3022187T3 true ES3022187T3 (en) | 2025-05-28 |
Family
ID=72837489
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES23205062T Active ES3022187T3 (en) | 2019-04-16 | 2020-04-16 | Transform for matrix-based intra-prediction in image coding |
| ES20792204T Active ES2969115T3 (es) | 2019-04-16 | 2020-04-16 | Transformada para intra-predicción basada en matriz en codificación de imágenes |
Family Applications After (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES20792204T Active ES2969115T3 (es) | 2019-04-16 | 2020-04-16 | Transformada para intra-predicción basada en matriz en codificación de imágenes |
Country Status (16)
| Country | Link |
|---|---|
| US (2) | US11558641B2 (es) |
| EP (3) | EP4287620B1 (es) |
| JP (5) | JP7197727B2 (es) |
| KR (3) | KR102845344B1 (es) |
| CN (5) | CN113826395B (es) |
| AU (3) | AU2020257796B2 (es) |
| CA (3) | CA3286847A1 (es) |
| ES (2) | ES3022187T3 (es) |
| FI (1) | FI3944618T3 (es) |
| HR (2) | HRP20250439T1 (es) |
| HU (2) | HUE064847T2 (es) |
| MX (5) | MX2021012730A (es) |
| PL (2) | PL3944618T3 (es) |
| RS (1) | RS66692B1 (es) |
| SI (1) | SI3944618T1 (es) |
| WO (1) | WO2020213944A1 (es) |
Families Citing this family (17)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR102874861B1 (ko) * | 2019-04-17 | 2025-10-21 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 매트릭스 기반 인트라 예측 및 2차 변환 코어 선택을 조화시키는 인코더, 디코더 및 대응 방법 |
| WO2020228670A1 (en) * | 2019-05-10 | 2020-11-19 | Beijing Bytedance Network Technology Co., Ltd. | Luma based secondary transform matrix selection for video processing |
| CN117354521A (zh) | 2019-06-07 | 2024-01-05 | 北京字节跳动网络技术有限公司 | 视频比特流中的简化二次变换的有条件信令 |
| CN119402667B (zh) * | 2019-07-07 | 2026-02-03 | Oppo广东移动通信有限公司 | 图像预测方法、编码器、解码器以及存储介质 |
| CN114208183B (zh) | 2019-08-03 | 2025-01-10 | 北京字节跳动网络技术有限公司 | 视频的缩减二次变换中基于位置的模式导出 |
| WO2021032045A1 (en) | 2019-08-17 | 2021-02-25 | Beijing Bytedance Network Technology Co., Ltd. | Context modeling of side information for reduced secondary transforms in video |
| CN119743597B (zh) | 2019-09-09 | 2026-04-28 | 北京字节跳动网络技术有限公司 | 视频编解码块的递归划分 |
| RS67060B1 (sr) * | 2019-09-21 | 2025-08-29 | Lg Electronics Inc | Kodiranje slike na osnovu transformacije |
| JP2022102804A (ja) * | 2020-12-25 | 2022-07-07 | Kddi株式会社 | 画像復号装置、画像復号方法及びプログラム |
| EP4422183A4 (en) * | 2021-10-22 | 2025-10-15 | Lg Electronics Inc | METHOD AND APPARATUS FOR DESIGNING NON-SEPARABLE PRIMARY TRANSFORM |
| US12452423B2 (en) * | 2021-12-03 | 2025-10-21 | Intel Corporation | Low frequency non-separable transform and multiple transform selection deadlock prevention |
| JP2025511315A (ja) * | 2022-04-08 | 2025-04-15 | オッポ広東移動通信有限公司 | デコーディング方法、エンコーディング方法、デコーダー及びエンコーダー |
| CN119487848A (zh) * | 2022-07-04 | 2025-02-18 | Oppo广东移动通信有限公司 | 编解码方法、编码器、解码器以及存储介质 |
| CN115988224A (zh) * | 2022-11-24 | 2023-04-18 | 北京奇艺世纪科技有限公司 | 一种视频编码和解码方法、装置、电子设备及存储介质 |
| WO2024219752A1 (ko) * | 2023-04-18 | 2024-10-24 | 현대자동차주식회사 | 예측모드에 따라 변환 커널 및 역변환 커널을 선택하는 비디오 코딩을 위한 방법 및 장치 |
| CN121176020A (zh) * | 2023-05-15 | 2025-12-19 | 联发科技股份有限公司 | 用于在视频编解码系统中选择变换类型的方法和装置 |
| WO2025206624A1 (ko) * | 2024-03-27 | 2025-10-02 | 현대자동차주식회사 | 행렬 기반 인트라 예측을 이용하는 비디오 코딩을 위한 방법 및 장치 |
Family Cites Families (25)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2011016247A1 (ja) | 2009-08-06 | 2011-02-10 | パナソニック株式会社 | 符号化方法、復号方法、符号化装置及び復号装置 |
| US9215470B2 (en) | 2010-07-09 | 2015-12-15 | Qualcomm Incorporated | Signaling selected directional transform for video coding |
| US9998727B2 (en) * | 2012-09-19 | 2018-06-12 | Qualcomm Incorporated | Advanced inter-view residual prediction in multiview or 3-dimensional video coding |
| KR20180044935A (ko) * | 2015-09-23 | 2018-05-03 | 엘지전자 주식회사 | 비디오 코딩 시스템에서 인트라 예측 방법 및 장치 |
| US10491922B2 (en) * | 2015-09-29 | 2019-11-26 | Qualcomm Incorporated | Non-separable secondary transform for video coding |
| EP3364653A4 (en) * | 2015-10-16 | 2019-07-10 | LG Electronics Inc. | FILTRATION METHOD AND DEVICE FOR IMPROVING THE PREDICTION IN A BILDCODING SYSTEM |
| WO2017082670A1 (ko) * | 2015-11-12 | 2017-05-18 | 엘지전자 주식회사 | 영상 코딩 시스템에서 계수 유도 인트라 예측 방법 및 장치 |
| WO2017138393A1 (en) * | 2016-02-08 | 2017-08-17 | Sharp Kabushiki Kaisha | Systems and methods for intra prediction coding |
| CN117201808A (zh) * | 2016-08-01 | 2023-12-08 | 韩国电子通信研究院 | 图像编码/解码方法和装置以及存储比特流的记录介质 |
| US11095893B2 (en) * | 2016-10-12 | 2021-08-17 | Qualcomm Incorporated | Primary transform and secondary transform in video coding |
| CN110419218B (zh) | 2017-03-16 | 2021-02-26 | 联发科技股份有限公司 | 编码或解码视频数据的方法和装置 |
| RU2722394C1 (ru) * | 2017-03-21 | 2020-05-29 | ЭлДжи ЭЛЕКТРОНИКС ИНК. | Способ преобразования в системе кодирования изображений и устройство для его осуществления |
| KR102622465B1 (ko) * | 2017-06-21 | 2024-01-09 | 엘지전자 주식회사 | 영상 코딩 시스템에서 인트라 예측에 따른 영상 디코딩 방법 및 장치 |
| AU2018204775A1 (en) * | 2018-06-29 | 2020-01-16 | Canon Kabushiki Kaisha | Method, apparatus and system for encoding and decoding a transformed block of video samples |
| DK3818073T3 (da) | 2018-07-06 | 2026-02-23 | Wacker Chemie Ag | Bakteriestamme til frigivelse af rekombinant protein i en gæringsproces |
| US11516493B2 (en) * | 2018-09-11 | 2022-11-29 | Sharp Kabushiki Kaisha | Systems and methods for coding transform coefficient level values |
| CN112823515B (zh) * | 2018-10-07 | 2024-03-19 | 三星电子株式会社 | 使用用于多参考线的mpm配置方法处理视频信号的方法和设备 |
| WO2020141909A1 (ko) * | 2019-01-01 | 2020-07-09 | 엘지전자 주식회사 | 변환을 사용하여 비디오 신호를 처리하기 위한 방법 및 이를 위한 장치 |
| US11445203B2 (en) * | 2019-01-04 | 2022-09-13 | Qualcomm Incorporated | Sub-partition intra prediction in video coding |
| WO2020185022A1 (ko) * | 2019-03-12 | 2020-09-17 | 주식회사 엑스리스 | 영상 신호 부호화/복호화 방법 및 이를 위한 장치 |
| KR102862055B1 (ko) * | 2019-03-26 | 2025-09-19 | 베이징 시아오미 모바일 소프트웨어 컴퍼니 리미티드 | 변환에 기반한 영상 코딩 방법 및 그 장치 |
| US11616966B2 (en) * | 2019-04-03 | 2023-03-28 | Mediatek Inc. | Interaction between core transform and secondary transform |
| KR20210145754A (ko) | 2019-04-12 | 2021-12-02 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | 행렬 기반 인트라 예측에서의 산출 |
| AU2020259889B2 (en) | 2019-04-16 | 2025-10-09 | Panasonic Intellectual Property Corporation Of America | Encoder, decoder, encoding method, and decoding method |
| KR102874861B1 (ko) | 2019-04-17 | 2025-10-21 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 매트릭스 기반 인트라 예측 및 2차 변환 코어 선택을 조화시키는 인코더, 디코더 및 대응 방법 |
-
2020
- 2020-04-16 KR KR1020227040787A patent/KR102845344B1/ko active Active
- 2020-04-16 FI FIEP20792204.8T patent/FI3944618T3/fi active
- 2020-04-16 CN CN202080036131.9A patent/CN113826395B/zh active Active
- 2020-04-16 CA CA3286847A patent/CA3286847A1/en active Pending
- 2020-04-16 HU HUE20792204A patent/HUE064847T2/hu unknown
- 2020-04-16 HR HRP20250439TT patent/HRP20250439T1/hr unknown
- 2020-04-16 CN CN202310700323.0A patent/CN116684611A/zh active Pending
- 2020-04-16 ES ES23205062T patent/ES3022187T3/es active Active
- 2020-04-16 PL PL20792204.8T patent/PL3944618T3/pl unknown
- 2020-04-16 RS RS20250343A patent/RS66692B1/sr unknown
- 2020-04-16 WO PCT/KR2020/005076 patent/WO2020213944A1/ko not_active Ceased
- 2020-04-16 KR KR1020257026107A patent/KR20250121161A/ko active Pending
- 2020-04-16 MX MX2021012730A patent/MX2021012730A/es unknown
- 2020-04-16 CN CN202310700638.5A patent/CN116684614A/zh active Pending
- 2020-04-16 KR KR1020217032786A patent/KR102470696B1/ko active Active
- 2020-04-16 CN CN202310700584.2A patent/CN116684612A/zh active Pending
- 2020-04-16 JP JP2021562001A patent/JP7197727B2/ja active Active
- 2020-04-16 CA CA3240493A patent/CA3240493A1/en active Pending
- 2020-04-16 HR HRP20231634TT patent/HRP20231634T1/hr unknown
- 2020-04-16 HU HUE23205062A patent/HUE071083T2/hu unknown
- 2020-04-16 SI SI202030377T patent/SI3944618T1/sl unknown
- 2020-04-16 CA CA3137181A patent/CA3137181C/en active Active
- 2020-04-16 AU AU2020257796A patent/AU2020257796B2/en active Active
- 2020-04-16 PL PL23205062.5T patent/PL4287620T3/pl unknown
- 2020-04-16 EP EP23205062.5A patent/EP4287620B1/en active Active
- 2020-04-16 CN CN202310700588.0A patent/CN116684613A/zh active Pending
- 2020-04-16 EP EP25156356.5A patent/EP4529162A3/en active Pending
- 2020-04-16 ES ES20792204T patent/ES2969115T3/es active Active
- 2020-04-16 EP EP20792204.8A patent/EP3944618B1/en active Active
-
2021
- 2021-10-15 US US17/503,042 patent/US11558641B2/en active Active
- 2021-10-15 MX MX2025006771A patent/MX2025006771A/es unknown
- 2021-10-15 MX MX2025007057A patent/MX2025007057A/es unknown
- 2021-10-15 MX MX2025007056A patent/MX2025007056A/es unknown
- 2021-10-15 MX MX2025007058A patent/MX2025007058A/es unknown
-
2022
- 2022-10-11 US US17/963,446 patent/US11831912B2/en active Active
- 2022-12-15 JP JP2022200040A patent/JP7375151B2/ja active Active
-
2023
- 2023-10-25 JP JP2023183020A patent/JP7528337B2/ja active Active
-
2024
- 2024-02-01 AU AU2024200619A patent/AU2024200619B2/en active Active
- 2024-07-23 JP JP2024117741A patent/JP7684490B2/ja active Active
-
2025
- 2025-02-27 AU AU2025201423A patent/AU2025201423B2/en active Active
- 2025-05-15 JP JP2025081838A patent/JP7807598B2/ja active Active
Also Published As
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES3022187T3 (en) | Transform for matrix-based intra-prediction in image coding | |
| ES2981910T3 (es) | Transformada en codificación de imágenes basada en intrapredicción | |
| ES2982593T3 (es) | Método de codificación de imágenes basado en una transformada y dispositivo para el mismo | |
| KR102745742B1 (ko) | 변환에 기반한 영상 코딩 방법 및 그 장치 | |
| US12256102B2 (en) | Image coding using transform index | |
| ES3016332T3 (en) | Video coding method on basis of secondary transform, and device for same | |
| ES3040198T3 (en) | Signaling of information indicating transform kernel set in image coding | |
| ES2982809T3 (es) | Codificación de información sobre conjunto de núcleos de transformada | |
| ES2983826T3 (es) | Codificación de imágenes basada en transformada | |
| ES2986930T3 (es) | Codificación de imágenes basada en transformadas | |
| RU2803184C1 (ru) | Способ кодирования изображения на основе преобразования и устройство для его осуществления | |
| RU2811986C2 (ru) | Способ кодирования изображения на основе преобразования и устройство для его осуществления | |
| RU2799629C1 (ru) | Способ кодирования изображения на основе преобразования и устройство для его осуществления | |
| BR112021020764B1 (pt) | Transformada para intrapredição baseada em matriz na codificação de imagens | |
| BR122023007139B1 (pt) | Método de decodificação de imagem realizado por um aparelho de decodificação, método de codificação de imagem realizado por um aparelho de codificação, meio de armazenamento legível por computador não transitório, aparelho de decodificação, aparelho de codificação e aparelho para transmitir dados para uma imagem | |
| BR122022006273B1 (pt) | Método e aparelho de decodificação de imagem, método e aparelho de codificação de imagem, meio de armazenamento legível por computador não transitório, método e aparelho de transmissão de dados para uma imagem | |
| BR122022006290B1 (pt) | Método de decodificação de imagem realizado por um aparelho de decodificação, método de codificação de imagem realizado por um aparelho de codificação de imagem, meio de armazenamento legível por computador não transitório, método de transmissão de dados para uma imagem, aparelho de decodificação para decodificação de imagem, aparelho de codificação para codificação de imagem e aparelho de transmissão para transmissão de dados para uma imagem | |
| BR122022006263B1 (pt) | Método e aparelho de decodificação de imagem, método e aparelho de codificação de imagem, meio de armazenamento legível por computador não transitório, método e aparelho de transmissão de dados para uma imagem | |
| BR112021010422B1 (pt) | Método de decodificação de imagem realizado por um aparelho de decodificação, método de codificação de imagem realizado por um aparelho de codificação de imagem e meio de armazenamento legível por computador não transitório | |
| BR112021010422A2 (pt) | Método de codificação de imagem baseado em transformada secundária e dispositivo para o mesmo |