ES2944839T3 - Método para procesar señales de imágenes y medio de almacenamiento legible por ordenador que almacena un flujo de bits generado mediante dicho método - Google Patents

Método para procesar señales de imágenes y medio de almacenamiento legible por ordenador que almacena un flujo de bits generado mediante dicho método Download PDF

Info

Publication number
ES2944839T3
ES2944839T3 ES19854738T ES19854738T ES2944839T3 ES 2944839 T3 ES2944839 T3 ES 2944839T3 ES 19854738 T ES19854738 T ES 19854738T ES 19854738 T ES19854738 T ES 19854738T ES 2944839 T3 ES2944839 T3 ES 2944839T3
Authority
ES
Spain
Prior art keywords
transformation
separable
index
transform
current block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES19854738T
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 ES2944839T3 publication Critical patent/ES2944839T3/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/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/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/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/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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/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/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree 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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • 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/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • 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

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)
  • Television Signal Processing For Recording (AREA)
  • Traffic Control Systems (AREA)
  • Apparatus For Radiation Diagnosis (AREA)

Abstract

Las realizaciones de la presente invención proporcionan un método y un dispositivo para procesar una señal de video. Un método para decodificar una señal de imagen de acuerdo con una realización de la presente invención comprende los pasos de: determinar un índice de conjunto de transformadas no separadas que indica un conjunto de transformadas no separadas usado para una transformada no separada de un bloque actual de entre no-separadas conjuntos de transformación separados predefinidos sobre la base de un modo de predicción intra del bloque actual; determinar, como matriz de transformación no separada, un núcleo de transformación indicado por un índice de transformación no separado para el bloque actual entre los núcleos de transformación incluidos en el conjunto de transformación no separado indicado por el índice del conjunto de transformación no separado; y aplicando la matriz de transformación no separada a una región superior izquierda del bloque actual, (Traducción automática con Google Translate, sin valor legal)

Description

