ES2982809T3 - Codificación de información sobre conjunto de núcleos de transformada - Google Patents

Codificación de información sobre conjunto de núcleos de transformada Download PDF

Info

Publication number
ES2982809T3
ES2982809T3 ES20827025T ES20827025T ES2982809T3 ES 2982809 T3 ES2982809 T3 ES 2982809T3 ES 20827025 T ES20827025 T ES 20827025T ES 20827025 T ES20827025 T ES 20827025T ES 2982809 T3 ES2982809 T3 ES 2982809T3
Authority
ES
Spain
Prior art keywords
index
transform
context
bins
mts
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES20827025T
Other languages
English (en)
Inventor
Junghak Nam
Moonmo Koo
Jaehyun Lim
Seunghwan Kim
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
LG Electronics Inc
Original Assignee
LG Electronics Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by LG Electronics Inc filed Critical LG Electronics Inc
Application granted granted Critical
Publication of ES2982809T3 publication Critical patent/ES2982809T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/18Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Discrete Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

Un método de decodificación de imágenes según el presente documento se caracteriza por incluir: un paso para adquirir un índice de selección de transformada múltiple (MTS) e información residual de un flujo de bits; un paso para derivar coeficientes de transformación para el bloque actual sobre la base de la información residual; y un paso para generar muestras residuales del bloque actual sobre la base del índice MTS y los coeficientes de transformación, en donde el índice MTS indica un conjunto de núcleos de transformación que se aplicará al bloque actual entre los candidatos de conjuntos de núcleos de transformación, al menos un contenedor entre los contenedores de una cadena de contenedores del índice MTS se deriva sobre la base de la codificación de contexto, la codificación de contexto se realiza sobre la base de valores de aumento y disminución en un índice de contexto perteneciente al índice MTS, y un único valor de aumento y disminución en el índice de contexto se puede utilizar para la codificación de contexto del primer contenedor entre los contenedores de la cadena de contenedores. (Traducción automática con Google Translate, sin valor legal)

Description

