ES3042414T3 - Method and apparatus for signaling sub-block transform information - Google Patents

Method and apparatus for signaling sub-block transform information

Info

Publication number
ES3042414T3
ES3042414T3 ES20863945T ES20863945T ES3042414T3 ES 3042414 T3 ES3042414 T3 ES 3042414T3 ES 20863945 T ES20863945 T ES 20863945T ES 20863945 T ES20863945 T ES 20863945T ES 3042414 T3 ES3042414 T3 ES 3042414T3
Authority
ES
Spain
Prior art keywords
sbt
maximum
video
size
flag
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
ES20863945T
Other languages
English (en)
Inventor
Mohammed Sarwer
Jiancong Luo
Yan Ye
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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Application granted granted Critical
Publication of ES3042414T3 publication Critical patent/ES3042414T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102—Methods 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/12—Selection 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
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102—Methods 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/12—Selection 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/122—Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134—Methods 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/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169—Methods 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/17—Methods 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/176—Methods 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
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46—Embedding additional information in the video signal during the compression process
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

La presente divulgación proporciona aparatos y métodos para señalizar información de transformación de subbloque (SBT). La información SBT se utiliza para codificar datos de vídeo. Según ciertas realizaciones divulgadas, un método ejemplar incluye: señalizar una primera bandera en un conjunto de parámetros de secuencia (SPS) de una secuencia de vídeo que indica si una transformación de subbloque (SBT) está habilitada; y señalizar una segunda bandera que indica un tamaño máximo de bloque de transformación (TB) que permite la SBT. Un tamaño máximo de unidad de codificación (CU) que permite la SBT se determina directamente en función del tamaño máximo de TB en respuesta a la primera bandera que indica que la SBT está habilitada. (Traducción automática con Google Translate, sin valor legal)

Description