DESCRIPCIÓN
Método para procesar señales de imágenes y medio de almacenamiento legible por ordenador que almacena un flujo de bits generado mediante dicho método
Campo técnico
La presente divulgación se refiere a un método para procesar señales de imágenes y, en particular, a un método para codificar o decodificar señales de imágenes realizando una transformación, y a un medio de almacenamiento legible por ordenador que almacena un flujo de bits generado mediante un método para codificar señales de imágenes.
Antecedentes de la técnica
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 vídeo, 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 vídeo.
El contenido de vídeo de próxima generación tendrá características de una alta resolución espacial, una alta velocidad de fotogramas 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.
XIN ZHAO ET AL: "Joint Separable and Non-Separable Transforms for Next-Generation Video Coding", IEEE TRANSACTIONS ON IMAGE PROCESSING, vol. 27, n.25, 1 de mayo de 2018 (01-05-2018), páginas 2514-2525, XP055688223, US ISSN: 1057-7149, DOI:L 0.1109/ TIP.2018.2802202 propone una transformación primaria separable, llamada transformación múltiple mejorada (EMT), que aplica múltiples núcleos de transformación de un subconjunto predefinido de transformaciones sinusoidales, y donde la selección de transformación se señala a nivel de bloque conjunto. Además, propone un método de transformación secundaria no separable (NSST) para operar en conjunto con la EMT.
KOO M ET AL: ''Description of SDR video coding technology proposal by LG Electronics", 10. JVET MEETING; 20180410 - 20180420; SAN DIEGO; (THE JOINT VIDEO EXPLORATION TEAM OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16), n.0 JVET-J0017 11 de abril de 2018 (11-04-2018), XP030248124, Recuperado de Internet: URL:http://phenix.int-evry.fr/jvet/doc_end_user/documents/10_San Diego/wg11/JVET-J0017-v2.zip JVET-J0017_r1.docx divulga una transformación primaria múltiple y una transformación secundaria reducida, donde se utilizan 35 conjuntos de transformaciones de dos o tres núcleos de transformaciones cada uno para la segunda transformación.
CHEN J ET AL: "Algorithm description of Joint Exploration Test Model 7 (JEM7)", 7. JVET MEETING; 20170713 -20170721; TORINO; (THE JOINT VIDEO EXPLORATION TEAM OF ISO/ IEC JTC1/SC29/WG11 AND ITU-T SG.16), 13-7-2017 - 21-7-2017; TORINO, n.2 G1001_v1; JVET-G1001 19 de agosto de 2017 (19-08-2017), páginas 1-48, XP030150980, Recuperado de Internet: URL:http://phenix.intevry.fr/jvet/doc_end_user/documents/7_Torino/wg11/JVET-G1001-v1 .zip JVET-G1001-v1 .docx [recuperado el 19-08­ 2017] divulga una transformación adaptativa de múltiples núcleos como una transformación primaria seguida de una transformación secundaria no separable dependiente del modo en la que se utilizan 35 conjuntos de transformación de 3 núcleos de transformación cada uno para la transformación secundaria.
Por lo tanto, es necesario diseñar una herramienta de codificación para procesar contenido de vídeo de próxima generación de manera más eficiente. En particular, los estándares de códec de vídeo posteriores al estándar de codificación de vídeo de alta eficiencia (HEVC) requieren una técnica de transformación eficiente para transformar una señal de vídeo de dominio espacial en una señal de dominio de frecuencia junto con una técnica de predicción con mayor precisión.
Divulgación
Problema técnico
Las realizaciones de la presente descripción proporcionan un método de procesamiento de señales de imágenes y, en particular, un método para decodificar una señal de imagen y un método para codificar una señal de imagen que aplica una transformación apropiada a un bloque actual.
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 el presente documento serán evidentes para los expertos en la técnica a partir de la siguiente descripción.
Solución técnica
Un método para decodificar una señal de imagen de acuerdo con una realización de la presente divulgación se divulga en la reivindicación independiente 1.
Un método para codificar una señal de imagen de acuerdo con otra realización de la presente descripción se divulga en la reivindicación independiente 4.
Un medio de almacenamiento legible por ordenador que almacena un flujo de bits generado por un método para codificar una señal de acuerdo con otra realización de la presente divulgación se divulga en la reivindicación independiente 5.
Las reivindicaciones dependientes 2-3 presentan realizaciones ventajosas. La invención se define mediante las reivindicaciones adjuntas.
La divulgación que permite la invención tal como se define en las reivindicaciones se encuentra en las realizaciones asociadas con las tablas 8 y 9. Las realizaciones restantes deben entenderse como ejemplos ilustrativos que no describen partes de la presente invención tal como se define en las reivindicaciones.
Efectos ventajosos
De acuerdo con realizaciones de la presente divulgación, es posible mejorar la eficacia de la transformación determinando y aplicando una transformación adecuada para un 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 el presente documento serán evidentes para los expertos en la técnica a partir de la siguiente descripción.
Descripción de los dibujos
Los dibujos adjuntos, que se incluyen en el presente documento como parte de la descripción para ayudar a comprender la presente divulgación, proporcionan ejemplos de la presente divulgación y describen las características técnicas de la presente divulgación con la descripción a continuación.
La figura 1 muestra un ejemplo de un sistema de codificación de vídeo como una realización a la que se aplica la presente divulgación.
La figura 2 es un diagrama de bloques esquemático de un aparato de codificación que codifica señales de vídeo/imagen como una realización a la que se aplica la presente divulgación.
La figura 3 es un diagrama de bloques esquemático de un aparato de decodificación que decodifica señales de imágenes como una realización a la que se aplica la presente divulgación.
La figura 4 es un diagrama de configuración de un sistema de transmisión de contenido, una realización a la que se aplica la presente divulgación.
La figura 5 muestra realizaciones a las que es aplicable la presente divulgación, la figura 5a es un diagrama para describir una estructura de segmentación de bloques según QT (árbol cuaternario), la figura 5b es un diagrama para describir una estructura de segmentación de bloques según BT (árbol binario) y la figura 5c es un diagrama para describir una estructura de segmentación de bloques según TT (árbol ternario).
Las figuras 6 y 7 muestran realizaciones a las que se aplica la presente divulgación, la figura 6 es un diagrama de bloques esquemático de una unidad de transformación y cuantificación, y una unidad de cuantificación inversa y transformación inversa en un aparato de codificación y la figura 7 es un diagrama de bloques esquemático de una unidad de cuantificación inversa y transformación inversa en un aparato de decodificación.
La figura 8 es un diagrama de flujo que muestra un proceso en el que se realiza una transformación múltiple adaptativa (AMT).
La figura 9 es un diagrama de flujo que muestra un proceso de decodificación en el que se realiza la AMT.
La figura 10 es un diagrama de flujo que muestra un proceso de transformación inversa sobre la base de MTS según una realización de la presente divulgación.
La figura 11 es un diagrama de bloques de un aparato para realizar la decodificación sobre la base de MTS según una realización de la presente divulgación.
Las figuras 12 y 13 son diagramas de flujo que muestran la codificación/descodificación a la que se aplica la transformación secundaria como una realización a la que se aplica la presente divulgación.
Las figuras 14 y 15 muestran una realización a la que se aplica la presente divulgación, la figura 14 es un diagrama para describir la rotación de Givens y la figura 15 muestra una configuración de una ronda en transformación secundaria no separable (NSST) de 4x4 compuesta por capas de rotación de Givens y permutaciones.
La figura 16 muestra el funcionamiento de la transformación secundaria reducida (RST) como una realización a la que se aplica la presente divulgación.
La figura 17 es un diagrama que muestra un proceso de realización de exploración inversa desde el sexagésimo cuarto coeficiente hasta el decimoséptimo coeficiente en orden de exploración inversa como una realización a la que se aplica la presente divulgación.
La figura 18 es un diagrama de flujo de ejemplo que muestra la codificación utilizando un indicador de transformación única (STI) como una realización a la que se aplica la presente divulgación.
La figura 19 es un diagrama de flujo de ejemplo que muestra la codificación utilizando un indicador de transformación unificada (UTI) como una realización a la que se aplica la presente divulgación.
Las figuras 20a y la figura 20b son diagramas de flujo de ejemplo que muestran la codificación usando una UTI como una realización a la que se aplica la presente divulgación.
La figura 21 es un diagrama de flujo de ejemplo que muestra la codificación para realizar la transformación como una realización a la que se aplica la presente divulgación.
La figura 22 es un diagrama de flujo de ejemplo que muestra la decodificación para realizar la transformación como una realización a la que se aplica la presente divulgación.
La figura 23 es un diagrama de bloques detallado que muestra un ejemplo de una unidad de transformación 120 en un aparato de codificación 100 como una realización a la que se aplica la presente divulgación.
La figura 24 es un diagrama de bloques detallado que muestra un ejemplo de una unidad de transformación inversa 230 en un aparato de decodificación 200 como una realización a la que se aplica la presente divulgación.
La figura 25 es un diagrama de flujo para procesar una señal de vídeo como una realización a la que se aplica la presente divulgación.
La figura 26 es un diagrama de bloques de ejemplo de un aparato para procesar una señal de vídeo como una realización a la que se aplica la presente divulgación.
Modo para la invención
Se describen algunas realizaciones de la presente divulgación en detalle con referencia a los dibujos adjuntos. Una 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 divulgación debe entenderse con los significados pretendidos 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 apartarse del espíritu técnico de la presente divulgación. Por ejemplo, las señales, los datos, las muestras, las imágenes, los fotogramas, 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, transformación 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 transformación (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 transformación (TB) para el componente de luminancia. Además, la unidad de procesamiento puede corresponder a un CTB, un CB, un 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.
Además, en la presente descripción, un píxel se denomina una muestra. Además, usar una muestra puede significar usar un valor de píxel o similar.
La figura 1 muestra un ejemplo de un sistema de codificación de video como una realización a la que se aplica la presente divulgación.
El sistema de codificación de vídeo puede incluir un dispositivo fuente 10 y un dispositivo receptor 20. El dispositivo fuente 10 puede transmitir información o datos de vídeo/imagen codificados al dispositivo receptor 20 en forma de archivo o transmisión a través de un medio de almacenamiento digital o una red.
El dispositivo fuente 10 puede incluir una fuente de vídeo 11, un aparato de codificación 12 y un transmisor 13. El dispositivo receptor 20 puede incluir un receptor, un aparato de decodificación 22 y un renderizador 23. El aparato de codificación 12 puede denominarse aparato de codificación de vídeo/imagen y el aparato de decodificación 20 puede denominarse aparato de decodificación de vídeo/imagen. El transmisor 13 puede estar incluido en el aparato de codificación 12. El receptor 21 puede estar incluido en el aparato de decodificación 22. El renderizador 23 puede incluir una pantalla y la pantalla puede configurarse como un dispositivo separado o un componente externo.
La fuente de vídeo puede adquirir un vídeo/imagen a través de un proceso de captura, combinación o generación de vídeo/imagen. La fuente de vídeo puede incluir un dispositivo de captura de vídeo/imagen y/o un dispositivo de generación de vídeo/imagen. El dispositivo de captura de vídeo/imagen puede incluir, por ejemplo, una o más cámaras, un archivo de vídeo/imagen que incluye vídeos/imágenes capturados previamente, y similares. El dispositivo de generación de vídeo/imagen puede incluir, por ejemplo, un ordenador, una tableta, un teléfono inteligente y similares y generar (electrónicamente) un vídeo/imagen. Por ejemplo, se puede generar una imagen/vídeo virtual a través de un ordenador o similar y, en este caso, un proceso de captura de imagen/vídeo se puede reemplazar con un proceso de generación de datos relacionado.
El aparato de codificación 12 puede codificar un vídeo/imagen de entrada. El aparato de codificación 12 puede realizar una serie de procedimientos 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) se pueden generar en forma de flujo de bits.
El transmisor 13 puede transmitir información de vídeo/imagen codificada o salida de datos en forma de flujo de bits al receptor del dispositivo receptor en forma de archivo o transmisión a través de un medio de almacenamiento digital o una red. El medio de almacenamiento digital puede incluir varios medios de almacenamiento, tal como USB, SD, CD, DVD, Blu-ray, HDD y SSD. El transmisor 13 puede incluir un elemento para generar un archivo multimedia a través de un formato de archivo predeterminado y un elemento para la transmisión a través de una red de transmisión/comunicación. El receptor 21 puede extraer un flujo de bits y transmitir el flujo de bits al aparato de decodificación 22.
El aparato de decodificación 22 puede decodificar un vídeo/imagen realizando una serie de procedimientos tales como cuantificación inversa, transformación inversa y predicción correspondientes a la operación del aparato de codificación 12.
El renderizador 23 puede renderizar el vídeo/imagen decodificado. El vídeo/imagen renderizado se puede mostrar a través de una pantalla.
La figura 2 es un diagrama de bloques esquemático de un aparato de codificación que codifica una señal de a vídeo/imagen como una realización a la que se aplica la presente divulgación. El aparato de codificación 100 puede corresponder al aparato de codificación 12 de la figura 1.
Una unidad de partición de imágenes 110 puede dividir una imagen de entrada (o una imagen o un fotograma) de entrada al aparato de codificación 100 en una o más unidades de procesamiento. Por ejemplo, la unidad de procesamiento puede denominarse unidad de codificación (CU). En este caso, la unidad de codificación se puede segmentar recursivamente a partir de una unidad de árbol de codificación (CTU) o una unidad de codificación más grande (LCU) de acuerdo con una estructura de árbol binario y árbol cuádruple (QTBT). Por ejemplo, una sola unidad de codificación se puede segmentar en una pluralidad de unidades de codificación con una mayor profundidad sobre la base de la estructura de árbol cuádruple y/o la estructura de árbol binario. En este caso, se puede aplicar primero la estructura de árbol cuádruple y luego se puede aplicar la estructura de árbol binario. Alternativamente, la estructura de árbol binario puede aplicarse primero. Un procedimiento de codificación según la presente divulgación se puede realizar sobre la base de una unidad de codificación final que ya no está segmentada. En este caso, una unidad de codificación más grande se puede usar directamente como la unidad de codificación final o la unidad de codificación se puede segmentar recursivamente en unidades de codificación con una profundidad más profunda y se puede usar una unidad de codificación que tenga un tamaño óptimo como la unidad de codificación final según sea necesario. sobre la base de la eficiencia de codificación según las características de la imagen. Aquí, el procedimiento de codificación puede incluir procedimientos tales como predicción, transformación y reconstrucción que se describirán más adelante. Alternativamente, la unidad de procesamiento puede incluir además una unidad de predicción (PU) o una unidad de transformación (TU). En este caso, la unidad de predicción y la unidad de transformación pueden segmentarse o dividirse a partir de la unidad de codificación final antes mencionada. La unidad de predicción puede ser una unidad de predicción de muestras y la unidad de transformación puede ser una unidad para obtener un coeficiente de transformación y/o una unidad para obtener una señal residual a partir de un coeficiente de transformación.
Una unidad se puede usar indistintamente con el término "bloque" o "área". Generalmente, un bloque MxN representa un conjunto de muestras o coeficientes de transformación en M columnas y N filas. Una muestra generalmente puede representar un píxel o un valor de píxel y puede representar solo un valor de píxel/píxel de un componente de luminancia o solo un valor de píxel/píxel de un componente de crominancia. La muestra se puede utilizar como término correspondiente a un fotograma (imagen), un píxel o un pel.
El aparato de codificación 100 puede generar una señal residual (un bloque residual o una matriz de muestra residual) restando una señal predicha (un bloque predicho o una matriz de muestra predicha) emitida desde una unidad de interpredicción 180 o una unidad de intrapredicción 185 de una señal de vídeo de entrada (un bloque original o una matriz de muestra original), y la señal residual generada se transmite a la unidad de transformación 120. En este caso, una unidad que sustrae la señal predicha (bloque predicho o matriz de muestra predicha) de la señal de vídeo de entrada (bloque original o matriz de muestra original) en el codificador 100 puede denominarse restador 115, como se muestra. Un predictor puede realizar una predicción en un bloque objetivo de procesamiento (en lo sucesivo denominado bloque actual) y generar un bloque predicho que incluye muestras predichas con respecto al bloque actual. El predictor puede determinar si se aplica intrapredicción o interpredicción al bloque actual o a las unidades de CU. El predictor puede generar varios tipos de información sobre la predicción, tal como información del modo de predicción, y transmitir la información a una unidad de codificación de entropía 190 como se describe más adelante en la descripción de cada modo de predicción. La información sobre la predicción puede codificarse en la unidad de codificación de entropía 190 y emitirse en forma de flujo de bits.
La unidad de intrapredicción 185 puede predecir un bloque actual con referencia a muestras en una imagen actual. Las muestras referidas pueden ser vecinas del bloque actual o pueden estar separadas del mismo de acuerdo con un modo de predicción. En la intrapredicción, los modos de predicción pueden incluir una pluralidad de modos no direccionales y una pluralidad de modos direccionales. Los modos no direccionales pueden incluir un modo de DC y un modo plano, por ejemplo. Los modos direccionales pueden incluir, por ejemplo, 33 modos de predicción direccional o 65 modos de predicción direccional según el grado de minuciosidad de la dirección de predicción. Sin embargo, esto es a modo de ejemplo y se puede usar un número de modos de predicción direccional igual o superior a 65 o igual o inferior a 33 según la configuración. La unidad de intrapredicción 185 puede determinar un modo de predicción para ser aplicado al bloque actual usando un modo de predicción aplicado a bloques vecinos.
La unidad de interpredicción 180 puede derivar un bloque predicho con respecto al bloque actual sobre la base de un bloque de referencia (matriz de muestra de referencia) especificado por un vector de movimiento en una imagen de referencia. Aquí, para reducir la cantidad de información de movimiento transmitida en un modo de interpredicción, la información de movimiento puede predecirse en unidades de bloque, subbloque o muestra sobre la base de la correlación de información de movimiento entre un bloque vecino y el bloque actual. La información de movimiento puede incluir un vector de movimiento y un índice de imagen de referencia. La información de movimiento puede incluir además información de dirección entre predicciones (predicción L0, predicción L1, predicción Bi, etc.). En el caso de la interpredicción, los bloques vecinos pueden incluir un bloque vecino espacial presente en una imagen actual y un bloque vecino temporal presente en una imagen de referencia. La imagen de referencia que incluye el bloque de referencia puede ser igual o diferente de la imagen de referencia que incluye el bloque vecino temporal. El bloque vecino temporal puede denominarse bloque de referencia coubicado o CU coubicada (coICU) y la imagen de referencia que incluye el bloque vecino temporal puede denominarse imagen coubicada (colPic). Por ejemplo, la unidad de interpredicción 180 puede formar una lista de candidatos de información de movimiento sobre la base de bloques vecinos y generar información que indique qué candidato se usa para derivar un vector de movimiento y/o un índice de imagen de referencia del bloque actual. La interpredicción se puede realizar sobre la base de varios modos de predicción, y en el caso de un modo de salto y un modo de combinación, la unidad de interpredicción 180 puede usar información de movimiento de un bloque vecino como información de movimiento del bloque actual. En el caso del modo de salto, una señal residual no puede transmitirse de manera diferente al modo de combinación. En el caso de un modo de predicción de vector de movimiento (MVP), el vector de movimiento del bloque actual se puede indicar utilizando un vector de movimiento de un bloque vecino como predictor de vector de movimiento y señalando una diferencia de vector de movimiento.
Una señal predicha generada a través de la unidad de interpredicción 180 o la unidad de intrapredicción 185 puede usarse para generar una señal reconstruida o una señal residual.
La unidad de transformación 120 puede generar coeficientes de transformación aplicando una técnica de transformación a una señal residual. Por ejemplo, la técnica de transformación puede incluir al menos una de DCT (Transformación de coseno discreta), DST (Transformación de seno discreta), KLT (Transformación de Karhunen-Loeve), GBT (Transformación basada en gráficos) y CNT (Transformación condicionalmente no lineal). Aquí, GBT se refiere a la transformación obtenida de un gráfico que representa información sobre la relación entre píxeles. CNT se refiere a la transformación obtenida sobre la base de una señal predicha generada utilizando todos los píxeles reconstruidos previamente. Además, el proceso de transformación puede aplicarse a bloques de píxeles cuadrados que tengan el mismo tamaño o aplicarse a bloques no cuadrados que tengan tamaños variables.
Una unidad de cuantificación 130 puede cuantificar los coeficientes de transformación y transmitir los coeficientes de transformación cuantificados a la unidad de codificación de entropía 190, y la unidad de codificación de entropía 190 puede codificar una señal cuantificada (información sobre los coeficientes de transformación cuantificados) y emitir la señal codificada como un flujo de bits. La información sobre los coeficientes de transformación cuantificados puede denominarse información residual. La unidad de cuantificación 130 puede reorganizar los coeficientes de transformación cuantificados en forma de bloque en forma de un vector unidimensional sobre la base de un orden de exploración de coeficientes y generar información sobre los coeficientes de transformación cuantificados sobre la base de los coeficientes de transformación cuantificados en la forma de un vector unidimensional. La unidad de codificación de entropía 190 puede ejecutar varios métodos de codificación tales como Golomb exponencial, CAVLC (codificación de longitud variable adaptable al contexto) y CABAC (codificación aritmética binaria adaptable al contexto), por ejemplo. La unidad de codificación de entropía 190 puede codificar información necesaria para la reconstrucción de vídeo/imagen (por ejemplo, valores de elementos de sintaxis y similares) junto con los coeficientes de transformación cuantificados o por separado. La información codificada (por ejemplo, información de vídeo/imagen) puede transmitirse o almacenarse en forma de un flujo de bits en una unidad de capa de abstracción de red (NAL). El flujo de bits puede transmitirse a través de una red o almacenarse en un medio de almacenamiento digital. Aquí, la red puede incluir una red de transmisión y/o una red de comunicación y el medio de almacenamiento digital puede incluir varios medios de almacenamiento tales como USB, SD, CD, DVD, Blu-ray, HDD y SSD. Un transmisor (no mostrado) que transmite la salida de señal de la unidad de codificación de entropía 190 y/o un almacenamiento (no mostrado) que almacena la señal puede configurarse como elementos internos/externos del aparato de codificación 100, y el transmisor puede ser un componente de la unidad de codificación de entropía 190.
Los coeficientes de transformación cuantificados emitidos desde la unidad de cuantificación 130 pueden usarse para generar una señal predicha. Por ejemplo, una señal residual puede reconstruirse aplicando cuantificación inversa y transformación inversa a los coeficientes de transformación cuantificados a través de una unidad de cuantificación inversa 140 y una unidad de transformación inversa 150 en el bucle. Un sumador 155 puede sumar la señal residual reconstruida a la salida de señal predicha de la unidad de interpredicción 180 o la unidad de intrapredicción 185 de modo que se pueda generar una señal reconstruida (imagen reconstruida, bloque reconstruido o matriz de muestra reconstruida). Cuando no hay residuos con respecto a un bloque objetivo de procesamiento como en el caso en el que se aplica el modo de salto, un bloque predicho se puede usar como un bloque reconstruido. El sumador 155 también puede denominarse unidad de reconstrucción o generador de bloques reconstruidos. La señal reconstruida generada se puede usar para la intrapredicción del siguiente bloque objetivo de procesamiento en la imagen actual o se puede usar para la interpredicción de la siguiente imagen a través del filtrado que se describirá más adelante.
Una unidad de filtrado 160 puede mejorar la calidad de imagen subjetiva/objetiva aplicando filtrado a la señal reconstruida. Por ejemplo, la unidad de filtrado 160 puede generar una imagen reconstruida modificada aplicando varios métodos de filtrado a la imagen reconstruida y transmitir la imagen reconstruida modificada a una memoria intermedia de imágenes decodificadas 170. Los diversos métodos de filtrado pueden incluir, por ejemplo, filtrado de desbloqueo, desplazamiento adaptativo de muestra, filtrado de bucle adaptativo y filtrado bilateral. La unidad de filtrado 160 puede generar varios tipos de información acerca del filtrado y transmitir la información a la unidad de codificación de entropía 190 como se describirá más adelante en la descripción de cada método de filtrado. La información sobre el filtrado puede codificarse en la unidad de codificación de entropía 190 y emitirse en forma de flujo de bits.
La imagen reconstruida modificada transmitida a la memoria intermedia de imágenes decodificadas 170 se puede utilizar como imagen de referencia en la unidad de interpredicción 180. En consecuencia, el aparato de codificación puede evitar la falta de coincidencia entre el aparato de codificación 100 y el aparato de decodificación y mejorar la eficiencia de codificación cuando se aplica la interpredicción.
La memoria intermedia de imágenes decodificadas 170 puede almacenar la imagen reconstruida modificada de modo que la imagen reconstruida modificada se utilice como imagen de referencia en la unidad de interpredicción 180.
La figura 3 es un diagrama de bloques esquemático de un aparato de decodificación que realiza la decodificación de una señal de vídeo como una realización a la que se aplica la presente divulgación. El aparato de decodificación 200 de la figura 3 corresponde al aparato de decodificación 22 de la figura 1.
Con referencia a la figura 3, el aparato de decodificación 200 puede incluir una unidad de decodificación de entropía 210, una unidad de cuantificación inversa 220, una unidad de transformación inversa 230, un sumador 235, una unidad de filtrado 240, una memoria intermedia de imágenes decodificadas (DPB) 250, una unidad de interpredicción 260, y una unidad de intrapredicción 265. La unidad de interpredicción 260 y la unidad de intrapredicción 265 pueden llamarse colectivamente predictor. Es decir, el predictor puede incluir la unidad de interpredicción 180 y la unidad de intrapredicción 185. La unidad de cuantificación inversa 220 y la unidad de transformación inversa 230 pueden llamarse colectivamente procesador residual. Es decir, el procesador residual puede incluir la unidad de cuantificación inversa 220 y la unidad de transformación inversa 230. La unidad de decodificación de entropía 210, la unidad de cuantificación inversa 220, la unidad de transformación inversa 230, el sumador 235, la unidad de filtrado 240, la unidad de interpredicción 260 y la unidad de intrapredicción 265 antes mencionadas pueden configurarse como un solo componente de hardware (por ejemplo, un decodificador o un procesador) según una realización. Además, la memoria intermedia de imágenes decodificadas 250 puede configurarse 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 vídeo/imagen, el aparato de decodificación 200 puede reconstruir una imagen a través de un proceso correspondiente al proceso de procesamiento de la información de vídeo/imagen en el aparato de codificación 100 de la figura 2. Por ejemplo, el aparato de decodificación 200 puede realizar la decodificación usando una unidad de procesamiento aplicada en el aparato de codificación 100. En consecuencia, una unidad de procesamiento de decodificación puede ser una unidad de codificación, por ejemplo, y la unidad de codificación puede segmentarse a partir de una unidad de árbol de codificación o una unidad de codificación más grande según una estructura de árbol cuádruple y/o una estructura de árbol binario. Además, una señal de vídeo reconstruida decodificada y emitida por el aparato de decodificación 200 puede reproducirse a través de un aparato de reproducción.
El aparato de decodificación 200 puede recibir una salida de señal del aparato de codificación 100 de la figura 2 en forma de flujo de bits, y la señal recibida se puede decodificar a través de la unidad de decodificación de entropía 210. Por ejemplo, la unidad de decodificación de entropía 210 puede analizar el flujo de bits para derivar información (por ejemplo, información de vídeo/imagen) necesaria para la reconstrucción de imágenes (o reconstrucción de fotogramas). Por ejemplo, la unidad de decodificación de entropía 210 puede decodificar información en el flujo de bits sobre la base de un método de codificación tal como Golomb exponencial, CAVLC o CABAC y valores de elementos de sintaxis de salida necesarios para la reconstrucción de imágenes y valores cuantificados de coeficientes de transformación con respecto al residual. Más específicamente, el método de decodificación de entropía de CABAC recibe un contenedor correspondiente a cada elemento de sintaxis en el flujo de bits, determina un modelo de contexto usando información del elemento de sintaxis de destino de decodificación e información de decodificación de bloques de destino de decodificación vecinos e información sobre símbolos/contenedores decodificados en una etapa anterior, predice la probabilidad de generación de contenedores según el modelo de contexto determinado y realiza la decodificación aritmética de contenedores para generar un símbolo correspondiente a cada valor de elemento de sintaxis. Aquí, el método de decodificación de entropía de CABAC actualiza el modelo de contexto utilizando información sobre símbolos/contenedores decodificados para el siguiente modelo de contexto de símbolo/contenedor después de determinar el modelo de contexto. La información sobre la predicción entre la información decodificada en la unidad de decodificación de entropía 210 se puede proporcionar al predictor (unidad de interpredicción 260 y la unidad de intrapredicción 265) y los valores residuales en los que se ha realizado la decodificación de entropía en la unidad de decodificación de entropía 210 , es decir, los coeficientes de transformación cuantificados y la información de parámetros relacionada pueden ingresarse en la unidad de cuantificación inversa 220. Además, la información sobre el filtrado entre la información decodificada en la unidad de decodificación de entropía 210 se puede proporcionar a la unidad de filtrado 240. Mientras tanto, un receptor (no mostrado) que recibe una salida de señal del aparato de codificación 100 puede configurarse adicionalmente como un elemento interno/externo del aparato de decodificación 200 o el receptor puede ser un componente de la unidad de decodificación de entropía 210.
La unidad de cuantificación inversa 220 puede cuantificar inversamente los coeficientes de transformación cuantificados para producir coeficientes de transformación. La unidad de cuantificación inversa 220 puede reorganizar los coeficientes de transformación cuantificados en forma de un bloque bidimensional. En este caso, la reorganización se puede realizar sobre la base del orden de exploración de coeficientes en el aparato de codificación 100. La unidad de cuantificación inversa 220 puede realizar la cuantificación inversa en los coeficientes de transformación cuantificados usando un parámetro de cuantificación (por ejemplo, información del tamaño de la etapa de cuantificación) y adquirir coeficientes de transformación.
La unidad de transformación inversa 230 transforma inversamente los coeficientes de transformación para obtener una señal residual (bloque residual o matriz de muestra residual).
El predictor puede realizar una predicción en un bloque actual y generar un bloque predicho que incluya muestras predichas con respecto al bloque actual. El predictor puede determinar si se aplica intrapredicción o interpredicción al bloque actual sobre la base de la información sobre la salida de predicción de la unidad de decodificación de entropía 210 y determinar un modo específico de intra/interpredicción.
La unidad de intrapredicción 265 puede predecir el bloque actual con referencia a muestras en una imagen actual. Las muestras referidas pueden ser vecinas del bloque actual o pueden estar separadas del bloque actual según un modo de predicción. En la intrapredicción, los modos de predicción pueden incluir una pluralidad de modos no direccionales y una pluralidad de modos direccionales. La intrapredicción 265 puede determinar un modo de predicción aplicado al bloque actual usando un modo de predicción aplicado a bloques vecinos.
La unidad de interpredicción 260 puede derivar un bloque predicho con respecto al bloque actual sobre la base de un bloque de referencia (matriz de muestra de referencia) especificado por un vector de movimiento en una imagen de referencia. Aquí, para reducir la cantidad de información de movimiento transmitida en el modo de interpredicción, la información de movimiento se puede predecir en unidades de bloque, subbloque o muestra sobre la base de la correlación de la información de movimiento entre un bloque vecino y el bloque actual. La información de movimiento puede incluir un vector de movimiento y un índice de imagen de referencia. La información de movimiento puede incluir además información de dirección entre predicciones (predicción L0, predicción L1, predicción Bi, etc.). En el caso de la interpredicción, los bloques vecinos pueden incluir un bloque vecino espacial presente en una imagen actual y un bloque vecino temporal presente en una imagen de referencia. Por ejemplo, la unidad de interpredicción 260 puede formar una lista de candidatos de información de movimiento sobre la base de bloques vecinos y derivar el vector de movimiento y/o el índice de imagen de referencia del bloque actual sobre la base de la información de selección de candidatos recibida. La interpredicción se puede realizar sobre la base de varios modos de predicción y la información sobre la predicción puede incluir información que indica el modo de interpredicción para el bloque actual.
El sumador 235 puede generar una señal reconstruida (imagen reconstruida, bloque reconstruido o matriz de muestra reconstruida) sumando la señal residual obtenida a la señal predicha (bloque predicho o matriz de muestra predicha) emitida desde la unidad de interpredicción 260 o la unidad de intrapredicción 265. Cuando no hay residuos con respecto al bloque objetivo de procesamiento, como en un caso en el que se aplica el modo de salto, el bloque predicho puede usarse como un bloque reconstruido.
El sumador 235 también puede denominarse unidad de reconstrucción o generador de bloques reconstruidos. La señal reconstruida generada se puede usar para la intrapredicción del siguiente bloque objetivo de procesamiento en la imagen actual o se puede usar para la interpredicción de la siguiente imagen a través del filtrado que se describirá más adelante.
La unidad de filtrado 240 puede mejorar la calidad de imagen subjetiva/objetiva aplicando filtrado a la señal reconstruida. Por ejemplo, la unidad de filtrado 240 puede generar una imagen reconstruida modificada aplicando varios métodos de filtrado a la imagen reconstruida y transmitir la imagen reconstruida modificada a una memoria intermedia de imágenes decodificadas 250. Los diversos métodos de filtrado pueden incluir, por ejemplo, filtrado de desbloqueo, desplazamiento adaptativo de muestra (SAO), filtrado de bucle adaptativo (ALF) y filtrado bilateral.
La imagen reconstruida modificada transmitida a la memoria intermedia de imágenes decodificadas 250 puede ser utilizada como imagen de referencia por la unidad de interpredicción 260.
En la presente descripción, las realizaciones descritas en la unidad de filtrado 160, la unidad de interpredicción 180 y la unidad de intrapredicción 185 del aparato de codificación 100 se pueden aplicar a la unidad de filtrado 240, la unidad de interpredicción 260 y la unidad de intrapredicción 265 del aparato de decodificación de la misma manera o de manera correspondiente.
La figura 4 es un diagrama de configuración de un sistema de transmisión de contenido como una realización a la que se aplica la presente divulgación.
El sistema de transmisión de contenido al que se aplica la presente divulgación puede incluir un servidor de codificación 410, un servidor de transmisión 420, un servidor web 430, un almacenamiento de medios 440, un equipo de usuario 450 y dispositivos de entrada multimedia 460.
El servidor de codificación 410 sirve para comprimir la entrada de contenido desde dispositivos de entrada multimedia tales como un teléfono inteligente, una cámara y una videocámara en datos digitales para generar un flujo de bits y transmitir el flujo de bits al servidor de transmisión 420. Como otro ejemplo, cuando los dispositivos de entrada multimedia 460, tal como un teléfono inteligente, una cámara y una videocámara, generan directamente flujos de bits, el servidor de codificación 410 puede omitirse.
El flujo de bits puede generarse mediante un método de codificación o un método de generación de flujo de bits al que se aplica la presente divulgación y el servidor de transmisión 420 puede almacenar temporalmente el flujo de bits en el proceso de transmisión o recepción del flujo de bits.
El servidor de transmisión 420 transmite datos multimedia al equipo de usuario 450 sobre la base de una solicitud del usuario a través del servidor web 430 y el servidor web 430 sirve como un medio que informa al usuario de los servicios. Cuando el usuario envía una solicitud de un servicio deseado al servidor web 430, el servidor web 430 entrega la solicitud al servidor de transmisión 420 y el servidor de transmisión 420 transmite datos multimedia al usuario. Aquí, el sistema de transmisión de contenido puede incluir un servidor de control adicional y, en este caso, el servidor de control sirve para controlar comandos/respuestas entre dispositivos en el sistema de transmisión de contenido.
El servidor de transmisión 420 puede recibir contenido del almacenamiento de medios 440 y/o el servidor de codificación 410. Por ejemplo, cuando se recibe contenido desde el servidor de codificación 410, el servidor de transmisión 420 puede recibir el contenido en tiempo real. En este caso, el servidor de transmisión 420 puede almacenar flujos de bits durante un tiempo predeterminado para proporcionar un servicio de transmisión fluido.
Ejemplos del equipo de usuario 450 pueden incluir un teléfono celular, un teléfono inteligente, un ordenador portátil, un terminal de transmisión digital, un PDA (asistente digital personal), un PMP (reproductor multimedia portátil), un dispositivo de navegación, un PC de pizarra, un PC de tableta, un ultrabook, un dispositivo portátil (por ejemplo, un reloj inteligente, unas gafas inteligentes y un HMD (pantalla montada en la cabeza)), un televisor digital, un ordenador de escritorio, una señalización digital, etc.
Cada servidor en el sistema de transmisión de contenido puede funcionar como un servidor distribuido y, en este caso, los datos recibidos por cada servidor pueden procesarse de manera distribuida.
La figura 5 muestra realizaciones a las que es aplicable la presente divulgación, la figura 5a es un diagrama para describir una estructura de segmentación de bloques según QT (árbol cuaternario), la figura 5b es un diagrama para describir una estructura de segmentación de bloques según BT (árbol binario) y la figura 5c es un diagrama para describir una estructura de segmentación de bloques según TT (árbol ternario).
En la codificación de vídeo, un solo bloque se puede segmentar sobre la base de QT. Además, un solo subbloque segmentado de acuerdo con QT puede segmentarse recursivamente usando QT. Un bloque de hojas que ya no está segmentado según QT puede segmentarse usando al menos uno de BT, TT y AT. BT puede tener dos tipos de segmentación: BT horizontal (2NxN, 2NxN); y BT vertical (Nx2N, Nx2N). TT puede tener dos tipos de segmentación: TT horizontal (2Nx1/2N, 2NxN, 2Nx1/2N); y TT vertical (1/2Nx2N, Nx2N, 1/2Nx2N). AT puede tener cuatro tipos de segmentación: 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 tipo de BT, TT y AT se puede segmentar recursivamente usando BT, TT y AT.
La figura 5a muestra un ejemplo de segmentación de QT. Un bloque A se puede segmentar en cuatro subbloques A0, A1, A2 y A3 según QT. El subbloque A1 se puede segmentar aún más en cuatro subbloques B0, B1, B2 y B3 según QT.
La figura 5b muestra un ejemplo de segmentación de BT. El bloque B3 que ya no está segmentado según QT puede segmentarse en BT vertical (C0 y C1) o BT horizontal (D0 y D1). Cada subbloque, tal como el bloque C0, puede segmentarse recursivamente en BT horizontal (E0 y E1) o BT vertical (F0 y F1).
La figura 5c muestra un ejemplo de segmentación de TT. El bloque B3 que ya no está segmentado según QT puede segmentarse en TT vertical (C0, C1 y C2) o TT horizontal (D0, D1 y D2). Cada subbloque, tal como el bloque C1, puede segmentarse recursivamente en TT horizontal (E0, E1 y E2) o TT vertical (F0, F1 y F2).
La figura 5d muestra un ejemplo de segmentación de AT. El bloque B3 que ya no está segmentado según QT puede segmentarse en AT vertical (C0 y C1) o AT horizontal (D0 y D1). Cada subbloque, tal como el bloque C1, puede segmentarse recursivamente en AT horizontal (E0 y E1) o TT vertical (F0 y F1).
Mientras tanto, la segmentación BT, TT y AT se puede utilizar de forma combinada. Por ejemplo, un subbloque segmentado según BT puede segmentarse según TT o AT. Además, un subbloque segmentado según TT puede segmentarse según BT o AT. Un subbloque segmentado según AT puede segmentarse según BT o TT. Por ejemplo, cada subbloque puede segmentarse en BT vertical después de la segmentación de BT horizontal o cada subbloque puede segmentarse en BT horizontal después de la segmentación de BT vertical. En este caso, las formas finalmente segmentadas son idénticas, aunque los órdenes de segmentación son diferentes.
Además, cuando se segmenta un bloque, se puede definir un orden de búsqueda de bloques de varias maneras. En general, la búsqueda se realiza de izquierda a derecha y de arriba a abajo, y la búsqueda de bloques puede significar el orden de determinar si cada subbloque segmentado se segmentará adicionalmente, un orden de codificación de subbloques cuando los subbloques ya no estén segmentados, o un orden de búsqueda cuando un subbloque se refiere a información de otros bloques vecinos.
La transformación se puede realizar en unidades de procesamiento (o bloques de transformación) segmentados de acuerdo con las estructuras de segmentación como se muestra en las figuras 5a a 5d, y en particular, la segmentación se puede realizar en una dirección de fila y una dirección de columna y se puede aplicar una matriz de transformación. De acuerdo con una realización de la presente divulgación, se pueden usar diferentes tipos de transformación según la longitud de una unidad de procesamiento (o bloque de transformación) en la dirección de la fila o en la dirección de la columna.
La transformación se aplica a los bloques residuales para descorrelacionar los bloques residuales tanto como sea posible, concentrar los coeficientes en una frecuencia baja y generar una cola cero al final de un bloque. Una parte de transformación en el software JEM incluye dos funciones principales (transformación central y transformación secundaria). La transformación central se compone de familias de transformación de coseno discreta (DCT) y de transformación de seno discreta (DST) aplicadas a todas las filas y columnas de un bloque residual. A partir de entonces, la transformación secundaria se puede aplicar adicionalmente a la esquina superior izquierda de la salida de la transformación central. De manera similar, la transformación inversa se puede aplicar en el orden de la transformación secundaria inversa y la transformación central inversa. Primero, la transformación secundaria inversa se puede aplicar a la esquina superior izquierda de un bloque de coeficientes. Luego, la transformación central inversa se aplica a las filas y columnas de la salida de la transformación secundaria inversa. La transformación central o la transformación inversa pueden denominarse transformación primaria o transformación inversa.
Las figuras 6 y 7 muestran realizaciones a las que se aplica la presente divulgación, la figura 6 es un diagrama de bloques esquemático de una unidad de transformación y cuantificación 120/130, y una unidad de cuantificación inversa y transformación inversa 140/150 en el aparato de codificación 100 y la figura 7 es un diagrama de bloques esquemático de una unidad de transformación inversa y cuantificación inversa 220/230 en el aparato de decodificación 200.
Con referencia a la figura 6, la unidad de transformación y cuantificación 120/130 puede incluir una unidad de transformación primaria 121, una unidad de transformación secundaria 122 y una unidad de cuantificación 130. La unidad de cuantificación inversa y transformación inversa 140/150 puede incluir una unidad de cuantificación inversa 140, una unidad de transformación secundaria inversa 151 y una unidad de transformación primaria inversa 152.
Con referencia a la figura 7, la unidad de cuantificación inversa y transformación inversa 220/230 puede incluir una unidad de cuantificación inversa 220, una unidad de transformación secundaria inversa 231 y una unidad de transformación primaria inversa 232.
En la presente divulgación, la transformación se puede realizar a través de una pluralidad de etapas. Por ejemplo, se pueden aplicar dos estados de transformación primaria y transformación secundaria como se muestra en la figura 6 o más de dos etapas de transformación se pueden usar de acuerdo con los algoritmos. Aquí, la transformación primaria puede denominarse transformación central.
La unidad de transformación primaria 121 puede aplicar la transformación primaria a una señal residual. Aquí, la transformación primaria puede estar predefinida como una tabla en un codificador y/o un decodificador.
La unidad de transformación secundaria 122 puede aplicar una transformación secundaria a una señal transformación principalmente. Aquí, la transformación secundaria puede estar predefinida como una tabla en el codificador y/o el decodificador.
En una realización, la transformación secundaria no separable (NSST) puede aplicarse condicionalmente como transformación secundaria. Por ejemplo, NSST se aplica solo a bloques de intrapredicción y puede tener un conjunto de transformación aplicable por grupo de modo de predicción.
Aquí, un grupo de modo de predicción se puede establecer sobre la base de la simetría con respecto a una dirección de predicción. Por ejemplo, el modo de predicción 52 y el modo de predicción 16 son simétricos sobre la base del modo de predicción 34 (dirección diagonal) y, por lo tanto, se puede generar un grupo y se le puede aplicar el mismo conjunto de transformaciones. Aquí, cuando se aplica la transformación para el modo de predicción 52, los datos de entrada se transponen y luego se aplica la transformación porque un conjunto de transformación del modo de predicción 52 es el mismo que el del modo de predicción 16.
En el caso del modo plano y el modo DC, no hay simetría con respecto a las direcciones y, por lo tanto, tienen conjuntos de transformaciones respectivos y un conjunto de transformaciones correspondiente puede estar compuesto por dos transformaciones. Cada conjunto de transformaciones puede estar compuesto por tres transformaciones para los restantes modos direccionales.
La unidad de cuantificación 130 puede realizar la cuantificación en una señal transformada secundariamente.
La unidad de cuantificación inversa y transformación inversa 140/150 realiza el procedimiento inverso al mencionado anteriormente y se omite la descripción redundante.
La figura 7 es un diagrama de bloques esquemático de la unidad de transformación inversa y cuantificación inversa 220/230 en el aparato de decodificación 200.
Con referencia a la figura 7, la unidad de cuantificación inversa y transformación inversa 220/230 puede incluir la unidad de cuantificación inversa 220, la unidad de transformación secundaria inversa 231 y la unidad de transformación primaria inversa 232.
La unidad de cuantificación inversa 220 obtiene coeficientes de transformación a partir de una señal decodificada por entropía usando información del tamaño de la etapa de cuantificación.
La unidad de transformación secundaria inversa 231 realiza la transformación secundaria inversa en los coeficientes de transformación. Aquí, la transformación secundaria inversa se refiere a la transformación inversa de la transformación secundaria descrita en la figura 6.
La unidad de transformación primaria inversa 232 realiza la transformación primaria inversa en la señal (o bloque) transformación secundariamente inversamente y obtiene una señal residual. Aquí, la transformación primaria inversa se refiere a la transformación inversa de la transformación primaria descrita en la figura 6.
Además de DCT-2 y 4x4 DST-4 aplicados a HEVC, la transformación múltiple adaptativa o la transformación múltiple explícita) (AMT o EMT) se utiliza para la codificación residual de bloques intercodificados e intracodificados. Se utiliza una pluralidad de transformaciones seleccionadas de familias DCT/DST además de transformaciones en HEVC. Las matrices de transformación recientemente introducidas en JEM son DST-7, DCT-8, DST-1 y DCT-5. La siguiente tabla 1 muestra las funciones básicas del DST/DCT seleccionado.
Tabla 1
Figure imgf000012_0001
La EMT se puede aplicar a CU que tiene un ancho y una altura igual o inferior a 64 y si se aplica EMT se puede controlar mediante un indicador de nivel de CU. Cuando el indicador de nivel de CU es 0, se aplica DCT-2 a las CU para codificar residuos. Se señalan dos indicadores adicionales para identificar las transformaciones horizontales y verticales que se utilizarán para un bloque de codificación de luminancia en una CU a la que se aplica EMT. Al igual que en HEVC, el residuo de un bloque se puede codificar en un modo de salto de transformación en JEM. Para la codificación intraresidual, se utiliza un proceso de selección de candidatos de transformación dependiente del modo debido a otras estadísticas residuales de otros modos de intrapredicción. Se definen tres subconjuntos de transformación como se muestra en la siguiente tabla 2 y se selecciona un subconjunto de transformación sobre la base de un modo de intrapredicción como se muestra en la Tabla 3.
Tabla 2
Figure imgf000012_0002
Junto con el concepto de subconjunto, un subconjunto de transformación se confirma inicialmente sobre la base de la Tabla 2 mediante el uso del modo de intrapredicción de una CU que tiene un nivel de CU EMT_CU_indicador de 1. Posteriormente, para cada transformación horizontal EMT_TU_horizontal_indicador) y vertical (EMT_TU_vertical_indicador), se selecciona uno de los dos candidatos de transformación en el subconjunto de transformación confirmado sobre la base de señalización explícita utilizando indicadores de acuerdo con la Tabla 3.
Tabla 3
Figure imgf000013_0002
Tabla 4
Figure imgf000013_0001
La Tabla 4 muestra un grupo de configuración de transformación al que se aplica la transformación múltiple adaptativa (AMT) como una realización a la que se aplica la presente divulgación.
Haciendo referencia a la Tabla 4, los grupos de configuración de transformación se determinan sobre la base de un modo de predicción y el número de grupos puede ser 6 (G0 a G5). Además, G0 a G4 corresponden a un caso en el que se aplica la intrapredicción y G5 representa combinaciones de transformación (o conjunto de transformación o conjunto de combinación de transformación) aplicadas a un bloque residual generado de acuerdo con interpredicción.
Una combinación de transformación puede estar compuesta por una transformación horizontal (o transformación de fila) aplicada a las filas de un bloque 2D correspondiente y una transformación vertical (o transformación de columna) aplicada a columnas del mismo.
Aquí, cada uno de los grupos de configuración de transformación puede tener cuatro candidatos de combinación de transformación. Los cuatro candidatos de combinación de transformación pueden seleccionarse o determinarse utilizando los índices de combinación de transformación 0 a 3 y un índice de combinación de transformación puede codificarse y transmitirse desde un codificador a un decodificador.
En una realización, los datos residuales (o la señal residual) obtenidos a través de la intrapredicción pueden tener diferentes características estadísticas según los modos de intrapredicción. En consecuencia, se pueden aplicar transformaciones distintas de la transformación de coseno normal para las intrapredicciones respectivas, como se muestra en la Tabla 4. En la presente descripción, un tipo de transformación puede representarse como DCT-Tipo 2, DCT-II o DCT-2, por ejemplo.
Haciendo referencia a la Tabla 4, se muestra un caso en el que se utilizan 35 modos de intrapredicción y un caso en el que se utilizan 67 modos de intrapredicción. Puede aplicarse una pluralidad de combinaciones de transformación para cada grupo de configuración de transformación clasificado en cada columna de modo de intrapredicción. Por ejemplo, una pluralidad de combinaciones de transformaciones puede estar compuesta por cuatro combinaciones (de transformaciones en la dirección de las filas y transformaciones en la dirección de las columnas). Como ejemplo específico, DST-7 y DCT-5 se pueden aplicar al grupo 0 tanto en la dirección de la fila (horizontal) como en la dirección de la columna (vertical) y, por lo tanto, se pueden aplicar un total de cuatro grupos.
Dado que se puede aplicar un total de cuatro combinaciones de núcleos de transformación a cada modo de intrapredicción, se puede transmitir un índice de combinación de transformación para seleccionar uno de ellos por unidad de transformación. En la presente descripción, un índice de combinación de transformación puede denominarse índice de AMT y puede representarse mediante amt_idx.
Además, se puede generar un caso en el que DCT-2 sea óptimo tanto para la dirección de la fila como para la dirección de la columna debido a las características de una señal residual además de los núcleos de transformación que se muestran en la Tabla 4. En consecuencia, la transformación se puede aplicar de forma adaptativa definiendo un indicador de AMT para cada unidad de codificación. Aquí, DCT-2 se puede aplicar tanto a la dirección de la fila como a la dirección de la columna cuando el indicador de AMT es 0 y se puede seleccionar o determinar una de las cuatro combinaciones a través de un índice de AMT cuando el indicador de AMT es 1.
En una realización, si el número de coeficientes de transformación es inferior a 3 para una unidad de transformación cuando el indicador de AMT es 0, los núcleos de transformación de la Tabla 4 no se aplican y DST-7 se puede aplicar tanto en la dirección de la fila como en la dirección de la columna.
En una realización, si los valores de los coeficientes de transformación se analizan previamente y, por lo tanto, el número de coeficientes de transformación es inferior a 3, no se analiza un índice de AMT y se aplica DST-7 y, por lo tanto, se puede reducir la cantidad de transmisión de información adicional.
En una realización, AMT se puede aplicar solo cuando tanto la anchura como la altura de una unidad de transformación son iguales o menores que 32.
En una realización, la Tabla 4 se puede preestablecer mediante entrenamiento fuera de línea.
En una realización, el índice de AMT se puede definir como un índice que puede indicar una combinación de transformación horizontal y transformación vertical. Alternativamente, el índice de AMT se puede definir como un índice de transformación horizontal y un índice de transformación vertical separados.
La figura 8 es un diagrama de flujo que muestra un proceso de realización de transformación múltiple adaptativa (AMT).
Aunque en la presente descripción se describe básicamente una realización con respecto a la transformación separable que se aplica por separado en la dirección horizontal y en la dirección vertical, una combinación de transformaciones puede estar compuesta por transformaciones no separables.
Alternativamente, una combinación de transformaciones puede configurarse como una mezcla de transformaciones separables y transformaciones no separables. En este caso, la selección de transformación de fila/columna o la selección en la dirección horizontal/vertical es innecesaria cuando se usa transformación separable y las combinaciones de transformaciones de la Tabla 4 pueden usarse solo cuando se selecciona transformación separable.
Además, los métodos propuestos en la presente descripción se pueden aplicar independientemente de la transformación primaria y de la transformación secundaria. Es decir, los métodos se pueden aplicar a ambas transformaciones. Aquí, la transformación primaria puede referirse a la transformación para transformar inicialmente un bloque residual y la transformación secundaria puede referirse a la transformación para aplicar la transformación a un bloque generado como resultado de la transformación primaria.
Primero, el aparato de codificación 100 puede determinar un grupo de transformación correspondiente a un bloque actual (S805). Aquí, el grupo de transformación puede referirse a un grupo de transformación de la Tabla 4, pero la presente divulgación no se limita al mismo y el grupo de transformación puede estar compuesto por otras combinaciones de transformación.
El aparato de codificación 100 puede realizar la transformación en combinaciones de transformación candidatas disponibles en el grupo de transformación (S810). Como resultado de la transformación, el aparato de codificación 100 puede determinar o seleccionar una combinación de transformación con un coste (S815) de tasa de distorsión (RD) más bajo. El aparato de codificación 100 puede codificar un índice de combinación de transformación correspondiente a la combinación de transformación seleccionada (S820).
La figura 9 es un diagrama de flujo que muestra un proceso de decodificación para realizar AMT.
Primero, el aparato de decodificación 200 puede determinar un grupo de transformación para el bloque actual (S905). El aparato de decodificación 200 puede analizar un índice de combinación de transformación, y el índice de combinación de transformación puede corresponder a una de una pluralidad de combinaciones de transformación en el grupo de transformación (S910). El aparato de decodificación 200 puede derivar una combinación de transformación correspondiente al índice de combinación de transformación (S915). Aquí, aunque la combinación de transformaciones puede referirse a una combinación de transformaciones que se muestra en la Tabla 4, la presente divulgación no se limita a ella. Es decir, la combinación de transformación puede configurarse como otras combinaciones de transformación.
El aparato de decodificación 200 puede realizar una transformación inversa en el bloque actual sobre la base de la combinación de transformación (S920). Cuando la combinación de transformación se compone de transformación de fila y una transformación de columna, se puede aplicar la transformación de fila y luego la transformación de columna. Sin embargo, la presente divulgación no se limita a ello, y la transformación de fila se puede aplicar después de aplicar la transformación de columna, y cuando la combinación de transformación se compone de transformaciones no separables, se puede aplicar inmediatamente una transformación no separable.
En otra realización, el proceso de determinación de un grupo de transformación y el proceso de análisis sintáctico de un índice de combinación de transformación pueden realizarse simultáneamente.
En la realización de la presente divulgación, el término "AMT" mencionado anteriormente puede redefinirse como "conjunto de transformación múltiple o selección de transformación múltiple (MTS)". La sintaxis y la semántica relacionadas con MTS que se describen a continuación se resumen en Codificación de vídeo versátil (VVC) JVET-K1001 -v4.
En una realización de la presente divulgación, se pueden usar dos candidatos de MTS para modos direccionales y se pueden usar cuatro candidatos de MTS para modos no direccionales como sigue.
A) Modos no direccionales (DC y plano)
DST-7 se usa para transformaciones horizontales y verticales cuando el índice de MTS es 0.
DST-7 se usa para transformación vertical y DCT-8 se usa para transformación horizontal cuando el índice de MTS es 1.
DCT-8 se usa para la transformación vertical y DST-7 se usa para las transformaciones horizontales cuando el índice de MTS es 2.
DCT-8 se usa para transformaciones horizontales y verticales cuando el índice de MTS es 3.
B) Modos pertenecientes a los modos del grupo horizontal
DST-7 se usa para transformaciones horizontales y verticales cuando el índice de MTS es 0.
DCT-8 se usa para la transformación vertical y DST-7 se usa para las transformaciones horizontales cuando el índice de MTS es 1.
C) Modos pertenecientes a los modos del grupo vertical
DST-7 se usa para transformaciones horizontales y verticales cuando el índice de MTS es 0.
DST-7 se usa para transformación vertical y DCT-8 se usa para transformación horizontal cuando el índice de MTS es 1.
Aquí (en VTM 2.0 en el que se utilizan 67 modos), los modos del grupo horizontal incluyen los modos de intrapredicción 2 a 34 y los modos verticales incluyen los modos de intrapredicción 35 a 66.
En otra realización de la presente divulgación, se utilizan tres candidatos de MTS para todos los modos de intrapredicción.
DST-7 se usa para transformaciones horizontales y verticales cuando el índice de MTS es 0.
DST-7 se usa para transformación vertical y DCT-8 se usa para transformación horizontal cuando el índice de MTS es 1.
DCT-8 se usa para la transformación vertical y DST-7 se usa para las transformaciones horizontales cuando el índice de MTS es 2.
En otra realización de la presente divulgación, se usan dos candidatos de MTS para modos de predicción direccional y tres candidatos de MTS para modos no direccionales.
A) Modos no direccionales (DC y plano)
DST-7 se usa para transformaciones horizontales y verticales cuando el índice de MTS es 0.
DST-7 se usa para transformación vertical y DCT-8 se usa para transformación horizontal cuando el índice de MTS es 1.
DCT-8 se usa para la transformación vertical y DST-7 se usa para las transformaciones horizontales cuando el índice de MTS es 2.
B) Modos de predicción correspondientes a los modos de grupo horizontal
DST-7 se usa para transformaciones horizontales y verticales cuando el índice de MTS es 0.
DCT-8 se usa para la transformación vertical y DST-7 se usa para las transformaciones horizontales cuando el índice de MTS es 1.
C) Modos de predicción correspondientes a los modos del grupo vertical
DST-7 se usa para transformaciones horizontales y verticales cuando el índice de MTS es 0.
DST-7 se usa para transformación vertical y DCT-8 se usa para transformación horizontal cuando el índice de MTS es 1.
En otra realización de la presente divulgación, se puede usar un candidato de MTS (por ejemplo, DST-7) para todos los intramodos. En este caso, el tiempo de codificación se puede reducir en un 40 % con una pequeña pérdida de codificación. Además, se puede usar un indicador para indicar entre DCT-2 y DST-7.
La figura 10 es un diagrama de flujo que muestra un proceso de transformación inversa sobre la base de MTS según una realización de la presente divulgación.
El aparato de decodificación 200 al que se aplica la presente divulgación puede obtener el indicador habilitado para sps_mts_intra o sps_mts_inter_indicador_habilitado (S1005). Aquí, el indicador habilitado para sps_mts_intra indica si cu_mts_indicador está presente en una sintaxis de codificación residual de una unidad de intracodificación. Por ejemplo, cu_mts_indicador no está presente en la sintaxis de codificación residual de la unidad de intracodificación si sps_mts_intra_indicador_habilitado = 0 y cu_mts_indicador está presente en la sintaxis de codificación residual de la unidad de intracodificación si sps_mts_intra_indicador_habilitado = 1. Además, sps_mts_inter_indicador_habilitado indica si cu_mts_indicador está presente en una sintaxis de codificación residual de una unidad de intercodificación. Por ejemplo, cu_mts_indicador no está presente en la sintaxis de codificación residual de la unidad de intercodificación si sps_mts_inter indicador habilitado = 0 y cu_mts_indicador está presente en la sintaxis de codificación residual de la unidad de intercodificación si sps_mts_inter_indicador_habilitado = 1.
El aparato de decodificación 200 puede obtener cu_mts_indicador sobre la base de sps_mts_intra_indicador_habilitado o sps_mts_inter indicador habilitado (S1010). Por ejemplo, el aparato de decodificación 200 puede obtener cu_mts_indicador cuando sps_mts_intra_indicador_habilitado = 1 o sps_mts_inter_indicador_habilitado = 1. Aquí, cu_mts_indicador indica si MTS se aplica a una muestra residual de un bloque de transformación luma. Por ejemplo, MTS no se aplica a la muestra residual del bloque de transformación luma si cu_mts_indicador = 0 y MTS se aplica a la muestra residual del bloque de transformación luma si cu_mts_indicador = 1.
El aparato de decodificación 200 puede obtener mts_idx sobre la base de cu_mts_indicador (S1015). Por ejemplo, cuando cu_mts_indicador = 1, el aparato de decodificación 200 puede obtener mts_idx. Aquí, mts_idx indica qué núcleo de transformación se aplica a las muestras residuales de luminancia de un bloque de transformación actual en la dirección horizontal y/o en la dirección vertical.
Por ejemplo, al menos una de las realizaciones descritas en la presente descripción se puede aplicar a mts_idx.
El aparato de decodificación 200 puede derivar un núcleo de transformación correspondiente a mts_idx (S1020). Por ejemplo, el núcleo de transformación correspondiente a mts_idx se puede definir por separado como transformación horizontal y transformación vertical.
Por ejemplo, cuando se aplica MTS al bloque actual (es decir, cu_mts_indicador = 1), el aparato de decodificación 200 puede configurar candidatos de MTS sobre la base del modo de intrapredicción del bloque actual. En este caso, el diagrama de flujo de decodificación de la figura 10 puede incluir además una etapa de configuración de candidatos de MTS. Entonces, el aparato de decodificación 200 puede determinar un candidato de MTS para ser aplicado al bloque actual de entre los candidatos de MTS configurados usando mts_idx.
Como otro ejemplo, se pueden aplicar diferentes núcleos de transformación a la transformación horizontal y la transformación vertical. Sin embargo, la presente divulgación no se limita a ello y el mismo núcleo de transformación se puede aplicar a la transformación horizontal y a la transformación vertical.
El aparato de decodificación 200 puede realizar una transformación inversa sobre la base del núcleo de transformación (S1025).
Además, en la memoria descriptiva, MTS puede representarse como AMT o EMT y mts_idx puede representarse como AMT_idx, EMT_idx, AMT TU_idx EMT TU_idx o similar, pero la presente divulgación no se limita a ello.
La figura 11 es un diagrama de bloques de un aparato que realiza la decodificación sobre la base de MTS según una realización de la presente divulgación.
El aparato de decodificación 200 al que se aplica la presente divulgación puede incluir una unidad de adquisición de parámetros de secuencia 1105, una unidad de adquisición de indicadores de MTS 1110, una unidad de adquisición de índices de MTS 1115 y una unidad de obtención de núcleo de transformación 1120.
La unidad de adquisición de parámetros secuenciales 1105 puede adquirir sps_mts_intra_indicador_habilitado o sps_mts_inter_indicador_habilitado. Aquí, sps_mts_intra_indicador_habilitado indica si cu_mts_indicador está presente en una sintaxis de codificación residual de una unidad de codificación interna y sps_mts_inter_indicador_habilitado indica si cu_mts_indicador está presente en una sintaxis de codificación residual de una unidad de codificación interna. La descripción con referencia a la figura 10 puede aplicarse a un ejemplo específico.
La unidad de adquisición de indicadores de MTS 1110 puede adquirir cu_mts_indicador sobre la base del indicador habilitado sps_mts_intra o el indicador habilitado sps_mts_inter. Por ejemplo, la unidad de adquisición de indicadores de MTS 1110 puede adquirir cu_mts_indicador cuando sps_mts_intra_indicador_habilitado = 1 o sps_mts_inter_indicador_habilitado = 1. Aquí, cu_mts_indicador indica si MTS se aplica a una muestra residual de un bloque de transformación luma. La descripción con referencia a la figura 10 puede aplicarse a un ejemplo específico.
La unidad de adquisición de índices de MTS 1115 puede adquirir mts_idx sobre la base de cu_mts_indicador. Por ejemplo, la unidad de adquisición de índices de MTS 1115 puede adquirir mts_idx cuando cu_mts_indicador = 1. Aquí, mts_idx indica qué núcleo de transformación se aplica a las muestras residuales de luminancia del bloque de transformación actual en la dirección horizontal y/o en la dirección vertical. La descripción con referencia a la figura 10 puede aplicarse a un ejemplo específico.
La unidad de derivación del núcleo de transformación 1120 puede derivar un núcleo de transformación correspondiente a mts_idx. Entonces, el aparato de decodificación 200 puede realizar la transformación inversa sobre la base del núcleo de transformación derivado.
Se introduce la transformación secundaria no separable dependiente del modo (MDNSST). Para mantener una baja complejidad, MDNSST se aplica solo a coeficientes de baja frecuencia después de la transformación primaria. Además, la transformación no separable aplicada principalmente a coeficientes de baja frecuencia puede denominarse LFNST (transformación no separable de baja frecuencia). Si tanto la anchura (W) como la altura (H) de un bloque de coeficientes de transformación son iguales o mayores que 8, se aplica una transformación secundaria no separable de 8x8 a una región superior izquierda de 8x8 del bloque de coeficientes de transformación. La transformación secundaria no separable 4x4 se aplica si la anchura o la altura es inferior a 8, y la transformación secundaria no separable 4x4 se puede realizar en la parte superior izquierda min(8, W) x min(8, H) del bloque de coeficientes de transformación . Aquí, min(A, B) es una función de generar un valor más pequeño entre A y B. Además, WxH es el tamaño del bloque, W representa la anchura y H representa la altura.
Puede haber un total de 35x3 transformaciones secundarias no separables para tamaños de bloque 4x4 y 8x8. Aquí, 35 es el número de conjuntos de transformación especificados por los modos de intrapredicción y 3 es el número de candidatos de NSST para cada modo de predicción. El mapeo de los modos de intrapredicción a los conjuntos de transformación se puede definir en la siguiente tabla 5.
Tabla 5
Figure imgf000018_0001
Para indicar un núcleo de transformación entre conjuntos de transformación, se puede codificar un índice de NSST (NSST idx). Cuando no se aplica NSST, se señala el índice de NSST igual a 0.
Las figuras 12 y 13 son diagramas de flujo que muestran la codificación/descodificación a la que se aplica la transformación secundaria como una realización a la que se aplica la presente divulgación.
En JEM, la transformación secundaria (MDNSST) no se aplica a un bloque codificado con modo de salto de transformación. Cuando el índice de MDNSST se señala para una CU y no es igual a cero, MDNSST no se usa para un bloque de un componente que está codificado con el modo de salto de transformación en la CU. La estructura de codificación conjunta que incluye la codificación de coeficientes y la codificación del índice de NSST se muestra en las figuras 12 y 13. Se codifica un indicador de CBF para determinar si se realizan la codificación de coeficientes y la codificación de NSST. En las figuras 12 y 13, el indicador de CBF puede representar un indicador de cbg de bloque de luminancia (indicador cbf_luminancia) o un indicador de cbf de bloque crominancia (indicador de cbf_cb o indicador de cbf_cr). Cuando el indicador de CBF es 1, se codifican los coeficientes de transformación.
Con referencia a la figura 12, el aparato de codificación 100 comprueba si CBF es 1 (S1205). Si CBF es 0, el aparato de codificación 100 no realiza la codificación del coeficiente de transformación ni la codificación del índice de NSST. Si CBF es 1, el aparato de codificación 100 realiza la codificación de los coeficientes de transformación (S1210). Posteriormente, el aparato de codificación 100 determina si realizar la codificación de índice de NSST (S1215) y realiza la codificación de índice de NSST (S1220). Cuando no se aplica la codificación de índice de NSST, el aparato de codificación 100 puede finalizar el procedimiento de transformación sin aplicar NSST y realizar la etapa posterior (por ejemplo, cuantificación).
Con referencia a la figura 13, el aparato de decodificación 200 comprueba si CBF es 1 (S1305). Si CBF es 0, el aparato de decodificación 200 no realiza la decodificación del coeficiente de transformación ni la decodificación del índice de NSST. Si CBF es 1, el aparato de decodificación 200 realiza la decodificación de los coeficientes de transformación (S1310). Posteriormente, el aparato de decodificación 200 determina si realizar la codificación del índice de NSST (S1315) y analizar un índice de NSST (S1320).
NSST se puede aplicar a una región superior izquierda de 8x8 o 4x4 en lugar de aplicarse a todo el bloque (TU en el caso de HEVC) al que se ha aplicado la transformación primaria. Por ejemplo, NSST de 8x8 se puede aplicar cuando el tamaño de un bloque es de 8x8 o más y NSST de 4x4 se puede aplicar cuando el tamaño de un bloque es inferior a 8x8. Además, cuando se aplica NSST de 8x8, se puede aplicar NSST de 4x4 por bloque de 4x4. Tanto NSST de 8x8 como NSST de 4x4 se pueden determinar de acuerdo con la configuración del conjunto de transformación descrita anteriormente, y NSST de 8x8 puede tener 64 piezas de datos de entrada y 64 piezas de datos de salida y NSST de 4x4 puede tener 16 entradas y 16 salidas porque no son transformaciones separables.
Las figuras 14 y 15 muestran una realización a la que se aplica la presente divulgación, la figura 14 es un diagrama para describir la rotación de Givens y la figura 15 muestra una configuración de una ronda en NSST de 4x4 compuesta por permutaciones y capas de rotación de Givens.
Tanto NSST de 8x8 como NSST de 4x4 se pueden configurar como combinaciones jerárquicas de rotaciones de Givens. Una matriz correspondiente a una rotación de Givens se representa como la expresión matemática 1 y un producto de matriz se representa como la figura 14.
[Expresión matemática 1]
Figure imgf000019_0002
En la figura 14, las salidas tm y Tn según la rotación de Givens se pueden calcular como se representa en la expresión matemática 2.
[Expresión matemática 2]
tm = xm cos G - Xn sen G
tn = Xm sen G - Xn cos G
Dado que la rotación de Givens rota dos piezas de datos como se muestra en la figura 14, se requieren 32 u 8 rotaciones de Givens para procesar 64 (en el caso de NSST de 8x8) o 16 (en el caso de NSST de 4x4) piezas de datos. En consecuencia, un grupo de 32 u 8 rotaciones de Givens puede formar una capa de rotación de Givens. Como se muestra en la figura 15, los datos de salida para una capa de rotación de Givens se transmiten como datos de entrada para la siguiente capa de rotación de Givens mediante permutación (reorganización). Un patrón permutado, tal como se muestra en la figura 15 se define regularmente, y en el caso de NSST de 4x3, cuatro capas de rotación de Givens y las permutaciones correspondientes forman una ronda. NSST de 4x4 se realiza en dos rondas y NSST de 8x8 se realiza en cuatro rondas. Aunque diferentes rondas usan el mismo patrón de permutación, los ángulos de rotación de Givens aplicados son diferentes. En consecuencia, es necesario almacenar los datos de ángulo para todas las rotaciones de Givens que constituyen cada permutación.
Como etapa final, finalmente se realiza una permutación más en la salida de datos a través de las capas de rotación de Givens, y la información sobre la permutación correspondiente se almacena por separado para cada permutación. La permutación correspondiente se realiza al final del NSST directo y la permutación inversa correspondiente se aplica inicialmente en el NSST inverso.
El NSST inverso realiza inversamente las capas de rotación de Givens y las permutaciones aplicadas al NSST directo y realiza la rotación tomando un valor negativo para cada ángulo de rotación de Given.
RST (Transformada secundaria reducida)
La figura 16 muestra el funcionamiento de RST como una realización a la que se aplica la presente divulgación.
Cuando una matriz ortogonal que representa una transformación es NxN, una transformación reducida (RT) deja solo R de N vectores básicos de transformación (R<N). Una matriz con respecto al RT directo que genera coeficientes de transformación se puede definir mediante la expresión matemática 3.
[Expresión matemática 3]
Figure imgf000019_0001
Dado que una matriz con respecto a la RT inversa es una matriz transpuesta de una matriz RT directa, la aplicación de la RT directa y la RT inversa se esquematiza como se muestra en las figuras 14a y 14b.
RT aplicado a un bloque superior izquierdo de 8x8 de un bloque de coeficientes de transformación al que se ha aplicado la transformación primaria puede denominarse RST de 8x8. Cuando R se establece en 16 en la Expresión matemática 3, el RST directo de 8x8 tiene una forma de matriz de 16x64 y el RST inverso de 8x8 tiene una forma de matriz de 64x16. Además, la configuración del conjunto de transformación que se muestra en la Tabla 5 se puede aplicar al RST de 8x8. Es decir, el RST de 8x8 se puede determinar sobre la base de conjuntos de transformación de acuerdo con los modos de intrapredicción, como se muestra en la Tabla 5. Dado que un conjunto de transformaciones se compone de dos o tres transformaciones según un modo de intrapredicción, se puede seleccionar una de un máximo de cuatro transformaciones, incluyendo un caso en el que no se aplica la transformación secundaria (una transformación puede corresponder a una matriz anisotrópica). Cuando se asignan los índices 0, 1,2 y 3 a las cuatro transformaciones, se puede designar una transformación a aplicar señalando un elemento de sintaxis correspondiente a un índice de NSST para cada bloque de coeficientes de transformación. Por ejemplo, el índice 9 puede asignarse a una matriz anisotrópica, es decir, un caso en el que no se aplica la transformación secundaria. En consecuencia, NSST de 8x8 se puede designar de acuerdo con NSST de JEM y RST de 8x8 se puede designar de acuerdo con la configuración de RST para un bloque superior izquierdo de 8x8 a través del índice de NSST.
La figura 17 es un diagrama que muestra un proceso de realización de exploración inversa desde el sexagésimo cuarto coeficiente hasta el decimoséptimo coeficiente en orden de exploración inversa como una realización a la que se aplica la presente divulgación.
Cuando se aplica RST de 8x8 representado por la expresión matemática 3, se generan 16 coeficientes de transformación válidos y, por lo tanto, 64 piezas de datos de entrada que constituyen una región de 8x8 se reducen a 16 piezas de datos de salida y solo una cuarta parte de la región se llena con coeficientes de transformación válidos de acuerdo con el punto de vista de la región bidimensional. En consecuencia, las 16 piezas de datos de salida obtenidos aplicando RST de 8x8 hacia adelante llenan una región superior izquierda de la figura 17.
En la figura 17, una región superior izquierda de 4x4 se convierte en una región de interés (ROI) llena de coeficientes de transformación válidos y la región restante está vacía. La región vacía se puede llenar con 0 como valor predeterminado. Si se descubren coeficientes de transformación válidos distintos de cero en regiones distintas de la ROI de la figura 17, el RST de 8x8 no se ha aplicado definitivamente y, por lo tanto, se puede omitir la codificación correspondiente para el índice de NSST correspondiente. Por otra parte, si no se descubren coeficientes de transformación válidos distintos de cero en regiones distintas de la ROI de la figura 17 (se aplica RST de 8x8 o las regiones distintas de la ROI se rellenan con 0), el índice de NSST puede codificarse porque es posible que se aplique RST de 8x8. Tal codificación de índice de NSST condicional requiere verificar la presencia o ausencia de un coeficiente de transformación distinto de cero y, por lo tanto, puede realizarse después del proceso de codificación residual.
La figura 18 es un diagrama de flujo de ejemplo que muestra la codificación utilizando un indicador de transformación única como una realización a la que se aplica la presente divulgación.
En una realización de la presente divulgación, se introduce el indicador de transformación única (STI). Se puede aplicar una sola transformación cuando el STI está habilitado (codificación STI == 1) en lugar de usar dos transformaciones secuencialmente (transformación primaria y transformación secundaria). Aquí, la transformación única puede ser cualquier tipo de transformación. Por ejemplo, la transformación única puede ser una transformación separable o una transformación no separable. La transformación única puede ser una transformación aproximada de una transformación no separable. Un solo índice de transformación (ST_idx en la figura 18) se puede señalar cuando se ha habilitado el STI. Aquí, el índice de transformación único puede indicar una forma de transformación que se aplicará entre los candidatos de transformación disponibles.
Con referencia a la figura 18, el aparato de codificación 100 determina si CBF es 1 (S1805). Cuando CBF es 1, el aparato de codificación 100 determina si se aplica la codificación de STI (S1810). Cuando se aplica la codificación de STI, el aparato de codificación 100 codifica un índice de STI STI_idx (S1845) y realiza la codificación sobre el coeficiente de transformación (S1850). Cuando no se aplica la codificación de STI, el aparato de codificación 100 codifica un indicador EMT_CU_Indicador que indica si se aplica EMT (o MTS) en un nivel de CU (S1815). Posteriormente, el aparato de codificación 100 realiza la codificación de los coeficientes de transformación (S1820). Luego, el aparato de codificación 100 determina si se aplica el EMT a una unidad de transformación (TU) (S1825). Cuando se aplica el EMT a la TU, el aparato de codificación 100 codifica un índice de transformación primario EMT_TU Idx aplicado a la TU (S1830). Posteriormente, el aparato de codificación 100 determina si se aplica NSST (S1835). Cuando se aplica NSST, el aparato de codificación 100 codifica un índice NSST_Idx que indica que se va a aplicar NSST (S1840).
En un ejemplo, si se satisfacen/habilitan las condiciones de codificación de transformación única (por ejemplo, codificación_STI == 1), el índice de transformación única ST_Idx puede derivarse implícitamente en lugar de señalizarse. ST_idx se puede determinar implícitamente sobre la base de un tamaño de bloque y un modo de intrapredicción. Aquí, ST_Idx puede indicar una transformación (o núcleo de transformación) aplicada al bloque de transformación actual.
El STI se puede habilitar si se cumplen una o más de las siguientes condiciones (codificación_STI == 1).
1) El tamaño del bloque corresponde a un valor predeterminado tal como 4 u 8.
2) Anchura del bloque == Altura del bloque (bloque cuadrado)
3) El modo de intrapredicción es uno de los modos predeterminados tales como los modos de DC y plano.
En otro ejemplo, el indicador de codificación de STI se puede señalizar para indicar si se aplica la transformación única. El indicador de codificación de STI se puede señalizar sobre la base de un valor de codificación de STI y CBF. Por ejemplo, el indicador de codificación de STI se puede señalar cuando CBF es 1 y la codificación de STI está habilitada. Además, el indicador de codificación de STI puede señalizarse condicionalmente considerando un tamaño de bloque, una forma de bloque (bloque cuadrado o bloque no cuadrado) o un modo de intrapredicción.
Para usar la información adquirida durante la codificación de coeficientes, ST_idx puede determinarse después de la codificación de coeficientes. En un ejemplo, ST_idx puede determinarse implícitamente sobre la base de un tamaño de bloque, un modo de intrapredicción y el número de coeficientes distintos de cero. En otro ejemplo, ST_idx se puede codificar/decodificar condicionalmente sobre la base de un tamaño de bloque, una forma de bloque, un modo de intrapredicción y/o el número de coeficientes distintos de cero. En otro ejemplo, la señalización ST_idx puede omitirse dependiendo de una distribución de coeficientes distintos de cero (es decir, posiciones de coeficientes distintos de cero). En particular, cuando se descubren coeficientes distintos de cero en una región que no sea una región superior izquierda de 4x4, se puede omitir la señalización de ST_idx.
La figura 19 es un diagrama de flujo de ejemplo que muestra la codificación utilizando un indicador de transformación unificada (UTI) como una realización a la que se aplica la presente divulgación.
En una realización de la presente divulgación, se introduce el indicador de transformación unificada. El UTI incluye un indicador de transformación principal y un indicador de transformación secundario.
Con referencia a la figura 19, el aparato de codificación 100 determina si CBF es 1 (S1905). Cuando CBF es 1, el aparato de codificación 100 determina si se aplica la codificación de UTI (S1910). Cuando se aplica la codificación de UTI, el aparato de codificación 100 codifica un índice de UTI UTI_idx (S1945) y realiza la codificación en el coeficiente de transformación (S1950). Cuando no se aplica la codificación de UTI, el aparato de codificación 100 codifica el indicador EMT_CU_Indicador que indica si se aplica EMT (o MTS) en el nivel de CU (S1915). Posteriormente, el aparato de codificación 100 realiza la codificación de los coeficientes de transformación (S1920). Luego, el aparato de codificación 100 determina si se aplica el EMT a una unidad de transformación (TU) (S1925). Cuando se aplica el EMT a la TU, el aparato de codificación 100 codifica un índice de transformación primario EMT_TU Idx aplicado a la TU (S1930). Posteriormente, el aparato de codificación 100 determina si se aplica NSST (S1935). Cuando se aplica NSST, el aparato de codificación 100 codifica un índice NSST_Idx que indica que se va a aplicar NSST (S1940).
El UTI puede codificarse para cada unidad predeterminada (CTU o CU).
El modo de codificación de UTI puede depender de las siguientes condiciones.
1) Tamaño del bloque
2) Forma de bloque
3) Modo de intrapredicción
Cómo derivar/extraer un índice de transformación central del UTI se define de antemano. Cómo derivar/extraer un índice de transformación secundario del UTI se define de antemano.
Se puede utilizar opcionalmente una estructura de sintaxis para el UTI. El UTI puede depender del tamaño de una CU (TU). Por ejemplo, una CU (TU) más pequeña puede tener un índice de UTI en un intervalo más estrecho. En un ejemplo, el UTI puede indicar solo el índice de transformación central si se cumple una condición predefinida (por ejemplo, el tamaño de un bloque es menor que un valor de umbral predefinido).
Tabla 6
Figure imgf000021_0001
En otro ejemplo, el índice de UTI se puede considerar como el índice de transformación principal cuando no se indica que se utilice la transformación secundaria (por ejemplo, el índice de transformación secundaria ==0 o la transformación secundaria ya está predeterminada). De la misma manera, el índice de UTI puede considerarse como un índice de transformación secundario cuando se considera que se conoce el índice de transformación central. Específicamente, considerando el modo de intrapredicción y el tamaño del bloque, se puede usar una transformación de núcleo predeterminada.
Las figuras 20a y la figura 20b son diagramas de flujo de ejemplo que muestran la codificación usando el UTI como una realización a la que se aplica la presente divulgación.
En otro ejemplo, la estructura de codificación de transformación puede usar codificación de índice de UTI como se muestra en las figuras 20a y 20b. Aquí, el índice de UTI puede codificarse antes que la codificación de coeficientes o después de la codificación de coeficientes.
Con referencia a la figura 20a, el aparato de codificación 100 comprueba si CBF es 1 (S2005). Cuando CBF es 1, el aparato de codificación 100 codifica el índice de UTI UTI_idx (S2010) y realiza la codificación de los coeficientes de transformación (S2015).
Con referencia a la figura 20b, el aparato de codificación 100 comprueba si CBF es 1 (S2055). Cuando CBF es 1, el aparato de codificación 100 realiza la codificación de los coeficientes de transformación (S2060) y codifica el índice de UTI UTI_idx (S2065).
En otra realización de la presente divulgación, se introducen métodos de ocultación de datos y codificación implícita para indicadores de transformación. Aquí, los indicadores de transformación pueden incluir ST_idx, UTI_idx, EMT CU_Indicador, EMT TU_Indicador, NSST_Idx y cualquier tipo de índice relacionado con la transformación que pueda usarse para indicar un núcleo de transformación. El indicador de transformación mencionado anteriormente puede no señalizarse, pero la información correspondiente puede insertarse en un proceso de codificación de coeficientes (puede extraerse durante un proceso de codificación de coeficientes). El proceso de codificación de coeficientes puede incluir las siguientes partes.
• Última_posición_x, Última_posición_y
• Indicador de grupo
• Mapa de significado
• Indicador Mayor_que_1
• Indicador Mayor_que_2
• Codificación de nivel restante
• Codificación de signos
Por ejemplo, la información del indicador de transformación puede insertarse en uno o más de los procesos de codificación de coeficientes mencionados anteriormente. Para insertar la información del indicador de transformación, se pueden considerar los siguientes en conjunto.
Patrón de codificación de signo
El valor absoluto del nivel restante
El número del indicador Mayor_than_1
Los valores de Última_posición_X y Última_posición_Y
El método de ocultación de datos mencionado anteriormente puede considerarse condicionalmente. Por ejemplo, el método de ocultación de datos puede depender del número de coeficientes distintos de cero.
En otro ejemplo, NSST_idx y EMT_idx pueden ser dependientes. Por ejemplo, NSST_idx puede no ser cero cuando EMT_CU_Indicador es igual a cero (o uno). En este caso, se puede señalar NSST_idx -1 en lugar de NSST_idx.
En otra realización de la presente divulgación, se introduce el mapeo de conjuntos de transformación de NSST basado en el modo de intrapredicción, como se muestra en la siguiente tabla 7. Aunque NSST se describe a continuación como un ejemplo de transformación no separable, se puede usar otra terminología conocida (por ejemplo, LFNST) para la transformación no separable. Por ejemplo, el conjunto de NSST y el índice de NSST pueden reemplazarse con el conjunto de LFNST y el índice de LFNST. Además, el RST descrito en esta memoria descriptiva también se puede reemplazar con LFNST como un ejemplo de transformación no separable (por ejemplo, LFNST) utilizando una matriz de transformación no cuadrada que tiene una longitud de entrada reducida y/o una longitud de salida reducida en una matriz cuadrada de transformación no separable aplicada a al menos una región (región superior izquierda de 4x4 u 8x8 o una región distinta de una región inferior derecha de 4x4 en un bloque de 8x8) de un bloque de transformación.
Tabla 7
Figure imgf000023_0001
El número de conjunto de NSST se reorganiza de 0 a 3 como se muestra en la Tabla 8.
Tabla 8
Figure imgf000023_0002
En el conjunto de transformación de NSST, solo se utilizan cuatro conjuntos de transformación (en lugar de 35) para que se pueda reducir el espacio de memoria necesario.
Además, se pueden usar varios números de núcleos de transformación por conjunto de transformación de la siguiente manera.
Caso A: Se utilizan dos núcleos de transformación disponibles para cada conjunto de transformación, de modo que el intervalo del índice de NSST va de 0 a 2. Por ejemplo, cuando el índice de NSST es 0, es posible que no se aplique la transformación secundaria (transformación secundaria inversa basada en un decodificador). Cuando el índice de NSST es 1 o 2, se puede aplicar una transformación secundaria. El conjunto de transformación incluye dos núcleos de transformación a los que se puede asignar un índice 1 o 2.
Tabla 9
Figure imgf000023_0003
Con referencia a la Tabla 9, se utilizan dos núcleos de transformación para cada conjunto de transformación no separable (NSST o LFNST) 0 a 3.
Caso B: Se utilizan dos núcleos de transformación disponibles para el conjunto de transformación 0 y uno se utiliza para los demás. Los índices de NSST disponibles para el conjunto de transformación 0 (DC y Plano) son de 0 a 2. Sin embargo, los índices de NSST para otros modos (conjuntos de transformación 1,2 y 3) son de 0 a 1.
Tabla 10
Figure imgf000023_0004
Con referencia a la Tabla 10, se establecen dos núcleos de transformación no separables para un conjunto de transformación no separable (NSST) correspondiente al índice 0 y un núcleo de transformación no separable se establece para cada conjunto de transformación no separable (NSST) correspondiente a los índices 1, 2 y 3.
Caso C: Se usa un núcleo de transformación por núcleo de transformación y el intervalo del índice de NSST es de 0 a 1.
Tabla 11
Figure imgf000024_0001
La figura 21 es un diagrama de flujo de ejemplo que muestra la codificación para realizar la transformación como una realización a la que se aplica la presente divulgación.
El aparato de codificación 100 realiza una transformación primaria en un bloque residual (S2105). La transformación primaria puede denominarse transformación central. Como realización, el aparato de codificación 100 puede realizar la transformación primaria utilizando el MTS mencionado anteriormente. Además, el aparato de codificación 100 puede transmitir un índice de MTS que indica un MTS específico de entre los candidatos de MTS al aparato de decodificación 200. Aquí, los candidatos de MTS pueden configurarse sobre la base del modo de intrapredicción del bloque actual.
El aparato de codificación 100 determina si aplicar la transformación secundaria (S2110). Por ejemplo, el aparato de codificación 100 puede determinar si aplicar la transformación secundaria sobre la base de los coeficientes de transformación del bloque residual transformado principalmente. Por ejemplo, la transformación secundaria puede ser NSST o RST.
El aparato de codificación 100 determina la transformación secundaria (S2115). Aquí, el aparato de codificación 100 puede determinar la transformación secundaria sobre la base de un conjunto de transformaciones de NSST (o RST) designado según el modo de intrapredicción.
Por ejemplo, el aparato de codificación 100 puede determinar una región a la que se aplicará la transformación secundaria sobre la base del tamaño del bloque actual antes de la etapa S2115.
El aparato de codificación 100 realiza la transformación secundaria determinada en la etapa S2115 (S2120).
La figura 22 es un diagrama de flujo de ejemplo que muestra la decodificación para realizar la transformación como una realización a la que se aplica la presente divulgación.
El aparato de decodificación 200 determina si aplicar la transformación secundaria inversa (S2205). Por ejemplo, la transformación secundaria inversa puede ser NSST o RST. Por ejemplo, el aparato de decodificación 200 puede determinar si aplicar la transformación secundaria inversa sobre la base de un indicador de transformación secundaria recibido desde el aparato de codificación 100.
El aparato de decodificación 200 determina la transformación secundaria inversa (S2210). Aquí, el aparato de decodificación 200 puede determinar la transformación secundaria inversa aplicada al bloque actual sobre la base del conjunto de transformaciones de NSST (o RST) designado según el modo de intrapredicción mencionado anteriormente.
Además, por ejemplo, el aparato de decodificación 200 puede determinar una región a la que se aplicará la transformación secundaria inversa sobre la base del tamaño del bloque actual antes de la etapa S2210.
El aparato de decodificación 200 realiza una transformación secundaria inversa en un bloque residual cuantificado inversamente utilizando la transformación secundaria inversa determinada en la etapa S2210 (S2215).
El aparato de decodificación realiza una transformación primaria inversa en el bloque residual transformado secundariamente de manera inversa (S2220). La transformación primaria inversa puede llamarse transformación central inversa. En una realización, el aparato de decodificación 200 puede realizar la transformación primaria inversa usando el MTS antes mencionado. Además, como ejemplo, el aparato de decodificación 200 puede determinar si el MTS se aplica al bloque actual antes de la etapa S2220. En este caso, el diagrama de flujo de decodificación de la figura 22 puede incluir además una etapa para determinar si se aplica MTS.
Por ejemplo, cuando se aplica MTS al bloque actual (es decir, cu_mts_indicador = 1), el aparato de decodificación 200 puede configurar candidatos de MTS sobre la base del modo de intrapredicción del bloque actual. En este caso, el diagrama de flujo de decodificación de la figura 22 puede incluir además una etapa de configuración de candidatos de MTS. Además, el aparato de decodificación 200 puede determinar la transformación primaria inversa aplicada al bloque actual usando mtx_idx que indica un MTS específico de entre los candidatos de MTS configurados.
La figura 23 es un diagrama de bloques detallado de la unidad de transformación 120 en el aparato de codificación 100 como una realización a la que se aplica la presente divulgación.
El aparato de codificación 100 al que se aplica una realización de la presente divulgación puede incluir una unidad de transformación primaria 2310, una unidad de determinación de aplicación de transformación secundaria 2320, una unidad de determinación de transformación secundaria 2330 y una unidad de transformación secundaria 2340.
La unidad de transformación primaria 2310 puede realizar la transformación primaria en un bloque residual. La transformación primaria puede denominarse transformación central. Como una realización, la unidad de transformación primaria 2310 puede realizar la transformación primaria utilizando el MTS mencionado anteriormente. Además, la unidad de transformación principal 2310 puede transmitir un índice de MTS que indica un MTS específico de entre los candidatos de MTS al aparato de decodificación 200. Aquí, los candidatos de MTS pueden configurarse sobre la base del modo de intrapredicción del bloque actual.
La unidad de determinación de aplicación de transformación secundaria 2320 puede determinar si se aplica la transformación secundaria. Por ejemplo, la unidad de determinación de aplicación de transformación secundaria 2320 puede determinar si aplicar la transformación secundaria sobre la base de los coeficientes de transformación del bloque residual transformado principalmente. Por ejemplo, la transformación secundaria puede ser NSST o RST.
La unidad de determinación de transformación secundaria 2330 determina la transformación secundaria. Aquí, la unidad de determinación de transformación secundaria 2330 puede determinar la transformación secundaria sobre la base de un conjunto de transformaciones de NSST (o RST) designado según el modo de intrapredicción como se describe anteriormente.
Por ejemplo, la unidad de determinación de transformación secundaria 2330 puede determinar una región a la que se aplicará la transformación secundaria sobre la base del tamaño del bloque actual.
La unidad de transformación secundaria 2340 puede realizar la transformación secundaria determinada.
La figura 24 es un diagrama de bloques detallado de la unidad de transformación inversa 230 en el aparato de decodificación 200 como una realización a la que se aplica la presente divulgación.
El aparato de decodificación 200 al que se aplica la presente divulgación incluye una unidad de determinación de aplicación de transformación secundaria inversa 2410, una unidad de determinación de transformación secundaria inversa 2420, una unidad de transformación secundaria inversa 2430 y una unidad de transformación primaria inversa 2440.
La unidad de determinación de aplicación de transformación secundaria inversa 2410 puede determinar si aplicar transformación secundaria inversa. Por ejemplo, la transformación secundaria inversa puede ser NSST o RST. Por ejemplo, la unidad de determinación de aplicación de transformación secundaria inversa 2410 puede determinar si aplicar la transformación secundaria inversa sobre la base de un indicador de transformación secundaria recibido desde el aparato de codificación 100.
La unidad de determinación de transformación secundaria inversa 2420 puede determinar la transformación secundaria inversa. Aquí, la unidad de determinación de transformación secundaria inversa 2420 puede determinar la transformación secundaria inversa aplicada al bloque actual sobre la base del conjunto de transformaciones de NSST (o RST) designado según el modo de intrapredicción.
Además, por ejemplo, la unidad de determinación de transformación secundaria inversa 2420 puede determinar una región a la que se aplicará la transformación secundaria inversa sobre la base del tamaño del bloque actual.
La unidad de transformación secundaria inversa 2430 puede realizar la transformación secundaria inversa en un bloque residual cuantificado inversamente usando la transformación secundaria inversa determinada.
La unidad de transformación primaria inversa 2440 puede realizar la transformación primaria inversa en el bloque residual transformado secundariamente de manera inversa. En una realización, la unidad de transformación primaria inversa 2440 puede realizar la transformación primaria inversa usando el MTS antes mencionado. Además, como ejemplo, la unidad de transformación primaria inversa 2440 puede determinar si se aplica MTS al bloque actual.
Por ejemplo, cuando se aplica MTS al bloque actual (es decir, cu_mts_indicador = 1), la unidad de transformación primaria inversa 2440 puede configurar candidatos de MTS sobre la base del modo de intrapredicción del bloque actual. Además, la unidad de transformación primaria inversa 2440 puede determinar la transformación primaria inversa aplicada al bloque actual usando mtx_idx que indica un MTS específico de entre los candidatos de MTS configurados.
La figura 25 es un diagrama de flujo para procesar una señal de vídeo como una realización a la que se aplica la presente divulgación. El proceso del diagrama de flujo de la figura 25 puede ser ejecutado por el aparato de decodificación 200 o la unidad de transformación inversa 230.
En primer lugar, el aparato de decodificación 200 puede determinar si la transformación inversa no separable se aplica al bloque actual sobre la base de un índice de transformación no separable y la anchura y la altura del bloque actual. Por ejemplo, si el índice de transformación no separable no es 0 y la anchura y la altura del bloque actual son iguales o superiores a 4, el aparato de decodificación 200 puede determinar que se aplica la transformación no separable. Si el índice de transformación no separable es 0 o la anchura o la altura del bloque actual es inferior a 4, el aparato de decodificación 200 puede omitir la transformación no separable inversa y realizar la transformación primaria inversa.
En la etapa S2505, el aparato de decodificación 200 determina un índice de conjunto de transformación no separable que indica un conjunto de transformación no separable utilizado para la transformación no separable del bloque actual de entre conjuntos de transformación no separables predefinidos sobre la base del modo de intrapredicción del bloque actual. Se puede establecer un índice de conjunto de transformación no separable de modo que se asigne a cada uno de los cuatro conjuntos de transformación configurados de acuerdo con el intervalo del modo de intrapredicción, como se muestra en la Tabla 7 o la Tabla 8. Es decir, el índice del conjunto de transformación no separable puede determinarse como un primer valor de índice cuando el modo de intrapredicción es 0 y 1, determinado como un segundo valor de índice cuando el modo de intrapredicción es de 2 a 12 o de 56 a 66, determinado como un tercer valor de índice cuando el modo de intrapredicción es de 13 a 23 o de 45 a 55, y determinado como un cuarto valor de índice cuando el modo de intrapredicción es de 24 a 44, como se muestra en la Tabla 7 o la Tabla 8.
Aquí, cada uno de los conjuntos de transformación no separables predefinidos puede incluir dos núcleos de transformación, como se muestra en la Tabla 9. Además, cada uno de los conjuntos de transformación no separables predefinidos puede incluir uno o dos núcleos de transformación, como se muestra en la Tabla 10 u 11.
En la etapa S2510, el aparato de decodificación 200 determina, como una matriz de transformación no separable, un núcleo de transformación indicado por el índice de transformación no separable para el bloque actual entre los núcleos de transformación incluidos en el conjunto de transformación no separable indicado por el índice de conjunto de transformación no separable. Por ejemplo, se pueden configurar dos núcleos de transformación no separables para cada valor de índice de conjunto de transformación no separable y el aparato de decodificación 200 puede determinar una matriz de transformación no separable sobre la base del núcleo de transformación indicado por el índice de transformación no separable entre dos núcleos de matriz de transformación correspondientes al índice de conjunto de transformación no separable.
En la etapa S2515, el aparato de decodificación 200 aplica la matriz de transformación no separable a una región superior izquierda del bloque actual determinada sobre la base de la anchura y la altura del bloque actual. Por ejemplo, se puede aplicar una transformación no separable a una región superior izquierda de 8x8 del bloque actual si tanto la anchura como la altura del bloque actual son iguales o mayores que 8 y se puede aplicar una transformación no separable a una región de 4x4 del bloque actual si la anchura o la altura del bloque actual es menor que 8. El tamaño de la transformación no separable también se puede establecer en 8x8 o 4x4 en respuesta a una región a la que se aplicará la transformación no separable.
Además, el aparato de decodificación 200 puede aplicar una transformación horizontal y una transformación vertical al bloque actual al que se ha aplicado una transformación no separable. Aquí, la transformación horizontal y la transformación vertical pueden determinarse sobre la base de un índice de MTS para la selección del modo de predicción y la matriz de transformación aplicada al bloque actual.
La figura 26 es un diagrama de bloques de ejemplo de un aparato para procesar señales de vídeo como una realización a la que se aplica la presente divulgación. El aparato de procesamiento de señales de vídeo que se muestra en la figura 26 puede corresponder al aparato de codificación de la figura 1 o al aparato de decodificación de la figura 2.
Un aparato de procesamiento de vídeo 2600 para procesar señales de vídeo incluye una memoria 2620 que almacena señales de vídeo y un procesador 2610 que se combina con la memoria y procesa señales de vídeo.
El procesador 2610 de acuerdo con una realización de la presente divulgación puede configurarse como al menos un circuito de procesamiento para el procesamiento de señales de vídeo y puede procesar señales de vídeo ejecutando comandos para codificar o decodificar las señales de vídeo. Es decir, el procesador 2610 puede codificar datos de vídeo originales o decodificar señales de vídeo codificadas realizando los métodos de codificación o decodificación descritos anteriormente.
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 de acuerdo con 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 un ordenador. Los medios de grabación legibles por ordenador pueden incluir un disco Blu-ray (BD), un bus serie universal (USB), una ROM, una PROM, una EEp Ro M, 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 alámbricas/inalámbricas.
Además, las realizaciones de la presente divulgación pueden implementarse como productos de programas informáticos según el código del 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 vídeo, dispositivos móviles de transmisión, medios de almacenamiento, videocámaras, aparatos que brindan servicios de vídeo bajo demanda (VoD), sistemas de vídeo de libre transmisión (OTT), aparatos que brindan servicios de transmisión por Internet, sistemas de vídeo 3D, sistemas de vídeo telefónico, sistemas de vídeo médicos, etc. y pueden usarse para procesar señales de vídeo o señales de datos. Por ejemplo, los sistemas de vídeo OTT pueden incluir consolas de juegos, reproductores Blu-ray, televisores con acceso a Internet, sistemas de cine en casa, teléfonos inteligentes, tabletas, grabadoras de vídeo 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 de acuerdo con 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 un ordenador. Los medios de grabación legibles por ordenador pueden incluir un disco Blu-ray (BD), un bus serie universal (USB), una ROM, una PROM, una EEp Ro M, 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 alámbricas/inalámbricas.
Además, las realizaciones de la presente divulgación pueden implementarse como productos de programas informáticos según el código del 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.
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 practicarse sin combinarse con otros elementos o características. Además, una realización de la presente divulgación puede construirse combinando partes de los elementos y/o características. Las órdenes de operación descritas en las realizaciones de la presente divulgación pueden reorganizarse. 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 materia 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 en 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 de acuerdo con las implementaciones de la presente divulgación pueden lograrse mediante uno o más circuitos integrados específicos de la 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 en el exterior del procesador y puede transmitir datos y recibir datos del procesador a través de varios medios conocidos.
Los expertos en la materia apreciarán que la presente divulgación puede llevarse a cabo de otras maneras específicas que las establecidas en el presente documento. En consecuencia, por lo tanto, las realizaciones anteriores deben interpretarse en todos los aspectos como ilustrativas y no restrictivas. El alcance de la presente divulgación debe determinarse mediante las reivindicaciones adjuntas.
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.

