ES2953235T3 - Codificación de imágenes basada en transformadas - Google Patents

Codificación de imágenes basada en transformadas Download PDF

Info

Publication number
ES2953235T3
ES2953235T3 ES20770672T ES20770672T ES2953235T3 ES 2953235 T3 ES2953235 T3 ES 2953235T3 ES 20770672 T ES20770672 T ES 20770672T ES 20770672 T ES20770672 T ES 20770672T ES 2953235 T3 ES2953235 T3 ES 2953235T3
Authority
ES
Spain
Prior art keywords
information
transform
height
width
block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES20770672T
Other languages
English (en)
Inventor
Moonmo Koo
Jaehyun Lim
Jungah Choi
Seunghwan Kim
Mehdi Salehifar
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 ES2953235T3 publication Critical patent/ES2953235T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • 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
    • 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/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/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/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/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • 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/167Position within a video image, e.g. region of interest [ROI]
    • 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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • 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
    • H04N19/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]

Landscapes

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

Abstract

Un método de decodificación de imágenes según el presente documento comprende una etapa para derivar una muestra residual, en donde la etapa para derivar la muestra residual comprende las etapas de: derivar un bloque de puesta a cero para un bloque actual; derivar un modelo de contexto para la información de ubicación del último coeficiente significativo en base a la anchura o altura del bloque actual; derivar un valor de la ubicación del último coeficiente significativo basándose en el modelo de contexto; y derivar la ubicación del último coeficiente significativo basándose en un valor de la información de ubicación del último coeficiente significativo y la anchura o altura del bloque de puesta a cero. (Traducción automática con Google Translate, sin valor legal)

Description