DESCRIPCIÓN
Codificación de información sobre conjunto de núcleos de transformada
Antecedentes de la divulgación
Campo de la divulgación
La presente divulgación se refiere a una tecnología de codificación de imágenes y, más particularmente, a la codificación de información sobre un conjunto de núcleos de transformada.
Técnica relacionada
Recientemente, la demanda de imagen/vídeo de alta resolución y alta calidad, tal como imagen/vídeo de 4K, 8K o más de definición ultraalta (UHD), está aumentando en diversos campos. A medida que la resolución o calidad de imagen/vídeo se hace más alta, se transmite relativamente más cantidad de información o bits que para datos de imagen/vídeo convencionales. Por lo tanto, si los datos de imagen/vídeo se transmiten a través de un medio tal como una línea de banda ancha cableada/inalámbrica existente o se almacenan en un medio de almacenamiento heredado, los costes de transmisión y almacenamiento se incrementan fácilmente.
Además, están creciendo el interés y la demanda de contenidos de realidad virtual (VR) y realidad artificial (AR), y medios inmersivos tales como hologramas; y también están creciendo la difusión de imágenes/vídeos que presentan características de imagen/vídeo diferentes de las de una imagen/vídeo real, tales como imágenes/vídeos de juegos. Por lo tanto, se requiere una técnica de compresión de imagen/vídeo altamente eficiente para comprimir y transmitir, almacenar o reproducir imágenes/vídeos de alta calidad y alta resolución que muestran diversas características como se ha descrito anteriormente. Documento: BROSS (FRAUNHOFER) B E<t>AL, "Non-CE8: Unified Transform Type Signalling and Residual Coding for Transform Skip", no JVET-M0464, (20190111), 13. Reunión de JVET; 20190109 -20190118; MARRAKECH; (EL EQUIPO DE EXPLORACIÓN DE VÍDEO CONJUNTO DE ISO/IEC JTC1/SC29/WG11 E ITU-T SG.16), URL: http://phenix.intevry.fr/jvet/doc_end_user/documents/13_Marrakech/wg11/JVET-M0464-v2.zip JVET-M0464-v2.docx, (20190111- La invención se refiere a elementos de señalización de tipo transformada unificada. Documento: S-T HSIa Ng et al, "CE6-related: Context selection for entropy coding the MTS flag" no. JVET-M0280, (20190104), 13. Reunión de JVET; 20190109 - 20190118; MARRAKECH; (EL EQUIPO DE EXPLORACIÓN DE VÍDEO CONJUNTO DE ISO/IEC JTC1/SC29/WG11 E ITU-T SG.16), URL: http://phenix.intevry.fr/jvet/doc_end_user/documents/13_Marrakech/wg11/JVET-M0280-v2.zip JVET-M0280-vl.docx, (20190104) se refiere a la selección de contexto para la codificación por entropía.
Compendio
De acuerdo con la invención, se proporciona un método de decodificación de imágenes como se expone en la reivindicación 1.
De acuerdo con la invención, se proporciona un método de codificación de imágenes como se expone en la reivindicación 2.
De acuerdo con la invención, se proporciona un medio de almacenamiento digital legible por ordenador no transitorio que almacena un flujo de bits como se establece en la reivindicación 3.
De acuerdo con la invención, se proporciona un método de transmisión como se expone en la reivindicación 4. La invención se describe particularmente en el contexto de la tabla 6.
De acuerdo con la presente divulgación, se puede mejorar la eficiencia de compresión de imagen/vídeo general. De acuerdo con la presente divulgación, la información de índice MTS puede señalizarse de manera eficiente.
De acuerdo con la presente divulgación, la complejidad del sistema de codificación puede reducirse codificando eficientemente la información de índice MTS.
Breve descripción de los dibujos
La FIG. 1 ilustra esquemáticamente un ejemplo de un sistema de codificación de vídeo/imagen al que es aplicable el presente documento.
La FIG. 2 es un diagrama que explica esquemáticamente la configuración de un aparato de codificación de vídeo/imagen al que es aplicable el presente documento.
La FIG. 3 es un diagrama que explica esquemáticamente la configuración de un aparato de decodificación de vídeo/imagen al que es aplicable el presente documento.
La FIG. 4 ilustra esquemáticamente una técnica de multitransformada de acuerdo con una realización del presente documento.
La FIG. 5 ilustra a modo de ejemplo modos intradireccionales en 65 direcciones de predicción.
Las FIGS. 6 y 7 son diagramas que explican la RST de acuerdo con una realización del presente documento.
La FIG. 8 ilustra a modo de ejemplo la codificación aritmética binaria adaptativa al contexto (CABAC) para codificar elementos de sintaxis.
Las FIGS. 9 y 10 ilustran esquemáticamente un método de codificación de vídeo/imagen y un ejemplo de componentes relacionados de acuerdo con la(s) realización(es) del presente documento.
Las FIGS. 11 y 12 ilustran esquemáticamente un método de decodificación de vídeo/imagen y un ejemplo de componentes relacionados de acuerdo con la(s) realización(es) del presente documento.
La FIG. 13 ilustra un ejemplo de un sistema de transmisión continua de contenido al que son aplicables las realizaciones descritas en el presente documento.
Descripción de realizaciones a modo de ejemplo
La presente divulgación se puede modificar de diversas formas, y las realizaciones específicas de la misma se describirán e ilustrarán en los dibujos. Sin embargo, las realizaciones no pretenden limitar la divulgación. Los términos utilizados en la siguiente descripción se usan para describir simplemente realizaciones específicas, pero no pretenden limitar la divulgació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 utilizados en la siguiente descripción y se debe entenderse, por lo tanto, 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 mutuamente diferente o software diferente. Por ejemplo, dos o más de las configuraciones se pueden combinar para formar una configuración, y una configuración también se puede dividir en múltiples configuraciones.
A continuación en el presente documento, se describirán en detalle ejemplos de la presente realización con referencia a los dibujos adjuntos. Además, se utilizan números de referencia similares para indicar elementos similares en todos los dibujos, y se omitirán las mismas descripciones de los elementos similares.
Este documento se refiere a la codificación de vídeo/imagen. Por ejemplo, los métodos/realizaciones divulgados en este documento pueden estar relacionados con el estándar de codificación de vídeo versátil (VVC) (ITU-T Rec. H.266), la norma de codificación de vídeo/imagen de próxima generación después de VVC, u otras normas relacionadas con la codificación de vídeo (por ejemplo, la norma de codificación de vídeo de alta eficiencia (HEVC) (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/imagen, y las realizaciones anteriores también se pueden realizar 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 se refiere generalmente a la unidad que representa una imagen en un marco de tiempo particular, y un segmento/mosaico se refiere a la unidad que constituye una parte de la imagen en términos de codificación. Un segmento/mosaico puede incluir una o más unidades de árbol de codificación (CTU). Una imagen puede consistir en uno o más segmentos/mosaicos. Una imagen puede consistir en uno o más grupos de mosaicos. Un grupo de mosaicos puede incluir uno o más mosaicos.
Un píxel o un pel pueden significar la unidad más pequeña que constituye una fotografía (o imagen). Además, 'muestra' se puede utilizar como un término correspondiente a un píxel. Una muestra puede representar generalmente un píxel o un valor de un píxel, y puede representar solo un valor de píxel/píxel de un componente de luma o solo un valor de píxel/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 se puede utilizar indistintamente con términos tales como bloque o área en algunos casos. En un caso general, un bloque MxN puede incluir muestras (o matrices de muestras) o un conjunto (o matriz) de coeficientes de transformada de M columnas y N filas. Alternativamente, la muestra puede significar un valor de píxel en el dominio espacial, y cuando dicho valor de píxel se transforma al dominio de frecuencia, puede significar un coeficiente de transformada en el dominio de frecuencia.
En este documento, el término "/" y se debe interpretar para indicar "y/o". Por ejemplo, la expresión "A/B" puede significar "A y/o B". Además, "A, B" puede significar "A y/o B". Además, "A/B/C" puede significar "al menos uno de A, B y/o C". Además, "A/B/C" puede significar "al menos uno de A, B y/o C".
Además, en el documento, el término "o" se debe interpretar para indicar "y/o". Por ejemplo, la expresión "A o B" puede comprender 1) solo A, 2) solo B y/o 3) tanto A como B. En otras palabras, el término "o" en este documento se debe interpretar que indica "adicional o alternativamente".
En la presente memoria descriptiva, "al menos uno de A y B" puede significar "solo A", "solo B" o "tanto A como B". Además, en la presente memoria descriptiva, la expresión "al menos uno de A o B" o "al menos uno de A y/o B" puede interpretarse igual que "al menos uno de A y B".
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 utilizados en la presente memoria descriptiva pueden significar "por ejemplo". Específicamente, en el caso de que se exprese "predicción (intrapredicción)", puede indicarse que se propone "intrapredicción" como ejemplo de "predicción". En otras palabras, el término "predicción" en la presente memoria descriptiva no se limita a "intrapredicción", y puede indicarse que "intrapredicción" se propone como un ejemplo de "predicción". Además, incluso en el caso de que se exprese "predicción (es decir, intrapredicción)", se puede indicar que "intrapredicción" se propone como un ejemplo de "predicción".
En la presente memoria descriptiva, las características técnicas explicadas individualmente en un dibujo pueden implementarse individualmente o pueden implementarse simultáneamente.
La FIG. 1 ilustra un ejemplo de un sistema de codificación de vídeo/imagen al que se puede aplicar la divulgación del presente documento.
Haciendo referencia a la FIG. 1, un sistema de codificación de vídeo/imagen puede incluir un dispositivo fuente y un dispositivo de recepción. El dispositivo fuente puede transmitir información o datos de vídeo/imagen codificados al dispositivo de recepción a través de un medio o red de almacenamiento digital en forma de un archivo o transmisión continua.
El dispositivo fuente puede incluir una fuente de vídeo, un aparato de codificación y un transmisor. El dispositivo de recepción puede incluir un receptor, un aparato de decodificación y un renderizador. El aparato de codificación se puede denominar aparato de codificación de vídeo/imagen, y el aparato de decodificación se puede denominar aparato de decodificación de vídeo/imagen. El transmisor se puede incluir en el aparato de codificación. El receptor puede estar incluido en el aparato de decodificación. El renderizador puede incluir una pantalla, y la pantalla puede configurarse como un dispositivo separado o un componente externo.
La fuente de vídeo puede adquirir vídeo/imagen a través de un proceso de captura, síntesis o generación del vídeo/imagen. La fuente de vídeo puede incluir un dispositivo de captura de vídeo/imagen y/o un dispositivo generador de vídeo/imagen. El dispositivo de captura de vídeo/imagen puede incluir, por ejemplo, una o más cámaras, archivos de vídeo/imagen que incluyen vídeo/imágenes capturadas previamente y similares. El dispositivo generador de vídeo/imagen puede incluir, por ejemplo, ordenadores, tabletas y teléfonos inteligentes, y puede generar (electrónicamente) vídeo/imágenes. Por ejemplo, se puede generar un vídeo/imagen virtual a través de un ordenador o similar. En este caso, el proceso de captura de vídeo/imagen puede ser sustituido por un proceso de generación de datos relacionados.
El aparato de codificación puede codificar vídeo/imagen de entrada. El aparato de codificación puede realizar una serie de procedimientos tales como predicción, transformación y cuantificación para la eficiencia de compactación y codificación. Los datos codificados (información de vídeo/imagen codificada) se pueden producir en forma de un flujo de bits.
El transmisor puede transmitir la imagen/información de imagen codificada o datos producidos en forma de un flujo de bits al receptor del dispositivo de recepción a través de un medio de almacenamiento digital o de una red en forma de un archivo o transmisión continua. El medio de almacenamiento digital puede incluir diversos medios de almacenamiento tales como USB, SD, CD, DVD, Blu-ray, HDD, SSD y similares. El transmisor puede incluir un elemento para generar un archivo multimedia a través de un formato de archivo predeterminado y puede incluir un elemento para la transmisión a través de una red de difusión/comunicación. El receptor puede recibir/extraer el flujo de bits y transmitir el flujo de bits recibido al aparato de decodificación.
El aparato de decodificación puede decodificar el vídeo/imagen realizando una serie de procedimientos tales como descuantificación, transformada inversa y predicción correspondientes al funcionamiento del aparato de codificación.
El renderizador puede renderizar el vídeo/imagen decodificado. El vídeo/imagen renderizada se puede mostrar a través de la pantalla.
La FIG. 2 es un diagrama que ilustra esquemáticamente la configuración de un aparato de codificación de vídeo/imagen al que se puede aplicar la divulgació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 FIG. 2, el aparato de codificación 200 puede incluir y configurarse con un divisor de imágenes 210, un predictor 220, un procesador residual 230, un codificador de entropía 240, un sumador 250, un filtro 260 y una memoria 270. El predictor 220 puede incluir un interpredictor 221 y un intrapredictor 222. El procesador residual 230 puede incluir un transformador 232, un cuantificador 233, un descuantificador 234 y un transformador inverso 235. El procesador residual 230 puede incluir además un restador 231. El sumador 250 se puede denominar reconstructor o generador de bloques reconstruidos. El divisor 210 de imagen, el predictor 220, el procesador 230 residual, el codificador de entropía 240, el sumador 250 y el filtro 260, que se han descrito anteriormente, pueden configurarse mediante uno o más componentes de hardware (por ejemplo, conjuntos de chips o procesadores de codificador) de acuerdo con una realización. Además, la memoria 270 puede incluir una memoria intermedia de imágenes descodificadas (DPB) y también puede configurarse mediante un medio de almacenamiento digital. El componente de hardware puede incluir además la memoria 270 como un componente interno/externo.
El divisor de imagen 210 puede dividir una entrada de imagen de entrada (o, imagen, fotograma) en el aparato de codificación 200 en una o más unidades de procesamiento. Como ejemplo, la unidad de procesamiento puede denominarse unidad de codificación (CU). En este caso, la unidad de codificación puede dividirse recursivamente de acuerdo con una estructura de árbol cuaternario - árbol binario - árbol ternario-(QBTTT) 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 mayor profundidad basándose en una estructura de árbol cuaternario, una estructura de árbol binario y/o una estructura de árbol ternario. En este caso, por ejemplo, se aplica primero la estructura de árbol cuaternario y la estructura de árbol binario y/o la estructura de árbol ternario se pueden aplicar más tarde. Alternativamente, la estructura de árbol binario también puede aplicarse en primer lugar. Un procedimiento de codificación de acuerdo con la presente divulgación puede realizarse basándose en una unidad de codificación final que ya no se divide. En este caso, basándose en la eficiencia de codificación según características de imagen o similares, la unidad de codificación máxima se puede utilizar 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 mayor, de manera que se puede utilizar una unidad de codificación que tenga un tamaño óptimo como la unidad de codificación final. En este caso, el procedimiento de codificación puede incluir un procedimiento tal como la predicción, la transformación y la reconstrucción que se describirán más adelante. Como otro ejemplo, la unidad de procesamiento puede incluir además una unidad de predicción (PU) o una unidad de transformación (TU). En este caso, cada una de la unidad de predicción y la unidad de transformación se puede dividir o separar 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 transformación 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 se puede utilizar indistintamente con el término tal como un bloque o un área en algunos casos. En general, un bloque MxN puede representar muestras compuestas por M columnas y N filas o un grupo de coeficientes de transformada. La muestra puede representar generalmente un píxel o un valor del píxel, y también puede representar solo el valor de píxel/píxel de un componente de luma, y también representar solo el valor de píxel/píxel de un componente de croma. La muestra se puede utilizar como el término correspondiente a un píxel o un pel que configuran una imagen (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 predicho, muestras de predicción o matriz de muestras de predicción) producida desde el predictor 220 desde una señal de imagen de entrada (bloque original, muestras originales o matriz de muestras originales), 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, denominado "bloque actual"), y generar un bloque predicho que incluye muestras de predicción para el bloque actual. El predictor 220 puede determinar si la intrapredicción o la interpredicción se aplica 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 del modo de predicción, y transferir la información generada al codificador de entropía 240. La información sobre la predicción puede codificarse en el codificador de entropía 240 y producirse en forma de un flujo de bits.
El intrapredictor 222 puede predecir un bloque actual con referencia a muestras dentro de una imagen actual. Las muestras referenciadas pueden ubicarse vecinas del bloque actual, o también pueden ubicarse alejadas del bloque actual de acuerdo con el modo de predicción. Los modos de predicción en la intrapredicción pueden incluir una pluralidad de modos no direccionales y una pluralidad de modos direccionales. El modo no direccional puede incluir, por ejemplo, un modo de CC o un modo plano. 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 fino de la dirección de predicción. Sin embargo, esto es ilustrativo y los modos de predicción direccional que son más o menos que el número anterior pueden utilizarse de acuerdo con el ajuste. El intrapredictor 222 también puede determinar el modo de predicción aplicado al bloque actual utilizando el modo de predicción aplicado al bloque vecino.
El interpredictor 221 puede inducir un bloque predicho del 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 momento, para disminuir la cantidad de información de movimiento transmitida en el modo de interpredicción, la información de movimiento puede predecirse en unidades de un bloque, un sub-bloque o una muestra basándose en la correlación de la información de movimiento entre el bloque vecino y el bloque actual. La información de movimiento puede incluir un vector de movimiento y un índice de imagen de referencia. La información de movimiento puede incluir además información de dirección de interpredicción (predicción L0, predicción L1, predicción Bi o similares). En el caso de la interpredicción, el bloque vecino puede incluir un bloque vecino espacial existente dentro de la imagen actual y un bloque vecino temporal existente en la imagen de referencia. La imagen de referencia que incluye el bloque de referencia y la imagen de referencia que incluye el bloque vecino temporal también pueden ser iguales entre sí, y también pueden ser diferentes una de la otra. El bloque vecino temporal puede denominarse con el nombre tal como un bloque de referencia colocado conjuntamente, una CU colocada conjuntamente (colCU) o similar, y la imagen de referencia que incluye el bloque vecino temporal también puede denominarse imagen colocada conjuntamente (colPic). Por ejemplo, el interpredictor 221 puede configurar una lista de candidatos de información de movimiento basándose en los bloques vecinos, y generar información que indique qué candidato se utiliza para derivar el vector de movimiento y/o el índice de imagen de referencia del bloque actual. La interpredicción se puede realizar basándose en diversos modos de predicción y, por ejemplo, en el caso de un modo de salto y un modo de fusión, el interpredictor 221 puede utilizar la información de movimiento del bloque vecino 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 utilizando el vector de movimiento del bloque vecino como un predictor de vector de movimiento, y señalando una diferencia de vector de movimiento.
El predictor 220 puede generar una señal de predicción basándose en diversos métodos de predicción descritos a continuación. Por ejemplo, el predictor puede no solo aplicar intrapredicción o interpredicción para predecir un bloque, sino también aplicar simultáneamente tanto intrapredicción como interpredicción. Esto puede denominarse inter e intrapredicción combinada (CIIP). Además, el predictor puede realizar una copia intrabloque (IBC) para la predicción de un bloque. La copia intrabloque se puede utilizar para la codificación de imágenes de contenido/imágenes 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 puede realizarse de manera similar a la interpredicción en la que se deriva un bloque de referencia en la imagen actual. Es decir, la IBC puede utilizar al menos una de las técnicas de interpredicción descritas en el presente documento.
La señal de predicción generada a través del interpredictor 221 y/o el intrapredictor 222 se puede utilizar para generar una señal reconstruida o para generar una señal residual. El transformador 232 puede generar coeficientes de transformada aplicando una técnica de transformada a la señal residual. Por ejemplo, la técnica de transformada puede incluir al menos una de una transformada de coseno discreta (DCT), una transformada de seno discreta (DST), una transformada basada en gráficos (GBT) o una transformada condicionalmente no lineal (CNT). En este caso, la GBT significa transformada obtenida de un gráfico cuando la información de relación entre píxeles se representa por el gráfico. La CNT se refiere a la transformada obtenida basándose en una señal de predicción generada utilizando todos los píxeles reconstruidos previamente. Además, el proceso de transformada puede aplicarse a bloques de píxeles cuadrados que tengan el mismo tamaño, o puede aplicarse a bloques que tengan un tamaño variable en lugar de un cuadrado.
El cuantificador 233 puede cuantificar los coeficientes de transformada y transmitirlos al codificador de entropía 240, y el codificador de entropía 240 puede codificar la señal cuantificada (información sobre los coeficientes de transformada cuantificados) y producir un flujo de bits. La información sobre los coeficientes de transformada cuantificados se puede denominar información residual. El cuantificador 233 puede reorganizar los coeficientes de transformada cuantificados de tipo bloque en una forma de vector unidimensional basándose en un orden de escaneo de coeficientes, y generar información sobre los coeficientes de transformada cuantificados basándose en los coeficientes de transformada cuantificados en la forma de vector unidimensional. El codificador de entropía 240 puede realizar diversos métodos de codificación tales como, por ejemplo, exponencial Golomb, codificación de longitud variable adaptativa al contexto (CAVLC), codificación aritmética binaria adaptativa al contexto (CABAC) y similares. El codificador de entropía 240 puede codificar la información necesaria para la reconstrucción de vídeo/imagen 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/imagen codificada) se puede transmitir o almacenar en la unidad de una capa de abstracción de red (NAL) en forma de un flujo de bits. La información de vídeo/imagen puede incluir además información sobre diversos conjuntos de parámetros, tales como un conjunto de parámetros de adaptación (APS), un conjunto de parámetros de imagen (PPS), un conjunto de parámetros de secuencia (SPS) o un conjunto de parámetros de vídeo (VPS). Además, la información de vídeo/imagen puede incluir también información de restricción general. En el presente documento, la información y/o los elementos de sintaxis que se señalizan/transmiten para describirse más adelante se pueden codificar a través del procedimiento de codificación descrito anteriormente, y incluirse en el flujo de bits. El flujo de bits puede transmitirse a través de una red, o puede almacenarse en un medio de almacenamiento digital. En este caso, la red puede incluir una red de radiodifusión y/o una red de comunicación, y el medio de almacenamiento digital puede incluir diversos medios de almacenamiento, tales como USB, SD, CD, DVD, Blu-ray, HDD, SSD y similares. Un transmisor (no ilustrado) que transmite una señal producida desde el codificador de entropía 240 y/o una unidad de almacenamiento (no ilustrada) que almacena la señal se puede configurar como un elemento interno/externo del aparato de codificación 200 y, alternativamente, el transmisor se puede incluir en el codificador de entropía 240.
Los coeficientes de transformada cuantificados producidos desde el cuantificador 233 se pueden utilizar para generar una señal de predicción. Por ejemplo, la señal residual (bloque residual o muestras residuales) se puede reconstruir aplicando descuantificación y transformada inversa a los coeficientes de transformada cuantificados a través del descuantificador 234 y el transformador inverso 235. El sumador 250 suma la señal residual reconstruida a la señal de predicción producida desde el predictor 220 para generar una señal reconstruida (imagen reconstruida, bloque reconstruido, muestras reconstruidas o matriz de muestras reconstruidas). Si no hay ningún residuo para el bloque objetivo de procesamiento, tal como un caso en el que se aplica un modo de salto, el bloque predicho se puede utilizar como el bloque reconstruido. La señal reconstruida generada se puede utilizar para la intrapredicción de un siguiente bloque objetivo de procesamiento en la imagen actual, y se puede utilizar para la interpredicción de una imagen siguiente a través del filtrado como se describe a continuación.
Mientras tanto, el mapeo de luma con escalado de croma (LMCS) se puede aplicar durante un 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 de entropía 290 como se describe más adelante en la descripción de cada método de filtrado. La información relacionada con el filtrado puede ser codificada por el codificador de entropía 290 y producida en forma de un flujo de bits.
La imagen reconstruida modificada transmitida a la memoria 270 se puede utilizar como una imagen de referencia en el interpredictor 221. Cuando la interpredicción se aplica a través del aparato de codificación, se puede evitar la falta de coincidencia de predicción entre el aparato de codificación 200 y el aparato de decodificación y puede mejorarse la eficiencia de codificación.
La DPB de la memoria 270 puede almacenar la imagen reconstruida modificada para su utilización como imagen de referencia en el interpredictor 221. La memoria 270 puede almacenar información de movimiento de un bloque del que se deriva (o codifica) la información de movimiento en la imagen actual y/o información de movimiento de bloques en la imagen, que ya se ha reconstruido. La información de movimiento almacenada puede transferirse al interpredictor 221 para ser utilizada como información de movimiento del bloque vecino espacial o información de movimiento del bloque vecino temporal. La memoria 270 puede almacenar muestras reconstruidas de bloques reconstruidos en la imagen actual, y puede transferir las muestras reconstruidas al intrapredictor 222.
La FIG. 3 es un diagrama para explicar esquemáticamente la configuración de un aparato de decodificación de vídeo/imagen al que puede aplicarse la divulgación del presente documento.
Haciendo referencia a la FIG. 3, el aparato 300 de descodificación puede incluir y estar configurado con un descodificador de entropía 310, un procesador residual 320, un predictor 330, un sumador 340, un filtro 350 y una memoria 360. El predictor 330 puede incluir un interpredictor 331 y un intrapredictor 332. El procesador residual 320 puede incluir un descuantificador 321 y un transformador inverso 322. El decodificador de entropía 310, el procesador residual 320, el predictor 330, el sumador 340 y el filtro 350, que se han descrito anteriormente, pueden configurarse mediante uno o más componentes de hardware (por ejemplo, conjuntos de chips o procesadores de decodificador) de acuerdo con una realización. Además, la memoria 360 puede incluir una memoria intermedia de imágenes descodificadas (DPB) y puede configurarse mediante un medio de almacenamiento digital. El componente de hardware puede incluir además la memoria 360 como un componente interno/externo.
Cuando se introduce el flujo de bits que incluye la información de vídeo/imagen, el aparato de descodificación 300 puede reconstruir la imagen como respuesta a un proceso en el que la información de vídeo/imagen se procesa en el aparato de codificación ilustrado en la FIG. 2. Por ejemplo, el aparato de decodificación 300 puede derivar las unidades/bloques basándose en información relacionada con división de bloques adquirida a partir del flujo de bits. El aparato de decodificación 300 puede realizar la decodificación utilizando la unidad de procesamiento aplicada al aparato de codificación. Por lo tanto, la unidad de procesamiento para la decodificación puede ser, por ejemplo, una unidad de codificación, y la unidad de codificación se puede dividir de acuerdo con la estructura de árbol cuaternario, la estructura de árbol binario y/o la estructura de árbol ternario de la unidad de árbol de codificación o de la unidad de codificación máxima. Una o más unidades de transformación pueden derivarse de la unidad de codificación. Además, la señal de imagen reconstruida descodificada y producida a través del aparato de descodificación 300 puede reproducirse a través de un aparato de reproducción.
El aparato de descodificación 300 puede recibir una señal producida desde el aparato de codificación de la FIG. 2 en forma de un flujo de bits, y la señal recibida se puede descodificar a través del descodificador de entropía 310. Por ejemplo, el decodificador de entropía 310 puede analizar el flujo de bits para derivar información (por ejemplo, información de vídeo/imagen) necesaria para la reconstrucción de imágenes (o reconstrucción de fotografías). La información de vídeo/imagen puede incluir además información sobre diversos conjuntos de parámetros, tales como un conjunto de parámetros de adaptación (APS), un conjunto de parámetros de imagen (PPS), un conjunto de parámetros de secuencia (SPS) o un conjunto de parámetros de vídeo (VPS). Además, la información de vídeo/imagen puede incluir además información de restricción general. El aparato de decodificación puede decodificar además la imagen basándose en la información sobre el conjunto de parámetros y/o en 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 se pueden decodificar y obtener a partir del flujo de bits. Por ejemplo, el decodificador de entropía 310 decodifica la información en el flujo de bits basándose en un método de codificación tal como la codificación exponencial de Golomb, CAVLC o CABAC, y produce elementos de sintaxis requeridos para la reconstrucción de imágenes y valores cuantificados de coeficientes de transformada para el residuo. Más específicamente, el método de descodificación por entropía CABAC puede recibir un bin correspondiente a cada elemento de sintaxis en el flujo de bits, determinar un modelo de contexto usando una información de elemento de sintaxis objetivo de descodificación, descodificar información de un bloque objetivo de descodificación o información de un símbolo/bin descodificado en una etapa anterior, y realizar una descodificación aritmética en el bin prediciendo una probabilidad de aparición de un bin según el modelo de contexto determinado, y generar un símbolo correspondiente al valor de cada elemento de sintaxis. En este caso, el método de descodificación por entropía CABAC puede actualizar el modelo de contexto utilizando la información del símbolo/bin descodificado para un modelo de contexto de un siguiente símbolo/bin después de determinar el modelo de contexto. La información relacionada con la predicción entre la información descodificada por el descodificador de entropía 310 puede proporcionarse al predictor 330, y la información sobre el residuo en el que se ha realizado la descodificación de entropía en el descodificador de entropía 310, es decir, los coeficientes de transformada cuantificados y la información de parámetros relacionados, puede introducirse en el descuantificador 321. Además, la información sobre el filtrado entre la información descodificada por el descodificador de entropía 310 puede proporcionarse al filtro 350. Mientras tanto, un receptor (no ilustrado) para recibir una señal producida desde el aparato de codificación puede configurarse además como un elemento interno/externo del aparato de descodificación 300, o el receptor puede ser un elemento constituyente del descodificador de entropía 310. Mientras tanto, el aparato de decodificación de acuerdo con el presente documento se puede denominar aparato de decodificación de vídeo/imagen/imagen, y el aparato de decodificación puede clasificarse en un decodificador de información (decodificador de información de vídeo/imagen/imagen) y un decodificador de muestra (decodificador de muestra de vídeo/imagen/imagen). El decodificador de información puede incluir el decodificador de entropía 310, y el decodificador de muestras puede incluir al menos uno del descuantificador 321, el transformador inverso 322, el predictor 330, el sumador 340, el filtro 350 y la memoria 360.
El descuantificador 321 puede descuantificar los coeficientes de transformada cuantificados para producir los coeficientes de transformada. El descuantificador 321 puede reorganizar los coeficientes de transformada cuantificados en una forma de bloque bidimensional. En este caso, la transposición puede realizarse basándose en un orden de exploración de coeficientes realizado por el aparato de codificación. El descuantificador 321 puede realizar la descuantificación para los coeficientes de transformada cuantificados utilizando un parámetro de cuantificación (por ejemplo, información de tamaño de paso de cuantificación), y adquirir los coeficientes de transformada.
El transformador inverso 322 transforma inversamente 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 predicho que incluye las muestras de predicción del bloque actual. El predictor puede determinar si se aplica la intrapredicción o si se aplica la interpredicción al bloque actual basándose en la información sobre la predicción producida desde el decodificador 310 de entropía, y determinar un modo de intrapredicción/interpredicción específico.
El predictor puede generar una señal de predicción basándose en diversos métodos de predicción descritos a continuación. Por ejemplo, el predictor puede no solo aplicar intrapredicción o interpredicción para predecir un bloque, sino también aplicar simultáneamente intrapredicción e interpredicción. Esto puede denominarse inter e intrapredicción combinada (CIIP). Además, el predictor puede realizar una copia intrabloque (IBC) para la predicción de un bloque. La copia intrabloque se puede utilizar para la codificación de imágenes de contenido/imágenes 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 puede realizarse de manera similar a la interpredicción en la que se deriva un bloque de referencia en la imagen actual. Es decir, la IBC puede utilizar al menos una de las técnicas de interpredicción descritas en el presente documento.
El intrapredictor 332 puede predecir el bloque actual haciendo referencia a las muestras en la imagen actual. Las muestras referidas pueden estar ubicadas en las proximidades del bloque actual, o pueden estar ubicadas separadas del bloque actual de acuerdo con el modo de predicción. En la intrapredicción, los modos de predicción pueden incluir una pluralidad de modos no direccionales y una pluralidad de modos direccionales. El intrapredictor 332 puede determinar el modo de predicción a aplicar al bloque actual utilizando el modo de predicción aplicado al bloque vecino.
El interpredictor 331 puede derivar un bloque predicho para el bloque actual basándose en un bloque de referencia (matriz de muestras de referencia) especificado por un vector de movimiento en una imagen de referencia. En este caso, para reducir la cantidad de información de movimiento que se transmite en el modo de interpredicción, la información de movimiento se puede predecir en la unidad de bloques, subbloques o muestras basándose en la correlación de información de movimiento entre el bloque vecino y el bloque actual. La información de movimiento puede incluir un vector de movimiento y un índice de imagen de referencia. La información de movimiento puede incluir además información sobre la dirección de interpredicción (predicción L0, predicción L1, predicción Bi y similares). En caso de interpredicción, el bloque vecino puede incluir un bloque vecino espacial existente en la imagen actual y un bloque vecino temporal existente en la imagen de referencia. Por ejemplo, el interpredictor 331 puede construir una lista de candidatos de información de movimiento basándose en bloques vecinos, y derivar un vector de movimiento del bloque actual y/o un índice de imagen de referencia basándose en la información de selección de candidatos recibida. La interpredicción se puede realizar basándose en diversos modos de predicción, y la información sobre la predicción puede incluir información que indica un modo de interpredicción para el bloque actual.
El sumador 340 puede generar una señal reconstruida (imagen reconstruida, bloque reconstruido o matriz de muestras reconstruidas) sumando la señal residual obtenida a la señal de predicción (bloque predicho o matriz de muestras predicha) producida desde el predictor 330. Si no hay ningún residuo para el bloque objetivo de procesamiento, tal como un caso en el que se aplica un modo de salto, el bloque predicho se puede utilizar como el bloque reconstruido.
El sumador 340 se puede denominar reconstructor o generador de bloques reconstruidos. La señal reconstruida generada se puede utilizar para la intrapredicción de un siguiente bloque que va a procesarse en la imagen actual, y tal como se describe más adelante, también se puede producir a través de filtrado o también se puede utilizar para la interpredicción de una imagen siguiente.
Mientras tanto, también se puede aplicar un mapeo de luma con escalado 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 se puede utilizar como una imagen de referencia en el interpredictor 331. La memoria 360 puede almacenar la información de movimiento del bloque del que se deriva (o decodifica) la información de movimiento en la imagen actual y/o la información de movimiento de los bloques en la imagen que ya se ha reconstruido. La información de movimiento almacenada puede transferirse al interpredictor 331 para utilizarse como la información de movimiento del bloque vecino espacial o la información de movimiento del bloque vecino temporal. La memoria 360 puede almacenar muestras reconstruidas de bloques reconstruidos en la imagen actual, y transferir las muestras reconstruidas al intrapredictor 332.
En la presente memoria descriptiva, las realizaciones descritas en el predictor 330, el descuantificador 321, el transformador inverso 322 y el filtro 350 del aparato de descodificación 300 también se pueden aplicar de la misma manera o de forma correspondiente al predictor 220, el descuantificador 234, el transformador inverso 235 y el filtro 260 del aparato de codificación 200.
Mientras tanto, como se ha descrito anteriormente, al realizar la codificación de vídeo, se realiza la predicción para mejorar la eficiencia de compresión. A través de esto, se puede generar un bloque predicho que incluye muestras de predicción para un bloque actual como un bloque a codificar (es decir, un bloque objetivo de codificación). En este caso, el bloque predicho incluye muestras de predicción en un dominio espacial (o dominio de píxeles). El bloque predicho es derivado de la misma manera en un aparato de codificación y un aparato de decodificación, y el aparato de codificación puede señalizar información (información residual) sobre el residuo entre el bloque original y el bloque predicho, en lugar de un valor de muestra original de un bloque original, al aparato de decodificación, aumentando de este modo la eficiencia de codificación de imágenes. El aparato de decodificación puede derivar un bloque residual que incluye muestras residuales basadas en la información residual, añadir el bloque residual y el bloque predicho para generar bloques reconstruidos que incluyen muestras reconstruidas y generar una imagen reconstruida que incluye los bloques reconstruidos.
La información residual se puede generar a través de un procedimiento de transformada y cuantificación. Por ejemplo, el aparato de codificación puede derivar un bloque residual entre el bloque original y el bloque predicho, realizar un procedimiento de transformación en 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 e información residual relacionada con la señal al aparato de decodificación (a través de un flujo de bits). En este caso, la información residual puede incluir información de valor de 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 en base a 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 predicho y el bloque residual. Además, para referencia para la interpredicción de una imagen posteriormente, el aparato de codificación también puede descuantificar/transformar inversamente los coeficientes de transformada cuantificados para derivar un bloque residual y generar una imagen reconstruida basándose en los mismos.
La FIG. 4 ilustra esquemáticamente una técnica de multitransformada según el presente documento.
Haciendo referencia a la FIG. 4, un transformador puede corresponder al transformador en el aparato de codificación de la FIG. 2 como se describió anteriormente, y un transformador inverso puede corresponder al transformador inverso en el aparato de codificación de la FIG. 2, o el transformador inverso en el aparato de decodificación de la FIG. 3 como se describió anteriormente.
El transformador puede derivar coeficientes de transformada (primaria) realizando una transformada primaria basada en muestra residual (matriz de muestras residuales) en un bloque residual (S410). Dicha transformada primaria se puede denominar transformada de núcleo. En este caso, la transformada primaria puede basarse en la selección de transformada múltiple (MTS) y, en caso de que la transformada múltiple se aplique como la transformada primaria, se puede denominar transformada de múltiples núcleos.
Por ejemplo, la transformada de núcleos múltiples puede representar un método de transformada utilizando 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 núcleos múltiples 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 coeficientes de transformada primarios) de un dominio de frecuencia basándose en una pluralidad de núcleos de transformada seleccionados entre el tipo 2 de DCT, el tipo 7 de DST, el tipo 8 de DCT y el tipo 1 de DST. En este caso, los coeficientes de transformada primaria se pueden denominar coeficientes de transformada temporales en el lado del transformador.
En otras palabras, en caso de que se aplique el método de transformación existente, la transformación del dominio espacial para la señal residual (o bloque residual) en el dominio de frecuencia se puede aplicar basándose en el tipo 2 de DCT, y pueden generarse los coeficientes de transformada. Sin embargo, a diferencia de esto, en caso de que se aplique la transformada de múltiples núcleos, la transformada del dominio espacial para la señal residual (o bloque residual) en el dominio de frecuencia se puede aplicar basándose en el tipo 2 de DCT, el tipo 7 de DST, el tipo 8 de DCT y/o el tipo 1 de DST, y se pueden generar los coeficientes de transformada (o coeficientes de transformada primarios). En este caso, el tipo 2 de DCT, el tipo 7 de DST, el tipo 8 de DCT y el tipo 1 de DST se pueden denominar tipo de transformada, núcleo de transformada o núcleo de transformada. Los tipos de transformada DCT/DST se pueden definir basándose en funciones básicas.
En caso de que se realice la transformada de núcleos múltiples, se puede seleccionar un núcleo de transformada vertical y/o un núcleo de transformada horizontal para un bloque objetivo 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 caso, la transformada horizontal puede representar una transformada para componentes horizontales del bloque objetivo, y la transformada vertical puede representar una transformada para componentes verticales del bloque objetivo. El núcleo de transformada vertical/núcleo de transformada horizontal puede determinarse de manera adaptativa basándose en el modo de predicción y/o el índice de transformada del bloque objetivo (CU o subbloque) que incluye el bloque residual.
Además, por ejemplo, en caso de realizar una transformada primaria aplicando MTS, las funciones de base específicas pueden configurarse a valores especificados, y en caso de la transformada vertical o la 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, el trTypeHor o trTypeVer que tiene un valor de 0 se pueden configurar como DCT2, y el trTypeHor o trTypeVer que tiene un valor de 1 se pueden configurar como DST7. El trTypeHor o trTypeVer que tiene un valor de 2 puede configurarse como DCT8.
Alternativamente, por ejemplo, para indicar uno cualquiera de una pluralidad de conjuntos de núcleos de transformada, se puede codificar el índice MTS, y se puede señalizar información de índice MTS al aparato de decodificación. En este caso, el índice MTS se puede representar como elemento de sintaxis tu_mts_idx o elemento de sintaxis mts_idx. Por ejemplo, si el índice MTS es 0, puede representarse que los valores trTypeHor y trTypeVer son todos 0, y (trTypeHor, trTypeVer) = (DCT2, DCT2). Si el índice MTS es 1, puede representarse que los valores trTypeHor y trTypeVer son todos 1, y (trTypeHor, trTypeVer) = (DST7, DST7). Si el índice MTS es 2, puede representarse que el valor trTypeHor es 2, y el valor trTypeVer es 1, y (trTypeHor, trTypeVer) = (DCT8, DST7). Si el índice MTS es 3, puede representarse que el valor trTypeHor es 1, y el valor trTypeVer es 2, y (trTypeHor, trTypeVer) = (DST7, DCT8). Si el índice MTS es 4, puede representarse que los valores trTypeHor y trTypeVer son todos 2, y (trTypeHor, trTypeVer) = (DCT8, DCT8). Por ejemplo, el conjunto de núcleos de transformada según el índice MTS puede representarse como en la siguiente tabla.
[Tabla 1]
El transformador puede derivar coeficientes de transformada modificados (secundarios) realizando una transformada secundaria en base a los coeficientes de transformada (primarios) (S420). La transformada primaria puede ser una transformada del dominio espacial en el dominio de frecuencia, y la transformada secundaria puede representar una transformada en una expresión más compresiva utilizando 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 denominarse 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 caso, la transformada vertical y la transformada horizontal pueden no aplicarse por separado (o de manera independiente) 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) a una señal unidimensional a través de una dirección determinada específicamente (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 luego generar coeficientes de transformada modificados (o coeficientes de transformada secundarios) en base a la matriz de transformada no separable.
Por ejemplo, la dirección (u orden) de fila-primera puede representar una disposición de un bloque de MxN en una línea en el orden de una primera fila a una N-ésima fila, y la dirección (u orden) de columna-primera puede representar una disposición de un bloque de MxN en una línea en el orden de una primera columna a una M-ésima columna. En este caso, M y N pueden representar una anchura (W) y una altura (H) del bloque, y pueden ser todos 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, bloque de coeficientes de transformada). Por ejemplo, si la anchura (W) y la altura (H) del bloque de coeficientes de transformada son todas iguales o mayores que 8, se puede aplicar una transformada secundaria no separable de 8x8 al á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 min (8, W) x min (8, H) del bloque de coeficientes de transformada. Sin embargo, las realizaciones no se limitan a las mismas, y por ejemplo, incluso si se satisface una condición de que la anchura (W) y la altura (H) del bloque de coeficientes de transformada sean todas iguales o mayores que 4, la transformada secundaria no separable de 4x4 se puede aplicar al área de superior izquierda (8, W) x min (8, H) del bloque de coeficientes de transformada.
Específicamente, por ejemplo, en caso de que se utilice 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 puede representarse como sigue.
[Ecuación 1]
a 02 a 03
% 12 %13
X22 X23
%32^<3 3>-
Por ejemplo, la forma vectorial de la X se puede representar como sigue.
[Ecuación 2]
X = |* ü0Xln X02 X03 X10 Xll X12 X13 X20 X21 X22 X23 X30 X3Í X32 X¡ 3|T
Y
Haciendo referencia a la Ecuación 2,npuede representar el vector X, y el bloque bidimensional de la X en la Ecuación 1 se puede reorganizar y representar como el vector unidimensional de acuerdo con el primer orden de fila.
En este caso, la transformada secundaria no separable puede calcularse como sigue.
[Ecuación 3]
p
En este caso, puede representar un vector de coeficientes de transformada, y T puede representar una matriz de transformada de 16x16 (no separable).
Basándose en la ecuación 3,r Fteniendo un tamaño de 16x1 que puede ser derivado, yFpuede reorganizarse como un bloque de 4x4 a través de un orden de exploración (horizontal, vertical o diagonal). Sin embargo, el cálculo descrito anteriormente es a modo de ejemplo, y para reducir la complejidad del cálculo de la transformada secundaria no separable, la transformada de hipercubo dado (HyGT) y similares se pueden utilizar para calcular la transformada secundaria no separable.
Mientras tanto, en la transformada secundaria no separable, un núcleo de transformada (o centro de transformada o tipo de transformada) puede seleccionarse de una manera dependiente del modo. En este caso, el modo puede incluir un modo de intrapredicción y/o un modo de interpredicción.
Por ejemplo, como se describió anteriormente, la transformada secundaria no separable puede realizarse 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 todas 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 todas 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 de 4x4 superior izquierda dentro del bloque de coeficientes de transformada correspondiente. Por ejemplo, una matriz de núcleo de 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úcleos de transformada basada en modo, dos núcleos de transformada secundaria no separables por conjunto de transformada para la transformada secundaria no separable pueden configurarse con respecto a la totalidad de la transformada de 8x8 y la transformada de 4x4, y pueden proporcionarse 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 a modo de ejemplo, y se puede utilizar un tamaño excluyendo los 8x8 o 4x4, o se pueden configurar n conjuntos, o se pueden incluir k núcleos de transformada en cada conjunto. En este caso, n y k pueden ser números enteros positivos.
Por ejemplo, el conjunto de transformada puede denominarse un conjunto de NSST, y el núcleo de transformada en el conjunto de NSST puede denominarse un núcleo de NSST. Por ejemplo, la selección de un conjunto específico entre los conjuntos de transformada se puede realizar en base al modo de intrapredicción del bloque objetivo (CU o subbloque).
Por ejemplo, el modo de intrapredicción puede incluir dos modos de intrapredicción no direccionales o no angulares y 65 modos de intrapredicción direccionales o angulares. Los modos de intrapredicción no direccionales pueden incluir el modo de intrapredicción planar N° 0 y el modo de intrapredicción DC N° 1, y los modos de intrapredicción direccional pueden incluir 65 (No. 2 a N° 66) modos de intrapredicción. Sin embargo, esto es a modo de ejemplo, y la realización de acuerdo con el presente documento se puede aplicar incluso a un caso en el que se proporciona un número diferente de modos de intrapredicción. Mientras tanto, en algunos casos, el modo de intrapredicción N° 67 se puede utilizar adicionalmente, y el modo de intrapredicción N° 67 puede representar un modo de modelo lineal (LM).
La FIG. 5 ilustra a modo de ejemplo modos intradireccionales en 65 direcciones de predicción.
Con referencia a la FIG. 5, los modos se pueden dividir en modos de intrapredicción que tienen direccionalidad horizontal y modos de intrapredicción que tienen direccionalidad vertical alrededor del modo de intrapredicción N° 34 que tiene dirección de predicción diagonal superior izquierda. En la FIG. 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 retícula de muestra. Esto puede representar un desplazamiento para un valor de índice de modo.
Por ejemplo, los modos de intrapredicción N° 2 a N° 33 pueden tener la direccionalidad horizontal, y los modos de intrapredicción N° 34 a N° 66 tienen la direccionalidad vertical. Mientras tanto, técnicamente hablando, el modo de intrapredicción N° 34 se puede considerar que no tiene ni la direccionalidad horizontal ni la direccionalidad vertical, sino que puede clasificarse para pertenecer a la direccionalidad horizontal desde el punto de vista de determinar el conjunto de transformada de la transformada secundaria. Esto se debe a que los datos de entrada se transponen y se utilizan con respecto a los modos de dirección vertical que son simétricos alrededor del modo de intrapredicción N° 34, y se utiliza un método de disposición de datos de entrada para el modo de dirección horizontal con respecto al modo de intrapredicción N° 34. En este caso, la transposición de los datos de entrada puede significar la configuración de datos NxM de una manera que las filas se convierten en columnas y las columnas se convierten en filas con respecto a los datos de bloque bidimensional MxN.
Además, el modo de intrapredicción N° 18 y el modo de intrapredicción N° 50 pueden representar un modo de intrapredicción horizontal y un modo de intrapredicción vertical, respectivamente, y el modo de intrapredicción N° 2 se puede denominar modo de intrapredicción diagonal superior derecha, ya que la predicción se realiza en la dirección superior derecha con un píxel de referencia izquierdo. En el mismo contexto, el modo de intrapredicción N° 34 se puede denominar modo de intrapredicción diagonal inferior derecha, y el modo de intrapredicción N° 66 se puede denominar modo de intrapredicción diagonal inferior izquierda.
Mientras tanto, si se determina que se utiliza un conjunto específico para la transformada no separable, uno de los k núcleos de transformada en el conjunto específico se puede seleccionar 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 tasadistorsió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 secundaria 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. Alternativamente, 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 anteriormente.
El transformador puede realizar la transformada secundaria no separable en base a los núcleos de transformada seleccionados, y puede obtener coeficientes de transformada modificados (secundarios). 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 la transformada secundaria se omite 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 de codificación.
Haciendo referencia de nuevo a la FIG. 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 (primarios) realizando transformada secundaria (inversa) (S450) y obtener un bloque residual (muestras residuales) realizando transformada primaria (inversa) con respecto a los coeficientes de transformada (primarios) (S460). En este caso, los coeficientes de transformada primaria se pueden denominar 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 predicho, y pueden generar una imagen reconstruida basándose en esto.
Mientras tanto, el aparato de descodificación puede incluir además un determinador de aplicación/no aplicación de transformada inversa secundaria (o elemento para determinar si aplicar 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 NSST o 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 analizado sintácticamente u obtenido a partir de un flujo de bits. Alternativamente, por ejemplo, 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 el conjunto de transformada de NSST (o RST) designado de acuerdo con el modo de intrapredicción. Alternativamente, un método de determinación de transformada secundaria se puede determinar dependiendo de un método de determinación de transformada primaria. Alternativamente, diversas combinaciones de la transformada primaria y de la transformada secundaria se pueden determinar de acuerdo con el modo de intrapredicció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 la transformada secundaria (inversa) se omite como se ha descrito anteriormente, el bloque residual (muestras residuales) puede obtenerse 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 en el bloque predicho, y pueden generar una imagen reconstruida basándose en esto.
Mientras tanto, en el presente documento, para reducir una cantidad de cálculo y una cantidad de requisito de memoria que están acompañadas por la transformada secundaria no separable, una transformada secundaria reducida (RST) que tiene un tamaño reducido de la matriz de transformada (núcleo) puede aplicarse al 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 se puede utilizar para resolver el problema de complejidad de cálculo que se produce durante la transformada de un bloque que tiene una transformada de gran tamaño o no separable.
Por ejemplo, la RST puede denominarse varios términos, tales como transformada reducida, transformada secundaria reducida, transformada de reducción, transformada simplificada o transformada simple, y los nombres a los que se hace referencia a la RST no se limitan 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 una transformada no separable de baja frecuencia (LFNST).
Mientras tanto, en caso de que la transformada inversa secundaria se realice basándose en la RST, el transformador inverso 235 del aparato de codificación 200 y el transformador inverso 322 del aparato de decodificación 300 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 al residuo. 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 FIGS. 6 y 7 son diagramas que explican la RST de acuerdo con una realización del presente documento.
Por ejemplo, la FIG. 6 puede ser una figura que explica que se aplica una transformada reducida directa, y la FIG. 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 cual se realiza la codificación.
Por ejemplo, en la RST, un vector N-dimensional puede mapearse en un vector R-dimensional ubicado en otro espacio, y puede determinarse una matriz de transformada reducida. En este caso, 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 se puede denominar con diversos términos, tales como factor reducido, factor de reducción, factor simplificado o factor simple. Mientras tanto, R se puede denominar 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 no se limita a ello. Por ejemplo, los valores predefinidos para el factor de simplificación o el coeficiente reducido pueden almacenarse en el aparato de codificación 200 y en el aparato de decodificación 300, 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 regular, 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 FIG. 6 puede representar la matriz T rxn de la ecuación 4. Como se muestra en la FIG. 6, en caso de que las muestras residuales para el bloque objetivo se multipliquen por la matriz de transformada de simplificación T rxn, se pueden obtener los coeficientes de transformada para el bloque objetivo.
Por ejemplo, en caso de que el tamaño del bloque al que se aplica la transformada sea 8<x>8, y R sea 16 (es decir, R/N = 16/64 = 1/4), la RST de acuerdo con la FIG. 6 se puede expresar mediante una operación de matriz como en la Ecuación 5 siguiente. En este caso, la memoria y la operación de multiplicación se pueden reducir a aproximadamente 1/4 por el factor de simplificación.
En el presente documento, la operación de matriz se puede entender como una operación de obtención de 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, n a r64 pueden representar muestras residuales para el bloque objetivo. Alternativamente, por ejemplo, pueden ser coeficientes de transformada generados aplicando la transformada primaria. Basándose en el resultado de la operación de la Ecuación 5, se pueden derivar los coeficientes de transformada ci para el bloque objetivo.
Por ejemplo, en caso de que R sea 16, se pueden derivar los coeficientes de transformada c c<16>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 regular en lugar de la RST se multiplica por las muestras residuales que tienen un tamaño de 64x1 (Nx1 ), 64 (N) se pueden derivar los coeficientes de transformada para el bloque objetivo, pero dado que se aplica la<r>S<t>, se pueden derivar solo 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, la cantidad de datos que el aparato de codificación 200 transmite al aparato de decodificación 300 se puede reducir y, por lo tanto, la eficiencia de transmisión entre el aparato de codificación 200 y el aparato de decodificación 300 se puede incrementar.
En consideración del tamaño de la matriz de transformada, dado que el tamaño de la matriz de transformada regular es 64<x>64 (N<x>N), y el tamaño de la matriz de transformada de simplificación se reduce a 16<x>64 (R<x>N), el uso de memoria cuando se realiza la RST puede reducirse en una relación R/N en comparación con un caso en el que se realice la transformada regular. Además, en comparación con el número (NxN) de operaciones de multiplicación cuando se usa la matriz de transformada regular, 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 de codificación 200 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 de decodificación 300, y el transformador inverso 322 del aparato de decodificación 300 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 RST inversa T<nxr>de acuerdo con una realización, puede ser NxR que es menor que el tamaño NxN de la matriz de transformada inversa regular, y puede estar en relación de transposición con la matriz de transformada de simplificación T<rxn>ilustrada en la ecuación 4.
La matriz Tt en el bloque de transformada inversa reducido ilustrado en la FIG. 7 puede representar una matriz de RST inversa T<rxnt>. En este caso, el superíndice T puede representar la transpuesta. Como se muestra en la FIG. 7, en caso de que los coeficientes de transformada para el bloque objetivo se multipliquen por la matriz de RST inversa T<rxnt>se pueden obtener los coeficientes de transformada modificados para el bloque objetivo o las muestras residuales para el bloque objetivo. La matriz RST inversa T<rxnt>puede expresarse como (T<rxn>)<tnxr>.
Más específicamente, en caso de que se aplique la RST inversa 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 RST inversa Trxnt . Mientras tanto, la RST inversa se puede aplicar como la transformada primaria inversa, y en este caso, las muestras residuales para el bloque objetivo pueden derivarse multiplicando los coeficientes de transformada para el bloque objetivo por la matriz de RST inversa T<rxn>t .
En una realización, en 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 FIG. 7 se puede expresar mediante una operación de matriz como en la Ecuación 6 siguiente.
[Ecuación 6]
En la ecuación 6, c<1>a c<16>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 puede derivarse basándose en el resultado de la operación de la ecuación 6. Es decir, se pueden derivar n a rN que representan los coeficientes de transformada modificados para el bloque objetivo o las muestras residuales para el bloque objetivo.
En consideración del tamaño de la matriz de transformada inversa, dado que el tamaño de la matriz de transformada inversa regular es 64x64 (NxN), y el tamaño de la matriz de transformada inversa de simplificación se reduce a 64x16 (NxR), el uso de memoria cuando se realiza la RST inversa se puede reducir en una relación R/N en comparación con un caso en el que se realiza la transformada inversa regular. Además, en comparación con el número (NxN) de operaciones de multiplicación cuando se usa la matriz de transformada inversa regular, 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 8x8. Es decir, la RST 8x8 correspondiente se puede aplicar de acuerdo con el conjunto de transformada. Dado que un conjunto de transformadas está compuesto por dos o tres núcleos de transformada según el modo de intrapredicción, se puede configurar para seleccionar una de cuatro transformadas como máximo, incluyendo incluso un caso en el que no se aplique la transformada secundaria. En la transformada cuando no se aplica la transformada secundaria, se puede considerar que se ha aplicado una matriz de 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 a aplicar puede designarse señalizando un elemento de sintaxis que es un índice NSST a cada bloque de coeficientes de transformada. Es decir, a través del índice NSST, 8x8 NSST se puede designar para un bloque superior izquierdo de 8x8, y en la configuración RST, 8x8 RST se puede designar. 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 sean todas iguales o mayores que 8, y el área de 8x8 puede ser el área de 8x8 superior izquierda dentro del bloque de coeficientes de transformada correspondiente. De manera similar, la NSST 4x4 y la RST 4x4 pueden representar transformadas que se pueden aplicar 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 sean todas iguales o mayores que 4, y el área de 4x4 puede ser el área 4x4 superior izquierda 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 el residuo basándose en diversos métodos de codificación, tales como exponencial de Golomb, 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 descodificación puede derivar el valor del elemento de sintaxis o los valores cuantificados del coeficiente de transformada para el residuo basándose en diversos métodos de codificación, tales como codificación exponencial de Golomb, CAVLC, CABAC y similares.
Por ejemplo, los métodos de codificación descritos anteriormente se pueden realizar como los contenidos que se describirán más adelante.
La FIG. 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 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 binarización. 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), la binarización puede no realizarse, pero la señal de entrada puede usarse tal cual. En este caso, cada número binario 0 o 1 que constituye el valor binario puede denominarse un bin. Por ejemplo, si una cadena binaria después de la binarización es 110, cada uno de 1, 1 y 0 puede representarse como un bin. El bin(s) para un elemento de sintaxis puede representar el valor del elemento de sintaxis. La binarización puede basarse en varios métodos de binarización, tales como un proceso de binarización de rice truncado o un proceso de binarización de longitud fija, y el método de binarización para un elemento de sintaxis objetivo puede estar predefinido. El procedimiento de binarización se puede realizar mediante un binarizador en un codificador de entropía.
A continuación, los bins binarios del elemento de sintaxis pueden introducirse en un motor de codificación regular o un motor de codificación de derivación. El motor de codificación regular del aparato de codificación puede asignar un modelo de contexto que refleja un valor de probabilidad con respecto al bin correspondiente, y codificar el bin correspondiente basándose en el modelo de contexto asignado. El motor de codificación regular del aparato de codificación puede actualizar el modelo de contexto para el bin correspondiente después de realizar la codificación con respecto a los bins respectivos. Los bins que se codifican como los contenidos descritos anteriormente pueden representarse como bins codificados por contexto.
Mientras tanto, en caso de que los bins binarios del elemento de sintaxis se introduzcan en el motor de codificación de derivación, pueden codificarse de la siguiente manera. Por ejemplo, el motor de codificación de derivación del aparato de codificación puede omitir un procedimiento para estimar la probabilidad con respecto al bin de entrada y un procedimiento para actualizar un modelo de probabilidad que se ha aplicado al bin después de la codificación. En caso de que se aplique la codificación de derivación, el aparato de codificación puede codificar el bin de entrada aplicando una distribución de probabilidad regular en lugar de asignar el modelo de contexto, y a través de esto, se puede mejorar la velocidad de codificación. El bin que se codifica como el contenido descrito anteriormente puede representarse como un bin de derivación.
La descodificació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 descodificación (descodificador de entropía) puede descodificar información de imagen/vídeo codificada. La información de imagen/vídeo puede incluir información relacionada con la partición, información relacionada con la predicción (por ejemplo, información de división entre/intrapredicción, información de modo de intrapredicción, información de modo de inter predicción y similares), información residual o información relacionada con el filtrado en bucle, o puede incluir diversos elementos de sintaxis alrededor de la misma. La codificación por entropía puede realizarse en la unidad de un elemento de sintaxis.
El aparato de descodificación puede realizar la binarización de elementos de sintaxis objetivo. En este caso, la binarización puede basarse en varios métodos de binarización, tales como un proceso de binarización de rice truncado o un proceso de binarización de longitud fija, y el método de binarización para el elemento de sintaxis objetivo puede estar predefinido. El aparato de decodificación puede derivar cadenas de bin disponibles (candidatos de cadena de bin) para valores disponibles de los elementos de sintaxis objetivo a través del procedimiento de binarizacion. El procedimiento de binarización se puede realizar por el binarizador en el decodificador de entropía.
El aparato de descodificación puede comparar la cadena de bins derivada con cadenas de bins disponibles para los elementos de sintaxis correspondientes mientras descodifica o analiza secuencialmente los bins respectivos para los elementos de sintaxis objetivo a partir de bit(s) de entrada en el flujo de bits. Si la cadena de bins derivada es igual a una de las cadenas de bins disponibles, el valor correspondiente a la cadena de bins correspondiente se deriva como el valor del elemento de sintaxis correspondiente. Si no, 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 dicho proceso, es posible realizar la señalización de información específica (o elemento de sintaxis específico) en el flujo de bits utilizando un bit de longitud variable incluso sin utilizar 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 una eficiencia de codificación general.
El aparato de descodificación puede realizar una descodificación basada en modelos de contexto o basada en derivaciones de los respectivos bins en la cadena de bins a partir 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 descodificación puede recibir el bin correspondiente al elemento de sintaxis a través del flujo de bits, puede determinar un modelo de contexto utilizando el elemento de sintaxis y descodificando información del bloque objetivo de descodificación o el bloque vecino o información de símbolo/bin descodificados en la etapa anterior, y puede derivar el valor del elemento de sintaxis realizando una descodificación aritmética del bin a través de la predicción de la probabilidad de aparición del bin recibido de acuerdo con el modelo de contexto determinado. A continuación, el modelo de contexto del bin 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 intervalos codificados por contexto (codificados regularmente), y el modelo de contexto puede indicarse basándose en el índice de contexto (ctxIdx) o el incremento del índice de contexto (ctxInc). CtxIdx puede derivarse basándose en ctxInc. Específicamente, por ejemplo, el ctxIdx que representa el modelo de contexto para cada uno de los binarios codificados regularmente puede ser derivado por la suma de ctxInc y el desplazamiento de índice de contexto (ctxIdxOffset). Por ejemplo, el ctxInc puede derivarse de manera diferente mediante bins. El ctxIdxOffset puede representarse como el valor más bajo del ctxIdx. En general, el ctxIdxOffset puede ser un valor que se usa para distinguir el mismo 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 realizar la codificación a través del motor de codificación regular o realizar la codificación a través del motor de codificación de derivación y, en consecuencia, puede cambiarse una trayectoria de codificación. La descodificació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 descodificación puede recibir el bin correspondiente al elemento de sintaxis a través del flujo de bits, y puede descodificar el bin de entrada aplicando una distribución de probabilidad regular. En este caso, el aparato de descodificación puede omitir un procedimiento de derivación del modelo de contexto del elemento de sintaxis y un procedimiento de actualización del modelo de contexto aplicado al bin después de la descodificación.
Mientras tanto, una realización del presente documento puede proponer un esquema para señalizar un índice MTS. En este caso, el índice MTS, como se describió anteriormente, puede representar uno cualquiera de una pluralidad de conjuntos de núcleos de transformada, y el índice MTS puede codificarse y la información de índice MTS puede señalizarse al aparato de decodificación. El aparato de decodificación puede obtener el índice MTS decodificando la información de índice MTS, y puede determinar un conjunto de núcleos de transformada que se aplicará basándose en el índice MTS. El índice MTS puede representarse como un elemento de sintaxis tu_mts_idx o un elemento de sintaxis mts_idx. Por ejemplo, el índice MTS puede binarizarse usando el parámetro de Rice-Golmb de orden 0°, pero puede binarizarse basándose en rice truncado. En caso de la binarización basada en el rice truncado, un parámetro de entrada cMax puede tener el valor de 4, y cRiceParam puede tener el valor de 0. Por ejemplo, el aparato de codificación puede obtener bin(s) para el índice MTS mediante binarización del índice MTS, obtener información de índice MTS (bit(s) para índice MTS) mediante codificación del bin(s) derivado, y señalizar la información de índice MTS al aparato de decodificación. El aparato de descodificación puede derivar el bin(s) para el índice MTS descodificando la información de índice MTS, y derivar el índice MTS comparando el bin(s) derivado para el índice MTS con bin(s) candidato para el índice MTS.
Por ejemplo, el índice MTS (por ejemplo, el elemento de sintaxis tu_mts_idx o el elemento de sintaxis mts_idx) puede codificarse por contexto basándose en el modelo de contexto o índice de contexto con respecto a todos los bins. En este caso, un incremento del índice de contexto (ctxInc) para la codificación de contexto del índice MTS o ctxInc de acuerdo con la ubicación del bin puede asignarse o determinarse como en la Tabla 2. Además, se puede seleccionar un modelo de contexto de acuerdo con la ubicación del bin como en la Tabla 2.
[Tabla 2]
Con referencia a la Tabla 2, el ctxInc para el bin N° 0 (primer bin) puede asignarse en base a cqtDepth. En este caso, el cqtDepth puede representar una profundidad de árbol cuaternario para el bloque actual, y puede derivarse como un valor de 0 a 5. Es decir, el ctxInc para el 0° bin puede asignarse con un valor de 0 a 5 de acuerdo con el cqtDepth. Además, el ctxInc Para el bin N° 1 (segundo bin) puede asignarse con 6, el ctxInc para el bin N° 2 (tercer bin) puede asignarse con 7, y el ctxInc para el bin N° 3 (cuarto bin) puede asignarse con 8. Es decir, el bin N° 0 al bin N° 3 pueden ser asignados con ctxInc que tiene diferentes valores. En este caso, el valor ctxInc diferente puede representar diferentes modelos de contexto, y en este caso, se pueden proporcionar 9 modelos de contexto para la codificación de índice MTS.
Además, por ejemplo, el índice MTS (por ejemplo, el elemento de sintaxis tu_mts_idx o el elemento de sintaxis mts_idx) puede codificarse por derivación con respecto a todos los binarios como en la Tabla 3. En este caso, se puede proporcionar un modelo de contexto 0 para la codificación de índice MTS.
[Tabla 3]
Además, por ejemplo, el índice MTS (por ejemplo, el elemento de sintaxis tu_mts_idx o el elemento de sintaxis mts_idx) pueden codificarse por contexto basándose en el modelo de contexto o el índice de contexto con respecto a N0. 0 bin (primer bin) como en la Tabla 4, y puede ser codificado por derivación con respecto a los bins restantes. Es decir, el ctxInc para el bin N° 0 (primer bin) puede asignarse con 0. En este caso, puede proporcionarse un modelo de contexto para la codificación de índice MTS.
[Tabla 4]
Además, por ejemplo, el índice MTS (por ejemplo, el elemento de sintaxis tu_mts_idx o el elemento de sintaxis mts_idx) puede codificarse por contexto basándose en el modelo de contexto o el índice de contexto con respecto al bin N° 0 (primer bin) y al bin N° 1 (segundo bin) como en la Tabla 5, y puede ser codificado por derivación con respecto a los bins restantes. Es decir, el ctxInc para el bin N° 0 (primer bin) puede asignarse con 0, y el ctxInc para el bin N° 1 (segundo bin) puede asignarse con 1. En este caso, se pueden proporcionar 2 modelos de contexto para la codificación de índice MTS.
[Tabla 5]
Además, por ejemplo, el índice MTS (por ejemplo, el elemento de sintaxis tu_mts_idx o el elemento de sintaxis mts_idx) puede codificarse por contexto basándose en el modelo de contexto o el índice de contexto con respecto a todos los bins como en la tabla 6, y puede asignar un ctxInc con respecto a cada bin. Es decir, el ctxInc para el bin N° 0 (primer bin) puede asignarse con 0, y el ctxInc para el bin N° 1 (segundo bin) puede asignarse con 1. El ctxInc para el bin N° 2 (tercer bin) puede asignarse con 2, y el ctxInc para el bin N° 3 (cuarto bin) puede asignarse con 2. En este caso, se pueden proporcionar 4 modelos de contexto para la codificación de índice MTS.
[Tabla 6]
Como se ha descrito anteriormente, de acuerdo con una realización, dado que el número de modelos de contexto se reduce aplicando la codificación de derivación a todos o algunos de los bins del índice MTS o aplicando un valor específico al ctxInc aunque se aplica la codificación de contexto, la complejidad puede reducirse, y la cantidad de salida del decodificador puede aumentarse. Además, en una realización, en caso de usar modelos de contexto como se describió anteriormente, el valor inicial y/o el tamaño de múltiples ventanas pueden ser variables en base a las estadísticas de ocurrencia para la posición de cada bin.
Las FIGS. 9 y 10 ilustran esquemáticamente un método de codificación de vídeo/imagen y un ejemplo de componentes relacionados de acuerdo con la realización(s) del presente documento.
El método mostrado en la FIG. 9 puede ser realizado por el aparato de codificación mostrado en la FIG. 2 o la FIG.
10. Específicamente, por ejemplo, S900 a S920 de la FIG. 9 pueden ser realizados por el procesador residual 230 del aparato de codificación de la FIG. 10, y S930 de la FIG. 9 pueden ser realizados por el codificador de entropía 240 del aparato de codificación de la FIG. 10. Además, aunque no se ilustra en la FIG. 9, las muestras de predicción o la información relacionada con la predicción pueden ser derivadas por el predictor 220 del aparato de codificación de la FIG. 10, la información residual puede ser derivada de las muestras originales o las muestras de predicción por el procesador residual 230 del aparato de codificación, y el flujo de bits puede ser generado a partir de la información residual o de la información relacionada con la predicción por el codificador de entropía 240 del aparato de codificación. El método descrito en la FIG. 9 puede incluir las realizaciones descritas anteriormente en el presente documento.
Haciendo referencia a la FIG. 9, el aparato de codificación deriva las muestras residuales para el bloque actual (S900). Por ejemplo, el aparato de codificación puede derivar las muestras residuales en base a las muestras de predicción y las muestras originales. Aunque no se ilustra en la FIG. 9, para generar las muestras de predicción para el bloque actual, el aparato de codificación puede realizar intrapredicción o interpredicción con respecto al bloque actual en consideración a un coste de distorsión de tasa RD), y puede generar la información relacionada con la predicción que incluye la información de modo/tipo de predicción.
El aparato de codificación deriva los coeficientes de transformada para el bloque actual basándose en las muestras residuales (S910). Por ejemplo, el aparato de codificación puede derivar coeficientes de transformada realizando una transformada con respecto a las muestras residuales. En este caso, la transformada se puede realizar basándose en un núcleo de transformada o en un conjunto de núcleos de transformada. Por ejemplo, el conjunto de núcleos de transformada puede incluir un núcleo de transformada de dirección horizontal y un núcleo de transformada de dirección vertical. Por ejemplo, el aparato de codificación puede derivar los coeficientes de transformada realizando la transformada primaria con respecto a las muestras residuales. Además, por ejemplo, el aparato de codificación puede derivar coeficientes de transformada temporales realizando la transformada primaria con respecto a las muestras residuales, y puede derivar los coeficientes de transformada realizando una transformada secundaria con respecto a los coeficientes de transformada temporales. Por ejemplo, la transformada que se realiza basándose en el conjunto de núcleos de transformada se puede representar como la transformada primaria.
El aparato de codificación genera el índice MTS y la información residual basándose en los coeficientes de transformada (S920). En otras palabras, el aparato de codificación puede generar el índice MTS y/o la información residual basándose en los coeficientes de transformada.
El índice MTS puede representar el conjunto de núcleos de transformada aplicado a (los coeficientes de transformada) del bloque actual entre los candidatos de conjunto de núcleos de transformada. En este caso, el índice MTS puede representarse como el elemento de sintaxis tu_mts_idx o el elemento de sintaxis mts_idx. Como se ha descrito anteriormente, el conjunto de núcleos de transformada puede incluir el núcleo de transformada de dirección horizontal y el núcleo de transformada de dirección vertical, y el núcleo de transformada de dirección horizontal puede representarse como trTypeHor, y el núcleo de transformada de dirección vertical puede representarse como trTypeVer.
Por ejemplo, los valores trTypeHor y trTypeVer pueden representarse por el núcleo de transformada de dirección horizontal y el núcleo de transformada de dirección vertical aplicado a (los coeficientes de transformada) del bloque actual, y el índice MTS puede representarse como uno de los candidatos que incluyen de 0 a 4 por los valores trTypeHor y trTypeVer.
Por ejemplo, si el índice MTS es 0, puede representar que trTypeHor y trTypeVer son todos 0. Además, si el índice MTS es 1, puede representar que trTypeHor y trTypeVer son todos 1. Además, si el índice MTS es 2, puede representar que el trTypeHor es 2 y el trTypeVer es 1. Si el índice MTS es 3, puede representar que el trTypeHor es 1 y el trTypeVer es 1. Además, si el índice MTS es 4, puede representar que trTypeHor y trTypeVer son todos 2. Por ejemplo, si el valor trTypeHor o trTypeVer es 0, puede representar que se aplica DCT2 a (los coeficientes de transformada) del bloque actual en la dirección horizontal o en la dirección vertical, si es 1, puede representar que se aplica DST7, y si es 2, puede representar que se aplica DCT8. Es decir, cada uno del núcleo de transformada que se aplicará en la dirección horizontal y el núcleo de transformada que se aplicará en la dirección vertical se puede representar como uno de los candidatos que incluyen DCT2, DST7 y DCT8 basándose en el índice MTS.
El índice MTS puede representarse basándose en los bins de la cadena de bins del índice MTS. En otras palabras, el índice MTS puede binarizarse y representarse como (los bins) de la cadena de bins del índice MTS, y (los bins) de la cadena de bins del índice MTS pueden codificarse por entropía.
En otras palabras, al menos uno de los bins de la cadena de bins del índice MTS puede representarse basándose en la codificación de contexto. En este caso, la codificación de contexto puede realizarse basándose en el valor del incremento del índice de contexto (ctxInc). Además, la codificación de contexto puede realizarse basándose en el índice de contexto (ctxIdx) o en el modelo de contexto. En este caso, el índice de contexto puede representarse basándose en el valor del incremento del índice de contexto. Además, el índice de contexto puede representarse basándose en el valor del incremento del índice de contexto y en el desplazamiento del índice de contexto (ctxIdxOffset).
Por ejemplo, todos los bins de la cadena de bins del índice MTS pueden representarse basándose en la codificación de contexto. Por ejemplo, el ctxInc para el primer bin o el 0° bin (bin 0) entre los bins de la cadena de bins del índice MTS puede representarse basándose en cqtDepth. En este caso, el cqtDepth puede representar una profundidad de árbol cuaternario para el bloque actual, y puede representarse como un valor entre 0 y 5. Además, el ctxInc para el segundo bin o bin N° 1 (bin 1) puede representarse como 6, el ctxInc para el tercer bin o bin N° 2 (bin 2) puede representarse como 7, y el ctxInc para el cuarto bin o bin N° 3 (bin 3) puede representarse como 8. Además, por ejemplo, el ctxInc para el primer bin o el 0° bin (bin 0) entre los bins de la cadena de bins del índice MTS puede representarse como 0, el ctxInc para el segundo bin o el bin N° 1 (bin 1) puede representarse como 1, el ctxInc para el tercer bin o bin N° 2 (bin 2) puede representarse como 2, y el ctxInc para el cuarto bin o bin N° 3 (bin 3) puede representarse como 3. Es decir, el número de valores de incremento de índice de contexto que pueden utilizarse para la codificación de contexto del primer bin entre los bins de la cadena de bins puede ser uno.
Además, por ejemplo, algunos de los bins de la cadena de bins del índice MTS pueden representarse basándose en la codificación de contexto, y los restantes pueden representarse basándose en la codificación de derivación. Por ejemplo, el ctxInc para el primer bin o bin N° 0 (bin 0) entre los bins de la cadena de bins del índice MTS puede representarse como 0, y los bins restantes pueden representarse basándose en la codificación de derivación. Además, por ejemplo, el ctxInc para el primer bin o bin N° 0 (bin 0) entre los bins de la cadena de bins del índice MTS puede representarse como 0, el ctxInc para el segundo bin o bin N° 1 (bin 1) puede representarse como 1, y los bins restantes pueden representarse basándose en la codificación de derivación. Es decir, el número de valores de incremento de índice de contexto que pueden utilizarse para la codificación de contexto del primer bin entre los bins de la cadena de bins puede ser uno.
Además, todos los bins de la cadena de bins del índice MTS pueden representarse basándose en la codificación de derivación. En este caso, la codificación de derivación puede representar la realización de la codificación de contexto basándose en la distribución de probabilidad uniforme, y dado que se omite el procedimiento de actualización de la codificación de contexto, puede mejorarse la eficiencia de codificación.
La información residual puede representar información que se utiliza para derivar las muestras residuales. Además, por ejemplo, el aparato de codificación puede realizar la cuantificación para los coeficientes de transformada, y la información residual puede incluir información sobre las muestras residuales, información relacionada con la transformada y/o información relacionada con la cuantificación. Por ejemplo, la información residual puede incluir información sobre los coeficientes de transformada cuantificados.
El aparato de codificación codifica información de imagen que incluye el índice MTS y la información residual (S930). Por ejemplo, la información de imagen puede incluir además información relacionada con la predicción. Por ejemplo, el aparato de codificación puede generar un flujo de bits codificando la información de imagen. El flujo de bits puede denominarse información codificada (imagen).
Además, aunque no se ilustra en la FIG. 9, por ejemplo, el aparato de codificación puede generar muestras reconstruidas basándose en las muestras residuales y en las muestras de predicción. Además, un bloque reconstruido y una imagen reconstruida pueden derivarse en base a las muestras reconstruidas.
Por ejemplo, el aparato de codificación puede generar el flujo de bits o la información codificada codificando la información de imagen que incluye toda o parte de la información descrita anteriormente (o elementos de sintaxis). Además, la información puede producirse en forma de un flujo de bits. Además, el flujo de bits o la información codificada pueden transmitirse al aparato de descodificación a través de la red o medio de almacenamiento. Además, el flujo de bits o la información codificada pueden almacenarse en un medio de almacenamiento legible por ordenador, y el flujo de bits o la información codificada pueden generarse mediante el método de codificación de imágenes descrito anteriormente.
Las FIGS. 11 y 12 ilustran esquemáticamente un método de decodificación de vídeo/imagen y un ejemplo de componentes relacionados de acuerdo con la(s) realización(es) del presente documento.
El método descrito en la FIG. 11 puede ser realizado por un aparato de decodificación descrito en la FIG. 3 o en la FIG. 12. Específicamente, por ejemplo, S1100 de la FIG. 11, puede realizarse por el decodificador de entropía 310 del aparato de decodificación de la FIG. 12, y S1110 y S1120 de la FIG. 11 pueden ser realizados por el procesador residual 320 del aparato de decodificación de la FIG. 12. Además, aunque no se ilustra en la FIG. 11, la información relacionada con la predicción o la información residual puede ser derivada del flujo de bits por el decodificador de entropía 310 del aparato de decodificación de la FIG. 12, y las muestras residuales pueden ser derivadas de la información residual por el procesador residual 320 del aparato de decodificación. Las muestras de predicción pueden derivarse de la información relacionada con la predicción mediante el predictor 330 del aparato de decodificación, y el bloque reconstruido o la imagen reconstruida pueden derivarse de las muestras residuales o de las muestras de predicción mediante el sumador 340 del aparato de decodificación. El método descrito en la FIG. 11 puede incluir las realizaciones descritas anteriormente en el presente documento.
Haciendo referencia a la FIG. 11, el aparato de decodificación obtiene el índice MTS y la información residual del flujo de bits (S1100). Por ejemplo, el aparato de decodificación puede obtener el índice MTS y/o la información residual analizando o decodificando el flujo de bits. En este caso, el flujo de bits puede denominarse información codificada (imagen).
El índice MTS puede representar el conjunto de núcleos de transformada que se aplicará al bloque actual entre los candidatos de conjunto de núcleos de transformada. En este caso, el índice MTS puede representarse como el elemento de sintaxis tu_mts_idx o el elemento de sintaxis mts_idx. Además, el conjunto de núcleos de transformada puede incluir el núcleo de transformada que se aplicará al bloque actual en la dirección horizontal y el núcleo de transformada que se aplicará al bloque actual en la dirección vertical. En este caso, el núcleo de transformada que se aplicará en la dirección horizontal se puede representar como trTypeHor, y el núcleo de transformada que se aplicará en la dirección vertical se puede representar como trTypeVer.
Por ejemplo, el índice MTS puede derivarse como uno de los candidatos que incluyen de 0 a 4, y de acuerdo con el índice MTS, cada uno de trTypeHor y trTypeVer puede derivarse como uno de 0 a 2. Por ejemplo, si el índice MTS es 0, el trTypeHor y el trTypeVer pueden ser todos 0. Además, si el índice MTS es 1, el trTypeHor y el trTypeVer pueden ser todos 1. Además, si el índice MTS es 2, el trTypeHor puede ser 2, y el trTypeVer puede ser 1. Si el índice MTS es 3, el trTypeHor puede ser 1, y el trTypeVer puede ser 1. Además, si el índice MTS es 4, el trTypeHor y el trTypeVer pueden ser todos 2. Por ejemplo, el valor trTypeHor o trTypeVer puede representar el núcleo de transformada, y si es 0, puede representar DCT2, si es 1, puede representar DST7, y si es 2, puede representar DCT8. Es decir, cada uno del núcleo de transformada que se aplicará en la dirección horizontal y el núcleo de transformada que se aplicará en la dirección vertical se puede derivar como uno de los candidatos que incluyen DCT2, DST7 y DCT8 basándose en el índice MTS.
El índice MTS puede derivarse en base a los bins de la cadena de bins del índice MTS. En otras palabras, la información de índice MTS puede decodificarse por entropía y puede derivarse como un índice MTS binarizado, y el índice MTS binarizado puede representarse como (los bins) de la cadena de bins del índice MTS.
En otras palabras, al menos uno de los bins de la cadena de bins del índice MTS puede derivarse basándose en la codificación de contexto. En este caso, la codificación de contexto se puede realizar basándose en el valor del incremento del índice de contexto (ctxInc). Además, la codificación de contexto se puede realizar basándose en el índice de contexto (ctxIdx) o el modelo de contexto. En este caso, el índice de contexto puede derivarse basándose en el valor del incremento del índice de contexto. Además, el índice de contexto puede derivarse basándose en el valor del incremento del índice de contexto y el desplazamiento del índice de contexto (ctxIdxOffset).
Por ejemplo, todos los bins de la cadena de bins del índice MTS pueden derivarse basándose en la codificación de contexto. Por ejemplo, el ctxInc para el primer bin o el 0° bin (bin 0) entre los bins de la cadena de bins del índice MTS puede asignarse basándose en cqtDepth. En este caso, el cqtDepth puede representar una profundidad de árbol cuaternario para el bloque actual, y puede derivarse como un valor entre 0 y 5. Además, el ctxInc para el segundo bin o bin N° 1 (bin 1) puede asignarse con 6, el ctxInc para el tercer bin o bin N° 2 (bin 2) puede asignarse con 7, y el ctxInc para el cuarto bin o bin N° 3 (bin 3) puede asignarse con 8. Además, por ejemplo, el ctxInc para el primer bin o el 0° bin (bin 0) entre los bins de la cadena de bins del índice MTS puede asignarse con 0, el ctxInc para el segundo bin o el bin N° 1 (bin 1) puede asignarse con 1, el ctxInc para el tercer bin o el bin N° 2 (bin 2) puede asignarse con 2, y el ctxInc para el cuarto bin o el bin N° 3 (bin 3) puede asignarse con 3. Es decir, el número de valores de incremento de índice de contexto que pueden utilizarse para la codificación de contexto del primer bin entre los bins de la cadena de bins puede ser uno.
Además, por ejemplo, algunos de los bins de la cadena de bins del índice MTS pueden derivarse basándose en la codificación de contexto, y los restantes pueden derivarse basándose en la codificación de derivación. Por ejemplo, el ctxInc para el primer bin o bin N° 0 (bin 0) entre los bins de la cadena de bins del índice MTS puede asignarse con 0, y los bins restantes pueden derivarse basándose en la codificación de derivación. Además, por ejemplo, el ctxInc para el primer bin o bin N° 0 (bin 0) entre los bins de la cadena de bins del índice MTS puede asignarse con 0, el ctxInc Para el segundo bin o bin N° 1 (bin 1) puede asignarse con 1, y los bins restantes pueden derivarse basándose en la codificación de derivación. Es decir, el número de valores de incremento de índice de contexto que se pueden utilizar para la codificación de contexto del primer bin entre los bins de la cadena de bins puede ser uno.
Además, todos los bins de la cadena de bins del índice MTS pueden derivarse basándose en la codificación de derivación. En este caso, la codificación de derivación puede representar la realización de la codificación de contexto basándose en la distribución de probabilidad uniforme, y dado que se omite el procedimiento de actualización de la codificación de contexto, puede mejorarse la eficiencia de codificación.
La información residual puede representar información que se utiliza para derivar las muestras residuales, y puede incluir información sobre las muestras residuales, información relacionada con transformada inversa, y/o información relacionada con descuantificación. Por ejemplo, la información residual puede incluir información sobre los coeficientes de transformada cuantificados.
El aparato de decodificación deriva los coeficientes de transformada para el bloque actual basándose en la información residual (S1110). Por ejemplo, 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 incluidos en la información residual. Por ejemplo, el aparato de decodificación puede derivar los coeficientes de transformada para el bloque actual realizando una descuantificación con respecto a los coeficientes de transformada cuantificados.
El aparato de decodificación genera las muestras residuales del bloque actual en base al índice MTS y los coeficientes de transformada (S1120). Por ejemplo, las muestras residuales se pueden generar en base al conjunto de núcleos de transformada que se representa por los coeficientes de transformada y por el índice MTS. Es decir, el aparato de decodificación puede generar las muestras residuales a partir de los coeficientes de transformada a través de la transformada inversa utilizando el conjunto de núcleos de transformada que está representado por el índice MTS. En este caso, la transformada inversa que utiliza el conjunto de núcleos de transformada que está representado por el índice MTS puede incluirse en la transformada inversa primaria. Además, el aparato de descodificación puede utilizar no solo la transformada inversa primaria sino también la transformada inversa secundaria cuando se generan las muestras residuales a partir de los coeficientes de transformada. En este caso, el aparato de decodificación puede derivar los coeficientes de transformada modificados realizando la transformada inversa secundaria con respecto a los coeficientes de transformada, y puede generar las muestras residuales realizando la transformada inversa primaria con respecto a los coeficientes de transformada modificados.
Aunque no se ilustra en la FIG. 11, por ejemplo, el aparato de decodificación puede obtener la información relacionada con la predicción que incluye el modo/tipo de predicción del flujo de bits, y puede generar las muestras de predicción para el bloque actual realizando la intrapredicción o la interpredicción en base a la información del modo/tipo de predicción. Además, por ejemplo, el aparato de decodificación puede generar las muestras reconstruidas basándose en las muestras de predicción y en las muestras residuales. Además, por ejemplo, el bloque reconstruido o la imagen reconstruida pueden derivarse basándose en las muestras reconstruidas.
Por ejemplo, el aparato de descodificación puede obtener información de imagen que incluye la totalidad o partes de las piezas de información (o elementos de sintaxis) descritas anteriormente descodificando 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 hacer que se realice el método de descodificación descrito anteriormente.
Aunque los métodos se han descrito sobre la base de 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 se limitan a un cierto orden, y una cierta etapa se puede realizar en una etapa diferente o en un orden diferente o simultáneamente con respecto a la descrita anteriormente. Además, los expertos en la técnica entenderán que las etapas de los diagramas de flujo no son exclusivas, y se puede incluir otra etapa en los mismos o se pueden eliminar una o más etapas en el diagrama de flujo sin ejercer influencia en el alcance de la presente divulgación.
El método mencionado anteriormente de acuerdo con la presente divulgación puede estar en forma de software, y el aparato de codificación y/o el aparato de descodificación de acuerdo con la presente divulgación se pueden incluir en un dispositivo para realizar procesamiento de imágenes, por ejemplo, una TV, un ordenador, un teléfono inteligente, un decodificador receptor, un dispositivo de visualización o similares.
Cuando las realizaciones de la presente divulgación se implementan mediante software, el método mencionado anteriormente puede implementarse mediante un módulo (proceso o función) que realiza la función mencionada anteriormente. El módulo puede almacenarse en una memoria y ser ejecutado por un procesador. La memoria puede instalarse dentro o fuera del procesador y puede conectarse al procesador a través de diversos medios bien conocidos. El procesador puede incluir un circuito integrado de aplicación específica (ASIC), otros conjuntos de chips, un circuito lógico y/o un dispositivo de procesamiento de datos. La memoria puede incluir una memoria de solo lectura (ROM), una memoria de acceso aleatorio (RAM), una memoria flash, una tarjeta de memoria, un medio de almacenamiento y/u otro dispositivo de almacenamiento. En otras palabras, las realizaciones de acuerdo con la presente divulgación pueden implementarse y ejecutarse en un procesador, un microprocesador, un controlador o un chip. Por ejemplo, las unidades funcionales ilustradas en las figuras respectivas pueden implementarse y ejecutarse en un ordenador, un procesador, un microprocesador, un controlador o un chip. En este caso, la información sobre la implementación (por ejemplo, información sobre instrucciones) o algoritmos se pueden almacenar en un medio de almacenamiento digital.
Además, el aparato de decodificación y el aparato de codificación al que se aplica la realización(s) del presente documento pueden incluirse en un transceptor de radiodifusión multimedia, un terminal de comunicación móvil, un dispositivo de vídeo de cine doméstico, un dispositivo de vídeo de cine digital, una cámara de vigilancia, un dispositivo de chat de vídeo y un dispositivo de comunicación en tiempo real, tal como comunicación de vídeo, un dispositivo de transmisión móvil, un medio de almacenamiento, una videocámara, un proveedor de servicios de vídeo bajo demanda (VoD), un dispositivo de vídeo Over-The-Top (OTT), un proveedor de servicios de transmisión de internet, un dispositivo de vídeo 3D, un dispositivo de realidad virtual (VR), un dispositivo de realidad aumentada (AR), un dispositivo de vídeo de teléfono de imagen, un terminal de vehículo (por ejemplo, un terminal de vehículo (incluyendo un vehículo autónomo), un terminal de avión o un terminal de barco) y un dispositivo de vídeo médico; y se pueden utilizar para procesar una señal o datos de imagen. Por ejemplo, el dispositivo de vídeo OTT puede incluir una consola de juegos, un reproductor de Blu-ray, una TV conectada a Internet, un sistema de cine doméstico, un teléfono inteligente, un ordenador de tableta y un grabador de vídeo digital (DVR).
Además, el método de procesamiento al que se aplica la(s) realización(es) del presente documento puede producirse en forma de un programa ejecutado por un ordenador y puede almacenarse en un medio de grabación legible por ordenador. Los datos multimedia que tienen una estructura de datos de acuerdo con la(s) realización(es) del presente documento también pueden almacenarse en el medio de grabación legible por ordenador. El medio de grabación legible por ordenador incluye todo tipo de dispositivos de almacenamiento y dispositivos de almacenamiento distribuidos en 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-ROM, una cinta magnética, un disquete y un dispositivo de almacenamiento de datos ópticos. El medio de grabación legible por ordenador también incluye medios incorporados en forma de una onda portadora (por ejemplo, transmisión a través de Internet). Además, un flujo de bits generado por el método de codificación puede almacenarse en el medio de grabación legible por ordenador o transmitirse a través de una red de comunicación cableada o inalámbrica.
Además, la(s) realización(es) del presente documento puede implementar como un producto de programa informático basado en un código de programa, y el código de programa puede ejecutarse en un ordenador de acuerdo con la(s) realización(es) del presente documento. El código de programa puede almacenarse en un soporte legible por ordenador.
La FIG. 13 ilustra un ejemplo de un sistema de transmisión continua de contenidos al que son aplicables las realizaciones descritas en el presente documento.
Haciendo referencia a la FIG. 13, el sistema de transmisión continua de contenidos al que son aplicables las realizaciones descritas en el presente documento puede incluir, en general, un servidor de codificación, un servidor de transmisión continua, 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 a datos digitales los contenidos introducidos desde los dispositivos de entrada multimedia, tales como el teléfono inteligente, la cámara, la videocámara y similares, para generar un flujo de bits, y para transmitirlo al servidor de transmisión continua. 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 similares, genera directamente un flujo de bits, el servidor de codificación puede omitirse.
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 aplica las realizaciones del presente documento. Y el servidor de transmisión continua puede almacenar temporalmente el flujo de bits en un proceso de transmisión o recepción del flujo de bits.
El servidor de transmisión continua transmite datos multimedia al equipo de usuario basándose en una solicitud del usuario a través del servidor web, que funciona como un instrumento que informa a un usuario de qué servicio hay. Cuando el usuario solicita un servicio que desea, el servidor web transfiere la solicitud al servidor de transmisión continua, y el servidor de transmisión continua transmite datos multimedia al usuario. En este sentido, el sistema de transmisión continua de contenidos puede incluir un servidor de control separado, y en este caso, el servidor de control funciona para controlar comandos/respuestas entre equipos respectivos en el sistema de transmisión continua de contenidos.
El servidor de transmisión puede recibir contenidos desde el almacenamiento de medios y/o el servidor de codificación. Por ejemplo, en un caso en el que los contenidos se reciben desde el servidor de codificación, los contenidos pueden recibirse en tiempo real. En este caso, el servidor de transmisión puede almacenar el flujo de bits durante un período de tiempo predeterminado para proporcionar el servicio de transmisión 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 radiodifusión digital, un asistente digital personal (PDA), un reproductor multimedia portátil (PMP), una navegación, un PC de pizarra, un PC de tableta, un ultrabook, un dispositivo portátil (por ejemplo, un terminal de tipo reloj (reloj inteligente), un terminal de tipo cristal (cristal inteligente), una pantalla montada en la cabeza (HMD)), una TV digital, un ordenador de escritorio, una señalización digital o similares.
Cada uno de los servidores en el sistema de transmisión continua de contenidos puede ser operado como un servidor distribuido, y en este caso, los datos recibidos por cada servidor pueden ser procesados de manera distribuida.
Por ejemplo, las características técnicas en 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 en las reivindicaciones del aparato pueden combinarse para implementarse o realizarse en un método. Además, las características técnicas en la(s) reivindicación(es) del método y la(s) reivindicación(es) del aparato pueden combinarse para implementarse o realizarse en un aparato. Además, las características técnicas en la(s) reivindicación(es) del método y la(s) reivindicación(es) del aparato pueden combinarse para implementarse o realizarse en un método.

