ES2950975T3 - Método para decodificar una señal de imagen, método para codificar una señal de imagen y medio de almacenamiento - Google Patents

Método para decodificar una señal de imagen, método para codificar una señal de imagen y medio de almacenamiento Download PDF

Info

Publication number
ES2950975T3
ES2950975T3 ES19856204T ES19856204T ES2950975T3 ES 2950975 T3 ES2950975 T3 ES 2950975T3 ES 19856204 T ES19856204 T ES 19856204T ES 19856204 T ES19856204 T ES 19856204T ES 2950975 T3 ES2950975 T3 ES 2950975T3
Authority
ES
Spain
Prior art keywords
transform
current block
block
nsst
separable
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
ES19856204T
Other languages
English (en)
Inventor
Moonmo Koo
Mehdi Salehifar
Seunghwan Kim
Jaehyun Lim
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 ES2950975T3 publication Critical patent/ES2950975T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/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
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • 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/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • 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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • 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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Television Signal Processing For Recording (AREA)

Abstract

Las realizaciones de la presente invención proporcionan un método y un aparato para procesar señales de vídeo. Un método de decodificación de señal de imagen según una realización de la presente invención comprende las etapas de: determinar, en base a la altura y anchura de un bloque actual, una longitud de entrada y una longitud de salida de una transformada no separable; determinar una matriz de transformación no separable correspondiente a la longitud de entrada y la longitud de salida de la transformación no separable; y aplicar la matriz de transformación no separable al bloque actual, en donde, cuando la altura y el ancho del bloque actual son 4 cada uno, se determina que la longitud de entrada y la longitud de salida de la transformación no separable son 8 y 16 respectivamente. (Traducción automática con Google Translate, sin valor legal)

Description