DESCRIPCIÓN
Codificación de imágenes basada en transformadas
Antecedentes
Sector de la técnica
La presente divulgación se refiere en general a una tecnología de codificación de imágenes y, más particularmente, a un método de codificación de imágenes basado en una transformada en un sistema de codificación de imágenes y a un aparato para el mismo.
Estado de la técnica
Hoy en día, la demanda de imágenes/vídeos de alta resolución y alta calidad, como 4K, 8K o más imágenes/vídeos de ultra alta definición (UHD), ha ido en aumento en varios campos. A medida que los datos de imagen/vídeo adquieren mayor resolución y mayor calidad, la cantidad de información transmitida o la cantidad de bits aumenta en comparación con los datos de una imagen convencional. Por lo tanto, cuando los datos de imagen se transmiten utilizando un medio tal como una línea de banda ancha cableada/inalámbrica convencional o los datos de imagen/vídeo se almacenan utilizando un medio de almacenamiento existente, aumentan el coste de transmisión y el coste de almacenamiento de los mismos.
Además, hoy en día, el interés y la demanda de medios inmersivos como realidad virtual (VR), contenido de realidad artificial (AR) u holograma o similares está aumentando, y la difusión de imágenes/vídeos que tienen características de imagen diferentes a las de las imágenes reales, como una imagen del juego, está aumentando.
Por consiguiente, existe la necesidad de una técnica de compresión de imagen/vídeo altamente eficaz para comprimir y transmitir o almacenar y reproducir de forma eficaz información de imágenes/vídeos de alta resolución y alta calidad que tengan diversas características como se ha descrito anteriormente.
El documento WO 2013/006446 A1 divulga técnicas para codificar coeficientes de un bloque de vídeo que tiene una forma no cuadrada definida por una anchura y una altura.
El documento JVET-L0096, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 e ISO/IEC JTC 1/SC 29/WG 11, 12a Reunión, Macao, CN, 3-12 de octubre de 2018, analiza el modelado contextual de la posición de la codificación del último coeficiente significativo.
Objeto de la invención
Un aspecto técnico de la presente divulgación es proporcionar un método y un aparato para aumentar la eficacia de la codificación de imágenes.
Otro aspecto técnico de la presente divulgación es proporcionar un método y un aparato para aumentar la eficiencia en la codificación residual.
Otro aspecto técnico más de la presente divulgación es proporcionar un método y un aparato para aumentar la eficiencia en la codificación de un último coeficiente de transformada distinto a cero.
Otro aspecto técnico adicional de la presente divulgación es proporcionar un método y un aparato para codificar un coeficiente de transformada basado en la puesta a cero de alta frecuencia para aumentar la eficiencia de la codificación residual.
Otro aspecto técnico más de la presente divulgación es proporcionar un método y un aparato para codificar información de posición sobre un último coeficiente significativo en un bloque actual (o bloque de transformada actual) basado en puesta a cero de alta frecuencia.
Otro aspecto técnico más de la presente divulgación es proporcionar un método y un aparato para derivar el valor máximo de la información de sufijo sobre la posición de un último coeficiente de transformada significativo en función del tamaño de una región a la que no se aplica puesta a cero de alta frecuencia en un bloque actual al codificar coeficientes de transformada para el bloque actual (o bloque de transformada actual) en función de la puesta a cero de alta frecuencia.
Otro aspecto más de la presente divulgación es proporcionar un método y un aparato para derivar un modelo contextual para la información de posición del último coeficiente de transformada significativo en función del tamaño de un bloque actual cuando se codifican coeficientes de transformada para el bloque actual (o bloque de transformada actual) basado en la puesta a cero de alta frecuencia.
La invención se define en las reivindicaciones adjuntas.
En la presente descripción y en los dibujos, todos los ejemplos y descripciones técnicas de aparatos, productos y/o métodos que no están cubiertos por las reivindicaciones deberían tomarse como antecedentes de la técnica o ejemplos útiles para entender la invención.
De acuerdo con la presente divulgación, es posible aumentar la eficiencia global de compresión de imágenes/vídeo. De acuerdo con la presente divulgación, es posible aumentar la eficiencia en la codificación residual.
De acuerdo con la presente divulgación, es posible aumentar la eficiencia en la codificación de la posición del último coeficiente de transformada significativo.
De acuerdo con la presente divulgación, es posible aumentar la eficiencia de codificación residual mediante la codificación de un coeficiente de transformada basado en la puesta a cero de alta frecuencia (o reducción a cero de alta frecuencia).
De acuerdo con la presente divulgación, es posible aumentar la eficiencia de la codificación de imágenes codificando la información de posición en un último coeficiente de transformada significativo en un bloque actual (o bloque de transformada actual) basado en la puesta a cero de alta frecuencia.
De acuerdo con la presente divulgación, es posible aumentar la eficiencia de la codificación de imágenes derivando un modelo contextual para la información de la posición del último coeficiente de transformada significativo en función de un tamaño de bloque predeterminado cuando se codifican los coeficientes de transformada para el bloque actual (o el bloque de transformada actual) basado en la puesta a cero de alta frecuencia.
Los efectos que se pueden obtener a través de ejemplos específicos de la presente divulgación no se limitan a los efectos enumerados anteriormente. Por ejemplo, puede haber varios efectos técnicos que una persona que tiene experiencia ordinaria en la técnica relacionada puede entender u obtener a partir de la presente divulgación. En consecuencia, los efectos específicos de la presente divulgación no se limitan a los descritos explícitamente en la presente divulgación y pueden incluir varios efectos que pueden comprenderse u obtenerse de las características técnicas de la presente divulgación.
Descripción de las figuras
La Figura 1 ilustra esquemáticamente un ejemplo de un dispositivo de codificación de vídeo/imágenes al cual puede aplicarse la presente divulgación.
La Figura 2 es un diagrama que ilustra esquemáticamente una configuración de un aparato de codificación de vídeo/imágenes al cual puede aplicarse la presente divulgación.
La Figura 3 es un diagrama que ilustra esquemáticamente una configuración de un aparato de descodificación de vídeo/imágenes al cual puede aplicarse la presente divulgación.
La Figura 4 ilustra esquemáticamente una técnica de transformada múltiple de acuerdo con una realización de la presente divulgación.
La Figura 5 ilustra una puesta a cero de 32 puntos de acuerdo con una realización de la presente divulgación. La Figura 6 ilustra la partición de un bloque residual de acuerdo con una realización de la presente divulgación. La Figura 7 es un diagrama de flujo que ilustra una operación de un aparato de descodificación de vídeo de acuerdo con una realización de la presente divulgación.
La Figura 8 es un diagrama de bloques que ilustra una configuración de un aparato de descodificación de acuerdo con una realización de la presente divulgación.
La Figura 9 es un diagrama de flujo que ilustra un proceso de derivación de una muestra residual de acuerdo con una realización de la presente divulgación.
La Figura 10 es un diagrama de flujo que ilustra un funcionamiento de un aparato de codificación de vídeo de acuerdo con una realización de la presente divulgación.
La Figura 11 es un diagrama de bloques que ilustra una configuración de un aparato de codificación de acuerdo con una realización de la presente divulgación.
La Figura 12 es un diagrama de flujo que ilustra un proceso de codificación de información residual de acuerdo con una realización de la presente divulgación.
La Figura 13 ilustra la estructura de un sistema de transmisión en tiempo real de contenido al cual puede apliarse la presente divulgación.
Descripción detallada de la invención
Si bien la presente divulgación puede ser susceptible de varias modificaciones e incluir varias realizaciones, en los dibujos se han mostrado realizaciones específicas de la misma a modo de ejemplo y ahora se describirán en detalle. Sin embargo, esto no pretende limitar la presente divulgación a las realizaciones específicas divulgadas en este documento. La terminología usada en el presente documento es únicamente para el fin de describir realizaciones específicas y no se pretende limitar la idea técnica de la presente divulgación. Las formas singulares pueden incluir las formas plurales a menos que el contexto indique claramente lo contrario. Los términos tales como "incluir" y "tener" pretenden indicar que existen características, números, etapas, operaciones, elementos, componentes o combinaciones de los mismos usados en la siguiente descripción y, por lo tanto, no se debería entender que 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 se excluye por adelantado.
Por otro lado, cada componente en los dibujos descritos en el presente documento se ilustra de forma independiente para facilitar la descripción en cuanto a funciones de la característica diferentes entre sí y, sin embargo, no significa que cada componente esté realizado por un hardware o software distinto. Por ejemplo, dos o más de estos componentes pueden combinarse para formar un único componente, y cualquier único componente puede dividirse en una pluralidad de componentes. Las realizaciones en las que se combinan y/o dividen componentes pertenecerán al alcance del derecho de patente de la presente divulgación siempre que no se aparten de la esencia de la presente divulgación.
A continuación en el presente documento, se explicarán en más detalle las realizaciones preferidas de la presente divulgación haciendo referencia a los dibujos adjuntos. Además, se utilizan los mismos signos de referencia para los mismos componentes en los dibujos y se omitirán las descripciones repetidas para los mismos componentes.
Este documento se refiere a la codificación de vídeo/imágenes. Por ejemplo, el método/ejemplo divulgado en este documento puede estar relacionado con un estándar VVC (Versatile Video Coding) (Rec. UIT-T. H.266), un estándar de codificación de vídeo/imagen de próxima generación después de VVC, u otros estándares relacionados con la codificación de vídeo (por ejemplo, el estándar HEVC (High Efficiency Video Coding) (ITU-T Rec. H.265), estándar EVC (Essential Video Coding), estándar AVS2, etc.).
En este documento, se puede proporcionar una variedad de realizaciones relacionadas con la codificación de vídeo/imagen y, a menos que se especifique lo contrario, las realizaciones pueden combinarse entre sí y ejecutarse. En este documento, un vídeo puede significar un conjunto de una serie de imágenes a lo largo del tiempo. En general, una imagen significa una unidad que representa una imagen en una zona horaria específica, y un segmento/mosaico es una unidad que constituye una parte de la imagen. El segmento/mosaico puede incluir una o más unidades de árbol de codificación (CTU). Una imagen puede estar constituida por uno o más segmentos/mosaicos. Una imagen puede estar constituida por uno o más grupos de mosaicos. Un grupo de mosaicos puede incluir uno o más mosaicos.
Un píxel o un pel puede significar una unidad más pequeña que constituye una instantánea (o imagen). Asimismo, se puede usar 'muestra' como un término que corresponde a un píxel. Una muestra puede representar generalmente un píxel o el valor de un píxel, y puede representar solo un píxel/valor de píxel de un componente luma o representar solo un píxel/valor de píxel de un componente croma. Como alternativa, la muestra puede referirse a un valor de píxel en el dominio espacial, o cuando este valor de píxel se convierte al dominio de frecuencia, puede referirse a un coeficiente de transformada en el dominio de frecuencia.
Una unidad puede representar la unidad básica de procesamiento de imágenes. La unidad puede incluir al menos uno de una región específica 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 y un término tal como un bloque, un área o similar pueden utilizarse en lugar del otro según las circunstancias. En un caso general, un bloque M x N puede incluir un conjunto (o una matriz) de muestras (o matrices de muestras) o coeficientes de transformada que consisten en M columnas y M filas.
En este documento, el término V debería interpretarse como "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, se debería interpretar que el término "o" indica "y/o". Por ejemplo, la expresión "A o B" puede incluir 1) solo A, 2) solo B y/o 3) tanto A como B. En otras palabras, el término "o" en este documento debe interpretarse como indicativo de "adicionalmente o como alternativa".
En la presente divulgación, "al menos uno de A y B" puede significar "solo A", "solo B" o "tanto A como B". Además, en la presente divulgación, la expresión "al menos uno de A o B" o "al menos uno de A y/o B" puede interpretarse como "al menos uno de A y B".
Además, en la presente divulgación, "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, un paréntesis utilizado en la presente divulgación puede significar "por ejemplo". Específicamente, cuando se indica como "predicción (intra predicción)", puede significar que se propone "intra predicción" como un ejemplo de "predicción". Es decir, "predicción" en la presente divulgación no se limita a "intra predicción", e "intra predicción" puede proponerse como un ejemplo de "predicción". Además, cuando se indica como "predicción (es decir, intra predicción)", también puede significar que se propone "intra predicción" como un ejemplo de "predicción".
Las características técnicas descritas individualmente en una figura en la presente divulgación pueden implementarse individualmente o pueden implementarse simultáneamente.
La Figura 1 ilustra esquemáticamente un ejemplo de un dispositivo de codificación de vídeo/imágenes al cual puede aplicarse la presente divulgación.
Haciendo referencia a la Figura 1, el sistema de codificación de vídeo/imágenes puede incluir un primer dispositivo (dispositivo fuente) y un segundo dispositivo (dispositivo receptor). El dispositivo fuente puede entregar información o datos de vídeo/imagen codificados en forma de un archivo o de transmisión en tiempo real al dispositivo receptor a través de una red o un medio de almacenamiento digital.
El dispositivo fuente puede incluir una fuente de vídeo, un aparato de codificación y un transmisor. El dispositivo receptor puede incluir un receptor, un aparato de descodificación y un renderizador. El aparato de codificación puede denominarse aparato de codificación de vídeo/imágenes, y el aparato de descodificación puede denominarse aparato de descodificación de vídeo/imágenes. El transmisor puede estar incluido en el aparato de codificación. El receptor puede estar incluido en el aparato de descodificación. El renderizador puede incluir una pantalla y la pantalla se puede configurar como un dispositivo independiente 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 de vídeo/imagen. La fuente de vídeo puede incluir un dispositivo de captura de vídeo/imagen y/o un dispositivo de generación de vídeo/imagen. El dispositivo de captura de 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 o similares. El dispositivo de generación de vídeo/imagen puede incluir, por ejemplo, un ordenador, una tableta y un teléfono inteligente, y puede (electrónicamente) generar un vídeo/imagen. Por ejemplo, se puede generar una imagen/vídeo virtual a través de un ordenador o similar. En este caso, el proceso de captura de vídeo/imagen puede remplazase por un proceso de generación de datos relacionados.
El aparato de codificación puede codificar un vídeo/imagen de entrada. El aparato de codificación puede realizar una serie de procedimientos tales como predicción, transformada y cuantificación para la eficiencia de compresión y codificación. Los datos codificados (información de vídeo/imagen codificada) pueden emitirse en forma de un flujo de bits.
El transmisor puede transmitir la información de vídeo/imagen codificada o la salida de datos en forma de flujo de bits al receptor del dispositivo receptor a través de un medio de almacenamiento digital o una red en forma de archivo o de transmisión en tiempo real. El medio de almacenamiento digital puede incluir diversos medios de almacenamiento, tales como USB, SD, CD, DVD, Blu-ray, HDD, SSD y similares. El transmisor puede incluir un elemento para generar un archivo de medios a través de un formato de archivo predeterminado y puede incluir un elemento para la transmisión a través de una red de difusión/comunicación. El receptor puede recibir/extraer el flujo de bits y transmitir el flujo de bits recibido/extraído al aparato de descodificación.
El aparato de descodificación puede descodificar un vídeo/imagen realizando una serie de procedimientos tales como descuantificación, transformada inversa, predicción y similares, correspondientes a la operación del aparato de codificación.
El renderizador puede renderizar el vídeo/imagen descodificado. El vídeo/imagen renderizado puede visualizarse a través de la pantalla.
La Figura 2 es un diagrama que ilustra esquemáticamente una configuración de un aparato de codificación de vídeo/imágenes al cual puede aplicarse la presente divulgación. En lo sucesivo, lo que se denomina aparato de codificación de vídeo puede incluir un aparato de codificación de imágenes.
Haciendo referencia a la Figura 2, el aparato de codificación 200 puede incluir un divisor de imágenes 210, un predictor 220, un procesador residual 230, un codificador por entropía 240, un sumador 250, un filtro 260 y una memoria 270. El predictor 220 puede incluir un inter predictor 221 y un intra predictor 222. El procesador residual 230 puede incluir un transformador 232, un cuantificador 233, un descuantificador 234 y un transformador inverso 235. El procesador residual 230 puede incluir además un restador 231. El sumador 250 puede denominarse reconstructor o generador de bloques reconstruidos. El divisor de imágenes 210, el predictor 220, el procesador residual 230, el codificador por entropía 240, el sumador 250 y el filtro 260 que se han descrito anteriormente, pueden estar constituidos por uno o más componentes de hardware (por ejemplo, conjuntos de chips codificadores o procesadores), de acuerdo con una realización. Además, la memoria 270 puede incluir una memoria intermedia de imágenes descodificadas (DPB) y puede estar constituida por un medio de almacenamiento digital. El componente de hardware puede incluir además la memoria 270 como un componente interno/externo.
El divisor de imágenes 210 puede dividir una imagen (o una instantánea o un fotograma) de entrada introducida 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, comenzando con una unidad de árbol de codificación (CTU) o la unidad de codificación más grande (LCU), la unidad de codificación puede dividirse recursivamente de acuerdo con la estructura de árbol ternario de árbol binario de árbol cuádruple (QTBTTT). Por ejemplo, una unidad de codificación puede dividirse en una pluralidad de unidades de codificación de una profundidad mayor basándose en la estructura de árbol cuádruple, la estructura de árbol binario y/o la estructura de árbol ternario. En este caso, por ejemplo, se puede aplicar en primer lugar la estructura de árbol cuádruple, y se puede aplicar después la estructura de árbol binario y/o la estructura de árbol ternario. Como alternativa, se puede aplicar en primer lugar la estructura de árbol binario. El procedimiento de codificación de acuerdo con la presente divulgación puede realizarse basándose en la unidad de codificación final que no se divide adicionalmente. En este caso, la unidad de codificación máxima puede usarse directamente como unidad de codificación final en función de la eficiencia de codificación de acuerdo con la característica de la imagen. Como alternativa, la unidad de codificación puede dividirse recursivamente en unidades de codificación de mayor profundidad según sea necesario, de modo que la unidad de codificación de un tamaño óptimo pueda usarse como unidad de codificación final. En el presente documento, el procedimiento de codificación puede incluir procedimientos tales como predicción, transformación y 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 transformada (TU). En este caso, la unidad de predicción y la unidad de transformada pueden dividirse por la mitad o dividirse a partir de la unidad de codificación final descrita anteriormente. La unidad de predicción puede ser una unidad de predicción de muestras, y la unidad de transformada puede ser una unidad para derivar un coeficiente de transformada y/o una unidad para derivar una señal residual a partir de un coeficiente de transformada.
La unidad y un término tal como un bloque, un área o similar pueden utilizarse en lugar del otro según las circunstancias. En un caso general, un bloque de M * N puede representar un conjunto de muestras o coeficientes de transformada que consiste en M columnas y N filas. La muestra puede representar generalmente un píxel o el valor de un píxel, y puede representar solo un píxel/valor de píxel de un componente luma o representar solo un píxel/valor de píxel de un componente croma. La muestra puede usarse como un término correspondiente a un píxel o un pel de una instantánea (o imagen).
El restador 231 sustrae una señal de predicción (bloque previsto, matriz de muestras de predicción) emitida desde el inter predictor 221 o el intra predictor 222 de una señal de imagen de entrada (bloque original, matriz de muestras original) para generar una señal residual (bloque residual, matriz de muestras original), y la señal residual generada se transmite al transformador 232. En este caso, como se muestra, una unidad que resta la señal de predicción (bloque previsto, matriz de muestras de predicción) de la señal de imagen de entrada (bloque original, matriz de muestras original) en el codificador 200 puede denominarse el restador 231. El predictor puede realizar la predicción sobre un bloque objetivo de procesamiento (denominado en lo sucesivo en el presente documento "bloque actual"), y puede generar un bloque previsto que incluye muestras de predicción para el bloque actual. El predictor puede determinar si se aplica intra predicción o inter predicción en función de la CU o bloque actual. Como se describe más adelante en la descripción de cada modo de predicción, el predictor puede generar diversa información relacionada con la predicción, tal como información de modo de predicción, y transmitir la información generada al codificador por entropía 240. La información sobre la predicción puede codificarse en el codificador por entropía 240 y emitirse en forma de un flujo de bits.
El intra predictor 222 puede predecir el bloque actual haciendo referencia a las muestras en la imagen actual. Las muestras referidas pueden estar ubicadas en las cercanías o fuera del bloque actual de acuerdo con el modo de predicción. En la intra predicción, los modos de predicción pueden incluir una pluralidad de modos no direccionales y una pluralidad de modos direccionales. Los modos no direccionales pueden incluir, por ejemplo, un modo CC y un modo planar. El modo direccional puede incluir, por ejemplo, 33 modos de predicción direccional o 65 modos de predicción direccional de acuerdo con el grado de detalle de la dirección de predicción. Sin embargo, esto es simplemente un ejemplo, y se pueden usar más o menos modos de predicción direccionales dependiendo de un ajuste. El intra predictor 222 puede determinar el modo de predicción aplicado al bloque actual utilizando el modo de predicción aplicado al bloque vecino.
El inter predictor 221 puede derivar un bloque previsto para el bloque actual basándose en un bloque de referencia (matriz de muestras de referencia) especificado por un vector de movimiento en una imagen de referencia. En este momento, con el fin de reducir la cantidad de información de movimiento transmitida en el modo de inter predicción, la información de movimiento puede predecirse en un bloque, subbloque o 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 inter predicción (predicción L0, predicción L1, Bi predicción, etc.). En el caso de inter predicció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. La imagen de referencia que incluye el bloque de referencia y la imagen de referencia que incluye el bloque vecino temporal pueden ser iguales entre sí o diferentes entre sí. El bloque vecino temporal se puede denominar bloque de referencia ubicado conjuntamente, una CU ubicada conjuntamente (colCU), y similares, y la imagen de referencia que incluye el bloque vecino temporal se puede denominar imagen ubicada conjuntamente (colPic). Por ejemplo, el inter predictor 221 puede configurar una lista de candidatos de información de movimiento basándose en bloques vecinos y generar información que indique qué candidato se usa para derivar un vector de movimiento y/o un índice de imagen de referencia del bloque actual. La inter predicción puede realizarse basándose en diversos modos de predicción. Por ejemplo, en el caso de un modo de salto y un modo de fusión, el inter predictor 221 puede usar información de movimiento del bloque vecino como información de movimiento del bloque actual. En el modo de salto, a diferencia del modo de fusión, es posible que la señal residual no se transmita. En el caso del modo de predicción de información de movimiento (predicción de vector de movimiento, MVP), el vector de movimiento del bloque vecino puede usarse como predictor de vector de movimiento y el vector de movimiento del bloque actual puede indicarse señalizando 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. Por ejemplo, el predictor puede aplicar intra predicción o inter predicción para la predicción en un bloque y, también, puede aplicar intra predicción e inter predicción al mismo tiempo. Esto puede denominarse inter e intra predicción combinadas (CUP). Además, el predictor puede basarse en un modo de predicción de copia intra bloque (IBC), o un modo de paleta para realizar la predicción en un bloque. El modo de predicción de IBC o el modo de paleta se puede usar para la codificación de imágenes/vídeo de contenido de un juego o similar, tal como codificación de contenido de pantalla (SCC). Aunque el IBC básicamente realiza la predicción en un bloque actual, se puede realizar de manera similar a la inter predicción en el sentido de que deriva un bloque de referencia en un bloque actual. Es decir, el IBC puede usar al menos una de las técnicas de inter predicción descritas en la presente divulgación.
La señal de predicción generada a través del inter predictor 221 y/o el intra predictor 222 puede usarse para generar una señal reconstruida o para generar una señal residual. El transformador 232 puede generar coeficientes de transformada aplicando una técnica de transformada a la señal residual. Por ejemplo, la técnica de transformada puede incluir al menos una transformada de coseno discreta (DCT), una transformada de seno discreta (DST), una transformada de Karhunen-Loéve (KLT), una transformada basada en gráficos (GBT) o una transformada condicionalmente no lineal (CNT). En el presente caso, GBT significa la transformada obtenida de un gráfico cuando la información de relación entre píxeles está representada 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 se puede aplicar a bloques de píxeles cuadrados que tienen el mismo tamaño o se puede aplicar a bloques que tienen un tamaño variable en lugar del cuadrado.
El cuantificador 233 puede cuantificar los coeficientes de transformada y transmitirlos al codificador por entropía 240 y el codificador por entropía 240 puede codificar la señal cuantificada (información sobre los coeficientes de transformada cuantificados) y emitir la señal codificada en un flujo de bits. La información sobre los coeficientes de transformada cuantificados puede denominarse información residual. El cuantificador 233 puede reorganizar coeficientes de transformada cuantificados de tipo bloque en una forma de vector unidimensional basándose en un orden de exploración de coeficientes y generar información sobre los coeficientes de transformada cuantificados basándose en los coeficientes de transformada cuantificados en forma de vector unidimensional. El codificador por entropía 240 puede realizar diversos métodos de codificación tales como, por ejemplo, Golomb exponencial, codificación de longitud variable adaptativa al contexto (CAVLC), codificación aritmética binaria adaptativa al contexto (CABAC) y similares. El codificador por entropía 240 puede codificar información necesaria para la reconstrucción de vídeo/imagen distinta de los coeficientes de transformada cuantificados (por ejemplo, valores de elementos de sintaxis, etc.), juntos o por separado. La información codificada (por ejemplo, información de vídeo/imagen codificada) puede transmitirse o almacenarse en base a una unidad de una capa de abstracción de red (NAL) en forma de un flujo de bits. La información de vídeo/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), un conjunto de parámetros de vídeo (VPS) o similares. Además, la información de vídeo/imagen puede incluir además información de restricción general. En la presente divulgación, los elementos de información y/o sintaxis que se transmiten/señalan al aparato de descodificación desde el aparato de codificación pueden incluirse en la información de vídeo/imagen. La información de vídeo/imagen puede codificarse a través del procedimiento de codificación descrito anteriormente e incluirse en el flujo de bits. El flujo de bits puede transmitirse a través una red o almacenarse en un medio de almacenamiento digital. En este punto, la red puede incluir una red de difusión, una red de comunicación y/o similares, y el medio de almacenamiento digital puede incluir diversos medios de almacenamiento tales como USB, SD, CD, DVD, Blu-ray, HDD y SSD y similares. Un transmisor (no mostrado) que transmite una señal emitida desde el codificador por entropía 240 y/o un almacenamiento (no mostrado) que almacena la señal pueden configurarse como un elemento interno/externo del aparato de codificación 200, o el transmisor se puede incluir en el codificador por entropía 240. Los coeficientes de transformada cuantificados emitidos desde el cuantificador 233 pueden usarse para generar una señal de predicción. Por ejemplo, aplicando descuantificación y transformada inversa a los coeficientes de transformada cuantificados a través del descuantificador 234 y el transformador inverso 235, la señal residual (bloque residual o muestras residuales) puede reconstruirse. El sumador 155 suma la señal residual reconstruida a una señal de predicción emitida desde el inter predictor 221 o el intra predictor 222, de modo que se puede generar una señal reconstruida (imagen reconstruida, bloque reconstruido, matriz de muestra reconstruida). Cuando no hay residuos para un bloque objetivo de procesamiento como en el caso en que se aplica el modo de salto, el bloque previsto puede usarse como un bloque reconstruido. El sumador 250 puede denominarse reconstructor o generador de bloques reconstruidos. La señal reconstruida generada se puede usar para la intra predicción de un siguiente bloque objetivo de procesamiento en el bloque actual y, como se describe más adelante, se puede usar para la inter predicción de una imagen siguiente a través del filtrado.
Por otro lado, en el proceso de codificación y/o reconstrucción de imágenes, se puede aplicar la asignación de luma con escala cromática (LMCS).
El filtro 260 puede mejorar la calidad de vídeo subjetiva/objetiva aplicando el 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 la DPB de la memoria 270. Los diversos métodos de filtrado pueden incluir, por ejemplo, filtrado de desbloqueo, un desplazamiento adaptativo de muestra, un filtro de bucle adaptativo, un filtro bilateral o similares. Como se describe más adelante en la descripción de cada método de filtrado, el filtro 260 puede generar diversa información relacionada con el filtrado y transmitir la información generada al codificador por entropía 240. La información sobre el filtrado puede codificarse en el codificador por entropía 240 y emitirse en forma de un flujo de bits.
La imagen reconstruida modificada que ha sido transmitida a la memoria 270 puede usarse como una imagen de referencia en el inter predictor 221. A través de esto, el aparato de codificación puede evitar la discrepancia de predicción en el aparato de codificación 100 y un aparato de descodificación cuando se aplica la inter predicción y también puede mejorar la eficiencia de codificación.
La memoria 270 DPB puede almacenar la imagen reconstruida modificada para usarla como imagen de referencia en el inter predictor 221. La memoria 270 puede almacenar información de movimiento de un bloque en la imagen actual, a partir de la cual se ha derivado (o codificado) información de movimiento y/o información de movimiento de bloques en una imagen ya reconstruida. La información de movimiento almacenada se puede transmitir al inter predictor 221 para utilizarla como información de movimiento de un bloque vecino o información de movimiento de un bloque vecino temporal. La memoria 270 puede almacenar muestras reconstruidas de bloques reconstruidos en la imagen actual y transmitirlas al intra predictor 222.
La Figura 3 es un diagrama que ilustra esquemáticamente una configuración de un aparato de descodificación de vídeo/imágenes al cual puede aplicarse la presente divulgación.
Haciendo referencia a la Figura 3, el aparato de descodificación de vídeo 300 puede incluir un descodificador por 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 inter predictor 331 y un intra predictor 332. El procesador residual 320 puede incluir un descuantificador 321 y un transformador inverso 321. El descodificador por entropía 310, el procesador residual 320, el predictor 330, el sumador 340 y el filtro 350, que se han descrito anteriormente, pueden estar constituidos por uno o más componentes de hardware (por ejemplo, conjuntos de chips descodificadores o procesadores) de acuerdo con una realización. Además, la memoria 360 puede incluir una memoria intermedia de imágenes descodificadas (DPB) y puede estar constituida por un medio de almacenamiento digital. El componente de hardware puede incluir además la memoria 360 como un componente interno/externo.
Cuando se introduce un flujo de bits que incluye información de vídeo/imagen, el aparato de descodificación 300 puede reconstruir una imagen de forma correspondiente a un proceso mediante el cual se ha procesado la información de vídeo/imagen en el aparato codificación de la Figura 2. Por ejemplo, el aparato de descodificación 300 puede derivar unidades/bloques basándose en información relacionada con la partición de bloques obtenida del flujo de bits. El aparato de descodificación 300 puede realizar la descodificación utilizando una unidad de procesamiento aplicada en el aparato de codificación. Por lo tanto, la unidad de procesamiento de descodificación puede ser, por ejemplo, una unidad de codificación, que puede dividirse a lo largo de la estructura de árbol cuádruple, la estructura de árbol binario y/o la estructura de árbol ternario a partir de una unidad de árbol de codificación o una unidad de codificación más grande. Una o más unidades de transformada se pueden derivar a partir de la unidad de codificación. Y la señal de imagen reconstruida descodificada y emitida a través del aparato de descodificación 300 puede reproducirse a través de un reproductor.
El aparato de descodificación 300 puede recibir una señal emitida del aparato de codificación de la Figura 2 en forma de un flujo de bits, y la señal recibida se puede descodificar a través del descodificador por entropía 310. Por ejemplo, el descodificador por 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 instantáneas). 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), un conjunto de parámetros de vídeo (VPS) o similares. Además, la información de vídeo/imagen puede incluir además información de restricción general. El aparato de descodificación puede descodificar una imagen basándose además en información sobre el conjunto de parámetros y/o la información de restricción general. En la presente divulgación, la información señalizada/recibida y/o los elementos de sintaxis, que se describirán más adelante, pueden descodificarse a través del procedimiento de descodificación y obtenerse del flujo de bits. Por ejemplo, el descodificador por entropía 310 puede descodificar información en el flujo de bits basándose en un método de codificación tal como codificación exponencial de Golomb, CAVLC, CABAC, o similares, y puede emitir un valor de un elemento de sintaxis necesario para la reconstrucción de la imagen y valores cuantificados de un coeficiente de transformada con respecto a un residual. Más específicamente, un método de descodificación por entropía CABAC puede recibir un binario correspondiente a cada elemento de sintaxis en un flujo de bits, determinar un modelo contextual utilizando la información de elemento de sintaxis objetivo de descodificación y descodificar la información de bloques objetivo vecinos y de descodificación, o la información de símbolo/binario descodificada en una etapa anterior, predecir la probabilidad de generación de binario de acuerdo con el modelo contextual determinado y realizar la descodificación aritmética del binario para generar un símbolo correspondiente a cada valor de elemento de sintaxis. En este punto, el método de descodificación por entropía CABAC puede actualizar el modelo contextual utilizando información de un símbolo/binario descodificado para un modelo contextual del siguiente símbolo/binario después de la determinación del modelo contextual. La información sobre la predicción entre la información descodificada en el descodificador por entropía 310 se puede proporcionar al predictor (inter predictor 332 e intra predictor 331), y los valores residuales, es decir, los coeficientes de transformada cuantificados sobre los que se ha realizado la descodificación por entropía en el descodificador por entropía 310, y la información de parámetros asociada pueden introducirse al procesador residual 320. El procesador residual 320 puede derivar una señal residual (bloque residual, muestras residuales, matriz de muestras residuales). Además, la información sobre el filtrado entre la información descodificada en el descodificador por entropía 310 se puede proporcionar al filtro 350. Por otro lado, un receptor (no mostrado) que recibe una señal emitida desde el aparato de codificación puede constituir además el aparato de descodificación 300 como un elemento interno/externo, y el receptor puede ser un componente del descodificador por entropía 310. Por otro lado, el aparato de descodificación de acuerdo con la presente divulgación puede denominarse aparato de codificación de vídeo/imágenes/instantáneas, y el aparato de descodificación puede clasificarse en un descodificador de información (descodificador de información de vídeo/imágenes/instantáneas) y un descodificador de muestras (descodificador de muestras de vídeo/imágenes/instantáneas). El descodificador de información puede incluir el descodificador por entropía 310, y el descodificador de muestras puede incluir al menos uno del descuantificador 321, el transformador inverso 322, el sumador 340, el filtro 350, la memoria 360, el inter predictor 332 y el intra predictor 331.
El descuantificador 321 puede generar coeficientes de transformada descuantificando los coeficientes de transformada cuantificados. El descuantificador 321 puede reorganizar los coeficientes de transformada cuantificados en forma de un bloque bidimensional. En este caso, la reorganización puede realizar una reorganización basada en un orden de exploración de coeficientes que se ha realizado en el aparato de codificación. El descuantificador 321 puede realizar la descuantificación de los coeficientes de transformada cuantificados utilizando un parámetro de cuantificación (por ejemplo, información del tamaño de etapa de cuantificación), y obtener coeficientes de transformada.
El descuantificador 322 obtiene una señal residual (bloque residual, matriz de muestra residual) transformando inversamente los coeficientes de transformada.
El predictor puede realizar predicción en el bloque actual y puede generar un bloque previsto que incluye muestras de predicción para el bloque actual. El predictor puede determinar si se aplica intra predicción o inter predicción al bloque actual basándose en la información acerca de la predicción emitida desde el descodificador por entropía 310 y especialmente puede determinar un modo de intra/inter predicción.
El predictor puede generar una señal de predicción basada en varios métodos de predicción. Por ejemplo, el predictor puede aplicar intra predicción o inter predicción para la predicción en un bloque y, también, puede aplicar intra predicción e inter predicción al mismo tiempo. Esto puede denominarse inter e intra predicción combinadas (CIIP). Además, el predictor puede realizar una copia intra bloque (IBC) para la predicción en un bloque. La copia intra bloque se puede usar para la codificación de imagen/vídeo del contenido de un juego o similar, tal como la codificación de contenido de pantalla (SCC). Aunque el IBC básicamente realiza la predicción en un bloque actual, se puede realizar de manera similar a la inter predicción en el sentido de que deriva un bloque de referencia en un bloque actual. Es decir, el IBC puede usar al menos una de las técnicas de inter predicción descritas en la presente divulgación.
El intra predictor 331 puede predecir el bloque actual haciendo referencia a las muestras en la imagen actual. Las muestras referidas pueden estar ubicadas en las cercanías o fuera del bloque actual de acuerdo con el modo de predicción. En la intra predicción, los modos de predicción pueden incluir una pluralidad de modos no direccionales y una pluralidad de modos direccionales. El intra predictor 331 puede determinar el modo de predicción aplicado al bloque actual utilizando el modo de predicción aplicado al bloque vecino.
El inter predictor 332 puede derivar un bloque previsto para el bloque actual basándose en un bloque de referencia (matriz de muestras de referencia) especificado por un vector de movimiento en una imagen de referencia. En este momento, con el fin de reducir la cantidad de información de movimiento transmitida en el modo de inter predicción, la información de movimiento puede predecirse en un bloque, subbloque o 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 inter predicción (predicción L0, predicción L1, Bi predicción, etc.). En el caso de inter predicció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 inter predictor 332 puede configurar una lista de candidatos de información de movimiento basada en bloques vecinos y derivar un vector de movimiento y/o un índice de imagen de referencia del bloque actual basándose en la información de selección de candidatos recibida. La inter predicción se puede realizar basándose en diversos modos de predicción, y la información acerca de la predicción puede incluir información que indica un modo de inter predicción para el bloque actual.
El sumador 340 puede generar una señal reconstruida (imagen reconstruida, bloque reconstruido, matriz de muestra reconstruida), sumando la señal residual obtenida a la señal de predicción (bloque previsto, matriz de muestra de predicción) emitida por el predictor 330. Cuando no hay residuos para un bloque objetivo de procesamiento como en el caso en que se aplica el modo de salto, el bloque previsto puede usarse como un bloque reconstruido.
El sumador 340 puede denominarse reconstructor o generador de bloques reconstruidos. La señal reconstruida generada se puede usar para la intra predicción de un siguiente bloque objetivo de procesamiento en el bloque actual y, como se describe más adelante, se puede emitir a través del filtrado o se puede usar para la inter predicción de una imagen siguiente.
Por otro lado, en el proceso de descodificación de imágenes, se puede aplicar la asignación de luma con escala cromática (LMCS).
El filtro 350 puede mejorar la calidad de vídeo subjetiva/objetiva aplicando el 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 transmitir la imagen reconstruida modificada en la memoria 360, específicamente en la 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 o similares.
La imagen reconstruida (modificada) que ha sido almacenada en la DPB de la memoria 360 puede usarse como una imagen de referencia en el inter predictor 332. La memoria 360 puede almacenar información de movimiento de un bloque en la imagen actual, de la cual se ha derivado (o descodificado) información de movimiento y/o información de movimiento de bloques en una imagen ya reconstruida. La información de movimiento almacenada se puede transmitir al inter predictor 260 para utilizarla como información de movimiento de un bloque vecino o información de movimiento de un bloque vecino temporal. La memoria 360 puede almacenar muestras reconstruidas de bloques reconstruidos en la imagen actual y transmitirlas al intra predictor 331.
En esta memoria descriptiva, los ejemplos descritos en el predictor 330, el descuantificador 321, el transformador inverso 322 y el filtro 350 del aparato de descodificación 300 pueden aplicarse de manera similar o de forma correspondiente al predictor 220, el descuantificador 234, el transformador inverso 235, y el filtro 260 del aparato de codificación 200, respectivamente.
Como se ha descrito anteriormente, la predicción se realiza para aumentar la eficiencia de compresión al realizar la codificación de vídeo. Mediante esto, se puede generar un bloque de predicción previsto que incluye muestras de predicción para un bloque actual, que es un bloque objetivo de codificación. Aquí, el bloque previsto incluye muestras de predicción en un dominio espacial (o dominio de píxeles). El bloque previsto puede derivarse de manera idéntica en el aparato de codificación y el aparato de descodificación, y el aparato de codificación puede aumentar la eficiencia de codificación de imágenes al señalar al aparato de descodificación no el valor de muestra original de un bloque original en sí, sino la información sobre el residuo (información residual) entre el bloque original y el bloque previsto. El aparato de descodificación puede derivar un bloque residual que incluye muestras residuales basándose en la información residual, generar un bloque reconstruido que incluye muestras reconstruidas sumando el bloque residual al bloque de predicción, y generar una imagen reconstruida que incluye los bloques reconstruidos.
La información residual se puede generar a través de procedimientos de transformada y de cuantificación. Por ejemplo, el aparato de codificación puede derivar un bloque residual entre el bloque original y el bloque previsto, derivar coeficientes de transformada realizando un procedimiento de transformada sobre muestras residuales (matriz de muestras residuales) incluidas en el bloque residual, y derivar coeficientes de transformada cuantificados realizando un procedimiento de cuantificación sobre los coeficientes de transformada, para que pueda señalizar información residual asociada al aparato de descodificación (a través de un flujo de bits). Aquí, la información residual puede incluir información del valor, información de posición, una técnica de transformada, núcleo de transformada, un parámetro de cuantificación o similar de los coeficientes de transformada cuantificados. El aparato de descodificación puede realizar un procedimiento de cuantificación/descuantificación y derivar las muestras residuales (o bloque de muestras residuales), en base a la información residual. El aparato de descodificación puede generar una imagen reconstruida basándose en un bloque previsto y el bloque residual. El aparato de codificación puede derivar un bloque residual descuantificando/transformando inversamente los coeficientes de transformada cuantificados como referencia para la inter predicción de una siguiente imagen, y puede generar una imagen reconstruida basándose en esto.
La Figura 4 ilustra esquemáticamente una técnica de transformada múltiple de acuerdo con una realización de la presente divulgación.
Haciendo referencia a la Figura 4, un transformador puede corresponderse con el transformador en el aparato de codificación de la Figura 2 anterior, y un transformador inverso puede corresponderse con el transformador inverso en el aparato de codificación de la Figura 2 anterior, o con el transformador inverso en el aparato de descodificación de la Figura 3.
El transformador puede derivar coeficientes de transformada (primaria) realizando una transformada primaria basada en muestras residuales (matriz de muestras residuales) en un bloque residual (S410). Esta transformada primaria puede denominarse transformación central. En este documento, la transformada primaria puede basarse en la selección de transformada múltiple (MTS) y cuando se aplica una transformada múltiple como transformada primaria, puede denominarse transformada de múltiples núcleos.
La transformada de múltiples núcleos puede representar un método de transformación adicional utilizando transformada de coseno discreta (DCT) tipo 2 y transformada de seno discreta (DST) tipo 7, DCT tipo 8 y/o DST tipo 1. Es decir, la transformada de múltiples núcleos puede representar un método de transformada para transformar una señal residual (o bloque residual) de un dominio espacial en coeficientes de transformada (o coeficiente de transformada primaria) de un dominio de frecuencia basado en una pluralidad de núcleos de transformada seleccionados entre los DCT tipo 2, DST tipo 7, DCT tipo 8 y DST tipo 1. Aquí, los coeficientes de transformada primaria pueden denominarse coeficientes de transformada temporales desde el punto de vista del transformador. Es decir, cuando se aplica el método de transformada convencional, los coeficientes de transformada pueden generarse aplicando la transformada de un dominio espacial a un dominio de frecuencia a una señal residual (o bloque residual) basada en DCT tipo 2. Sin embargo, cuando se aplica la transformada de múltiples núcleos, se pueden generar coeficientes de transformada (o coeficientes de transformada primaria) aplicando la transformada de un dominio espacial a un dominio de frecuencia a una señal residual (o bloque residual) basada en DCT tipo 2, DST tipo 7, DCT tipo 8 y/o DST tipo 1. Aquí, DCT tipo 2, DST tipo 7, DCT tipo 8 y DST tipo 1 pueden denominarse tipos de transformada, núcleos de transformada o centros de transformada. Estos tipos de DCT/DST pueden definirse en función de las funciones básicas.
Si se realiza la transformada de múltiples núcleos, se puede seleccionar un núcleo de transformada vertical y un núcleo de transformada horizontal para un bloque de destino de entre los núcleos de transformada, se puede realizar una transformada vertical para el bloque de destino en función del núcleo de transformada vertical, y una transformada horizontal para el bloque de destino se puede realizar basándose en el núcleo de transformada horizontal. Aquí, la transformada horizontal puede representar una transformada para los componentes horizontales del bloque objetivo, y la transformada vertical puede representar una transformada para los componentes verticales del bloque objetivo. El núcleo de transformada vertical/el núcleo de transformada horizontal puede determinarse de forma adaptativa basándose en un modo de predicción y/o un índice de transformada de un bloque objetivo (CU o subbloque) que incluye un bloque residual.
Además, de acuerdo con un ejemplo, si la transformada primaria se realiza aplicando el MTS, se puede establecer una relación de asignación para los núcleos de transformada estableciendo funciones de base específicas a los valores predeterminados y combinando funciones de base que se aplicarán a la transformada vertical o a la transformada horizontal. Por ejemplo, cuando el núcleo de transformada horizontal se expresa como trTypeHor y el núcleo de transformada de dirección vertical se expresa como trTypeVer, un valor de trTypeHor o trTypeVer de 0 se puede establecer en DCT2, un valor de trTypeHor o trTypeVer de 1 se puede establecer en dST7 y un valor trTypeHor o trTypeVer de 2 se puede establecer en DCT8.
En este caso, la información del índice MTS puede codificarse y enviarse en forma de señal al aparato de descodificación para indicar cualquiera de una pluralidad de conjuntos de núcleos de transformada. Por ejemplo, un índice MTS de 0 puede indicar que los valores trTypeHor y trTypeVer son 0, un índice MTS de 1 puede indicar que los valores trTypeHor y trTypeVer son 1, un índice MTS de 2 puede indicar que el valor trTypeHor es 2 y el valor de trTypeVer es 1. Un índice MTS de 3 puede indicar que el valor trTypeHor es 1 y el valor trTypeVer es 2, y un índice MTS de 4 puede indicar que los valores trTypeHor y trTypeVer son 2.
En un ejemplo, los conjuntos de núcleos de transformada de acuerdo con la información del índice MTS se ilustran en la siguiente tabla.
[Tabla 1]
Figure imgf000012_0002
En otro ejemplo, trTypeHor y trTypeVer de acuerdo con la información del índice MTS (mts_idx[x][y]) y un modo de predicción (CuPredMode[x][y]) para un bloque actual (por ejemplo, un bloque de codificación actual) se ilustran de la siguiente manera.
[Tabla 2]
Figure imgf000012_0001
El transformador puede derivar coeficientes de transformada (secundaria) modificados realizando la transformada secundaria basándose en los coeficientes de transformada (primaria) (S420). La transformada primaria es una transformada de un dominio espacial a un dominio de frecuencia, y la transformada secundaria se refiere a la transformación en una expresión más compresiva mediante el uso de una correlación existente entre los coeficientes de transformada (primaria). La transformada secundaria puede incluir una transformada no separable. En este caso, la transformada secundaria puede llamarse transformada secundaria no separable (NSST) o transformada secundaria no separable dependiente del modo (MDNSST). La transformada secundaria no separable puede representar una transformada que genera coeficientes de transformada modificados (o coeficientes de transformada secundaria) para una señal residual mediante transformación secundaria, basándose en una matriz de transformada no separable, coeficientes de transformada (primaria) derivados a través de la transformada primaria. En este momento, la transformada vertical y la transformada horizontal no se pueden aplicar por separado (o las transformadas horizontal y vertical no se pueden aplicar de forma independiente) a los coeficientes de transformada (primaria), pero las transformadas se pueden aplicar a la vez basándose en la matriz de transformada no separable. En otras palabras, la transformada secundaria no separable puede representar un método de transformada en el que los componentes vertical y horizontal de los coeficientes de transformada (primaria) no se separan y, por ejemplo, las señales bidimensionales (coeficientes de transformada) se reorganizan en una señal unidimensional a través de una cierta dirección determinada (por ejemplo, dirección de fila primero o dirección de columna primero), y luego se generan coeficientes de transformada modificados (o coeficiente de transformada secundaria) basados en la matriz de transformada no separable. Por ejemplo, de acuerdo con un orden de fila primero, se disponen bloques M x N en una línea en un orden de una primera fila, una segunda fila, ..., y una enésima fila. De acuerdo con un orden de columna primero, se disponen bloques M x N en una línea en un orden de una primera columna, una segunda columna, ..., y una enésima columna. La transformada secundaria no separable puede aplicarse a una región superior izquierda de un bloque configurado con coeficientes de transformada (primaria) (en lo sucesivo, puede denominarse bloque de coeficientes de transformada). Por ejemplo, si la anchura (W) y la altura (H) del bloque de coeficientes de transformada son iguales o mayores que 8, se puede aplicar una transformada secundaria no separable de 8x8 a una región 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 iguales o superiores a 4, y la anchura (W) o la altura (H) del bloque de coeficientes de transformada es inferior a 8, entonces se puede aplicar una transformada secundaria no separable 4x4 a una región superior izquierda min(8 W) x min(8 H) del bloque de coeficientes de transformada. Sin embargo, la realización no se limita a esto y, por ejemplo, incluso si solo se cumple la condición de que la anchura (W) o la altura (H) del bloque de coeficientes de transformada es igual o mayor que 4, la transformada secundaria no separable 4x4 se puede aplicar a la región superior izquierda min(8 W)xmin(8 H) del bloque de coeficientes de transformada.
El transformador puede realizar la transformada secundaria no separable basándose en los núcleos de transformada seleccionados y puede obtener coeficientes de transformada (secundaria) modificados. Como se ha descrito anteriormente, los coeficientes de transformada modificados pueden derivarse como coeficientes de transformada cuantificados a través del cuantificador, y pueden codificarse y emitirse al aparato de descodificación y transferirse al descuantificador/transformador inverso en el aparato de codificación.
Por otro lado, como se ha descrito anteriormente, si se omite la transformada secundaria, los coeficientes de transformada (primaria), que son una salida de la transformada primaria (separable), pueden derivarse como coeficientes de transformada cuantificados a través del cuantificador como se describe anteriormente, y pueden codificarse y emitirse al aparato de descodificación y transferirse al descuantificador/transformador inverso en el aparato codificador.
El transformador inverso puede realizar una serie de procedimientos en orden inverso al que se han realizado en el transformador antes descrito. El transformador inverso puede recibir coeficientes de transformador (descuantificados) y derivar coeficiente de transformada (primaria) realizando una transformada secundaria (inversa) (S450), y puede obtener un bloque residual (muestras residuales) realizando una transformada primaria (inversa) en los coeficientes de transformada (primaria) (S460). A este respecto, los coeficientes de transformada primaria pueden denominarse coeficientes de transformada modificados desde el punto de vista del transformador inverso. Como se ha descrito anteriormente, el aparato de codificación y el aparato de descodificación pueden generar el bloque reconstruido basándose en el bloque residual y el bloque previsto, y pueden generar la imagen reconstruida basándose en el bloque reconstruido.
El aparato de descodificación puede incluir además un determinador de aplicación de transformada inversa secundaria (o un elemento para determinar si aplicar una transformada inversa secundaria) y un determinador de transformada inversa secundaria (o un elemento para determinar una transformada inversa secundaria). El determinador de aplicación de transformada inversa secundaria puede determinar si aplicar una transformada inversa secundaria. Por ejemplo, la transformada inversa secundaria puede ser una NSST o una RST, y el determinador de aplicación de transformada inversa secundaria puede determinar si aplicar la transformada inversa secundaria basándose en un indicador de transformada secundaria obtenido analizando el flujo de bits. En otro ejemplo, el determinador de aplicación de transformada inversa secundaria puede determinar si aplicar la transformada inversa secundaria basándose en un coeficiente de transformada de un bloque residual.
El determinador de transformada inversa secundaria puede determinar una transformada inversa secundaria. En este caso, el determinador de transformada inversa secundaria puede determinar la transformada inversa secundaria aplicada al bloque actual basándose en un conjunto de transformadas NSST (o RST) especificado de acuerdo con un modo de intra predicción. En una realización, se puede determinar un método de determinación de transformada secundaria dependiendo de un método de determinación de transformada primaria. Pueden determinarse diversas combinaciones de transformadas primarias y transformadas secundarias de acuerdo con el modo de intra predicción. Además, en un ejemplo, el determinador de transformada inversa secundaria puede determinar una región a la que se aplica una transformada inversa secundaria en función del tamaño del bloque actual.
Por otro lado, como se ha descrito anteriormente, si se omite la transformada secundaria (inversa), se pueden recibir coeficientes de transformada (descuantificados), se puede realizar la transformada inversa primaria (separable) y se puede obtener el bloque residual (muestras residuales). Como se ha descrito anteriormente, el aparato de codificación y el aparato de descodificación pueden generar el bloque reconstruido basándose en el bloque residual y el bloque previsto, y pueden generar la imagen reconstruida basándose en el bloque reconstruido.
Por otro lado, en la presente divulgación, se puede aplicar una transformada secundaria reducida (RST) en la que se reduce el tamaño de una matriz de transformada (núcleo) en el concepto de NSST para reducir la cantidad de cómputo y memoria requeridos para la transformada secundaria no separable.
Por otro lado, el núcleo de transformada, la matriz de transformada y el coeficiente que constituye la matriz del núcleo de transformada, es decir, el coeficiente del núcleo o el coeficiente de matriz, descritos en la presente divulgación, pueden expresarse en 8 bits. Esto puede ser una condición para la implementación en el aparato de descodificación y el aparato de codificación, y puede reducir la cantidad de memoria necesaria para almacenar el núcleo de transformada con una degradación del rendimiento que puede acomodarse razonablemente en comparación con los 9 o 10 bits existentes. Además, la expresión de la matriz del núcleo en 8 bits puede permitir el uso de un pequeño multiplicador, y puede ser más adecuada para instrucciones de instrucción única y datos múltiples (SIMD) utilizadas para una implementación de software óptima.
En la presente memoria descriptiva, el término "RST" puede significar una transformada que se realiza en muestras residuales para un bloque objetivo basándose en una matriz de transformada cuyo tamaño se reduce según un factor reducido. En el caso de realizar la transformada reducida, la cantidad de computación requerida para la transformada puede reducirse debido a una reducción en el tamaño de la matriz de transformada. Es decir, la RST se puede utilizar para abordar el problema de la complejidad computacional que se produce en la transformada no separable o la transformada de un bloque de gran tamaño.
La RST puede denominarse con varios términos, como transformada reducida, transformada secundaria reducida, transformada de reducción, transformada simplificada, transformada simple y similares, y el nombre con el que puede denominarse RST no se limita a los ejemplos enumerados. Alternativamente, dado que la RST se realiza principalmente en una región de baja frecuencia que incluye un coeficiente distinto a cero en un bloque de transformada, puede denominarse Transformación no separable de baja frecuencia (LFNST).
Por otro lado, cuando la transformada inversa secundaria se realiza basándose RST, el transformador inverso 235 del aparato de codificación 200 y el transformador inverso 322 del aparato de descodificación 300 pueden incluir un transformador secundario inverso reducido que deriva coeficientes de transformada modificados sobre la base de la RST inversa de los coeficientes de transformada primaria, y un transformador primario inverso que deriva muestras residuales para el bloque de destino basándose en la transformada primaria inversa de los coeficientes de transformada modificados. La transformada primaria inversa se refiere a la transformada inversa de la transformada primaria aplicada al residuo. En la presente divulgación, derivar un coeficiente de transformada basándose en una transformada puede referirse a derivar un coeficiente de transformada aplicando la transformada.
A continuación en el presente documento, se describe una selección (o conjunto) de transformada múltiple adaptativa (o explícita) reducida (RMTS).
Como se ha descrito anteriormente, cuando se usan selectivamente combinaciones de una pluralidad de transformadas (DCT2, DST7, DCT8, DST1, DCT5 y similares), en un conjunto de transformadas múltiples (transformada múltiple explícita o transformada múltiple adaptativa) para una transformada primaria, la transformada puede aplicarse solo a una región predefinida para reducir la complejidad, en lugar de realizar la transformada en todos los casos, reduciendo así significativamente la complejidad en el peor de los casos.
Por ejemplo, cuando la transformada primaria se aplica a un bloque de píxeles M x M en función del método de transformada reducida (RT) anterior, solo se puede realizar el cálculo en un bloque de transformada R x R (M >= R) en lugar de obtener una bloque de transformada M x M. Como resultado, los coeficientes significativos (coeficientes distintos de cero) existen solo en una región R x R, y los coeficientes existentes en la otra región pueden considerarse como ceros sin calcularse. La siguiente tabla ilustra tres ejemplos de una transformada múltiple adaptativa reducida (RAMT) utilizando un factor de transformada reducido (R) predefinido según el tamaño de un bloque al que se aplica la transformada primaria.
[Tabla 3]
Figure imgf000014_0001
De acuerdo con un ejemplo, al aplicar las transformadas múltiples reducidas ilustradas anteriormente, el factor de transformada reducido puede determinarse basándose en la transformada primaria. Por ejemplo, cuando la transformada primaria es DCT2, el cálculo es simple en comparación con otras transformadas primarias y, por lo tanto, es posible que no se use una transformada reducida para un bloque pequeño o que se use un valor R relativamente grande para un bloque pequeño, minimizando así una disminución en el rendimiento de la codificación. Por ejemplo, se pueden usar diferentes factores de transformada reducidos para DCT2 y otras transformadas como sigue.
[Tabla 4]
Figure imgf000015_0001
Como se muestra en la Tabla 4, cuando la transformada primaria es DCT2, el tamaño de la transformada no cambia cuando el tamaño de un bloque a transformar es 8 x 8 o 16 x 16, y el tamaño reducido de la transformada está limitado a 32 x 32 cuando el tamaño del bloque es de 32 x 32 o mayor.
Como alternativa, de acuerdo con un ejemplo, cuando un valor de indicador que indica si se aplica una MTS es 0 (es decir, cuando se aplica DCT2 para las direcciones horizontal y vertical), solo se pueden dejar 32 coeficientes desde la izquierda o desde la parte superior y los componentes de alta frecuencia pueden ponerse a cero, es decir, establecerse en 0, para ambas direcciones (horizontal y vertical) (realización de puesta a cero 1).
Por ejemplo, en una unidad de transformada (TU) de 64 x 64, los coeficientes de transformada se dejan solo en una región superior izquierda de 32 x 32, en una TU de 64 x 16, los coeficientes de transformada se dejan solo en una región superior izquierda de 32 x 16, y en una TU de 8 x 64, los coeficientes de transformada se dejan solo en una región superior izquierda de 8 x 32. Es decir, existen coeficiente de transformada correspondientes a hasta una longitud máxima de solo 32 tanto en anchura como en altura.
Este método de puesta a cero se puede aplicar solo a una señal residual a la que se aplica la intra predicción o se puede aplicar solo a una señal residual a la que se aplica la inter predicción. Como alternativa, el método de puesta a cero puede aplicarse tanto a una señal residual a la que se aplica la intra predicción como a una señal residual a la que se aplica la inter predicción.
Un cambio del tamaño del bloque de transformada, que se puede expresar como la puesta a cero anterior o la puesta a cero de alta frecuencia, se refiere a un proceso de puesta a cero (determinación como Os) de los coeficientes de transformada relacionados con una alta frecuencia de un cierto valor o mayor en un bloque (transformada), que tiene una primera anchura (o longitud) de W1 y una primera altura (o longitud) de H1. Cuando se aplica la puesta a cero de alta frecuencia, se pueden determinar los valores de los coeficientes de transformada de todos los coeficientes de transformada fuera de una región de coeficiente de transformada de baja frecuencia configurada en función de una segunda anchura de W2 y una segunda altura de H2 entre los coeficientes de transformada en el bloque (transformada) pueden determinarse (establecerse) como 0s. El exterior de la región del coeficiente de transformada de baja frecuencia puede denominarse región del coeficiente de transformada de alta frecuencia. En un ejemplo, la región del coeficiente de transformada de baja frecuencia puede ser una región rectangular situada desde la parte superior izquierda del bloque (transformada).
Es decir, la puesta a cero de alta frecuencia puede definirse como el establecimiento de todos los coeficientes de transformada en una posición definida por una coordenada "x" de N o mayor y una coordenada "y" de M o mayor a 0s donde el valor de la coordenada "x" horizontal de la posición superior izquierda del el bloque de transformada actual (TB) se establece a 0 y el valor de la coordenada "y" vertical del mismo se establece a 0 (y donde las coordenadas "x" aumentan de izquierda a derecha y las coordenadas "y" aumentan hacia abajo).
Como se utiliza en el presente documento, un término o expresión específica se utiliza para definir una información o concepto específico. Por ejemplo, como se ha descrito anteriormente, en la presente divulgación, un proceso de poner a cero los coeficientes de transformada relacionados con una alta frecuencia de un cierto valor o mayor en un bloque (transformada) que tiene una primera anchura (o longitud) de W1 y una primera altura (o longitud) de H1 se define como "puesta a cero de alta frecuencia", una región en la que la puesta a cero se realiza a través de la puesta a cero de alta frecuencia se define como una "región de coeficiente de transformada de alta frecuencia", y una región en la que no se realiza ninguna puesta a cero se define como una "región de coeficiente de transformada de baja frecuencia". Se utiliza una segunda anchura (o longitud) de W2 y una segunda altura (longitud) de H2 para expresar el tamaño de la región del coeficiente de transformada de baja frecuencia.
Sin embargo, la expresión "puesta a cero de alta frecuencia" puede reemplazarse por diversas expresiones, como reducción a cero de alta frecuencia, y puesta a cero, y la expresión "región de coeficiente de transformada de alta frecuencia" puede reemplazarse por diversas expresiones, como una región aplicada a puesta a cero de alta frecuencia, una región de puesta a cero de alta frecuencia, una región de alta frecuencia, una región de coeficiente de alta frecuencia, una región de puesta a cero de alta frecuencia y una región de puesta a cero, y la expresión "región de coeficiente de transformada de baja frecuencia" puede reemplazarse por diversas expresiones, como una región de puesta a cero de alta frecuencia no aplicada, una región de baja frecuencia, una región de coeficiente de baja frecuencia y una región restringida. Por lo tanto, un término o expresión específica utilizada en el presente documento para definir información o concepto específico debe interpretarse a lo largo de la memoria descriptiva en vista de varias operaciones, funciones y efectos de acuerdo con el contenido indicado por el término sin limitarse a la designación.
Como alternativa, de acuerdo con un ejemplo, una región de coeficiente de transformada de baja frecuencia se refiere a una región restante después de realizar la puesta a cero de alta frecuencia o una región en la que permanece un coeficiente de transformada significativo y puede denominarse región de puesta a cero o cero o bloque de puesta a cero.
De acuerdo con un ejemplo, cuando el valor del indicador que indica si se aplica la MTS es 1, es decir, cuando puede aplicarse una transformada diferente (DST7 o DCT8) distinta a DCT2 para la dirección horizontal y la dirección vertical, los coeficientes de transformada pueden dejarse solo en una región superior izquierda y la región restante se puede poner a cero de la siguiente manera (realización de puesta a cero 2).
- Cuando la anchura (w) es igual o mayor a 2n, solo los coeficientes de transformada correspondientes a una longitud de w/2p desde la izquierda pueden dejarse y los coeficientes de transformada restantes pueden fijarse en 0s (ponerse a cero).
- Cuando la altura (h) sea igual o superior a 2m, solo los coeficientes de transformada correspondientes a una longitud de h/2q desde la parte superior y los coeficientes de transformada restantes pueden fijarse en 0s (ponerse a cero).
Aquí, m, n, p y q pueden ser números enteros iguales o mayores que 0, y pueden ser específicamente como sigue.
1) (m, n, p, q) = (5, 5, 1, 1)
2) (m, n, p, q) = (4, 4, 1, 1)
En la configuración 1), los coeficientes de transformada permanecen solo en una región superior izquierda de 16 x 16 en una TU de 32 x 16, y los coeficientes de transformada permanecen solo en una región superior izquierda de 8 x 16 en una TU de 8 x 32.
Este método de puesta a cero se puede aplicar solo a una señal residual a la que se aplica la intra predicción o se puede aplicar solo a una señal residual a la que se aplica la inter predicción. Como alternativa, el método de puesta a cero puede aplicarse tanto a una señal residual a la que se aplica la intra predicción como a una señal residual a la que se aplica la inter predicción.
Como alternativa, de acuerdo con otro ejemplo, cuando el valor del indicador que indica si se aplica la MTS es 1, es decir, cuando puede aplicarse una transformada diferente (DST7 o DCT8) distinta a DCT2 para la dirección horizontal y la dirección vertical, los coeficientes de transformada pueden dejarse solo en una región superior izquierda y la región restante se puede poner a cero de la siguiente manera (realización de puesta a cero 3).
- Cuando la altura (h) sea igual o mayor que la anchura (w) y sea igual o mayor a 2n, solo los coeficientes de transformada en una región w x superior izquierda (h/2p) pueden dejarse y los coeficientes de transformada restantes pueden fijarse en 0 (ponerse a cero).
- Cuando la anchura (w) sea mayor que la altura (h) y sea igual o mayor a 2m, solo los coeficientes de transformada en una región superior izquierda (w/2q) x h y los coeficientes de transformada restantes pueden fijarse en 0s (ponerse a cero).
En las condiciones anteriores, cuando la altura (h) y la anchura (w) sean iguales, se reduce una longitud vertical (h/2p), pero se puede reducir una longitud horizontal (w/2q).
Aquí, m, n, p y q pueden ser números enteros iguales o mayores que 0, y pueden ser específicamente como sigue.
1) (m, n, p, q) = (4, 4, 1, 1)
2) (m, n, p, q) = (5, 5, 1, 1)
En la configuración 1), los coeficientes de transformada permanecen solo en una región superior izquierda de 16 x 16 en una TU de 32 x 16, y los coeficientes de transformada permanecen solo en una región superior izquierda de 8 x 8 en una TU de 8 x 16.
Este método de puesta a cero se puede aplicar solo a una señal residual a la que se aplica la intra predicción o se puede aplicar solo a una señal residual a la que se aplica la inter predicción. Como alternativa, el método de puesta a cero puede aplicarse tanto a una señal residual a la que se aplica la intra predicción como a una señal residual a la que se aplica la inter predicción.
En las realizaciones anteriores, una región de coeficiente de transformada está limitada dependiendo de si el valor del indicador que indica si se aplica la MTS es 0 o si el valor del indicador que indica si se aplica la MTS es 1. De acuerdo con un ejemplo, son posibles combinaciones de estas realizaciones.
1) Realización de puesta a cero 1 realización de puesta a cero 2
2) Realización de puesta a cero 1 realización de puesta a cero 3
Como se ha mencionado en la realización de puesta a cero 2 y la realización de puesta a cero 3, la puesta a cero se puede aplicar solo a una señal residual a la que se aplica la intra predicción o se puede aplicar solo a una señal residual a la que se aplica la inter predicción. Como alternativa, el método de puesta a cero puede aplicarse tanto a una señal residual a la que se aplica la intra predicción como a una señal residual a la que se aplica la inter predicción. Por consiguiente, cuando el indicador MTS es 1, se puede configurar la siguiente tabla (cuando el indicador MTS es 0, se puede aplicar la realización 1 de puesta a cero).
[Tabla 5]
Figure imgf000017_0001
En la realización de puesta a cero 1, la realización de puesta a cero 2 y la realización de puesta a cero 3, una región que incluye inevitablemente un valor de 0 en una TU está claramente definida. Es decir, una región que no sea una región superior izquierda, en la que se permite que exista un coeficiente de transformada, se pone a cero. Por consiguiente, de acuerdo con una realización, puede configurarse para eludir una región en la que un coeficiente de transformada definitivamente tiene un valor de 0 como resultado de la codificación por entropía de una señal residual, en lugar de realizar la codificación residual de la misma. Por ejemplo, es posible la siguiente configuración: 1) En HEVC o VVC, un indicador que indica si existe un coeficiente de transformada distinto a cero en un grupo de coeficientes (CG, que puede ser un bloque de 4 x 4 o 2 x 2 dependiendo de las formas de un subbloque y un bloque TU y un componente luma/componente croma) está codificado (subblock_flag). Solo cuando subblock_flag es 1, se analiza el interior del CG y se codifican los valores de nivel de coeficiente. Por consiguiente, para los CG que pertenecen a una región en la que se realiza la puesta a cero, el indicador de subbloque puede establecerse en un valor de 0 por defecto en lugar de codificarse.
2) En HEVC o VVC, la posición del último coeficiente (last_coefficient_position_x en una dirección X y last_coefficient_position_y en una dirección Y) en un orden de exploración directa se codifica primero. En general, last_coefficient_position_x y last_coefficient_position_y pueden tener un valor máximo de (anchura de una TU - 1) y un valor máximo de (altura de la TU - 1), respectivamente. Sin embargo, cuando una región en la que puede existir un coeficiente distinto a cero está limitada debido a la puesta a cero, los valores máximos de last_coefficient_position_x y last_coefficient_position_y también están limitados. Por consiguiente, los valores máximos de last_coefficient_position_x y last_coefficient_position_y pueden limitarse en vista de la puesta a cero y a continuación pueden codificarse. Por ejemplo, cuando un método de binarización aplicado a last_coefficient_position_x y last_coefficient_position_y es binarización unaria truncada, la longitud máxima de un código unario truncado (longitud de palabra clave que pueden tener last_coefficient_position_x y last_coefficient_position_y) puede reducirse en función de los valores máximos ajustados.
Como se ha descrito anteriormente, la puesta a cero puede aplicarse particularmente en un caso en el que una región de 32 x 32 en la parte superior izquierda sea una región de coeficiente de transformada de baja frecuencia (en lo sucesivo en el presente documento, denominada MTS reducida de 32 puntos o RMTS32), en un caso en el que un se aplique el esquema MTS, y en cualquier caso en el que se aplique DST7 de 32 puntos o DCT8 de 32 puntos.
La Figura 5 ilustra la puesta a cero de 32 puntos de acuerdo con un ejemplo de la presente divulgación.
Como se muestra en la Figura 5, cuando se divide un bloque y se aplica una transformada a la región A, DST7 o DCT8 pueden aplicarse a cada lado y un par de transformadas aplicadas en las direcciones horizontal y vertical no se limita a un ejemplo ilustrado en la Figura 5. En la Figura 5, la anchura y la altura de todo el bloque se indican mediante w y h, respectivamente, y la anchura y la altura de un bloque al que se aplica realmente una transformada separable se expresan como un par de (anchura, altura), que es (w1, h) o (w, h1), w1 puede ser 1/2 o 1/4 de w, y h1 también puede ser 1/2 o 1/4 de h.
El bloque al que se aplica la transformada se puede colocar a la izquierda o a la derecha o en la parte superior o inferior de todo el bloque, como se muestra en la Figura 5. Además, el bloque de la Figura 5 puede ser una señal residual generada por inter predicción. Un indicador que indica si aplicar una transformada a solo un subbloque de la señal residual dividida como se muestra en la Figura 5 puede señalizarse, y cuando el indicador es 1, un indicador que indica si el bloque está dividido vertical u horizontalmente como se muestra en la Figura 5 también se puede establecerse a través de señalización.
También se puede señalizar un indicador que indica si el bloque A al que se aplica realmente la transformada está situado a la izquierda o a la derecha en todo el bloque o un indicador que indica si el bloque A está situado en la parte superior o inferior.
Como se ilustra en la Figura 5, cuando se determina una transformada horizontal y una transformada vertical para un bloque específico, en lugar de designar una transformada horizontal y una transformada vertical mediante señalización MTS, si un lado horizontal y un lado vertical tienen cada uno una longitud de 32, el RMTS32 propuesto anteriormente puede aplicarse en cada dirección. Por ejemplo, cuando el bloque se divide verticalmente en la Figura 5, si la altura del bloque A es 32, puede aplicarse la puesta a cero en la dirección vertical. Específicamente, cuando el bloque A es de 16 x 32, un bloque superior izquierdo de 16 x 16 puede ponerse a cero y, por lo tanto, puede existir un coeficiente significativo solo en una región de tamaño correspondiente. En RMTS32, la codificación residual puede omitirse para una región que está puesta a cero, o solo una región que no está puesta a cero puede analizarse y puede estar sujeta a codificación residual.
La Figura 6 ilustra la partición de un bloque residual de acuerdo con una realización de la presente divulgación. Un bloque residual puede dividirse como se muestra en la Figura 6, y la anchura y la altura del bloque A al que se aplica realmente una transformada pueden ser w/4 y h/4, respectivamente, en relación con la anchura (w) y la altura (h) del bloque de transformada original.
En resumen, RMTS32 puede aplicarse a cualquier bloque al que se aplique una transformada, si DST7 o DCT8 con una longitud de 32 son aplicables en cada dirección horizontal y dirección vertical. Si se aplica DST7 o DCT8 que tiene una longitud de 32, puede determinarse a través de señalización preestablecida o puede determinarse sin señalización de acuerdo con una condición de codificación predeterminada.
El texto de la memoria descriptiva que describe la puesta a cero de acuerdo con las realizaciones de la Figura 5 y la Figura 6 se ilustra en la siguiente tabla. En la tabla siguiente, se puede aplicar una transformada a una señal residual generada a través de la inter predicción y se la puede denominar transformada de subbloque (SBT). La SBT divide el bloque de señal residual en dos bloques de partición, y puede aplicarse una transformada independiente solo a uno de los bloques divididos.
[Tabla 6]
7.3.4.6 Sintaxis de la unidad de codificación
Figure imgf000019_0001
La Tabla 6 muestra la sintaxis de una CU a la que se aplica inter predicción, y la forma de partición en la que se aplica la SBT puede determinarse mediante cuatro elementos sintácticos de la Tabla 6.
cu_sbt_flag indica si la SBT se aplica a la CU, y cu_sbt_quad_flag es información de indicación que indica si un bloque al que se aplica una transformación es 1/4 del bloque completo cuando una CU se divide en dos bloques de partición. Cuando cu_sbt_quad_flag es 0, un bloque de partición tiene un tamaño de 1/2 del bloque completo. Cuando cu_sbt_quad_flag es 1, el bloque de partición tiene un tamaño de 1/4 de la anchura o la altura de la CU. Cuando la anchura de la CU es w y la altura de la misma es h, la altura del bloque de partición puede ser h1 = (1/4) x h o la anchura del bloque de partición puede ser w1 = (1/4) x w.
cu_sbt_horizontaLflag igual a 1 indica que la CU está dividida horizontalmente, y cu_sbt_horizontal_flag igual a 0 indica que la CU está dividida verticalmente.
Con respecto a cu_sbt_pos_flag, un valor de indicador igual a 0 indica que la transformada se aplica a un bloque de partición superior o izquierdo en una partición horizontal o vertical, y un valor de indicador igual a 1 indica que la transformada se aplica a un bloque de partición inferior o derecho.
La siguiente tabla ilustra trTypeHor y trTypeVer de acuerdo con cu_sbt_horizontal_flag y cu_sbt_pos_flag.
[Tabla 7]
Figure imgf000020_0001
Como se ha descrito anteriormente, cuando un núcleo de transformada horizontal se denota por trTypeHor y un núcleo de transformada vertical se denota por trTypeVer, se puede establecer un valor de 0 para trTypeHor o trTypeVer para DCT2, se puede establecer un valor de 1 para trTypeHor o trTypeVer para DST7, y se puede establecer un valor trTypeHor o trTypeVer de 2 para DCT8. Por consiguiente, cuando la longitud de al menos un lado del bloque de partición al que se aplica la transformada es de 64 o más, se puede aplicar DCT2 tanto en la dirección horizontal como en la dirección vertical y, de lo contrario, se puede aplicar DST7 o DCT8.
[Tabla 8]___________________________________
7.3.4.11 Sintaxis de la unidad de transformada
Figure imgf000020_0002
[Tabla 9]
7.3.4.12 Sintaxis de codificación residual
Figure imgf000021_0001
La Tabla 8 muestra parte de la sintaxis de TU de acuerdo con un ejemplo, y la Tabla 9 muestra parte de la sintaxis de codificación residual en una realización que no se reivindica.
En la Tabla 8, tu_mts_idx[x0][y0] denota un índice MTS aplicado a un bloque de transformada, y trTypeHor y trTypeVer pueden determinarse de acuerdo con el índice MTS como se muestra en la Tabla 1.
Los elementos de sintaxis last_sig_coeff_x_prefix, last_sig_coeff_y_prefix, last_sig_coeff_x_suffix y last_sig_coeff_y_suffix de la Tabla 9 denotan información de posición (x, y) en el último coeficiente de transformada distinto a cero en el bloque de transformada. Específicamente, last_sig_coeff_x_prefix denota el prefijo de la posición de la columna del último coeficiente significativo en un orden de exploración en el bloque de transformada, last_sig_coeff_y_prefix denota el prefijo de la posición de la fila del último coeficiente significativo en el orden de exploración en el bloque de transformada, last_sig_coeff_x_suffix denota el sufijo de la posición de columna del último coeficiente significativo en el orden de exploración en el bloque de transformada, y last_sig_coeff_y_suffix denota el sufijo de la posición de fila del último coeficiente significativo en el orden de exploración en el bloque de transformada. Aquí, el coeficiente significativo puede referirse a un coeficiente distinto a cero. El orden de exploración puede ser un orden de exploración diagonal ascendente derecho. Como alternativa, el orden de exploración puede ser un orden de exploración horizontal o de exploración vertical. El orden de exploración puede determinarse basándose en si la intra/inter predicción se aplica a un bloque objetivo (CB o CB que incluye un TB) y/o un modo de intra/inter predicción específico.
Se puede establecer una región de puesta a cero en la codificación residual de la Tabla 9 basada en tu_mts_idx[x0][y0] en la Tabla 8.
Cuando cu_sbt_flag es 1, la altura del bloque al que se aplica la transformada es 32 o menos (log2TbHeight < 6), y la anchura del mismo es 32 (log2TbWidth < 6 && log2TbWidth > 4), se establece la anchura del bloque de transformada a 16 (log2TbWidth = 4). En otros casos en los que cu_sbt_flag no es 1, la altura del bloque de transformada es mayor que 32 o la anchura del bloque de transformada no es 32, la anchura del bloque de transformada se puede establecer en un valor más pequeño que la anchura del bloque de transformada y 32. Es decir, la anchura máxima del bloque de transformada puede limitarse a 32 mediante la puesta a cero.
De manera similar, cuando cu_sbt_flag es 1, la anchura del bloque al que se aplica la transformada es 32 o menos (log2TbWidth < 6), y la altura del mismo es 32 (log2TbHeight < 6 && log2TbHeight > 4), la altura del bloque de transformada se establece en 16 (log2TbHeight = 4). En otros casos, donde cu_sbt_flag no es 1, la anchura del bloque de transformada es mayor que 32, o la altura del bloque de transformada no es 32, la altura del bloque de transformada se puede establecer en un valor más pequeño que la altura del bloque de transformada y 32. Es decir, la altura máxima del bloque de transformada puede limitarse a 32 mediante la puesta a cero.
De acuerdo con la Tabla 7, cuando la longitud de al menos un lado del bloque de partición es de 64 o más, se puede aplicar DCT2 tanto en dirección horizontal como en dirección vertical, y en caso contrario, se puede aplicar DST7 o DCT8. Por consiguiente, cuando se aplica SBT, la puesta a cero se puede realizar aplicando RMTS32 solo cuando los dos lados del bloque de partición al que se aplica la transformada tengan una longitud de 32 o menos. Es decir, cuando la longitud del bloque en cada dirección sea 32, solo se pueden dejar 16 coeficientes de transformada aplicando DST7 o DCT8 que tengan una longitud de 32.
Como se muestra en la Tabla 9, al aplicar RMTS32, la codificación se puede realizar considerando la anchura y la altura de la región restante (región del coeficiente de transformada de baja frecuencia) que no se pone a cero como la anchura y altura reales de la TU, en lugar de usar la anchura y altura de la unidad de transformada original para la codificación (log2TbWidth = Min(log2TbWidth, 5) o log2TbHeight = Min(log2TbHeight, 5)).
Por ejemplo, cuando la anchura x altura de la TU original sea 32 x 16, si se aplica RMTS32, existe un coeficiente distinto de cero solo en la región superior izquierda de 16 x 16 mediante puesta a cero. Por consiguiente, la anchura y altura de la TU se pueden establecer en 16 y 16, respectivamente, y a continuación los elementos de sintaxis (p. ej., last_sig_coeff_x_prefix y last_sig_coeff_y_prefix) pueden codificarse.
En resumen, de acuerdo con la codificación residual de la Tabla 9, la anchura y la altura reales de la TU se cambian cambiando los valores de log2TbWidth y log2TbHeight antes de codificar last_sig_coeff_x_prefix y los elementos de sintaxis se codifican posteriormente de acuerdo con los valores cambiados.
Cuando el tamaño de la TU se reduce a una región de coeficiente de transformada de baja frecuencia debido a la puesta a cero de un coeficiente de transformada de alta frecuencia, la semántica de los elementos de sintaxis de la Tabla 9 se ilustra en la Tabla 10.
[Tabla 10]
Figure imgf000022_0001
Con referencia a la Tabla 10, last_sig_coeff_x_prefix y last sig_coeff_y_prefix están limitados a valores que van de 0 a (log2TbWidth << 1) - 1 o (log2TbHeight << 1) - 1, donde log2TbWidth o log2TbHeight pueden ser la anchura o altura del bloque de transformada con el tamaño reducido como se muestra en la Tabla 9.
Cuando se cambia el tamaño del bloque de transformada, también se puede cambiar el tamaño de un bloque de transformada utilizado para la selección contextual de last_sig_coeff_x_prefix y last sig_coeff_y_prefix. La Tabla 11 ilustra un proceso de derivación de un incremento contextual (ctxInc) para derivar last_sig_coeff_x_prefix y last sig_coeff_y_prefix, y la Tabla 12 ilustra la binarización de last_sig_coeff_x_prefix y last sig_coeff_y_prefix en vista de la TU reducida. Dado que el contexto se puede seleccionar y dividir por un incremento contextual, se puede derivar un modelo contextual basado en un incremento contextual.
[Tabla 11]
Figure imgf000023_0001
[Tabla 12]
Figure imgf000023_0002
Como se muestra en la Tabla 11, una variable log2TbSize se establece en log2TbWidth cuando se analiza last_sig_coeff_x_prefix, y en log2TbHeight cuando se analiza last_sig_coeff_y_prefix, donde log2TbWidth y log2TbHeight indican la anchura y la altura de la TU reducida, como la región del coeficiente de transformada de baja frecuencia.
Además, los valores máximos (cMax) de last_sig_coeff_x_prefix y last_sig_coeff_y_prefix en la Tabla 12 también se establecen en función de la anchura y la altura de la TU reducida, como la región del coeficiente de transformada de baja frecuencia (cMax = (log2TbWidth << 1) - 1, cMax = (log2TbHeight << 1) - 1). Cuando se utiliza la binarización unaria truncada para la binarización de last_sig_coeff_x_prefix y last_sig_coeff_y_prefix, los valores máximos (cMax) de last_sig_coeff_x_prefix y last_sig_coeff_y_prefix pueden configurarse para que sean los mismos que los valores máximos de las palabras clave utilizadas para la binarización de last_sig_coeff_x_prefix y last_sig_coeff_y_prefix. Por lo tanto, la longitud máxima de una palabra clave de prefijo que indica la información de prefijo del último coeficiente significativo puede derivarse basándose en el tamaño de un bloque de puesta a cero.
Una realización de la presente divulgación propone aplicar el tamaño de la TU original en lugar de la TU reducida de la región del coeficiente de transformada de baja frecuencia para el contexto CABAC para los dos elementos de sintaxis, es decir, last_sig_coeff_x_prefix y last_sig_coeff_y_prefix.
La tabla 13 muestra los elementos de sintaxis de la codificación residual y la semántica correspondiente a los mismos de acuerdo con una realización.
[Tabla 13]
Figure imgf000024_0001
De acuerdo con la Tabla 13, se pueden proponer dos nuevas variables (log2ZoTbWidth y log2ZoTbHeight) que indican una anchura reducida y una altura reducida. El tamaño de la TU puede actualizarse finalmente a log2ZoTbWidth y log2ZoTbHeight después de analizar la sintaxis de la posición del último coeficiente significativo (log2TbWidth = log2ZoTbWidth, log2TbHeight = log2ZoTbHeight).
Es decir, de acuerdo con la presente realización, las muestras residuales se pueden derivar en función de la información de posición en el último coeficiente significativo, en el que el modelo contextual se puede derivar en función del tamaño del bloque de transformada original cuyo tamaño no cambia, y la posición del último coeficiente significativo puede derivarse en función del tamaño del bloque de puesta a cero. Aquí, el tamaño, específicamente la anchura o la altura, del bloque de puesta a cero es más pequeño que el tamaño, la anchura o la altura del bloque de transformada original.
Cuando el modelo contextual se deriva en función del tamaño del bloque de transformada original cuyo tamaño no cambia, log2TbWidth y log2TbHeight utilizados para derivar el incremento contextual (ctxlnc) en la Tabla 11 pueden interpretarse como la anchura y la altura del bloque de transformada original.
De acuerdo con la Tabla 13, la Tabla 12 en la que se deriva la posición del último coeficiente significativo en función del tamaño (log2ZoTbWidth y log2ZoTbHeight) del bloque de puesta a cero puede cambiarse a la Tabla 14.
[Tabla 14]
Figure imgf000025_0001
De acuerdo con la Tabla 14, los valores máximos (cMax) de last_sig_coeff_x_prefix y last_sig_coeff_y_prefix se establecen en base a log2ZoTbWidth y log2ZoTbHeight correspondientes a la anchura y altura de la uT reducida, como la región del coeficiente de transformada de baja frecuencia (cMax = (log2ZoTbWidth << 1 ) - 1, cMax = (log2ZoTbHeight << 1) - 1). Cuando se utiliza la binarización unaria truncada para la binarización de last_sig_coeff_x_prefix y last_sig_coeff_y_prefix, los valores máximos (cMax) de last_sig_coeff_x_prefix y last_sig_coeff_y_prefix pueden configurarse para que sean los mismos que los valores máximos de las palabras clave utilizadas para la binarización de last_sig_coeff_x_prefix y last_sig_coeff_y_prefix. Por lo tanto, la longitud máxima de la palabra clave del prefijo que indica la información de prefijo del último coeficiente significativo puede derivarse en basándose en el tamaño del bloque de puesta a cero.
La Tabla 15 muestra el resultado de la prueba de realizar la selección contextual aplicando el tamaño de la TU reducida basándose en una prueba en la que la selección contextual se realiza basándose en el tamaño de la TU original.
[Tabla 15]
Figure imgf000025_0002
Como se muestra en la Tabla 15, cuando la selección contextual se realiza aplicando el tamaño de la TU reducida, se observa una reducción de la tasa de BD de alrededor del 0,10 % en comparación con la prueba en la que la selección contextual se realiza en función del tamaño de la TU original. Es decir, para aumentar la eficacia en la codificación residual, se propone realizar la selección contextual en base a la TU original en lugar de la TU reducida, es decir, la región del coeficiente de transformada de baja frecuencia.
Los siguientes dibujos se proporcionan para describir ejemplos específicos de la presente divulgación. Dado que las designaciones específicas de dispositivos o las designaciones de señales/mensajes/campos específicos ilustrados en los dibujos se proporcionan a modo de ilustración, las características técnicas de la presente divulgación no se limitan a las designaciones específicas utilizadas en los siguientes dibujos.
La Figura 7 es un diagrama de flujo que ilustra una operación de un aparato de descodificación de vídeo de acuerdo con una realización de la presente divulgación.
La Figura 7 es un diagrama de flujo que ilustra una operación de un aparato de descodificación de acuerdo con una realización, y la Figura 8 es un diagrama de bloques que ilustra una configuración de un aparato de descodificación de acuerdo con una realización.
Cada operación ilustrada en la Figura 7 puede ser realizada por el aparato de descodificación 300 ilustrado en la Figura 3. Específicamente, S700 y S710 pueden ser realizados por el descodificador por entropía 310 ilustrado en la Figura 3, S720 puede ser realizado por el descuantificador 321 ilustrado en la Figura 3, S730 puede ser realizado por el transformador inverso 322 ilustrado en la Figura 3, y S740 puede ser realizado por el sumador 340 ilustrado en la Figura 3. Las operaciones de acuerdo con S700 a S740 se basan en algunos de los detalles anteriores explicados con referencia a la Figura 4 hasta la Figura 6. Por lo tanto, una descripción de detalles específicos que se solapan con los explicados anteriormente con referencia a la Figura 4 hasta la Figura 6 se omitirá o se hará brevemente.
Como se muestra en la Figura 8, el aparato de descodificación de acuerdo con una realización puede incluir un descodificador por entropía 310, un descuantificador 321, un transformador inverso 322 y un sumador 340. Sin embargo, en algunos casos, todos los componentes mostrados en la Figura 8 pueden no ser componentes esenciales del aparato de descodificación, y el aparato de descodificación puede configurarse con más o menos componentes que los mostrados en la Figura 8.
En el aparato de descodificación de acuerdo con una realización, el descodificador por entropía 310, el descuantificador 321, el transformador inverso 322 y el sumador 340 pueden configurarse como chips independientes, o al menos dos componentes pueden configurarse como un solo chip.
El aparato de descodificación de acuerdo con una realización puede recibir un flujo de bits que incluye información residual (S700). Específicamente, el descodificador por entropía 310 del aparato de descodificación puede recibir el flujo de bits que incluye la información residual.
El aparato de descodificación de acuerdo con una realización puede derivar coeficientes de transformada cuantificados para un bloque actual basándose en la información residual incluida en el flujo de bits (S710). Específicamente, el descodificador por entropía 310 del aparato de descodificación puede cuantificar los coeficientes de transformada para el bloque actual basándose en la información residual incluida en el flujo de bits.
El aparato de descodificación de acuerdo con una realización puede transformar coeficientes a partir de los coeficientes de transformada cuantificados basándose en un proceso de descuantificación. Específicamente, el descuantificador 321 del aparato de descodificación puede derivar los coeficientes de transformada a partir de los coeficientes de transformada cuantificados basándose en el proceso de descuantificación.
El aparato de descodificación de acuerdo con una realización puede derivar muestras residuales para el bloque actual aplicando transformada inversa a los coeficientes de transformada derivados (S720). Específicamente, la transformada inversa 322 del aparato de descodificación puede derivar las muestras residuales del bloque actual aplicando la transformada inversa a los coeficientes de transformada derivados.
El aparato de descodificación de acuerdo con una realización puede generar una imagen reconstruida en base a las muestras residuales del bloque actual (S740). Específicamente, el sumador 340 del aparato de descodificación puede generar la imagen reconstruida basándose en las muestras residuales del bloque actual.
En una realización, la unidad del bloque actual puede ser un bloque de transformada (TB).
En una realización, cada uno de los coeficientes de transformada del bloque actual puede estar relacionado con una región de coeficiente de transformada de alta frecuencia que incluye un coeficiente de transformada de 0 o una región de coeficiente de transformada de baja frecuencia que incluye al menos un coeficiente de transformada significativo.
En una realización, la información residual puede incluir información de prefijo del último coeficiente significativo e información de sufijo del último coeficiente significativo sobre la posición de un último coeficiente de transformada significativo entre los coeficientes de transformada para el bloque actual.
En un ejemplo, la información de prefijo del último coeficiente significativo puede tener un valor máximo determinado basándose en el tamaño de un bloque de puesta a cero.
En una realización, la posición del último coeficiente de transformada significativo puede determinarse basándose en una palabra clave de prefijo que indica la información de prefijo del último coeficiente significativo y la información de sufijo del último coeficiente significativo.
En una realización, la longitud máxima de la palabra clave de prefijo se puede determinar basándose en la región del coeficiente de transformada de baja frecuencia, es decir, el tamaño del bloque de puesta a cero.
En una realización, el tamaño del bloque de puesta a cero puede determinarse basándose en la anchura y la altura del bloque actual.
En una realización, la información de prefijo del último coeficiente significativo puede incluir información de prefijo del eje x e información de prefijo del eje y, y la palabra clave del prefijo puede ser una palabra clave en la información de prefijo del eje x y una palabra clave para la información de prefijo del eje y.
En un ejemplo, la información de prefijo del eje x puede expresarse como last_sig_coeff_x_prefix, la información de prefijo del eje y puede expresarse como last_sig_coeff_y_prefix, y la posición del último coeficiente de transformada significativo puede expresarse como (LastSignificantCoeffX, LastSignificantCoeffY).
En una realización, la información residual puede incluir información sobre el tamaño del bloque de puesta a cero.
La Figura 9 es un diagrama de flujo que ilustra un proceso de derivación de una muestra residual de acuerdo con una realización de la presente divulgación.
Cada operación ilustrada en la Figura 9 puede ser realizada por el aparato de descodificación 300 ilustrado en la Figura 3. Específicamente, S900 y S940 pueden ser realizados por el descodificador por entropía 310 ilustrado en la Figura 3.
En primer lugar, como se muestra, se puede derivar un bloque de puesta a cero para un bloque actual (S900). Como se ha descrito anteriormente, el bloque de puesta a cero se refiere a una región del coeficiente de transformada de baja frecuencia que incluye un coeficiente de transformada significativo distinto de cero, y la anchura o la altura del bloque de puesta a cero se puede derivar en función de la anchura o la altura del bloque actual.
Como alternativa, la anchura o la altura del bloque de puesta a cero puede derivarse basándose en la información del indicador que indica si el bloque actual se divide en subbloques y luego se transforma. Por ejemplo, cuando un valor de indicador que indica si el bloque actual se divide en subbloques y luego se transforma es 1, la anchura de los subbloques divididos es 32 y la altura de los subbloques es inferior a 64, la anchura de los subbloques se puede establecer a 16. Como alternativa, cuando el valor del indicador que indica si el bloque actual se divide en subbloques y luego se transforma es 1, la altura de los subbloques divididos es 32 y la anchura de los subbloques es inferior a 64, la altura de los subbloques se puede establecer en 16.
Como alternativa, la anchura o la altura del bloque de puesta a cero puede derivarse basándose en el índice MTS del bloque actual o la información que indica si se aplica una MTS a la transformación del bloque actual.
El tamaño del bloque de puesta a cero puede ser más pequeño que el tamaño del bloque actual. Específicamente, la anchura del bloque de puesta a cero puede ser menor que la anchura del bloque actual, y la altura del bloque de puesta a cero puede ser menor que la altura del bloque actual.
Específicamente, cuando la anchura del bloque actual es 32 y la altura del bloque actual es 32 o menos, la anchura del bloque de puesta a cero puede establecerse en 16. Como alternativa, en un ejemplo, la anchura del bloque de puesta a cero puede restringirse a un caso en el que se aplica DST7 o DCT8 en lugar de DCT2 como núcleo de transformada utilizado para una transformada primaria inversa.
Cuando no se cumple la condición anterior, es decir, cuando la anchura del bloque actual no es 32 o la altura del bloque actual es 64 o mayor, la anchura del bloque de puesta a cero puede establecerse en un valor menor de la anchura del bloque actual y 32.
Además, específicamente, cuando la altura del bloque actual es 32 y la anchura del bloque actual es 32 o menos, la altura del bloque de puesta a cero puede establecerse en 16. Como alternativa, en un ejemplo, la altura del bloque de puesta a cero puede restringirse a un caso en el que se aplica DST7 o DCT8 en lugar de DCT2 como núcleo de transformada utilizado para una transformada primaria inversa.
Cuando no se cumple la condición anterior, es decir, cuando la altura del bloque actual no es 32 o la anchura del bloque actual es 64 o mayor, la altura del bloque de puesta a cero puede establecerse en un valor menor de la altura del bloque actual y 32.
En una realización, el tamaño del bloque de puesta a cero puede ser uno de 32 x 16, 16 x 32, 16 x 16 o 32 x 32. En una realización, el tamaño del bloque actual puede ser de 64 x 64 y el tamaño del bloque de puesta a cero puede ser de 32 x 32.
El aparato de descodificación puede derivar un modelo contextual para la información de la posición del último coeficiente significativo basándose en la anchura o la altura del bloque actual (S910).
De acuerdo con una realización, el modelo contextual puede derivarse basándose en el tamaño de un bloque de transformada original en lugar del tamaño del bloque de puesta a cero. Específicamente, un incremento contextual para la información de prefijo del eje x y la información de prefijo del eje y correspondiente a la información de prefijo del último coeficiente significativo puede derivarse basándose en el tamaño del bloque de transformada original. El aparato de descodificación puede derivar el valor de una posición del último coeficiente significativo basándose en el modelo contextual derivado (S920).
Como se ha descrito anteriormente, la información de la posición del último coeficiente significativo puede incluir información de prefijo del último coeficiente significativo e información de sufijo del último coeficiente significativo, y el valor de la posición del último coeficiente significativo puede derivarse basándose en el modelo contextual.
El aparato de descodificación puede derivar la posición del último coeficiente significativo basándose en el valor derivado de la información de la posición del último coeficiente significativo y la anchura o la altura del bloque de puesta a cero (S930).
En un ejemplo, el aparato de descodificación puede derivar la posición del último coeficiente significativo dentro del rango del tamaño del bloque de puesta a cero más pequeño que el del bloque actual en lugar del bloque actual original. Es decir, se puede derivar un coeficiente de transformada al que se aplica la transformada dentro del rango del tamaño del bloque de puesta a cero en lugar del bloque actual.
En un ejemplo, la información de prefijo del último coeficiente significativo puede tener un valor máximo determinado en base al tamaño del bloque de puesta a cero.
En un ejemplo, la posición del último coeficiente significativo se puede derivar en función de una palabra clave de prefijo que indica la información de prefijo del último coeficiente significativo y la información de sufijo del último coeficiente significativo, y la longitud máxima de la palabra clave del prefijo se puede determinar en función del tamaño del bloque de puesta a cero.
El aparato de descodificación puede derivar muestras residuales basándose en la posición del último coeficiente significativo derivado basándose en la anchura o la altura del bloque de puesta a cero (S940).
Los siguientes dibujos se proporcionan para describir ejemplos específicos de la presente divulgación. Dado que las designaciones específicas de dispositivos o las designaciones de señales/mensajes/campos específicos ilustrados en los dibujos se proporcionan a modo de ilustración, las características técnicas de la presente divulgación no se limitan a las designaciones específicas utilizadas en los siguientes dibujos.
La Figura 10 es un diagrama de flujo que ilustra una operación de un aparato de codificación de vídeo de acuerdo con una realización de la presente divulgación, y la Figura 11 esun diagrama de bloques que ilustra una configuración de un aparato de codificación de acuerdo con una realización.
El aparato de codificación de acuerdo con la Figura 10 y la Figura 11 puede realizar operaciones correspondientes a las del aparato de descodificación de acuerdo con la Figura 7 y la Figura. 8. Por lo tanto, las operaciones del aparato de descodificación ilustradas anteriormente en la Figura 7 y la Figura 8 pueden aplicarse igualmente al aparato codificador de acuerdo con la Figura 10 y la Figura 11.
Cada operación ilustrada en la Figura 10 puede ser realizada por el aparato de codificación 200 ilustrado en la Figura 2. Específicamente, S1000 puede ser realizada por el restador 231 ilustrado en la Figura 2, S1010 puede ser realizada por el transformador 232 ilustrado en la Figura 2, y S1020 puede ser realizada por el cuantificador 233, y S1030 puede ser realizada por el codificador por entropía 240 ilustrado en la Figura 2. Las operaciones de acuerdo con S1000 a S1030 se basan en algunos de los contenidos descritos en la Figura 4 a la Figura 6. Por lo tanto, una descripción de detalles específicos que se solapan con los explicados anteriormente con referencia a la Figura 4 hasta la Figura 6 se omitirá o se hará brevemente.
Como se muestra en la Figura 11, el aparato de codificación de acuerdo con la realización puede incluir un restador 231, un transformador 232, un cuantificador 233 y un codificador por entropía 240. Sin embargo, en algunos casos, todos los componentes mostrados en la Figura 11 pueden no ser componentes esenciales del aparato de codificación, y el aparato de codificación puede configurarse con más o menos componentes que los mostrados en la Figura 11.
En el aparato de codificación de acuerdo con una realización, el restador 231, el transformador 232, el cuantificador 233 y el codificador por entropía 240 pueden configurarse como chips independientes, o al menos dos componentes pueden configurarse como un solo chip.
El aparato de codificación de acuerdo con una realización puede derivar muestras residuales para un bloque actual (S1000). Específicamente, el restador 231 del aparato de codificación puede derivar las muestras residuales para el bloque actual.
El aparato de codificación de acuerdo con una realización puede transformar las muestras residuales para el bloque actual, derivando así los coeficientes de transformada para el bloque actual (S1010). Específicamente, el transformador 232 del aparato de codificación puede transformar las muestras residuales para el bloque actual, derivando así los coeficientes de transformada para el bloque actual.
El aparato de codificación de acuerdo con una realización puede derivar coeficientes de transformada cuantificados a partir de los coeficientes de transformada basados en la cuantificación (S1020). Específicamente, el cuantificador 233 del aparato de codificación puede derivar los coeficientes de transformada cuantificados a partir de los coeficientes de transformada basándose en la cuantificación.
El aparato de codificación de acuerdo con una realización puede codificar información residual que incluye información sobre los coeficientes de transformada cuantificados (S1030). Específicamente, el codificador por entropía 240 del aparato de codificación puede codificar la información residual que incluye la información sobre los coeficientes de transformada cuantificados.
En una realización, cada uno de los coeficientes de transformada del bloque actual puede estar relacionado con una región de coeficiente de transformada de alta frecuencia que incluye un coeficiente de transformada de 0 o una región de coeficiente de transformada de baja frecuencia que incluye al menos un coeficiente de transformada significativo, es decir, un bloque de puesta a cero.
En una realización, la información residual puede incluir información de prefijo del último coeficiente significativo e información de sufijo del último coeficiente significativo sobre la posición de un último coeficiente de transformada significativo entre los coeficientes de transformada para el bloque actual.
En una realización, la posición del último coeficiente de transformada significativo puede determinarse basándose en una palabra clave de prefijo que indica la información de prefijo del último coeficiente significativo y la información de sufijo del último coeficiente significativo.
En un ejemplo, la información de prefijo del último coeficiente significativo puede tener un valor máximo determinado en base al tamaño del bloque de puesta a cero.
En una realización, la longitud máxima de la palabra clave del prefijo se puede determinar basándose en el tamaño del bloque de puesta a cero.
En una realización, el tamaño del bloque de puesta a cero puede determinarse basándose en la anchura y la altura del bloque actual.
En una realización, la información de prefijo del último coeficiente significativo puede incluir información de prefijo del eje x e información de prefijo del eje y, y la palabra clave del prefijo puede ser una palabra clave en la información de prefijo del eje x y una palabra clave para la información de prefijo del eje y.
En un ejemplo, la información de prefijo del eje x puede expresarse como last_sig_coeff_x_prefix, la información de prefijo del eje y puede expresarse como last_sig_coeff_y_prefix, y la posición del último coeficiente de transformada significativo puede expresarse como (LastSignificantCoeffX, LastSignificantCoeffY).
En una realización, la información residual puede incluir información sobre el tamaño del bloque de puesta a cero. La Figura 12 es un diagrama de flujo que ilustra un proceso de codificación de información residual de acuerdo con una realización de la presente divulgación.
Cada operación ilustrada en la Figura 12 puede ser realizada por el aparato de codificación 200 ilustrado en la Figura 2. Específicamente, S1200 y S1230 pueden ser realizadas por el codificador por entropía 240 ilustrado en la Figura 2.
En primer lugar, como se muestra, se puede derivar un bloque de puesta a cero para un bloque actual (S1200). Como se ha descrito anteriormente, el bloque de puesta a cero se refiere a una región del coeficiente de transformada de baja frecuencia que incluye un coeficiente de transformada significativo distinto de cero, y la anchura o la altura del bloque de puesta a cero se puede derivar en función de la anchura o la altura del bloque actual.
Como alternativa, la anchura o la altura del bloque de puesta a cero puede derivarse basándose en la información del indicador que indica si el bloque actual se divide en subbloques y luego se transforma. Por ejemplo, cuando un valor de indicador que indica si el bloque actual se divide en subbloques y luego se transforma es 1, la anchura de los subbloques divididos es 32 y la altura de los subbloques es inferior a 64, la anchura de los subbloques se puede establecer a 16. Como alternativa, cuando el valor del indicador que indica si el bloque actual se divide en subbloques y luego se transforma es 1, la altura de los subbloques divididos es 32 y la anchura de los subbloques es inferior a 64, la altura de los subbloques se puede establecer en 16.
Como alternativa, la anchura o la altura del bloque de puesta a cero puede derivarse basándose en el índice MTS del bloque actual o la información que indica si se aplica una MTS a la transformación del bloque actual.
El tamaño del bloque de puesta a cero puede ser más pequeño que el tamaño del bloque actual. Específicamente, la anchura del bloque de puesta a cero puede ser menor que la anchura del bloque actual, y la altura del bloque de puesta a cero puede ser menor que la altura del bloque actual.
Específicamente, cuando la anchura del bloque actual es 32 y la altura del bloque actual es 32 o menos, la anchura del bloque de puesta a cero puede establecerse en 16. Alternativamente, en un ejemplo, la anchura del bloque de puesta a cero puede restringirse a un caso en el que se aplica DST7 o DCT8 en lugar de DCT2 como núcleo de transformada utilizado para una transformada primaria.
Cuando no se cumple la condición anterior, es decir, cuando la anchura del bloque actual no es 32 o la altura del bloque actual es 64 o mayor, la anchura del bloque de puesta a cero puede establecerse en un valor menor de la anchura del bloque actual y 32.
Además, específicamente, cuando la altura del bloque actual es 32 y la anchura del bloque actual es 32 o menos, la altura del bloque de puesta a cero puede establecerse en 16. Alternativamente, en un ejemplo, la altura del bloque de puesta a cero puede restringirse a un caso en el que se aplica DST7 o DCT8 en lugar de DCT2 como núcleo de transformación utilizado para una transformada primaria.
Cuando no se cumple la condición anterior, es decir, cuando la altura del bloque actual no es 32 o la anchura del bloque actual es 64 o mayor, la altura del bloque de puesta a cero puede establecerse en un valor menor de la altura del bloque actual y 32.
En una realización, el tamaño del bloque de puesta a cero puede ser uno de 32 x 16, 16 x 32, 16 x 16 o 32 x 32. En una realización, el tamaño del bloque actual puede ser de 64 x 64 y el tamaño del bloque de puesta a cero puede ser de 32 x 32.
El aparato de codificación puede derivar una posición del último coeficiente significativo basándose en la anchura o la altura derivadas del bloque de puesta a cero (S1210).
En un ejemplo, el aparato de codificación puede derivar la posición del último coeficiente significativo dentro del rango del tamaño del bloque de puesta a cero menor o igual que el del bloque actual en lugar del bloque actual original. Es decir, se puede derivar un coeficiente de transformada al que se aplica la transformada dentro del rango del tamaño del bloque de puesta a cero en lugar del bloque actual.
En un ejemplo, la posición del último coeficiente significativo se puede derivar en función de una palabra clave de prefijo que indica la información de prefijo del último coeficiente significativo y la información de sufijo del último coeficiente significativo, y la longitud máxima de la palabra clave del prefijo se puede determinar en función del tamaño del bloque de puesta a cero.
El aparato de codificación puede derivar un modelo contextual para la información de la posición del último coeficiente significativo basándose en la anchura o la altura del bloque actual (S1220).
De acuerdo con una realización, el modelo contextual puede derivarse basándose en el tamaño de un bloque de transformada original en lugar del tamaño del bloque de puesta a cero. Específicamente, un incremento contextual para la información de prefijo del eje x y la información de prefijo del eje y correspondiente a la información de prefijo del último coeficiente significativo puede derivarse basándose en el tamaño del bloque de transformada original. El aparato de codificación puede codificar información de posición sobre el valor de la posición del último coeficiente significativo basándose en el modelo contextual derivado (S1230).
Como se ha descrito anteriormente, la información de la posición del último coeficiente significativo puede incluir información de prefijo del último coeficiente significativo y la información de sufijo del último coeficiente significativo, y el valor de la posición del último coeficiente significativo puede codificarse basándose en el modelo contextual. En la presente divulgación, se puede omitir al menos uno de cuantificación/descuantificación y/o transformada/transformada inversa. Cuando se omite la cuantificación/descuantificación, un coeficiente de transformada cuantificado puede denominarse coeficiente de transformada. Cuando se omite la transformada/transformada inversa, el coeficiente de transformada puede denominarse coeficiente o coeficiente residual, o incluso puede denominarse coeficiente de transformada por consistencia de expresión.
Además, en la presente divulgación, un coeficiente de transformada cuantificado y un coeficiente de transformada pueden denominarse coeficiente de transformada y coeficiente de transformada escalado, respectivamente. En este caso, la información residual puede incluir información sobre uno o más coeficientes de transformada, y la información sobre el o los coeficientes de transformada puede señalizarse a través de una sintaxis de codificación residual. Los coeficientes de transformada pueden derivarse basándose en la información residual (o información sobre el(los) coeficiente(s) de transformada), y los coeficientes de transformada escalados pueden derivarse mediante transformada inversa (escalamiento) de los coeficientes de transformada. Las muestras residuales pueden derivarse basándose en la transformada inversa (transformada) de los coeficientes de transformada escalados. Estos detalles también pueden aplicarse/expresarse en otras partes de la presente divulgación.
En las realizaciones descritas anteriormente, los métodos se explican sobre la base de diagramas de flujo por medio de una serie de etapas o bloques, pero la presente divulgación no se limita al orden de las etapas, y una determinada etapa se puede realizar en un orden o etapa diferente de los descritos anteriormente, o al mismo tiempo con otra etapa. Además, un experto en la materia puede entender que las etapas mostradas en un diagrama de flujo no son exclusivas y que se puede incorporar otra etapa o se pueden eliminar una o más etapas del diagrama de flujo sin afectar el alcance de la presente divulgación.
Los métodos descritos anteriormente de acuerdo con la presente divulgación pueden implementarse como una forma de software y un aparato de codificación y/o un aparato de descodificación de acuerdo con la divulgación pueden incluirse en un dispositivo para el procesamiento de imágenes, tal como un televisor, un ordenador, un teléfono inteligente, un descodificador, un dispositivo de pantalla o similar.
Cuando las realizaciones de la presente divulgación se realizan mediante software, los métodos descritos anteriormente pueden incorporarse como módulos (procesos, funciones o similares), para realizar las funciones descritas anteriormente. Los módulos se pueden almacenar en una memoria y ser ejecutados por un procesador. La memoria puede estar dentro o fuera del procesador y puede conectarse al procesador mediante diversas formas bien conocidas. El procesador puede incluir un circuito integrado específico de la aplicación (ASIC), otro conjunto de chips, 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. Es decir, las realizaciones descritas en la presente divulgación pueden incorporarse y realizarse en un procesador, un microprocesador, un controlador o un chip. Por ejemplo, las unidades de funciones mostradas en cada dibujo pueden realizarse y ejecutarse en un ordenador, un procesador, un microprocesador, un controlador o un chip.
Además, el aparato de descodificación y el aparato de codificación a los que se aplica la presente divulgación pueden incluirse en un transceptor de difusión multimedia, un terminal de comunicación móvil, un dispositivo de vídeo de cine en casa, un dispositivo de vídeo de cine digital, una cámara de vigilancia, un dispositivo de chat de vídeo, un dispositivo de comunicación en tiempo real tal como comunicación por vídeo, un dispositivo móvil de transmisión en tiempo real, un medio de almacenamiento, una videocámara, un dispositivo que proporciona servicios de vídeo bajo demanda (VoD), un dispositivo de vídeo de transmisión libre (OTT), un dispositivo que proporciona servicios de transmisión en tiempo real por Internet, un dispositivo de vídeo tridimensional (3D), un dispositivo de vídeo de telefonía de vídeo y un dispositivo de vídeo médico, y puede utilizarse para procesar una señal de vídeo o una señal de datos. Por ejemplo, el dispositivo de vídeo de transmisión libre (OTT) puede incluir una consola de juegos, un reproductor de Blu-ray, un televisor con acceso a Internet, un sistema de cine en casa, un teléfono inteligente, un PC de tableta, un grabador de vídeo digital (DVR) y similares.
Además, el método de procesamiento al que se aplica la presente divulgación se puede producir en forma de un programa ejecutado por un ordenador y se puede almacenar en un medio de grabación legible por ordenador. Los datos multimedia que tienen una estructura de datos de acuerdo con la presente divulgación también pueden almacenarse en un 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 distribuido en los que se almacenan datos legibles por ordenador. El medio de registro 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 óptico. Además, el medio de grabación legible por ordenador incluye medios incorporados en forma de onda portadora (por ejemplo, transmisión a través de Internet). Además, un flujo de bits generado por el método de codificación puede almacenarse en un medio de grabación legible por ordenador o transmitirse a través de una red de comunicación por cable o inalámbrica. Además, las realizaciones de la presente divulgación pueden realizarse como un producto de programa de ordenador mediante códigos de programa, y los códigos de programa pueden ejecutarse en un ordenador mediante las realizaciones de la presente divulgación. Los códigos de programa pueden almacenarse en un soporte legible por ordenador.
La Figura 13 ilustra la estructura de un sistema de transmisión en tiempo real de contenido al cual puede aplicarse la presente divulgación.
Además, el sistema de transmisión en tiempo real de contenidos al que se aplica la presente divulgación puede incluir en gran medida un servidor de codificación, un servidor de transmisión en tiempo real, un servidor web, un almacenamiento de medios, un equipo de usuario y un dispositivo de entrada multimedia.
El servidor de codificación funciona para comprimir en datos digitales la entrada de contenido desde los dispositivos de entrada multimedia, tal como el teléfono inteligente, la cámara, la videocámara y similares, para generar un flujo de bits y para transmitirlo al servidor de retransmisión. Como otro ejemplo, en un caso en el que el dispositivo de entrada multimedia, como el teléfono inteligente, la cámara, la videocámara o similar, genere directamente un flujo de bits, se puede omitir el servidor de codificación. El flujo de bits puede generarse mediante un método de codificación o un método de generación de flujo de bits al que se aplica la presente divulgación. Y el servidor de retransmisión puede almacenar el flujo de bits temporalmente durante un proceso para transmitir o recibir el flujo de bits.
El servidor de transmisión en tiempo real transmite datos multimedia al equipo del usuario basándose en la solicitud de un usuario a través del servidor web, que funciona como un instrumento que informa al usuario de qué servicio existe. Cuando el usuario solicita un servicio que desea, el servidor web transfiere la solicitud al servidor de transmisión en tiempo real, y el servidor de transmisión en tiempo real transmite los datos multimedia al usuario. A este respecto, el sistema de transmisión en tiempo real 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 en tiempo real de contenidos.
El servidor de retransmisión puede recibir contenidos desde el almacenamiento de medios y/o el servidor de codificación. Por ejemplo, en el caso de que los contenidos se reciban del servidor de codificación, los contenidos pueden recibirse en tiempo real. En este caso, el servidor de retransmisión puede almacenar el flujo de bits durante un período de tiempo predeterminado para proporcionar el servicio de retransmisió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 difusión digital, un asistente digital personal (PDA), un reproductor multimedia portátil (PMP), un sistema de navegación, un PC pizarra, un PC tableta, un ultraportátil, un dispositivo vestible (por ejemplo, un terminal tipo reloj (reloj inteligente)), un terminal de tipo gafas (gafas inteligentes), una pantalla montada en la cabeza (Head-Mounted-Display, HMD)), un televisor digital, un ordenador de sobremesa, una señalización digital o similar. Cada uno de los servidores del sistema de transmisión en tiempo real de contenidos puede funcionar como un servidor distribuido y, en este caso, los datos recibidos por cada servidor pueden procesarse de forma distribuida.
Las reivindicaciones descritas en este documento se pueden combinar de varias maneras. Por ejemplo, las características técnicas de las reivindicaciones del método de la presente divulgación pueden combinarse para implementarse o realizarse en un aparato, y las características técnicas de las reivindicaciones del aparato pueden combinarse para implementarse o realizarse en un método. Además, las características técnicas de las reivindicaciones del método y del aparato pueden combinarse para implementarse o realizarse en un aparato, y las características técnicas de las reivindicaciones del método y del aparato pueden combinarse para implementarse o realizarse en un método.