Claims (4)

REIVINDICACIONES
1. Un método de decodificación de imágenes realizado por un aparato de decodificación, comprendiendo el método:
obtener (S1100) selección de transformada múltiple, MTS, índice e información residual a partir de un flujo de bits; derivar (S1110) coeficientes de transformada para un bloque actual basándose en la información residual; y generar (S1120) muestras residuales del bloque actual en base al índice MTS y los coeficientes de transformada, en donde el índice MTS representa un conjunto de núcleos de transformada que va a aplicarse al bloque actual entre candidatos de conjunto de núcleos de transformada,
en donde los bins de una cadena de bins del índice MTS se derivan basándose en la codificación de contexto, realizándose la codificación de contexto utilizando un modelo de contexto representado por un índice de contexto para cada uno de los bins para el índice MTS,
en donde el índice de contexto para cada uno de los bins para el índice MTS es derivado como una suma de un valor de incremento de índice de contexto para cada uno de los bins para el índice MTS y un valor de desplazamiento de índice de contexto para cada uno de los bins para el índice MTS,
en donde los bins para el índice MTS incluyen el primer, segundo, tercer y cuarto bin,
caracterizado por que
el valor del incremento de índice de contexto para el primer bin se fija en 0, el valor del incremento de índice de contexto para el segundo bin se fija en 1, el valor del incremento de índice de contexto para el tercer bin se fija en 2, y el valor del incremento de índice de contexto para el cuarto bin se fija en 3.
2. Un método de codificación de imágenes realizado por un aparato de codificación, comprendiendo el método: derivar (S900) muestras residuales para un bloque actual;
derivar (S910) coeficientes de transformada para el bloque actual basándose en las muestras residuales; generar (S920) selección de transformada múltiple, MTS, índice e información residual basándose en los coeficientes de transformada; y
codificar (S930) una información de imagen que incluye el índice MTS y la información residual,
en donde el índice MTS representa un conjunto de núcleos de transformada que va a aplicarse al bloque actual entre candidatos de conjunto de núcleos de transformada,
en donde los bins de una cadena de bins del índice MTS se representan basándose en la codificación de contexto, realizándose la codificación de contexto utilizando un modelo de contexto representado por un índice de contexto para cada uno de los bins para el índice MTS,
en donde el índice de contexto para cada uno de los bins para el índice MTS se deriva como una suma de un valor de incremento de índice de contexto para cada uno de los bins para el índice MTS y un valor de desplazamiento de índice de contexto para cada uno de los bins para el índice MTS,
en donde los bins para el índice MTS incluyen el primer, segundo, tercer y cuarto bins,
caracterizado por que
el valor del incremento de índice de contexto para el primer bin se fija en 0, el valor del incremento de índice de contexto para el segundo bin se fija en 1, el valor del incremento de índice de contexto para el tercer bin se fija en 2, y el valor del incremento de índice de contexto para el cuarto bin se fija en 3.
3. Un medio de almacenamiento digital legible por ordenador no transitorio que almacena un flujo de bits generado por un método de codificación de imágenes, comprendiendo el método:
derivar muestras residuales para un bloque actual;
derivar coeficientes de transformada para el bloque actual en base a las muestras residuales;
generar selección de transformada múltiple, MTS, índice e información residual basándose en los coeficientes de transformada; y
codificar la información de imagen para generar el flujo de bits, en donde la información de imagen incluye el índice MTS y la información residual,
en donde el índice MTS representa un conjunto de núcleos de transformada que se va a aplicar al bloque actual entre candidatos de conjunto de núcleos de transformada,
en donde los bins de una cadena de bins del índice MTS se representan basándose en la codificación de contexto, realizándose la codificación de contexto utilizando un modelo de contexto representado por un índice de contexto para cada uno de los bins para el índice MTS,
en donde el índice de contexto para cada uno de los bins para el índice MTS es derivado como una suma de un valor de incremento de índice de contexto para cada uno de los bins para el índice MTS y un valor de desplazamiento de índice de contexto para cada uno de los bins para el índice MTS,
en donde los bins para el índice MTS incluyen el primer, segundo, tercer y cuarto bins,
caracterizado por que
el valor del incremento de índice de contexto para el primer bin se fija en 0, el valor del incremento de índice de contexto para el segundo bin se fija en 1, el valor del incremento de índice de contexto para el tercer bin se fija en 2, y el valor del incremento de índice de contexto para el cuarto bin se fija en 3.
4. Un método de transmisión de datos para una imagen, comprendiendo el método:
obtener un flujo de bits para la imagen, en donde el flujo de bits es generado basándose en la obtención de muestras residuales para un bloque actual, derivar coeficientes de transformada para el bloque actual basándose en las muestras residuales, generar selección de transformada múltiple, MTS, índice e información residual basándose en los coeficientes de transformada, y codificar información de imagen que incluye el índice MTS y la información residual; y
transmitir los datos que comprenden el flujo de bits,
en donde el índice MTS representa un conjunto de núcleos de transformada que se va a aplicar al bloque actual entre candidatos de conjunto de núcleos de transformada,
en donde los bins de una cadena de bins del índice MTS se representan basándose en la codificación de contexto, realizándose la codificación de contexto utilizando un modelo de contexto representado por un índice de contexto para cada uno de los bins para el índice MTS,
en donde el índice de contexto para cada uno de los bins para el índice MTS es derivado como una suma de un valor de incremento de índice de contexto para cada uno de los bins para el índice MTS y un valor de desplazamiento de índice de contexto para cada uno de los bins para el índice MTS,
en donde los bins para el índice MTS incluyen el primer, segundo, tercer y cuarto bins,
caracterizado por que
el valor del incremento de índice de contexto para el primer bin se fija en 0, el valor del incremento de índice de contexto para el segundo bin se fija en 1, el valor del incremento de índice de contexto para el tercer bin se fija en 2, y el valor del incremento de índice de contexto para el cuarto bin se fija en 3.
ES20827025T 2019-06-19 2020-06-11 Codificación de información sobre conjunto de núcleos de transformada Active ES2982809T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201962863812P 2019-06-19 2019-06-19
PCT/KR2020/007599 WO2020256346A1 (ko) 2019-06-19 2020-06-11 변환 커널 세트에 관한 정보에 대한 코딩