Claims (5)

REIVINDICACIONES
1. Un método para decodificar una señal de imagen, que comprende:
determinar un índice de conjunto de transformación no separable que indica un conjunto de transformación no separable para un bloque actual de entre cuatro conjuntos de transformación no separables predeterminados basados en un modo de intrapredicción del bloque actual, consistiendo cada uno de los cuatro conjuntos de transformación no separables predeterminados en dos núcleos de transformación;
determinar un núcleo de transformación incluido en el conjunto de transformación no separable indicado por el índice del conjunto de transformación no separable como una matriz de transformación no separable para el bloque actual; y
realizar una transformación inversa secundaria para el bloque actual aplicando la matriz de transformación no separable a una región superior izquierda del bloque actual, determinándose la región superior izquierda del bloque actual en función de la anchura y de la altura del bloque actual,
en el que el índice del conjunto de transformaciones no separables tiene un valor de índice de 0, 1,2 o 3, que indica cada uno de los cuatro conjuntos de transformaciones predeterminados no separables,
en el que el núcleo de transformación se determina entre dos núcleos de transformación incluidos en el conjunto de transformación no separable,
en el que, cuando el modo de intrapredicción es 0 o 1, el índice del conjunto de transformación no separable se determina como 0,
en el que, cuando el modo de intrapredicción es uno de 2 a 12, o de 56 a 66, el índice del conjunto de transformación no separable se determina como 1,
en el que, cuando el modo de intrapredicción es uno de 13 a 23, o de 45 a 55, el índice del conjunto de transformación no separable se determina como 2 , y
en el que, cuando el modo de intrapredicción es uno de 24 a 44, el índice del conjunto de transformación no separable se determina como 3.
2. El método de la reivindicación 1, que comprende, además:
realizar la transformación inversa primaria para el bloque actual aplicando una transformación de dirección horizontal y una transformación de dirección vertical a la región superior izquierda del bloque actual al que se aplica la matriz de transformación no separable.
3. El método de la reivindicación 2,
en el que la transformación de dirección horizontal y la transformación de dirección vertical se determinan en base a un índice de conjunto de transformaciones múltiples, MTS, y al modo de predicción del bloque actual, indicando el índice de MTS una matriz de transformación de entre los candidatos de MTS que constituyen un MTS.
4. Un método para codificar una señal de imagen, que comprende:
determinar un conjunto de transformaciones no separables para un bloque actual de entre cuatro conjuntos de transformaciones no separables predeterminados en base a un modo de intrapredicción del bloque actual, consistiendo cada uno de los cuatro conjuntos de transformaciones no separables predeterminados en dos núcleos de transformaciones;
determinar un núcleo de transformación incluido en el conjunto de transformación no separable como una matriz de transformación no separable para el bloque actual; y
realizar una transformación secundaria para el bloque actual aplicando la matriz de transformación no separable a una región superior izquierda del bloque actual, determinándose la región superior izquierda del bloque actual en función de la anchura y de la altura del bloque actual,
en el que se codifica un índice de conjunto de transformación no separable que indica el conjunto de transformación no separable de entre conjuntos de transformación no separables predeterminados,
en el que el índice del conjunto de transformaciones no separables tiene un valor de índice de 0, 1,2 o 3, que indica cada uno de los cuatro conjuntos de transformaciones predeterminados no separables,
en el que el núcleo de transformación se determina entre dos núcleos de transformación incluidos en el conjunto de transformación no separable,
en el que, cuando el modo de intrapredicción es 0 o 1, el índice del conjunto de transformación no separable se determina como 0,
en el que, cuando el modo de intrapredicción es uno de 2 a 12, o de 56 a 66, el índice del conjunto de transformación no separable se determina como 1,
en el que, cuando el modo de intrapredicción es uno de 13 a 23, o de 45 a 55, el índice del conjunto de transformación no separable se determina como 2 , y
en el que, cuando el modo de intrapredicción es uno de 24 a 44, el índice del conjunto de transformación no separable se determina como 3.
5. Un medio de grabación no transitorio legible por ordenador que almacena un flujo de bits generado mediante un método para codificar una señal de imagen, comprendiendo el método:
determinar un conjunto de transformaciones no separables para un bloque actual de entre cuatro conjuntos de transformaciones no separables predeterminados en base a un modo de intrapredicción del bloque actual, consistiendo cada uno de los cuatro conjuntos de transformaciones no separables predeterminados en dos núcleos de transformaciones;
determinar un núcleo de transformación incluido en el conjunto de transformación no separable como una matriz de transformación no separable para el bloque actual; y
realizar una transformación secundaria para el bloque actual aplicando la matriz de transformación no separable a una región superior izquierda del bloque actual, determinándose la región superior izquierda del bloque actual en función de la anchura y de la altura del bloque actual,
en el que se codifica un índice de conjunto de transformación no separable que indica el conjunto de transformación no separable de entre conjuntos de transformación no separables predeterminados,
en el que el índice del conjunto de transformaciones no separables tiene un valor de índice de 0, 1,2 o 3, que indica cada uno de los cuatro conjuntos de transformaciones predeterminados no separables,
en el que el núcleo de transformación se determina entre dos núcleos de transformación incluidos en el conjunto de transformación no separable,
en el que, cuando el modo de intrapredicción es 0 o 1, el índice del conjunto de transformación no separable se determina como 0,
en el que, cuando el modo de intrapredicción es uno de 2 a 12, o de 56 a 66, el índice del conjunto de transformación no separable se determina como 1,
en el que, cuando el modo de intrapredicción es uno de 13 a 23, o de 45 a 55, el índice del conjunto de transformación no separable se determina como 2 , y
en el que, cuando el modo de intrapredicción es uno de 24 a 44, el índice del conjunto de transformación no separable se determina como 3.
ES19854738T 2018-09-02 2019-09-02 Método para procesar señales de imágenes y medio de almacenamiento legible por ordenador que almacena un flujo de bits generado mediante dicho método Active ES2944839T3 (es)