[0001] DESCRIPCIÓN
[0003] Método y aparato para señalizar información de transformada de subbloques
[0005] Solicitudes relacionadas
[0007] La presente divulgación reivindica la prioridad con respecto a la solicitud de patente provisional de EE. UU. n.°.
[0008] 62/900,395, presentada el 13 de septiembre de 2019.
[0010] Antecedentes de la invención
[0012] Un vídeo es un conjunto de imágenes estáticas (o «cuadros») que capturan información visual. Con el fin de reducir la memoria de almacenamiento y el ancho de banda de transmisión, es posible comprimir un vídeo antes de almacenarlo o transmitirlo, y descomprimirlo antes de visualizarlo. El proceso de compresión suele denominarse codificación y el proceso de descompresión suele denominarse decodificación. Existen diversos formatos de codificación de vídeo que adoptan tecnologías de codificación de vídeo estandarizadas, por lo general basadas en procesos de predicción, transformada, cuantificación, codificación entrópica y filtrado en bucle. Los estándares de codificación de vídeo, como el estándar High Efficiency Video Coding (HEVC/H.265), el estándar Versatile Video Coding (VVC/H.266) o los estándares AVS, con los que se definen formatos específicos de codificación de vídeo, son desarrollados por organismos de estandarización. La adopción de tecnologías de codificación de vídeo cada vez más avanzadas en los estándares de vídeo está provocando un aumento progresivo en la eficiencia de los nuevos estándares de codificación de vídeo.
[0014] El documento EP 4011076 A1 hace referencia a un método de procesamiento de vídeo que comprende determinar, en relación a una conversión entre un bloque de un vídeo actual y una representación codificada del vídeo, si se incluye un elemento de sintaxis que indique el uso del modo omisión para un modelo de codificación de copia intrabloque (IBC) en la representación codificada de acuerdo con una regla que determina que la señalización del elemento de sintaxis se basa en la dimensión del bloque actual y/o en una dimensión máxima permitida de un bloque que se codifica mediante el modelo de codificación IBD.
[0016] El documento EP 4002847 A1 hace referencia a un dispositivo de decodificación de señal de vídeo que comprende un procesador caracterizado por determinar un valor de resultado que indica la dirección para dividir el bloque de transformada actual basándose en condiciones preestablecidas, dividir el bloque de transformada actual en una pluralidad de bloques de transformada basándose en el valor de resultado y decodificar una señal de vídeo usando la pluralidad de bloques de transformada, en donde las condiciones preestablecidas comprenden una condición relativa a un componente de color del bloque de transformada actual.
[0018] El documento Bross B. et al. «Versatile Video Coding (Draft 6)», 15. JVET Meeting, JVET-O2001-vE, 31 de julio de 2019, hace referencia al Borrador 6 de una Recomendación ITU-T y al Estándar Internacional de ISO/IEC titulado Versatile Video Coding («Codificación de vídeo versátil»), desarrollado por un equipo de colaboración conjunta de los expertos de ITU-T e ISO/IEC conocidos como el Joint Video Experts Team (JVEt, equipo conjunto de expertos en vídeo).
[0020] Breve descripción de la invención
[0022] De acuerdo con diversos aspectos, se proporciona un método de codificación, un método de decodificación, un aparato de codificación, un aparato de decodificación y un medio legible por ordenador, tal y como se definen en las reivindicaciones adjuntas. Las demás características se pondrán de manifiesto a partir de las reivindicaciones dependientes y de la descripción que figuran a continuación.
[0024] Breve descripción de los dibujos
[0026] Las realizaciones y los diferentes aspectos de la presente divulgación se ilustran en la siguiente descripción y en los dibujos adjuntos. Varias de las características mostradas en los dibujos no están dibujadas a escala.
[0028] La Fig. 1 es un diagrama esquemático que ilustra estructuras de una secuencia de vídeo de ejemplo de acuerdo con algunas realizaciones de la presente divulgación.
[0030] La Fig.2 ilustra un diagrama esquemático de un codificador ejemplar de un sistema de codificación de vídeo híbrido de acuerdo con algunas realizaciones de la presente divulgación.
[0032] La Fig. 3 ilustra un diagrama esquemático de un decodificador ejemplar de un sistema de codificación de vídeo híbrido de acuerdo con algunas realizaciones de la presente divulgación.
[0034] La Fig. 4 ilustra un diagrama de bloques de un aparato ejemplar usado para codificar o decodificar un vídeo de acuerdo con algunas realizaciones de la presente divulgación.
[0035] La Fig. 5 ilustra tipos de transformada de subbloque (SBT) y posiciones de SBT ejemplares para una unidad de codificación (CU) interpredicha de acuerdo con algunas realizaciones de la presente divulgación.
[0037] La Fig. 6 ilustra una Tabla 1 ejemplar que muestra una parte de la tabla de sintaxis de SPS de acuerdo con algunas realizaciones de la presente divulgación.
[0039] La Fig. 7 ilustra un diagrama de flujo de un método de procesamiento de vídeo ejemplar de acuerdo con algunas realizaciones de la presente divulgación.
[0041] La Fig. 8 ilustra una Tabla 2 ejemplar que muestra una parte de la tabla de sintaxis de SPS de acuerdo con algunas realizaciones de la presente divulgación.
[0043] La Fig. 9 ilustra una Tabla 3 ejemplar que muestra una parte de la tabla de sintaxis de CU de acuerdo con algunas realizaciones de la presente divulgación.
[0045] La Fig. 10 ilustra un diagrama de flujo de otro método de procesamiento de vídeo ejemplar de acuerdo con algunas realizaciones de la presente divulgación.
[0047] Descripción detallada de la invención
[0049] A continuación, se hará referencia de manera detallada a las realizaciones ejemplares, cuyos ejemplos se ilustran en los dibujos adjuntos. La siguiente descripción hace referencia a los dibujos adjuntos, en los que los mismos números utilizados en diferentes dibujos representan los mismos o similares elementos, a menos que se represente lo contrario. Las implementaciones definidas en la siguiente descripción de las realizaciones ejemplares no representan todas las implementaciones abarcadas en la invención. En su lugar, constituyen meros ejemplos de aparatos y métodos que corresponden a aspectos relacionados con la invención según se define en las reivindicaciones. A continuación, se describirán en mayor nivel de detalle los aspectos particulares de la presente divulgación. Los términos y definiciones proporcionados en el presente documento prevalecen en caso de conflicto con términos y/o definiciones incorporados por referencia.
[0051] El Joint Video Experts Team (JVET) del ITU-T Video Coding Expert Group (ITU-T VCEG, «grupo de expertos en codificación de vídeo del ITU-T») y el ISO/IEC Moving Picture Expert Group (ISO/IEC MPEG, «grupo de expertos en imágenes móviles del ISO/IEC») se encuentran, en el presente, desarrollando el estándar Versatile Video Coding (VVC/H.266). El estándar VVC busca duplicar la eficiencia de compresión de su predecesor, el estándar High Efficiency Video Coding (HEVC/H.265, «codificación de vídeo de alta eficiencia»). Es decir, el objetivo de VVC es lograr la misma calidad subjetiva que HEVC/H.265 usando la mitad del ancho de banda.
[0053] Con el fin de lograr la misma calidad subjetiva que HEVC/H.265 usando la mitad del ancho de banda, el JVET se ha dedicado al desarrollo de tecnologías superiores a HEVC usando el software de referencia de modelo de exploración conjunta (JEM). A medida que las tecnologías de codificación se incorporaban en el JEM, el JEM logró un rendimiento de codificación sustancialmente superior al de HEVC.
[0055] El estándar VVC se ha desarrollado recientemente y sigue incorporando más tecnologías de codificación que brindan un mejor rendimiento de compresión. VVC se basa en el mismo sistema de codificación de vídeo híbrido utilizado en estándares de compresión de vídeo modernos, como HEVC, H.264/AVC. MPEG2, H.263, etc.
[0057] Un vídeo es un conjunto de imágenes estáticas (o «cuadros») dispuestas en una secuencia temporal con el fin de almacenar información visual. Puede usarse un dispositivo de captura de vídeo (p. ej., una cámara) para capturar y almacenar las imágenes en una secuencia temporal, y puede usarse un dispositivo de reproducción de vídeo (p. ej., un televisor, un ordenador, un teléfono inteligente, una tableta, un reproductor de vídeo o cualquier terminal de usuario final con una función de visualización) para visualizar las imágenes en la secuencia temporal. Asimismo, en algunas aplicaciones, un dispositivo de captura de vídeo puede transmitir el vídeo capturado al dispositivo de reproducción de vídeo (p. ej., un ordenador con un monitor) en tiempo real, como para fines de vigilancia, conferencias o transmisiones en directo.
[0059] Con el fin de reducir el espacio de almacenamiento y el ancho de banda de transmisión requeridos por estas aplicaciones, el vídeo puede comprimirse antes del almacenamiento y la transmisión, y descomprimirse antes de la visualización. La compresión y la descompresión pueden implementarse a través de software ejecutado por un procesador (p. ej., un procesador de un ordenador genérico) o de hardware especializado. El módulo para la compresión se denomina, por lo general, un «codificador», y el módulo para la descompresión se denomina, por lo general, un «decodificador». El codificador y el decodificador pueden denominarse, de forma colectiva, «códec». El codificador y el decodificador pueden implementarse como cualquier variedad adecuada de hardware, software o combinación de ambos. Por ejemplo, la implementación en forma de hardware del codificador y el decodificador puede comprender circuitería, como uno o más microprocesadores, procesadores de señal digital (DPS), circuitos integrados de aplicación específica (ASIC), matrices de puerta programable en campo (FPGA), lógica discreta o cualquier combinación de estos. La implementación en forma de software del codificador y el decodificador puede comprender códigos de programa, instrucciones ejecutables por ordenador, firmware o cualquier algoritmo implementado por ordenador o proceso fijo en un medio legible por ordenador adecuados. La compresión y la descompresión de vídeo pueden implementarse mediante diferentes algoritmos o estándares, como MPEG-1, MPEG-2, MPEG-4, serie H.26x o similares. En algunas aplicaciones, el códec puede descomprimir el vídeo a partir de un primer estándar de codificación y volver a comprimir el vídeo descomprimido usando un segundo estándar de codificación, en cuyo caso el códec puede denominarse un «transcodificador».
[0061] El proceso de codificación de vídeo puede identificar y conservar información útil que puede usarse para reconstruir una imagen y descartar información no importante para la reconstrucción. Si la información no importante descartada no se puede reconstruir en su totalidad, el proceso de codificación puede denominarse «con pérdida». De lo contrario, puede denominarse «sin pérdida». La mayoría de los procesos de codificación son con pérdida, lo que supone un sacrificio que permite reducir el espacio de almacenamiento requerido y el ancho de banda de transmisión.
[0063] La información útil de una imagen que se está codificando (denominada una «imagen actual») comprende cambios con respecto a una imagen de referencia (p. ej., una imagen previamente codificada y reconstruida). Estos cambios pueden incluir cambios de posición, cambios de luminosidad o cambios de color de los píxeles, donde los cambios de posición son los que más interés despiertan. Los cambios de posición de un grupo de píxeles que representan un objeto pueden reflejar el movimiento del objeto entre la imagen de referencia y la imagen actual.
[0065] Una imagen codificada sin hacer referencia a otra imagen (es decir, que es, en sí misma, su propia imagen de referencia) se denomina una «imagen I». Una imagen codificada usando una imagen anterior como imagen de referencia se denomina una «imagen P». Una imagen codificada usando tanto una imagen anterior como una imagen futura como imágenes de referencia (es decir, la referencia es «bidireccional») se denomina una «imagen B».
[0067] La Fig. 1 ilustra estructuras de una secuencia de vídeo 100 de ejemplo de acuerdo con algunas realizaciones de la presente divulgación. La secuencia de vídeo 100 puede ser un vídeo en directo o un vídeo que haya sido capturado o archivado. El vídeo 100 puede ser un vídeo real, un vídeo generado por ordenador (p. ej., un vídeo de juego de ordenador) o una combinación de ambos (p. ej., un vídeo real con efectos de realidad aumentada). La secuencia de vídeo 100 puede introducirse desde un dispositivo de captura de vídeo (p. ej., una cámara), un archivo de vídeo (p. ej., un archivo de vídeo almacenado en un dispositivo de almacenamiento) que contiene un vídeo previamente capturado o una interfaz de transmisión de vídeo (p. ej., un transceptor de emisiones de vídeo) con el fin de recibir vídeo de un proveedor de contenido de vídeo.
[0069] Como se muestra en la Fig. 1, la secuencia de vídeo 100 puede comprender una serie de imágenes dispuestas según un criterio temporal a lo largo de una línea temporal, que comprende las imágenes 102, 104, 106 y 108. Las imágenes 102-106 son continuas, y hay más imágenes entre las imágenes 106 y 108. En la Fig. 1, la imagen 102 es una imagen I, cuya imagen de referencia es la propia imagen 102. La imagen 104 es una imagen P, cuya imagen de referencia es la imagen 102, como indica la flecha. La imagen 106 es una imagen B, cuyas imágenes de referencia son las imágenes 104 y 108, como indican las flechas. En algunas realizaciones, la imagen de referencia de una imagen (p. ej., la imagen 104) puede no ser la que precede o la sigue inmediatamente a la imagen. Por ejemplo, la imagen de referencia de la imagen 104 puede ser una imagen que preceda a la imagen 102. Es preciso tener en cuenta que las imágenes de referencia de las imágenes 102-106 son solo ejemplos, y la presente divulgación no limita las realizaciones de las imágenes de referencia a los ejemplos mostrados en la Fig. 1.
[0070] Por lo general, los códecs de vídeo no codifican o decodifican una imagen entera de una sola vez debido a la complejidad computacional de estas tareas. En cambio, pueden dividir la imagen en segmentos básicos y codificar o decodificar la imagen segmento por segmento. Estos segmentos básicos se denominan unidades de procesamiento básicas («BPU») en la presente divulgación. Por ejemplo, la estructura 110 de la Fig. 1 muestra una estructura de ejemplo de una imagen de la secuencia de vídeo 100 (p. ej., cualquiera de las imágenes 102­ 108). En la estructura 110, una imagen se divide en unidades de procesamiento básicas 4*4, cuyos límites se ilustran como líneas discontinuas. En algunas realizaciones, las unidades de procesamiento básicas pueden denominarse «macrobloques» en algunos estándares de codificación de vídeo (p. ej., la familia MPEG, H.261, H.263 o H.264/AVC) o «unidades de árbol de codificación» (CTU) en otros estándares de codificación de vídeo (p. ej., H.265/HEVC o H.266/VVC). Las unidades de procesamiento básicas pueden tener tamaños variables dentro de una imagen, como 128*128, 64*64, 32*32, 16*16, 4*8, 16*32, u otra forma arbitraria o tamaño de píxeles cualesquiera. Los tamaños y formas de las unidades de procesamiento básicas pueden seleccionarse para una imagen en función del equilibrio existente entre la eficiencia de codificación y los niveles de detalle que se desean conservar en la unidad de procesamiento básica.
[0072] Las unidades de procesamiento básicas pueden ser unidades lógicas, que pueden comprender un grupo de diferentes tipos de datos de vídeo almacenados en una memoria de ordenador (p. ej., en un búfer de cuadros de vídeo). Por ejemplo, una unidad de procesamiento básica de una imagen en color puede comprender un componente de luminancia (Y), que representa la información de brillo acromático, uno o más componentes de crominancia (p. ej., Cb y Cr), que representan la información de color, y elementos de sintaxis asociados, en donde los componentes de luminancia y crominancia pueden presentar el mismo tamaño que la unidad de procesamiento básica. Los componentes de luminancia y crominancia pueden denominarse «bloques de árbol de codificación» (CTB) en algunos estándares de codificación de vídeo (p. ej., H.265/HEVC o H.266/VVC). Cualquier operación efectuada en una unidad de procesamiento básica puede efectuarse de forma repetida en cada uno de sus componentes de luminancia y crominancia.
[0074] La codificación de vídeo cuenta con múltiples etapas de operaciones, cuyos ejemplos se muestran en las Fig. 2 y 3. En cada etapa, existe la posibilidad de que el tamaño de las unidades de procesamiento básicas sea aún demasiado grande para el procesamiento y, por consiguiente, pueden dividirse en segmentos denominados «subunidades de procesamiento básicas» en la presente divulgación. En algunas realizaciones, las unidades de procesamiento básicas pueden denominarse «bloques» en algunos estándares de codificación de vídeo (p. ej., la familia MPEG, H.261, H.263 o H.264/AVC) o «unidades de codificación» (CU) en otros estándares de codificación de vídeo (p. ej., H.265/HEVC o H.266/VVC). Una subunidad de procesamiento básica puede tener el mismo tamaño o ser menor que la unidad de procesamiento básica. De forma similar a lo que ocurre con las unidades de procesamiento básicas, las subunidades de procesamiento básicas son también unidades lógicas, que pueden comprender un grupo de diferentes tipos de datos de vídeo (p. ej., Y, Cb, Cr y elementos de sintaxis asociados) almacenados en una memoria de ordenador (p. ej., en un búfer de cuadros de vídeo). Cualquier operación efectuada en una subunidad de procesamiento básica puede efectuarse de forma repetida en cada uno de sus componentes de luminancia y crominancia. Es preciso tener en cuenta que dicha división puede efectuarse en niveles ulteriores, en función de las necesidades de procesamiento. También es preciso tener en cuenta que las diferentes etapas pueden dividir las unidades de procesamiento básicas usando diferentes esquemas.
[0076] Por ejemplo, en una etapa de decisión de modo (un ejemplo de la cual se muestra en la Fig. 2), el codificador puede decidir qué modo de predicción (p. ej., predicción intraimagen o predicción interimagen) usar para una unidad de procesamiento básica, que puede ser demasiado grande como para tomar tal decisión. El codificador puede dividir la unidad de procesamiento básica en múltiples subunidades de procesamiento básicas (p. ej., CU como en H.265/HEVC o H.266/VVC) y decidir un tipo de predicción para cada subunidad de procesamiento básica individual.
[0078] En otro ejemplo, en una etapa de predicción (un ejemplo de la cual se muestra en la Fig. 2), el codificador puede efectuar una operación de predicción a nivel de subunidades de procesamiento básicas (p. ej., CU). No obstante, en algunos casos, una subunidad de procesamiento básica puede ser aún demasiado grande para su procesamiento. El codificador puede dividir de forma adicional la subunidad de procesamiento básica en segmentos más pequeños (p. ej., denominados «bloques de predicción» o «PB» en H.265/HEVC o H.266/VVC), a cuyo nivel se puede efectuar la operación de predicción.
[0080] En otro ejemplo, en una etapa de transformada (un ejemplo de la cual se muestra en la Fig. 2), el codificador puede efectuar una operación de transformada para las subunidades de procesamiento básicas residuales (p. ej., CU). No obstante, en algunos casos, una subunidad de procesamiento básica puede ser aún demasiado grande para su procesamiento. El codificador puede dividir de forma adicional la subunidad de procesamiento básica en segmentos más pequeños (p. ej., denominados «bloques de transformada» o «TB» en H.265/HEVC o H.266/VVC), a cuyo nivel se puede efectuar la operación de transformada. Es preciso tener en cuenta que los esquemas de división de una misma subunidad de procesamiento básica pueden ser diferentes en la etapa de predicción y en la etapa de transformada. Por ejemplo, en H.265/HEVC o H.266/VVC, los bloques de predicción y los bloques de transformada de una misma CU pueden ser diferentes en cuanto a tamaño y cantidad.
[0082] En la estructura 110 de la Fig. 1, la unidad de procesamiento básica 112 está dividida de forma adicional en 3*3 subunidades de procesamiento básicas, cuyos límites se muestran como líneas punteadas. Diferentes unidades de procesamiento básicas de una misma imagen pueden dividirse en subunidades de procesamiento básicas en diferentes esquemas.
[0084] En algunas implementaciones, con el fin de proporcionar la capacidad de procesamiento en paralelo y la tolerancia a errores en la codificación y decodificación de vídeo, se puede dividir una imagen en regiones para el procesamiento, de manera que, para cada región de la imagen, el proceso de codificación o decodificación puede no depender de ninguna información de otra región de la imagen. Es decir, cada región de la imagen se puede procesar de forma independiente. De esta forma, el códec puede procesar diferentes regiones de una imagen en paralelo, lo que aumenta la eficiencia de la codificación. Asimismo, cuando los datos de una región resultan dañados en el procesamiento o se pierden en la transmisión de red, el códec puede codificar o decodificar correctamente otras regiones de la misma imagen sin depender de los datos dañados o perdidos, lo que proporciona la capacidad de tolerancia a errores. En algunos estándares de codificación de vídeo, una imagen puede dividirse en diferentes tipos de regiones. Por ejemplo, H.265/HEVC y H.266/VVC proporcionan dos tipos de regiones: «slices» (porciones) y «tiles» (mosaicos). Es preciso tener en cuenta también que diferentes imágenes de la secuencia de vídeo 100 pueden tener diferentes esquemas de partición para dividir una imagen en regiones.
[0085] Por ejemplo, en la Fig. 1, la estructura 110 se divide en tres regiones 114, 116 y 118, cuyos límites se muestran como líneas continuas dentro de la estructura 110. La región 114 comprende cuatro unidades de procesamiento básicas. Cada una de las regiones 116 y 118 comprenden seis unidades de procesamiento básicas. Es preciso tener en cuenta que las unidades de procesamiento básicas, las subunidades de procesamiento básicas y las regiones de la estructura 110 de la Fig. 1 son solo ejemplos, y la presente divulgación no limita las realizaciones de las mismas.
[0087] La Fig. 2 ilustra un diagrama esquemático de un codificador 200 ejemplar de un sistema de codificación de vídeo híbrido de acuerdo con algunas realizaciones de la presente divulgación. El codificador 200 de vídeo puede efectuar la codificación intra o inter de bloques dentro de los cuadros de vídeo, lo que comprende bloques de vídeo o particiones o subparticiones de los bloques de vídeo. La codificación intra puede depender de la predicción espacial para reducir o eliminar la redundancia espacial en el vídeo dentro de un cuadro de vídeo determinado. La codificación inter puede depender de la predicción temporal para reducir o eliminar la redundancia temporal en el vídeo entre cuadros adyacentes de una secuencia de vídeo. Los modos intra pueden hacer referencia a una variedad de modos de compresión basados en el espacio. Los modos inter (como la unipredicción o la bipredicción) pueden hacer referencia a una variedad de modos de compresión basados en el tiempo.
[0089] Haciendo referencia a la Fig. 2, la señal de vídeo de entrada 202 puede procesarse bloque por bloque. Por ejemplo, la unidad de bloque de vídeo puede ser un bloque de 16*16 píxeles (p. ej., un macrobloque (MB)). El tamaño de las unidades de bloque de vídeo puede variar dependiendo de las técnicas de codificación empleadas, así como de la precisión y la eficiencia requeridas. En HEVC, pueden usarse tamaños de bloque ampliados (p. ej., una unidad de árbol de codificación (CTU)) para comprimir señales de vídeo de resoluciones de, p. ej., 1080p o más. En HEVC, una CTU puede comprender hasta 64*64 muestras de luminancia, muestras de crominancia correspondientes y elementos de sintaxis asociados. En VVC, el tamaño de una CTU puede aumentarse de forma adicional para incluir 128*128 muestras de luminancia, muestras de crominancia correspondientes y elementos de sintaxis. Una CTU puede dividirse de forma adicional en unidades de codificación (CU) usando, por ejemplo, un árbol cuaternario, un árbol binario o un árbol ternario. Una CU puede particionarse de forma adicional en unidades de predicción (PU), para lo cual pueden aplicarse métodos de predicción separados. Cada bloque de vídeo de entrada puede ser procesado usando una unidad de predicción espacial 260 o una unidad de predicción temporal 262.
[0091] La unidad de predicción espacial 260 efectúa la predicción espacial (p. ej., intrapredicción) para el bloque/CU actual usando información de la misma imagen/slice que contiene el bloque actual. La predicción espacial puede usar píxeles de los bloques adyacentes ya codificados del mismo cuadro de imagen/slice de vídeo para predecir el bloque de vídeo actual. La predicción espacial puede reducir la redundancia espacial inherente a la señal de vídeo.
[0092] La unidad de predicción temporal 262 efectúa la predicción temporal (p. ej., interpredicción) para el bloque actual usando la información de una o varias imágenes/slices que son diferentes de la imagen/slice que contiene el bloque actual. La predicción temporal para un bloque de vídeo puede ser señalizada por uno o más vectores de movimiento. En la predicción temporal unidireccional, se usa un solo vector de movimiento que indica una imagen de referencia para generar la señal de predicción para el bloque actual. Por otro lado, en la predicción temporal bidireccional, se pueden usar dos vectores de movimiento, donde cada uno indica una imagen de referencia correspondiente, para generar la señal de predicción para el bloque actual. Los vectores de movimiento pueden indicar la cantidad y la dirección de movimiento entre el bloque actual y uno o más bloques asociados en los cuadros de referencia. Si se admiten múltiples imágenes de referencia, se pueden enviar uno o más índices de imagen de referencia para un bloque de vídeo. Dichos uno o más índices de referencia pueden usarse para identificar de qué imágen(es) de referencia del almacén de imágenes de referencia o el búfer de imagen decodificada (DPB) 264 puede proceder la señal de predicción temporal.
[0094] La unidad de decisión de modo y control de codificador 280 del codificador puede elegir el modo de predicción, por ejemplo, en función de la optimización de la tasa-distorsión. En función del modo de predicción determinado, se puede obtener el bloque de predicción. El bloque de predicción puede sustraerse del bloque de vídeo actual en un dispositivo de adición 216. El residuo de predicción puede ser transformado por una unidad de transformada 204 y cuantificado por una unidad de cuantificación 206. Los coeficientes de residuo cuantificados pueden ser cuantificados de forma inversa en una unidad de cuantificación inversa 210 y transformados de forma inversa en una unidad de transformada inversa 212 para formar el residuo reconstruido. El residuo reconstruido puede añadirse al bloque de predicción en el dispositivo de adición 226 para formar el bloque de vídeo reconstruido. El bloque de vídeo reconstruido antes del filtrado en bucle puede usarse para proporcionar muestras de referencia para la intrapredicción.
[0096] El bloque de vídeo reconstruido puede pasar por filtrado en bucle en el filtro de bucle 266. Por ejemplo, puede aplicarse filtrado en bucle como filtro de desbloqueo, compensación adaptativa de muestra (SAO) y filtro de bucle adaptativo (ALF). El bloque reconstruido tras el filtrado en bucle puede almacenarse en el almacén de imágenes de referencia 264 y puede usarse para proporcionar muestras de referencia de interpredicción para codificar otros bloques de vídeo. Con el fin de formar el flujo de bits 220 de vídeo de salida, pueden enviarse el modo de codificación (p. ej., inter o intra), la información del modo de predicción, la información de movimiento y los coeficientes de residuo cuantificado a la unidad de codificación entrópica 208 para reducir en mayor medida la tasa de bits antes de que los datos sean comprimidos y empaquetados para formar el flujo de bits 220.
[0098] La Fig. 3 ilustra un diagrama esquemático de un decodificador 300 ejemplar de un sistema de codificación de vídeo híbrido de acuerdo con algunas realizaciones de la presente divulgación. Haciendo referencia a la Fig. 3, un flujo de bits 302 de vídeo puede ser desempaquetado o decodificado entrópicamente en una unidad de decodificación entrópica 308. La información del modo de codificación puede usarse para determinar si se debe seleccionar la unidad de predicción espacial 360 o la unidad de predicción temporal 362. La información del modo de predicción puede enviarse a la unidad de predicción correspondiente para generar el bloque de predicción. Por ejemplo, la unidad de predicción temporal 362 puede aplicar predicción compensada por movimiento para formar el bloque de predicción temporal.
[0100] Los coeficientes de residuo pueden ser enviados a la unidad de cuantificación inversa 310 y a la unidad de transformada inversa 312 para obtener el residuo reconstruido. El bloque de predicción y el residuo reconstruido pueden añadirse juntos en 326 para formar el bloque reconstruido antes del filtrado en bucle. El bloque reconstruido puede, entonces, pasar por filtrado en bucle en el filtro de bucle 366. Por ejemplo, se puede aplicar filtrado en bucle como filtro de desbloqueo, SAO y ALF. El bloque reconstruido, tras el filtrado en bucle, puede ser almacenado en el almacén de imágenes de referencia 364. Los datos reconstruidos del almacén de imágenes de referencia 364 pueden usarse para obtener el vídeo decodificado 320, o usarse para predecir bloques de vídeo futuros. El vídeo decodificado 320 puede visualizarse en un dispositivo de visualización, como un TV, un PC, un smartphone o una tableta, para ser visualizado por los usuarios finales.
[0102] La Fig. 4 es un diagrama de bloques de un aparato 400 ejemplar usado para codificar o decodificar un vídeo de acuerdo con algunas realizaciones de la presente divulgación. Como se muestra en la Fig. 4, el aparato 400 puede comprender un procesador 402. Cuando el procesador 402 ejecuta las instrucciones descritas en el presente documento, el aparato 400 puede convertirse en una máquina especializada para la codificación o la decodificación de vídeo. El procesador 402 puede ser cualquier tipo de circuito capaz de manipular o de procesar información. Por ejemplo, el procesador 402 puede comprender cualquier combinación de cualquier cantidad de una unidad de procesamiento central (o «CPU»), una unidad de procesamiento de gráficos (o «GPU»), una unidad de procesamiento neuronal («NPU»), una unidad de microcontrolador («MCU») un procesador óptico, un controlador lógico programable, un microcontrolador, un microprocesador, un procesador de señal digital, un núcleo de propiedad intelectual (IP), una matriz lógica programable (PLA), una lógica de matriz programable (PAL), una lógica de matriz genérica (GAL), un dispositivo de lógica programable complejo (CPLD), una matriz de puerta programable en campo (FPGA), un sistema en chip (SoC), un circuito integrado de aplicación específica (ASIC) o similares. En algunas realizaciones, el procesador 402 puede también ser un conjunto de procesadores agrupados como un componente lógico individual. Por ejemplo, como se muestra en la Fig. 4, el procesador 402 puede comprender múltiples procesadores, lo que incluye un procesador 402a, un procesador 402b y un procesador 402n.
[0103] El aparato 400 también puede comprender una memoria 404 configurada para almacenar datos (p. ej., un conjunto de instrucciones, códigos de ordenador, datos intermedios o similares). Por ejemplo, como se muestra en la Fig. 4, los datos almacenados pueden comprender instrucciones de programa (p. ej., instrucciones de programa para implementar las etapas de las Fig. 2 o 3) y datos para procesamiento. El procesador 402 puede acceder a las instrucciones de programa y a los datos para procesamiento (p. ej., a través de un bus 410), y ejecutar instrucciones de programa para efectuar una operación o manipulación en los datos para procesamiento. La memoria 404 puede comprender un dispositivo de almacenamiento de acceso aleatorio de alta velocidad o un dispositivo de almacenamiento no volátil. En algunas realizaciones, la memoria 404 puede comprender cualquier combinación de cualquier cantidad de una memoria de acceso aleatorio (RAM), una memoria de solo lectura (ROM), un disco óptico, un disco magnético, un disco duro, una unidad de estado sólido, una unidad flash, una tarjeta digital de seguridad (SD), una memory stick, una tarjeta compact flash (CF) o similares. La memoria 404 puede ser también un grupo de memorias (no mostrado en la Fig. 4) agrupadas como un componente lógico individual.
[0105] El bus 410 puede ser un dispositivo de comunicación que transfiere datos entre los componentes dentro del aparato 400, como un bus interno (p. ej., un bus memoria-CPU), un bus externo (p. ej., un puerto de bus serie universal, un puertoPeripheral Component Interconnect Express)o similares.
[0107] A fin de evitar posibles ambigüedades en la explicación, el procesador 402 y otros circuitos de procesamiento de datos se denominan de forma colectiva «circuito de procesamiento de datos» en la presente divulgación. El circuito de procesamiento de datos puede implementarse en su totalidad como hardware o como una combinación de software, hardware o firmware. Además, el circuito de procesamiento de datos puede ser un módulo independiente individual o puede combinarse total o parcialmente en cualquier otro componente del aparato 400.
[0109] El aparato 400 puede comprender además una interfaz de red 406 para proporcionar comunicación con cable o inalámbrica con una red (p. ej., Internet, una intranet, una red de área local, una red de comunicaciones móviles o similares). En algunas realizaciones, la interfaz de red 406 puede comprender cualquier combinación de cualquier cantidad de un controlador de interfaz de red (NIC), un módulo de radiofrecuencia (RF), un transpondedor, un transceptor, un módem, un rúter, una puerta de enlace, un adaptador de red cableado, un adaptador de red inalámbrica, un adaptador de Bluetooth, un adaptador de infrarrojos, un adaptador de comunicación de campo cercano («NFC»), un chip de red celular o similares.
[0111] En algunas realizaciones, de manera opcional, el aparato 400 puede comprender además una interfaz periférica 408 para proporcionar una conexión con uno o más dispositivos periféricos. Como se muestra en la Fig. 4, el dispositivo periférico puede comprender, entre otros, un dispositivo de control de cursor (p. ej., un ratón, un panel táctil o una pantalla táctil), un teclado, una pantalla (p. ej., una pantalla de tubo de rayos catódicos, una pantalla de cristal líquido o una pantalla de diodos emisores de luz), un dispositivo de entrada de vídeo (p. ej., una cámara o una interfaz de entrada acoplada a un archivo de vídeo) o similares.
[0113] Es preciso tener en cuenta que los códecs de vídeo se pueden implementar como cualquier combinación de cualesquiera módulos de software o hardware del aparato 400. Por ejemplo, algunas o todas las etapas del codificador 200 de la Fig. 2 o el decodificador 300 de la Fig. 3 se pueden implementar como uno o más módulos de software del aparato 400, como instrucciones de programa que pueden cargarse en la memoria 404. En otro ejemplo, algunas o todas las etapas del codificador 200 de la Fig. 2 o el decodificador 300 de la Fig. 3 pueden implementarse como uno o más módulos de hardware del aparato 400, como un circuito de procesamiento de datos especializado (p. ej., una FPGA, un ASIC, una NPU o similares).
[0115] En los bloques funcionales de cuantificación y cuantificación inversa (p. ej., la unidad de cuantificación 206 y la unidad de cuantificación inversa 210 de la Fig. 2, la unidad de cuantificación inversa 310 de la Fig. 3) se usa un parámetro de cuantificación (QP) para determinar la cantidad de cuantificación (y cuantificación inversa) aplicada a los residuos de predicción. Los valores de QP iniciales usados para la codificación de una imagen o slice pueden señalizarse en el nivel más alto, por ejemplo, usando el elemento de sintaxis init_qp_minus26 en el conjunto de parámetros de imagen (PPS) y usando el elemento de sintaxis slice_qp_delta en el encabezado del slice. Además, los valores de QP pueden adaptarse a nivel local para cada CU utilizando valores delta QP enviados según la granularidad de grupos de cuantificación.
[0117] En VVC, se usa la transformada de subbloque (SBT) para una unidad de codificación (CU) interpredicha. En este modo de transformada, solo se codifica una subparte del bloque residual para la CU. Cuando la CU interpredicha con el elemento de sintaxis cu_cbf es igual a 1, se puede señalizar el elemento de sintaxis cu_sbt_flag para indicar si el bloque residual entero o una subparte del bloque residual está codificada. En el primer caso, la información de selección múltiple de transformadas (MTS) inter se analiza de forma adicional para determinar el tipo de transformada de la CU. En el segundo caso, se codifica una parte del bloque residual con transformada adaptativa inferida y se pone a cero la otra parte del bloque residual.
[0119] Cuando se usa SBT para una CU interpredicha, la información de tipo de SBT y posición de SBT se señaliza en el flujo de bits. Hay dos tipos de SBT y dos posiciones de SBT, como se muestra en la Fig. 5. Para SBT-V (o SBT-H), el ancho (o alto) de la unidad de transformada (TU) puede ser igual a la mitad del ancho (o el alto) de la CU o 1/4 del ancho (o el alto) de la CU, lo que da como resultado una división 2:2 o una división 1:3/3:1. La división 2:2 es como una división de árbol binario (BT), mientras que la división 1:3/3:1 es como una división de árbol binario asimétrico (ABT). En la división ABT, solo la región pequeña contiene el residuo que es distinto de cero. Si una de las dimensiones de una CU es de 8 muestras de luminancia, no se permite la división 1:3/3:1 a lo largo de esta dimensión. Existen, como máximo, 8 modos de SBT para una CU.
[0121] La sintaxis a nivel de conjunto de parámetros de secuencia (SPS) puede usar el elemento de sintaxis sps_sbt_enabled_flag para especificar si la SBT está habilitada o deshabilitada. Cuando el elemento de sintaxis sps_sbt_enabled_flag es igual a 0, señaliza que la SBT para CU interpredichas está deshabilitada para la totalidad de la secuencia de vídeo que hace referencia a este s Ps . Cuando el elemento de sintaxis sps_sbt_enabled_flag es igual a 1, señaliza que la SBT para CU interpredichas está habilitada para la totalidad de la secuencia de vídeo que hace referencia a este SPS.
[0123] Asimismo, cuando sps_sbt_enabled_flag es igual a 1, se puede usar otro elemento de sintaxis de SPS sps_sbt_max_size_64_flag con el fin de especificar el ancho y el alto máximos de CU para los que se permite la SBT. Cuando el elemento de sintaxis sps_sbt_max_size_64_flag es igual a 0, señaliza que el ancho y el alto máximos de CU para permitir la SBT son 32 muestras de luminancia. Cuando el elemento de sintaxis sps_sbt_max_size_64_flag es igual a 1, señaliza que el ancho y el alto máximos de CU para permitir la SBT son 64 muestras de luminancia. La variable MaxSbtSize, que puede especificar el tamaño máximo de CU permitido para la SBT, se calcula de acuerdo con la siguiente Ecuación 1:
[0125] MaxSbtSize = Min(MaxTbSizeY, sps_sbt_max_size_64_flag?64: 32) (Ec.1)
[0126] en donde MaxTbSizeY es el máximo tamaño de bloque de transformada (TB) permitido y se puede derivar de otro elemento de sintaxis a nivel de SPS, sps_max_luma_transform_size_64_flag, de acuerdo con la siguiente Ecuación 2:
[0128] MaxTbSizeY = sps_max_luma_transform_size_64_flag? 64: 32 (Ec.2)
[0129] Tal y como se ha descrito anteriormente, la derivación de MaxSbtSize depende de los dos elementos de sintaxis sps_max_luma_transform_size_64_flag y sps_sbt_max_size_64_flag. Si el valor del elemento de sintaxis sps_max_luma_transform_size_64_flag = 0, MaxSbtSize es siempre 32, sin importar el valor del elemento de sintaxis sps_sbt_max_size_64_flag. Por consiguiente, no es preciso señalizar el elemento de sintaxis sps_sbt_max_size_64_flag cuando el elemento de sintaxis sps_max_luma_transform_size_64_flag es cero. Tal redundancia sintáctica en VVC aumenta la sobrecarga de señalización de una forma no necesaria.
[0131] Con el fin de mejorar la eficiencia de la codificación de vídeo, de acuerdo con algunas realizaciones divulgadas, el elemento de sintaxis sps_sbt_max_size_64_flag solo es señalizado cuando ambos elementos de sintaxis, sps_max_luma_transform_size_64_flag y sps_sbt_enabled_flag, son iguales a 1. La Fig. 6 ilustra una Tabla 1 ejemplar de acuerdo con algunas realizaciones de la presente divulgación. La Tabla 1 muestra una tabla de sintaxis de SPS ejemplar de algunas realizaciones. Como se muestra en la Tabla 1 (en la que la cursiva muestra énfasis), el elemento de sintaxis sps_sbt_max_size_64_flag solo es señalizado si ambos elementos de sintaxis, sps_max_luma_transform_size_64_flag y sps_sbt_enabled_flag, son iguales a 1. Si el elemento de sintaxis sps_max_luma_transform_size_64_flag es 0, puede inferirse que el elemento de sintaxis sps_sbt_max_size_64_flag es cero, lo que significa que el ancho y el alto máximos de CU para permitir la SBT son 32 (en unidades de muestras de luminancia).
[0133] La Fig. 7 ilustra un diagrama de flujo de un método 700 de procesamiento de vídeo ejemplar de acuerdo con algunas realizaciones de la presente divulgación. En algunas realizaciones, el método 700 puede efectuarse con un codificador (p. ej., el codificador 200 de la Fig. 2), un decodificador (p. ej., el decodificador 300 de la Fig. 3) o uno o más componentes de software o hardware de un aparato (p. ej., el aparato 400 de la Fig. 4). Por ejemplo, un procesador (p. ej., el procesador 402 de la Fig. 4) puede efectuar el método 700. En algunas realizaciones, el método 700 puede ser implementado por un producto de programa de ordenador incorporado en un medio legible por ordenador y que incluye instrucciones ejecutables por ordenador, como un código de programa, ejecutado por ordenadores (p. ej., el aparato 400 de la Fig. 4).
[0135] En el paso 702, el método 700 puede comprender determinar si se ha habilitado una transformada de subbloque (SBT) en un conjunto de parámetros de secuencia (SPS) de una secuencia de vídeo. En algunas realizaciones, una bandera (p. ej., el elemento de sintaxis sps_sbt_enabled_flag mostrado en la Tabla 1 de la Fig. 6) puede ser señalizada en el SPS indicando si la SBT está habilitada. Por ejemplo, cuando el elemento de sintaxis sps_sbt_enabled_flag es igual a 0, puede especificar que la SBT para CU interpredichas está deshabilitada para la totalidad de la secuencia de vídeo que hace referencia al SPS. Y cuando el elemento de sintaxis sps_sbt_enabled_flag es igual a 1, puede especificar que la SBT para CU interpredichas está habilitada para la totalidad de la secuencia de vídeo que hace referencia al SPS.
[0137] En el paso 704, el método 700 puede comprender determinar un valor de una primera bandera del SPS que indica un tamaño máximo de bloque de transformada (TB) que permite la SBT La primera bandera puede establecerse como un primer valor o un segundo valor. Por ejemplo, el primer valor es 1 y el segundo valor es 0. El tamaño máximo de TB puede ser 32, 64 o similares. En algunas realizaciones, el método 700 también puede comprender, en respuesta a que el tamaño máximo de TB sea 64, establecer el primer valor como valor de la primera bandera y, en respuesta a que el tamaño máximo de TB sea 32, establecer el segundo valor como el valor de la primera bandera. En algunas realizaciones, la primera bandera puede ser el elemento de sintaxis sps_max_luma_transform_size_64_flag de la Tabla 1 de la Fig. 6.
[0139] En el paso 706, el método 700 puede comprender, en respuesta a que la SBT esté habilitada y a que el valor de la primera bandera sea igual a un primer valor, señalizar una segunda bandera que indica un tamaño máximo de unidad de codificación (CU) que permite la SBT. La segunda bandera no es señalizada en respuesta a que la SBT esté deshabilitada o a que el valor de la primera bandera sea igual a un segundo valor. Por ejemplo, la segunda bandera puede ser el elemento de sintaxis sps_sbt_max_size_64_flag como se muestra en la Tabla 1 de la Fig. 6. El elemento de sintaxis sps_sbt_max_size_64_flag solo es señalizado cuando ambos elementos de sintaxis, sps_max_luma_transform_size_64_flag y sps_sbt_enabled_flag, son iguales a 1.
[0141] En algunas realizaciones, el método 700 puede comprender también señalizar una tercera bandera (p. ej., el elemento de sintaxis sps_sbt_enabled_flag mostrado en la Tabla 1 de la Fig. 6) del SPS que indica si la SBT está habilitada y señalizar la primera bandera (p. ej., el elemento de sintaxis sps_max_luma_transform_size_64_flag de la Tabla 1 de la Fig. 6) del SPS.
[0143] En algunas realizaciones, el tamaño máximo de CU puede ser de 32 o 64. Se pueden determinar el ancho o alto máximos de CU que permiten la SBT en función del valor más pequeño de entre el tamaño máximo de TB y el tamaño máximo de CU (p. ej., de acuerdo con la Ecuación 1).
[0145] En algunas realizaciones divulgadas, el elemento de sintaxis sps_sbt_max_size_64_flag no es señalizado en absoluto. En este caso, el ancho y el alto máximos de CU permitidos de la SBT depende directamente del elemento de sintaxis sps_max_luma_transform_size_64_flag. Si el elemento de sintaxis sps_max_luma_transform_size_64_flag es igual a 0, el ancho y el alto máximos de CU para permitir la SBT son 32 muestras de luminancia. Si el elemento de sintaxis sps_max_luma_transform_size_64_flag es igual a 1, el ancho y el alto máximos de CU para permitir la SBT son 64 muestras de luminancia. En otras palabras, MaxSbtSize se establece para ser igual a MaxTbSizeY La Fig. 8 ilustra una Tabla 2 ejemplar de acuerdo con algunas realizaciones de la presente divulgación. La Tabla 2 muestra una sintaxis de SPS ejemplar que implementa estas realizaciones. Como se muestra en la Tabla 2, el elemento de sintaxis sps_sbt_max_size_64_flag no se señaliza y se elimina de la sintaxis. La Fig. 9 ilustra una Tabla 3 ejemplar de acuerdo con algunas realizaciones de la presente divulgación. La Tabla 3 (en la que la cursiva muestra énfasis) muestra una tabla de sintaxis de unidad de codificación (CU) ejemplar que usa directamente MaxTbSizeY para establecer el ancho y el alto máximos de CU. MaxTbSizeY se calcula de acuerdo con la siguiente Ecuación 3:
[0147] MaxTbSizeY = sps_max_luma_transform_size_64_flag? 64: 32 (Ec.3)
[0148] La Fig. 10 ilustra un diagrama de flujo de otro método 1000 de procesamiento de vídeo ejemplar de acuerdo con algunas realizaciones de la presente divulgación. En algunas realizaciones, el método 1000 puede efectuarse con un codificador (p. ej., el codificador 200 de la Fig. 2), un decodificador (p. ej., el decodificador 300 de la Fig. 3) o uno o más componentes de software o hardware de un aparato (p. ej., el aparato 400 de la Fig. 4). Por ejemplo, un procesador (p. ej., el procesador 402 de la Fig. 4) puede efectuar el método 1000. En algunas realizaciones, el método 1000 puede ser implementado por un producto de programa de ordenador incorporado en un medio legible por ordenador y que incluye instrucciones ejecutables por ordenador, como un código de programa ejecutado por ordenadores (p. ej., el aparato 400 de la Fig. 4).
[0150] En el paso 1002, el método 1000 comprende señalizar una primera bandera en un conjunto de parámetros de secuencia (SPS) de una secuencia de vídeo que indica si una transformada de subbloque (SBT) está habilitada. En algunas realizaciones, la primera bandera puede ser el elemento de sintaxis sps_sbt_enabled_flag como se muestra en la Tabla 2 de la Fig. 8. Por ejemplo, cuando el elemento de sintaxis sps_sbt_enabled_flag es igual a 0, puede especificar que la SBT para CU interpredichas está deshabilitada para la totalidad de la secuencia de vídeo que hace referencia al SPS. Y cuando el elemento de sintaxis sps_sbt_enabled_flag es igual a 1, puede especificar que la SBT para CU interpredichas está habilitada para la totalidad de la secuencia de vídeo que hace referencia al SPS.
[0152] En el paso 1004, el método 1000 puede comprender señalizar una segunda bandera que indica un tamaño máximo de bloque de transformada (TB) que permite la SBT. La segunda bandera puede establecerse como un primer valor o un segundo valor. Por ejemplo, el primer valor es 1 y el segundo valor es 0. El tamaño máximo de TB puede ser 32, 64 o similar. En algunas modalidades, el método 1000 también puede comprender, en respuesta a que el tamaño máximo de TB sea 32, establecer un valor de la segunda bandera para que sea 0, y, en respuesta a que el tamaño máximo de TB sea 64, establecer un valor de la segunda bandera para que sea 1. En algunas realizaciones, la primera bandera puede ser el elemento de sintaxis sps_max_luma_transform_size_64_flag de la Tabla 2 de la Fig. 8.
[0154] Un tamaño máximo de CU que permite la SBT puede determinarse directamente de acuerdo con el tamaño máximo de TB en respuesta a que la primera bandera indique que la SBT está habilitada. Por ejemplo, el tamaño máximo de CU se determina para que sea igual que el tamaño máximo de TB. El tamaño máximo de CU puede comprender un ancho máximo de CU y un alto máximo de CU.
[0156] En algunas realizaciones, también se proporciona un medio de almacenamiento legible por ordenador no transitorio que comprende instrucciones, y las instrucciones pueden ser ejecutadas por un dispositivo (como el codificador y el decodificador divulgados) para efectuar los métodos antes descritos. Las formas comunes de medios no transitorios comprenden, por ejemplo, un disquete, un disco flexible, un disco duro, una unidad de estado sólido, una cinta magnética o cualquier otro medio de almacenamiento magnético de datos, un CDROM, cualquier otro medio de almacenamiento óptico de datos, cualquier medio físico con patrones de orificios, una RAM, una PROM o EPROM, una FLASH-EPROM o cualquier otra memoria flash, NVRAM, una caché, un registro, cualquier otro chip o cartucho de memoria, así como versiones en red de estos. El dispositivo puede comprender uno o más procesadores (CPU), una interfaz de entrada/salida, una interfaz de red y/o una memoria.
[0158] Es preciso tener en cuenta que, según se usan en el presente documento, los términos que indican relaciones, como «primero/a» y «segundo/a» solo se usan con el fin de diferenciar una entidad u operación de otra entidad u operación, y no requieren o implican ningún tipo de relación o secuencia real entre dichas entidades u operaciones. Asimismo, los términos «comprender», «tener», «contener» e «incluir», así como otras formas similares, se entienden como equivalentes en significado y de carácter abierto, de manera que la aparición de un elemento o de varios elementos siguiendo a cualquiera de estas palabras no podrá considerarse una lista exhaustiva de dicho elemento o de dichos elementos, ni tampoco se pretende establecer una limitación al elemento o a los elementos listados.
[0160] Según se usa en el presente documento, a menos que se indique específicamente lo contrario, el término «o» abarca todas las combinaciones posibles, excepto cuando no sea factible. Por ejemplo, si se afirma que una base de datos puede comprender A o B, a menos que se indique específicamente lo contrario o que no sea factible, la base de datos puede comprender A o B, o A y B. Como un segundo ejemplo, si se afirma que una base de datos puede comprender A, B o C, a menos que se indique específicamente lo contrario o que no sea factible, la base de datos puede comprender A o B o C, o A y B, o A y C, o B y C, o A y B y C.
[0162] Se entiende que las realizaciones antes descritas pueden implementarse mediante hardware o software (códigos de programa), o una combinación de hardware o software. Si se implementan mediante software, este puede almacenarse en el medio legible por ordenador antes descrito. El software, cuando es ejecutado por el procesador, puede efectuar los métodos divulgados. Las unidades de computación y otras unidades funcionales descritas en la presente divulgación pueden implementarse mediante hardware o software, o mediante una combinación de hardware y software. Cualquier persona con conocimientos ordinarios en la técnica entenderá también que múltiples de los módulos/unidades descritos anteriormente pueden combinarse como un módulo/unidad, y cada uno de los módulos/unidades descritos anteriormente puede dividirse además en una pluralidad de submódulos/subunidades.
[0164] En la memoria descriptiva anterior, se han descrito las realizaciones haciendo referencia a numerosos detalles específicos que pueden variar de una implementación a otra. Existe la posibilidad de llevar a cabo ciertas adaptaciones o modificaciones de las realizaciones descritas. A partir de la consideración de la memoria descriptiva y de la práctica de la invención descrita en el presente documento, pueden hacerse evidentes otras realizaciones para las personas con conocimientos ordinarios en la técnica. Se pretende que la memoria descriptiva y los ejemplos se consideren solo como ejemplares, de manera que un verdadero alcance de la invención quede indicado por las siguientes reivindicaciones. También se pretende que la secuencia de pasos mostrada en las figuras posea, exclusivamente, propósitos ilustrativos, y que no se entienda que está limitada a una secuencia particular de pasos. Las personas con conocimientos ordinarios en la técnica podrán apreciar que estos pasos pueden efectuarse en un orden diferente mientras se implementa el mismo método.
[0166] En los dibujos y la memoria descriptiva se divulgan realizaciones ejemplares. No obstante, existe la posibilidad de llevar a cabo multitud de variaciones y modificaciones en estas realizaciones. En consecuencia, aunque se emplean términos específicos, estos se utilizan únicamente en un sentido genérico y descriptivo, y no con fines de limitación.