Publications (1)

Publication Number Publication Date
ES2982809T3 true ES2982809T3 (es) 2024-10-17

Family

ID=74037350

Family Applications (2)

Application Number Title Priority Date Filing Date
ES24170560T Active ES3041151T3 (en) 2019-06-19 2020-06-11 Coding of information about transform kernel set
ES20827025T Active ES2982809T3 (es) 2019-06-19 2020-06-11 Codificación de información sobre conjunto de núcleos de transformada

Family Applications Before (1)

Application Number Title Priority Date Filing Date
ES24170560T Active ES3041151T3 (en) 2019-06-19 2020-06-11 Coding of information about transform kernel set

Country Status (16)

Country Link
US (4) US11570438B2 (es)
EP (3) EP4376415B1 (es)
JP (4) JP7303335B2 (es)
KR (2) KR20250079050A (es)
CN (1) CN114127789A (es)
AU (3) AU2020297214B2 (es)
CA (2) CA3240498A1 (es)
ES (2) ES3041151T3 (es)
FI (1) FI3989562T3 (es)
HR (2) HRP20240826T1 (es)
HU (2) HUE067102T2 (es)
MX (1) MX2021016155A (es)
PL (2) PL4376415T3 (es)
RS (1) RS67160B1 (es)
SI (1) SI3989562T1 (es)
WO (1) WO2020256346A1 (es)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113365050B (zh) * 2019-03-09 2023-02-28 杭州海康威视数字技术股份有限公司 进行编码和解码的方法、解码端、编码端和系统
MX2021016152A (es) 2019-06-19 2022-02-22 Lg Electronics Inc Se?alizacion de informacion que indica el conjunto de nucleo de transformacion en codificacion de imagen.
EP4376415B1 (en) * 2019-06-19 2025-08-13 LG Electronics Inc. Coding of information about transform kernel set
KR102211000B1 (ko) * 2019-06-21 2021-02-02 삼성전자주식회사 비디오 복호화 방법 및 장치, 비디오 부호화 방법 및 장치
EP4035398A1 (en) * 2019-09-24 2022-08-03 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Coding concept for a sequence of information values
US12003731B2 (en) * 2021-09-29 2024-06-04 Qualcomm Incorporated Adaptive determination of multiple transform candidates for video coding

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090067503A1 (en) * 2006-01-07 2009-03-12 Electronics And Telecommunications Research Institute Method and apparatus for video data encoding and decoding
WO2007081116A1 (en) * 2006-01-07 2007-07-19 Electronics And Telecommunications Research Institute Method and apparatus for video data encoding and decoding
KR20120034044A (ko) * 2010-09-30 2012-04-09 한국전자통신연구원 영상 변환 부호화/복호화 방법 및 장치
US20120189052A1 (en) 2011-01-24 2012-07-26 Qualcomm Incorporated Signaling quantization parameter changes for coded units in high efficiency video coding (hevc)
US9357185B2 (en) * 2011-11-08 2016-05-31 Qualcomm Incorporated Context optimization for last significant coefficient position coding
US9538175B2 (en) * 2012-09-26 2017-01-03 Qualcomm Incorporated Context derivation for context-adaptive, multi-level significance coding
US10708164B2 (en) * 2016-05-03 2020-07-07 Qualcomm Incorporated Binarizing secondary transform index
CN109076243B (zh) 2016-05-04 2022-01-25 夏普株式会社 用于对变换数据进行编码的系统和方法
CN110832865A (zh) * 2017-07-04 2020-02-21 三星电子株式会社 图像编码方法和设备以及图像解码方法和设备
CN110662057B (zh) * 2018-06-29 2022-06-21 北京字节跳动网络技术有限公司 视频处理方法、装置、设备以及存储比特流的方法
TWI814889B (zh) * 2018-08-16 2023-09-11 大陸商北京字節跳動網絡技術有限公司 變換矩陣選擇的係數相關的編解碼
JP2020053924A (ja) * 2018-09-28 2020-04-02 シャープ株式会社 動画像符号化装置、動画像復号装置
KR102660160B1 (ko) * 2018-11-22 2024-04-24 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 서브 블록 기반 인터 예측을 위한 조정 방법
KR102871376B1 (ko) * 2019-01-15 2025-10-16 로즈데일 다이나믹스 엘엘씨 변환 스킵 플래그를 이용한 영상 코딩 방법 및 장치
US10986339B2 (en) * 2019-02-08 2021-04-20 Tencent America LLC Method and apparatus for harmonization between transform skip mode and multiple transform selection
WO2020180102A1 (ko) * 2019-03-04 2020-09-10 엘지전자 주식회사 영상 코딩 시스템에서 컨텍스트 코딩된 사인 플래그를 사용하는 영상 디코딩 방법 및 그 장치
HRP20250692T1 (hr) * 2019-03-12 2025-08-01 Lg Electronics Inc. Uređaj za kodiranje slike temeljen na transformaciji
EP3949403A4 (en) * 2019-05-11 2022-06-22 Beijing Bytedance Network Technology Co., Ltd. INTERACTIONS BETWEEN SEVERAL INTRACODING PROCEDURES
US11290731B2 (en) * 2019-05-22 2022-03-29 Tencent America LLC Method and apparatus for video coding
EP4376415B1 (en) * 2019-06-19 2025-08-13 LG Electronics Inc. Coding of information about transform kernel set