Applications Claiming Priority (3)

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

Publications (1)

Publication Number Publication Date
ES2944839T3 true ES2944839T3 (es) 2023-06-26

Family

ID=69644580

Family Applications (1)

Application Number Title Priority Date Filing Date
ES19854738T Active ES2944839T3 (es) 2018-09-02 2019-09-02 Método para procesar señales de imágenes y medio de almacenamiento legible por ordenador que almacena un flujo de bits generado mediante dicho método

Country Status (12)

Country Link
US (4) US11146816B2 (es)
EP (2) EP3723375B1 (es)
JP (2) JP7200253B2 (es)
KR (4) KR102396338B1 (es)
CN (5) CN115134592B (es)
ES (1) ES2944839T3 (es)
FI (1) FI3723375T3 (es)
HR (1) HRP20230450T1 (es)
HU (1) HUE061853T2 (es)
PL (1) PL3723375T3 (es)
SI (1) SI3723375T1 (es)
WO (1) WO2020046084A1 (es)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
MX2020001377A (es) * 2017-08-04 2020-03-09 Lg Electronics Inc Metodo y aparato para configurar una transformacion para compresion de video.
US11785254B2 (en) 2020-05-29 2023-10-10 Tencent America LLC Implicit mode dependent primary transforms
WO2024011065A1 (en) * 2022-07-05 2024-01-11 Qualcomm Incorporated Non-separable transform for inter-coded blocks