Claims (9)

1. REIVINDICACIONES
1. Método (200) de codificación de una secuencia de vídeo en un flujo de bits, en donde el método comprende: señalizar (1002), en un conjunto de parámetros de secuencia SPS codificado en un flujo de bits (220, 302), una primera bandera que indica si una transformada de subbloque SBT está habilitada; y
señalizar (1004), en el SPS codificado en el flujo de bits, una segunda bandera que indica un tamaño máximo de transformada para muestras de luminancia,
caracterizado por que
cuando la primera bandera indica que la SBT está habilitada:
un tamaño máximo de unidad de codificación CU que permite la SBT se establece como 64 en respuesta a que la segunda bandera indique que el tamaño máximo de transformada de las muestras de luminancia es 64; y un tamaño máximo de unidad de codificación CU que permite la SBT se establece como 32 en respuesta a que la segunda bandera indique que el tamaño máximo de transformada de las muestras de luminancia es 32.
2. Método (300) de decodificación de un flujo de bits para generar un vídeo (320), en donde el método comprende: recibir un flujo de bits (302);
decodificar, a partir de información codificada para un conjunto de parámetros de secuencia SPS codificado en el flujo de bits (228), una primera bandera que indica si una transformada de subbloque SBT está habilitada; decodificar, a partir de información codificada para el SPS codificado en el flujo de bits (228), una segunda bandera que indica un tamaño máximo de transformada para muestras de luminancia; y caracterizado por que: cuando la primera bandera indica que la SBT está habilitada, se establece un tamaño máximo de unidad de codificación CU que permite la SBT usando la segunda bandera, en donde:
un tamaño máximo de unidad de codificación CU que permite la SBT se establece como 64 en respuesta a que la segunda bandera indique que el tamaño máximo de transformada de las muestras de luminancia es 64, y un tamaño máximo de unidad de codificación CU que permite la SBT se establece como 32 en respuesta a que la segunda bandera indique que el tamaño máximo de transformada de las muestras de luminancia es 32.
3. Método según las reivindicaciones 1 o 2, caracterizado por que el tamaño máximo de CU que permite la SBT es un ancho máximo de CU o un alto máximo de CU.
4. Método según cualquiera de las reivindicaciones anteriores, caracterizado por que el tamaño máximo de transformada es 32 o 64.
5. Método según la reivindicación 4, que comprende, además:
en respuesta a que un valor de la segunda bandera sea 0, establecer el tamaño máximo de transformada como 32.
6. Método según la reivindicación 4, que comprende, además:
en respuesta a que un valor de la segunda bandera sea 1, establecer el tamaño máximo de transformada como 64.
7. Aparato (400) para codificar una secuencia de vídeo en un flujo de bits, en donde el aparato comprende: al menos una memoria (404) para almacenar instrucciones; y
al menos un procesador (402) configurado para ejecutar las instrucciones para hacer que el aparato efectúe un método de acuerdo con cualquiera de las reivindicaciones 1 o 3 a 6.
8. Aparato (400) para decodificar un flujo de bits, en donde el aparato comprende:
al menos una memoria (404) para almacenar instrucciones; y
al menos un procesador (402) configurado para ejecutar las instrucciones para hacer que el aparato efectúe un método de acuerdo con cualquiera de las reivindicaciones 2 a 6.
9. Medio legible por ordenador que comprende instrucciones que, cuando son ejecutadas por al menos un procesador o un aparato, hacen que al menos un procesador o el aparato lleven a cabo el método de acuerdo con cualquiera de las reivindicaciones 1 a 6.
ES20863945T 2019-09-13 2020-07-24 Method and apparatus for signaling sub-block transform information Active ES3042414T3 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201962900395P 2019-09-13 2019-09-13
PCT/US2020/043448 WO2021050166A1 (en) 2019-09-13 2020-07-24 Method and apparatus for signaling sub-block transform information