DESCRIPCIÓN
Método para decodificar una señal de imagen, método para codificar una señal de imagen y medio de almacenamiento Campo técnico
La presente divulgación se refiere a un método y aparato para procesar señales de imagen y, en particular, a un método y aparato para codificar o decodificar señales de imagen realizando una transformada.
Técnica anterior
La codificación de compresión se refiere a una técnica de procesamiento de señales para transmitir información digitalizada a través de una línea de comunicación o almacenarla en una forma apropiada en un medio de almacenamiento. Medios tales como video, imágenes y audio pueden ser objetos de codificación de compresión y, en particular, una técnica para realizar codificación de compresión en imágenes se denomina compresión de imágenes de video.
El contenido de video de próxima generación tendrá características de una alta resolución espacial, una alta velocidad de trama y una alta dimensionalidad de la representación de la escena. Para procesar dicho contenido, el almacenamiento de memoria, la tasa de acceso a la memoria y la potencia de procesamiento aumentarán significativamente.
Por lo tanto, es necesario diseñar una herramienta de codificación para procesar contenido de video de próxima generación de manera más eficiente. En particular, los estándares de códec de video posteriores al estándar de codificación de video de alta eficiencia (HEVC) requieren una técnica de transformada eficiente para transformar una señal de video de dominio espacial en una señal de dominio de frecuencia junto con una técnica de predicción con mayor precisión.
Se puede encontrar más técnica anterior en Koo M et al, “Description of SDR video coding technology proposal by LG Electronics”, JVET-J0017, en Salehifar (LGE) M et al, “CE 6.2.6: Reduced Secondary Transform (RsT)”, JVET-K0099, en Jang (lGe) H et al, “Adaptive NsSt Kernel Size Selection”, n.° m39701 y en Moonmo Koo, “CE6: Reduced Secondary Transform (RsT)”, JVET-N0193.
Descripción detallada de la divulgación
Problema técnico
Las realizaciones de la divulgación proporcionan un método y dispositivo de procesamiento de señales de imagen que adopta una transformada de alta eficiencia de codificación y baja complejidad.
Los problemas técnicos resueltos por la presente divulgación no se limitan a los problemas técnicos anteriores y otros problemas técnicos que no se describen en este documento serán evidentes para los expertos en la técnica a partir de la siguiente descripción.
Solución técnica
La invención se expone en las reivindicaciones independientes. Las realizaciones preferidas de la invención se exponen en las reivindicaciones dependientes. La base de la invención reivindicada se puede encontrar en la realización 14.
Efectos ventajosos
Según las realizaciones de la divulgación, es posible proporcionar un método y dispositivo de codificación de video con alta eficiencia de codificación y baja complejidad aplicando una transformada basada en el tamaño del bloque actual. Los efectos de la presente divulgación no se limitan a los efectos descritos anteriormente y otros efectos que no se describen en este documento serán evidentes para los expertos en la técnica a partir de la siguiente descripción. Breve descripción de los dibujos
Se obtendrá fácilmente una apreciación más completa de la divulgación y muchos de los aspectos correspondientes de la misma a medida que se comprenda mejor con referencia a la siguiente descripción detallada cuando se tiene en consideración en relación con los dibujos adjuntos, en los que:
La figura 1 es un diagrama de bloques que ilustra esquemáticamente un dispositivo de codificación para codificar señales de video/imagen según una realización de la divulgación;
la figura 2 es un diagrama de bloques que ilustra esquemáticamente un dispositivo de decodificación para decodificar señales de imagen según una realización de la divulgación;
las figuras 3A, 3B, 3C y 3D son vistas que ilustran estructuras de división de bloques por árbol cuádruple (QT), árbol binario (BT), árbol ternario (TT) y árbol asimétrico (AT), respectivamente, según realizaciones de la divulgación;
la figura 4 es un diagrama de bloques que ilustra esquemáticamente el dispositivo de codificación de la figura 1, que incluye una unidad de transformada y cuantificación, según una realización de la divulgación y la figura 5 es un diagrama de bloques que ilustra esquemáticamente un dispositivo de decodificación que incluye una unidad de cuantificación inversa y transformada inversa según una realización de la divulgación;
la figura 6 es un diagrama de flujo que ilustra un ejemplo de codificación de una señal de video a través de una transformada primaria y una transformada secundaria según una realización de la divulgación;
la figura 7 es un diagrama de flujo que ilustra un ejemplo de decodificación de una señal de video a través de una transformada inversa secundaria y una transformada inversa primaria según una realización de la divulgación;
la figura 8 ilustra un grupo de configuración de transformada de ejemplo al que se aplica la transformada múltiple adaptativa (AMT), según una realización de la divulgación;
la figura 9 es un diagrama de flujo que ilustra la codificación a la que se aplica AMT según una realización de la divulgación;
la figura 10 es un diagrama de flujo que ilustra la decodificación a la que se aplica AMT según una realización de la divulgación;
la figura 11 es un diagrama de flujo que ilustra un ejemplo de codificación de un indicador AMT y un índice AMT según una realización de la divulgación;
la figura 12 es un diagrama de flujo que ilustra un ejemplo de decodificación para realizar una transformada basada en un indicador AMT y un índice AMT;
la figura 13 es un diagrama que ilustra la rotación de Givens según una realización de la divulgación, y la figura 14 ilustra una configuración de una ronda en NSST 4X4 constituida por permutaciones y una capa de rotación de Givens según una realización de la divulgación;
la figura 15 ilustra una configuración de ejemplo de un conjunto de transformadas no divididas por modo de predicción intra según una realización de la divulgación;
la figura 16 ilustra tres órdenes de exploración directa sobre coeficientes de transformada o bloques de coeficientes de transformada, en donde (a) ilustra una exploración diagonal, (b) ilustra una exploración horizontal y (c) ilustra una exploración vertical;
la figura 17 ilustra la posición del coeficiente de transformada en el caso de que se aplique una exploración diagonal directa cuando RST 4x4 se aplica a un bloque 4X8, según una realización de la divulgación, y la figura 18 ilustra un ejemplo de fusión de los coeficientes de transformada válidos de dos bloques 4x4 en un solo bloque según una realización de la divulgación;
la figura 19 ilustra un método de ejemplo para configurar un conjunto mixto de NSST por modo de predicción intra según una realización de la divulgación;
la figura 20 ilustra un método de ejemplo para seleccionar un conjunto NSST (o núcleo) considerando el tamaño del bloque de transformada y un modo de predicción intra según una realización de la divulgación;
las figuras 21A y 21B ilustran la transformada directa e inversa reducida según una realización de la divulgación;
la figura 22 es un diagrama de flujo que ilustra un ejemplo de decodificación usando una transformada reducida según una realización de la divulgación;
la figura 23 es un diagrama de flujo que ilustra un ejemplo para aplicar una transformada reducida condicional según una realización de la divulgación;
la figura 24 es un diagrama de flujo que ilustra un ejemplo de decodificación de transformada inversa secundaria a la que se aplica una transformada reducida condicional, según una realización de la divulgación;
las figuras 25A, 25B, 26A y 26B ilustran ejemplos de transformada reducida y transformada inversa reducida según una realización de la divulgación;
la figura 27 ilustra un área de ejemplo a la que se aplica una transformada secundaria reducida según una realización de la divulgación;
la figura 28 ilustra una transformada reducida por un factor reducido según una realización de la divulgación;
la figura 29 es un diagrama de flujo que ilustra un ejemplo de decodificación al que se aplica una transformada según una realización de la divulgación;
la figura 30 es un diagrama de bloques que ilustra un dispositivo para procesar señales de video según una realización de la divulgación;
la figura 31 ilustra un ejemplo de sistema de codificación de video según una realización de la divulgación; y
la figura 32 es una vista que ilustra una estructura de un sistema de transmisión convencional según una realización de la divulgación.
Modo para llevar a cabo la divulgación
Algunas realizaciones de la presente divulgación se describen en detalle con referencia a los dibujos adjuntos. La descripción detallada que se divulgará junto con los dibujos adjuntos pretende describir algunas realizaciones de la presente divulgación y no pretende describir una única realización de la presente divulgación. La siguiente descripción detallada incluye más detalles para proporcionar una comprensión completa de la presente divulgación. Sin embargo, los expertos en la técnica comprenderán que la presente divulgación puede implementarse sin tales detalles adicionales.
En algunos casos, para evitar que el concepto de la presente divulgación se vuelva vago, se omiten estructuras y dispositivos conocidos o se pueden mostrar en forma de diagrama de bloques en función de las funciones centrales de cada estructura y dispositivo.
Aunque la mayoría de los términos utilizados en la presente divulgación se han seleccionado de los generales ampliamente utilizados en la técnica, el solicitante ha seleccionado arbitrariamente algunos términos y sus significados se explican en detalle en la siguiente descripción según sea necesario. Por lo tanto, la presente descripción debe entenderse con los significados previstos de los términos en lugar de sus nombres o significados simples.
Los términos específicos utilizados en la siguiente descripción se han proporcionado para ayudar a comprender la presente divulgación, y el uso de dichos términos específicos puede cambiarse de diversas formas sin alejarse del espíritu técnico de la presente divulgación. Por ejemplo, las señales, los datos, las muestras, las imágenes, las tablas, los bloques y similares pueden reemplazarse e interpretarse adecuadamente en cada proceso de codificación.
En la presente descripción, una “unidad de procesamiento” se refiere a una unidad en la que se realiza un proceso de codificación/decodificación tal como predicción, transformada y/o cuantificación. Además, la unidad de procesamiento puede interpretarse en el sentido de que incluye una unidad para un componente de luminancia y una unidad para un componente de crominancia. Por ejemplo, la unidad de procesamiento puede corresponder a un bloque, una unidad de codificación (CU), una unidad de predicción (PU) o una unidad de transformada (TU).
Además, la unidad de procesamiento puede interpretarse como una unidad para un componente de luminancia o una unidad para un componente de crominancia. Por ejemplo, la unidad de procesamiento puede corresponder a un bloque de árbol de codificación (CTB), un bloque de codificación (CB), una PU o un bloque de transformada (TB) para el componente de luminancia. Además, la unidad de procesamiento puede corresponder a un CTB, un CB, una PU o un TB para el componente de crominancia. Además, la unidad de procesamiento no se limita a ello y puede interpretarse en el sentido de que incluye una unidad para el componente de luminancia y una unidad para el componente de crominancia.
Además, la unidad de procesamiento no se limita necesariamente a un bloque cuadrado y puede configurarse como una forma poligonal que tiene tres o más vértices.
Como se usa en el presente documento, “píxel” y “coeficiente” (por ejemplo, un coeficiente de transformada o un coeficiente de transformada que ha experimentado una primera transformada) pueden denominarse colectivamente como una muestra. Cuando se usa una muestra, esto puede significar que, por ejemplo, se usa un valor o coeficiente de píxel (por ejemplo, un coeficiente de transformada o un coeficiente de transformada que ha experimentado la primera transformada).
A continuación, se describe un método para diseñar y aplicar una transformada secundaria reducida (RST) teniendo en cuenta la complejidad computacional en el peor de los casos en relación con la codificación/decodificación de imágenes fijas o vídeos.
Las realizaciones de la divulgación proporcionan métodos y dispositivos para comprimir imágenes y videos. Los datos comprimidos tienen la forma de un flujo de bits, y el flujo de bits se puede almacenar en varios tipos de almacenamiento y se puede transmitir a través de una red a un terminal equipado con decodificador. Si el terminal tiene un dispositivo de visualización, el terminal puede visualizar la imagen decodificada en el dispositivo de visualización o simplemente puede almacenar los datos de flujo de bits. Los métodos y dispositivos propuestos según las realizaciones de la divulgación son aplicables tanto a codificadores como a decodificadores o tanto a generadores de flujo de bits como a receptores de flujo de bits independientemente de si el terminal emite lo mismo a través del dispositivo de visualización.
Un dispositivo de compresión de imágenes incluye en gran medida una unidad de predicción, una unidad de transformada y cuantificación y una unidad de codificación de entropía. La figuras 1 y 2 son diagramas de bloques que ilustran esquemáticamente un dispositivo de codificación y un dispositivo de decodificación, respectivamente. De los componentes, la unidad de transformada y cuantificación transforma la señal residual, que resulta de restar la señal de predicción de la señal sin procesar, en una señal de dominio de frecuencia mediante, por ejemplo, la transformada de coseno discreta (DCT)-2 y aplica la cuantificación a la señal de dominio de frecuencia, lo que permite la compresión de imágenes, con una reducción significativa del número de señales distintas de cero.
La figura 1 es un diagrama de bloques que ilustra esquemáticamente un dispositivo de codificación para codificar señales de video/imagen según una realización de la divulgación.
El divisor 110 de imagen puede dividir la entrada de imagen (o imagen o trama) al dispositivo 100 de codificación en una o más unidades de procesamiento. Como ejemplo, la unidad de procesamiento puede denominarse unidad de codificación (CU). En este caso, la unidad de codificación puede dividirse recursivamente a partir de una unidad de árbol de codificación (CTU) o una unidad de codificación más grande (LCU), según una estructura de árbol binario de árbol cuádruple (QTBT). Por ejemplo, una unidad de codificación puede dividirse en una pluralidad de unidades de codificación de mayor profundidad en base a la estructura de árbol cuádruple y/o la estructura de árbol binario. En este caso, por ejemplo, se puede aplicar primero la estructura de árbol cuádruple y luego se puede aplicar la estructura de árbol binario. O bien, se puede aplicar primero la estructura de árbol binario. Se puede realizar un procedimiento de codificación según una realización de la divulgación en base a la unidad de codificación final que ya no está dividida. En este caso, la unidad de codificación más grande puede usarse inmediatamente como la unidad de codificación final en función, por ejemplo, de la eficiencia de codificación por propiedades de imagen o, según sea necesario, la unidad de codificación puede dividirse recursivamente en unidades de codificación de menor profundidad, y la unidad de codificación del tamaño óptimo se puede utilizar como unidad de codificación final. El procedimiento de codificación puede incluir, por ejemplo, la predicción, la transformada o la reconstrucción que se describen a continuación. Como ejemplo, la unidad de procedimiento puede incluir además la unidad PU de predicción o la unidad TU de transformada. En este caso, la unidad de predicción y la unidad de transformada pueden dividirse o partirse a partir de la unidad de codificación final anteriormente descrita. La unidad de predicción puede ser una unidad de predicción de muestra, y la unidad de transformada puede ser una unidad para obtener el coeficiente de transformada y/o una unidad para obtener la señal residual a partir del coeficiente de transformada.
El término “unidad” se puede usar indistintamente con “bloque” o “área” en algunos casos. En general, el bloque MxN puede denotar un conjunto de muestras o coeficientes de transformada que consiste en M columnas y N filas. En general, muestra puede indicar el píxel o el valor de píxel o puede indicar el valor de píxel/píxel de solo el componente de luminancia o el valor de píxel/píxel de solo el componente de crominancia. La muestra puede usarse como un término correspondiente al píxel o pel de una imagen (o fotografía).
El dispositivo 100 de codificación puede generar una señal residual (bloque residual o conjunto de muestra residual) restando la señal de predicción (bloque predicho o conjunto de muestra de predicción) emitida desde el predictor 180 inter o predictor 185 intra a partir de la señal de imagen de entrada (bloque sin procesar o conjunto de muestra sin procesar) y la señal residual generada se transmite al transformador 120. En este caso, como se muestra, la unidad para restar la señal de predicción (bloque de predicción o conjunto de muestra de predicción) a partir de la señal de imagen de entrada (bloque sin procesar o conjunto de muestra sin procesar) en el codificador 100 puede denominarse restador 115. El predictor puede realizar una predicción en el bloque objetivo para su procesamiento (en lo sucesivo, bloque actual) y generar un bloque predicho que incluye muestras de predicción para el bloque actual. El predictor puede determinar si se aplica predicción intra o predicción inter en cada bloque o unidad de CU. El predictor puede generar varios elementos de información para la predicción, como información del modo de predicción, como se describe a continuación en relación con cada modo de predicción, y transferir la información generada al codificador 190 de entropía. La información relacionada con la predicción puede ser codificada por el codificador 190 de entropía y se emitirá en forma de flujo de bits.
El predictor 185 intra puede predecir el bloque actual haciendo referencia a las muestras en la imagen actual. Las muestras a las que se hace referencia pueden estar próximas al bloque actual o alejarse del mismo, según el modo de predicción. En la predicción intra, 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 DC y un modo plano. Los modos direccionales pueden incluir, por ejemplo, 33 modos de predicción direccional o 65 modos de predicción direccional dependiendo de cuán elaborada sea la dirección de predicción. Sin embargo, esto es simplemente un ejemplo, y se pueden usar más o menos modos de predicción direccionales. El predictor 185 intra puede determinar el modo de predicción aplicado al bloque actual usando el modo de predicción aplicado al bloque cercano.
El predictor 180 inter puede derivar un bloque predicho para el bloque actual, en base a un bloque de referencia (conjunto de muestra de referencia) especificado por un vector de movimiento en la imagen de referencia. En este caso, para reducir la cantidad de información de movimiento transmitida en el modo de predicción inter, la información de movimiento puede predecirse por bloque, subbloque o muestra en función de la correlación en la información de movimiento entre el bloque cercano y el bloque actual. La información de movimiento puede incluir el 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 predicción inter (predicción L0, predicción L1 o predicción Bi). En el caso de la predicción inter, los bloques cercanos pueden incluir un bloque cercano espacial presente en la imagen actual y un bloque cercano temporal presente en la imagen de referencia. La imagen de referencia que incluye el bloque de referencia puede ser idéntica o diferente de la imagen de referencia que incluye el bloque cercano temporal. El bloque cercano temporal puede denominarse, por ejemplo, bloque de referencia coubicado o CU coubicado (colCU), y la imagen de referencia que incluye el bloque cercano temporal puede denominarse imagen coubicada (colPic). Por ejemplo, el predictor 180 inter puede construir una lista de candidatos de información de movimiento basada en bloques cercanos y generar información que indique qué candidato se usa para derivar el vector de movimiento y/o el índice de imagen de referencia del bloque actual. La predicción inter puede realizarse en base a varios modos de predicción. Por ejemplo, en modo de salto o modo de fusión, el predictor 180 inter puede usar la información de movimiento para el bloque cercano como información de movimiento para el bloque actual. En el modo de salto, a diferencia del modo de fusión, no se puede transmitir ninguna señal residual. En el modo de predicción de vector de movimiento (MVP), el vector de movimiento del bloque cercano se puede utilizar como predictor de vector de movimiento y se puede señalar una diferencia de vector de movimiento, indicando de este modo el vector de movimiento del bloque actual.
La señal de predicción generada a través del predictor 180 inter o predictor 185 intra puede usarse para generar una señal reconstruida o una señal residual.
El transformador 120 puede aplicar un esquema de transformada a la señal residual, generando coeficientes de transformada. Por ejemplo, el esquema de transformada puede incluir al menos una transformada de coseno discreta (DCT), transformada de seno discreta (DST), transformada de Karhunen-Loeve (KLT), transformada basada en gráficos (GBT) o transformada condicionalmente no lineal (CNT). La GBT significa una transformada obtenida de un gráfico en el que se representa la información de la relación entre píxeles. La CNT significa una transformada que se obtiene a partir de generar una señal de predicción utilizando todos los píxeles previamente reconstruidos. Además, el proceso de transformada puede aplicarse a bloques de píxeles cuadrados con el mismo tamaño o también puede aplicarse a bloques de tamaño variable no cuadrados.
El cuantificador 130 puede cuantificar los coeficientes de transformada y transmitir los coeficientes de transformada cuantificados al codificador 190 de entropía, y el codificador 190 de entropía puede codificar la señal cuantificada (información para los coeficientes de transformada cuantificados) y emitir la señal codificada en un flujo de bits. La información para los coeficientes de transformada cuantificados puede denominarse información residual. El cuantificador 130 puede volver a clasificar los coeficientes de transformada cuantificados en forma de bloque en forma de un vector unidimensional, en función de un orden de exploración de coeficientes y generar la información para los coeficientes de transformada cuantificados en función de la forma unidimensional de los coeficientes de transformada cuantificados. El codificador 190 de entropía puede realizar varios métodos de codificación, como, por ejemplo, Golomb exponencial, codificación de longitud variable adaptable al contexto (CAVLC) o codificación aritmética binaria adaptable al contexto (CABAC). El codificador 190 de entropía puede codificar los valores de elementos de información (por ejemplo, elementos de sintaxis) necesarios para reconstruir el video/imagen, junto con o por separado de los coeficientes de transformada cuantificados. La información codificada (por ejemplo, información de vídeo/imagen) puede transmitirse o almacenarse en forma de flujo de bits, en base a una unidad de capa de abstracción por red (NAL). El flujo de bits puede transmitirse a través de la red o almacenarse en el medio de almacenamiento digital. La red puede incluir, por ejemplo, una red de transmisión y/o una red de comunicación, y el medio de almacenamiento digital puede incluir, por ejemplo, USB, SD, CD, DVD, Blu-ray, HDD, SSD u otros medios de almacenamiento. Un transmisor (no mostrado) para transmitir, y/o una unidad de almacenamiento (no mostrada) para almacenar, la salida de señal desde el codificador 190 de entropía puede configurarse como un elemento interno/externo del dispositivo 100 de codificación, o el transmisor puede ser un componente del codificador 190 de entropía.
Los coeficientes de transformada cuantificados emitidos desde el cuantificador 130 pueden usarse para generar la señal de predicción. Por ejemplo, la señal residual puede reconstruirse aplicando cuantificación inversa y transformada inversa en los coeficientes de transformada cuantificados mediante el cuantificador 140 inverso y el transformador 150 inverso en el bucle. El sumador 155 puede sumar la señal residual reconstruida a la salida de señal de predicción del predictor 180 inter o predictor 185 intra, generando de este modo la señal reconstruida (imagen reconstruida, bloque reconstruido o conjunto de muestra reconstruido). Como en el caso en que se aplica el modo de salto, cuando no queda ningún residuo para el bloque objetivo para el procesamiento, el bloque predicho puede usarse como el bloque reconstruido. El sumador 155 puede denominarse reconstructor o generador de bloques reconstruidos. La señal reconstruida generada puede usarse para la predicción intra del siguiente bloque de procesamiento objetivo en la imagen actual y, como se describe a continuación, filtrarse y luego usarse para la predicción inter de la siguiente imagen.
El filtro 160 puede mejorar la calidad de imagen subjetiva/objetiva aplicando filtrado a la señal reconstruida. Por ejemplo, el filtro 160 puede generar una imagen reconstruida modificada aplicando varios métodos de filtrado a la imagen reconstruida y transmitir la imagen reconstruida modificada a la memoria 170 intermedia de decodificación de imágenes. Los diversos métodos de filtrado pueden incluir, por ejemplo, filtrado de desbloqueo, desplazamiento adaptativo de muestra, filtro de bucle adaptativo o filtro bilateral. El filtro 160 puede generar varios elementos de información para filtrar y transferir la información resultante al codificador 190 de entropía como se describe a continuación en relación con cada método de filtrado. La información relacionada con el filtrado puede ser codificada por el codificador 190 de entropía y emitirse en forma de un flujo de bits.
La imagen reconstruida modificada transmitida a la memoria 170 intermedia de imágenes de decodificación se puede utilizar como imagen de referencia en el predictor 180 inter. El dispositivo 100 de codificación, cuando se aplica la predicción inter, puede evitar una falta de coincidencia de predicción entre el dispositivo 100 de codificación y el dispositivo de decodificación y mejorar la eficiencia de la codificación.
La memoria 170 intermedia de imágenes de decodificación puede almacenar la imagen reconstruida modificada para su uso como imagen de referencia en el predictor 180 inter.
La figura 2 es un diagrama de bloques que ilustra esquemáticamente un dispositivo de decodificación para decodificar señales de imagen según una realización de la divulgación.
Haciendo referencia a la figura 2, un dispositivo 200 de decodificación puede incluir un decodificador 210 de entropía, un cuantificador 220 inverso, un transformador 230 inverso, un sumador 235, un filtro 240, una memoria 250 intermedia de imagen de decodificación, un predictor 260 inter y un predictor 265 intra. El predictor 260 inter y el predictor 265 intra pueden denominarse colectivamente predictor. En otras palabras, el predictor puede incluir el predictor 180 inter y el predictor 185 intra. El cuantificador 220 inverso y el transformador 230 inverso pueden denominarse colectivamente como procesador residual. En otras palabras, el procesador residual puede incluir el cuantificador 220 inverso y el transformador 230 inverso. El decodificador 210 de entropía, el cuantificador 220 inverso, el transformador 230 inverso, el sumador 235, el filtro 240, el predictor 260 inter y el predictor 265 intra puede configurarse en un solo componente de hardware (por ejemplo, un decodificador o procesador) según una realización. La memoria 250 intermedia de imágenes de decodificación puede implementarse como un único componente de hardware (por ejemplo, una memoria o un medio de almacenamiento digital) según una realización.
Cuando se introduce un flujo de bits que incluye información de video/imagen, el dispositivo 200 de decodificación puede reconstruir la imagen correspondiente al proceso de información de video/imagen en el dispositivo 100 de codificación de la figura 2. Por ejemplo, el dispositivo 200 de decodificación puede realizar la decodificación utilizando la unidad de procesamiento aplicada en el dispositivo 100 de codificación. Por lo tanto, al decodificar, la unidad de procesamiento puede ser, por ejemplo, una unidad de codificación, y la unidad de codificación puede dividirse de la unidad de árbol de codificación o unidad de codificación más grande, según la estructura de árbol cuádruple y/o la estructura de árbol binario. La señal de imagen reconstruida decodificada y emitida a través del dispositivo 200 de decodificación puede reproducirse a través de un reproductor.
El dispositivo 200 de decodificación puede recibir la salida de señal desde el dispositivo 100 de codificación de la figura 2, en forma de flujo de bits, y la señal recibida puede decodificarse a través del decodificador 210 de entropía. Por ejemplo, el decodificador 210 de entropía puede analizar sintácticamente el flujo de bits y extraer información (por ejemplo, información de video/imagen) necesaria para la reconstrucción de imágenes (o reconstrucción de fotografías). Por ejemplo, el decodificador 210 de entropía puede decodificar la información en el flujo de bits en función de un método de codificación, como la codificación Golomb exponencial, CAVLC o CABAC, y puede emitir los valores de los elementos de sintaxis necesarios para la reconstrucción de la imagen y los valores cuantificados de los coeficientes de transformada con respecto a la residual. Específicamente, el método de decodificación de entropía CABAC puede recibir un elemento binario correspondiente a cada elemento de sintaxis en el flujo de bits, determinar un modelo de contexto usando información del elemento de sintaxis objetivo de decodificación, información de decodificación para el bloque objetivo de decodificación y cercano, o información para el símbolo/elemento binario decodificado en la etapa previa, predecir la probabilidad de ocurrencia de un elemento binario según el modelo de contexto determinado, y realizar la decodificación aritmética del elemento binario. En este momento, después de determinar el modelo de contexto, el método de decodificación de entropía CABAC puede actualizar el modelo de contexto usando información para el símbolo/elemento binario decodificado para el modelo de contexto del siguiente símbolo/elemento binario. Entre los elementos de información decodificadas por el decodificador 210 de entropía, la información para la predicción se puede proporcionar al predictor (por ejemplo, el predictor 260 inter y el predictor 265 intra), y el valor residual decodificado por entropía por el decodificador 210 de entropía, es decir, los coeficientes de transformada cuantificados y la información relevante del procesador, pueden ingresarse al cuantificador 220 inverso. Entre los elementos de información decodificadas por el decodificador 210 de entropía, la información para filtrar puede proporcionarse al filtro 240. Mientras tanto, un receptor (no mostrado) para recibir la salida de señal desde el dispositivo 100 de codificación puede configurarse además como un elemento interno/externo del dispositivo 200 de decodificación, o el receptor puede ser un componente del decodificador 210 de entropía.
El cuantificador 220 inverso puede cuantificar inversamente los coeficientes de transformada cuantificados y emitir los coeficientes de transformada. El cuantificador 220 inverso puede volver a clasificar los coeficientes de transformada cuantificados en forma de un bloque bidimensional. En este caso, la reclasificación se puede realizar basándose en el orden de exploración de coeficientes en el que se ha realizado el dispositivo 100 de codificación. El cuantificador 220 inverso puede cuantificar inversamente los coeficientes de transformada cuantificados utilizando parámetros de cuantificación (por ejemplo, información del tamaño de la etapa de cuantificación), obteniendo coeficientes de transformada.
El transformador 230 inverso obtiene la señal residual (bloque residual o conjunto de muestra residual) mediante la transformada inversa de los coeficientes de transformada.
El predictor puede realizar una predicción en el bloque actual y generar un bloque predicho que incluye muestras de predicción para el bloque actual. El predictor puede determinar cuál de la predicción intra o la predicción inter se aplica al bloque actual basándose en la información para la salida de predicción del decodificador 210 de entropía y determinar un modo de predicción intra/inter específico.
El predictor 265 intra puede predecir el bloque actual haciendo referencia a las muestras en la imagen actual. Las muestras a las que se hace referencia pueden estar cerca del bloque actual o alejarse del mismo, según el modo de predicción. En la predicción intra, los modos de predicción pueden incluir una pluralidad de modos no direccionales y una pluralidad de modos direccionales. El predictor 265 intra puede determinar el modo de predicción aplicado al bloque actual usando el modo de predicción aplicado al bloque cercano.
El predictor 260 inter puede derivar un bloque predicho para el bloque actual, en base a un bloque de referencia (conjunto de muestra de referencia) especificado por un vector de movimiento en la imagen de referencia. En este caso, para reducir la cantidad de información de movimiento transmitida en el modo de predicción inter, la información de movimiento puede predecirse por bloque, subbloque o muestra en función de la correlación en la información de movimiento entre el bloque cercano y el bloque actual. La información de movimiento puede incluir el 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 predicción inter (predicción L0, predicción L1 o predicción Bi). En el caso de la predicción inter, los bloques cercanos pueden incluir un bloque cercano espacial presente en la imagen actual y un bloque cercano temporal presente en la imagen de referencia. Por ejemplo, el predictor 260 inter puede construir una lista de candidatos de información de movimiento basada en información relacionada con la predicción de los bloques cercanos y derivar el vector de movimiento y/o el índice de imagen de referencia del bloque actual basándose en la información de selección de candidatos recibida. La predicción inter puede realizarse en base a varios modos de predicción. La información para la predicción puede incluir información que indica el modo de predicción inter para el bloque actual.
El sumador 235 puede sumar la señal residual obtenida a la señal de predicción (por ejemplo, bloque predicho o conjunto de muestra de predicción) emitida desde el predictor 260 inter o el predictor 265 intra, generando de este modo la señal reconstruida (imagen reconstruida, bloque reconstruido o conjunto de muestra reconstruido). Como en el caso en que se aplica el modo de salto, cuando no queda ningún residuo para el bloque objetivo para el procesamiento, el bloque predicho puede usarse como el bloque reconstruido.
El sumador 235 puede denominarse reconstructor o generador de bloques reconstruidos. La señal reconstruida generada puede usarse para la predicción intra del siguiente bloque de procesamiento objetivo en la imagen actual y, como se describe a continuación, filtrarse y luego usarse para la predicción inter de la siguiente imagen.
El filtro 240 puede mejorar la calidad de imagen subjetiva/objetiva aplicando filtrado a la señal reconstruida. Por ejemplo, el filtro 240 puede generar una imagen reconstruida modificada aplicando varios métodos de filtrado a la imagen reconstruida y transmitir la imagen reconstruida modificada a la memoria 250 intermedia de imágenes de decodificación. Los diversos métodos de filtrado pueden incluir, por ejemplo, filtrado de desbloqueo, desplazamiento adaptativo de muestra (SAO), filtro de bucle adaptativo (ALF) o filtro bilateral.
La imagen reconstruida modificada transmitida a la memoria 250 intermedia de imágenes de decodificación puede ser utilizada como imagen de referencia por el predictor 260 inter.
En la divulgación, las realizaciones descritas anteriormente en relación con el filtro 160, el predictor 180 inter y el predictor 185 intra del dispositivo 100 de codificación se pueden aplicar, de la misma manera que, o para corresponder con, el filtro 240, el predictor 260 inter, y el predictor 265 intra del dispositivo 200 de decodificación.
Las figuras 3A, 3B, 3C y 3D son vistas que ilustran estructuras de división de bloques por árbol cuádruple (QT), árbol binario (BT), árbol ternario (TT) y árbol asimétrico (AT), respectivamente, según realizaciones de la divulgación.
En la codificación de video, un bloque se puede dividir en función de QT. Un subbloque dividido por QT puede dividirse además recursivamente por QT. El bloque de hoja que ya no está dividido por QT puede dividirse por al menos un esquema de BT, TT o AT. BT puede tener dos tipos de división, como BT horizontal (2NxN, 2NxN) y BT vertical (Nx2N, Nx2N). TT puede tener dos tipos de división, como TT horizontal (2Nx1/2N, 2NxN, 2Nx1/2N) y TT vertical (1/2Nx2N, Nx2N, 1/2Nx2N). AT puede tener cuatro tipos de división, como At horizontal hacia arriba (2Nx1/2N, 2Nx3/2N), AT horizontal hacia abajo (2Nx3/2N, 2Nx1/2N), AT vertical izquierda (1/2Nx2N, 3/ 2Nx2N), y AT vertical derecha (3/2Nx2N, 1/2Nx2N). Cada una de BT, TT y AT puede dividirse recursivamente usando BT, TT y AT.
La figura 3A muestra un ejemplo de división QT. El bloque A puede dividirse en cuatro subbloques (A0, A1, A2, A3) por QT. El subbloque A1 puede dividirse nuevamente en cuatro subbloques (B0, B1, B2, B3) por QT.
La figura 3B muestra un ejemplo de división BT. El bloque B3, que ya no está dividido por QT, puede dividirse en BT vertical (C0, C1) o BT horizontal (D0, D1). Al igual que el bloque C0, cada subbloque puede dividirse adicionalmente recursivamente, por ejemplo, en forma de BT horizontal (E0, E1) o BT vertical (F0, F1).
La figura 3C muestra un ejemplo de división TT. El bloque B3, que ya no está dividido por QT, puede dividirse en TT vertical (C0, C1, C2) o TT horizontal (D0, D1, D2). Al igual que el bloque C1, cada subbloque puede dividirse adicionalmente recursivamente, por ejemplo, en forma de TT horizontal (E0, E1, E2) o TT vertical (F0, F1, F2).
La figura 3D muestra un ejemplo de división AT. El bloque B3, que ya no está dividido por QT, puede dividirse en AT vertical (C0, C1) o AT horizontal (D0, D1). Al igual que el bloque C1, cada subbloque puede dividirse adicionalmente recursivamente, por ejemplo, en forma de AT horizontal (E0, E1) o TT vertical (F0, F1).
Mientras tanto, BT, TT y AT se pueden usar en conjunto. Por ejemplo, el subbloque dividido por BT puede ser dividido por TT o AT. Además, el subbloque dividido por Tt puede ser dividido por BT o AT. El subbloque dividido por AT puede ser dividido por BT o TT. Por ejemplo, después de dividirse mediante BT horizontal, cada subbloque puede dividirse mediante BT vertical o, después de dividirse mediante BT vertical, cada subbloque puede dividirse mediante BT horizontal. En este caso, aunque se aplican diferentes órdenes de división, la forma final después de la división puede ser idéntica.
Cuando se divide un bloque, se pueden definir varios órdenes de búsqueda del bloque. Generalmente, una búsqueda se realiza de izquierda a derecha o de arriba a abajo. La búsqueda de un bloque puede significar el orden de determinar si dividir adicionalmente cada subbloque o, si el bloque ya no se divide, el orden de codificación de cada subbloque o el orden de búsqueda cuando el subbloque hace referencia a otro bloque cercano.
Se puede realizar una transformada por unidad de procesamiento (o bloque de transformada) dividida mediante la estructura de división como se muestra en la figura 3A a 3D. En particular, se puede dividir por la dirección de la fila y la dirección de la columna, y se puede aplicar una matriz de transformada. Según una realización de la divulgación, se pueden usar otros tipos de transformada a lo largo de la dirección de fila o la dirección de columna de la unidad de procesamiento (o bloque de transformada).
Las figuras 4 y 5 son las realizaciones a las que se aplica la divulgación. La figura 4 es un diagrama de bloques que ilustra esquemáticamente el dispositivo 100 de codificación de la figura 1, que incluye una unidad 120/130 de transformada y cuantificación, según una realización de la divulgación y la figura 5 es un diagrama de bloques que ilustra esquemáticamente un dispositivo 200 de decodificación que incluye una unidad 220/230 de cuantificación inversa y transformada inversa según una realización de la divulgación.
Haciendo referencia a la figura 4, la unidad 120/130 de transformada y cuantificación puede incluir una unidad 121 de transformada primaria, una unidad 122 de transformada secundaria y un cuantificador 130. La unidad 140/150 de cuantificación inversa y transformada inversa puede incluir un cuantificador 140 inverso, una unidad 151 de transformada secundaria inversa, y una unidad 152 de transformada primaria inversa.
Haciendo referencia a la figura 5, la unidad 220/230 de cuantificación inversa y transformada inversa puede incluir un cuantificador 220 inverso, una unidad 231 de transformada secundaria inversa y una unidad 232 de transformada primaria inversa.
En la divulgación, la transformada se puede realizar a través de una pluralidad de etapas. Por ejemplo, como se muestra en la figura 4, se pueden aplicar dos etapas de transformada primaria y transformada secundaria, o se pueden aplicar más etapas de transformada dependiendo del algoritmo. En este caso, la transformada principal puede denominarse transformada central.
La unidad 121 de transformada primaria puede aplicar la transformada primaria a la señal residual. En este caso, la transformada primaria puede definirse previamente como una tabla en el codificador y/o decodificador.
La unidad 122 de transformada secundaria puede aplicar una transformada secundaria a la señal transformada primaria. En este caso, la transformada secundaria puede definirse previamente como una tabla en el codificador y/o decodificador.
Según una realización, se puede aplicar condicionalmente una transformada secundaria no separable (NSST) como transformada secundaria. Por ejemplo, la NSST puede aplicarse solo a bloques de predicción intra y puede tener un conjunto de transformadas aplicable a cada grupo de modos de predicción.
En este caso, el grupo de modos de predicción puede establecerse en base a la simetría para la dirección de predicción. Por ejemplo, dado que el modo 52 de predicción y el modo 16 de predicción son simétricos con respecto al modo 34 de predicción (dirección diagonal), pueden formar un grupo y se les puede aplicar el mismo conjunto de transformada. Al aplicar la transformada para el modo 52 de predicción, después de transponer los datos de entrada, la transformada se aplica a los datos de entrada transpuestos y esto se debe a que el conjunto de transformada del modo 52 de predicción es el mismo que el del modo 16 de predicción.
Mientras tanto, dado que el modo plano y el modo DC carecen de simetría direccional, tienen sus respectivos conjuntos de transformadas, y cada conjunto de transformadas puede constar de dos transformadas. Para los demás modos direccionales, cada conjunto de transformadas puede constar de tres transformadas.
El cuantificador 130 puede realizar la cuantificación de la señal secundaria transformada.
La unidad 140/150 de cuantificación inversa y transformada inversa puede realizar inversamente el proceso descrito anteriormente, y no se proporciona una descripción por duplicado.
La figura 5 es un diagrama de bloques que ilustra esquemáticamente la unidad 220/230 de cuantificación inversa y transformada inversa en el dispositivo 200 de decodificación.
Haciendo referencia a la figura 5, la unidad 220/230 de cuantificación inversa y transformada inversa puede incluir un cuantificador 220 inverso, una unidad 231 de transformada secundaria inversa y una unidad 232 de transformada primaria inversa.
El cuantificador 220 inverso obtiene coeficientes de transformada de la señal decodificada por entropía utilizando información del tamaño de la etapa de cuantificación.
La unidad 231 de transformada secundaria inversa realiza una transformada secundaria inversa sobre los coeficientes de transformada. En este caso, la transformada secundaria inversa representa una transformada inversa de la transformada secundaria descrita anteriormente en relación con la figura 4.
La unidad 232 de transformada primaria inversa realiza una transformada primaria inversa sobre la señal (o bloque) transformada secundaria inversa y obtiene la señal residual. En este caso, la transformada primaria inversa representa una transformada inversa de la transformada primaria descrita anteriormente en relación con la figura 4.
La figura 6 es un diagrama de flujo que ilustra un ejemplo de codificación de una señal de video a través de una transformada primaria y una transformada secundaria según una realización de la divulgación. Las operaciones de la figura 6 pueden realizarse por el transformador 120 del dispositivo 100 de codificación.
El dispositivo 100 de codificación puede determinar (o seleccionar) una transformada secundaria directa en base al menos al modo de predicción, forma de bloque y/o tamaño de bloque de un bloque actual (S610).
El dispositivo 100 de codificación puede determinar la transformada secundaria directa óptima a través de la optimización de la tasa de distorsión (RD). La transformada secundaria directa óptima puede corresponder a una de una pluralidad de combinaciones de transformada, y la pluralidad de combinaciones de transformada puede definirse mediante un índice de transformada. Por ejemplo, para la optimización de RD, el dispositivo 100 de codificación puede comparar todos los resultados de realizar la transformada secundaria directa, la cuantificación y la codificación residual para los respectivos candidatos.
El dispositivo 100 de codificación puede señalar un segundo índice de transformada correspondiente a la transformada secundaria directa óptima (S620). En este caso, se pueden aplicar otras realizaciones descritas en la divulgación al índice de transformada secundario.
Mientras tanto, el dispositivo 100 de codificación puede realizar una exploración primaria directa en el bloque actual (bloque residual) (S630).
El dispositivo 100 de codificación puede realizar una transformada secundaria directa en el bloque actual utilizando la transformada secundaria directa óptima (S640). Mientras tanto, la transformada secundaria directa puede ser la RST que se describe a continuación. RST significa una transformada mediante la cual se introducen N elementos de datos residuales (vectores residuales Nx1), y se emiten R (R<N) elementos de datos de coeficientes de transformada (vectores de coeficientes de transformada Rx1).
Según una realización, la RST puede aplicarse a un área específica del bloque actual. Por ejemplo, cuando el bloque actual es NxN, el área específica puede significar el área superior izquierda N/2xN/2. Sin embargo, la descripción no se limita a ello, y el área específica puede establecerse para diferir dependiendo de al menos uno del modo de predicción, la forma del bloque o el tamaño del bloque. Por ejemplo, cuando el bloque actual es NxN, el área específica puede significar el área MxM superior izquierda (M>N).
Mientras tanto, el dispositivo 100 de codificación puede realizar la cuantificación en el bloque actual, generando de este modo un bloque de coeficiente de transformada (S650).
El dispositivo 100 de codificación puede realizar codificación de entropía en el bloque de coeficientes de transformada, generando de este modo un flujo de bits.
La figura 7 es un diagrama de flujo que ilustra un ejemplo de decodificación de una señal de video a través de una transformada inversa secundaria y una transformada inversa primaria según una realización de la divulgación. Las operaciones de la figura 7 pueden realizarse por el transformador 230 inverso del dispositivo 200 de decodificación. El dispositivo 200 de decodificación puede obtener el índice de transformada secundario del flujo de bits.
El dispositivo 200 de decodificación puede inducir una transformada secundaria correspondiente al índice de transformada secundaria.
Sin embargo, las etapas S710 y S720 equivalen a una mera realización, y la descripción no se limita a ello. Por ejemplo, el dispositivo 200 de decodificación puede inducir la transformada secundaria basándose en al menos uno del modo de predicción, la forma del bloque y/o el tamaño del bloque del bloque actual, sin obtener el índice de transformada secundaria.
Mientras tanto, el decodificador 200 puede obtener el bloque de coeficientes de transformada decodificando por entropía el flujo de bits y puede realizar una cuantificación inversa en el bloque de coeficientes de transformada (S730).
El decodificador 200 puede realizar una transformada secundaria inversa en el bloque de coeficientes de transformada cuantificados inversamente (S740). Por ejemplo, la transformada secundaria inversa puede ser la RST inversa. La RST inversa es la matriz transpuesta de la RST descrita anteriormente en relación con la figura 6 y significa una transformada mediante la cual se introducen R elementos de datos de coeficientes de transformada (vectores de coeficientes de transformada Rx1), y se emiten N elementos de datos residuales (vectores residuales Nx1).
Según una realización, la transformada secundaria reducida se puede aplicar a un área específica del bloque actual. Por ejemplo, cuando el bloque actual es NxN, el área específica puede significar el área superior izquierda N/2xN/2. Sin embargo, la descripción no se limita a ello, y el área específica puede establecerse para diferir dependiendo de al menos uno del modo de predicción, la forma del bloque o el tamaño del bloque. Por ejemplo, cuando el bloque actual es NxN, el área específica puede significar el área superior izquierda MxM (M>N) o MxL (M>N, L>N).
El decodificador 200 puede realizar una transformada primaria inversa sobre el resultado de la transformada secundaria inversa (S750).
El decodificador 200 genera un bloque residual a través de la etapa S750 y genera un bloque reconstruido añadiendo el bloque residual y un bloque de predicción.
La figura 8 ilustra un grupo de configuración de transformada de ejemplo al que se aplica la transformada múltiple adaptativa (AMT), según una realización de la divulgación.
Haciendo referencia a la figura 8, el grupo de configuración de transformada puede determinarse en función del modo de predicción, y puede haber un total de seis (G0 a G5) grupos. G0 a G4 corresponden al caso en el que se aplica la predicción intra, y G5 representa combinaciones de transformada (o conjunto de transformada o conjunto de combinación de transformada) aplicado al bloque residual generado por la predicción inter.
Una combinación de transformada puede consistir en la transformada horizontal (o transformada de fila) aplicada a las filas de un bloque bidimensional y la transformada vertical (o transformada de columna) aplicada a las columnas del bloque bidimensional.
En este caso, cada grupo de configuración de transformada puede incluir cuatro candidatos de combinación de transformada. Los cuatro candidatos de combinación de transformada pueden seleccionarse o determinarse mediante los índices de combinación de transformada de 0 a 3, y los índices de combinación de transformada pueden transmitirse desde el dispositivo 100 de codificación hasta el dispositivo 200 de decodificación mediante un procedimiento de codificación.
Según una realización, los datos residuales (o la señal residual) obtenidos a través de la predicción intra pueden tener diferentes características estadísticas dependiendo de los modos de predicción intra. Por lo tanto, se pueden aplicar transformadas distintas de la transformada de coseno regular por modo de predicción, como se muestra en la figura 8. El tipo de transformada puede representarse en este caso como DCT-tipo 2, DCT-II o DCT-2.
La figura 8 ilustra las respectivas configuraciones de conjunto de transformada cuando se usan 35 modos de predicción intra y cuando se usan 67 modos de predicción intra. Se puede aplicar una pluralidad de combinaciones de transformadas por grupo de configuración de transformadas diferenciadas en las columnas del modo de predicción intra. Por ejemplo, la pluralidad de combinaciones de transformadas (transformadas a lo largo de la dirección de la fila, transformadas a lo largo de la dirección de la columna) puede constar de cuatro combinaciones. Más específicamente, dado que en el grupo 0 DST-7 y DCT-5 pueden aplicarse tanto a la dirección de fila (horizontal) como a la dirección de columna (vertical), son posibles cuatro combinaciones.
Dado que puede aplicarse un total de cuatro combinaciones de núcleos de transformada a cada modo de predicción intra, el índice de combinación de transformada para seleccionar uno de ellos puede transmitirse por unidad de transformada. En la divulgación, el índice de combinación de transformada puede indicarse como un índice AMT y puede representarse como amt_idx.
En núcleos distintos al propuesto en la figura 8, existe la ocasión de que DCT-2 sea óptima tanto para la dirección de fila como para la dirección de columna por la naturaleza de la señal residual. Por lo tanto, la transformada se puede realizar de forma adaptativa definiendo un indicador AMT por unidad de codificación. En este caso, si el indicador AMT es 0, se puede aplicar DCT-2 tanto a la dirección de la fila como a la dirección de la columna y, si el indicador AMT es 1, se puede seleccionar o determinar una de las cuatro combinaciones a través del índice AMT.
Según una realización, en un caso en el que el indicador AMT es 0, si el número de coeficientes de transformada es 3 o menos para una unidad de transformada, los núcleos de transformada de la figura 8 no se aplican, y DST-7 se puede aplicar tanto a la dirección de la fila como a la dirección de la columna.
Según una realización, los valores del coeficiente de transformada se analizan sintácticamente primero y, si el número de coeficientes de transformada es 3 o menos, el índice AMT no se analiza sintácticamente y se puede aplicar DST-7, reduciendo de este modo las transmisiones de información adicional.
Según una realización, la AMT solo puede aplicarse cuando tanto el ancho como el alto de la unidad de transformada son 32 o menos.
Según una realización, la figura 8 puede configurarse previamente a través de una formación fuera de línea.
Según una realización, el índice AMT puede definirse con un índice que puede indicar simultáneamente la combinación de transformada horizontal y transformada vertical. O bien, el índice AMT puede definirse por separado con un índice de transformada horizontal y un índice de transformada vertical.
Al igual que la AMT descrita anteriormente, un esquema de aplicación de una transformada seleccionada entre la pluralidad de núcleos (por ejemplo, DCT-2, DST-7 y DCT-8) puede denominarse selección de transformada múltiple (MTS) o transformada múltiple mejorada (EMT), y el índice AMT puede denominarse índice MTS.
La figura 9 es un diagrama de flujo que ilustra la codificación a la que se aplica AMT según una realización de la divulgación. Las operaciones de la figura 9 pueden realizarse por el transformador 120 del dispositivo 100 de codificación.
Aunque la divulgación describe básicamente la aplicación de transformadas por separado para la dirección horizontal y la dirección vertical, una combinación de transformadas puede estar constituida por transformadas no separables.
O bien, las transformadas separables y las transformadas no separables pueden mezclarse. En este caso, si se usa una transformada no separable, la selección de transformada por dirección de fila/columna o la selección por dirección horizontal/vertical es innecesaria y, solo cuando se selecciona una transformada separable, las combinaciones de transformada de la figura 8 pueden usarse.
Además, los esquemas propuestos en la divulgación pueden aplicarse independientemente de si se trata de la transformada primaria o la transformada secundaria. En otras palabras, no existe la limitación de que se deba aplicar cualquiera de los las, sino que se pueden aplicar ambas. En este caso, la transformada primaria puede significar la transformada para transformar primero el bloque residual, y la transformada secundaria puede significar la transformada aplicada al bloque resultante de la transformada primaria.
Primero, el dispositivo 100 de codificación puede determinar un grupo de configuración de transformada correspondiente a un bloque actual (S910). En este caso, el grupo de configuración de transformada puede estar constituido por las combinaciones que se muestran en la figura 8.
El dispositivo 100 de codificación puede realizar la transformada en combinaciones de transformada candidatas disponibles en el grupo de configuración de transformada (S920).
Como resultado de realizar la transformada, el dispositivo 100 de codificación puede determinar o seleccionar una combinación de transformada con el coste de distorsión de tasa (RD) más pequeño (S930).
El dispositivo 100 de codificación puede codificar un índice de combinación de transformada correspondiente a la combinación de transformada seleccionada (S940).
La figura 10 es un diagrama de flujo que ilustra la decodificación a la que se aplica AMT según una realización de la divulgación. Las operaciones de la figura 10 pueden realizarse por el transformador 230 inverso del dispositivo 200 de decodificación.
Primero, el dispositivo 200 de decodificación puede determinar un grupo de configuración de transformada para un bloque actual (S1010). El dispositivo 200 de decodificación puede analizar sintácticamente (u obtener) el índice de combinación de transformada de la señal de video, en donde el índice de combinación de transformada puede corresponder a cualquiera de la pluralidad de combinaciones de transformada en el grupo de configuración de transformada (S1020). Por ejemplo, el grupo de configuración de transformada puede incluir DCT-2, DST-7 o DCT-8.
El dispositivo 200 de decodificación puede inducir la combinación de transformada correspondiente al índice de combinación de transformada (S1030). En este caso, la combinación de transformada puede consistir en la transformada horizontal y la transformada vertical y puede incluir al menos una de DCT-2, DST-7 o DCT-8. Además, como combinación de transformada, puede utilizarse la combinación de transformada descrita anteriormente en relación con la figura 8 .
El dispositivo 200 de decodificación puede realizar una transformada inversa en el bloque actual basándose en la combinación de transformada inducida (S1040). Cuando la combinación de transformada consiste en una transformada de fila (horizontal) y una transformada de columna (vertical), la transformada de fila (horizontal) se puede aplicar primero y, a continuación, se puede aplicar la transformada de columna (vertical). Sin embargo, la descripción no se limita a ello, y se puede aplicar su forma opuesta o, si consiste solo en transformadas no separables, se puede aplicar inmediatamente la transformada no separable.
Según una realización, si la transformada vertical o la transformada horizontal es DST-7 o DCT-8, la transformada inversa de DST-7 o la transformada inversa de DCT-8 pueden aplicarse por columna y luego por fila. Además, en la transformada vertical o la transformada horizontal, se pueden aplicar diferentes transformadas por fila y/o por columna.
Según una realización, el índice de combinación de transformada se puede obtener en base al indicador AMT que indica si se realiza la AMT. En otras palabras, el índice de combinación de transformada puede obtenerse solo cuando la AMT se realiza según el indicador AMT. Además, el dispositivo 200 de decodificación puede identificar si el número de coeficientes de transformada distintos de cero es mayor que un umbral. En este momento, el índice de combinación de transformada puede analizarse solo cuando el número de coeficientes de transformada distintos de cero es mayor que el umbral.
Según una realización, el indicador AMT o el índice AMT pueden definirse al nivel de al menos uno de secuencia, imagen, segmento, bloque, unidad de codificación, unidad de transformada o unidad de predicción.
Mientras tanto, según otra realización, el proceso de determinar el grupo de configuración de transformada y la etapa de analizar sintácticamente el índice de combinación de transformada pueden realizarse simultáneamente. O bien, la etapa S1010 puede preestablecerse en el dispositivo 100 de codificación y/o el dispositivo 200 de decodificación y omitirse.
La figura 11 es un diagrama de flujo que ilustra un ejemplo de codificación de un indicador AMT y un índice AMT según una realización de la divulgación. Las operaciones de la figura 11 pueden realizarse por el transformador 120 del dispositivo 100 de codificación.
El dispositivo 100 de codificación puede determinar si la AMT se aplica a un bloque actual (S1110).
Si se aplica AMT, el dispositivo 100 de codificación puede realizar la codificación con el indicador AMT = 1 (S1120).
El dispositivo 100 de codificación puede determinar el índice AMT basándose en al menos uno del modo de predicción, transformada horizontal o transformada vertical del bloque actual (S1130). En este caso, el índice AMT denota un índice que indica cualquiera de la pluralidad de combinaciones de transformada para cada modo de predicción intra, y el índice AMT puede transmitirse por unidad de transformada.
Cuando se determina el índice AMT, el dispositivo 100 de codificación puede codificar el índice AMT (S1140).
Por otro lado, a menos que se aplique AMT, el dispositivo 100 de codificación puede realizar la codificación con el indicador Am T = 0 (S1150).
La figura 12 es un diagrama de flujo que ilustra la decodificación para realizar una transformada basada en un indicador AMT y un índice AMT.
El dispositivo 200 de decodificación puede analizar sintácticamente el indicador AMT a partir del flujo de bits (S1210). En este caso, el indicador AMT puede indicar si la AMT se aplica a un bloque actual.
El dispositivo 200 de decodificación puede identificar si la AMT se aplica al bloque actual en base al indicador AMT (S1220). Por ejemplo, el dispositivo 200 de decodificación puede identificar si el indicador AMT es 1.
Si el indicador AMT es 1, el dispositivo 200 de decodificación puede analizar el índice AMT (S1230). En este caso, el índice AMT denota un índice que indica cualquiera de la pluralidad de combinaciones de transformada para cada modo de predicción intra, y el índice AMT puede transmitirse por unidad de transformada. O, el índice AMT puede significar un índice que indica cualquier combinación de transformada definida en una tabla de combinaciones de transformada preestablecida. La tabla de combinaciones de transformada preestablecida puede significar la figura 8, pero la divulgación no se limita a ello.
El dispositivo 200 de decodificación puede inducir o determinar la transformada horizontal y la transformada vertical basándose en al menos uno del índice AMT o el modo de predicción (S1240).
O bien, el dispositivo 200 de decodificación puede inducir la combinación de transformada correspondiente al índice AMT. Por ejemplo, el dispositivo 200 de decodificación puede inducir o determinar la transformada horizontal y la transformada vertical correspondientes al índice AMT.
Mientras tanto, si el indicador AMT es 0, el dispositivo 200 de decodificación puede aplicar una transformada inversa vertical preestablecida por columna (S1250). Por ejemplo, la transformada inversa vertical puede ser la transformada inversa de DCT-2.
El dispositivo 200 de decodificación puede aplicar una transformada inversa horizontal preestablecida por fila (S1260). Por ejemplo, la transformada inversa horizontal puede ser la transformada inversa de DCT-2. Es decir, cuando el indicador AMT es 0, se puede usar un núcleo de transformada preestablecido en el dispositivo 100 de codificación o el dispositivo 200 de decodificación. Por ejemplo, en lugar de uno definido en la tabla de combinaciones de transformada tal como se muestra en la figura 8, se puede utilizar un núcleo de transformada ampliamente utilizado.
NSST (transformada secundaria no separable)
La transformada secundaria denota la aplicación de un núcleo de transformada una vez más, utilizando el resultado de la aplicación de la transformada primaria como entrada. La transformada primaria puede incluir DCT-2 o DST-7 en HEVC o en la AMT descrito anteriormente. La transformada no separable denota, después de considerar el bloque residual bidimensional NxN como vector N2x1, aplicando un núcleo de transformada N2xN2 al vector N2x1 solo una vez, en lugar de aplicar secuencialmente un núcleo de transformada NxN a la dirección de la fila y la dirección de la columna.
Es decir, la NSST puede denotar una matriz cuadrada no separable aplicada al vector que consta de los coeficientes de un bloque de transformada. Además, aunque la descripción de las realizaciones de la divulgación se centra en la NSST como un ejemplo de transformada no separable aplicada al área superior izquierda (área de baja frecuencia) determinada según un tamaño de bloque, la realización de la divulgación no se limitado al término “NSST”, sino a cualquier tipo de transformada no separable puede aplicarse en su lugar a las realizaciones de la divulgación. Por ejemplo, la transformada no separable aplicada al área superior izquierda (área de baja frecuencia) determinada según el tamaño del bloque puede denominarse transformada no separable de baja frecuencia (LFNST). En la divulgación, transformada MxN (o matriz de transformada) significa una matriz que consta de M filas y N columnas.
En la NSST, los datos del bloque bidimensional obtenidos al aplicar la transformada primaria se dividen en bloques MxM, y luego, la transformada no separable M2xM2 se aplica a cada bloque MxM. M puede ser, por ejemplo, 4 u 8. En lugar de aplicar la NSST a todas las áreas en el bloque bidimensional obtenido por la transformada primaria, la NSST puede aplicarse solo a algunas áreas. Por ejemplo, la NSST puede aplicarse solo al bloque de 8x8 de la parte superior izquierda. Además, la transformada no separable de 64x64 se puede aplicar al área superior izquierda 8x8 solo cuando el ancho y el alto del bloque bidimensional obtenidas por la transformada principal, ambas, son 8 o más, y el resto se puede dividir en bloques 4x y la transformada no separable 16x16 puede aplicarse a cada uno de los bloques 4x4.
La transformada no separable M2xM2 puede aplicarse en forma de producto de matriz, pero, para reducir las cargas de cálculo y los requisitos de memoria, puede aproximarse a combinaciones de capas de rotación y capas de permutación de Givens. La figura 13 ilustra una rotación de Givens. Como se muestra en la figura 13, puede describirse con un ángulo de una rotación de Givens.
La figura 13 es un diagrama que ilustra la rotación de Givens según una realización de la divulgación, y la figura 14 ilustra una configuración de una ronda en una NSST 4X4 constituida por permutaciones y una capa de rotación de Givens según una realización de la divulgación.
La NSST 8x8 y la NSST 4x4 pueden configurarse a partir de una combinación jerárquica de rotaciones de Givens. La matriz correspondiente a una rotación de Givens es como se muestra en la ecuación 1, y el producto de la matriz se puede expresar en el diagrama que se muestra en la figura 13.
Figure imgf000014_0001
Dado que una rotación de Givens rota dos elementos de datos como se muestra en la figura 13, se necesitan 32 u 8 rotaciones de Givens para procesar 64 elementos de datos (en el caso de NSST 8x8) o 16 elementos de datos (en el caso de NSST 4x4), respectivamente. Por lo tanto, un conjunto de 32 u 8 rotaciones de Givens puede formar una capa de rotación de Givens. Como se muestra en la figura 14, los datos de salida para una capa de rotación de Givens se transfieren como datos de entrada para la siguiente capa de rotación de Givens mediante permotación (o barajado). Como se muestra en la figura 14, el patrón de permutación se define regularmente y, en el caso de NSST 4x4, cuatro capas de rotación de Givens y sus permutaciones correspondientes forman una ronda. La NSST 4x4 se realiza en dos rondas y la NSST 8x8 se realiza en cuatro rondas. Aunque diferentes rondas usan el mismo patrón de permutación, se aplican diferentes ángulos de rotación de Givens. Por lo tanto, es necesario almacenar los datos de ángulo para todas las rotaciones de Givens que constituyen cada transformada.
En la última etapa, se realiza una última permutación más en la salida de datos a través de las capas de rotación de Givens, y la información para la permutación se almacena por separado por transformada. La permutación se realiza al final de la NSST directa y la permutación inversa se aplica primero a la NSST inversa.
La NSST inversa realiza, en orden inverso, las capas de rotación de Givens y las permutaciones aplicadas a la NSST directa y toma un valor negativo (-) con respecto al ángulo de rotación de cada rotación de Givens.
La figura 15 ilustra una configuración de ejemplo de un conjunto de transformadas no divididas por modo de predicción intra según una realización de la divulgación.
Los modos de predicción intra a los que se aplica la misma NSST o conjunto de NSST pueden formar un grupo. En la figura 15, se clasifican 67 modos de predicción intra en 35 grupos. Por ejemplo, el modo número 20 y el modo número 48 pertenecen ambos al grupo número 20 (en adelante, grupo de modo).
Por grupo de modo, una pluralidad de NSST, en lugar de una NSST, puede configurarse en un conjunto. Cada conjunto puede incluir el caso en el que no se aplica NSST. Por ejemplo, cuando se pueden aplicar tres NSST diferentes a un grupo de modo, se puede seleccionar uno de los cuatro casos, incluido el caso en el que no se aplica ninguna NSST. En este momento se podrá transmitir en cada TU el índice para diferenciar uno de los cuatro casos. El número de NSST se puede configurar para diferir por grupo de modo. Por ejemplo, el grupo de modo número 0 y el grupo de modo número 1 pueden señalizarse respectivamente para seleccionar uno de tres casos, incluido el caso en el que no se aplica NSST.
Realización 1 (no reivindicada): RST aplicable a bloques 4x4
La transformada no separable aplicable a un bloque 4x4 es la transformada 16x16. Es decir, si los elementos de datos que constituyen el bloque 4x4 se clasifican en una fila en el orden de fila primero o columna primero, se convierte en un vector 16x1 y la transformada no separable se puede aplicar al vector 16x1. La transformada directa 16x16 consiste en 16 vectores base de transformada de dirección de fila, y el producto interno del vector 16x1 y cada vector base de transformada conduce al coeficiente de transformada para el vector base de transformada. El proceso de obtención de los coeficientes de transformada para todos los 16 vectores base de transformada consiste en multiplicar la matriz de transformada no separable de 16x16 por el vector 16x1 de entrada. Los coeficientes de transformada obtenidos por el producto matricial tienen la forma de un vector 16x1, y las características estadísticas pueden diferir por coeficiente de transformada. Por ejemplo, si el vector de coeficiente de transformada 16x1 consta del elemento cero al elemento 15, la varianza del elemento cero puede ser mayor que la varianza del elemento 15. Es decir, cuanto más adelante se coloca el elemento, mayor varianza tiene el elemento y, por lo tanto, mayor valor de energía.
Si se aplica una transformada no separable inversa 16x16 desde el vector de coeficiente de transformada 16x1 (cuando se descartan los efectos de cuantificación o integralización), se puede reconstruir la señal de bloque original 4x4. Si la transformada directa no separable 16x16 es una transformada ortogonal, la transformada inversa 16x16 puede obtenerse transponiendo la matriz para la transformada directa 16x16. Hablando de manera sencilla, los datos en la forma de un vector 16x1 se pueden obtener multiplicando la matriz de transformada no separable inversa 16x16 por el vector de coeficiente de transformada 16x1 y, si se clasifican en el orden de fila primero o columna primero como se aplicó por primera vez, la señal de bloque 4x4 puede ser reconstruida.
Como se expuso anteriormente, cada uno de los elementos del vector de coeficiente de transformada 16x1 puede tener diferentes características estadísticas. Como en el ejemplo descrito anteriormente, si los coeficientes de transformada colocados adelante (cerca del elemento cero) tienen una energía mayor, se puede reconstruir una señal significativamente cercana a la señal original aplicando una transformada inversa a algunos coeficientes de transformada que aparecen por primera vez, incluso sin la necesidad de usar todos los coeficientes de transformada. Por ejemplo, cuando la transformada inversa no separable 16x16 consta de 16 vectores base de columna, solo quedan L vectores base de columna para configurar una matriz 16xL, y entre los coeficientes de transformada, solo quedan L coeficientes de transformada que son más importantes (vector Lx 1, esto puede aparecer primero en el ejemplo descrito anteriormente), y luego se multiplican la matriz 16xL y el vector Lx1, lo que permite la reconstrucción del vector 16x1 que no difiere mucho de los datos del vector 16x1 original. Como resultado, solo los coeficientes L involucran la reconstrucción de datos. Por tanto, al obtener el coeficiente de transformada, basta con obtener el vector de coeficiente de transformada Lx1, no el vector de coeficiente de transformada 16x1. Es decir, los vectores de transformada de dirección de fila L se seleccionan de la matriz de transformada no separable 16x16 directa para configurar la transformada Lx16, y luego se multiplican con el vector de entrada 16x1, obteniendo de este modo los L coeficientes de transformada principal.
Realización 2 (no reivindicada): configuración del área de aplicación de la RST 4x4 y disposición de coeficientes de transformada
La RST 4x4 se puede aplicar como la transformada bidimensional y, en este momento, se puede aplicar de forma secundaria al bloque al que se ha aplicado la transformada principal, como DCT-tipo 2. Cuando el tamaño del bloque primario aplicado a transformada es NxN, normalmente es mayor que 4x4. Por lo tanto, se pueden considerar los siguientes dos métodos al aplicar RST 4x4 al bloque NxN.
La RST 4x4 se puede aplicar a algunas áreas del área NxN, en lugar de a toda el área NxN. Por ejemplo, la RST 4x4 puede aplicarse solo al área MxM superior izquierda (M<=N).
El área a la que se va a aplicar la transformada secundaria se puede dividir en bloques 4x4 y se puede aplicar la RST 4x4 a cada bloque.
Los métodos 1) y 2) pueden combinarse. Por ejemplo, solo el área MxM superior izquierda se puede dividir en bloques 4x4 y luego se puede aplicar RST 4x4.
En una realización específica, la transformada secundaria se puede aplicar solo al área 8x8 superior izquierda. Si el bloque NxN es igual o mayor que 8x8, se puede aplicar RS 8x8 y, si el bloque NxN es menor que 8x8 (4x4, 8x4 o 4x8), se puede dividir en bloques 4x4 y luego se puede aplicar RST 4x4 como en 2) anterior.
Si se generan L coeficientes de transformada (1<=L<16) después de aplicar la RST 4x4, surge una libertad en cuanto a cómo disponer los L coeficientes de transformada. Sin embargo, dado que puede haber un orden determinado al leer y procesar los coeficientes de transformada en la parte de codificación residual, el rendimiento de la codificación puede variar dependiendo de cómo se dispongan los L coeficientes de transformada en un bloque bidimensional. En el estándar de codificación de video de alta eficiencia (HEVC), la codificación residual comienza desde la posición más alejada de la posición de DC, y esto es para aumentar el rendimiento de la codificación utilizando el hecho de que, cuando se coloca más lejos de la posición de DC, el valor del coeficiente que se ha cuantificado es 0 o cercano a 0. Por lo tanto, puede ser ventajoso en vista del rendimiento de la codificación colocar los coeficientes más críticos y de mayor energía fuera de los L coeficientes de transformada más adelante en un orden de codificación.
La figura 16 ilustra tres órdenes de exploración directa en coeficientes de transformada o un bloque de coeficiente de transformada aplicado al estándar HEVC, en donde (a) ilustra una exploración diagonal, (b) ilustra una exploración horizontal y (c) ilustra una exploración vertical.
La figura 16 ilustra tres órdenes de exploración directa para coeficientes de transformada o un bloque de coeficientes de transformada (bloque 4x4, grupo de coeficientes (CG)) aplicado en el estándar HEVC. La codificación residual se realiza en el orden inverso al orden de exploración de (a), (b) o (c) (es decir, se codifica en el orden de 16 a 1). Los tres órdenes de exploración que se muestran en (a), (b) y (c) se seleccionan según el modo de predicción intra. Por tanto, de forma similar para los L coeficientes de transformada, el orden de exploración puede determinarse según el modo de predicción intra.
L se ve sometida al rango 1 <= L < 16. Generalmente, los vectores de base de transformada L se pueden seleccionar de 16 vectores base de transformada por cualquier método. Sin embargo, puede ser ventajoso en vista de la eficiencia de codificación seleccionar vectores de base de transformada con mayor importancia en el aspecto energético como en el ejemplo propuesto anteriormente en vista de la codificación y decodificación.
La figura 17 ilustra la posición de los coeficientes de transformada en el caso de que se aplique una exploración diagonal directa cuando se aplica RST 4x4 a un bloque 4X8, según una realización de la descripción, y la figura 18 ilustra un ejemplo de fusión de los coeficientes de transformada válidos de dos bloques 4x4 en un solo bloque según una realización de la divulgación.
Si, al dividir el bloque 4x8 de la parte superior izquierda en bloques 4x4 según el orden de exploración diagonal de (a) y aplicando RST 4x4, L es 8 (es decir, si entre los 16 coeficientes de transformada, solo quedan ocho coeficientes de transformada), los coeficientes de transformada se pueden colocar como se muestra en la figura 17, donde solo la mitad de cada bloque 4x4 puede tener coeficientes de transformada, y las posiciones marcadas con X pueden llenarse con 0 por defecto. Por lo tanto, los coeficientes de transformada L se disponen en cada bloque 4x4 según el orden de exploración propuesto en (a) y, suponiendo que las posiciones restantes (16-L) de cada bloque 4x4 se rellenan con 0, puede aplicarse codificación residual (por ejemplo, codificación residual en HEVC).
Además, los L coeficientes de transformada que se han dispuesto en dos bloques 4x4 como se muestra en la figura 18 pueden configurarse en un bloque. En particular, dado que un bloque 4x4 se llena por completo con los coeficientes de transformada de los dos bloques 4x4 cuando L es 8, no quedan coeficientes de transformada en otros bloques. Por lo tanto, dado que la codificación residual no es necesaria para el bloque 4x4 de coeficiente de transformada vacío, en el caso de HEVC, el indicador (coded_sub_block_flag) que indica si se aplica codificación residual al bloque puede codificarse con 0. Puede haber varios esquemas de combinación de las posiciones de los coeficientes de transformada de los dos bloques 4x4. Por ejemplo, las posiciones se pueden combinar según cualquier orden y también se puede aplicar el siguiente método.
1) Los coeficientes de transformada de los dos bloques 4x4 se combinan alternativamente en orden de exploración. Es decir, cuando el coeficiente de transformada para el bloque superior es
Figure imgf000017_0005
y g|
coeficiente de transformada del bloque inferior es
Figure imgf000017_0001
se pueden combinar
alternativamente uno por uno como
Figure imgf000017_0002
Además, 4 y 4 pueden r i
intercambiarse en orden (es decir, # puede venir primero).
2) Los coeficientes de transformada para el primer bloque 4x4 pueden disponerse en primer lugar y, a continuación, pueden disponerse los coeficientes de transformada para el segundo bloque 4x4. Es decir, pueden estar conectados
y dispuestos como
Figure imgf000017_0003
Por supuesto, el orden se puede cambiar como
Figure imgf000017_0004
Realización 3 (no reivindicada): método de codificación del índice NSST (transformada secundaria no separable) para RST 4x4
Si se aplica RST 4x4 como se muestra en la figura 17, la posición L+1 a la posición 16 puede llenarse con 0 según el orden de exploración del coeficiente de transformada para cada bloque 4x4. Por lo tanto, si un valor distinto de cero está presente en la posición L+1 a la posición 16 en cualquiera de los dos bloques 4x4, se infiere que RST 4x4 no se aplica. Si RST 4x4 tiene la estructura de aplicar la transformada seleccionada del conjunto de transformadas preparado como NSST de modelo de experimento conjunto (JEM), se puede señalar un índice sobre qué transformada se va a aplicar.
En algunos decodificadores, el índice NSST puede conocerse a través del análisis sintáctico de flujo de bits, y el análisis sintáctico de flujo de bits puede realizarse después de la decodificación residual. En este caso, si se hace que exista un coeficiente de transformada distinto de cero entre la posición L+1 y la posición 16 mediante decodificación residual, el decodificador puede abstenerse de analizar sintácticamente el índice NSST porque es seguro que RST 4x4 no se aplica. Por lo tanto, los costes de señalización pueden reducirse analizando sintácticamente opcionalmente el índice NSST solo cuando sea necesario.
Si se aplica RST 4x4 a la pluralidad de bloques 4x4 en un área específica como se muestra en la figura 17 (en este momento, se pueden aplicar las mismas RST 4x4 o diferentes), (las mismas o diferentes) RST 4x4 aplicadas a todos los bloques 4x4 se pueden designar a través de un índice NSST. Dado que RST 4x4, y si se aplica RST 4x4, se determinan para todos los bloques 4x4 por un índice NSST, si como resultado de inspeccionar si hay un coeficiente de transformada distinto de cero en la posición L+1 a la posición 16 para todos los bloques 4x4, existe un coeficiente de transformada distinto de cero en una posición no permitida (la posición L+1 a la posición 16) durante el curso de la decodificación residual, el dispositivo 100 de codificación puede configurarse para no codificar el índice NSST.
El dispositivo 100 de codificación puede señalar por separado los índices NSST respectivos para un bloque de luminancia y un bloque de crominancia, y los índices NSST separados respectivos pueden señalarse para el componente Cb y el componente Cr, y puede usarse un índice NSST común en el caso del bloque de crominancia. Cuando se usa un índice NSST, la señalización del índice NSST también se realiza solo una vez. Cuando se comparte un índice NSST para el componente Cb y el componente Cr, se puede aplicar RST 4x4 indicado por el mismo índice NSST y, en este caso, las RST 4x4 para el componente Cb y el componente Cr pueden ser las mismas o, a pesar del mismo índice NSST, se pueden establecer RST 4x4 individuales para el componente Cb y el componente Cr. Cuando se usa el índice NSST compartido para el componente Cb y el componente Cr, se comprueba si existe un coeficiente de transformada distinto de cero en la posición L+1 a la sexta posición para todos los bloques 4x4 del componente Cb y el componente Cr. y, si se descubre un coeficiente de transformada distinto de cero en la posición L+1 a la posición 16, se puede omitir la señalización del índice NSST.
Incluso cuando los coeficientes de transformada de dos bloques 4x4 se fusionan en un bloque 4x4, como se muestra en la figura 18, el dispositivo 100 de codificación puede comprobar si aparece un coeficiente de transformada distinto de cero en una posición en la que no exista ningún coeficiente de transformada válido cuando se aplica RST 4x4 y puede entonces determinar si señalizar el índice NSST. En particular, cuando L es 8 y, por lo tanto, al aplicar RST 4x4, no existen coeficientes de transformada válidos en un bloque 4x4 como se muestra en la figura 18 (el bloque marcado con X en la figura 18(b)), el indicador (coded_sub_block_flag) para aplicar codificación residual al bloque puede verificarse y, si es 1, el índice NSST puede no señalizarse. Como se establece anteriormente, aunque NSST se describe a continuación como un ejemplo de transformada no separable, se pueden usar otros términos conocidos (por ejemplo, LFNST) para la transformada no separable. Por ejemplo, el conjunto NSST y el índice NSST se pueden usar indistintamente con el conjunto LFNS y el índice LFNS, respectivamente. Además, RST como se describe en el presente documento es un ejemplo de la transformada no separable (por ejemplo, LFNST) que utiliza una matriz de transformada no cuadrada con una longitud de salida reducida y/o una longitud de entrada reducida en la matriz de transformada no separable cuadrada aplicada a al menos alguna área del bloque de transformada (el área superior izquierda 4x4, 8x8 o el resto excepto el área inferior derecha 4x4 en el bloque 8x8) y se puede usar indistintamente con LFNST.
Realización 4 (no reivindicada): método de optimización en caso de que la codificación en el índice 4x4 se realice antes de la codificación residual
Cuando la codificación del índice NSST se realiza antes de la codificación residual, se determina previamente si se aplica RST 4x4. Por tanto, puede omitirse la codificación residual en las posiciones en las que los coeficientes de transformada se rellenan con ceros. En este caso, puede determinarse si aplicar RST 4x4 a través del índice NSST (por ejemplo, si el índice NSST es 0, RST 4x4 no se aplica) y, de lo contrario, puede señalarse si aplicar RST 4x4 a través de un elemento de sintaxis separado (por ejemplo, el indicador NSST). Por ejemplo, si el elemento de sintaxis separado es el indicador NSST, el dispositivo 200 de decodificación analiza sintácticamente primero el indicador NSST para determinar de este modo si aplicar RST 4x4. Entonces, si el indicador NSST es 1, la codificación residual (decodificación) en las posiciones en las que no puede existir ningún coeficiente de transformada válido puede omitirse como se describió anteriormente.
En el caso de HEVC, tras la codificación residual, la codificación se realiza primero en la última posición de coeficiente distinta de cero en TU. Si la codificación en el índice NSST se realiza después de codificar en la última posición del coeficiente distinto de cero, y la última posición del coeficiente distinto de cero es una posición en la que no puede existir un coeficiente distinto de cero bajo el supuesto de que se aplica RST 4x4, el dispositivo 200 de decodificación puede configurarse para no aplicar RST 4x4 sin decodificar el índice NSST. Por ejemplo, dado que en las posiciones marcadas con X en la figura 17, no se colocan coeficientes de transformada válidos cuando se aplica RST 4x4 (que se pueden llenar con 0), si el último coeficiente distinto de cero se coloca en el área marcada con X, el dispositivo 200 de decodificación puede omitir la codificación en el índice NSST. Si el último coeficiente distinto de cero no se coloca en el área marcada con X, el dispositivo 200 de decodificación puede realizar la codificación en el índice NSST.
Si se sabe si aplicar RST 4x4 mediante la codificación condicional del índice NSST después de la codificación en la posición del coeficiente distinto de cero, el resto de la codificación residual puede procesarse en los dos esquemas siguientes:
1) Cuando no se aplica RST 4x4, se realiza una codificación residual regular. Es decir, la codificación se realiza suponiendo que puede existir un coeficiente de transformada distinto de cero en cualquier posición desde la última posición del coeficiente distinto de cero hasta DC.
2) Cuando se aplica RST 4x4, no existe ningún coeficiente de transformada en una posición específica o bloque 4x4 específico (por ejemplo, la posición X en la figura 17) (que se rellena con 0 por defecto). Por lo tanto, se puede omitir la codificación residual en la posición o el bloque. Por ejemplo, al llegar a la posición marcada con X mientras se realiza la exploración según el orden de exploración de la figura 17, se puede omitir la codificación en el indicador (sig_coeff_flag) en cuanto a si hay un coeficiente distinto de cero en la posición en el estándar HEVC. Cuando los coeficientes de transformada de dos bloques se fusionan en un bloque como se muestra en la figura 18, se puede omitir la codificación en el indicador (por ejemplo, coded_sub_block_flag en el estándar HEVC) que indica si se debe aplicar la codificación residual en el bloque 4x4 lleno con 0, y el valor se puede llevar a 0, y el bloque 4x4 se puede llenar con 0 sin codificación separada.
Cuando el índice NSST se codifica después de codificar en la posición del último coeficiente distinto de cero, si la posición x (Px) y la posición y (Py) del último coeficiente distinto de cero son menores que Tx y Ty, respectivamente, la codificación en el índice NSST se omite y no se puede aplicar RST 4x4. Por ejemplo, si Tx=1, Ty=1 y el último coeficiente distinto de cero está presente en la posición DC, se omite la codificación del índice NSST. Tal esquema de determinar si realizar la codificación del índice NSST a través de la comparación con un umbral se puede aplicar de manera diferente al componente de luminancia y al componente de crominancia. Por ejemplo, se pueden aplicar diferentes Tx y Ty al componente de luminancia y al componente de crominancia, y se puede aplicar un umbral al componente de luminancia, pero no al componente de crominancia. Por el contrario, se puede aplicar un umbral al componente de crominancia pero no al componente de luminancia.
Los dos métodos descritos anteriormente se pueden aplicar simultáneamente (si el último coeficiente distinto de cero se coloca en el área donde no existe un coeficiente de transformada válido, se omite la codificación del índice NSST y, cuando cada una de las coordenadas X e Y del último coeficiente distinto de cero son menores que el umbral, se omite la codificación del índice NSST). Por ejemplo, primero se identifica la comparación de umbral para las coordenadas de posición del último coeficiente distinto de cero y luego se puede verificar si el último coeficiente distinto de cero está ubicado en el área donde no existe un coeficiente de transformada válido, y los dos métodos pueden intercambiarse en orden.
Los métodos propuestos en la realización 4) también pueden aplicarse a RST 8x8. Es decir, si el último coeficiente distinto de cero se coloca en el área que no es el área 4x4 superior izquierda en el área 8x8 superior izquierda, se puede omitir la codificación de índice NSST y, de lo contrario, se puede realizar la codificación de índice NSST. Además, si las coordenadas X e Y para la posición del último coeficiente distinto de cero son inferiores a un cierto umbral, se puede omitir la codificación del índice NSST. Los dos métodos pueden realizarse simultáneamente.
Realización 5 (no reivindicada): aplicación de codificación de índice NSST diferente y codificación residual a cada componente de luminancia y componente de crominancia tras la aplicación de RST
Los esquemas descritos anteriormente en relación con las realizaciones 3 y 4 pueden aplicarse de manera diferente al componente de luminancia y al componente de crominancia. Es decir, se pueden aplicar diferentes esquemas de codificación residual y codificación de índice NSST al componente de luminancia y al componente de crominancia. Por ejemplo, el esquema descrito anteriormente en relación con la realización 4 puede aplicarse al componente de luminancia, y el esquema descrito anteriormente en relación con la realización 3 puede aplicarse al componente de crominancia. Además, la codificación del índice NSST condicional propuesta en la realización 3 o 4 se puede aplicar al componente de luminancia, y la codificación del índice NSST condicional puede no aplicarse al componente de luminancia, y viceversa (la codificación del índice NSST condicional aplicarse al componente de crominancia pero no al componente de luminancia).
Realización 6 (no reivindicada)
Según una realización de la divulgación, se proporciona un conjunto de transformada NSST mixto (MNTS) para aplicar varias condiciones NSST durante el curso de la aplicación de NSST y un método para configurar MNTS.
Según JEM, el conjunto NSST 4x4 incluye solo núcleo 4x4, y el conjunto NSST 8x8 incluye solo núcleo 8x8, según el tamaño de un bloque bajo preseleccionado. Según una realización de la divulgación, también se propone un método para configurar un conjunto NSST mixto de la siguiente manera.
• El conjunto NSST puede incluir núcleos NSST que están disponibles en el conjunto NSST y tienen uno o más tamaños variables, pero no un tamaño fijo (por ejemplo, el núcleo NSST 4x4 y el núcleo NSS 8x8 están incluidos en un conjunto NSST).
• El número de núcleos NSST disponibles en el conjunto NSST puede no ser fijo sino variado (por ejemplo, un primer conjunto incluye tres núcleos y un segundo conjunto incluye cuatro núcleos).
• El orden de los núcleos NSST puede ser variable, en lugar de fijo, según el conjunto NSST (por ejemplo, en el primer conjunto, los núcleos NSST 1, 2 y 3 se asignan a los índices NSST 1, 2 y 3, respectivamente, pero, en el segundo conjunto, los núcleos NSST 3, 2 y 1 se asignan a los índices NSST 1, 2 y 3, respectivamente).
Más específicamente, el siguiente es un método de ejemplo para configurar un conjunto de transformada NSST mixto.
• La prioridad de los núcleos NSST disponibles en el conjunto de transformada NSST puede determinarse según el tamaño del núcleo NSST (por ejemplo, NSST 4x4 y NSST 8x8).
Por ejemplo, si el bloque es grande, el núcleo NSST 8x8 puede ser más importante que el núcleo NSST 4x4. Por lo tanto, se asigna un índice NSST que es un valor pequeño al núcleo NSST 8x8.
• La prioridad de los núcleos NSST disponibles en el conjunto de transformada NSST puede determinarse según el orden de los núcleos NSST.
Por ejemplo, un primer núcleo NSST 4x4 dado puede priorizarse sobre un segundo núcleo NSST 4x4.
Dado que el índice NSST se codifica y transmite, se puede asignar una prioridad más alta (índice más pequeño) al núcleo NSST que es más frecuente, de modo que el índice NSST se puede señalizar con menos bits.
Las tablas 1 y 2 a continuación representan un conjunto NSST mixto de ejemplo propuesto según la presente realización.
[Tabla 1]
Figure imgf000019_0001
[Tabla 2]
Figure imgf000020_0001
Realización 7 (no reivindicada)
Según una realización de la divulgación, se propone un método para determinar un conjunto NSST considerando el tamaño del bloque y el modo de predicción intra durante el transcurso de la determinación de un conjunto de transformada secundario.
El método propuesto en la presente realización configura un conjunto de transformada adecuado para el modo de predicción intra en asociación con la realización 6, lo que permite configurar varios tamaños de núcleos y aplicarlos a los bloques.
La figura 19 ilustra un método de ejemplo para configurar un conjunto NSST mixto por modo de predicción intra según una realización de la divulgación.
La figura 19 ilustra una tabla de ejemplo según la aplicación del método propuesto en la realización 2 en asociación con la realización 6. En otras palabras, como se muestra en la figura 19, puede definirse un índice (“tipo mixto”) que indica si cada modo de predicción intra sigue el método de configuración de conjunto NSST heredado u otro método de configuración de conjunto NSST.
Más específicamente, en el caso del modo de predicción intra donde el índice (“tipo mixto”) de la figura 19 se define como ‘1’, no se sigue el método de configuración del conjunto NSST de JEM, pero el método de configuración del conjunto NSST definido en el sistema se usa para configurar el conjunto NSST. En este caso, el método de configuración del conjunto NSST definido en el sistema puede significar el conjunto NSST mixto propuesto en la realización 6.
Como otra realización, aunque se describen dos tipos de métodos de configuración de conjuntos de transformada (configuración de conjuntos NSST basada en JEM y el método de configuración de conjuntos NSST de tipo mixto propuesto según una realización de la divulgación) en base a información de tipo mixto (indicador) relacionada con el modo de predicción intra en relación con la tabla de la figura 19, puede haber uno o más métodos de configuración de NSST de tipo mixto, y la información de tipo mixto puede representarse como N (N>2) valores diferentes.
En otra realización, se puede determinar si configurar el conjunto de transformada apropiado para el bloque actual en un tipo mixto, considerando tanto el modo de predicción intra como el tamaño del bloque de transformada. Por ejemplo, si el tipo de modo correspondiente al modo de predicción intra es 0, se sigue la configuración del conjunto NSST de JEM; de lo contrario (tipo de modo == 1), se pueden determinar varios tipos mixtos de conjuntos NSST según el tamaño del bloque de transformada.
La figura 20 ilustra un método de ejemplo para seleccionar un conjunto NSST (o núcleo) considerando el tamaño del bloque de transformada y un modo de predicción intra según una realización de la divulgación.
Cuando se determina el conjunto de transformada, el dispositivo 200 de decodificación puede determinar el núcleo NSST usado usando la información del índice NSST.
Realización 8 (no reivindicada)
Según una realización de la divulgación, se proporciona un método para codificar eficientemente el índice NSST considerando una variación en la distribución estadística del índice NSST transmitido después de la codificación, cuando el conjunto de transformada se configura considerando tanto el modo de predicción intra como el tamaño del bloque durante el curso de la aplicación de la transformada secundaria. Según una realización de la divulgación, se proporciona un método para seleccionar un núcleo que se va a aplicar usando la sintaxis que indica el tamaño del núcleo.
Según una realización de la divulgación, también se proporciona un método de binarización unaria truncada como se muestra en la tabla 3 de la siguiente manera, dependiendo del valor de índice NSST máximo disponible por conjunto para una binarización eficiente ya que el número de núcleos NSST disponibles difiere por conjunto de transformada.
[Tabla 3]
Figure imgf000021_0002
La tabla 3 representa la binarización del índice NSST. Dado que el número de núcleos NSST disponibles difiere según el conjunto de transformada, el índice NSST se puede binarizar según el valor máximo del índice NSST.
Realización 9 (no reivindicada): transformada reducida
Se proporciona una transformada reducida aplicable a las transformaciones centrales (por ejemplo, DCT o DST) y las transformaciones secundarias (por ejemplo, NSST) debido a problemas de complejidad (por ejemplo, transformadas de bloques grandes o transformadas no separables).
Una idea principal para la transformada reducida es mapear un vector N-dimensional a un vector R-dimensional en otro espacio, donde R/N (R<N> es un factor de reducción. La transformada reducida es una matriz RxM como se expresa en la ecuación 3 a continuación.
[Ecuación 3]
Figure imgf000021_0001
En la ecuación 1, las R filas de la transformada son R bases en un nuevo espacio N-dimensional. Por lo tanto, la razón por la que la transformada reducida se llama así es que el número de elementos del vector de salida de la transformada es menor que el número de elementos del vector de entrada (R<N). La matriz de transformada inversa para la transformada reducida es la transposición de una transformada directa. Las transformadas reducidas directa e inversa se describen a continuación con referencia a las figuras 21A y 21B.
Las figuras 21A y 21B ilustran transformadas reducidas directa e inversa según una realización de la divulgación. El número de elementos en la transformada reducida es RxN, que es R/N menor que el tamaño de la matriz completa (NxN), lo que significa que la memoria requerida es R/N de la matriz completa.
Además, el número de productos necesarios es RxN, que es R/N menor que NxN original.
Si X es un vector N-dimensional, R coeficientes se obtienen después de aplicar la transformada reducida, lo que significa que es suficiente transferir solo R valores en lugar de N coeficientes como se pretendía originalmente. La figura 22 es un diagrama de flujo que ilustra un ejemplo de decodificación usando una transformada reducida según una realización de la divulgación.
La transformada reducida propuesta (transformada inversa en el decodificador) puede aplicarse a coeficientes (coeficientes cuantificados inversamente) como se muestra en la figura 21. Puede ser necesario un factor de reducción predeterminado (R o R/N) y un núcleo de transformada para realizar la transformada. En este caso, el núcleo de transformada puede determinarse en función de la información disponible, como el tamaño del bloque (ancho o alto), el modo de predicción intra o Cidx. Si un bloque de codificación actual es un bloque de luminancia, Cldx es 0. De lo contrario (bloque Cb o Cr), Cldx es un valor distinto de cero, por ejemplo, 1.
Los operadores utilizados a continuación en la divulgación se definen como se muestra en las tablas 4 y 5.
[Tabla 4]
Figure imgf000022_0001
[Tabla 5]
Figure imgf000022_0002
Figure imgf000022_0003
La figura 23 es un diagrama de flujo que ilustra un ejemplo para aplicar una transformada reducida condicional según una realización de la divulgación. Las operaciones de la figura 23 pueden realizarse por el cuantificador 140 inverso y el transformador 150 inverso del dispositivo 200 de decodificación.
Según una realización, la transformada reducida se puede usar cuando se cumple una condición específica. Por ejemplo, la transformada reducida se puede aplicar a bloques más grandes que un tamaño predeterminado de la siguiente manera.
• Ancho > TH && Altura > HT (en donde TH es un valor predefinido (por ejemplo, 4))
o,
• Ancho * Alto > K && MIN (ancho, alto) > TH (K y TH son valores predefinidos)
Es decir, la transformada reducida se puede aplicar cuando el ancho del bloque actual es mayor que el valor predefinido (TH) y el alto del bloque actual es mayor que el valor predefinido (TH) como en las condiciones anteriores. O bien, la transformada reducida se puede aplicar cuando el producto del ancho y el alto del bloque actual es mayor que el valor predeterminado (K), y el menor entre el ancho y el alto del bloque actual es mayor que el valor predefinido (TH).
La transformada reducida se puede aplicar a un grupo de bloques predeterminados de la siguiente manera.
• Ancho == TH && Altura == TH
o,
• Ancho == Alto
Es decir, si el ancho y el alto, cada uno, del bloque actual es idéntico al valor predeterminado (TH) o el ancho y el alto del bloque actual son idénticos (cuando el bloque actual es un bloque cuadrado), la transformada reducida puede aplicarse.
A menos que se cumplan las condiciones para usar la transformada reducida, se puede aplicar la transformada normal. La transformada normal puede ser una transformada predefinida y disponible en el sistema de codificación de video. Ejemplos de transformada normal son los siguientes.
• DCT-2, DCT-4, DCT-5, DCT-7, DCT-8
o,
• DST-1, DST-4, DST-7
o,
• transformada no separable
o,
• JEM-NSST (HyGT)
Como se muestra en la figura 23, la transformada reducida puede basarse en el índice (T ransform_idx) que indica qué transformada (por ejemplo, DCT-4 o DST-1) se utilizará o qué núcleo se aplicará (cuando haya una pluralidad de núcleos disponibles). En particular, Transmission_idx puede transmitirse dos veces. Uno es un índice (T ransform_idx_h) que indica transformada horizontal y el otro es un índice (T ransform_idx_v) que indica transformada vertical.
Más específicamente, con referencia a la figura 23, el dispositivo 200 de decodificación realiza una cuantificación inversa en un flujo de bits de entrada (S2305). Posteriormente, el dispositivo 200 de decodificación determina si aplicar la transformada (S2310). El dispositivo 200 de decodificación puede determinar si aplicar la transformada a través de un indicador que indica si se omite la transformada.
Cuando se aplica la transformada, el dispositivo 200 de decodificación analiza sintácticamente el índice de transformada (T ransform_idx) que indica la transformada a aplicar (S2315). O bien, el dispositivo 200 de decodificación puede seleccionar un núcleo de transformada (S2330). Por ejemplo, el dispositivo 200 de decodificación puede seleccionar el núcleo de transformada correspondiente al índice de transformada (Transform_idx). Además, el dispositivo 200 de decodificación puede seleccionar el núcleo de transformada considerando el tamaño del bloque (anchura, altura), el modo de predicción intra o Cldx (luminancia, crominancia).
El dispositivo 200 de decodificación determina si se cumplen las condiciones para aplicar la transformada reducida (S2320). Las condiciones para aplicar la transformada reducida pueden incluir las condiciones descritas anteriormente. Cuando no se aplica la transformada reducida, el dispositivo 200 de decodificación puede aplicar la transformada inversa normal (S2325). Por ejemplo, En la etapa S2330, el dispositivo 200 de decodificación puede determinar la matriz de transformada inversa a partir del núcleo de transformada seleccionado y puede aplicar la matriz de transformada inversa determinada al bloque actual, incluidos los coeficientes de transformada.
Cuando se aplica la transformada reducida, el dispositivo 200 de decodificación puede aplicar la transformada inversa reducida (S2335). Por ejemplo, En la etapa S2330, el dispositivo 200 de decodificación puede determinar la matriz de transformada inversa reducida del núcleo de transformada seleccionado considerando el factor de reducción y puede aplicar la matriz de transformada inversa reducida al bloque actual incluyendo los coeficientes de transformada.
La figura 24 es un diagrama de flujo que ilustra un ejemplo de decodificación para transformada inversa secundaria a la que se aplica transformada reducida condicional, según una realización de la divulgación. Las operaciones de la figura 24 pueden realizarse por el transformador 230 inverso del dispositivo 200 de decodificación.
Según una realización, la transformada reducida se puede aplicar a la transformada secundaria como se muestra en la figura 24. Si se analiza sintácticamente el índice NSST, se puede aplicar la transformada reducida.
Haciendo referencia a la figura 24, el dispositivo 200 de decodificación realiza la cuantificación inversa (S2405). El dispositivo 200 de decodificación determina si aplicar la NSST a los coeficientes de transformada generados a través de la cuantificación inversa (S2410). Es decir, el dispositivo 200 de decodificación determina si es necesario analizar sintácticamente el índice NSST (NSST_indx) dependiendo de si se aplica la NSST.
Cuando se aplica NSST, el dispositivo 200 de decodificación analiza sintácticamente el índice NSST (S2415) y determina si el índice NSST es mayor que 0 (S2420). El índice NSST puede reconstruirse a través de un esquema como CABAC, por el decodificador 210 de entropía. Cuando el índice NSST es 0, el dispositivo 200 de decodificación puede omitir la transformada inversa secundaria y aplicar la transformada inversa central o la transformada inversa primaria (S2445).
Además, cuando se aplica NSST, el dispositivo 200 de decodificación selecciona un núcleo de transformada para la transformada inversa secundaria (S2435). Por ejemplo, el dispositivo 200 de decodificación puede seleccionar el núcleo de transformada correspondiente al índice NSST (NSST_idx). Además, el dispositivo 200 de decodificación puede seleccionar el núcleo de transformada considerando el tamaño del bloque (anchura, altura), el modo de predicción intra o Cldx (luminancia, crominancia).
Cuando el índice NSST es mayor que 0, el dispositivo 200 de decodificación determina si se cumple la condición para aplicar la transformada reducida (S2425). La condición para aplicar la transformada reducida puede incluir las condiciones descritas anteriormente. Cuando no se aplica la transformada reducida, el dispositivo 200 de decodificación puede aplicar la transformada inversa secundaria normal (S2430). Por ejemplo, en la etapa S2435, el dispositivo 200 de decodificación puede determinar la matriz de transformada inversa secundaria a partir del núcleo de transformada seleccionado y puede aplicar la matriz de transformada inversa secundaria determinada al bloque actual, incluidos los coeficientes de transformada.
Cuando se aplica la transformada reducida, el dispositivo 200 de decodificación puede aplicar la transformada inversa secundaria reducida (S2440). Por ejemplo, en la etapa S2335, el dispositivo 200 de decodificación puede determinar la matriz de transformada inversa reducida a partir del núcleo de transformada seleccionado considerando el factor de reducción y puede aplicar la matriz de transformada inversa reducida al bloque actual incluyendo los coeficientes de transformada. Posteriormente, el dispositivo 200 de decodificación aplica la transformada inversa central o la transformada inversa primaria (S2445).
Realización 10 (no reivindicada): transformada reducida como una transformada secundaria con diferente tamaño de bloque
Las figuras 25A, 25B, 26A y 26B ilustran ejemplos de transformada reducida y transformada inversa reducida según una realización de la divulgación.
Según una realización de la divulgación, la transformada reducida puede usarse como transformada secundaria y transformada inversa secundaria en el códec de video para diferentes tamaños de bloque, como 4x4, 8x8 o 16x16. Como ejemplo para el tamaño de bloque 8x8 y el factor de reducción R=16, la transformada secundaria y la transformada inversa secundaria pueden configurarse como se muestra en las figuras 25A y 25B.
El pseudocódigo de la transformada reducida y la transformada inversa reducida puede configurarse como se muestra en la figura 26.
[Tabla 6]
Figure imgf000024_0002
[Tabla 7]
Figure imgf000024_0001
Realización 11 (no reivindicada): transformada reducida como una transformada secundaria con forma no rectangular La figura 27 ilustra un área de ejemplo a la que se aplica la transformada secundaria reducida según una realización de la divulgación.
Como se describió anteriormente, la transformada secundaria se puede aplicar a las esquinas 4x4 y 8x8 debido a problemas de complejidad. La transformada reducida se puede aplicar a formas no cuadradas.
Como se muestra en la figura 27, la RST puede aplicarse solo a alguna área (área sombreada) del bloque. En la figura 27, cada cuadrado representa área 4x4 y la RST puede aplicarse a 10 píxeles 4x4 (es decir, 160 píxeles). Cuando el factor de reducción R=16, toda la matriz RST es una matriz 16x16, y esta puede ser la cantidad de cálculo aceptable. Realización 12 (no reivindicada): factor de reducción
La figura 28 ilustra la transformada reducida según un factor reducido según una realización de la divulgación.
Un cambio en el factor de reducción puede provocar una variación en la memoria y la complejidad de la multiplicación. Como se ha descrito anteriormente, la memoria y la complejidad de la multiplicación pueden reducirse por el factor R/N debido al cambio del factor de reducción. Por ejemplo, cuando 53 R=16 para la NSST 8x8, la memoria y la complejidad de la multiplicación pueden reducirse en 1/4.
Realización 13 (no reivindicada): sintaxis de alto nivel
Los siguientes elementos de sintaxis se pueden usar para procesar la RST en la codificación de video. La semántica relacionada con la transformada reducida puede estar presente en el conjunto de parámetros de secuencia (SPS) o en encabezado del segmento.
Reduced_transform_enabled_flag que es 1 representa que la transformada reducida es posible y se aplica. Reduced_transform_enabled_flag que es 0 representa que la transformada reducida no es posible. Cuando Reduced_transform_enabled_flag no existe, se infiere que es 0. (Reduced_transform_enabled_flag igual a 1 especifica que la transformada reducida está habilitada y se aplica. Reduced_transform_enabled_flag igual a 0 especifica que la transformada reducida no está habilitada. Cuando Reduced_transform_enabled_flag no está presente, se infiere que es igual a 0).
Reduced_transform_factor indica el número de dimensiones reducidas que se mantendrán para la transformada reducida. Reduced_transform_factor que está ausente, se infiere que es idéntico a R. (Reduced_transform_factor especifica el número de dimensiones reducidas a conservar para la transformada reducida. Cuando Reduced_transform_factor no está presente, se infiere que es igual a R).
min_reduced_transform_size indica el tamaño de transformada mínimo para aplicar la transformada reducida. min_reduced_transform_size que está ausente, se infiere que es 0. (min_reduced_transform_size especifica el tamaño de transformada mínimo para aplicar la transformada reducida. Cuando min_reduced_transform_size no está presente, se infiere que es igual a 0).
max_reduced_transform_size indica el tamaño de transformada máximo para aplicar la transformada reducida. max_reduced_transform_size que está ausente, se infiere que es 0.
reduced_transform_factor indica el número de dimensiones reducidas que se mantendrán para la transformada reducida. reduced_transform_size que está ausente, se infiere que es 0. (reduced_transform_size especifica el número de dimensiones reducidas a conservar para la transformada reducida. Cuando Reduced_transform_factor no está presente, se infiere que es igual a 0.)
[Tabla 8]
Figure imgf000025_0001
Figure imgf000026_0001
Realización 14: aplicación condicional de RST 4x4 para el manejo del peor de los casos
La transformada secundaria no separable (NSST 4x4) aplicable a un bloque 4x4 es la transformada 16x16. La NSST 4x4 se aplica de forma secundaria al bloque que ha experimentado la transformada primaria, como DCT-2, DST-7 o DCT-8. Cuando el tamaño del bloque primario aplicado por transformada es NxM, se puede considerar el siguiente método al aplicar la NSST 4x4 al bloque NxM.
1) Las siguientes son condiciones a) y b) para aplicar la NSST 4x4 al área NxM.
a) N >= 4
b) M >= 4
2) NSST 4x4 puede aplicarse a algunas áreas NxM, en lugar de a todas. Por ejemplo, la NSST 4x4 puede aplicarse solo al área KxJ superior izquierda. a) y b) a continuación se expresan condiciones para este caso.
a) K >= 4
b) J >= 4
3) El área a la que se va a aplicar la transformada secundaria se puede dividir en bloques 4x4 y se puede aplicar NSST 4x4 a cada bloque.
La complejidad de cálculo de NSST 4x4 es una consideración muy crítica para el codificador y el decodificador y, por lo tanto, se analiza en detalle. En particular, la complejidad computacional de NSST 4x4 se analiza en función del recuento de multiplicaciones. En el caso de la NSST directa, la transformada secundaria 16x16 consta de vectores base de transformada direccional de 16 filas, y el producto interno del vector 16x1 y cada vector base de transformada conduce a un coeficiente de transformada para el vector base de transformada. El proceso de obtención de todos los coeficientes de transformada para los 16 vectores base de transformada consiste en multiplicar la matriz de transformada no separable 16x16 por el vector de entrada 16x1. Por lo tanto, el recuento de multiplicación total requerido para la NSST directa 4x4 es 256.
Cuando se aplica la transformada inversa no separable 16x16 al coeficiente de transformada 16x1 en el decodificador (cuando se descartan efectos tales como los de cuantificación e integralización), se pueden reconstruir los coeficientes del bloque de transformada primaria 4x4 original. En otras palabras, los datos en forma de un vector 16x1 pueden obtenerse multiplicando la matriz de transformada no separable inversa 16x16 por el vector de coeficiente de transformada 16x1 y, si los datos se clasifican en orden de fila o columna como se aplicaron por primera vez, la señal de bloque 4x4 (coeficiente de transformada primaria) puede reconstruirse. Por lo tanto, el recuento de multiplicación total requerido para la NSST inversa 4x4 es 256.
Como se describió anteriormente, cuando se aplica la NSST 4x4, el recuento de multiplicación requerido por unidad de muestra es 16. Este es el número que se obtiene al dividir el recuento de multiplicación total, 256, que se obtiene durante el transcurso del producto interno de cada vector base de transformada y el vector 16X1 entre el número total, 16, de muestras, que es el proceso de realizar la NSST 4x4. El recuento de multiplicación requerido tanto para la NSST 4x4 directa como para la NSST 4x4 inversa es 16.
En el caso de un bloque de 8x8, el recuento de multiplicación por muestra requerido al aplicar la NSST 4x4 se determina dependiendo del área donde se haya aplicado la NSST 4x4.
1. Cuando se aplica NSST 4x4 solo a un área 4x4 en la parte superior izquierda: 256 (recuento de multiplicación necesario para el proceso NSST 4x4) / 64 (recuento total de muestra en bloque 8x8) = 4 muestras/recuento de multiplicación
2. Cuando se aplica NSST 4x4 al área superior izquierda 4x4 y al área superior derecha 4x4: 512 (recuento de multiplicación necesario para dos NSST 4x4) / 64 (recuento total de muestra en bloque 8x8) = 8 muestras/recuento de multiplicación
3. Cuando se aplica NSST 4x4 a todas las áreas 4x4 en un bloque 8x8: 1024 (recuento de multiplicación necesario para cuatro NSST 4x4) / 64 (recuento total de muestras en bloque 8x8) = 16 muestras/recuento de multiplicaciones
Como se describió anteriormente, si el tamaño del bloque es grande, el rango de aplicación de la NSST 4x4 puede reducirse para reducir el recuento de multiplicación en el peor de los casos requerido en cada extremo de la muestra.
Por lo tanto, si se utiliza la NSST 4x4, el peor de los casos surge cuando el tamaño de TU es 4x4. En este caso, los siguientes métodos pueden reducir la complejidad del peor de los casos.
Método 1. No aplicar NSST 4x4 a TU menores (es decir, TU 4x4).
Método 2. Aplicar RST 4x4, en lugar de NSST 4x4, a bloques 4x4 (TU 4x4).
Se observó experimentalmente que el método 1 provocó un deterioro significativo del rendimiento de codificación ya que no aplica NSST 4x4. Se reveló que el método 2 pudo reconstruir una señal muy cercana a la señal original aplicando transformada inversa a algunos coeficientes de transformada colocados delante incluso sin usar todos los coeficientes de transformada en vista de las características estadísticas de los elementos del vector de coeficiente de transformada 16x1 y por lo tanto fue capaz de mantener la mayor parte del rendimiento de codificación.
Específicamente, en el caso de RST 4x4, cuando la transformada no separable inversa (o directa) 16x16 consta de 16 vectores base de columna, solo quedan L vectores base de columna y se configura una matriz 16xL. Como L coeficientes de transformada más críticos se dejan solos entre los coeficientes de transformada, el producto de la matriz 16xL y el vector Lx1 puede conducir a la reconstrucción del vector 16x1 que es poco diferente de los datos del vector 16x1 original.
Como resultado, solo L coeficientes involucran la reconstrucción de datos. Así, para obtener el coeficiente de transformada, basta con obtener el vector de coeficientes de transformada Lx1, no el vector de coeficientes de transformada 16x1. Es decir, la matriz de transformada Lx16 se configura seleccionando L vectores de transformada de dirección de fila de la matriz de transformada no separable directa 16x16, y los L coeficientes de transformada se obtienen multiplicando la matriz de transformada Lx16 por un vector de entrada 16x1.
L está sujeto al rango 1 <= L < 16. Generalmente, los L vectores base de transformada se pueden seleccionar de 16 vectores base de transformada por cualquier método. Sin embargo, puede ser ventajoso en vista de la eficiencia de codificación seleccionar vectores base de transformada con mayor importancia en el aspecto de energía de la señal en vista de la codificación y decodificación como se describió anteriormente. El recuento de multiplicación del peor de los casos por muestra en el bloque 4x4 según una transformada en el valor L es como se muestra en la tabla 9 a continuación.
[Tabla 9]
Figure imgf000027_0001
Como se describió anteriormente, la NSST 4x4 y la RST 4x4 se pueden usar de manera integral como se muestra en la tabla 10 a continuación para reducir la complejidad de la multiplicación en el peor de los casos (sin embargo, el siguiente ejemplo describe las condiciones para aplicar la NSST 4x4 y la RST 4x4 bajo las condiciones para aplicar la NSST 4x4 (es decir, cuando el ancho y el alto, ambos, del bloque actual son iguales o mayores que 4)).
Como se describió anteriormente, la NSST 4x4 para el bloque 4x4 es una matriz de transformada cuadrada (16x16) que recibe 16 elementos de datos y genera 16 elementos de datos, y la RST 4x4 significa una matriz de transformada no cuadrada (8x16) que recibe 16 elementos de datos y emite R (por ejemplo, ocho) elementos de datos, que son menos de 16, con respecto al lado del codificador. La RST 4x4 significa una matriz de transformada no cuadrada (16x8) que recibe R (por ejemplo, ocho) elementos de datos, que son menos de 16, y emite 16 elementos de datos con respecto al lado del decodificador.
[Tabla 10]
Si (ancho de bloque == 4 y alto de bloque == 4)
Aplicar RST 4x4 basada en matriz 8x16
De lo contrario
Aplicar NSST 4x4 para la región 4x4 superior izquierda
Con referencia a la tabla 10, cuando el ancho y el alto del bloque actual son 4, la RST 4x4 basada en matriz 8x16 se aplica al bloque actual, de lo contrario (si el ancho o el alto del bloque actual no es 4), la NSST 4x4 se puede aplicar al área 4x4 superior izquierda del bloque actual. Más específicamente, si el tamaño del bloque actual es 4x4, se puede aplicar una transformada no separable con una longitud de entrada de 16 y una longitud de salida de 8. En el caso de una transformada inversa no separable, se puede aplicar una transformada no separable con una longitud de entrada de 8 y una longitud de salida de 16.
Como se describió anteriormente, la NSST 4x4 y la RST 4x4 pueden usarse en combinación como se muestra en la tabla 11 a continuación para reducir la complejidad de la multiplicación en el peor de los casos (sin embargo, el siguiente ejemplo describe las condiciones para aplicar la NSST 4x4 y la RST 4x4 bajo las condiciones para aplicar la NSST 4x4 (es decir, cuando el ancho y el alto, ambos, del bloque actual son iguales o mayores que 4)).
[Tabla 11]
Si (ancho de bloque == 4 y alto de bloque ==4)
Aplicar RST 4x4 basada en matriz 8x16
De lo contrario, si (ancho de bloque X alto de bloque < TH) (TH es un valor predefinido como 64)
Aplicar NSST 4x4 para región 4x4 superior izquierda
De lo contrario, si (ancho del bloque >= alto del bloque)
Aplicar NSST 4x4 para región 4x4 superior izquierda y la región 4x4 muy derecha de la región 4x4 superior izquierda De lo contrario, aplicar NSST 4x4 para la región 4x4 superior izquierda y la región 4x4 muy inferior de la región 4x4 superior izquierda
Con referencia a la tabla 11, cuando el ancho y el alto del bloque actual son 4, se aplica la RST 4x4 basada en matriz 8x16 y, si el producto del ancho y el alto del bloque actual es menor que el umbral (TH), la NSST 4x4 se aplica al área superior izquierda 4x4 del bloque actual y, si el ancho del bloque actual es igual o mayor que el alto, la NSST 4x4 se aplica al área superior izquierda 4x4 del bloque actual y el área 4x4 colocada a la derecha del área 4x4 superior izquierda, y para el resto (cuando el producto del ancho por el alto del bloque actual es igual o mayor que el umbral y el ancho del bloque actual es menor que el alto), la NSST 4x4 se aplica al área 4x4 superior izquierda del bloque actual y el área 4x4 se coloca debajo del área 4x4 superior izquierda.
Como resultado, la RST 4x4 (por ejemplo, matriz 8x16), en lugar de la NSST 4x4, se puede aplicar al bloque 4x4 para reducir la complejidad computacional de la multiplicación en el peor de los casos.
Realización 15 (no reivindicada): aplicación condicional de RST 8x8 para el manejo del peor de los casos
La transformada secundaria no separable (NSST 8x8) aplicable a un bloque 8x8 es una transformada 64x64. La NSST 8x8 se aplica de forma secundaria al bloque que ha experimentado la transformada primaria, como DCT-2, DST-7 o DCT-8. Cuando el tamaño del bloque primario aplicado por transformada es NxM, se puede considerar el siguiente método al aplicar la NSST 8x8 al bloque NxM.
1) Las siguientes son las condiciones c) y d) para aplicar la NSST 8x8 al área NxM.
c) N >= 8
d) M >= 8
2) NSST 8x8 puede aplicarse a algunas áreas NxM, en lugar de a todas. Por ejemplo, la NSST 8x8 puede aplicarse solo al área KxJ superior izquierda. c) y d) a continuación se encuentran condiciones para este caso.
c) K >= 8
d) J >= 8
3) El área a la que se va a aplicar la transformada secundaria se puede dividir en bloques 8x8 y se puede aplicar NSST 8x8 a cada bloque.
La complejidad de cálculo de la NSST 8x8 es una consideración muy crítica para el codificador y el decodificador, por lo que se analiza en detalle. En particular, la complejidad computacional de la NSST 8x8 se analiza en función del recuento de multiplicaciones. En el caso de la NSST directa, la transformada secundaria 64x64 consta de 64 vectores base de transformada de dirección de fila, y el producto interno del vector 64x1 y cada vector base de transformada conduce a un coeficiente de transformada para el vector base de transformada. El proceso de obtención de todos los coeficientes de transformada para los 64 vectores base de transformada consiste en multiplicar la matriz de transformada no separable 64x64 por el vector de entrada 64x1. Por lo tanto, el recuento de multiplicación total requerido para la NSST directa 8x8 es 4.096.
Cuando se aplica la transformada inversa no separable 64x64 al coeficiente de transformada 64x1 en el decodificador (cuando se descartan efectos tales como los de cuantificación e integralización), se puede reconstruir el coeficiente del bloque de transformada primaria original 8x8. En otras palabras, los datos en forma de un vector 64x1 pueden obtenerse multiplicando la matriz de transformada no separable inversa 64x64 por el vector de coeficiente de transformada 64x1 y, si los datos se clasifican en orden de fila o columna como se aplicaron por primera vez, la señal de bloque 8x8 (coeficiente de transformada primaria) puede reconstruirse. Por lo tanto, el recuento de multiplicación total requerido para la NSST inversa 8x8 es 4.096.
Como se describió anteriormente, cuando se aplica la NSST 8x8, el recuento de multiplicación requerido por unidad de muestra es 64. Este es el número obtenido al dividir el recuento de multiplicación total, 4.096, que se obtiene durante el transcurso del producto interno de cada vector base de transformada y el vector 64X1 entre el número total, 64, de muestras, que es el proceso de realizar la NSST 8x8. El recuento de multiplicación requerido tanto para la NSST directa 8x8 como para la NSST inversa 8x8 es 64.
En el caso de un bloque 16x16, el recuento de multiplicación por muestra requerido al aplicar la NSST 8x8 se determina dependiendo del área donde se haya aplicado la NSST 8x8.
1. Cuando se aplica NSST 8x8 solo al área superior izquierda 8x8: 4096 (recuento de multiplicación necesario para el proceso NSST 8x8) / 256 (recuento total de muestras en bloque 16x16) = 16 muestras/recuento de multiplicación
2. Cuando se aplica NSST 8x8 al área superior izquierda 8x8 y al área superior derecha 8x8: 8192 (recuento de multiplicación necesario para dos NSST 8x8) / 256 (recuento total de muestras en bloque 16x16) = 32 muestras/recuento de multiplicación
3. Cuando se aplica NSST 8x8 a todas las áreas 8x8 en un bloque 16x16: 16384 (recuento de multiplicación necesario para cuatro NSST 8x8) / 256 (recuento total de muestras en bloque 16x16) = 64 muestras/recuento de multiplicación
Como se describió anteriormente, si el tamaño del bloque es grande, el rango de aplicación de la NSST 8x8 para reducir el recuento de multiplicación en el peor de los casos requerido por extremo de muestra puede reducirse.
Cuando se aplica la NSST 8x8, dado que el bloque 8x8 es la TU más pequeña a la que se aplica la NSST 8x8, el caso en el que el tamaño de TU es 8x8 es el peor de los casos en vista del recuento de multiplicación requerido por muestra. En este caso, los siguientes métodos pueden reducir la complejidad del peor de los casos.
Método 1. No aplicar NSST 8x8 a menor TU (es decir, TU 8x8).
Método 2. Aplicar RST 8x8, en lugar de NSST 8x8, a bloques 8x8 (TU 8x8).
Se observó experimentalmente que el método 1 provocó un deterioro significativo del rendimiento de codificación ya que no aplica NSST 8x8. Se reveló que el método 2 pudo reconstruir una señal muy cercana a la señal original mediante la aplicación de una transformada inversa a algunos coeficientes de transformada colocados delante incluso sin usar todos los coeficientes de transformada en vista de las características estadísticas de los elementos del vector de coeficiente de transformada 64x1 y, por lo tanto, pudo mantener la mayor parte del rendimiento de codificación.
Específicamente, en el caso de RST 8x8, cuando la transformada no separable inversa (o directa) 64x64 consta de 16 vectores base de columna, solo quedan L vectores de base de columna y se configura la matriz 64xL. Como L coeficientes de transformada más críticos se dejan solos entre los coeficientes de transformada, el producto de la matriz 64xL y el vector Lx1 puede conducir a la reconstrucción del vector 64x1 que es poco diferente de los datos del vector 64x1 original.
Como resultado, solo L coeficientes involucran la reconstrucción de datos. Así, para obtener el coeficiente de transformada, basta con obtener el vector de coeficientes de transformada Lx1, no el vector de coeficientes de transformada 64x1. Es decir, la matriz de transformada Lx64 se configura seleccionando L vectores de transformada de dirección de fila de la matriz de transformada no separable directa 64x64, y los L coeficientes de transformada se obtienen multiplicando la matriz de transformada Lx64 por el vector de entrada 64x1.
L está sujeto al rango 1 <= L < 64. Generalmente, los L vectores base de transformada pueden seleccionarse entre 64 vectores base de transformada por cualquier método. Sin embargo, puede ser ventajoso en vista de la eficiencia de codificación seleccionar vectores base de transformada con mayor importancia en el aspecto de energía de la señal en vista de la codificación y decodificación como se describieron anteriormente. El recuento de multiplicación del peor de los casos por muestra en el bloque 8x8 según una transformada en el valor L es como se muestra en la tabla 12 a continuación.
[Tabla 12]
Figure imgf000030_0001
Como se describió anteriormente, las RST 8x8 con diferentes valores de L se pueden usar de manera integral como se muestra en la tabla 13 a continuación para reducir la complejidad de la multiplicación en el peor de los casos (sin embargo, el siguiente ejemplo describe las condiciones para aplicar la RST 8x8 bajo las condiciones para aplicar la NSST 8x8 (es decir, cuando el ancho y el alto, ambos, del bloque actual son iguales o mayores que 8)).
[Tabla 13]
Si (ancho de bloque == 8 y alto de bloque == 8)
Aplicar RST 8x8 basado en matriz 8x64 (en donde L es 8)
De lo contrario
Aplicar RST 8x8 basado en matriz 16x64 (en donde L es 16)
Con referencia a la tabla 13, cuando el ancho y el alto, cada uno, del bloque actual son 8, la RST 8x8 basada en matriz 8x64 se aplica al bloque actual, de lo contrario (si el ancho o el alto del bloque actual no es 8), la RST 8x8 basada en matriz 16x64 se puede aplicar al bloque actual. Más específicamente, cuando el tamaño del bloque actual es 8x8, se puede aplicar la transformada no separable con una longitud de entrada de 64 y una longitud de salida de 8, de lo contrario, se puede aplicar una transformada no separable con una longitud de entrada de 64 y una longitud de salida de 16. En el caso de la transformada inversa no separable, cuando el bloque actual es 8x8, se puede aplicar la transformada no separable con una longitud de entrada de 8 y una longitud de salida de 64, en caso contrario se puede aplicar una transformada no separable con una longitud de entrada de 16 y una longitud de salida de 64.
La tabla 14 muestra un ejemplo de aplicación de varias RST 8x8 bajo la condición de aplicar la NSST 8x8 (es decir, cuando el ancho y el alto, ambos, del bloque actual son iguales o mayores que 8).
[Tabla 14]
Figure imgf000030_0002
Con referencia a la tabla 14, cuando el ancho y el alto del bloque actual son 8 cada uno, se aplica la RST 8x8 basada en matriz 8x64 y, si el producto del ancho y el alto del bloque actual es menor que el umbral (TH), la RST 8x8 basada en matriz 16x64 se aplica al área 8x8 superior izquierda del bloque actual y, si el ancho del bloque actual es igual o mayor que el alto, la RST 8x8 basada en matriz 32x64 se aplica al área 4x4 colocada en el área 8x8 superior izquierda del bloque actual, y para el resto (cuando el producto del ancho por el alto del bloque actual es igual o mayor que el umbral y el ancho del bloque actual es menor que el alto), la RST 8x8 basada en matriz 32x64 se aplica al área 8x8 superior izquierda del bloque actual.
La figura 29 es un diagrama de flujo que ilustra un ejemplo de decodificación al que se aplica una transformada según una realización de la divulgación. Las operaciones de la figura 29 pueden realizarse por el transformador 230 inverso del dispositivo 200 de decodificación.
En la etapa S2905, el dispositivo 200 de decodificación determina la longitud de entrada y la longitud de salida de la transformada no separable en función del alto y el ancho del bloque actual. En este caso, si el alto y el ancho, cada uno, del bloque actual es 4, se puede determinar que la longitud de entrada y la longitud de salida de la transformada no separable son 8 y 16, respectivamente. En otras palabras, se puede aplicar la transformada inversa (RST 4x4 inversa basada en matriz 16x8) de la RST 4x4 basada en matriz 8x16. Si cada uno del alto y el ancho de un bloque actual no es igual a 4, la longitud de entrada y la longitud de salida de la transformada no separable se determina como 16.
En la etapa S2910, el dispositivo 200 de decodificación determina la matriz de transformada no separable correspondiente a la longitud de entrada y la longitud de salida de la transformada no separable. Por ejemplo, si la longitud de entrada y la longitud de salida de la transformada no separable son 8 y 16, respectivamente (cuando el tamaño del bloque actual es 4x4), la matriz 16x8 inducida por el núcleo de la transformada puede determinarse como el bloque de transformada no separable y, si la longitud de entrada y la longitud de salida de la transformada no separable son 16 y 16, respectivamente (por ejemplo, cuando el bloque actual es más pequeño que 8x8 pero no 4x4), el núcleo de transformada 16x16 puede determinarse como transformada separable.
Según una realización de la divulgación, el dispositivo 200 de decodificación puede determinar el índice del conjunto de transformada no separable (por ejemplo, el índice NSST) en función del modo de predicción intra del bloque actual, determinar el núcleo de transformada no separable correspondiente al índice de transformada no separable en el conjunto de transformada no separable incluido en el índice del conjunto de transformada no separable, y determinar la matriz de transformada no separable del núcleo de transformada no separable en función de la longitud de entrada y la longitud de salida determinadas en la etapa S2905.
En la etapa S2915, el dispositivo 200 de decodificación aplica la matriz de transformada no separable determinada en el bloque actual al bloque actual. Por ejemplo, si la longitud de entrada y la longitud de salida de la transformada no separable son 8 y 16, respectivamente, la matriz 8x16 inducida por el núcleo de transformada puede aplicarse al bloque actual y, si la longitud de entrada y la longitud de salida de la transformada no separable son 16 y 16, respectivamente, la matriz 16x16 inducida desde el núcleo de transformada puede aplicarse a los coeficientes del área 4x4 superior izquierda del bloque actual.
Para los casos, excepto en los que el alto y el ancho, cada uno, del bloque actual son 4, si el producto del ancho y el alto del bloque actual es menor que el umbral, el dispositivo 200 de decodificación puede aplicar la matriz de transformada no separable al área 4x4 superior izquierda del bloque actual, si el ancho del bloque actual es igual o mayor que el alto, se aplica la matriz de transformada no separable al área 4x4 superior izquierda del bloque actual y al área 4x4 ubicada a la derecha del área 4x4 superior izquierda, y si el producto del ancho y el alto del bloque actual es igual o mayor que el umbral, y el ancho del bloque actual es menor que el alto, se aplica la matriz de transformada no separable en el área 4x4 superior izquierda del bloque actual y el área 4x4 ubicada debajo del área 4x4 superior izquierda.
La figura 30 es un diagrama de bloques que ilustra un dispositivo para procesar señales de video según una realización de la divulgación. El dispositivo 3000 de procesamiento de señales de video de la figura 26 puede corresponder al dispositivo 100 de codificación de la figura 1 o el dispositivo 200 de decodificación de la figura 2.
El dispositivo 3000 de procesamiento de señales de video para procesar señales de video puede incluir una memoria 3020 para almacenar señales de video y un procesador 3010 acoplado con la memoria para procesar señales de video.
Según una realización de la divulgación, el procesador 3010 puede configurarse como al menos un circuito de procesamiento para procesar señales de imagen y puede ejecutar instrucciones para codificar o decodificar señales de imagen para procesar de este modo señales de imagen. En otras palabras, el procesador 3010 puede codificar datos de imagen sin procesar o decodificar señales de imagen codificadas mediante la ejecución de métodos de codificación o decodificación descritos anteriormente.
La figura 31 ilustra un ejemplo de sistema de codificación de video según una realización de la divulgación.
El sistema de codificación de video puede incluir un dispositivo fuente y un dispositivo de recepción. El dispositivo fuente puede transferir información o datos de video/imagen codificados en un archivo o forma de transmisión al dispositivo de recepción a través de un medio de almacenamiento digital o una red.
El dispositivo fuente puede incluir una fuente de video, un dispositivo de codificación y un transmisor. El dispositivo de recepción puede incluir un receptor, un dispositivo de decodificación y un renderizador. El dispositivo de codificación puede denominarse dispositivo de codificación de video/imagen, y el dispositivo de decodificación puede denominarse dispositivo de decodificación de video/imagen. El transmisor puede estar incluido en el dispositivo de codificación. El receptor puede estar incluido en el dispositivo de decodificación. El renderizador puede incluir una unidad de visualización, y la unidad de visualización puede configurarse como un dispositivo independiente o un componente externo.
La fuente de video puede obtener un video/imagen captando, sintetizando o generando el video/imagen. La fuente de video puede incluir un dispositivo de captación de video/imagen y/o un dispositivo de generación de video/imagen. El dispositivo de captación de video/imagen puede incluir, por ejemplo, una o más cámaras y un archivo de video/imagen que incluye videos/imágenes captados previamente. El dispositivo de generación de video/imagen puede incluir, por ejemplo, un ordenador, tableta o teléfono inteligente, y puede generar (electrónicamente) videos/imágenes. Por ejemplo, una imagen/video virtual puede generarse mediante, por ejemplo, un ordenador, en cuyo caso un proceso para generar sus datos relacionados puede reemplazar el proceso de captación de imagen/video.
El dispositivo de codificación puede codificar el vídeo/imagen de entrada. El dispositivo de codificación puede realizar una serie de procesos, tales como predicción, transformación y cuantificación, para la eficiencia de compresión y codificación. Los datos codificados (información de vídeo/imagen codificada) pueden emitirse en forma de flujo de bits.
El transmisor puede transferir la información o datos de vídeo/imagen codificados, que han sido emitidos en forma de flujo de bits, en un archivo o forma de transmisión continua al receptor del dispositivo de recepción a través de un medio o red de almacenamiento digital. Los medios de almacenamiento digital pueden incluir varios tipos de medios de almacenamiento, como USB, SD, CD, DVD, Blu-ray, HDD o SDD. El transmisor puede incluir un elemento para generar archivos de medios en un formato de archivo predeterminado y un elemento para la transmisión a través de una red de transmisión/comunicaciones. El receptor puede extraer el flujo de bits y transferir el flujo de bits al dispositivo de decodificación.
El dispositivo de decodificación puede realizar una serie de procedimientos, tales como cuantificación inversa, transformación inversa y predicción, correspondientes a las operaciones del dispositivo de codificación, que decodifica el video/la imagen.
El renderizador puede renderizar el video/imagen decodificado. El vídeo/imagen renderizado puede visualizarse en la unidad de visualización.
La figura 32 es una vista que ilustra una estructura de un sistema de transmisión convencional según una realización de la divulgación.
El sistema de transmisión de contenido al que se aplica la divulgación puede incluir en gran medida un servidor de codificación, un servidor de transmisión, un servidor web, almacenamiento de medios, un dispositivo de usuario y un dispositivo de entrada multimedia.
El servidor de codificación puede comprimir la entrada de contenido desde dispositivos de entrada multimedia, como teléfonos inteligentes, cámaras o videocámaras, para dar datos digitales, generar un flujo de bits y transmitir el flujo de bits al servidor de transmisión. Como ejemplo, cuando los dispositivos de entrada multimedia, como teléfonos inteligentes, cámaras o videocámaras, generan por sí mismos un flujo de bits, se puede omitir el servidor de codificación.
El flujo de bits puede generarse mediante un método de codificación o generación de flujo de bits al que se aplica la divulgación, y el servidor de transmisión puede almacenar temporalmente el flujo de bits mientras transmite o recibe el flujo de bits.
El servidor de transmisión puede transmitir datos multimedia al dispositivo del usuario en función de una solicitud del usuario a través del servidor web, y el servidor web desempeña un papel como agente para notificar al usuario qué servicios se brindan. Si el usuario envía una solicitud de un servicio deseado al servidor web, el servidor web transfiere la solicitud al servidor de transmisión, y el servidor de transmisión transmite datos multimedia al usuario. El sistema de transmisión de contenido puede incluir un servidor de control independiente, en cuyo caso el servidor de control controla los comandos/respuestas entre los dispositivos en el sistema de transmisión de contenido.
El servidor de transmisión puede recibir contenido desde el almacenamiento de medios y/o el servidor de codificación. Por ejemplo, cuando se recibe contenido desde el servidor de codificación, el contenido puede recibirse en tiempo real. En este caso, para brindar el servicio sin problemas, el servidor de transmisión puede almacenar el flujo de bits durante un tiempo predeterminado.
Ejemplos del dispositivo de usuario pueden incluir teléfonos móviles, teléfonos inteligentes, ordenadores portátiles, terminales de transmisión digital, asistentes digitales personales (PDA), reproductores multimedia portátiles (PMP), dispositivos de navegación, slate PC, tabletas, ultrabooks, dispositivos portátiles, como relojes inteligentes, gafas inteligentes o elementos de visualización montados en la cabeza (HMD), televisores digitales, ordenadores de escritorio o dispositivos de señalización digital.
En el sistema de transmisión de contenido, los servidores pueden ser servidores distribuidos, en cuyo caso los datos recibidos por cada servidor pueden distribuirse y procesarse.
Además, los métodos de procesamiento a los que se aplica la presente divulgación pueden fabricarse en forma de un programa ejecutado por un ordenador y almacenado en medios de grabación legibles por ordenador. Los datos multimedia que tienen la estructura de datos según la presente divulgación también pueden almacenarse en medios de grabación legibles por ordenador. Los medios de grabación legibles por ordenador incluyen todos los tipos de dispositivos de almacenamiento y dispositivos de almacenamiento distribuido en los que se almacenan datos legibles por ordenador. Los medios de grabación legibles por ordenador pueden incluir un disco Blueray (BD), un bus serie universal (USB), una ROM, una PROM, una EEPROM, una RAM, un CD-ROM, una cinta magnética, un disquete y un dispositivo óptico de almacenamiento de datos, por ejemplo. Además, los medios de grabación legibles por ordenador incluyen medios implementados en forma de ondas portadoras (por ejemplo, transmisión a través de Internet). Además, un flujo de bits generado por el método de codificación puede almacenarse en un medio de grabación legible por ordenador o puede transmitirse a través de redes de comunicación por cable/inalámbricas.
Además, las realizaciones de la presente divulgación pueden implementarse como productos de programa informáticos según el código de programa y el código del programa puede ejecutarse en un ordenador según la realización de la presente divulgación. El código de programa puede almacenarse en soportes legibles por ordenador.
Como se describió anteriormente, las realizaciones de la presente divulgación pueden implementarse y ejecutarse en un procesador, un microprocesador, un controlador o un chip. Por ejemplo, las unidades funcionales que se muestran en cada figura pueden implementarse y ejecutarse en un ordenador, un procesador, un microprocesador, un controlador o un chip.
Además, el decodificador y el codificador a los que se aplica la presente divulgación pueden incluirse en aparatos de transmisión/recepción de emisiones multimedia, terminales de comunicación móvil, sistemas de vídeo de cine en casa, sistemas de vídeo de cine digital, cámaras de vigilancia, aparatos de conversación por vídeo, aparatos de comunicación en tiempo real tales como comunicación por video, dispositivos móviles de transmisión, medios de almacenamiento, videocámaras, aparatos que brindan servicios de video bajo demanda (VoD), sistemas de video de transmisión libre (OTT), aparatos que brindan servicios de transmisión por Internet, sistemas de video en 3D, sistemas de video telefónico, sistemas de video médicos, etc. y pueden usarse para procesar señales de video o señales de datos. Por ejemplo, los sistemas de video OTT pueden incluir consolas de juegos, reproductores Blueray, televisores con acceso a Internet, sistemas de cine en casa, teléfonos inteligentes, tabletas, grabadoras de video digital (DVR), etc.
Además, los métodos de procesamiento a los que se aplica la presente divulgación pueden fabricarse en forma de un programa ejecutado por un ordenador y almacenado en medios de grabación legibles por ordenador. Los datos multimedia que tienen la estructura de datos según la presente divulgación también pueden almacenarse en medios de grabación legibles por ordenador. Los medios de grabación legibles por ordenador incluyen todos los tipos de dispositivos de almacenamiento y dispositivos de almacenamiento distribuido en los que se almacenan datos legibles por ordenador. Los medios de grabación legibles por ordenador pueden incluir un disco Blueray (BD), un bus serie universal (USB), una ROM, una PROM, una EEPROM, una RAM, un CD-ROM, una cinta magnética, un disquete y un dispositivo óptico de almacenamiento de datos, por ejemplo. Además, los medios de grabación legibles por ordenador incluyen medios implementados en forma de ondas portadoras (por ejemplo, transmisión a través de Internet). Además, un flujo de bits generado por el método de codificación puede almacenarse en un medio de grabación legible por ordenador o puede transmitirse a través de redes de comunicación por cable/inalámbricas.
Además, las realizaciones de la presente divulgación pueden implementarse como productos de programa informático según el código de programa y el código de programa puede ejecutarse en un ordenador según la realización de la presente divulgación. El código de programa puede almacenarse en soportes legibles por ordenador.
Las realizaciones descritas anteriormente son combinaciones de elementos y características de la presente divulgación. Los elementos o características pueden considerarse selectivos a menos que se indique lo contrario. Cada elemento o característica puede llevarse a la práctica sin combinarse con otros elementos o características. Además, se puede construir una realización de la presente divulgación combinando partes de los elementos y/o características. Las órdenes de operación descritas en las realizaciones de la presente divulgación pueden disponerse de otro modo. Algunas construcciones de cualquiera de las realizaciones pueden incluirse en otra realización y pueden reemplazarse con construcciones correspondientes de otra realización. Es obvio para los expertos en la técnica que las reivindicaciones que no se citan explícitamente entre sí en las reivindicaciones adjuntas pueden presentarse en combinación como una realización de ejemplo o incluirse como una nueva reivindicación mediante una modificación posterior después de que se presente la solicitud.
Las implementaciones de la presente divulgación se pueden lograr por varios medios, por ejemplo, hardware, firmware, software o una combinación de los mismos. En una configuración de hardware, los métodos según las implementaciones de la presente divulgación pueden lograrse mediante uno o más circuitos integrados específicos de aplicación (ASIC), procesadores de señales digitales (DSP), dispositivos de procesamiento de señales digitales (DSPD), dispositivos lógicos programables (PLD), matrices de puertas programables en campo (FPGA), procesadores, controladores, microcontroladores, microprocesadores, etc.
En una configuración de firmware o software, las implementaciones de la presente divulgación pueden implementarse en forma de un módulo, un procedimiento, una función, etc. El código de software puede almacenarse en la memoria y ejecutarse por el procesador. La memoria puede estar ubicada en el interior o exterior del procesador y puede transmitir datos y recibir datos del procesador a través de varios medios conocidos.
Aplicabilidad industrial
Aunque se han descrito aspectos de ejemplo de la presente divulgación con fines ilustrativos, los expertos en la técnica apreciarán que son posibles diversas modificaciones, adiciones y sustituciones, sin alejarse de las características esenciales de la divulgación.