Also Published As

Publication number Publication date
US20230134294A1 (en) 2023-05-04
JP7663743B2 (ja) 2025-04-16
JP2025100588A (ja) 2025-07-03
EP4376415B1 (en) 2025-08-13
HRP20251090T1 (hr) 2025-11-07
HUE067102T2 (hu) 2024-09-28
CA3144206C (en) 2024-10-15
KR20220000403A (ko) 2022-01-03
BR112021025591A2 (pt) 2022-02-01
ES3041151T3 (en) 2025-11-07
WO2020256346A1 (ko) 2020-12-24
SI3989562T1 (sl) 2024-08-30
EP3989562A4 (en) 2023-04-19
PL3989562T3 (pl) 2024-08-19
US11570438B2 (en) 2023-01-31
EP4376415A2 (en) 2024-05-29
AU2024200618A1 (en) 2024-02-22
MX2021016155A (es) 2022-02-22
EP4376415C0 (en) 2025-08-13
JP2023112077A (ja) 2023-08-10
US20250233994A1 (en) 2025-07-17
JP7488399B2 (ja) 2024-05-21
FI3989562T3 (fi) 2024-06-19
AU2020297214A1 (en) 2022-02-03
RS67160B1 (sr) 2025-09-30
JP7303335B2 (ja) 2023-07-04
EP3989562B1 (en) 2024-05-22
JP2022538024A (ja) 2022-08-31
HUE073036T2 (hu) 2025-12-28
EP4376415A3 (en) 2024-07-10
EP4604551A2 (en) 2025-08-20
AU2025263867A1 (en) 2025-11-27
US20240163434A1 (en) 2024-05-16
PL4376415T3 (pl) 2025-10-13
KR20250079050A (ko) 2025-06-04
AU2024200618B2 (en) 2025-08-21
CA3144206A1 (en) 2020-12-24
EP4604551A3 (en) 2025-10-29
AU2020297214B2 (en) 2023-11-02
US11909972B2 (en) 2024-02-20
US12348716B2 (en) 2025-07-01
CA3240498A1 (en) 2020-12-24
KR102813325B1 (ko) 2025-05-27
CN114127789A (zh) 2022-03-01
HRP20240826T1 (hr) 2024-11-22
JP2024096399A (ja) 2024-07-12
EP3989562A1 (en) 2022-04-27
US20220150497A1 (en) 2022-05-12