Publications (1)

Publication Number Publication Date
ES3042414T3 true ES3042414T3 (en) 2025-11-20

Family

ID=74867184

Family Applications (1)

Application Number Title Priority Date Filing Date
ES20863945T Active ES3042414T3 (en) 2019-09-13 2020-07-24 Method and apparatus for signaling sub-block transform information

Country Status (11)

Country Link
US (2) US11589067B2 (es)
EP (3) EP4598029A3 (es)
JP (3) JP7652761B2 (es)
KR (1) KR20220057628A (es)
CN (4) CN114402547B (es)
ES (1) ES3042414T3 (es)
HR (1) HRP20251215T1 (es)
PL (1) PL4029239T3 (es)
RS (1) RS67292B1 (es)
SM (1) SMT202500375T1 (es)
WO (1) WO2021050166A1 (es)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4598029A3 (en) * 2019-09-13 2025-10-29 Alibaba Group Holding Limited Method and apparatus for signaling sub-block transform information
US11606563B2 (en) * 2019-09-24 2023-03-14 Tencent America LLC CTU size signaling
WO2023246901A1 (en) * 2022-06-22 2023-12-28 Mediatek Inc. Methods and apparatus for implicit sub-block transform coding
GB2701660A (en) * 2024-10-22 2026-05-06 Canon Kk Image and video coding and decoding

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110194613A1 (en) * 2010-02-11 2011-08-11 Qualcomm Incorporated Video coding with large macroblocks
AU2012232992A1 (en) 2012-09-28 2014-04-17 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding the transform units of a coding unit
CN103796031A (zh) * 2012-10-27 2014-05-14 朱洪波 高灵活变尺寸块变换
WO2015012600A1 (ko) * 2013-07-23 2015-01-29 성균관대학교 산학협력단 영상 부호화/복호화 방법 및 장치
KR101642092B1 (ko) * 2014-10-06 2016-07-22 성균관대학교산학협력단 영상의 부호화/복호화 방법 및 이를 이용하는 장치
KR102199463B1 (ko) * 2015-08-31 2021-01-06 삼성전자주식회사 스캔 순서를 고려한 영상의 변환 방법 및 그 장치, 및 역변환 방법 및 그 장치
WO2017088093A1 (en) * 2015-11-23 2017-06-01 Mediatek Singapore Pte. Ltd. On the smallest allowed block size in video coding
US9942548B2 (en) * 2016-02-16 2018-04-10 Google Llc Entropy coding transform partitioning information
MX389723B (es) * 2016-03-16 2025-03-20 Hfi Innovation Inc Método y aparato de procesamiento de datos de video con tamaño restringido de bloque en codificación de video.
CN115802037A (zh) * 2016-10-10 2023-03-14 三星电子株式会社 用于对图像进行编码/解码的方法和设备
EP3349455A1 (en) * 2017-01-11 2018-07-18 Thomson Licensing Method and device for coding a block of video data, method and device for decoding a block of video data
US11102513B2 (en) * 2018-12-06 2021-08-24 Tencent America LLC One-level transform split and adaptive sub-block transform
GB2585019A (en) * 2019-06-24 2020-12-30 Canon Kk Residual signalling
CN114145014B (zh) * 2019-07-19 2025-09-19 韦勒斯标准与技术协会公司 处理视频信号的方法和设备
CN119743597B (zh) 2019-09-09 2026-04-28 北京字节跳动网络技术有限公司 视频编解码块的递归划分
EP4598029A3 (en) * 2019-09-13 2025-10-29 Alibaba Group Holding Limited Method and apparatus for signaling sub-block transform information