Claims (5)

REIVINDICACIONES
1. Un método para decodificar una señal de imagen, que comprende:
determinar (S2905) una longitud de entrada y una longitud de salida de una transformada no separable en base al alto y el ancho de un bloque actual;
determinar (S2910) una matriz de transformada no separable relacionada con la longitud de entrada y la longitud de salida de la transformada no separable;
realizar (S2915) una transformada secundaria inversa aplicando la matriz de transformada no separable a una serie de coeficientes correspondientes a la longitud de entrada para el bloque actual; y
realizar una transformada primaria inversa en un resultado de la transformada secundaria inversa para obtener muestras residuales del bloque actual,
caracterizado por que
la longitud de entrada y la longitud de salida de la transformada no separable se determinan respectivamente como 8 y 16, en función de que cada uno del alto y el ancho del bloque actual es igual a 4, y
la longitud de entrada y la longitud de salida de la transformada no separable se determinan respectivamente como 16 y 16 y la etapa de realizar (S2915) la transformada secundaria inversa se configura para generar 16 coeficientes de transformada secundaria inversa correspondientes a un área 4x4 superior izquierda del bloque actual, en base a que al menos uno del alto y el ancho del bloque actual no es igual a 4.
2. El método según la reivindicación 1,
en el que determinar (S2910) la matriz de transformada no separable comprende:
cuando el bloque actual está intracodificado, determinar un índice de conjunto de transformada no separable basado en un modo de predicción intra del bloque actual;
determinar un núcleo de transformada no separable relacionado con un índice de transformada no separable en un conjunto de transformada no separable incluido en el índice del conjunto de transformada no separable; y determinar la matriz de transformada no separable a partir de la transformada no separable en función de la longitud de entrada y la longitud de salida.
3. Un método para codificar una señal de imagen, que comprende:
generar muestras residuales de un bloque actual;
realizar una transformada primaria en las muestras residuales del bloque actual para generar coeficientes de transformada primaria del bloque actual;
determinar (S2905) una longitud de entrada y una longitud de salida de una transformada no separable en base al alto y el ancho del bloque actual;
determinar (S2910) una matriz de transformada no separable relacionada con la longitud de entrada y la longitud de salida de la transformada no separable; y
aplicar (S2915) la matriz de transformada no separable a un número de coeficientes correspondientes a la longitud de entrada entre los coeficientes de transformada primaria del bloque actual para generar un número de coeficientes de transformada secundaria correspondientes a la longitud de salida,
caracterizado por que
la longitud de entrada y la longitud de salida de la transformada no separable se determinan respectivamente como 16 y 8, en función de que cada uno del alto y el ancho del bloque actual es igual a 4, y
la longitud de entrada y la longitud de salida de la transformada no separable se determinan respectivamente como 16 y 16 y la etapa de aplicar (S2915) la matriz de transformada no separable está configurada para aplicar la matriz de transformada no separable de tamaño 16x16 a 16 coeficientes de transformada primaria correspondientes a un área 4x4 superior izquierda del bloque actual, en base a que al menos uno del alto y el ancho del bloque actual no es igual a 4.
4. El método según la reivindicación 3, en el que determinar (S2910) la matriz de transformada no separable comprende:
cuando el bloque actual está intracodificado, determinar un índice de conjunto de transformada no separable basado en un modo de predicción intra del bloque actual;
determinar un núcleo de transformada no separable relacionado con un índice de transformada no separable en un conjunto de transformada no separable incluido en el índice del conjunto de transformada no separable; y determinar la matriz de transformada no separable a partir de la transformada no separable en función de la longitud de entrada y la longitud de salida.
5. Un medio de almacenamiento legible por ordenador que tiene almacenada en el mismo información de imagen codificada generada al realizar las etapas de:
generar muestras residuales de un bloque actual;
realizar una transformada primaria en las muestras residuales del bloque actual para generar coeficientes de transformada primaria del bloque actual;
determinar (S2905) una longitud de entrada y una longitud de salida de una transformada no separable en base al alto y el ancho del bloque actual;
determinar (S2910) una matriz de transformada no separable relacionada con la longitud de entrada y la longitud de salida de la transformada no separable; y
aplicar (S2915) la matriz de transformada no separable a un número de coeficientes correspondientes a la longitud de entrada entre los coeficientes de transformada primaria del bloque actual para generar un número de coeficientes de transformada secundaria correspondientes a la longitud de salida,
caracterizado por que
la longitud de entrada y la longitud de salida de la transformada no separable se determinan respectivamente como 16 y 8, en función de que cada uno del alto y el ancho del bloque actual es igual a 4, y
la longitud de entrada y la longitud de salida de la transformada no separable se determinan respectivamente como 16 y 16 y la etapa de aplicar (S2915) la matriz de transformada no separable está configurada para aplicar la matriz de transformada no separable de tamaño 16x16 a 16 coeficientes de transformada primaria correspondientes a un área 4x4 superior izquierda del bloque actual, en base a que al menos uno del alto y el ancho del bloque actual no es igual a 4.
ES19856204T 2018-09-02 2019-09-02 Método para decodificar una señal de imagen, método para codificar una señal de imagen y medio de almacenamiento Active ES2950975T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201862726298P 2018-09-02 2018-09-02
PCT/KR2019/011252 WO2020046086A1 (ko) 2018-09-02 2019-09-02 영상 신호를 처리하기 위한 방법 및 장치

