ES3035918T3 - Method and apparatus for further improved context design for prediction mode and coded block flag (cbf) - Google Patents

Method and apparatus for further improved context design for prediction mode and coded block flag (cbf)

Info

Publication number
ES3035918T3
ES3035918T3 ES19891775T ES19891775T ES3035918T3 ES 3035918 T3 ES3035918 T3 ES 3035918T3 ES 19891775 T ES19891775 T ES 19891775T ES 19891775 T ES19891775 T ES 19891775T ES 3035918 T3 ES3035918 T3 ES 3035918T3
Authority
ES
Spain
Prior art keywords
intra
prediction mode
context
current block
neighboring blocks
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
ES19891775T
Other languages
English (en)
Inventor
Xin Zhao
Xiang Li
Shan Liu
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.)
Tencent America LLC
Original Assignee
Tencent America LLC
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 Tencent America LLC filed Critical Tencent America LLC
Application granted granted Critical
Publication of ES3035918T3 publication Critical patent/ES3035918T3/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/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

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

Abstract

Un método para controlar la predicción intra-inter para la decodificación o codificación de una secuencia de vídeo se ejecuta mediante al menos un procesador. El método incluye determinar si uno o más bloques vecinos de una secuencia de vídeo están codificados mediante un modo de predicción intra, aplicar codificación de entropía a un indicador de modo de predicción de un bloque actual mediante un primer contexto al determinar que al menos uno de los bloques vecinos está codificado mediante el modo de predicción intra, y aplicar codificación de entropía a dicho indicador mediante un segundo contexto al determinar que ninguno de los bloques vecinos está codificado mediante al menos el modo de predicción intra. (Traducción automática con Google Translate, sin valor legal)

Description