Family Cites Families (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101108681B1 (ko) * 2005-01-19 2012-01-25 삼성전자주식회사 동영상 코덱에서의 주파수 변환 계수 예측 방법 및 장치,이를 구비한 부호화 및 복호화 장치와 방법
EP1986440A4 (en) * 2006-02-13 2010-11-17 Toshiba Kk METHOD OF ENCODING / DECODING IMAGE IN MOTION AND DEVICE AND PROGRAM
US8488668B2 (en) * 2007-06-15 2013-07-16 Qualcomm Incorporated Adaptive coefficient scanning for video coding
KR101302660B1 (ko) * 2009-09-14 2013-09-03 에스케이텔레콤 주식회사 고해상도 동영상의 부호화/복호화 방법 및 장치
CN102045560B (zh) * 2009-10-23 2013-08-07 华为技术有限公司 一种视频编解码方法及设备
AU2015201843B2 (en) * 2010-07-15 2017-03-09 Kabushiki Kaisha Toshiba Image encoding method and image decoding method
JP2012023632A (ja) * 2010-07-15 2012-02-02 Sony Corp 符号化装置および符号化方法、並びに、復号装置および復号方法
US9462280B2 (en) * 2010-12-21 2016-10-04 Intel Corporation Content adaptive quality restoration filtering for high efficiency video coding
WO2012134046A2 (ko) * 2011-04-01 2012-10-04 주식회사 아이벡스피티홀딩스 동영상의 부호화 방법
US20130003856A1 (en) * 2011-07-01 2013-01-03 Samsung Electronics Co. Ltd. Mode-dependent transforms for residual coding with low latency
CN107820079B9 (zh) * 2011-10-18 2021-09-21 株式会社Kt 视频信号解码方法
KR101857107B1 (ko) * 2011-10-19 2018-05-11 주식회사 케이티 영상 부호화/복호화 방법 및 그 장치
KR20130049526A (ko) * 2011-11-04 2013-05-14 오수미 복원 블록 생성 방법
JP2013168932A (ja) * 2012-01-18 2013-08-29 Jvc Kenwood Corp 画像復号装置、画像復号方法及び画像復号プログラム
US20130188691A1 (en) * 2012-01-20 2013-07-25 Sony Corporation Quantization matrix design for hevc standard
ES2729781T3 (es) * 2012-06-01 2019-11-06 Velos Media Int Ltd Dispositivo de decodificación aritmética, aparato de decodificación de imágenes, dispositivo de codificación aritmética y aparato de codificación de imágenes
KR102250088B1 (ko) * 2013-10-24 2021-05-10 삼성전자주식회사 비디오 스트림을 복호화하는 방법 및 장치
JP2015115614A (ja) * 2013-12-06 2015-06-22 日本電信電話株式会社 変換処理方法、逆変換処理方法、変換処理装置、逆変換処理装置、変換処理プログラム及び逆変換処理プログラム
CN203908842U (zh) * 2014-06-17 2014-10-29 嘉兴学院 一种泡沫混凝土导热系数测试模具
US10306229B2 (en) * 2015-01-26 2019-05-28 Qualcomm Incorporated Enhanced multiple transforms for prediction residual
CN107431813B (zh) * 2015-02-12 2020-04-10 Lg 电子株式会社 使用基于图的变换处理视频信号的方法和装置
KR102600756B1 (ko) * 2015-03-06 2023-11-10 한국과학기술원 저 복잡도 변환에 기반한 영상 부호화 및 복호화 방법 및 이를 이용하는 장치
WO2016167538A1 (ko) * 2015-04-12 2016-10-20 엘지전자(주) 비디오 신호의 인코딩, 디코딩 방법 및 그 장치
US20180220158A1 (en) * 2015-07-21 2018-08-02 Lg Electronics Inc. Method and device for processing video signal using graph-based transform
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 삼성전자주식회사 스캔 순서를 고려한 영상의 변환 방법 및 그 장치, 및 역변환 방법 및 그 장치
WO2017043941A1 (ko) * 2015-09-10 2017-03-16 엘지전자(주) 예측 각도에 따른 그래프 기반 변환을 이용하여 비디오 신호를 처리하는 방법 및 장치
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 엘지전자 주식회사 영상 코딩 시스템에서 적응적 변환에 기반한 영상 코딩 방법 및 장치
US20180084279A1 (en) * 2016-03-02 2018-03-22 MatrixView, Inc. Video encoding by injecting lower-quality quantized transform matrix values into a higher-quality quantized transform matrix
US10567759B2 (en) * 2016-03-21 2020-02-18 Qualcomm Incorporated Using luma information for chroma prediction with separate luma-chroma framework in video coding
US10237566B2 (en) * 2016-04-01 2019-03-19 Microsoft Technology Licensing, Llc Video decoding using point sprites
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
CN114401407A (zh) * 2016-06-24 2022-04-26 韩国电子通信研究院 用于基于变换的图像编码/解码的方法和设备
US10972733B2 (en) * 2016-07-15 2021-04-06 Qualcomm Incorporated Look-up table for enhanced multiple transform
WO2018038554A1 (ko) * 2016-08-24 2018-03-01 엘지전자(주) 이차 변환을 이용한 비디오 신호의 인코딩/디코딩 방법 및 장치
US9712830B1 (en) * 2016-09-15 2017-07-18 Dropbox, Inc. Techniques for image recompression
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
CN116886907A (zh) 2016-10-14 2023-10-13 世宗大学校产学协力团 影像编码方法、影像解码方法以及传送比特流的方法
CN106791879A (zh) * 2016-11-30 2017-05-31 北京工业大学 一种基于视频编码模式的方向变换方法
GB2557335A (en) * 2016-12-07 2018-06-20 Sony Corp Image data encoding and decoding
US10609367B2 (en) * 2016-12-21 2020-03-31 Qualcomm Incorporated Low-complexity sign prediction for video coding
US20190356915A1 (en) 2017-01-03 2019-11-21 Lg Electronics Inc. Method and apparatus for encoding/decoding video signal using secondary transform
US10848788B2 (en) * 2017-01-06 2020-11-24 Qualcomm Incorporated Multi-type-tree framework for video coding
EP3349451A1 (en) * 2017-01-11 2018-07-18 Thomson Licensing Method and apparatus for selecting a coding mode used for encoding/decoding a residual block
KR20180085526A (ko) * 2017-01-19 2018-07-27 가온미디어 주식회사 효율적 변환을 처리하는 영상 복호화 및 부호화 방법
CN206698375U (zh) * 2017-04-28 2017-12-01 河南工程学院 一种滑动像素块整数dct核心矩阵变换运动补偿器
US11134272B2 (en) * 2017-06-29 2021-09-28 Qualcomm Incorporated Memory reduction for non-separable transforms
CN108319984B (zh) * 2018-02-06 2019-07-02 北京林业大学 基于dna甲基化水平的木本植物叶片表型特征和光合特性预测模型的构建方法及预测方法
CN108322745B (zh) * 2018-02-28 2019-12-03 中南大学 一种基于不可分二次变换模式的帧内快速选择方法
CN108322743B (zh) * 2018-02-28 2020-01-31 中南大学 一种基于模式依赖特性的不可分二次变换模式的帧内快速选择方法
CN116546199A (zh) * 2018-08-12 2023-08-04 Lg电子株式会社 解码装置、编码装置、存储介质和发送图像的数据的装置

Also Published As

Publication number Publication date
JP7465333B2 (ja) 2024-04-10
KR102591086B1 (ko) 2023-10-17
KR102488860B1 (ko) 2023-01-13
SI3723375T1 (sl) 2023-07-31
EP4210331A1 (en) 2023-07-12
KR20230010069A (ko) 2023-01-17
KR20230148276A (ko) 2023-10-24
CN115037934B (zh) 2024-04-26
JP2023025283A (ja) 2023-02-21
KR20200088444A (ko) 2020-07-22
EP3723375A4 (en) 2021-08-18
KR102396338B1 (ko) 2022-05-09
US11146816B2 (en) 2021-10-12
FI3723375T3 (fi) 2023-05-04
US11882310B2 (en) 2024-01-23
EP3723375B1 (en) 2023-04-05
EP3723375A1 (en) 2020-10-14
US20200374554A1 (en) 2020-11-26
CN114885163A (zh) 2022-08-09
JP7200253B2 (ja) 2023-01-06
WO2020046084A1 (ko) 2020-03-05
HRP20230450T1 (hr) 2023-07-21
US20230269397A1 (en) 2023-08-24
US20220060747A1 (en) 2022-02-24
HUE061853T2 (hu) 2023-08-28
CN114885162A (zh) 2022-08-09
US20240114166A1 (en) 2024-04-04
CN111758261B (zh) 2022-06-10
KR20220062691A (ko) 2022-05-17
CN114885163B (zh) 2024-04-23
CN114885162B (zh) 2024-04-23
JP2021509793A (ja) 2021-04-01
CN115037934A (zh) 2022-09-09
US11632570B2 (en) 2023-04-18
CN115134592A (zh) 2022-09-30
PL3723375T3 (pl) 2023-06-12
CN115134592B (zh) 2024-04-26
CN111758261A (zh) 2020-10-09

Similar Documents

Publication Publication Date Title
CN113039803B (zh) 编码/解码视频信号的方法及其装置
JP7242929B2 (ja) ビデオ信号の符号化/復号方法及びそのための装置
KR102452108B1 (ko) 비디오 신호의 부호화/복호화 방법 및 이를 위한 장치
ES2944839T3 (es) Método para procesar señales de imágenes y medio de almacenamiento legible por ordenador que almacena un flujo de bits generado mediante dicho método
CN113316937B (zh) 处理视频信号的方法和设备
CN115426493B (zh) 对视频信号进行编码的方法和计算机可读介质
CN115379211B (zh) 对视频信号进行解码/编码的方法和计算机可读存储介质
CN115484463B (zh) 对视频信号进行解码/编码及发送数据的设备
RU2792219C2 (ru) Способ кодирования/декодирования видеосигналов и устройство для этого