Publications (1)

Publication Number Publication Date
ES2950975T3 true ES2950975T3 (es) 2023-10-17

Family

ID=69645333

Family Applications (1)

Application Number Title Priority Date Filing Date
ES19856204T Active ES2950975T3 (es) 2018-09-02 2019-09-02 Método para decodificar una señal de imagen, método para codificar una señal de imagen y medio de almacenamiento

Country Status (10)

Country Link
US (5) US10924736B2 (es)
EP (3) EP4152748A1 (es)
JP (5) JP7052075B2 (es)
KR (5) KR102585635B1 (es)
CN (3) CN114928745B (es)
BR (1) BR112021003829A2 (es)
ES (1) ES2950975T3 (es)
HU (1) HUE063301T2 (es)
PL (1) PL3723373T3 (es)
WO (1) WO2020046086A1 (es)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112335246B (zh) 2018-06-29 2024-03-12 交互数字Vc控股公司 用于基于适应性系数组的视频编码和解码的方法及设备
EP3831067A1 (en) * 2018-08-03 2021-06-09 V-Nova International Limited Upsampling for signal enhancement coding
JP7052075B2 (ja) * 2018-09-02 2022-04-11 エルジー エレクトロニクス インコーポレイティド 映像信号を処理するための方法および装置
CN116074508A (zh) 2018-09-05 2023-05-05 Lg电子株式会社 对图像信号进行编码/解码的设备及发送图像信号的设备
ES3047711T3 (en) 2018-12-28 2025-12-04 Ericsson Telefon Ab L M Method and apparatus for selecting transform selection in an encoder and decoder
CN113365054B (zh) * 2019-03-09 2022-08-05 杭州海康威视数字技术股份有限公司 进行编码和解码的方法、解码端、编码端和系统
WO2020228670A1 (en) * 2019-05-10 2020-11-19 Beijing Bytedance Network Technology Co., Ltd. Luma based secondary transform matrix selection for video processing
CN117354521A (zh) 2019-06-07 2024-01-05 北京字节跳动网络技术有限公司 视频比特流中的简化二次变换的有条件信令
CN114208183B (zh) 2019-08-03 2025-01-10 北京字节跳动网络技术有限公司 视频的缩减二次变换中基于位置的模式导出
EP4300966A4 (en) * 2021-02-24 2025-03-05 LG Electronics Inc. Image coding method and device therefor
US11792431B2 (en) 2021-04-07 2023-10-17 Tencent America LLC Orthogonal transform generation with subspace constraint
CN117597934A (zh) 2021-06-16 2024-02-23 Lg电子株式会社 用于设计低频不可分离变换的方法和装置
US12581084B2 (en) 2021-06-16 2026-03-17 Lg Electronics Inc. Method and device for designing low-frequency non-separable transform
WO2022265420A1 (ko) * 2021-06-16 2022-12-22 엘지전자 주식회사 영상 코딩 방법 및 그 장치
WO2023191332A1 (ko) * 2022-03-28 2023-10-05 현대자동차주식회사 적응적 다중변환선택을 이용하는 비디오 코딩을 위한 방법 및 장치
EP4697724A1 (en) * 2023-04-12 2026-02-18 LG Electronics Inc. Image encoding/decoding method and apparatus, and recording medium storing bitstreams
CN121002859A (zh) * 2023-04-12 2025-11-21 Lg电子株式会社 图像编码/解码方法和设备及存储比特流的记录介质

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101137065A (zh) * 2006-09-01 2008-03-05 华为技术有限公司 图像编码方法、解码方法、编码器、解码器、编解码方法及编解码器
US8619853B2 (en) * 2007-06-15 2013-12-31 Qualcomm Incorporated Separable directional transforms
KR101672456B1 (ko) * 2009-02-09 2016-11-17 삼성전자 주식회사 저복잡도 주파수 변환을 이용한 비디오 부호화 방법과 그 장치, 및 비디오 복호화 방법과 그 장치
CN102045560B (zh) * 2009-10-23 2013-08-07 华为技术有限公司 一种视频编解码方法及设备
KR20110112168A (ko) * 2010-04-05 2011-10-12 삼성전자주식회사 내부 비트뎁스 확장에 기반한 비디오 부호화 방법 및 그 장치, 내부 비트뎁스 확장에 기반한 비디오 복호화 방법 및 그 장치
SG196792A1 (en) * 2010-07-09 2014-02-13 Samsung Electronics Co Ltd Method and apparatus for encoding video using adjustable loop filtering, and method and apparatus for decoding video using adjustable loop filtering
US9215470B2 (en) * 2010-07-09 2015-12-15 Qualcomm Incorporated Signaling selected directional transform for video coding
KR20120012385A (ko) * 2010-07-31 2012-02-09 오수미 인트라 예측 부호화 장치
JP2012089917A (ja) * 2010-10-15 2012-05-10 Sony Corp 符号化装置および方法、並びにプログラム
US9473789B2 (en) * 2010-12-14 2016-10-18 M&K Holdings Inc. Apparatus for decoding a moving picture
US9609349B2 (en) * 2010-12-14 2017-03-28 M & K Holdings Inc. Apparatus for decoding a moving picture
KR101215152B1 (ko) * 2011-04-21 2012-12-24 한양대학교 산학협력단 인루프 필터링을 적용한 예측 방법을 이용한 영상 부호화/복호화 방법 및 장치
KR101762294B1 (ko) * 2011-10-18 2017-07-28 주식회사 케이티 영상 부호화 방법, 영상 복호화 방법, 영상 부호화기 및 영상 복호화기
KR101601864B1 (ko) * 2014-02-25 2016-03-10 숭실대학교산학협력단 동영상 코덱의 역변환 방법 및 그 장치
TWI551124B (zh) * 2014-07-11 2016-09-21 晨星半導體股份有限公司 應用於視訊系統之編碼/解碼方法及編碼/解碼裝置
US20160044314A1 (en) * 2014-08-08 2016-02-11 Qualcomm Incorporated System and method for reusing transform structure for multi-partition transform
US10412387B2 (en) * 2014-08-22 2019-09-10 Qualcomm Incorporated Unified intra-block copy and inter-prediction
BR112017004886A2 (pt) * 2014-09-12 2017-12-05 Vid Scale Inc dispositivo de codificação de vídeo e método de codificação de vídeo
US10102613B2 (en) * 2014-09-25 2018-10-16 Google Llc Frequency-domain denoising
US20170034530A1 (en) * 2015-07-28 2017-02-02 Microsoft Technology Licensing, Llc Reduced size inverse transform for decoding and encoding
KR102199463B1 (ko) * 2015-08-31 2021-01-06 삼성전자주식회사 스캔 순서를 고려한 영상의 변환 방법 및 그 장치, 및 역변환 방법 및 그 장치
FR3040578A1 (fr) * 2015-08-31 2017-03-03 Orange Procede de codage et de decodage d'images, dispositif de codage et de decodage d'images et programmes d'ordinateur correspondants
US10491922B2 (en) * 2015-09-29 2019-11-26 Qualcomm Incorporated Non-separable secondary transform for video coding
WO2017061671A1 (ko) * 2015-10-08 2017-04-13 엘지전자 주식회사 영상 코딩 시스템에서 적응적 변환에 기반한 영상 코딩 방법 및 장치
ITUB20155295A1 (it) * 2015-10-16 2017-04-16 Torino Politecnico Apparatuses and methods for encoding and decoding images
JP6109354B2 (ja) * 2016-01-20 2017-04-05 株式会社Nttドコモ 画像復号装置、方法及びプログラム
US10349085B2 (en) * 2016-02-15 2019-07-09 Qualcomm Incorporated Efficient parameter storage for compact multi-pass transforms
US10390048B2 (en) * 2016-02-15 2019-08-20 Qualcomm Incorporated Efficient transform coding using optimized compact multi-pass transforms
US10448053B2 (en) * 2016-02-15 2019-10-15 Qualcomm Incorporated Multi-pass non-separable transforms for video coding
WO2017173593A1 (en) * 2016-04-06 2017-10-12 Mediatek Singapore Pte. Ltd. Separate coding secondary transform syntax elements for different color components
US10708164B2 (en) * 2016-05-03 2020-07-07 Qualcomm Incorporated Binarizing secondary transform index
JP6868785B2 (ja) * 2016-05-13 2021-05-12 ソニーグループ株式会社 画像処理装置および方法
US10972733B2 (en) * 2016-07-15 2021-04-06 Qualcomm Incorporated Look-up table for enhanced multiple transform
US10880564B2 (en) * 2016-10-01 2020-12-29 Qualcomm Incorporated Transform selection for video coding
US11095893B2 (en) * 2016-10-12 2021-08-17 Qualcomm Incorporated Primary transform and secondary transform in video coding
JP6792997B2 (ja) * 2016-10-13 2020-12-02 日本放送協会 符号化装置、復号装置及びプログラム
US10609367B2 (en) * 2016-12-21 2020-03-31 Qualcomm Incorporated Low-complexity sign prediction for video coding
KR20180085526A (ko) * 2017-01-19 2018-07-27 가온미디어 주식회사 효율적 변환을 처리하는 영상 복호화 및 부호화 방법
US11134272B2 (en) * 2017-06-29 2021-09-28 Qualcomm Incorporated Memory reduction for non-separable transforms
US10491914B2 (en) * 2018-03-29 2019-11-26 Tencent America LLC Transform information prediction
JP7052075B2 (ja) * 2018-09-02 2022-04-11 エルジー エレクトロニクス インコーポレイティド 映像信号を処理するための方法および装置
US10819979B2 (en) * 2018-09-06 2020-10-27 Tencent America LLC Coupled primary and secondary transform
KR102772255B1 (ko) * 2019-02-01 2025-02-25 엘지전자 주식회사 이차 변환에 기반한 영상 코딩 방법 및 그 장치
US12309405B2 (en) * 2021-04-16 2025-05-20 Tencent America LLC Interaction between transform partitioning and primary/secondary transform type selection