Claims (15)

REIVINDICACIONES
1. Un método de descodificación de imágenes realizado por un aparato de descodificación, comprendiendo el método:
recibir un flujo de bits que comprende información residual;
derivar coeficientes de transformada para un bloque actual utilizando la información residual, teniendo el bloque actual una primera anchura (w) y una primera altura (h);
derivar muestras residuales para el bloque actual utilizando los coeficientes de transformada; y generar una imagen reconstruida utilizando las muestras residuales,
en donde la información residual comprende información de la posición del último coeficiente significativo, y en donde la derivación de los coeficientes de transformada comprende:
derivar una región superior izquierda dentro del bloque actual, teniendo la región superior izquierda una segunda anchura y una segunda altura;
derivar un valor de la información de la posición del último coeficiente significativo utilizando un incremento contextual; y
derivar una posición del último coeficiente significativo utilizando el valor de la información de la posición del último coeficiente significativo,
caracterizado por derivar el incremento contextual utilizando la primera anchura y la primera altura, en donde la información de la posición del último coeficiente significativo se deriva dentro de los valores máximos establecidos utilizando la segunda anchura y la segunda altura.
2. El método de descodificación de imágenes de la reivindicación 1, en donde la segunda anchura es más pequeña que la primera anchura.
3. El método de descodificación de imágenes de la reivindicación 1, en donde la segunda altura es más pequeña que la primera altura.
4. El método de descodificación de imágenes de la reivindicación 1, en donde la información de la posición del último coeficiente significativo comprende la información de prefijo del último coeficiente significativo y la información de sufijo del último coeficiente significativo,
en donde la información de prefijo del último coeficiente significativo comprende información de prefijo del eje x e información de prefijo del eje y, y
en donde un incremento contextual para la información de prefijo del eje x y la información de prefijo del eje y se deriva utilizando la primera anchura o la primera altura.
5. El método de descodificación de imágenes de la reivindicación 1, en donde la región superior izquierda es una región de coeficiente de transformada de baja frecuencia.
6. El método de descodificación de imágenes de la reivindicación 1, en donde la segunda anchura o la segunda altura se deriva utilizando la primera anchura o la primera altura.
7. El método de descodificación de imágenes de la reivindicación 6, en donde, basándose en que la primera anchura es 32 y la primera altura es 32 o menos, la segunda anchura se establece en 16, y
en donde, basándose en que la primera anchura no es 32 o la primera altura es 64 o mayor, la segunda anchura se establece a un valor más pequeño que la primera anchura y 32.
8. El método de descodificación de imágenes de la reivindicación 6, en donde, basándose en que la primera altura es 32 y la primera anchura es 32 o menos, la segunda altura se establece en 16, y
en donde, basándose en que la primera altura del bloque actual no es 32 o la primera anchura del bloque actual es 64 o mayor, la segunda altura se establece en un valor más pequeño que la primera altura y 32.
9. Un método de codificación de imágenes realizado por un aparato de codificación de imágenes, comprendiendo el método:
derivar muestras residuales para un bloque actual, teniendo el bloque actual una primera anchura (w) y una primera altura (h);
derivar coeficientes de transformada cuantificados utilizando las muestras residuales para el bloque actual; y codificar información residual que comprende información sobre los coeficientes de transformada cuantificados, en donde la información residual comprende información de la posición del último coeficiente significativo, y en donde la codificación de la información residual comprende:
derivar una segunda anchura y una segunda altura de una región superior izquierda dentro del bloque actual; derivar una información de la posición del último coeficiente significativo dentro de la región superior izquierda; y
codificar la información de la posición del último coeficiente significativo utilizando un incremento contextual, caracterizado por que la codificación de la información residual comprende además derivar el incremento contextual utilizando la primera anchura y la primera altura, en donde la codificación de la información de la posición del último coeficiente significativo comprende una binarización de la información de la posición del último coeficiente significativo utilizando la segunda anchura y la segunda altura.
10. El método de codificación de imágenes de la reivindicación 9, en donde la segunda anchura es más pequeña que la primera anchura.
11. El método de codificación de imágenes de la reivindicación 9, en donde la segunda altura es más pequeña que la primera altura.
12. El método de codificación de imágenes de la reivindicación 9, en donde la información de la posición del último coeficiente significativo comprende información de prefijo del último coeficiente significativo e información de sufijo del último coeficiente significativo,
en donde la información de prefijo del último coeficiente significativo comprende información de prefijo del eje x e información de prefijo del eje y, y
en donde un incremento contextual para la información de prefijo del eje x y la información de prefijo del eje y se deriva utilizando la primera anchura o la primera altura.
13. El método de codificación de imágenes de la reivindicación 12, en donde se deriva un valor máximo permitido para la información del último prefijo de coeficiente significativo utilizando un tamaño de la región superior izquierda.
14. Un método que comprende:
obtener un flujo de bits, en donde el flujo de bits se genera derivando muestras residuales de un bloque actual que tiene una primera anchura (w) y una primera altura (h), derivando coeficientes de transformada cuantificados utilizando las muestras residuales para el bloque actual y codificando información residual que comprende información sobre los coeficientes de transformada cuantificados para generar el flujo de bits, y
transmitir el flujo de bits,
en donde la información residual comprende información de la posición del último coeficiente significativo, y en donde la codificación de la información residual comprende:
derivar una segunda anchura y una segunda altura de una región superior izquierda dentro del bloque actual; derivar una información de la posición del último coeficiente significativo dentro de la región superior izquierda; y
codificar la información de la posición del último coeficiente significativo utilizando un incremento contextual, caracterizado por que el incremento contextual se deriva utilizando la primera anchura y la primera altura, en donde la codificación de la información de la posición del último coeficiente significativo comprende una binarización de la información de la posición del último coeficiente significativo utilizando la segunda anchura y la segunda altura.
15. Un medio de almacenamiento digital legible por ordenador que almacena un flujo de bits generado por un método, comprendiendo el método:
derivar muestras residuales para un bloque actual, teniendo el bloque actual una primera anchura (w) y una primera altura (h);
derivar coeficientes de transformada cuantificados utilizando las muestras residuales para el bloque actual; y codificar información residual que comprende información sobre los coeficientes de transformada cuantificados para generar el flujo de bits,
en donde la información residual comprende información de la posición del último coeficiente significativo, y en donde la codificación de la información residual comprende:
derivar una segunda anchura y una segunda altura de una región superior izquierda dentro del bloque actual; derivar una información de la posición del último coeficiente significativo dentro de la región superior izquierda; y
codificar la información de la posición del último coeficiente significativo utilizando un incremento contextual, caracterizado por que la codificación de la información residual comprende además derivar el incremento contextual utilizando la primera anchura y la primera altura, en donde la codificación de la información de la posición del último coeficiente significativo comprende una binarización de la información de la posición del último coeficiente significativo utilizando la segunda anchura y la segunda altura.
ES20770672T 2019-03-12 2020-03-12 Codificación de imágenes basada en transformadas Active ES2953235T3 (es)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962817494P 2019-03-12 2019-03-12
US201962817490P 2019-03-12 2019-03-12
US201962822000P 2019-03-21 2019-03-21
US201962823571P 2019-03-25 2019-03-25
PCT/KR2020/003449 WO2020185005A1 (ko) 2019-03-12 2020-03-12 변환에 기반한 영상 코딩 방법 및 그 장치