Also Published As

Publication number Publication date
CN120017850B (zh) 2026-08-07
EP4029239B1 (en) 2025-08-27
JP7853533B2 (ja) 2026-04-30
SMT202500375T1 (it) 2025-11-10
RS67292B1 (sr) 2025-11-28
JP2022548203A (ja) 2022-11-17
CN114402547B (zh) 2025-06-13
CN120151546A (zh) 2025-06-13
CN114402547A (zh) 2022-04-26
JP7652761B2 (ja) 2025-03-27
JP2026095472A (ja) 2026-06-11
EP4029239A4 (en) 2022-12-14
EP4598029A3 (en) 2025-10-29
CN120017850A (zh) 2025-05-16
KR20220057628A (ko) 2022-05-09
EP4604550A3 (en) 2025-10-29
EP4604550A2 (en) 2025-08-20
US20210084321A1 (en) 2021-03-18
CN120111255A (zh) 2025-06-06
WO2021050166A1 (en) 2021-03-18
US11589067B2 (en) 2023-02-21
JP2025066743A (ja) 2025-04-23
US20230156211A1 (en) 2023-05-18
EP4598029A2 (en) 2025-08-06
EP4029239A1 (en) 2022-07-20
HRP20251215T1 (hr) 2026-02-13
PL4029239T3 (pl) 2025-11-17
CN120151546B (zh) 2026-02-24
EP4029239C0 (en) 2025-08-27

Similar Documents

Publication Publication Date Title
TWI856068B (zh) 用於處理視訊內容的方法及系統
US12108058B2 (en) Method and apparatus for chroma sampling
CN114830662B (zh) 用于对图像执行逐步解码刷新处理的方法和系统
US12621469B2 (en) Methods for processing chroma signals
JP7853533B2 (ja) サブブロック変換情報を信号化するための方法及び装置
JP2023507270A (ja) ピクチャ境界におけるブロック区分のための方法及び装置
US11956463B2 (en) Methods for performing wrap-around motion compensation
JP2023509838A (ja) サブピクチャ分割情報をシグナリングするための方法及び機器
JP2022548204A (ja) 変換スキップモードで映像データを符号化するための方法及び装置
JP2026074007A (ja) 映像録画のサインデータハイディング
CN115552900B (zh) 用信号通知最大变换大小和残差编码的方法
US20210368170A1 (en) High level control of pdpc and intra reference sample filtering of video coding
US11606577B2 (en) Method for processing adaptive color transform and low-frequency non-separable transform in video coding