Also Published As

Publication number Publication date
JP2025083568A (ja) 2025-05-30
EP4391535A3 (en) 2024-09-25
HUE063301T2 (hu) 2024-01-28
WO2020046086A1 (ko) 2020-03-05
JP2021510286A (ja) 2021-04-15
US20240089434A1 (en) 2024-03-14
KR20230145221A (ko) 2023-10-17
JP7654043B2 (ja) 2025-03-31
US11109028B2 (en) 2021-08-31
KR102432400B1 (ko) 2022-08-12
US11863746B2 (en) 2024-01-02
JP7780047B2 (ja) 2025-12-03
PL3723373T3 (pl) 2023-11-06
EP3723373A4 (en) 2021-01-20
CN114915784B (zh) 2024-04-19
KR20220115825A (ko) 2022-08-18
US20210360248A1 (en) 2021-11-18
KR20250024119A (ko) 2025-02-18
KR102585635B1 (ko) 2023-10-05
CN114928745A (zh) 2022-08-19
US20200304791A1 (en) 2020-09-24
EP3723373A1 (en) 2020-10-14
JP2026015554A (ja) 2026-01-29
JP7052075B2 (ja) 2022-04-11
KR102765981B1 (ko) 2025-02-07
EP3723373B1 (en) 2023-06-07
KR20200086735A (ko) 2020-07-17
JP7372379B2 (ja) 2023-10-31
JP2023179742A (ja) 2023-12-19
JP2022087154A (ja) 2022-06-09
KR20230145220A (ko) 2023-10-17
EP4152748A1 (en) 2023-03-22
CN114915784A (zh) 2022-08-16
US20210099704A1 (en) 2021-04-01
US20250254306A1 (en) 2025-08-07
BR112021003829A2 (pt) 2021-05-18
US12316843B2 (en) 2025-05-27
EP4391535A2 (en) 2024-06-26
US10924736B2 (en) 2021-02-16
CN111758260B (zh) 2022-07-08
CN114928745B (zh) 2024-04-19
CN111758260A (zh) 2020-10-09
KR102765982B1 (ko) 2025-02-07

Similar Documents

Publication Publication Date Title
ES2950975T3 (es) Método para decodificar una señal de imagen, método para codificar una señal de imagen y medio de almacenamiento
CN116055718B (zh) 设备对图像信号进行编码/解码的方法及比特流发送方法
JP2025118979A (ja) ビデオ信号の符号化/復号方法及びそのための装置