Similar Documents

Publication Publication Date Title
KR102745742B1 (ko) 변환에 기반한 영상 코딩 방법 및 그 장치
ES2982593T3 (es) Método de codificación de imágenes basado en una transformada y dispositivo para el mismo
ES3022187T3 (en) Transform for matrix-based intra-prediction in image coding
ES2966115T3 (es) Métodos de codificación de imagen basados en historial
ES2982809T3 (es) Codificación de información sobre conjunto de núcleos de transformada
ES2981910T3 (es) Transformada en codificación de imágenes basada en intrapredicción
ES3040198T3 (en) Signaling of information indicating transform kernel set in image coding
JP7223208B2 (ja) 変換に基づく映像コーディング方法及びその装置
ES3057716T3 (en) Syntax design method and apparatus for performing coding by using syntax
US20220046281A1 (en) Image coding using transform index
ES3016332T3 (en) Video coding method on basis of secondary transform, and device for same
AU2024203027B2 (en) Transform-based image coding method, and apparatus therefor
ES3038093T3 (en) Transform-based image coding
ES2986930T3 (es) Codificación de imágenes basada en transformadas
ES2987119T3 (es) Dispositivo y método de codificación de imágenes basado en filtrado
AU2024201210B2 (en) Transform-based image coding method and device therefor
ES3018507T3 (es) Método y dispositivo para procesar información de imagen para la codificación de imágenes/vídeos
ES2953235T3 (es) Codificación de imágenes basada en transformadas
AU2024202143B2 (en) Transform-based method for coding image, and device therefor
US11509903B2 (en) Method and device for coding transform skip flag
RU2799629C1 (ru) Способ кодирования изображения на основе преобразования и устройство для его осуществления
RU2806283C2 (ru) Способ кодирования изображения на основе преобразования и устройство для его осуществления
RU2803457C2 (ru) Способ кодирования изображения на основе преобразования и устройство для его осуществления
RU2803184C1 (ru) Способ кодирования изображения на основе преобразования и устройство для его осуществления
RU2811986C2 (ru) Способ кодирования изображения на основе преобразования и устройство для его осуществления