Publications (1)

Publication Number Publication Date
ES2953235T3 true ES2953235T3 (es) 2023-11-08

Family

ID=72427588

Family Applications (1)

Application Number Title Priority Date Filing Date
ES20770672T Active ES2953235T3 (es) 2019-03-12 2020-03-12 Codificación de imágenes basada en transformadas

Country Status (13)

Country Link
US (2) US20220046246A1 (es)
EP (2) EP3910956B1 (es)
KR (2) KR102456938B1 (es)
CN (4) CN117278752A (es)
AU (2) AU2020234409B2 (es)
ES (1) ES2953235T3 (es)
FI (1) FI3910956T3 (es)
HR (1) HRP20231091T1 (es)
HU (1) HUE063009T2 (es)
MX (1) MX2021009649A (es)
PL (1) PL3910956T3 (es)
SI (1) SI3910956T1 (es)
WO (1) WO2020185005A1 (es)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4376415A2 (en) * 2019-06-19 2024-05-29 LG Electronics Inc. Coding of information about transform kernel set

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
MY184224A (en) * 2010-07-09 2021-03-27 Samsung Electronics Co Ltd Method and apparatus for entropy encoding/decoding a transform coefficient
US8902988B2 (en) * 2010-10-01 2014-12-02 Qualcomm Incorporated Zero-out of high frequency coefficients and entropy coding retained coefficients using a joint context model
CN103597838B (zh) * 2011-04-15 2017-03-29 黑莓有限公司 对末位有效系数的位置进行编码和解码的方法和设备
US9491469B2 (en) * 2011-06-28 2016-11-08 Qualcomm Incorporated Coding of last significant transform coefficient
CN105357540B (zh) * 2011-06-28 2019-09-06 三星电子株式会社 对视频进行解码的方法
US9392301B2 (en) * 2011-07-01 2016-07-12 Qualcomm Incorporated Context adaptive entropy coding for non-square blocks in video coding
TWI590649B (zh) * 2011-11-08 2017-07-01 三星電子股份有限公司 視訊之算術解碼裝置
EP2800368B1 (en) * 2011-12-28 2021-07-28 Sharp Kabushiki Kaisha Arithmetic decoding device, arithmetic decoding method, and arithmetic coding device
SG10201710903VA (en) * 2012-04-15 2018-02-27 Samsung Electronics Co Ltd Parameter update method for entropy coding and decoding of conversion coefficient level, and entropy coding device and entropy decoding device of conversion coefficient level using same
JP2020504973A (ja) * 2017-01-03 2020-02-13 エルジー エレクトロニクス インコーポレイティド 画像処理方法及びそのための装置
US11134272B2 (en) * 2017-06-29 2021-09-28 Qualcomm Incorporated Memory reduction for non-separable transforms
US10812797B2 (en) * 2018-02-05 2020-10-20 Tencent America LLC Method, apparatus and medium for decoding or encoding using a low-complexity transform