DESCRIPCIÓN
Método y aparato para mejora adicional de diseño de contexto para modo de predicción e indicador de bloque<codificado>(C<b>F)
Antecedentes
1. Campo
Métodos y aparatos consistentes con realizaciones se refieren a la codificación de vídeo y, más particularmente, a un método y un aparato para la decodificación o codificación de vídeo.
2. Descripción de la técnica relacionada
Los modos de intrapredicción utilizados en la codificación de vídeo de alta eficiencia (HEVC) se ilustran en la figura 1A. En la HEVC, hay un total de 35 modos de intrapredicción, entre los que el modo 10 (101) es un modo horizontal, el modo 26 (102) es un modo vertical y el modo 2 (103), el modo 18 (104) y el modo 34 (105) son modos diagonales. Los modos de intrapredicción se señalizan mediante tres modos más probables (MPM) y 32 modos restantes.
Con respecto a la codificación de vídeo versátil (VVC), a continuación se muestra una tabla de sintaxis de unidades de codificación parcial. Se señaliza un indicador pred_mode_flag en un caso en el que un tipo de segmento no es intra y no se selecciona un modo de omisión, y solo se utiliza un contexto (por ejemplo, la variable pred_mode_flag) para codificar este indicador. La tabla de sintaxis de unidades de codificación parcial es la siguiente:
7.3.4.5 Sintaxis de la unidad de codificación
Haciendo referencia a la figura 1B, en VVC, hay un total de 87 modos de intrapredicción, entre los que el modo 18 (106) es un modo horizontal, el modo 50 (107) es un modo vertical y el modo 2 (108), el modo 34 (109) y el modo 66 (110) son modos diagonales. Los modos -1 a -10 y los modos 67 a 76 se denominan modos de intrapredicción de gran ángulo (WAIP).
Para un componente de croma de un bloque intracodificado, un codificador selecciona los mejores modos de predicción de croma entre cinco modos, que incluyen un modo plano (índice de modo 0), un modo DC (índice de modo 1), un modo horizontal (índice de modo 18), un modo vertical (índice de modo 50) y un modo diagonal (índice de modo 66), y una copia directa de un modo de intrapredicción para un componente de luma asociado, especialmente, el modo DM. En la tabla 1 siguiente se muestra un mapeo entre una dirección de intrapredicción y un número de modo de intrapredicción para el croma:
Tabla 1: Mapeo entre la dirección de intrapredicción y el modo de intrapredicción para el croma
Para evitar un modo duplicado, los cuatro modos distintos del modo DM se asignan según el modo de intrapredicción del componente de luma asociado. Cuando el número de modo de intrapredicción para el componente de croma es 4, la dirección de intrapredicción para el componente de luma se utiliza para la generación de muestras de intrapredicción para el componente de croma. Cuando el número de modo de intrapredicción para el componente de croma no es 4 y es idéntico al número de modo de intrapredicción para el componente de luma, se utiliza una dirección de intrapredicción de 66 para la generación de muestras de intrapredicción para el componente de croma.
La intra-interpredicción de hipótesis múltiples combina una predicción intra y una predicción indexada por fusión, especialmente, un modo de intra-interpredicción. En una unidad de codificación de fusión (CU), se señaliza un indicador para que un modo de fusión seleccione un modo intra de una lista de candidatos intra cuando el indicador es verdadero. Para un componente de luma, la lista de candidatos intra se deriva de 4 modos de intrapredicción que incluyen los modos DC, plano, horizontal y vertical, y el tamaño de la lista de candidatos intra puede ser de 3 o 4, según la forma de un bloque. Cuando el ancho de una CU es mayor que el doble de la altura de la CU, el modo horizontal se elimina de la lista de candidatos intra, y cuando la altura de la CU es mayor que el doble del ancho de la CU, el modo vertical se elimina de la lista de candidatos intra. Un modo de intrapredicción seleccionado por un índice de modo intra y una predicción indexada de fusión seleccionada por un índice de fusión se combinan utilizando un promedio ponderado. Para un componente de croma, la DM siempre se aplica sin señalización adicional.
Los pesos para combinar las predicciones se describen a continuación. Cuando se selecciona un modo DC o plano o el ancho o la altura de un bloque de codificación (CB) son inferiores a 4, se aplican pesos iguales. Para aquellos CB con una anchura o altura de CB mayor o igual a 4, cuando se selecciona un modo horizontal/vertical, primero se divide un CB vertical/horizontalmente en cuatro regiones de igual área. Cada conjunto de pesos, indicado como (w_intra<i>, w_inter<i>), donde i va desde 1 a 4 y (w_intra<1>, w_inteh) = (6, 2), (w_intra<2>, w_inter<2>) = (5, 3), (w_intra<3>, w_inter<3>) = (3, 5), y (w_intra<4>, w_inter<4>) = (2, 6), se aplicará a una región correspondiente. (w_intra<1>, w_inteh) es para una región más cercana a las muestras de referencia, y (w_intra<4>, w_inter<4>) es para una región más alejada de las muestras de referencia. A continuación, se puede calcular una predicción combinada sumando dos predicciones ponderadas y desplazando 3 bits a la derecha. Además, se puede guardar un modo de intrapredicción para una hipótesis intra de predictores para una codificación de modo intra de los siguientes CB vecinos si están codificados intra.
El documento US 2017/251213 A1 se refiere a un método para la codificación de vídeo. El método incluye recibir datos de entrada asociados con un bloque actual en un marco de imagen, generar un interpredictor del bloque actual y generar un predictor intra del bloque actual en función de muestras de píxeles vecinos y un modo de intrapredicción que localiza las muestras de píxeles vecinos. El método incluye, además, generar un predictor final del bloque actual combinando el interpredictor y el intrapredictor según uno o más coeficientes de intra ponderación asociados con el modo de predicción intra, y codificar o decodificar el bloque actual basándose en el predictor final para emitir datos de vídeo codificados o un bloque descodificado.
El documento EP 2733941 A1 se refiere al método de decodificación de imágenes que incluye la determinación de un contexto para su uso en un bloque actual, de entre una pluralidad de contextos.
El documento US 2018/332288 A1 se refiere a un método y se describe un aparato para aplicar la codificación por entropía a un símbolo asociado con un bloque. La codificación por entropía basada en el contexto se aplica a los símbolos fuente asociados con bloques que tienen tamaños de bloque variables generados dividiendo un bloque inicial utilizando una estructura de árbol cuaternario, una estructura de árbol binario o una estructura combinada de árbol cuaternario más árbol binario. Los contextos se basan en alguna información derivada de bloques vecinos y también se basan en al menos una de las formas, el tamaño y la profundidad del bloque actual, ya que las estadísticas de los símbolos asociados al bloque actual pueden correlacionarse con la forma en que el bloque actual se ha dividido a través de una estructura de árbol. Un símbolo actual que se va a codificar o decodificar puede corresponder a indicadores de división y modos asociados con la estructura de árbol, el indicador de omisión o el indicador de modo de predicción.
Resumen
La presente invención se define por las reivindicaciones independientes. Aspectos adicionales de la presente invención se definen por las reivindicaciones dependientes. BREVE DESCRIPCIÓN DE LOS DIBUJOS
En lo que respecta a la codificación/decodificación del indicador de modo de predicción, la presente invención se ilustra en la figura 11. Las restantes realizaciones no forman parte de la presente invención.
La figura 1A es un diagrama de modos de intrapredicción en HEVC.
La figura 1B es un diagrama de modos de intrapredicción en VVC.
La figura 2 es un diagrama de bloques simplificado de un sistema de comunicación según una realización.
La figura 3 es un diagrama de una colocación de un codificador de vídeo y un descodificador de vídeo en un entorno de transmisión, según una realización.
La figura 4 es un diagrama de bloques funcional de un descodificador de vídeo según una realización.
La figura 5 es un diagrama de bloques funcional de un codificador de vídeo según una realización.
La figura 6 es un diagrama de un bloque actual y bloques vecinos del bloque actual, según realizaciones.
La figura 7 es un diagrama de flujo que ilustra un método de control de intra-interpredicción para la decodificación o codificación de una secuencia de vídeo, según una realización.
La figura 8 es un diagrama en bloque simplificado de un aparato para el control de intra-interpredicción para la decodificación o codificación de una secuencia de vídeo, según una realización.
La figura 9 es un diagrama de un sistema informático adecuado para implementar realizaciones.
La figura 10 es un diagrama de flujo que ilustra un método de control de la decodificación o codificación de una secuencia de vídeo, según realizaciones.
La figura 11 es un diagrama de flujo que ilustra un método de control de la decodificación o codificación de una secuencia de vídeo, según realizaciones.
Descripción detallada
La figura 2 es un diagrama en bloque simplificado de un sistema (200) de comunicación según una realización. El sistema (200) de comunicación puede incluir al menos dos terminales (210-220) interconectados a través de una red (250). Para la transmisión unidireccional de datos, un primer terminal (210) puede codificar datos de vídeo en una ubicación local para su transmisión al otro terminal (220) a través de la red (250). El segundo terminal (220) puede recibir los datos de vídeo codificados del otro terminal de la red (250), decodificar los datos codificados y visualizar los datos de vídeo recuperados. La transmisión de datos unidireccional puede ser común en aplicaciones de servicio de medios y similares.
La figura 2 ilustra un segundo par de terminales (230, 240) proporcionados para admitir la transmisión bidireccional de vídeo codificado que puede producirse, por ejemplo, durante videoconferencias. Para la transmisión bidireccional de datos, cada terminal (230, 240) puede codificar datos de vídeo capturados en una ubicación local para su transmisión al otro terminal a través de la red (250). Cada terminal (230, 240) también puede recibir los datos de vídeo codificados transmitidos por el otro terminal, puede decodificar los datos codificados y puede mostrar los datos de vídeo recuperados en un dispositivo de visualización local.
En la figura 2, los terminales (210-240) pueden ilustrarse como servidores, ordenadores personales y teléfonos inteligentes, pero los principios de las realizaciones no están tan limitados. Las realizaciones encuentran aplicación con ordenadores portátiles, tabletas, reproductores de medios y/o equipos de videoconferencia dedicados. La red (250) representa cualquier número de redes que transmiten datos de vídeo codificados entre los terminales (210-240), incluyendo por ejemplo redes de comunicación cableadas y/o inalámbricas. La red (250) de comunicación puede intercambiar datos en canales conmutados por circuitos y/o conmutados por paquetes. Las redes representativas incluyen redes de telecomunicaciones, redes de área local, redes de área amplia y/o Internet. Para los fines de la presente descripción, la arquitectura y la topología de la red (250) pueden ser impuestas al funcionamiento de las realizaciones a menos que se explique en la presente memoria a continuación.
La figura 3 es un diagrama de una colocación de un codificador de vídeo y un descodificador de vídeo en un entorno (300) de transmisión, según una realización. La materia objeto descrita puede ser igualmente aplicable a otras aplicaciones habilitadas para vídeo, incluyendo, por ejemplo, videoconferencias, TV digital, almacenamiento de vídeo comprimido en medios digitales que incluyen CD, DVD, tarjeta de memoria y similares, etc.
Un sistema de transmisión puede incluir un subsistema (313) de captura que puede incluir una fuente (301) de vídeo, por ejemplo una cámara digital, creando, por ejemplo, una corriente (302) de muestra de vídeo sin comprimir. Esa corriente (302) de muestra, representada como una línea en negrita para enfatizar un alto volumen de datos en comparación con los flujos de bits de vídeo codificados, puede ser procesada por un codificador (303) acoplado a la cámara (301). El codificador (303) puede incluir hardware, software o una combinación de los mismos para habilitar o implementar aspectos del objeto descrito como se describe con más detalle a continuación. El flujo de bits (304) de vídeo codificado, representado como una línea delgada para enfatizar el volumen de datos más bajo en comparación con la corriente de muestra, puede almacenarse en un servidor (305) de flujo continuo para su uso futuro. Uno o más clientes (306, 308) de transmisión en flujo continuo pueden acceder al servidor (305) de flujo continuo para recuperar copias (307, 309) del flujo de bits (304) de vídeo codificado. Un cliente (306) puede incluir un decodificador (310) de vídeo que decodifica la copia entrante del flujo de bits (307) de vídeo codificado y crea una corriente (311) de muestra de vídeo saliente que puede representarse en un visualizador (312) u otro dispositivo de representación (no representado). En algunos sistemas de transmisión en flujo continuo, los flujos de bits (304, 307, 309) de vídeo pueden codificarse según ciertas normas de codificación/compresión de vídeo. Ejemplos de esas normas incluyen la Recomendación ITU-T H.265. En desarrollo hay una norma de codificación de vídeo, VVC. El objeto descrito puede utilizarse en el contexto de VVC.
La figura 4 es un diagrama (400) de bloques funcional de un decodificador (310) de vídeo según una realización.
Un receptor (410) puede recibir una o más secuencias de vídeo de códec que van a decodificarse por el decodificador (310); en la misma o una realización, una secuencia de vídeo codificada en un momento, donde la decodificación de cada secuencia de vídeo codificada es independiente de otras secuencias de vídeo codificadas. La secuencia de vídeo codificada puede recibirse desde un canal (412), que puede ser un enlace de hardware/software a un dispositivo de almacenamiento que almacena los datos de vídeo codificados. El receptor (410) puede recibir los datos de vídeo codificados con otros datos, por ejemplo, datos de audio codificados y/o flujos de datos auxiliares, que pueden enviarse a sus respectivas entidades de uso (no representadas). El receptor (410) puede separar la secuencia de vídeo codificada de los otros datos. Para combatir la fluctuación de la red, una memoria intermedia (415) se puede acoplar entre el receptor (410) y el decodificador/analizador de entropía (420) (“analizador” en adelante). Cuando el receptor (410) recibe datos de un dispositivo de almacenamiento/envío de suficiente ancho de banda y capacidad de control, o de una red isosíncrona, la memoria intermedia (415) puede no ser necesaria, o puede ser pequeña. Para su uso en las redes de paquetes de mejor esfuerzo, como Internet, la memoria intermedia (415) puede ser necesaria, puede ser comparativamente grande y puede ser ventajosamente de tamaño adaptativo.
El descodificador (310) de vídeo puede incluir un analizador (420) para reconstruir símbolos (421) a partir de la secuencia de vídeo codificada por entropía. Categorías de esos símbolos incluyen información utilizada para gestionar el funcionamiento del decodificador (310), y potencialmente información para controlar un dispositivo de representación tal como una pantalla (312) que no es una parte integral del decodificador, pero puede acoplarse a él, como se muestra en la figura 4. La información de control para el(los) dispositivo(s) de representación puede estar en forma de los fragmentos de conjunto de parámetros de mejora suplementaria (mensajes SEI) o de los parámetros de conjunto de parámetros de usabilidad de Video (VUI) (no representados). El analizador (420) puede analizar/decodificar por entropía la secuencia de vídeo codificada recibida. La codificación de la secuencia de vídeo codificada puede ser según una tecnología o estándar de codificación de vídeo, y puede seguir los principios bien conocidos por un experto en la técnica, incluyendo codificación de longitud variable, codificación de Huffman, codificación aritmética con o sin sensibilidad al contexto, etc. El analizador (420) puede extraer de la secuencia de vídeo codificada un conjunto de parámetros de subgrupo para al menos uno de los subgrupos de píxeles en el decodificador de vídeo, basándose en al menos un parámetro correspondiente al grupo. Los subgrupos pueden incluir grupos de imágenes (GOP), imágenes, mosaicos, cortes, macrobloques, las CU, bloques, unidades de transformada (TU), unidades de predicción (PU) y así sucesivamente. El decodificador/analizador de entropía también puede extraer de la información de secuencia de vídeo codificada tal como coeficientes de transformada, valores de parámetro de cuantificador (QP), vectores de movimiento, etc.
El analizador (420) puede realizar la operación de decodificación por entropía/análisis en la secuencia de vídeo recibida desde la memoria intermedia (415), para crear símbolos (421). El analizador (420) puede recibir datos codificados y decodificar selectivamente símbolos particulares (421). Además, el analizador (420) puede determinar si los símbolos particulares (421) deben proporcionarse a una unidad (453) de predicción de compensación de movimiento, una unidad (451) de transformada de escalador/inversa, una unidad (452) de intrapredicción o una unidad (454) de filtro en bucle.
La reconstrucción de los símbolos (421) puede implicar múltiples unidades diferentes dependiendo del tipo de imagen de vídeo codificada o partes de la misma (tales como: inter e intraimagen, inter e intrabloque) y otros factores. Qué unidades están involucradas, y cómo, puede controlarse por la información de control de subgrupo que se analizó a partir de la secuencia de vídeo codificada por el analizador (420). El flujo de tal información de control de subgrupo entre el analizador (420) y las múltiples unidades a continuación no se representa para mayor claridad.
Más allá de los bloques funcionales ya mencionados, el decodificador (310) se puede subdividir conceptualmente en un número de unidades funcionales como se describe a continuación. En una implementación práctica que funciona bajo restricciones comerciales, muchas de estas unidades interactúan estrechamente entre sí y pueden, al menos parcialmente, integrarse entre sí. Sin embargo, con el fin de describir el objeto descrito, la subdivisión conceptual en las unidades funcionales a continuación es apropiada.
Una primera unidad es la unidad (451) de escalador/transformada inversa. La unidad (451) de escalador/transformada inversa recibe un coeficiente de transformada cuantificado, así como la información de control, que incluye la transformada para utilizar, el tamaño de bloque, el factor de cuantificación, las matrices de escala de cuantificación, etc., como símbolo(s) (421) del analizador (420). Puede emitir bloques que comprenden valores de muestra que pueden introducirse en agregador (455).
En algunos casos, las muestras de salida del escalador/transformada inversa (451) pueden pertenecer a un bloque intracodificado; esto es: un bloque que no utiliza información predictiva a partir de imágenes previamente reconstruidas, pero puede utilizar información predictiva a partir de partes previamente reconstruidas de la imagen actual. Tal información predictiva puede ser proporcionada por una unidad (452) de predicción intraimagen. En algunos casos, la unidad (452) de predicción intra-imagen genera un bloque del mismo tamaño y forma del bloque bajo reconstrucción, utilizando información circundante ya reconstruida obtenida a partir de la imagen actual (456) (parcialmente reconstruida). El agregador (455), en algunos casos, añade, por muestra, la información de predicción que la unidad (452) de intrapredicción ha generado a la información de la muestra de salida proporcionada por la unidad (451) de escalador/transformada inversa.
En otros casos, las muestras de salida de la unidad (451) de escalador/transformada inversa pueden pertenecer a un bloque intercodificado y potencialmente compensado en movimiento. En tal caso, una unidad de predicción de compensación de movimiento (453) puede acceder a la memoria (457) de imágenes de referencia para extraer muestras utilizadas para la predicción. Después de compensar el movimiento de las muestras obtenidas según los símbolos (421) pertenecientes al bloque, estas muestras pueden añadirse por el agregador (455) a la salida de la unidad de escalador/transformada inversa (en este caso llamadas muestras residuales o señal residual) para generar información de muestra de salida. Las direcciones dentro del formulario de memoria de imágenes de referencia donde la unidad de compensación de movimiento recupera muestras de predicción pueden controlarse mediante vectores de movimiento, disponibles para la unidad de compensación de movimiento en forma de símbolos (421) que pueden tener, por ejemplo, componentes X, Y e imagen de referencia. La compensación de movimiento también puede incluir interpolación de valores de muestra como resultado de la memoria de imágenes de referencia cuando los vectores de movimiento exactos de submuestra están en uso, mecanismos de predicción de vectores de movimiento, etc.
Las muestras de salida del agregador (455) pueden someterse a diversas técnicas de filtrado en bucle en la unidad (454) de filtro en bucle. Las tecnologías de compresión de vídeo pueden incluir tecnologías de filtro en bucle que se controlan por parámetros incluidos en el flujo de bits de vídeo codificado y se hacen disponibles para la unidad (454) de filtro en bucle como símbolos (421) del analizador (420), pero también pueden responder a metainformación obtenida durante la decodificación de partes anteriores (en orden de decodificación) de la imagen codificada o secuencia de vídeo codificada, así como en respuesta a valores de muestra previamente reconstruidos y filtrados en bucle.
La salida de la unidad (454) de filtro en bucle puede ser un flujo de muestra que se puede emitir al dispositivo (312) de representación así como almacenarse en la memoria (457) de imágenes de referencia para su uso en futuras predicciones entre imágenes.
Ciertas imágenes codificadas, una vez completamente reconstruidas, pueden utilizarse como imágenes de referencia para la predicción futura. Una vez que una imagen codificada se reconstruye completamente y la imagen codificada se ha identificado como una imagen de referencia (por ejemplo, el analizador (420)), la imagen (456) de referencia actual puede convertirse en parte de la memoria intermedia (457) de imágenes de referencia, y una memoria de imagen actual nueva puede reasignarse antes de comenzar la reconstrucción de la siguiente imagen codificada.
El decodificador (310) de vídeo puede realizar operaciones de decodificación según una tecnología de compresión de vídeo predeterminada que puede documentarse en un estándar, tal como ITU-T Rec. H.265. La secuencia de vídeo codificada puede ajustarse a una sintaxis especificada por la tecnología de compresión de vídeo o estándar que se utiliza, en el sentido de que se adhiere a la sintaxis de la tecnología o estándar de compresión de vídeo, como se especifica en el documento o estándar de tecnología de compresión de vídeo y específicamente en los perfiles documentados en el mismo. También es necesario para el cumplimiento que la complejidad de la secuencia de vídeo codificada esté dentro de límites como se define por el nivel de la tecnología o estándar de compresión de vídeo. En algunos casos, los niveles restringen el tamaño máximo de la imagen, la tasa máxima de tramas, la tasa máxima de la muestra de reconstrucción (medida, por ejemplo, en megamuestras por segundo), el tamaño máximo de la imagen de referencia, y así sucesivamente. Los límites establecidos por los niveles pueden, en algunos casos, restringirse adicionalmente a través de especificaciones de Decodificador de Referencia Hipotética (HRD) y metadatos para la gestión de memoria intermedia HRD señaladas en la secuencia de vídeo codificada.
En una realización, el receptor (410) puede recibir datos adicionales (redundantes) con el vídeo codificado. Los datos adicionales pueden incluirse como parte de la(s) secuencia(s) de vídeo codificada(s). El decodificador (310) de vídeo puede utilizar los datos adicionales para decodificar correctamente los datos y/o para reconstruir con mayor precisión los datos de vídeo originales. Los datos adicionales pueden estar en forma de, por ejemplo, capas de mejora temporal, espacial o señal a ruido (SNR), segmentos redundantes, imágenes redundantes, códigos de corrección de errores directos, etc.
La figura 5 es un diagrama en bloque funcional (500) de un codificador (303) de vídeo de vídeo según una realización.
El codificador (303) puede recibir muestras de vídeo de una fuente (301) de vídeo (que no forma parte del codificador) que puede capturar imágenes de vídeo a codificar por el codificador (303).
La fuente (301) de vídeo puede proporcionar la secuencia de vídeo de origen a codificar por el codificador (303) en forma de una corriente de muestra de vídeo digital que puede ser de cualquier profundidad de bits adecuada (por ejemplo: 8 bit, 10 bit, 12 bit, ...), cualquier espacio de color (por ejemplo, BT.601 Y CrCb, RGB, ...) y cualquier estructura de muestreo adecuada (por ejemplo, Y CrCb 4:2:0, Y CrCb 4:4:4). En un sistema de servicio de medios, la fuente (301) de vídeo puede ser un dispositivo de almacenamiento que almacena un vídeo previamente preparado. En un sistema de videoconferencias, la fuente (301) de vídeo puede ser una cámara que captura información de imagen local como una secuencia de vídeo. Los datos de vídeo pueden proporcionarse como una pluralidad de imágenes individuales que imparten movimiento cuando se ven en secuencia. Las propias imágenes pueden organizarse como una matriz espacial de píxeles, en donde cada píxel puede comprender una o más muestras dependiendo de la estructura de muestreo, espacio de color, etc., en uso. Un experto en la técnica puede comprender fácilmente la relación entre píxeles y muestras. La siguiente descripción se centra en las muestras.
según una realización, el codificador (303) puede codificar y comprimir las imágenes de la secuencia de vídeo fuente en una secuencia (543) de vídeo codificada en tiempo real o en cualquier otra limitación de tiempo según lo requiera la aplicación. La introducción de la velocidad de codificación apropiada es una función del controlador (550). El controlador controla otras unidades funcionales como se describe a continuación y se acopla funcionalmente a estas unidades. El acoplamiento no se representa para mayor claridad. Los parámetros establecidos por el controlador pueden incluir parámetros relacionados con el control de velocidad (omisión de imagen, cuantificador, valor lambda de técnicas de optimización de tasa-distorsión, ...), diseño de tamaño de imagen, grupo de imágenes (GOP), rango de búsqueda de vector de movimiento máximo, etc. Un experto en la técnica puede identificar fácilmente otras funciones del controlador (550) ya que pueden pertenecer al codificador de vídeo (303) optimizado para un cierto diseño del sistema.
Algunos codificadores de vídeo operan en lo que un experto en la técnica reconoce fácilmente como un “ bucle de codificación” Como una descripción más simplificada, un bucle de codificación puede incluir la parte de codificación de un codificador (530) (“codificador fuente” en adelante) (responsable de crear símbolos basándose en una imagen de entrada a codificar, y una imagen o imágenes de referencia), y un decodificador (533) (local) incorporado en el codificador (303) que reconstruye los símbolos para crear los datos de muestra que también crearía un decodificador (remoto) (ya que cualquier compresión entre símbolos y flujo de bits de vídeo codificado es sin pérdidas en las tecnologías de compresión de vídeo consideradas en la materia objeto descrita). Esa corriente de muestra reconstruida se introduce en la memoria de imágenes de referencia (534). Como la decodificación de un flujo de símbolos conduce a resultados exactos de bits independientes de la ubicación del decodificador (local o remoto), el contenido de memoria intermedia de imágenes de referencia también es bit exacto entre el codificador local y el codificador remoto. En otras palabras, la parte de predicción de un codificador “ve” como muestras de imagen de referencia exactamente los mismos valores de muestra que un decodificador “ve” cuando se utiliza predicción durante la decodificación. Este principio fundamental de la sincronización de imagen de referencia (y la deriva resultante, si no se puede mantener la sincronización, por ejemplo debido a errores de canal) es bien conocido por un experto en la técnica.
El funcionamiento del decodificador (533) “ local” puede ser el mismo que el decodificador (310) “ remoto” , que ya se ha descrito en detalle anteriormente junto con la figura 4. Sin embargo, en referencia también a la figura 4, a medida que los símbolos están disponibles y la codificación/decodificación de símbolos a una secuencia de vídeo codificada por el codificador (545) por entropía y el analizador (420) puede ser sin pérdidas, las partes de decodificación por entropía del decodificador (310), incluyendo el canal (412), el receptor (410), la memoria intermedia (415) y el analizador (420) pueden no implementarse completamente en el decodificador local (533).
Una observación que puede realizarse en este punto es que cualquier tecnología de decodificador excepto la decodificación de análisis/entropía que está presente en un decodificador también necesariamente necesita estar presente, en forma funcional sustancialmente idéntica, en un codificador correspondiente. La descripción de las tecnologías de codificador puede abreviarse como la inversa de las tecnologías de decodificador descritas ampliamente. Solo en ciertas áreas se requiere una descripción más detallada y se proporciona a continuación.
Como parte de su funcionamiento, el codificador fuente (530) puede realizar una codificación predictiva compensada en movimiento, que codifica una trama de entrada de manera predictiva con referencia a una o más tramas codificadas previamente a partir de la secuencia de vídeo que se designaron como “tramas de referencia” De este modo, el motor (532) de codificación codifica diferencias entre bloques de píxeles de una trama de entrada y bloques de píxeles de la(s) trama(s) de referencia que pueden seleccionarse como referencia(s) de predicción a la trama de entrada.
El decodificador (533) de vídeo local puede descodificar datos de vídeo codificados de tramas que pueden designarse como tramas de referencia, basándose en símbolos creados por el codificador fuente (530). Las operaciones del motor (532) de codificación pueden ser ventajosamente procesos con pérdidas. Cuando los datos de vídeo codificados pueden decodificarse en un decodificador de vídeo (no mostrado en la figura 4), la secuencia de vídeo reconstruida típicamente puede ser una réplica de la secuencia de vídeo fuente con algunos errores. El descodificador (533) de vídeo local replica procesos de descodificación que pueden ser realizados por el descodificador de vídeo en tramas de referencia y pueden causar tramas de referencia reconstruidas que se almacenarán en la memoria (534) de imágenes de referencia. De este modo, el codificador (303) puede almacenar copias de tramas de referencia reconstruidas localmente que tienen contenido común como tramas de referencia reconstruidas que se obtendrán mediante un decodificador de vídeo de extremo lejano (sin errores de transmisión).
El predictor (535) puede realizar búsquedas de predicción para el motor (532) de codificación. Es decir, para una nueva trama a codificar, el predictor (535) puede buscar la memoria (534) de imágenes de referencia para datos de muestra (como bloques de píxeles de referencia candidatos) o ciertos metadatos tales como vectores de movimiento de imágenes de referencia, formas de bloque, etc., que pueden servir como referencia de predicción apropiada para las nuevas imágenes. El predictor (535) puede operar sobre una base de bloque de muestra por bloque de píxeles para encontrar referencias de predicción apropiadas. En algunos casos, según lo determinado por los resultados de búsqueda obtenidos por el predictor (535), una imagen de entrada puede tener referencias de predicción extraídas de múltiples imágenes de referencia almacenadas en la memoria (534) de imágenes de referencia.
El controlador (550) puede gestionar operaciones de codificación del codificador fuente (530), incluyendo, por ejemplo, la configuración de parámetros y parámetros de subgrupo utilizados para codificar los datos de vídeo.
La salida de todas las unidades funcionales mencionadas anteriormente puede someterse a codificación por entropía en el codificador (545) por entropía. El codificador por entropía traduce los símbolos generados por las diversas unidades funcionales en una secuencia de vídeo codificada, comprimiendo sin pérdida los símbolos según las tecnologías conocidas por un experto en la técnica como, por ejemplo, codificación de Huffman, codificación de longitud variable, codificación aritmética, etc.
El transmisor (540) puede almacenar temporalmente la(s) secuencia(s) de vídeo codificada(s) como se crea por el codificador (545) por entropía para prepararlo para su transmisión a través de un canal (560) de comunicación, que puede ser un enlace de hardware/software a un dispositivo de almacenamiento que puede almacenar los datos de vídeo codificados. El transmisor (540) puede fusionar datos de vídeo codificados del codificador (530) de fuente con otros datos que se transmitirán, por ejemplo, datos de audio codificados y/o flujos de datos auxiliares (fuentes no mostradas).
El controlador (550) puede gestionar el funcionamiento del codificador (303). Durante la codificación, el controlador (550) puede asignar a cada imagen codificada un cierto tipo de imagen codificada, lo que puede afectar a las técnicas de codificación que pueden aplicarse a la imagen respectiva. Por ejemplo, las imágenes a menudo pueden asignarse como uno de los siguientes tipos de trama:
Una intra-imagen (imagen I) puede ser una que pueda codificarse y decodificarse sin utilizar ninguna otra trama en la secuencia como una fuente de predicción. Algunos códecs de vídeo permiten diferentes tipos de Intra imágenes, que incluyen, por ejemplo, imágenes de actualización de decodificador independientes. Un experto en la técnica conoce esas variantes de imágenes I y sus respectivas aplicaciones y características.
Una imagen predictiva (imagen P) puede ser una que puede codificarse y decodificarse utilizando intrapredicción o interpredicción utilizando como máximo un vector de movimiento e índice de referencia para predecir los valores de muestra de cada bloque.
Una imagen predictiva bidireccional (imagen B) puede ser una que puede codificarse y decodificarse utilizando intrapredicción o interpredicción utilizando como máximo dos vectores de movimiento e índices de referencia para predecir los valores de muestra de cada bloque. De manera similar, las imágenes multipredictivas pueden utilizar más de dos imágenes de referencia y metadatos asociados para la reconstrucción de un solo bloque.
Las imágenes de origen comúnmente pueden subdividirse espacialmente en una pluralidad de bloques de muestra (por ejemplo, bloques de 4x4, 8x8, 4x8 o 16x16 muestras cada una) y codificarse en una base bloque por bloque. Los bloques pueden codificarse de manera predictiva con referencia a otros bloques (ya codificados) según lo determinado por la asignación de codificación aplicada a las imágenes respectivas de los bloques. Por ejemplo, los bloques de imágenes I pueden codificarse de forma no predictiva o pueden codificarse de manera predictiva con referencia a bloques ya codificados de la misma imagen (predicción espacial o intrapredicción). Los bloques de píxeles de las imágenes P pueden codificarse de forma no previsiva, mediante predicción espacial o mediante predicción temporal con referencia a una imagen de referencia previamente codificada. Los bloques de imágenes B pueden codificarse de forma no predictiva, a través de predicción espacial o mediante predicción temporal con referencia a una o dos imágenes de referencia previamente codificadas.
El codificador de vídeo (303) puede realizar operaciones de codificación según una tecnología o estándar de codificación de vídeo predeterminado, tal como ITU-T Rec. H.265. En su funcionamiento, el codificador (303) de vídeo puede realizar varias operaciones de compresión, incluidas operaciones de codificación predictiva que explotan redundancias temporales y espaciales en la secuencia de vídeo de entrada. Los datos de vídeo codificados, por lo tanto, pueden ajustarse a una sintaxis especificada por la tecnología de codificación de vídeo o estándar que se utiliza.
En una realización, el transmisor (540) puede transmitir datos adicionales con el vídeo codificado. El codificador fuente (530) puede incluir dichos datos como parte de la secuencia de vídeo codificada. Los datos adicionales pueden comprender capas de mejora temporal/espaciales/SNR, otras formas de datos redundantes tales como imágenes redundantes y segmentos, mensajes de información de mejora complementaria (SEI), fragmentos de conjunto de parámetros de información Visual de usabilidad (VUI), etc.
En la técnica relacionada, para codificar un indicador pred_mode_flag que indica si un bloque está intra o intercodificado, solo se utiliza un contexto y no se utilizan los valores de los indicadores aplicados en los bloques vecinos. Además, cuando un bloque vecino se codifica mediante un modo de intra-interpredicción, se predice utilizando una mezcla de modos de intrapredicción e interpredicción y, por lo tanto, puede ser más eficiente considerar si un bloque vecino se codifica utilizando un modo de intra-interpredicción para un diseño de contexto de señalización del indicador pred_mode_flag.
Las realizaciones descritas en la presente memoria pueden utilizarse por separado o combinarse en cualquier orden. En el texto siguiente, un indicador pred_mode_flag indica si un bloque actual está intra o intercodificado.
La figura 6 es un diagrama (600) de un bloque actual y bloques vecinos del bloque actual, según las realizaciones.
Haciendo referencia a la figura 6, se muestra un bloque actual (610) junto con un bloque vecino superior (620) y un bloque vecino izquierdo (630) del bloque actual (610). Cada uno del bloque vecino superior (620) y el bloque vecino izquierdo (630) puede tener una anchura de 4 y una altura de 4.
En algunas realizaciones, la información sobre si los bloques vecinos (por ejemplo, el bloque vecino superior (620) y el bloque vecino izquierdo (630)) se codifican mediante un modo de intrapredicción, un modo de intra-interpredicción o un modo de intrapredicción se utiliza para derivar un valor de contexto utilizado para codificar por entropía un indicador pred_mode_flag de un bloque actual (por ejemplo, el bloque actual (610)). En detalle, cuando un bloque vecino se codifica mediante un modo de intra-interpredicción, se utiliza un modo de intrapredicción asociado para la codificación de modo intra y/o la derivación MPM del bloque actual, pero el bloque vecino se considera un bloque intercodificado al derivar el valor de contexto para codificar por entropía el indicador pred_mode_flag del bloque actual, aunque se utiliza la intrapredicción para el bloque vecino.
En un ejemplo, el modo de intrapredicción asociado de un modo de intra-interpredicción es siempre plano.
En otro ejemplo, el modo de intrapredicción asociado de un modo de intra-interpredicción es siempre DC.
En otro ejemplo más, el modo de intrapredicción asociado está alineado con un modo de intrapredicción aplicado en el modo de intra-interpredicción.
En realizaciones, cuando un bloque vecino (por ejemplo, el bloque vecino superior (620) y el bloque vecino izquierdo (630)) se codifica mediante un modo de intra-interpredicción, se utiliza un modo de intrapredicción asociado para la codificación de modo intra y/o la derivación MPM de un bloque actual (por ejemplo, el bloque actual (610)), pero el bloque vecino también se considera como un bloque intracodificado cuando se deriva un valor de contexto para codificar por entropía un indicador predd _mode_flag del bloque actual.
En un ejemplo, el modo de intrapredicción asociado de un modo de intra-interpredicción es siempre plano.
En otro ejemplo, el modo de intrapredicción asociado de un modo de intra-interpredicción es siempre DC.
En otro ejemplo más, el modo de intrapredicción asociado está alineado con un modo de intrapredicción aplicado en el modo de intra-interpredicción.
En una realización, un índice o valor de contexto se incrementa en 2, 0 y 1 cuando un bloque vecino se codifica mediante un modo de intrapredicción, un modo de interpredicción y un modo de intrapredicción, respectivamente.
En otra realización, el índice o valor de contexto se incrementa en 1, 0 y 0,5 cuando un bloque vecino se codifica mediante un modo de intrapredicción, un modo de interpredicción y un modo de intrapredicción, respectivamente, y el índice de contexto final se redondea al número entero más cercano.
Una vez que se incrementa el índice o valor de contexto con respecto a todos los bloques vecinos del bloque actual y se determina el índice de contexto final, se puede determinar un índice de contexto promedio en función del índice de contexto final determinado dividido por un número de bloques vecinos y redondeado al número entero más cercano. El indicador pred_mode_flag puede configurarse para indicar que el bloque actual está intracodificado o intercodificado, en función del índice de contexto promedio determinado. Por ejemplo, si el índice de contexto promedio determinado es 1, el indicador pred_mode_flag puede configurarse para indicar que el bloque actual está intracodificado, y si el índice de contexto promedio determinado es 0, el indicador pred_mode_flag puede configurarse para indicar que el bloque actual está intercodificado.
En realizaciones, la información sobre si un bloque actual (por ejemplo, el bloque actual (610)) está codificado mediante un modo de intrapredicción, un modo de interpredicción o un modo de intrapredicción se utiliza para derivar uno o más valores de contexto para codificar por entropía un CBF del bloque actual.
En una realización, se utilizan tres contextos separados (por ejemplo, variables) para codificar por entropía la CBF: uno se utiliza cuando el bloque actual se codifica mediante un modo de intrapredicción, otro se utiliza cuando el bloque actual se codifica mediante un modo de interpredicción y otro se utiliza cuando el bloque actual se codifica mediante un modo de intra-interpredicción. Los tres contextos separados pueden aplicarse solo para codificar la luma CBF, solo para codificar la croma CBF o solo para codificar tanto la luma como la croma CBF.
En otra realización, se utilizan dos contextos separados (por ejemplo, variables) para codificar por entropía la CBF: uno se utiliza cuando el bloque actual se codifica mediante un modo de intrapredicción, y otro se utiliza cuando el bloque actual se codifica mediante un modo de interpredicción o un modo de intra-interpredicción. Los dos contextos separados pueden aplicarse solo para codificar la luma CBF, solo para codificar la croma CBF o solo para codificar tanto la luma como la croma CBF.
En otra realización más, se utilizan dos contextos separados (por ejemplo, variables) para codificar por entropía la CBF: uno se utiliza cuando el bloque actual se codifica mediante un modo de intra-interpredicción o un modo de intrapredicción, y otro se utiliza cuando el bloque actual se codifica mediante un modo de interpredicción. Los dos contextos separados pueden aplicarse solo para codificar la luma CBF, solo para codificar la croma CBF o solo para codificar tanto la luma como la croma CBF.
La figura 7 es un diagrama de flujo que ilustra un método (700) de control de la intra-interpredicción para la decodificación o codificación de una secuencia de vídeo, según una realización. En algunas implementaciones, uno o más bloques de proceso de la figura 7 pueden ser realizados por el decodificador (310). En algunas implementaciones, uno o más bloques de proceso de la figura 7 pueden ser realizados por otro dispositivo o un grupo de dispositivos separados o incluyendo el decodificador (310), tal como el codificador (303).
Haciendo referencia a la figura 7, en un primer bloque (710), el método (700) incluye determinar si un bloque vecino de un bloque actual está codificado mediante un modo de intra-interpredicción. En función de que el modo (710-No) de intra-interpredicción determine que el bloque vecino no está codificado, el método (700) finaliza.
Basándose en el bloque vecino que se determina que está codificado por el modo (710-Sí) de intra-interpredicción, en un segundo bloque (720), el método (700) incluye realizar una codificación de modo intra del bloque actual, utilizando un modo de intrapredicción asociado con el modo de intra-interpredicción.
En un tercer bloque (730), el método (700) incluye establecer un indicador de modo de predicción que indique si el bloque actual está intracodificado o intercodificado, de modo que el indicador de modo de predicción indique que el bloque actual está intercodificado.
El método (700) puede incluir además, basándose en que el modo (710-Sí) de intra-interpredicción determine que el bloque vecino está codificado, realizar una derivación MPM del bloque actual, utilizando el modo de intrapredicción asociado al modo de intra-interpredicción.
El modo de intrapredicción asociado al modo de intra-interpredicción puede ser un modo plano, un modo DC o un modo de intrapredicción que se aplica en el modo de intra-interpredicción.
El método (700) puede incluir, además, determinar si el bloque vecino está codificado mediante un modo de intrapredicción, un modo de interpredicción o un modo de intra-interpredicción, basándose en el bloque vecino que se determina que está codificado por el modo de intrapredicción, incrementar el índice de contexto del indicador de modo de predicción en 2, en función del bloque vecino que se determina que está codificado por el modo de interpredicción, incrementar el índice de contexto en 0, en función del bloque vecino que se determina para codificarse mediante el modo de intra-interpredicción, incrementando el índice de contexto por 1, determinar un índice de contexto promedio, en función del índice de contexto incrementado y varios bloques vecinos del bloque actual, y establecer el indicador de modo de predicción, en función del índice de contexto promedio determinado.
El método puede incluir, además, determinar si el bloque vecino está codificado mediante un modo de intrapredicción, un modo de interpredicción o un modo de intra-interpredicción, basándose en el bloque vecino que se determina que está codificado por el modo de intrapredicción, incrementar el índice de contexto del indicador de modo de predicción en 1, basándose en que el modo de interpredicción determina que el bloque vecino está codificado, incrementando el índice de contexto en 0, basándose en el bloque vecino que se determina que está codificado, mediante el modo de intra-interpredicción, incrementando la índice de contexto en 0,5, determinar un índice de contexto promedio, en función del índice de contexto incrementado y una serie de bloques vecinos del bloque actual, y establecer el indicador de modo de predicción, en función del índice de contexto promedio determinado.
Aunque la figura 7 muestra bloques de ejemplo del método (700), en algunas implementaciones, el método (700) puede incluir bloques adicionales, menos bloques, bloques diferentes o bloques dispuestos de manera diferente a los representados en la figura 7. Adicionalmente, o alternativamente, dos o más de los bloques del método (700) pueden realizarse en paralelo.
Además, los métodos propuestos pueden implementarse mediante circuitos de procesamiento (por ejemplo, uno o más procesadores o uno o más circuitos integrados). En un ejemplo, el uno o más procesadores ejecutan un programa que se almacena en un medio legible por ordenador no transitorio para realizar uno o más de los métodos propuestos.
La figura 8 es un diagrama de bloques simplificado de un aparato (800) para el control de la intra-interpredicción para la decodificación o codificación de una secuencia de vídeo, según una realización.
Con referencia a la figura 8, el aparato (800) incluye el primer código (810) de determinación, el código (820) de ejecución y el código (830) de configuración. El aparato (800) puede incluir además un código de incremento (840) y un segundo código (850) de determinación.
El primer código (810) de determinación está configurado para hacer que al menos un procesador determine si un bloque vecino de un bloque actual está codificado mediante un modo de intra-interpredicción.
El código (820) de ejecución está configurado para hacer que al menos un procesador, basándose en el bloque vecino que se determina que está codificado por el modo de intra-interpredicción, realice una codificación de modo intra del bloque actual, utilizando un modo de predicción intra asociado al modo de intra-interpredicción.
El código (830) de configuración está configurado para hacer que al menos un procesador, basándose en el bloque vecino que se determina que está codificado por el modo de intra-interpredicción, establezca un indicador de modo de predicción que indique si el bloque actual está intracodificado o intercodificado, de modo que el indicador de modo de predicción indique que el bloque actual está intercodificado.
El código (820) de ejecución puede configurarse, además, para hacer que al menos un procesador, basándose en el bloque vecino que se determina que está codificado por el modo de intra-interpredicción, realice la derivación en modo más probable (MPM) del bloque actual, utilizando el modo de intrapredicción asociado al modo de intra-interpredicción.
El modo de intrapredicción asociado al modo de intra-interpredicción puede ser un modo plano, un modo DC o un modo de intrapredicción que se aplica en el modo de intra-interpredicción.
El primer código (810) de determinación puede configurarse, además, para hacer que al menos un procesador determine si el bloque vecino está codificado mediante un modo de intrapredicción, un modo de interpredicción o un modo de intra-interpredicción. El código (840) de incremento puede configurarse para hacer que al menos un procesador, basándose en el bloque vecino que se determina que está codificado por el modo de intrapredicción, incremente el índice de contexto del indicador de modo de predicción en 2, basándose en el bloque vecino que se determina que está codificado por el modo de interpredicción, incremente el índice de contexto en 0 y, basándose en el bloque vecino que se determina que está codificado por el modo de intra-interpredicción, incremente el índice de contexto en 1. El segundo código (850) de determinación puede configurarse para hacer que al menos un procesador determine un índice de contexto promedio, basándose en el índice de contexto incrementado y en una serie de bloques vecinos del bloque actual. El código (830) de configuración puede configurarse, además, para hacer que al menos un procesador establezca el indicador de modo de predicción, en función del índice de contexto promedio determinado.
El primer código (810) de determinación puede configurarse, además, para hacer que al menos un procesador determine si el bloque vecino está codificado mediante un modo de intrapredicción, un modo de interpredicción o un modo de intra-interpredicción. El código (840) de incremento puede configurarse para hacer que al menos un procesador, basándose en el bloque vecino que se determina que está codificado por el modo de intrapredicción, incremente el índice de contexto del indicador de modo de predicción en 1, basándose en el bloque vecino que se determina que está codificado por el modo de interpredicción, incremente el índice de contexto en 0 y, basándose en el bloque vecino que se determina que está codificado por el modo de intra-interpredicción, incremente el índice de contexto en 0,5. El segundo código (850) de determinación puede configurarse para hacer que al menos un procesador determine un índice de contexto promedio, basándose en el índice de contexto incrementado y en una serie de bloques vecinos del bloque actual. El código (830) de configuración puede configurarse, además, para hacer que al menos un procesador establezca el indicador de modo de predicción, en función del índice de contexto promedio determinado.
Las técnicas descritas anteriormente, pueden implementarse como software de ordenador utilizando instrucciones legibles por ordenador y almacenarse físicamente en uno o más medios legibles por ordenador.
La figura 9 es un diagrama de un sistema informático (900) adecuado para implementar realizaciones.
El software informático puede codificarse utilizando cualquier código de máquina o lenguaje informático adecuado, que puede estar sujeto a ensamblaje, compilación, vinculación o mecanismos similares para crear código que comprende instrucciones que pueden ejecutarse directamente, o por interpretación, ejecución de microcódigo y similares, por unidades centrales de procesamiento (CPU), unidades de procesamiento gráfico (GPU) y similares.
Las instrucciones pueden ejecutarse en diversos tipos de ordenadores o componentes de los mismos, que incluyen, por ejemplo, ordenadores personales, tabletas, servidores, teléfonos inteligentes, dispositivos de juego, internet de los dispositivos de cosas y similares.
Los componentes mostrados en la figura 9 para el sistema informático (900) son de naturaleza ejemplar y no pretenden sugerir ninguna limitación en cuanto al alcance de uso o funcionalidad de las realizaciones de implementación de software informático. Tampoco debería interpretarse que la configuración de componentes tiene cualquier dependencia o requisito relacionado con uno cualquiera o una combinación de componentes ilustrados en la realización ilustrativa de un sistema informático (900).
El sistema informático (900) puede incluir ciertos dispositivos de entrada de interfaz humana. Dicho dispositivo de entrada de la interfaz humana puede ser sensible a la entrada por uno o más usuarios humanos a través de, por ejemplo, entrada táctil (tales como: pulsaciones, deslizamientos, movimientos del guante de datos), entrada de audio (tales como: voz, bloqueo), entrada visual (tales como: gestos), entrada olfativa (no representada). Los dispositivos de interfaz humana también se pueden utilizar para capturar ciertos medios no necesariamente relacionados directamente con la entrada consciente por un ser humano, tal como audio (tales como: voz, música, sonido ambiental), imágenes (tales como: imágenes escaneadas, imágenes fotográficas obtenidas de una cámara de imagen fija), vídeo (tal como vídeo bidimensional, vídeo tridimensional que incluye vídeo estereoscópico).
Los dispositivos de interfaz humana de entrada pueden incluir uno o más de (solo uno de cada uno de los representados): teclado (901), ratón (902), almohadilla de seguimiento (903), pantalla táctil (910), guante de datos, palanca de mando (905), micrófono (906), escáner (907), cámara (908).
El sistema informático (900) también puede incluir ciertos dispositivos de salida de interfaz humana. Dichos dispositivos de salida de la interfaz humana pueden estimular los sentidos de uno o más usuarios humanos a través de, por ejemplo, salida táctil, sonido, luz y olor/sabor. Dichos dispositivos de salida de interfaz humana pueden incluir dispositivos de salida táctiles (por ejemplo, retroalimentación táctil mediante pantalla táctil (910), guante de datos o palanca de mando (905), pero también puede haber dispositivos de retroalimentación táctil que no sirven como dispositivos de entrada), dispositivos de salida de audio (tales como: altavoces (909), auriculares (no representados)), dispositivos de salida visual (tales como pantallas (910) para incluir pantallas de tubo de rayos catódicos (CRT), pantalla de cristal líquido (LCD), pantallas de plasma, pantallas de diodos orgánicos emisores de luz (OLED), cada una con o sin capacidad de entrada de pantalla táctil, cada una con o sin capacidad de retroalimentación táctil, algunas de las cuales pueden ser capaces de generar resultados visuales bidimensionales o más que salidas tridimensionales a través de medios tales como salida estereográfica; gafas de realidad virtual (no representadas), pantallas holográficas y tanques de humo (no representados), e impresoras (no representadas).
El sistema informático (900) también puede incluir dispositivos de almacenamiento accesibles para humanos y sus medios asociados tales como medios ópticos que incluyen CD/DVD ROM/RW (920) con CD/DVD o medios (921) similares, memoria USB (922), disco duro o unidad (923) de estado sólido extraíble, medios magnéticos heredados tales como cintas y disquetes (no representados), dispositivos especializados basados en ROM/ASIC/PLD tales como dongles de seguridad (no representados), y similares.
Los expertos en la técnica también deben comprender que el término “ medios legibles por ordenador” como se utiliza en relación con la materia objeto actualmente descrita no abarca medios de transmisión, ondas portadoras u otras señales transitorias.
El sistema informático (900) también puede incluir una o varias interfaces a una o más redes de comunicación. Las redes pueden ser, por ejemplo, inalámbricas, cableadas, ópticas. Las redes pueden ser, además, locales, de gran área, metropolitana, vehicular e industriales, en tiempo real, tolerante a la demora, etc. Ejemplos de redes incluyen redes de área local como Ethernet, LAN inalámbricas, redes celulares para incluir sistemas globales para comunicaciones móviles (GSM), tercera generación (3G), cuarta generación (4G), quinta generación (5G), evolución a largo plazo (LTE) y similares, redes digitales de área amplia inalámbricas o cableadas de TV para incluir TV por cable, TV satelital y transmisión de TV terrestre, vehicular e industrial para incluir CANBus, etc. Ciertas redes comúnmente requieren adaptadores de interfaz de red externos que se conectan a ciertos puertos de datos de propósito general o buses periféricos (949) (como, por ejemplo, puertos de bus serie universal (USB) del sistema informático (900); otras se integran comúnmente en el núcleo del sistema informático (900) mediante la unión a un bus del sistema como se describe a continuación (por ejemplo, interfaz Ethernet en un sistema informático PC o interfaz de red celular en un sistema informático inteligente). Utilizando cualquiera de estas redes, el sistema informático (900) puede comunicarse con otras entidades. Dicha comunicación puede ser unidireccional, recibir solo (por ejemplo, difusión de difusión), solo envío unidireccional (por ejemplo, NANbus a ciertos dispositivos de CANbus), o bidireccional, por ejemplo, a otros sistemas informáticos que utilizan redes digitales de área local o amplia. Se pueden utilizar ciertos protocolos y pilas de protocolos en cada una de esas redes e interfaces de red como se describió anteriormente.
Los dispositivos de interfaz humana anteriormente mencionados, dispositivos de almacenamiento accesibles para humanos e interfaces de red pueden unirse a un núcleo (940) del sistema informático (900).
El núcleo (940) puede incluir una o más Unidades Central de Procesamiento (CPU) (941), Unidades de Procesamiento Gráfico (GPU) (942), unidades de procesamiento programables especializadas en forma de áreas de puertas programables en campo (FPGA) (943), aceleradores de hardware (944) para ciertas tareas, y así sucesivamente. Estos dispositivos, junto con la memoria de solo lectura (ROM) (945), memoria de acceso aleatorio (RAM) (946), almacenamiento de masa interno tal como discos duros internos no accesibles por el usuario, unidades de estado sólido (SSD) y similares (947), pueden conectarse a través de un bus (1248) de sistema. En algunos sistemas informáticos, el bus (1248) de sistema puede ser accesible en forma de uno o más tapones físicos para habilitar extensiones por CPU adicionales, GPU y similares. Los dispositivos periféricos se pueden unir directamente al bus (1248) de sistema del núcleo, o a través de un bus (949) periférico. Las arquitecturas para un bus periférico incluyen interconexión de componentes periféricos (PCI), USB y similares.
Las CPU (941), las GPU (942), las FPGA (943) y aceleradores (944) pueden ejecutar ciertas instrucciones que, en combinación, pueden constituir el código informático mencionado anteriormente. Ese código informático puede almacenarse en la ROM (945) o RAM (946). Los datos transitorios también pueden almacenarse en la RAM (946), mientras que los datos permanentes pueden almacenarse, por ejemplo, en el almacenamiento de masa interno (947). El almacenamiento rápido y la recuperación a cualquiera de los dispositivos de memoria pueden habilitarse a través del uso de memoria caché, que puede asociarse estrechamente con una o más CPU (941), GPU (942), almacenamiento masivo (947), ROM (945), RAM (946) y similares.
Los medios legibles por ordenador pueden tener código informático en el mismo para realizar diversas operaciones implementadas por ordenador. Los medios y el código informático pueden ser aquellos especialmente diseñados y construidos para los fines de las realizaciones, o pueden ser del tipo bien conocido y disponible para aquellos que tienen habilidad en las técnicas de software informático.
Como ejemplo y no de forma excluyente, el sistema informático que tiene arquitectura (900) y, específicamente, el núcleo (940), puede proporcionar funcionalidad como resultado del (de los) procesador(es) (incluidas CPU, GPU, FPGA, aceleradores, y similares) que ejecuta software incorporado en uno o más medios tangibles legibles por ordenador. Tales medios legibles por ordenador pueden ser medios asociados con el almacenamiento masivo accesible por el usuario como se ha introducido anteriormente, así como un cierto almacenamiento del núcleo (940) que son de naturaleza no transitoria, tal como el almacenamiento (947) masivo interno en el núcleo o ROM (945). El software que implementa varias realizaciones puede almacenarse en tales dispositivos y ejecutarse por el núcleo (940). Un medio legible por ordenador puede incluir uno o más dispositivos o chips de memoria, según las necesidades particulares. El software puede hacer que el núcleo (940) y específicamente los procesadores en el mismo (incluidas CPU, GPU, FPGA y similares) ejecuten procesos particulares o partes particulares de procesos particulares descritos en la presente memoria, incluyendo definir estructuras de datos almacenadas en RAM (946) y modificar tales estructuras de datos según los procesos definidos por el software. Además o alternativamente, el sistema informático puede proporcionar funcionalidad como resultado de una lógica cableada o incorporarse de cualquier otro modo en un circuito (por ejemplo: acelerador (944)), que puede operar en lugar de o junto con software para ejecutar procesos particulares o partes particulares de procesos particulares descritos en la presente memoria. La referencia al software puede abarcar lógica y viceversa, cuando sea apropiado. La referencia a un medio legible por ordenador puede abarcar un circuito (tal como un circuito integrado (IC)) que almacena software para su ejecución, un circuito que incorpora lógica para su ejecución, o ambos, cuando sea apropiado. Las realizaciones abarcan cualquier combinación adecuada de hardware y software.
Los inventores han observado que pred_mode_flag tiene cierta correlación con sus vecinos, bloques vecinos, a un bloque actual. En el caso de que los vecinos usen un contexto de pred_mode_flag igual a 1, entonces puede haber una mayor probabilidad de que el bloque actual use o también esté utilizando un pred_mode_flag igual a 1. En tales casos, debido a la correlación, se puede lograr una eficiencia de contexto mejorada en la codificación/descodificación aritmética. La información de bloques vecinos podría utilizarse como contexto para la codificación/decodificación por entropía de un pred_mode_flag_ actual para mejorar la eficiencia de la codificación.
Además, en una VVC, puede haber un modo de intra-interpredicción, que es un modo de predicción especial como una mezcla de interpredicción y también de intrapredicción.
Por lo tanto, en un caso en el que se desee añadir un bloque vecino como contexto para la codificación/decodificación por entropía de un pred_mode_flag, puede surgir el problema de que si el bloque vecino se codifica mediante un modo intra-inter, puede ser necesario decidir si ese bloque vecino debe considerarse como un modo intra o como un modo intermedio para derivar un contexto, y los aspectos de la presente solicitud se refieren a diseños para contexto para la codificación/decodificación por entropía de un pred_mode_flag en el que podría haber diferentes diseños.
Como se describió anteriormente, si hay múltiples bloques vecinos que identificar, entonces se pueden utilizar tres contextos dependiendo de cuántos bloques vecinos estén intracodificados. Por ejemplo, si no hay bloques vecinos que estén intracodificados, entonces se puede utilizar un índice de contexto 0. Si hay un bloque vecino intracodificado, entonces se puede utilizar un índice de contexto 1 y, de lo contrario, puede haber dos bloques vecinos intracodificados, en cuyo caso se puede utilizar un índice de contexto 2. Como tal, puede haber tres contextos dependiendo de la cantidad de bloques vecinos que se codifican mediante intracodificación.
Sin embargo, se pueden lograr mejoras adicionales reduciendo el número de contextos de tres contextos a dos contextos. Por ejemplo, si ninguno de los bloques vecinos se codifica mediante intracodificación, entonces se puede utilizar un primer contexto y, de lo contrario, si alguno de los bloques vecinos utiliza intracodificación, se puede utilizar otro contexto. Tal diseño puede adoptarse como parte de VVC.
La figura 10 ilustra un diagrama de flujo (1000) de ejemplo según las realizaciones y similares a las descritas anteriormente, excepto por las diferencias descritas actualmente.
En la etapa (1001), puede haber una verificación para determinar un bloque o bloques vecinos a un bloque actual, y en la etapa (1002), se puede determinar si uno o más de esos bloques vecinos están intracodificados. Si no, entonces en la etapa (1003), se puede utilizar un primer contexto para el bloque actual, y si es así, en la etapa (1004) se puede utilizar otro contexto para el bloque actual.
Según ejemplos de realización, no solo se puede comprobar si un bloque o bloques vecinos se utiliza para determinar si se utiliza la intracodificación, sino también para comprobar si se utiliza la intra-intercodificación.
La figura 11 ilustra un diagrama de flujo (1100) de ejemplo según la invención reivindicada y similar a los descritos anteriormente, excepto por las diferencias descritas actualmente.
En la etapa (1101), hay una verificación para determinar un bloque o bloques vecinos a un bloque actual, y en la etapa (1102), se determina si uno o más de esos bloques vecinos están intracodificados. Si no es así, en la etapa (1103), se comprueba si el bloque o los bloques vecinos están utilizando la intra-intercodificación y, si no, en la etapa (1104) se utiliza un primer contexto para el bloque actual. De lo contrario, si se determina la intracodificación en la etapa (1102) o la intra-intercodificación se determina en la etapa (1103), entonces se utiliza otro contexto para el bloque actual en la etapa (1105).
Además de la figura 10 y, de manera similar, además de la figura 11, aunque se ha analizado pred_mode_flag, la adopción adicional por parte de VVC incluye otros elementos sintácticos, tales como un indicador de omisión, un indicador de combinación de subbloques, como se describe más adelante con las sintaxis siguientes.
Codificación de la sintaxis de árbol cuaternario
Sintaxis de árbol de varios tipos
Sintaxis de la unidad de codificación
Es decir, en las realizaciones ilustrativas, primero se identifican varios bloques vecinos, se utilizan dos contextos para codificar por entropía el pred_mode_flag del bloque actual, cuando ninguno de los bloques vecinos identificados se codifica mediante el modo de intrapredicción, entonces se puede utilizar el primer contexto; de lo contrario, se puede utilizar el otro contexto.
Además, se pueden identificar primero varios bloques vecinos y se pueden utilizar dos contextos para codificar por entropía el pred_mode_flag del bloque actual. Cuando ninguno de los bloques vecinos identificados está codificado por un modo de intra-interpredicción o un modo de intra-interpredicción, entonces se puede utilizar el primer contexto; de lo contrario, se puede utilizar el segundo contexto.
En otros ejemplos, se pueden identificar primero varios bloques vecinos y se pueden utilizar dos contextos para codificar por entropía un indicador de CBF del bloque actual. Cuando ninguno de los bloques vecinos identificados está codificado por el modo de intrapredicción, entonces se puede utilizar el primer contexto; de lo contrario, se puede utilizar un segundo contexto.
En otros ejemplos, se pueden identificar primero varios bloques vecinos y se pueden utilizar dos contextos para codificar por entropía el indicador CBF del bloque actual. Cuando ninguno de los bloques vecinos identificados está codificado por el modo de intra-interpredicción o el modo de intra-interpredicción, entonces se puede utilizar el primer contexto; de lo contrario, se puede utilizar el segundo contexto.
Al codificar por entropía elementos sintácticos como un indicador de omisión (cu_skip_flag), un indicador afín (inter_affine_flag), un indicador de combinación de subbloques (merge_subblock_flag), indicadores de división de CU (qt_split_cu_flag, mtt_split_cu_flag, mtt_split_cu_binary/ _flag,), indicador IMV (amvr_mode), un indicador de modo intra-inter, un indicador de partición triangular, se propone utilizar dos contextos dependiendo de los valores de indicador correspondientes utilizados para los bloques vecinos según las realizaciones descritas anteriormente. Los ejemplos de tales banderas se presentan en las tablas mencionadas anteriormente. Los significados de estos indicadores pueden sugerir diferentes modos respectivos, tales como uno u otro de los modos de omisión, los modos afines, los modos de combinación de subbloques, etc.
Además, según las realizaciones de ejemplo, primero se identifican varios bloques vecinos. Cuando se codifican por entropía los indicadores mencionados anteriormente, cuando ninguno de los bloques vecinos identificados está codificado por el modo correspondiente (lo que significa que el valor del indicador asociado se señaliza con un valor que indica que el modo correspondiente está habilitado), entonces se puede utilizar un primer contexto; de lo contrario, se puede utilizar el segundo contexto. Además, cualquiera de las realizaciones con respecto a la figura 10 y la figura 11 puede utilizarse con estos indicadores adicionales, como entenderá un experto en la técnica a la vista de esta descripción.
Como se describió anteriormente, según realizaciones ejemplares, un número de contexto puede reducirse ventajosamente a solo dos contextos para un indicador y tales predicciones.

Claims (12)

REIVINDICACIONES
1. Un método para decodificación de vídeo, comprendiendo el método:
determinar si al menos uno de una pluralidad de bloques vecinos de un bloque actual en una secuencia de vídeo se decodifica mediante un modo de intrapredicción;
decodificar por entropía un indicador de modo de predicción de un bloque actual mediante un segundo contexto en respuesta a la determinación de que al menos uno de la pluralidad de bloques vecinos se decodifica mediante un modo de intrapredicción;
determinar si al menos uno de la pluralidad de bloques vecinos se decodifica mediante un modo de intra-interpredicción, en respuesta a la determinación de que ninguno de la pluralidad de bloques vecinos se decodifica mediante un modo de intrapredicción; y
decodificar por entropía el indicador de modo de predicción del bloque actual mediante el segundo contexto cuando al menos uno de la pluralidad de bloques vecinos se decodifica mediante un modo de intra-interpredicción, pero ninguno se decodifica mediante un modo de intrapredicción; y decodificar por entropía el indicador de modo de predicción del bloque actual mediante un primer contexto, diferente del segundo contexto, cuando ninguno de la pluralidad de bloques vecinos se decodifica mediante un modo de intra-interpredicción y ninguno se decodifica mediante un modo de intrapredicción,
en donde el indicador de modo de predicción indica si el bloque actual está intracodificado o intercodificado, y la intra-interpredicción es una mezcla de una interpredicción y una intrapredicción.
2. El método según la reivindicación 1,
en donde la decodificación por entropía del indicador de modo de predicción del bloque actual comprende la decodificación solo mediante el primer contexto y el segundo contexto.
3. El método según la reivindicación 1, que comprende además:
decodificar por entropía un indicador afín del bloque actual mediante un primer contexto afín en respuesta a la determinación de que al menos uno de la pluralidad de bloques vecinos se decodifica mediante un modo de intrapredicción; y
decodificar por entropía el indicador afín del bloque actual mediante un segundo contexto afín en respuesta a la determinación de que ninguno de la pluralidad de bloques vecinos se decodifica mediante un modo de intrapredicción.
4. El método según la reivindicación 1, que comprende además:
decodificar por entropía un indicador de fusión de subbloques del bloque actual mediante un primer contexto de fusión de subbloques en respuesta a la determinación de que al menos uno de la pluralidad de bloques vecinos se decodifica mediante un modo de intrapredicción; y decodificar por entropía el indicador de fusión de subbloques del bloque actual mediante un segundo contexto de fusión de subbloques en respuesta a la determinación de que ninguno de la pluralidad de bloques vecinos se decodifica mediante un modo de intrapredicción.
5. El método según la reivindicación 1, que comprende además:
decodificar por entropía un indicador de división de una unidad de codificación, CU, del bloque actual mediante un primer contexto de división de CU en respuesta a la determinación de que al menos uno de la pluralidad de bloques vecinos se decodifica mediante un modo de intrapredicción; y decodificar por entropía el indicador de división de CU del bloque actual mediante un segundo contexto de división de CU en respuesta a la determinación de que ninguno de la pluralidad de bloques vecinos se decodifica mediante un modo de intrapredicción.
6. El método según la reivindicación 1, que comprende además:
decodificar por entropía un indicador de resolución de vector de movimiento adaptativo, AMVR, del bloque actual mediante un primer contexto de AMVR en respuesta a la determinación de que al menos uno de la pluralidad de bloques vecinos se decodifica mediante un modo de intrapredicción; y
decodificar por entropía el indicador AMVR del bloque actual mediante un segundo contexto de AMVR en respuesta a la determinación de que ninguno de la pluralidad de bloques vecinos se decodifica mediante un modo de intrapredicción.
7. El método según la reivindicación 1, que comprende además:
decodificar por entropía un indicador de modo intra-inter del bloque actual mediante un primer contexto de modo intra-inter en respuesta a la determinación de que al menos uno de la pluralidad de bloques vecinos se decodifica mediante un modo de intrapredicción; y
decodificar por entropía el indicador de modo intra-inter del bloque actual mediante un segundo contexto de modo intra-inter en respuesta a la determinación de que ninguno de la pluralidad de bloques vecinos se decodifica mediante un modo de intrapredicción.
8. El método según la reivindicación 1, que comprende además:
decodificar por entropía un indicador de modo de partición triangular del bloque actual mediante un primer contexto de modo de partición triangular en respuesta a la determinación de que al menos uno de la pluralidad de bloques vecinos se decodifica mediante un modo de intrapredicción; y decodificar por entropía el indicador de modo de partición triangular del bloque actual mediante un segundo contexto de modo de partición triangular en respuesta a la determinación de que ninguno de la pluralidad de bloques vecinos se decodifica mediante un modo de intrapredicción.
9. El método según la reivindicación 1, que comprende además:
decodificar por entropía un indicador de bloque codificado, CBF, del bloque actual mediante un primer contexto de CBF en respuesta a la determinación de que al menos uno de la pluralidad de bloques vecinos se decodifica mediante un modo de intrapredicción; y
decodificar por entropía el CBF del bloque actual mediante un segundo contexto de CBF en respuesta a la determinación de que ninguno de la pluralidad de bloques vecinos se decodifica mediante un modo de intrapredicción.
10. Un método para codificación de vídeo, comprendiendo el método:
determinar si al menos uno de una pluralidad de bloques vecinos de un bloque actual en una secuencia de vídeo se codifica mediante un modo de intrapredicción;
codificar por entropía un indicador de modo de predicción de un bloque actual mediante un segundo contexto en respuesta a la determinación de que al menos uno de la pluralidad de bloques vecinos se codifica mediante un modo de intrapredicción;
determinar si al menos uno de la pluralidad de bloques vecinos se codifica mediante un modo de intra-interpredicción, en respuesta a la determinación de que ninguno de la pluralidad de bloques vecinos se codifica mediante un modo de intrapredicción; y
codificar por entropía el indicador de modo de predicción del bloque actual mediante el segundo contexto cuando al menos uno de la pluralidad de bloques vecinos se codifica mediante un modo de intra-interpredicción, pero ninguno se codifica mediante un modo de intrapredicción; y codificar por entropía el indicador de modo de predicción del bloque actual mediante un primer contexto, diferente del segundo contexto, cuando ninguno de la pluralidad de bloques vecinos se codifica mediante un modo de intra-interpredicción y ninguno se codifica por un modo de intrapredicción, en donde el indicador de modo de predicción indica si el bloque actual está codificado o intercodificado, y la intra-interpredicción es una mezcla de una interpredicción y una intrapredicción
11. Un aparato para decodificación o codificación de vídeo, comprendiendo el aparato:
al menos una memoria configurada para almacenar un código de programa informático; y al menos un procesador configurado para acceder a la al menos una memoria y operar según el código de programa informático para realizar el método según cualquiera de las reivindicaciones 1 a 10.
12. Un medio de almacenamiento legible por ordenador no transitorio que almacena instrucciones que, cuando son ejecutadas por al menos un procesador, hacen que dicho al menos un procesador realice el método según cualquiera de las reivindicaciones 1 a 10.
ES19891775T 2018-12-07 2019-11-27 Method and apparatus for further improved context design for prediction mode and coded block flag (cbf) Active ES3035918T3 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862777041P 2018-12-07 2018-12-07
US16/393,439 US11115652B2 (en) 2018-12-07 2019-04-24 Method and apparatus for further improved context design for prediction mode and coded block flag (CBF)
PCT/US2019/063516 WO2020117583A1 (en) 2018-12-07 2019-11-27 Method and apparatus for further improved context design for prediction mode and coded block flag (cbf)

Publications (1)

Publication Number Publication Date
ES3035918T3 true ES3035918T3 (en) 2025-09-11

Family

ID=70971204

Family Applications (1)

Application Number Title Priority Date Filing Date
ES19891775T Active ES3035918T3 (en) 2018-12-07 2019-11-27 Method and apparatus for further improved context design for prediction mode and coded block flag (cbf)

Country Status (7)

Country Link
US (4) US11115652B2 (es)
EP (2) EP3891996B1 (es)
JP (3) JP7132352B2 (es)
KR (2) KR20240119193A (es)
CN (2) CN113424546B (es)
ES (1) ES3035918T3 (es)
WO (1) WO2020117583A1 (es)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102573294B1 (ko) * 2018-10-27 2023-08-30 후아웨이 테크놀러지 컴퍼니 리미티드 서브블록 병합 후보를 위한 개별적인 병합 목록 및 비디오 코딩을 위한 인트라-인터 기술 조화
CN112997489B (zh) 2018-11-06 2024-02-06 北京字节跳动网络技术有限公司 具有几何分割的帧间预测的边信息信令
CN113170166B (zh) 2018-12-30 2023-06-09 北京字节跳动网络技术有限公司 具有几何分割的帧间预测在视频处理中有条件的应用
EP3991410B1 (en) * 2019-06-28 2023-09-20 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Video decoder, video encoder, methods for encoding and decoding video signals and computer program adjusting one or more denoising operations
CN120302041A (zh) * 2019-07-05 2025-07-11 Lg 电子株式会社 图像解码方法及其设备
EP4026322A4 (en) * 2019-09-07 2024-01-03 Beijing Dajia Internet Information Technology Co., Ltd. PREDICTION MODE SIGNALING IN VIDEO CODING
US12137237B2 (en) * 2021-06-10 2024-11-05 Tencent America LLC Zero residual flag coding
US12316868B2 (en) * 2021-09-29 2025-05-27 Qualcomm Incorporated Motion vector (MV) candidate reordering
WO2023239879A1 (en) * 2022-06-09 2023-12-14 Beijing Dajia Internet Information Technology Co., Ltd. Methods and devices for geometric partitioning mode with adaptive blending
US20250106404A1 (en) * 2023-09-22 2025-03-27 Tencent America LLC Recursive Intra Region Partitioning
EP4668737A1 (en) * 2024-06-20 2025-12-24 InterDigital CE Patent Holdings, SAS Merge skip specialization for intra modes

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101568708B1 (ko) 2007-09-02 2015-11-12 엘지전자 주식회사 비디오 신호처리 방법 및 장치
CN101415121B (zh) * 2007-10-15 2010-09-29 华为技术有限公司 一种自适应的帧预测的方法及装置
CN102215396A (zh) 2010-04-09 2011-10-12 华为技术有限公司 一种视频编解码方法和系统
KR101791242B1 (ko) * 2010-04-16 2017-10-30 에스케이텔레콤 주식회사 영상 부호화/복호화 장치 및 방법
HUE072362T2 (hu) 2010-11-04 2025-11-28 Ge Video Compression Llc Blokkegyesítési és kihagyási módot támogató képkódolás
KR101539312B1 (ko) * 2011-05-27 2015-07-24 미디어텍 인크. 비디오 프로세싱에 대한 라인 버퍼 감소를 위한 방법 및 장치
KR102404121B1 (ko) * 2011-07-11 2022-05-31 선 페이턴트 트러스트 화상 복호 방법, 화상 부호화 방법, 화상 복호 장치, 화상 부호화 장치 및 화상 부호화 복호 장치
CA2908115C (en) * 2013-07-08 2019-02-12 Mediatek Singapore Pte. Ltd. Method of simplified cabac coding in 3d video coding
JP6359101B2 (ja) 2013-10-14 2018-07-18 マイクロソフト テクノロジー ライセンシング,エルエルシー ビデオ及び画像の符号化及び復号のためのイントラブロックコピー予測モードの特徴
KR20170084055A (ko) 2014-11-06 2017-07-19 삼성전자주식회사 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
KR102775879B1 (ko) 2015-09-10 2025-02-28 엘지전자 주식회사 인터-인트라 병합 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
EP3355582B1 (en) 2015-09-24 2021-04-28 LG Electronics Inc. Amvr-based image coding method and apparatus in image coding system
EP3363199B1 (en) * 2015-11-27 2021-05-19 MediaTek Inc. Method and apparatus of entropy coding and context modelling for video and image coding
US11032550B2 (en) * 2016-02-25 2021-06-08 Mediatek Inc. Method and apparatus of video coding
US10560712B2 (en) * 2016-05-16 2020-02-11 Qualcomm Incorporated Affine motion prediction for video coding
WO2018135885A1 (ko) 2017-01-19 2018-07-26 가온미디어 주식회사 변환 처리를 제공하는 영상 복호화 및 부호화 방법
US10701393B2 (en) * 2017-05-10 2020-06-30 Mediatek Inc. Method and apparatus of reordering motion vector prediction candidate set for video coding

Also Published As

Publication number Publication date
CN113424546B (zh) 2024-04-19
US11533473B2 (en) 2022-12-20
US20240372995A1 (en) 2024-11-07
JP7601833B2 (ja) 2024-12-17
JP7132352B2 (ja) 2022-09-06
US20210329228A1 (en) 2021-10-21
CN118368424A (zh) 2024-07-19
EP3891996A4 (en) 2022-01-26
EP4568248A3 (en) 2025-08-13
KR20240119193A (ko) 2024-08-06
EP4568248A2 (en) 2025-06-11
US12088792B2 (en) 2024-09-10
JP2025026534A (ja) 2025-02-21
JP2022162101A (ja) 2022-10-21
CN113424546A (zh) 2021-09-21
JP2021520150A (ja) 2021-08-12
KR102691332B1 (ko) 2024-08-05
KR20210090270A (ko) 2021-07-19
EP3891996A1 (en) 2021-10-13
US11115652B2 (en) 2021-09-07
US20230068825A1 (en) 2023-03-02
EP3891996B1 (en) 2025-06-18
US20200186792A1 (en) 2020-06-11
WO2020117583A1 (en) 2020-06-11
JP7835833B2 (ja) 2026-03-25

Similar Documents

Publication Publication Date Title
ES3035918T3 (en) Method and apparatus for further improved context design for prediction mode and coded block flag (cbf)
AU2023202564B2 (en) Simplified Signaling Method for Affine Linear Weighted Intra Prediction Mode
ES2969907T3 (es) Método y aparato para codificación de video
ES3033587T3 (en) Method and apparatus for video decoding
KR102530377B1 (ko) 비디오 코딩을 위한 방법 및 장치
US12355986B2 (en) Intra mode coding
KR102506525B1 (ko) 비디오 디코딩을 위한 방법, 장치 및 매체
KR102496457B1 (ko) 비디오 코딩에서 추가적인 중간 후보들을 갖는 병합 모드를 위한 방법 및 장치
US10893298B2 (en) Method and apparatus for video coding
US11909976B2 (en) Method and apparatus for improved context design for prediction mode and coded block flag (CBF)
US10701358B2 (en) Mode dependent primary and secondary transforms
US20230336719A1 (en) Most probable mode list generation scheme
ES3012407T3 (en) Method and apparatus for a primary transform using an 8-bit transform core
ES3040589T3 (en) Method and apparatus for video coding
US12495159B1 (en) Mapping wide angle modes to intra prediction modes for a partition of a coding block
KR20210077766A (ko) 비디오 코딩을 위한 방법 및 장치
US20240007622A1 (en) Mode list generation for multi-line intra prediction
SG11202110791QA (en) Method and apparatus for signaling skip mode flag
KR20220103800A (ko) 비디오 코딩을 위한 방법 및 장치
US12192527B2 (en) Cross component end of block flag coding
US20230034947A1 (en) Cross-Component Transform Coefficient Level Reconstruction
KR20230057420A (ko) 인터리빙되지 않은 개별 트리