ES3014018T3 - Transform-based image coding - Google Patents

Transform-based image coding Download PDF

Info

Publication number
ES3014018T3
ES3014018T3 ES23182212T ES23182212T ES3014018T3 ES 3014018 T3 ES3014018 T3 ES 3014018T3 ES 23182212 T ES23182212 T ES 23182212T ES 23182212 T ES23182212 T ES 23182212T ES 3014018 T3 ES3014018 T3 ES 3014018T3
Authority
ES
Spain
Prior art keywords
transform
block
height
width
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES23182212T
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 ES3014018T3 publication Critical patent/ES3014018T3/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/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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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
    • 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 un paso para derivar una muestra residual, en donde el paso para derivar la muestra residual comprende los pasos 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 sobre la base del ancho o la altura del bloque actual; derivar un valor de una ubicación del último coeficiente significativo sobre la base del modelo de contexto; y derivar la ubicación del último coeficiente significativo sobre la base de un valor de la información de ubicación del último coeficiente significativo y el ancho o la 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
Campo de la técnica
La presente descripció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.
Técnica anterior
Hoy en día, la demanda de imágenes/vídeos de alta resolución y alta calidad, tales como imágenes/vídeos de ultra alta definición (UHD) de 4K, 8K o más, ha ido en aumento en varios campos. A medida que los datos de imagen/vídeo resultan de 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 tales como contenido de realidad virtual (VR), 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, tales como una imagen de un juego, está aumentando.
Por consiguiente, existe la necesidad de una técnica de compresión de imagen/vídeo muy 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 describe 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.
Compendio
Un aspecto técnico de la presente descripción es proporcionar un método y un aparato para aumentar la eficiencia de la codificación de imágenes.
Otro aspecto técnico de la presente descripció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 descripció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.
Aún otro aspecto técnico de la presente descripción es proporcionar un método y un aparato para codificar un coeficiente de transformada basándose 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 descripció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) basándose en la puesta a cero de alta frecuencia.
Aún otro aspecto técnico de la presente descripción es proporcionar un método y un aparato para inferir el valor máximo de la información de sufijo sobre la posición de un último coeficiente de transformada significativo basándose en el tamaño de una región a la que no se aplica puesta a cero de alta frecuencia en un bloque actual cuando se codifican coeficientes de transformada para el bloque actual (o bloque de transformada actual) basándose en la puesta a cero de alta frecuencia.
Otro aspecto más de la presente descripción es proporcionar un método y un aparato para inferir un modelo contextual para la información de posición del último coeficiente de transformada significativo basándose en el tamaño de un bloque actual cuando se codifican coeficientes de transformada para el bloque actual (o bloque de transformada actual) basándose 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.
Según la presente descripción, es posible aumentar la eficiencia global de compresión de imágenes/vídeo.
Según la presente descripción, es posible aumentar la eficiencia en la codificación residual.
Según la presente descripción, es posible aumentar la eficiencia en la codificación de la posición del último coeficiente de transformada significativo.
Según la presente descripción, es posible aumentar la eficiencia de codificación residual mediante la codificación de un coeficiente de transformada basándose en la puesta a cero de alta frecuencia (o reducción a cero de alta frecuencia).
Según la presente descripció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.
Según la presente descripción, es posible aumentar la eficiencia de la codificación de imágenes infiriendo un modelo contextual para la información de la posición del último coeficiente de transformada significativo basándose en un tamaño de bloque predeterminado cuando se codifican los coeficientes de transformada para el bloque actual (o el bloque de transformada actual) basándose en la puesta a cero de alta frecuencia.
Los efectos que se pueden obtener a través de ejemplos específicos de la presente descripció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 o inferir a partir de la presente descripción. Por consiguiente, los efectos específicos de la presente descripción no se limitan a los descritos explícitamente en la presente descripción y pueden incluir varios efectos que pueden comprenderse o inferirse a partir de las características técnicas de la presente descripción.
Breve descripción de los dibujos
La Figura 1 ilustra esquemáticamente un ejemplo de un sistema de codificación de vídeo/imagen al cual puede aplicarse la presente descripción.
La Figura 2 es un diagrama que ilustra esquemáticamente una configuración de un aparato de codificación de vídeo/imagen al cual puede aplicarse la presente descripción.
La Figura 3 es un diagrama que ilustra esquemáticamente una configuración de un aparato de decodificación de vídeo/imagen al cual puede aplicarse la presente descripción.
La Figura 4 ilustra esquemáticamente una técnica de transformada múltiple según una realización de la presente descripción.
La Figura 5 ilustra una puesta a cero de 32 puntos según una realización de la presente descripción.
La Figura 6 ilustra la partición de un bloque residual según una realización de la presente descripción.
La Figura 7 es un diagrama de flujo que ilustra una operación de un aparato de decodificación de vídeo según una realización de la presente descripción.
La Figura 8 es un diagrama de bloques que ilustra una configuración de un aparato de decodificación según una realización de la presente descripción.
La Figura 9 es un diagrama de flujo que ilustra un proceso de inferencia de una muestra residual según una realización de la presente descripción.
La Figura 10 es un diagrama de flujo que ilustra un funcionamiento de un aparato de codificación de vídeo según una realización de la presente descripción.
La Figura 11 es un diagrama de bloques que ilustra una configuración de un aparato de codificación según una realización de la presente descripción.
La Figura 12 es un diagrama de flujo que ilustra un proceso de codificación de información residual según una realización de la presente descripción.
La Figura 13 ilustra la estructura de un sistema de transmisión en continuo de contenido al cual puede aplicarse la presente descripción.
Descripción de realizaciones ejemplares
Aunque la presente descripció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 a continuación se describirán en detalle. Sin embargo, esto no pretende limitar la presente descripción a las realizaciones específicas descritas en la presente memoria. La terminología usada en la presente memoria es únicamente para el fin de describir realizaciones específicas y no se pretende limitar la idea técnica de la presente descripció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 entenderse 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 otra parte, cada componente en los dibujos descritos en la presente memoria se ilustra de forma independiente por conveniencia de descripción en cuanto a funciones características 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 descripción siempre que no se aparten de la esencia de la presente descripción.
A continuación en la presente memoria, se explicarán en más detalle las realizaciones preferidas de la presente descripció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/imagen. Por ejemplo, el método/ejemplo descrito en este documento puede estar relacionado con una norma (Rec. UIT-T. H.266) de VVC (Versatile Video Coding), una norma de codificación de vídeo/imagen de próxima generación después de VVC, u otras normas relacionadas con la codificación de vídeo (por ejemplo, la norma (ITU-T Rec. H.265) de HEVC (High Efficiency Video Coding), norma de EVC (Essential Video Coding), norma 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 llevarse a cabo.
En este documento, un vídeo puede significar un conjunto de una serie de imágenes a lo largo del tiempo. En general, una instantánea 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 instantánea. El segmento/mosaico puede incluir una o más unidades de árbol de codificación (CTU). Una instantánea puede estar constituida por uno o más segmentos/mosaicos. Una instantánea 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 pueden significar una unidad más pequeña que constituye una instantánea (o imagen). Además, 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 una componente de luma o representar solo un píxel/valor de píxel de una componente de 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 una 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 de M x N puede incluir un conjunto (o una agrupación) de muestras (o agrupaciones de muestras) o coeficientes de transformada que consisten en M columnas y N filas.
En este documento, el término "/" 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 descripción, "al menos uno de A y B" puede significar "solo A", "solo B" o "tanto A como B". Además, en la presente descripció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 descripció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 descripció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 descripció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, intrapredicció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 descripció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/imagen al cual puede aplicarse la presente descripción.
Haciendo referencia a la Figura 1, el sistema de codificación de vídeo/imagen 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 archivo o mediante transmisión en continuo 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 decodificación y un representador gráfico. El aparato de codificación puede denominarse aparato de codificación de vídeo/imagen, y el aparato de decodificación puede denominarse aparato de decodificación de vídeo/imagen. El transmisor puede incluirse en el aparato de codificación. El receptor puede incluirse en el aparato de decodificación. El representador gráfico puede incluir un dispositivo de visualización, y el dispositivo de visualización puede configurarse como un dispositivo separado o un componente externo.
La fuente de vídeo puede obtener un vídeo/imagen a través de un proceso de capturar, síntetizar o generar un 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/imagen capturados 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 generar (electrónicamente) un vídeo/imagen. Por ejemplo, se puede generar un video/imagen virtual a través de un ordenador o similar. En este caso, el proceso de captura de vídeo/imagen puede sustituirse por un proceso de generar 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 eficiencia de compresión y codificación. Los datos codificados (información de vídeo/imagen codificada) pueden emitirse en forma de corriente de bits.
El transmisor puede transmitir la información de vídeo/imagen codificada o de datos emitidos en forma de corriente 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 flujo continuo. El medio de almacenamiento digital puede incluir diversos medios de almacenamiento, tales como USB, SD, CD, DVD, Blu-ray, HDD, SSD y similares. El transmisor puede incluir un elemento para generar un archivo de medios a través de un formato de archivo predeterminado y puede incluir un elemento para la transmisión a través de una red de transmisión/comunicación. El receptor puede recibir/extraer la corriente de bits y transmitir la corriente de bits recibida/extraída al aparato de decodificación.
El aparato de decodificación puede decodificar 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 representador gráfico puede representar gráficamente el vídeo/imagen decodificado. El vídeo/imagen representado gráficamente puede visualizarse a través del dispositivo de visualización.
La Figura 2 es un diagrama que ilustra esquemáticamente una configuración de un aparato de codificación de vídeo/imagen al cual puede aplicarse la presente descripción. En lo sucesivo en esta memoria, lo que se denomina aparato de codificación de vídeo puede incluir un aparato de codificación de imágenes.
Haciendo referencia a la figura 2, el aparato 200 de codificación puede incluir un divisor 210 de imágenes en particiones, un predictor 220, un procesador 230 de residuos, un codificador 240 por entropía, un sumador 250, un filtro 260 y una memoria 270. El predictor 220 puede incluir un inter-predictor 221 y un intra-predictor 222. El procesador 230 de residuos puede incluir un transformador 232, un cuantificador 233, un descuantificador 234 y un transformador inverso 235. El procesador 230 de residuos puede incluir además un sustractor 231. El sumador 250 puede denominarse reconstructor o generador de bloques reconstruidos. El divisor 210 de imágenes en particiones, el predictor 220, el procesador 230 de residuos, el codificador 240 por entropía, 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, procesadores o conjuntos de chips de codificador), según una realización. Además, la memoria 270 puede incluir una memoria intermedia de imágenes decodificadas (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 210 de imágenes en particiones puede dividir una imagen (o una instantánea o un fotograma) de entrada introducida en el aparato 200 de codificación en una o más unidades de procesamiento. Como un ejemplo, la unidad de procesamiento puede denominarse unidad de codificación (CU). En este caso, 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 en particiones según la estructura de árbol cuaternario - árbol binario - árbol ternario (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 cuaternario, la estructura de árbol binario y/o la estructura de árbol ternario. En este caso, por ejemplo, puede aplicarse en primer lugar la estructura de árbol cuaternario, y puede aplicarse más adelante la estructura de árbol binario y/o la estructura de árbol ternario. Como alternativa, puede aplicarse en primer lugar la estructura de árbol binario. El procedimiento de codificación según la presente descripción puede realizarse basándose en la unidad de codificación final que no se ha dividido en particiones adicionalmente. En este caso, la unidad de codificación máxima puede usarse directamente como una unidad de codificación final basándose en la eficiencia de codificación según la característica de imagen. Como alternativa, la unidad de codificación puede dividirse en particiones recursivamente en unidades de codificación de mayor profundidad según sea necesario, de tal modo que la unidad de codificación de un tamaño óptimo puede usarse como una unidad de codificación final. Aquí, el procedimiento de codificación puede incluir procedimientos tales como predicción, transformada 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 o separarse en particiones 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 inferir un coeficiente de transformada y/o una unidad para inferir 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 de cada otro según las circunstancias. En un caso general, un bloque de M x 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 una componente de luma o representar solo un píxel/valor de píxel de una componente de croma. La muestra puede usarse como un término correspondiente a un píxel o un pel de una instantánea (o imagen).
El sustractor 231 sustrae una señal de predicción (bloque predicho, agrupación de muestras de predicción) emitida desde el inter predictor 221 o el intra-predictor 222 desde una señal de imagen de entrada (bloque original, agrupación de muestras original) para generar una señal residual (bloque residual, agrupación de muestras original), y la señal residual generada se transmite al transformador 232. En este caso, como se muestra, una unidad que sustrae la señal de predicción (bloque predicho, agrupación de muestras de predicción) de la señal de imagen de entrada (bloque original, agrupación de muestras original) en el codificador 200 puede denominarse el sustractor 231. El predictor puede realizar la predicción sobre un bloque objetivo de procesamiento (denominado en lo sucesivo en la presente memoria "bloque actual"), y puede generar un bloque predicho que incluye muestras de predicción para el bloque actual. El predictor puede determinar si se aplica intra-predicción o inter predicción sobre una base de bloque actual o de CU. Como se ha analizado más adelante en la descripción de cada modo de predicción, el predictor puede generar diversa información relacionada con la predicción, tal como información de modo de predicción, y transmitir la información generada al codificador 240 por entropía. La información sobre la predicción puede codificarse en el codificador 240 por entropía y emitirse en forma de una corriente de bits.
El intra-predictor 222 puede predecir el bloque actual haciendo referencia a muestras en la imagen actual. Las muestras referidas pueden ubicarse en la vecindad o lejos del bloque actual según el modo de predicción. En la intrapredicción, los modos de predicción pueden incluir una pluralidad de modos no direccionales y una pluralidad de modos direccionales. Los modos no direccionales pueden incluir, por ejemplo, un modo de DC y un modo plano. El modo direccional puede incluir, por ejemplo, 33 modos de predicción direccional o 65 modos de predicción direccional según el grado de detalle de la dirección de predicción. Sin embargo, esto es simplemente un ejemplo, y pueden usarse más o menos modos de predicción direccionales dependiendo de una configuración. El intra-predictor 222 puede determinar el modo de predicción aplicado al bloque actual usando el modo de predicción aplicado al bloque contiguo.
El inter-predictor 221 puede inferir un bloque predicho para el bloque actual basándose en un bloque de referencia (agrupación de muestras de referencia) especificado por un vector de movimiento en una imagen de referencia. En este momento, para reducir la cantidad de información de movimiento transmitida en el modo de inter-predicción, la información de movimiento puede predecirse en función de un bloque, un subbloque o una muestra basándose en una correlación de información de movimiento entre el bloque contiguo y el bloque actual. La información de movimiento puede incluir un vector de movimiento y un índice de instantánea de referencia. La información de movimiento puede incluir además información de dirección de inter-predicción (predicción de L0, predicción de L1, bipredicción, etc.). En el caso de inter-predicción, el bloque contiguo puede incluir un bloque contiguo espacial existente en la imagen actual y un bloque contiguo temporal existente en la imagen de referencia. La imagen de referencia que incluye el bloque de referencia y la imagen de referencia que incluye el bloque contiguo temporal pueden ser iguales entre sí o diferentes entre sí. El bloque contiguo temporal puede denominarse bloque de referencia ubicado conjuntamente, CU ubicada conjuntamente (colCU), y similares, y la imagen de referencia que incluye el bloque contiguo temporal puede denominarse 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 contiguos y generar información que indique qué candidato se usa para inferir 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 contiguo como información de movimiento del bloque actual. En el modo de salto, a diferencia del modo de fusión, la señal residual puede no transmitirse. 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 contiguo 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 (CIIP). 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 infiere 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 descripción.
La señal de predicción generada a través del predictor (incluyendo el 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-Loeve (KLT), una transformada basada en gráficos (GBT) o una transformada condicionalmente no lineal (CNT). Aquí, la GBT significa una transformada obtenida a partir de un gráfico cuando se representa información de relación entre píxeles mediante el gráfico. La CNT se refiere a la transformada obtenida basándose en una señal de predicción generada usando todos los píxeles reconstruidos previamente. Además, el proceso de transformada puede aplicarse a bloques de píxeles cuadrados que tienen el mismo tamaño o puede aplicarse a bloques que tienen un tamaño variable en lugar del cuadrado.
El cuantificador 233 puede cuantificar los coeficientes de transformada y transmitirlos al codificador 240 por entropía, y el codificador 240 por entropía puede codificar la señal cuantificada (información acerca de los coeficientes de transformada cuantificados) y emitir la señal codificada en un corriente de bits. La información acerca de los coeficientes de transformada cuantificados puede denominarse información residual. El cuantificador 233 puede reorganizar coeficientes de transformada cuantificados de tipo bloque en una forma de vector unidimensional basándose en un orden de escaneo de coeficientes, y generar información acerca de los coeficientes de transformada cuantificados basándose en los coeficientes de transformada cuantificados de la forma de vector unidimensional. El codificador 240 por entropía puede realizar diversos métodos de codificación tales como, por ejemplo, Golomb exponencial, codificación de longitud variable adaptativa al contexto (CAVLC), codificación aritmética binaria adaptativa al contexto (CABAC) y similares. El codificador 240 por entropía puede codificar información necesaria para la reconstrucción de vídeo/imagen que no sean 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 función de una unidad de una capa de abstracción de red (NAL) en forma de una corriente de bits. La información de vídeo/imagen puede incluir además información acerca de diversos conjuntos de parámetros tales como un conjunto de parámetros de adaptación (APS), un conjunto de parámetros de imagen (PPS), un conjunto de parámetros de secuencia (SPS), 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 el presente documento, los elementos de información y/o sintaxis que se transmiten/señalizan al aparato de decodificación desde el aparato de codificación pueden incluirse en 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 la corriente de bits. La corriente de bits puede transmitirse a través de una red o almacenarse en un medio de almacenamiento digital. Aquí, la red puede incluir una red de transmisió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 240 por entropía y/o un almacenamiento (no mostrado) que almacena la señal pueden configurarse como un elemento interno/externo del aparato 200 de codificación, o el transmisor puede incluirse en el codificador 240 por entropía.
Los coeficientes de transformada cuantificados emitidos desde el cuantificador 233 pueden usarse para generar una señal de predicción. Por ejemplo, aplicando una descuantificación y una transformada inversa a los coeficientes de transformada cuantificados a través del descuantificador 234 y el transformador inverso 235, puede reconstruirse la señal residual (bloque de residuos o las muestras residuales). 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 tal modo que puede generarse una señal reconstruida (una imagen reconstruida, un bloque reconstruido, una agrupación de muestras reconstruida). Cuando no hay ningún residuo para un bloque objetivo de procesamiento como en un caso en el que se aplica el modo de salto, el bloque predicho puede usarse como un bloque reconstruido. El sumador 250 puede denominarse reconstructor o generador de bloques reconstruidos. La señal reconstruida generada puede usarse para una intrapredicción de un siguiente bloque objetivo de procesamiento en el bloque actual y, como se describe más adelante, puede usarse para una inter-predicción de una imagen siguiente a través de un filtrado.
Por otra parte, en el proceso de codificación y/o reconstrucción de imágenes, puede aplicarse una correspondencia de luma con un ajuste a escala de croma (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 240 por entropía. La información sobre el filtrado puede codificarse en el codificador 240 por entropía y emitirse en forma de una corriente 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 100 de codificación y un aparato de descodificación cuando se aplica la inter-predicción y también puede mejorar la eficiencia de codificación.
La DPB de la memoria 270 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 contiguo o información de movimiento de un bloque contiguo 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 decodificación de vídeo/imagen al cual puede aplicarse la presente descripción.
Haciendo referencia a la Figura 3, el aparato 300 de decodificación de vídeo puede incluir un decodificador 310 por entropía, un procesador residual 320, un predictor 330, un sumador 340, un filtro 350 y una memoria 360. El predictor 330 puede incluir un inter predictor 331 y un intra predictor 332. El procesador residual 320 puede incluir un descuantificador 321 y un transformador inverso 321. El descodificador 310 por entropía, 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 decodificadores o procesadores) según 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 una corriente de bits que incluye información de vídeo/imagen, el aparato 300 de decodificación puede reconstruir una imagen correspondiente a un proceso en el que se ha procesado la información de vídeo/imagen en el aparato de codificación de la figura 2. Por ejemplo, el aparato 300 de decodificación puede inferir unidades/bloques basándose en la información relacionada con la partición de bloques obtenida de la corriente de bits. El aparato 300 de decodificación puede realizar la decodificación usando una unidad de procesamiento aplicada en el aparato de codificación. Por lo tanto, la unidad de procesamiento de decodificación puede ser, por ejemplo, una unidad de codificación, que puede dividirse en particiones a lo largo de la estructura de árbol cuaternario, la estructura de árbol binario y/o la estructura de árbol ternario a partir de una unidad de árbol de codificación o la unidad de codificación más grande. Una o más unidades de transformada pueden inferirse a partir de la unidad de codificación. Y la señal de imagen reconstruida decodificada y emitida a través del aparato 300 de decodificación puede reproducirse a través de un reproductor.
El aparato 300 de decodificación puede recibir una señal emitida desde el aparato de codificación de la figura 2 en forma de una corriente de bits, y la señal recibida puede decodificarse a través del decodificador 310 por entropía. Por ejemplo, el decodificador 310 por entropía puede analizar la corriente de bits para inferir 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 acerca de diversos conjuntos de parámetros tales como un conjunto de parámetros de adaptación (APS), un conjunto de parámetros de instantánea (PPS), un conjunto de parámetros de secuencia (SPS) un conjunto de parámetros de vídeo (VPS) o similar. Además, la información de vídeo/imagen puede incluir además información de restricción general. El aparato de decodificación puede decodificar además una imagen basándose en la información acerca del conjunto de parámetros y/o la información de restricción general. En la presente descripción, la información señalizada/recibida y/o los elementos de sintaxis descritos más adelante pueden ser decodificados a través del procedimiento de decodificación y obtenerse a partir de la corriente de bits. Por ejemplo, el decodificador 310 por entropía puede decodificar la información en la corriente de bits basándose en un método de codificación tal como la codificación Golomb exponencial, CAVLC o CABAC, o similar, y puede emitir un valor de un elemento de sintaxis necesario para la reconstrucción de imágenes y valores cuantificados de coeficientes de transformada relativos a un residuo. Más específicamente, el método de decodificación por entropía CABAC puede recibir un elemento binario correspondiente a cada elemento de sintaxis en una corriente de bits, determinar un modelo de contexto usando una información de elemento de sintaxis objetivo de vecindad y decodificación, o información de un símbolo/elemento binario decodificado en una etapa previa, predecir una probabilidad de generación de un elemento binario según el modelo de contexto determinado, y realizar una decodificación aritmética del elemento binario para generar un símbolo correspondiente al valor de cada elemento de sintaxis. Aquí, el método de decodificación por entropía de CABAC puede actualizar el modelo de contexto usando la información del símbolo/elemento binario decodificado para un modelo de contexto del siguiente símbolo/elemento binario después de determinar el modelo de contexto. La información sobre la predicción de entre la información decodificada por el decodificador 310 por entropía puede proporcionarse al predictor (el inter-predictor 332 y el intrapredictor 331), y los valores residuales, es decir, los coeficientes de transformada cuantificados sobre los que se ha realizado la decodificación por entropía en el decodificador 310 por entropía, y la información de parámetros asociada puede introducirse en el procesador residual 320. El procesador residual 320 puede inferir la señal residual (el bloque residual, las muestras residuales, la agrupación de muestras residuales). Además, información acerca del filtrado de entre información decodificada en el decodificador 310 por entropía puede proporcionarse al filtro 350. Por otra parte, un receptor (no mostrado) que recibe una señal emitida desde el aparato de codificación puede constituir adicionalmente el aparato 300 como un elemento interno/externo, y el receptor puede ser un componente del decodificador 310 por entropía. Por otra parte, el aparato de decodificación según la presente descripción puede denominarse aparato de codificación de vídeo/imagen/foto, y el aparato de decodificación puede clasificarse en un decodificador de información (decodificador de información de vídeo/imagen/foto) y un decodificador de muestras (decodificador de muestras de vídeo/imagen/foto). El decodificador de información puede incluir el decodificador 310 por entropía, y el decodificador de muestras puede incluir al menos uno del descuantificador 321, el transformador 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 escaneo 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, agrupación de muestras residuales) transformando inversamente los coeficientes de transformada.
El predictor puede realizar predicción en el bloque actual y puede generar un bloque predicho 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 310 por entropía 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 infiere 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 descripció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 según 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 contiguo.
El inter-predictor 332 puede inferir un bloque predicho para el bloque actual basándose en un bloque de referencia (agrupación de muestras de referencia) especificado por un vector de movimiento en una imagen de referencia. En este momento, para reducir la cantidad de información de movimiento transmitida en el modo de inter-predicción, la información de movimiento puede predecirse en función de un bloque, un subbloque o una muestra basándose en una correlación de información de movimiento entre el bloque contiguo y el bloque actual. La información de movimiento puede incluir un vector de movimiento y un índice de imagen de referencia. La información de movimiento puede incluir además información de dirección de inter-predicción (predicción de L0, predicción de L1, bi-predicción, etc.). En el caso de inter-predicción, el bloque contiguo puede incluir un bloque contiguo espacial existente en la imagen actual y un bloque contiguo temporal existente en la imagen de referencia. Por ejemplo, el inter-predictor 332 puede configurar una lista de candidatos de información de movimiento basándose en bloques contiguos, e inferir un vector de movimiento y/o un índice de imagen de referencia del bloque actual basándose en información de selección de candidatos recibida. La inter-predicción puede realizarse basándose en diversos modos de predicción, y la información acerca de la predicción puede incluir información que indica un modo de inter-predicción para el bloque actual.
El sumador 340 puede generar una señal reconstruida (imagen reconstruida, bloque reconstruido, matriz de muestra reconstruida), sumando la señal residual obtenida a la señal de predicción (bloque predicho, agrupación de muestras 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 predicho puede usarse como un bloque reconstruido.
El sumador 340 puede denominarse reconstructor o un 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 otra parte, en el proceso de decodificación de imágenes, se puede aplicar la correspondencia de luma con escala de croma (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, a partir de la cual se ha inferido (o decodificado) 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 contiguo o información de movimiento de un bloque contiguo 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 300 de decodificación 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 predicho que incluye muestras de predicción para un bloque actual, que es un bloque objetivo de codificación. Aquí, el bloque predicho incluye muestras de predicción en un dominio espacial (o dominio de píxeles). El bloque predicho puede inferirse de manera idéntica en el aparato de codificación y el aparato de decodificación, y el aparato de codificación puede aumentar la eficiencia de codificación de imágenes al señalar al aparato de decodificació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 predicho. El aparato de decodificación puede inferir 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 de residuos al bloque predicho, y generar una imagen reconstruida que incluye bloques reconstruidos.
La información residual puede generarse a través de procedimientos de transformada y de cuantificación. Por ejemplo, el aparato de codificación puede inferir un bloque de residuos entre el bloque original y el bloque predicho, inferir coeficientes de transformada realizando un procedimiento de transformada sobre unas muestras residuales (agrupación de muestras residuales) incluidas en el bloque residual, e inferir coeficientes de transformada cuantificados realizando un procedimiento de cuantificación sobre los coeficientes de transformada, de tal modo que puede señalizar información residual asociada al aparato de decodificación (a través de una corriente de bits). Aquí, la información residual puede incluir información de 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 decodificación puede realizar un procedimiento de cuantificación/descuantificación e inferir las muestras residuales (o bloque de muestras residuales), basándose en información residual. El aparato de decodificación puede generar una imagen reconstruida basándose en un bloque predicho y el bloque residual. El aparato de codificación puede inferir un bloque residual descuantificando/transformando inversamente unos coeficientes de transformada cuantificados como referencia para una 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 según una realización de la presente descripció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 decodificación de la Figura 3.
El transformador puede inferir coeficientes de transformada (primaria) realizando una transformada primaria basándose en muestras residuales (agrupación de muestras residuales) en un bloque residual (S410). Esta transformada primaria puede denominarse como una transformación central. En la presente memoria, 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 como una 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 coeficientes de transformada primaria) de un dominio de frecuencia basándose en una pluralidad de núcleos de transformada seleccionados entre los DCT tipo 2, DST tipo 7, DCT tipo 8 y DST tipo 1. En la presente memoria, 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) basándose 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) basándose 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 como tipos de transformada, núcleos de transformada o centros de transformada. Estos tipos de DCT/DST pueden definirse basándose en 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 objetivo de entre los núcleos de transformada, se puede realizar una transformada vertical para el bloque objetivo basándose en el núcleo de transformada vertical, y se puede realizar una transformada horizontal para el bloque objetivo basándose en el núcleo de transformada horizontal. 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/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, según un ejemplo, si la transformada primaria se realiza aplicando el MTS, se puede establecer una relación de correspondencia para los núcleos de transformada estableciendo funciones de base específicas a valores predeterminados y combinando funciones de base que se han de aplicar 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 de trTypeVer de 0 se puede establecer a DCT2, un valor de trTypeHor o trTypeVer de 1 se puede establecer a DST7 y un valor trTypeHor o trTypeVer de 2 se puede establecer a DCT8.
En este caso, la información del índice MTS puede codificarse y señalizarse al aparato de decodificació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 ambos 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 ambos valores trTypeHor y trTypeVer son 2.
En un ejemplo, los conjuntos de núcleos de transformada según la información del índice MTS se ilustran en la siguiente tabla.
[Tabla 1]
En otro ejemplo, trTypeHor y trTypeVer según 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]
El transformador puede inferir coeficientes de transformada (secundaria) modificados realizando la transformada secundaria basándose en los coeficientes de transformada (primaria) (S420). La transformada primaria es una transformada desde 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 usando 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) basándose en la matriz de transformada no separable. Por ejemplo, según un orden de primera fila, 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. Según un orden de primera columna, 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 en la presente memoria, 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 de 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 inferirse como coeficientes de transformada cuantificados a través del cuantificador, y pueden codificarse y emitirse al aparato de decodificación y transferirse al descuantificador/transformador inverso en el aparato de codificación.
Por otra parte, 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 inferirse como coeficientes de transformada cuantificados a través del cuantificador como se describe anteriormente, y pueden codificarse y señalizarse al aparato de decodificació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) e inferir 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 decodificació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 decodificació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 la corriente 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 según 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 según 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 otra parte, 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 decodificación pueden generar el bloque reconstruido basándose en el bloque residual y el bloque predicho, y pueden generar la imagen reconstruida basándose en el bloque reconstruido.
Por otra parte, en la presente descripció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álculo y memoria requeridos para la transformada secundaria no separable.
Por otra parte, 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 descripción, pueden expresarse en 8 bits. Esto puede ser una condición para la implementación en el aparato de decodificació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 múltiples datos de instrucción única (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 sobre 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 cálculo 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 tiene lugar 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 de cero en un bloque de transformada, puede denominarse Transformada No Separable de Baja Frecuencia (LFNST).
Por otra parte, cuando la transformada inversa secundaria se realiza basándose en RST, el transformador inverso 235 del aparato 200 de codificación y el transformador inverso 322 del aparato 300 de decodificación pueden incluir un transformador secundario inverso reducido que infiere coeficientes de transformada modificados basándose en la RST inversa de los coeficientes de transformada, y un transformador primario inverso que infiere muestras residuales para el bloque objetivo 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 descripción, inferir un coeficiente de transformada basándose en una transformada puede referirse a inferir un coeficiente de transformada aplicando la transformada.
A continuación en la presente memoria, 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 basándose en el 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 un 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]
Según 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]
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, según 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 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 0) 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 0. 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 de 0 donde el valor de la coordenada "x" horizontal de la posición superior izquierda del 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 la presente memoria, un término o expresión específico se utiliza para definir una información o concepto específico. Por ejemplo, como se ha descrito anteriormente, en la presente descripció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, tales como reducción a cero de alta frecuencia, puesta a cero de alta frecuencia, y la expresión "región de coeficiente de transformada de alta frecuencia" puede reemplazarse por diversas expresiones, tales 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 una "región de coeficiente de transformada de baja frecuencia" puede reemplazarse por diversas expresiones, tales 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 utilizado en la presente memoria para definir información o concepto específico ser interpretada a lo largo de la memoria descriptiva en vista de varias operaciones, funciones y efectos según el contenido indicado por el término sin limitarse a la designación.
Como alternativa, según 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 como una región de puesta a cero o bloque de puesta a cero.
Según 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 de 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 2 de puesta a cero).
- 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 0 (puestos 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 0 (puestos a cero).
Aquí, m, n, p y q pueden ser números enteros iguales o mayores de 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, según 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 de 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 3 de puesta a cero).
- Cuando la altura (h) es igual o mayor que la anchura (w) y es igual o mayor de 2n, solo los coeficientes de transformada en una región w x (h/2p) superior izquierda pueden dejarse y los coeficientes de transformada restantes pueden fijarse a 0 (puestos a cero).
- Cuando la anchura (w) es mayor que la altura (h) y es igual o mayor a 2m, solo los coeficientes de transformada en una región (w/2q) x h superior izquierda y los coeficientes de transformada restantes pueden fijarse a 0 (puestos 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 de 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. Según un ejemplo, son posibles combinaciones de estas realizaciones.
1) Realización 1 de puesta a cero realización 2 de puesta a cero
2) Realización 1 de puesta a cero realización 3 de puesta a cero
Como se ha mencionado en la realización 2 de puesta a cero y en la realización 3 de puesta a cero, 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]
En la realización 1 de puesta a cero, la realización 2 de puesta a cero y la realización 3 de puesta a cero, 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, es puesta a cero. Por consiguiente, según una realización, puede configurarse para puentear 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 de 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 una componente luma/componente croma) está codificado (subblock_flag). Solo cuando el subblock_flag es 1, se escanea 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 subblock_flag puede establecerse a 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 escaneo directo 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 de cero está limitada debido a la puesta a cero, los valores máximos de last_coefficient_position_x y de last_coefficient_position_y también están limitados. Por consiguiente, los valores máximos de last_coefficient_position_x y de 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 es una región de coeficiente de transformada de baja frecuencia (en lo sucesivo en la presente memoria, denominada MTS reducida de 32 puntos o RMTS32), en un caso en donde se aplique un esquema MTS, y en cualquier caso en donde se aplique DST7 de 32 puntos o DCT8 de 32 puntos.
La Figura 5 ilustra la puesta a cero de 32 puntos según un ejemplo de la presente descripción.
Como se muestra en la Figura 5, cuando se divide un bloque y se aplica una transformada a la región A, puede aplicarse DST7 o DCT8 a cada lado y aplicarse un par de transformadas 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 en particiones 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 en particiones vertical u horizontalmente como se muestra en la Figura 5 también se puede establecer 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 determinan 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 está dividido en particiones 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 según una realización de la presente descripció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 según una condición de codificación predeterminada.
El texto de la memoria descriptiva que describe la puesta a cero según 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
La Tabla 6 muestra la sintaxis de una CU a la que se aplica inter predicción, y una forma de partición en la que se aplica la SBT puede determinarse mediante cuatro elementos de sintaxis 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 indicador 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_horizontal_flag igual a 1 indica que la CU está dividida en particiones horizontalmente, y cu_sbt_horizontal_flag igual a 0 indica que la CU está dividida en particiones 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 según cu_sbt_horizontal_flag y cu_sbt_pos_flag.
[Tabla 7]
Como se ha descrito anteriormente, cuando un núcleo de transformada horizontal se designa por trTypeHor y un núcleo de transformada vertical se designa 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 de 2 para trTypeHor o trTypeVer 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 mayor, 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]
[Tabla 9]
7.3.4.12 Sintaxis de codificación residual
La Tabla 8 muestra parte de la sintaxis de TU según 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] designa un índice MTS aplicado a un bloque de transformada, y trTypeHor y trTypeVer pueden determinarse según 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 designan información de posición (x, y) en el último coeficiente de transformada distinto de cero en el bloque de transformada. Específicamente, last_sig_coeff_x_prefix designa 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 designa 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 designa 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 designa 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 de cero. El orden de escaneo puede ser un orden de escaneo diagonal hacia arriba a la derecha. Como alternativa, el orden de escaneo puede ser un orden de escaneo horizontal o de escaneo vertical. El orden de escaneo 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 basándose 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 donde cu_sbt_flag no es 1, la altura del bloque de transformada es mayor de 32 o la anchura del bloque de transformada no es 32, la anchura del bloque de transformada se puede establecer a 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 de 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.
Según 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 ha puesto 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, según 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 según 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]
Con referencia a la Tabla 10, last_sig_coeff_x_prefix y last_sig_coeff_y_prefix están limitados a valores que oscilan desde 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 inferencia de un incremento contextual (ctxInc) para inferir 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 inferir un modelo contextual basado en un incremento contextual.
[Tabla 11]
[Tabla 12]
Como se muestra en la Tabla 11, un log2TbSize variable 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, tal 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 inferirse basándose en el tamaño de un bloque de puesta a cero.
Una realización de la presente descripció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 según una realización.
[Tabla 13]
Según 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, según la presente realización, las muestras residuales se pueden inferir en función de la información de posición en el último coeficiente significativo, en el que el modelo contextual se puede inferir 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 inferirse 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 infiere basándose en el tamaño del bloque de transformada original cuyo tamaño no cambia, log2TbWidth y log2TbHeight utilizados para inferir el incremento contextual (ctxlnc) en la Tabla 11 pueden interpretarse como la anchura y la altura del bloque de transformada original.
Según 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]
Según la Tabla 14, los valores máximos (cMax) de last_sig_coeff_x_prefix y last_sig_coeff_y_prefix se establecen basándose en 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 inferirse 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]
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 de contexto se realiza basándose en el tamaño de la TU original. Es decir, para aumentar la eficacia en la codificación residual, se propone realizar la selección contextual basándose en 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 descripció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 descripció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 decodificación de vídeo según una realización de la presente descripción.
La Figura 7 es un diagrama de flujo que ilustra una operación de un aparato de decodificación según una realización, y la Figura 8 es un diagrama de bloques que ilustra una configuración de un aparato de decodificación según una realización.
Cada operación ilustrada en la Figura 7 puede ser realizada por el aparato 300 de decodificación ilustrado en la Figura 3. Específicamente, S700 y S710 pueden ser realizadas por el decodificador 310 por entropía ilustrado en la Figura 3, S720 puede ser realizada por el descuantificador 321 ilustrado en la Figura 3, S730 puede ser realizada por el transformador inverso 322 ilustrado en la Figura 3, y S740 puede ser realizada por el sumador 340 ilustrado en la Figura 3. Las operaciones según 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 superponen 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 decodificación según una realización puede incluir un decodificador 310 por entropía, 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 decodificación, y el aparato de decodificación puede configurarse con más o menos componentes que los mostrados en la Figura 8.
En el aparato de decodificación según una realización, el decodificador 310 por entropía, 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 decodificación según una realización puede recibir una corriente de bits que incluye información residual (S700). Específicamente, el decodificador 310 por entropía del aparato de decodificación puede recibir la corriente de bits que incluye la información residual.
El aparato de decodificación según una realización puede inferir coeficientes de transformada cuantificados para un bloque actual basándose en la información residual incluida en la corriente de bits (S710). Específicamente, el decodificador 310 por entropía del aparato de decodificación puede cuantificar los coeficientes de transformada para el bloque actual basándose en la información residual incluida en la corriente de bits.
El aparato de decodificación según 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 decodificación puede inferir los coeficientes de transformada a partir de los coeficientes de transformada cuantificados basándose en el proceso de descuantificación.
El aparato de decodificación según una realización puede inferir muestras residuales para el bloque actual aplicando transformada inversa a los coeficientes de transformada inferidos (S720). Específicamente, la transformada inversa 322 del aparato de decodificación puede inferir las muestras residuales del bloque actual aplicando la transformada inversa a los coeficientes de transformada inferidos.
El aparato de decodificación según una realización puede generar una imagen reconstruida basándose en las muestras residuales del bloque actual (S740). Específicamente, el sumador 340 del aparato de decodificació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 del prefijo del último coeficiente significativo e información de sufijo del último coeficiente significativo sobre la posición del ú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 inferencia de una muestra residual según una realización de la presente descripción.
Cada operación ilustrada en la Figura 9 puede ser realizada por el aparato 300 de decodificación ilustrado en la Figura 3. Específicamente, S900 y S940 pueden ser realizadas por el decodificador 310 por entropía ilustrado en la Figura 3.
En primer lugar, como se muestra, se puede inferir 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 inferir 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 inferirse 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 inferirse 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 decodificación puede inferir 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).
Según una realización, el modelo contextual puede inferirse 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 inferirse basándose en el tamaño del bloque de transformada original.
El aparato de decodificación puede inferir 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 inferirse basándose en el modelo contextual.
El aparato de decodificación puede inferir la posición del último coeficiente significativo basándose en el valor inferido 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 decodificación puede inferir la posición del último coeficiente significativo dentro del intervalo 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 inferir un coeficiente de transformada al que se aplica la transformada dentro del intervalo 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 inferir 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, 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 decodificación puede inferir muestras residuales basándose en la posición del último coeficiente significativo inferido 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 descripció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 descripció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 según una realización de la presente descripción, y la Figura 11 es un diagrama de bloques que ilustra una configuración de un aparato de codificación según una realización.
El aparato de codificación según la Figura 10 y la Figura 11 puede realizar operaciones correspondientes a las del aparato de decodificación según la Figura 7 y la Figura. 8. Por lo tanto, las operaciones del aparato de decodificación ilustradas anteriormente en la Figura 7 y la Figura 8 pueden aplicarse igualmente al aparato de codificación según la Figura 10 y la Figura 11.
Cada operación ilustrada en la Figura 10 puede ser realizada por el aparato 200 de codificación ilustrado en la Figura 2. Específicamente, S1000 puede ser realizada por el sustractor 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 240 por entropía ilustrado en la Figura 2. Las operaciones según 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 superponen 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 según la realización puede incluir un sustractor 231, un transformador 232, un cuantificador 233 y un codificador 240 por entropía. 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 según una realización, el sustractor 231, el transformador 232, el cuantificador 233 y el codificador 240 por entropía pueden configurarse como chips independientes, o al menos dos componentes pueden configurarse como un solo chip.
El aparato de codificación según una realización puede inferir muestras residuales para un bloque actual (S1000). Específicamente, el sustractor 231 del aparato de codificación puede inferir las muestras residuales para el bloque actual.
El aparato de codificación según una realización puede transformar las muestras residuales para el bloque actual, infiriendo 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, infiriendo así los coeficientes de transformada para el bloque actual.
El aparato de codificación según una realización puede inferir 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 inferir los coeficientes de transformada cuantificados a partir de los coeficientes de transformada basándose en la cuantificación.
El aparato de codificación según una realización puede codificar información residual que incluye información sobre los coeficientes de transformada cuantificados (S1030). Específicamente, el codificador 240 por entropía 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 para el 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 según una realización de la presente descripción.
Cada operación ilustrada en la Figura 12 puede ser realizada por el aparato 200 de codificación ilustrado en la Figura 2. Específicamente, S1200 y S1230 pueden ser realizadas por el codificador 240 por entropía ilustrado en la Figura 2.
En primer lugar, como se muestra, se puede inferir 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 inferir 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 inferirse basándose en la información del indicador que indica si el bloque actual está dividido en subbloques y luego se transforma. Por ejemplo, cuando un valor de indicador que indica si el bloque actual está dividido 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 está dividido en subbloques y luego transformado 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 inferirse 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 inferir una posición del último coeficiente significativo basándose en la anchura o la altura inferidas del bloque de puesta a cero (S1210).
En un ejemplo, el aparato de codificación puede inferir la posición del último coeficiente significativo dentro del intervalo 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 inferir un coeficiente de transformada al que se aplica la transformada dentro del intervalo 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 inferir 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 inferir 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).
Según una realización, el modelo contextual puede inferirse 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 inferirse 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 inferido (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 descripció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 descripció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 inferirse basándose en la información residual (o información sobre el o los coeficientes de transformada), y los coeficientes de transformada escalados pueden inferirse mediante transformada inversa (escalamiento) de los coeficientes de transformada. Las muestras residuales pueden inferirse 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 descripció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 descripció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 que otra etapa. Además, un experto en la técnica 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 al alcance de la presente descripción.
Los métodos descritos anteriormente según la presente descripción pueden implementarse como una forma de software y un aparato de codificación y/o un aparato de decodificación según la descripción pueden incluirse en un dispositivo para el procesamiento de imágenes, tal como un televisor, un ordenador, un teléfono inteligente, un decodificador, un dispositivo de visualización o similar.
Cuando las realizaciones de la presente descripció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 descripció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 implementarse y realizarse en un ordenador, un procesador, un microprocesador, un controlador o un chip.
Además, el aparato de decodificación y el aparato de codificación a los que se aplica la presente descripción pueden incluirse en un transceptor de transmisió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 continuo, 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 continuo 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 descripció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 según la presente descripció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, una corriente de bits generada 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 descripció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 descripció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 continuo de contenido al cual puede aplicarse la presente descripción.
Además, el sistema de transmisión en continuo de contenidos al que se aplica la presente descripción puede incluir en gran medida un servidor de codificación, un servidor de transmisión en continuo, 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 a datos digitales el contenido introducido desde los dispositivos de entrada multimedia, tal como el teléfono inteligente, la cámara, la videocámara y similares, para generar una corriente de bits y para transmitirlo al servidor de transmisión en continuo. Como otro ejemplo, en un caso en el que el dispositivo de entrada multimedia, tal como el teléfono inteligente, la cámara, la videocámara o similar, genere directamente una corriente de bits, se puede omitir el servidor de codificación. La corriente de bits puede generarse mediante un método de codificación o un método de generación de corriente de bits al que se aplica la presente descripción. Y el servidor de transmisión en continuo puede almacenar la corriente de bits temporalmente durante un proceso para transmitir o recibir la corriente de bits.
El servidor de transmisión en continuo transmite datos multimedia al equipo del usuario basándose en la solicitud de un usuario a través del servidor web, que funciona como un instrumento que informa al usuario de qué servicio existe. Cuando el usuario solicita un servicio que desea, el servidor web transfiere la solicitud al servidor de transmisión en continuo, y el servidor de transmisión en continuo transmite los datos multimedia al usuario. A este respecto, el sistema de transmisión en continuo 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 continuo de contenidos.
El servidor de transmisión en continuo puede recibir contenidos desde el almacenamiento de medios y/o el servidor de codificación. Por ejemplo, en el caso de que los contenidos se reciban desde el servidor de codificación, los contenidos pueden recibirse en tiempo real. En este caso, el servidor de transmisión en continuo puede almacenar la corriente de bits durante un período de tiempo predeterminado para proporcionar el servicio de transmisión en continuo sin problemas.
Por ejemplo, el equipo de usuario puede incluir un teléfono móvil, un teléfono inteligente, un ordenador portátil, un terminal de difusión digital, un asistente digital personal (PDA), un reproductor multimedia portátil (PMP), un sistema de navegación, un PC pizarra, un PC tableta, un ultra portátil, un dispositivo que se puede llevar puesto (por ejemplo, un terminal tipo reloj (reloj inteligente), un terminal de tipo gafas (gafas inteligentes), un dispositivo de visualización montado en la cabeza (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 continuo 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 la presente memoria se pueden combinar de varias maneras. Por ejemplo, las características técnicas de las reivindicaciones de método de la presente descripción pueden combinarse para implementarse o realizarse en un aparato, y las características técnicas de las reivindicaciones de aparato pueden combinarse para implementarse o realizarse en un método. Además, las características técnicas de las reivindicaciones de método y de aparato pueden combinarse para implementarse o realizarse en un aparato, y las características técnicas de las reivindicaciones de método y de aparato pueden combinarse para implementarse o realizarse en un método.

Claims (12)

REIVINDICACIONES
1. Un método de decodificación de imágenes realizado por un aparato de decodificación, comprendiendo el método:
inferir una región superior izquierda desde un bloque actual, teniendo el bloque actual una primera anchura y una primera altura, teniendo la región superior izquierda una segunda anchura y una segunda altura;
inferir una posición del último coeficiente significativo dentro de la región superior izquierda utilizando información de la posición del último coeficiente significativo señalizada de una corriente de bits; e
inferir muestras residuales utilizando la posición del último coeficiente significativo,
en donde la información de la posición del último coeficiente significativo incluye información del prefijo del último coeficiente significativo,
en donde la información del prefijo del último coeficiente significativo incluye información del prefijo del eje x e información del prefijo del eje y,
caracterizado por que
un incremento contextual de la información de prefijo del eje x se infiere empleando la primera anchura del bloque actual,
un incremento contextual de la información de prefijo del eje y se infiere empleando la primera altura del bloque actual,
un valor máximo de la información de prefijo del eje x se infiere empleando la segunda anchura de la región superior izquierda, y
un valor máximo de la información de prefijo del eje y se infiere empleando la segunda altura de la región superior izquierda,
2. El método de decodificación de imágenes de la reivindicación 1, en donde la segunda anchura es menor que la primera anchura.
3. El método de decodificación de imágenes de la reivindicación 1, en donde la segunda altura es menor que la primera altura.
4. El método de decodificació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.
5. El método de decodificación de imágenes de la reivindicación 1, en donde la segunda anchura o la segunda altura se infiere utilizando la primera anchura o la primera altura.
6. El método de decodificación de imágenes de la reivindicación 5, 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.
7. El método de descodificación de imágenes de la reivindicación 5, 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 menor que la primera altura y 32.
8. Un método de codificación de imágenes realizado por un aparato de codificación de imágenes, comprendiendo el método:
inferir una región superior izquierda de un bloque actual, teniendo el bloque actual una primera anchura y una primera altura, teniendo la región superior izquierda una segunda anchura y una segunda altura;
inferir una 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 en la posición del último coeficiente significativo,
en donde la información de la posición del último coeficiente significativo incluye información del prefijo del último coeficiente significativo,
en donde la información del prefijo del último coeficiente significativo incluye información del prefijo del eje x e información del prefijo del eje y,
caracterizado por que
un incremento contextual de la información de prefijo del eje x se infiere empleando la primera anchura del bloque actual,
un incremento contextual de la información de prefijo del eje y se infiere empleando la primera altura del bloque actual,
un valor máximo de la información de prefijo del eje x se infiere empleando la segunda anchura de la región superior izquierda, y
un valor máximo de la información de prefijo del eje y se infiere empleando la segunda altura de la región superior izquierda.
9. El método de codificación de imágenes de la reivindicación 8, en donde la segunda anchura es menor que la primera anchura.
10. El método de codificación de imágenes de la reivindicación 8, en donde la segunda altura es menor que la primera altura.
11. Un método de transmisión que comprende:
obtener una corriente de bits, en donde la corriente de bits se genera infiriendo una región superior izquierda desde un bloque actual, teniendo el bloque actual una primera anchura y una primera altura, teniendo la región superior izquierda una segunda anchura y una segunda altura, infiriendo una posición del último coeficiente significativo dentro de la región superior izquierda y codificando la información de la posición del último coeficiente significativo en la posición del último coeficiente significativo, y
transmitir la corriente de bits,
en donde la información de la posición del último coeficiente significativo incluye información del prefijo del último coeficiente significativo,
en donde la información del prefijo del último coeficiente significativo incluye información del prefijo del eje x e información del prefijo del eje y,
caracterizado por que
un incremento contextual para la información de prefijo del eje x se infiere empleando la primera anchura del bloque actual,
un incremento contextual de la información de prefijo del eje y se infiere empleando la primera altura del bloque actual,
un valor máximo de la información de prefijo del eje x se infiere empleando la segunda anchura de la región superior izquierda, y
un valor máximo de la información de prefijo del eje y se infiere empleando la segunda altura de la región superior izquierda,
12. Un medio de almacenamiento digital legible por ordenador que almacena una corriente de bits generada por un método, comprendiendo el método:
inferir una región superior izquierda desde un bloque actual, teniendo el bloque actual una primera anchura y una primera altura, teniendo la región superior izquierda una segunda anchura y una segunda altura;
inferir una 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 en la posición del último coeficiente significativo,
en donde la información de la posición del último coeficiente significativo incluye información del prefijo del último coeficiente significativo,
en donde la información del prefijo del último coeficiente significativo incluye información del prefijo del eje x e información del prefijo del eje y,
caracterizado por que
un incremento contextual de la información de prefijo del eje x se infiere empleando la primera anchura del bloque actual,
un incremento contextual de la información de prefijo del eje y se infiere empleando la primera altura del bloque actual,
un valor máximo de la información de prefijo del eje x se infiere empleando la segunda anchura de la región superior izquierda, y
un valor máximo de la información de prefijo del eje y se infiere empleando la segunda altura de la región superior izquierda.
ES23182212T 2019-03-12 2020-03-12 Transform-based image coding Active ES3014018T3 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201962817490P 2019-03-12 2019-03-12
US201962817494P 2019-03-12 2019-03-12
US201962822000P 2019-03-21 2019-03-21
US201962823571P 2019-03-25 2019-03-25

Publications (1)

Publication Number Publication Date
ES3014018T3 true ES3014018T3 (en) 2025-04-16

Family

ID=72427588

Family Applications (3)

Application Number Title Priority Date Filing Date
ES24186964T Active ES3032767T3 (en) 2019-03-12 2020-03-12 Transform-based image coding device
ES20770672T Active ES2953235T3 (es) 2019-03-12 2020-03-12 Codificación de imágenes basada en transformadas
ES23182212T Active ES3014018T3 (en) 2019-03-12 2020-03-12 Transform-based image coding

Family Applications Before (2)

Application Number Title Priority Date Filing Date
ES24186964T Active ES3032767T3 (en) 2019-03-12 2020-03-12 Transform-based image coding device
ES20770672T Active ES2953235T3 (es) 2019-03-12 2020-03-12 Codificación de imágenes basada en transformadas

Country Status (14)

Country Link
US (2) US12041239B2 (es)
EP (4) EP4277278B1 (es)
KR (3) KR102873043B1 (es)
CN (4) CN113597770B (es)
AU (3) AU2020234409B2 (es)
ES (3) ES3032767T3 (es)
FI (1) FI3910956T3 (es)
HR (3) HRP20231091T1 (es)
HU (3) HUE063009T2 (es)
MX (5) MX2021009649A (es)
PL (3) PL4418656T3 (es)
RS (1) RS66892B1 (es)
SI (1) SI3910956T1 (es)
WO (1) WO2020185005A1 (es)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
MX2021016155A (es) 2019-06-19 2022-02-22 Lg Electronics Inc Codificacion de informacion sobre un conjunto de nucleos de transformacion.
WO2025116667A1 (ko) * 2023-11-30 2025-06-05 엘지전자 주식회사 영상 인코딩/디코딩 방법 및 장치, 그리고 비트스트림을 저장한 기록 매체

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RS55152B1 (sr) * 2010-07-09 2017-01-31 Samsung Electronics Co Ltd Metod i uređaj za entropijsko kodiranje/dekodiranje koeficijenta transformacije
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
US9042440B2 (en) 2010-12-03 2015-05-26 Qualcomm Incorporated Coding the position of a last significant coefficient within a video block based on a scanning order for the block in video coding
US8976861B2 (en) 2010-12-03 2015-03-10 Qualcomm Incorporated Separately coding the position of a last significant coefficient of a video block in video coding
CN103597838B (zh) * 2011-04-15 2017-03-29 黑莓有限公司 对末位有效系数的位置进行编码和解码的方法和设备
SI2884749T1 (en) * 2011-06-28 2018-03-30 Samsung Electronics Co., Ltd. A device for decoding video together with arithmetic decoding and two dimensional signaling of the last significant coefficient
US9491469B2 (en) 2011-06-28 2016-11-08 Qualcomm Incorporated Coding of last significant transform coefficient
US20130003856A1 (en) 2011-07-01 2013-01-03 Samsung Electronics Co. Ltd. Mode-dependent transforms for residual coding with low latency
US9392301B2 (en) 2011-07-01 2016-07-12 Qualcomm Incorporated Context adaptive entropy coding for non-square blocks in video coding
CN108235015A (zh) * 2011-11-08 2018-06-29 三星电子株式会社 用于对视频进行解码的设备
CN104067614B (zh) 2011-12-28 2018-07-27 夏普株式会社 算术解码装置、图像解码装置以及算术编码装置
ES2949651T3 (es) * 2012-04-15 2023-10-02 Samsung Electronics Co Ltd Procedimiento de descodificación de vídeo que utiliza la actualización de parámetros para la desbinarización del coeficiente de transformación codificado con entropía, aparato de codificación que utiliza el mismo para la binarización
GB2519070A (en) 2013-10-01 2015-04-15 Sony Corp Data encoding and decoding
US9432696B2 (en) 2014-03-17 2016-08-30 Qualcomm Incorporated Systems and methods for low complexity forward transforms using zeroed-out coefficients
US10334248B2 (en) 2015-05-29 2019-06-25 Qualcomm Incorporated Coding data using an enhanced context-adaptive binary arithmetic coding (CABAC) design
AU2017390099A1 (en) 2017-01-03 2019-08-08 Lg Electronics Inc. Image processing method, and device for same
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
CN113597770B (zh) 2023-10-27
MX2025001344A (es) 2025-03-07
EP4418656B1 (en) 2025-05-21
PL4418656T3 (pl) 2025-07-21
EP4418656C0 (en) 2025-05-21
AU2020234409B2 (en) 2023-11-02
SI3910956T1 (sl) 2023-11-30
CN113597770A (zh) 2021-11-02
HUE063009T2 (hu) 2023-12-28
EP4418656A2 (en) 2024-08-21
HRP20231091T1 (hr) 2023-12-22
EP3910956B1 (en) 2023-08-09
WO2020185005A1 (ko) 2020-09-17
EP4277278C0 (en) 2025-02-05
US12574519B2 (en) 2026-03-10
KR20210102463A (ko) 2021-08-19
KR20220133325A (ko) 2022-10-04
US20240187601A1 (en) 2024-06-06
MX2021009649A (es) 2021-12-10
EP4561066A2 (en) 2025-05-28
US12041239B2 (en) 2024-07-16
EP3910956A1 (en) 2021-11-17
CN117294848A (zh) 2023-12-26
AU2024200638B2 (en) 2025-08-28
PL4277278T3 (pl) 2025-04-14
MX2025001341A (es) 2025-03-07
AU2024200638A1 (en) 2024-02-22
KR102456938B1 (ko) 2022-10-20
CN117278753A (zh) 2023-12-22
KR102873043B1 (ko) 2025-10-16
RS66892B1 (sr) 2025-07-31
PL3910956T3 (pl) 2023-09-25
ES3032767T3 (en) 2025-07-24
EP4561066A3 (en) 2025-06-04
EP4277278B1 (en) 2025-02-05
HUE071617T2 (hu) 2025-09-28
EP4277278A1 (en) 2023-11-15
US20220046246A1 (en) 2022-02-10
HRP20250692T1 (hr) 2025-08-01
FI3910956T3 (fi) 2023-09-01
HUE070736T2 (hu) 2025-06-28
MX2025001345A (es) 2025-03-07
CN117278752A (zh) 2023-12-22
AU2020234409A1 (en) 2021-11-04
EP3910956A4 (en) 2022-06-08
EP4418656A3 (en) 2024-11-06
HRP20250243T1 (hr) 2025-04-11
AU2025271091A1 (en) 2025-12-18
MX2025001346A (es) 2025-03-07
ES2953235T3 (es) 2023-11-08
KR20250154536A (ko) 2025-10-28

Similar Documents

Publication Publication Date Title
KR102602614B1 (ko) 변환에 기반한 영상 코딩 방법 및 그 장치
ES3020842T3 (en) Image coding method based on transform, and device therefor
ES2981910T3 (es) Transformada en codificación de imágenes basada en intrapredicción
ES3024138T3 (en) Method for coding transform coefficient on basis of high frequency zeroing and apparatus therefor
KR20210031754A (ko) 다중 변환 선택에 기반한 영상 코딩 방법 및 그 장치
US20260089334A1 (en) Image coding method based on transform, and device therefor
ES2985144T3 (es) Método de codificación/decodificación de imagen y dispositivo para señalizar información de predicción de la componente de crominancia según que el modo de paleta sea aplicable y método para transmitir un tren de bits
ES2982809T3 (es) Codificación de información sobre conjunto de núcleos de transformada
KR20200132978A (ko) 영상의 처리 방법 및 이를 위한 장치
AU2024202291B2 (en) Transform-based image coding method, and device therefor
ES3018507T3 (es) Método y dispositivo para procesar información de imagen para la codificación de imágenes/vídeos
EP3767955B1 (en) Method for processing image and apparatus therefor
ES2986930T3 (es) Codificación de imágenes basada en transformadas
CA3283189A1 (en) Transform-based image coding method and device therefor
US12225213B2 (en) Transform-based image coding method and apparatus therefor
US12294711B2 (en) Method of determining transform coefficient scan order based on high frequency zeroing and apparatus thereof
AU2024203547B2 (en) Image coding method based on transform, and device therefor
JP2023053018A (ja) 変換に基づく映像コーディング方法及びその装置
AU2024200638B2 (en) Transform-based image coding method and device therefor
JP2023500299A (ja) 変換に基づく映像コーディング方法およびその装置
KR20220031062A (ko) 변환에 기반한 영상 코딩 방법 및 그 장치
KR20210060498A (ko) 변환 계수 코딩 방법 및 장치
US20250175645A1 (en) Transform-based image coding method and device therefor
AU2024203834B2 (en) Transform-based image coding method and device for same
RU2803184C1 (ru) Способ кодирования изображения на основе преобразования и устройство для его осуществления