Also Published As

Publication number Publication date
EP3910956A4 (en) 2022-06-08
SI3910956T1 (sl) 2023-11-30
AU2020234409A1 (en) 2021-11-04
KR102456938B1 (ko) 2022-10-20
CN113597770A (zh) 2021-11-02
EP4277278A1 (en) 2023-11-15
HUE063009T2 (hu) 2023-12-28
CN113597770B (zh) 2023-10-27
AU2024200638A1 (en) 2024-02-22
CN117278753A (zh) 2023-12-22
EP3910956B1 (en) 2023-08-09
EP3910956A1 (en) 2021-11-17
KR20220133325A (ko) 2022-10-04
CN117278752A (zh) 2023-12-22
AU2020234409B2 (en) 2023-11-02
CN117294848A (zh) 2023-12-26
PL3910956T3 (pl) 2023-09-25
US20220046246A1 (en) 2022-02-10
FI3910956T3 (fi) 2023-09-01
HRP20231091T1 (hr) 2023-12-22
KR20210102463A (ko) 2021-08-19
MX2021009649A (es) 2021-12-10
US20240187601A1 (en) 2024-06-06
WO2020185005A1 (ko) 2020-09-17

Similar Documents

Publication Publication Date Title
US11973963B2 (en) Transform-based image coding method and device
US11516484B2 (en) Transform-based image coding method, and apparatus therefor
ES2954232T3 (es) Método de codificación de video basado en transformada secundaria y dispositivo para el mismo
US11943456B2 (en) Transform-based image coding method and apparatus therefor
US20230379472A1 (en) Image coding method based on transform and apparatus therefor
US20230122409A1 (en) Image coding method on basis of transform, and apparatus therefor
AU2024201210A1 (en) Transform-based image coding method and device therefor
ES2953235T3 (es) Codificación de imágenes basada en transformadas
US12003773B2 (en) Transform-based video coding method, and device therefor
US11902530B2 (en) Image coding method based on transform and apparatus therefor
CN114762343A (zh) 基于变换的图像编码方法及其装置
RU2803184C1 (ru) Способ кодирования изображения на основе преобразования и устройство для его осуществления
RU2806283C2 (ru) Способ кодирования изображения на основе преобразования и устройство для его осуществления
RU2811986C2 (ru) Способ кодирования изображения на основе преобразования и устройство для его осуществления
RU2803457C2 (ru) Способ кодирования изображения на основе преобразования и устройство для его осуществления
RU2793775C1 (ru) Способ кодирования изображения на основе преобразования и устройство для его осуществления
RU2799629C1 (ru) Способ кодирования изображения на основе преобразования и устройство для его осуществления
RU2812248C2 (ru) Способ кодирования изображения на основе преобразования и устройство для его осуществления
RU2795932C1 (ru) Способ кодирования изображения на основе преобразования и устройство для его осуществления
US20230137884A1 (en) Transform-based image coding method and apparatus therefor
US20240048702A1 (en) Image coding method based on transform, and device therefor
BR122023023402A2 (pt) Método de codificação de imagem com base em uma transformada, e aparelho da mesma
BR122022006273B1 (pt) Método e aparelho de decodificação de imagem, método e aparelho de codificação de imagem, meio de armazenamento legível por computador não transitório, método e aparelho de transmissão de dados para uma imagem
BR122022006263B1 (pt) Método e aparelho de decodificação de imagem, método e aparelho de codificação de imagem, meio de armazenamento legível por computador não transitório, método e aparelho de transmissão de dados para uma imagem
BR112021010422B1 (pt) Método de decodificação de imagem realizado por um aparelho de decodificação, método de codificação de imagem realizado por um aparelho de codificação de imagem e meio de armazenamento legível por computador não transitório