ES2867583T3 - Codificación de mensajes de SEI de MCTS anidados - Google Patents

Codificación de mensajes de SEI de MCTS anidados Download PDF

Info

Publication number
ES2867583T3
ES2867583T3 ES18710753T ES18710753T ES2867583T3 ES 2867583 T3 ES2867583 T3 ES 2867583T3 ES 18710753 T ES18710753 T ES 18710753T ES 18710753 T ES18710753 T ES 18710753T ES 2867583 T3 ES2867583 T3 ES 2867583T3
Authority
ES
Spain
Prior art keywords
mcts
sei
video
sei message
unit
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
ES18710753T
Other languages
English (en)
Inventor
Ye-Kui Wang
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Application granted granted Critical
Publication of ES2867583T3 publication Critical patent/ES2867583T3/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/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/174Methods 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 slice, e.g. a line of blocks or a group of 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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods 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 bits, e.g. of the compressed video stream
    • 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/188Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a video data packet, e.g. a network abstraction layer [NAL] unit
    • 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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/55Motion estimation with spatial constraints, e.g. at image or region borders
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/587Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal sub-sampling or interpolation, e.g. decimation or subsequent interpolation of pictures in a video sequence
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/31Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the temporal domain

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Display Devices Of Pinball Game Machines (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

Un método de decodificación de datos de vídeo, comprendiendo el método: decodificar una unidad de capa de abstracción de red, NAL, de información de mejora complementaria, SEI, recibida de un flujo de bits de vídeo, conteniendo la unidad de NAL de SEI, según se recibe, un mensaje de SEI de anidación de conjuntos de piezas restringidas en movimiento, MCTS; determinar, basándose en una restricción impuesta en el flujo de bits de vídeo según se recibe que cualquier unidad de NAL de SEI que contiene un respectivo mensaje de SEI de anidación de MCTS no contiene ningún mensaje de SEI no de anidación de MCTS, que la unidad de NAL de SEI, según se recibe, no contiene ningún mensaje de SEI no de anidación de MCTS en respuesta a la unidad de NAL de SEI que contiene el mensaje de SEI de anidación de MCTS; y decodificar mensajes de SEI posteriores de la unidad de NAL de SEI recibida como mensajes de SEI de anidación de MCTS en respuesta a la determinación.

Description

DESCRIPCIÓN
Codificación de mensajes de SEI de MCTS anidados
Campo técnico
Esta divulgación se refiere a la codificación de vídeo.
Antecedentes
Las capacidades de vídeo digital pueden incorporarse en una amplia gama de dispositivos, que incluyen televisiones digitales, sistemas de difusión directa digital, sistemas de difusión inalámbrica, asistentes digitales personales (PDA), ordenadores portátiles o de sobremesa, ordenadores de tableta, lectores de libros electrónicos, cámaras digitales, dispositivos de grabación digital, reproductores de medios digitales, dispositivos de videojuegos, consolas de videojuegos, teléfonos de radio celular o por satélite, denominados "teléfonos inteligentes", dispositivos de teleconferencia de vídeo, dispositivos de envío por flujo continuo de vídeo y similares. Los dispositivos de vídeo digital implementan técnicas de codificación de vídeo, tales como aquellas descritas en las normas definidas por MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Parte 10, Codificación Avanzada de Vídeo (AVC), la norma de Codificación de Vídeo de Alta Eficacia (HEVC), ITU-T H.265/Codificación de Vídeo de Alta Eficacia (HEVC) y extensiones de tales normas. Los dispositivos de vídeo pueden transmitir, recibir, codificar, decodificar y/o almacenar información de vídeo digital de manera más eficaz implementando tales técnicas de codificación de vídeo.
Las técnicas de codificación de vídeo incluyen predicción espacial (intra-imagen) y/o temporal (inter-imagen) para reducir o eliminar la redundancia inherente en las secuencias de vídeo. Para la codificación de vídeo basada en bloques, un corte de vídeo (por ejemplo, una imagen de vídeo o una porción de una imagen de vídeo) puede subdividirse en bloques de vídeo, que pueden denominarse también como unidades de árbol de codificación (CTU), unidades de codificación (CU) y/o nodos de codificación. Los bloques de vídeo en un corte intra-codificado (I) de una imagen se codifican usando predicción espacial con respecto a muestras de referencia en bloques vecinos en la misma imagen. Los bloques de vídeo en un corte inter-codificado (P o B) de una imagen pueden usar predicción espacial con respecto a muestras de referencia en bloques vecinos en la misma imagen o predicción temporal con respecto a muestras de referencia en otras imágenes de referencia. Las imágenes pueden denominarse como fotogramas, y las imágenes de referencia pueden denominarse como fotogramas de referencia.
La predicción espacial o temporal da como resultado un bloque predictivo para un bloque que va a codificarse. Los datos residuales representan diferencias de píxel entre el bloque original que va a codificarse y el bloque predictivo. Un bloque inter-codificado se codifica de acuerdo con un vector de movimiento que apunta a un bloque de muestras de referencia que forma el bloque predictivo, y los datos residuales que indican la diferencia entre el bloque codificado y el bloque predictivo. Un bloque intra-codificado se codifica de acuerdo con un modo de intra-codificación y los datos residuales. Para una compresión adicional, los datos residuales pueden transformarse desde el dominio de los píxeles a un dominio de la transformada, dando como resultado coeficientes de transformada residuales, que pueden a continuación cuantificarse. Los coeficientes de transformada cuantificados, inicialmente dispuestos en una matriz bidimensional, pueden explorarse para producir un vector unidimensional de coeficientes de transformada, y puede aplicarse codificación por entropía para conseguir incluso más compresión.
En "HEVC Additional Supplemental Enhancement Information (Draft 1)" de Boyce et al (26th. JCT-VC meeting; 12-1­ 2017 - 20-1-2017; Ginebra; documento n.° JCTVC-Z1005) se desvela el texto borrador para los cambios a la norma de HVEC para especificar mensajes de SEI para volumen de color de contenido, proyección de 360° omnidireccional, anidación regional y la información de extracción de conjuntos de piezas de restringidas en movimiento.
Sumario
En general, esta divulgación describe técnicas de codificación de vídeo que usan diseños mejorados para conjuntos de piezas restringidas en movimiento (MCTS) que posibilitan la extracción limpia de un flujo de bits conforme que incluye un subconjunto de los MCTS contenidos en un flujo de bits de vídeo original. En general, las técnicas de esta divulgación se describen en el contexto de Codificación de Vídeo de Alta Eficacia (HEVC). Sin embargo, estas técnicas pueden aplicarse, en general, a cualquier códec de vídeo que posibilite regiones independientemente codificadas extraíbles.
La invención se define por las reivindicaciones independientes con características preferidas expuestas en las reivindicaciones dependientes.
En un ejemplo, un método de procesamiento de datos de vídeo incluye la decodificación de una unidad de capa de abstracción de red (NAL) de información de mejora complementaria (SEI) de un flujo de bits de vídeo, conteniendo la unidad de NAL de SEI un mensaje de SEI de anidación de conjuntos de piezas restringidas en movimiento (MCTS); determinar que la unidad de NAL de SEI no contiene ningún mensaje de SEI no de anidación de MCTS en respuesta a la unidad de NAL de SEI que contiene el mensaje de SEI de anidación de MCTS; y decodificar mensajes de SEI posteriores de la unidad de NAL de SEI como mensajes de SEI de anidación de MCTS en respuesta a la determinación. En otro ejemplo, un dispositivo para procesar datos de vídeo incluye una memoria configurada para almacenar datos de vídeo; y uno o más procesadores implementados en circuitería y configurados para decodificar una unidad de capa de abstracción de red (NAL) de información de mejora complementaria (SEI) de un flujo de bits de vídeo que incluye los datos de vídeo, la unidad de NAL de SEI que contiene un mensaje de SEI de anidación de conjuntos de piezas restringidas en movimiento (MCTS); determinar que la unidad de NAL de SEI no contiene ningún mensaje de SEI no de anidación de MCTS en respuesta a la unidad de NAL de SEI que contiene el mensaje de SEI de anidación de MCTS; y decodificar mensajes de SEI posteriores de la unidad de NAL de SEI como mensajes de SEI de anidación de MCTS en respuesta a la determinación.
En otro ejemplo, un dispositivo para procesar datos de vídeo incluye medios para decodificar una unidad de capa de abstracción de red (NAL) de información de mejora complementaria (SEI) de un flujo de bits de vídeo, conteniendo la unidad de NAL de SEI un mensaje de SEI de anidación de conjuntos de piezas restringidas en movimiento (MCTS); medios para determinar que la unidad de NAL de SEI no contiene ningún mensaje de SEI no de anidación de MCTS en respuesta a la unidad de NAL de SEI que contiene el mensaje de SEI de anidación de MCTS; y medios para decodificar mensajes de SEI posteriores de la unidad de NAL de SEI como mensajes de SEI de anidación de MCTS en respuesta a la determinación.
En otro ejemplo, un medio de almacenamiento legible por ordenador tiene almacenado en el mismo instrucciones que, cuando se ejecutan, hacen que un procesador decodifique una unidad de capa de abstracción de red (NAL) de información de mejora complementaria (SEI) de un flujo de bits de vídeo, conteniendo la unidad de NAL de SEI un mensaje de SEI de anidación de conjuntos de piezas restringidas en movimiento (MCTS); determinar que la unidad de NAL de SEI no contiene ningún mensaje de SEI no de anidación de MCTS en respuesta a la unidad de NAL de SEI que contiene el mensaje de SEI de anidación de MCTS; y decodificar mensajes de SEI posteriores de la unidad de NAL de SEI como mensajes de SEI de anidación de MCTS en respuesta a la determinación.
Los detalles de uno o más ejemplos se exponen en los dibujos adjuntos y en la descripción posterior. Otras características, objetos y ventajas serán evidentes a partir de la descripción y los dibujos, y a partir de las reivindicaciones.
Breve descripción de los dibujos
La Figura 1 es un diagrama de bloques que ilustra un sistema de codificación y decodificación de vídeo ilustrativo que puede utilizar técnicas para procesar datos de vídeo usando conjuntos de piezas restringidas en movimiento (MCTS).
La Figura 2 es un diagrama de bloques que ilustra un ejemplo de un codificador de vídeo que puede implementar técnicas para procesar datos de vídeo usando conjuntos de piezas restringidas en movimiento (MCTS).
La Figura 3 es un diagrama de bloques que ilustra un ejemplo de un decodificador de vídeo que puede implementar técnicas para procesar datos de vídeo usando conjuntos de piezas restringidas en movimiento (MCTS).
La Figura 4 es un diagrama de flujo que ilustra un método ilustrativo para extraer un subflujo de bits de acuerdo con las técnicas de esta divulgación.
La Figura 5 es un diagrama de flujo que ilustra otro método ilustrativo para extraer un subflujo de bits de acuerdo con las técnicas de esta divulgación.
Descripción detallada
Las normas de codificación de vídeo incluyen ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 o ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual e ITU-T H.264 (también conocida como ISO/IEC MPEG-4 AVC), que incluye sus extensiones de Codificación de Vídeo Escalable (SVC) y Codificación de Vídeo de Múltiples Vistas (MVC), e ITU-T H.265 (también conocida como ISO/IEC MPEG-4 Codificación de Vídeo de Alta Eficacia (HEVC)), que incluye sus extensiones escalable y de múltiples vistas SHVC y MV-HEVC, respectivamente.
HEVC soporta la codificación de regiones codificadas independientemente extraíbles que usan conjuntos de piezas restringidas en movimiento (MCTS), y señalización de MCTS usando un mensaje de información de mejora complementaria (SEI) de MCTS temporal y un mensaje de SEI de conjuntos de piezas restringidas inter-capa.
El mensaje de SEI de MCTS temporal indica que el proceso de inter predicción está restringido de manera que no se usa ningún valor de muestra fuera de cada conjunto de piezas identificado, y no se usa valor de muestra en una posición de muestra fraccional que se derive usando uno o más valores de muestra fuera del conjunto de muestras identificado para inter predicción de cualquier muestra dentro del conjunto de piezas identificado. También se señaliza alguna información de los MCTS indicados, tal como la fase y el nivel, en el mensaje de SEI de MCTS temporal, de acuerdo con HEVC.
Actualmente se están desarrollando dos mensajes de SEI relacionados con MCTS por el JCT-VC. Se incluye una especificación de borrador que incluye los diseños en el documento JCTVC-Z1005, disponible a partir de phenix.intevry.fr/jct/doc_end_user/documents/26_Geneva/wg11/JCTVC-Z1005-v1.zip. En JCTVC-Z1005, estos dos mensajes de SEI se llaman mensaje de SEI de conjunto de información de extracción de MCTS (MCTS-EIS) y mensaje de SEI de anidación de información de extracción de MCTS (MCTS-EIN), respectivamente. La tabla 1 a continuación proporciona la sintaxis para el mensaje de SEI de MCTS de acuerdo con h Ev C. La tabla 2 a continuación proporciona la sintaxis para el mensaje de SEI de MCTS-EIS de JCTVC-Z1005. La tabla 3 a continuación proporciona la sintaxis para el mensaje de SEI de MCTS-EIN de JCTVC-Z1005.
TABLA 1
Figure imgf000004_0002
____________________________________________________
TABLA 2
Figure imgf000004_0001
____ ____
continuación
Figure imgf000005_0002
______________________________________________________________
TABLA 3
Figure imgf000005_0001
______________________________________________________________________
El mensaje de SEI de MCTS-EIS de JCTVC-Z1005 proporciona información complementaria que puede usarse en la extracción de un subflujo de bits para un MCTS. La información incluye un número de conjuntos de información de extracción, que cada uno contiene identificadores de los MCTS a los que se aplica el conjunto de información de extracción. Cada conjunto de información de extracción contiene bytes de RBSP de conjuntos de parámetros de vídeo de sustitución, conjuntos de parámetros de secuencia y conjuntos de parámetros de imagen que van a usarse durante el proceso de extracción del subflujo de bits de MCTS.
El mensaje de SEI de MCTS-EIS de JCTVC-Z1005, que puede denominarse como un "mensaje de SEI de anidación de MCTS" por simplicidad, proporciona un mecanismo para transportar y asociar mensajes de SEI con subconjuntos de flujos de bits que corresponden a uno o a los MCTS. Un mensaje de SEI contenido en un mensaje de SEI de anidación de MCTS se denomina como un MCTS anidado o un mensaje de SEI de MCTS anidado, y un mensaje de SEI que no está contenido en un mensaje de SEI de anidación de MCTs se denomina como un MCTS no anidado o un mensaje de SEI de MCTS no anidado. Cuando se extrae un subflujo de bits para un MCTS, los mensajes de SEI de MCTS anidados aplicables a un MCTS en una unidad de acceso pueden incluirse en la correspondiente unidad de acceso del subflujo de bits extraído como mensajes de SEI de MCTS no anidados.
El uso de los diseños del mensaje de SEI de MCTS temporal en la especificación de HEVC actual, así como los dos mensajes de SEI relacionados con MCTS en JCTVC-Z1005 puede encontrar los siguientes problemas:
1) Para que sea significativo, un mensaje de SEI de MCTS-EIS tiene que depender de un mensaje de SEI de MCTS temporal, que se denomina como el mensaje de SEI de MCTS temporal asociado. Sin embargo, la presencia de un mensaje de SEI de MCTS-EIS en una unidad de acceso no está condicionado con la presencia de un mensaje de SEI de MCTS temporal. Esto hace la semántica del mensaje de SEI de MCTS-EIS innecesariamente complicadas, en particular, con la necesidad de especificar su propio conjunto de imágenes asociadas/aplicables y la necesidad de especificar unas pocas restricciones de flujo de bits complicadas en este mismo mensaje de SEI y en el mensaje de SEI de MCTS temporal. Esto haría la generación de flujos de bits más complicada e incurriría en costes superiores de conformidad con la prueba.
2) Para ambos de los dos mensajes de SEI relacionados con MCTS en JCTVC-Z1005, se usan los identificadores de MCTS representados por instancias del elemento de sintaxis mcts_id[i] del mensaje de SEI de MCTS temporal asociado en la semántica. Sin embargo, existen los siguientes problemas en este punto:
a. La semántica actual del mensaje de SEI de MCTS temporal especifica que mcts_id[i] contiene un número de identificación que puede usarse para identificar el propósito del iésimo conjunto de piezas identificado. En otras palabras, mcts_id[i] no es el identificador de MCTS, sino el propósito, y diferentes MCTS pueden tener el mismo valor de mcts_id[i] (para el mismo propósito). Adicionalmente, los valores para mcts_id[i] se están reservando actualmente para uso futuro por la ITU-T|ISO/IEC o se especifican como "puede determinarse por la aplicación" y los decodificadores que encuentran mensajes de SEI de MCTS temporales con mcts_id[i] que tienen valores de la primera categoría deberán ignorar los mensajes de SEI (y, en este caso, estos dos mensajes de SEI relacionados con MCTS se volverían también inútiles ya que dependen de los mensajes de SEI de MCTS temporales), mientras que los valores para mcts_id[i] de la segunda categoría no tendrían sentido para cualquier aplicación a menos que esa aplicación especifique los valores.
b. Cuando each_tile_one_tile_set_flag del mensaje de SEI de MCTS temporal asociado es igual a 1, no hay mcts_id[i] presentes o inferidos. En consecuencia, este escenario, que es común, no se soporta.
3) Hay una etapa en el proceso de extracción de subflujo de bits de MCTS especificado en la semántica del mensaje de SEI de MCTS-EIS para retirar todas las unidades de NAL de SEI que tienen nuh_layer_id igual a 0 y que contienen mensajes de SEI de MCTS no anidados. Sin embargo, tener la condición "que tienen el id de capa nuh igual a 0" mantendría todas las unidades de NAL de SEI con id de capa nuh mayor que 0 en el flujo de bits extraído, mientras que los mensajes de SEI de MCTS no anidados en unidades de nAl de SEI con nuh_layer_id mayor que 0, si estuvieran presentes, no aplicarían un subconjunto extraído de MCTS, y, por lo tanto, no deberían incluirse en el subflujo de bits extraído.
4) La etapa final del proceso de extracción de subflujo de bits de MCTS especificado en la semántica del mensaje de SEI de MCTS-EIS es para ajustar el encabezado de segmento de corte de cada unidad de NAL de VCL, que incluye ajustar los valores de los elementos de sintaxis de encabezado de segmento de corte first_slice_segment in_pic_flag y slice_segment_address. Sin embargo, cuando hay una dependencia de encabezado de segmento de corte de un segmento de corte dependiente del MCTS objetivo en un segmento de corte independiente de otro MCTS, este proceso de extracción de subflujo de bits no generará un flujo de bits conforme, debido a que una gran cantidad de los elementos de segmento de corte elementos de sintaxis no están disponibles para ese encabezado de segmento de corte dependiente.
5) Para que sea significativo, un mensaje de SEI de anidación de MCTS tiene que depender de un mensaje de SEI de MCTS temporal, así como de un mensaje de SEI de MCTS-EIS. Sin embargo, la presencia de un mensaje de SEI de anidación de MCTS en una unidad de acceso no está condicionado con la presencia de un mensaje de SEI de MCTS temporal o de un mensaje de SEI de MCTS-EIS.
6) Una unidad de NAL de SEI que contiene un mensaje de SEI de anidación de MCTS puede contener mensajes de SEI de MCTS no anidados. Sin embargo, esto complica innecesariamente la extracción de un flujo de bits conforme para un MCTS que contenga mensajes de SEI, y, en realidad, una etapa del proceso de extracción de subflujo de bits de MCTS como se especifica en la semántica del mensaje de s E i de MCTS-EIS eliminaría tales unidades de NAL de SEI.
7) Un MCTS que contiene piezas no vecinas no se soporta por el diseño del mensaje de SEI de MCTS temporal, mientras que el proceso de extracción de subflujo de bits de MCTS especificado en la semántica del mensaje de SEI de MCTS-EIS especifica la extracción de un subflujo de bits para un MCTS únicamente. Sin embargo, en aplicaciones de vídeo de realidad virtual o de 360 grados, las piezas no vecinas pueden corresponder realmente a una región en la superficie esférica, y puede ser deseable indicar la capacidad de decodificación requerida, por ejemplo, el nivel, de tal conjunto de piezas no vecinas y/o para posibilitar la extracción de un flujo de bits conforme para un conjunto de piezas no vecinas de este tipo.
8) El valor de num_sets_in_message_minus1 del mensaje de SEI de MCTS temporal se especifica para que se encuentre en el intervalo de 0 a 255, inclusive, es decir, el número de MCTS permitidos para que se señalicen es como máximo 256. Sin embargo, en aplicaciones de vídeo de realidad virtual o de 360 grados, el posible número de combinaciones de piezas, correspondiendo cada combinación a un MCTS, que incluye casos donde una pieza particular puede incluirse en múltiples MCTS, el número máximo 256 puede no ser suficiente.
9) Para tanto el mensaje de SEI de MCTS-EIS como el mensaje de SEI de anidación de MCTS, el intervalo de valores de unos pocos elementos de sintaxis se especifica para que sea de 0 a 232 - 2, inclusive, que incluye el número de conjuntos de información de extracción y el número de MCTS asociados con un conjunto de información de extracción o los mensajes de SEI de MCTS anidados. Este límite superior puede ser, en algunas situaciones, excesivamente alto.
La técnica de la presente invención se refiere a una superación del sexto problema anteriormente analizado. Las otras técnicas de esta divulgación, que pueden aplicarse en solitario o en cualquier combinación, pueden superar cualquiera o todos estos problemas y se proporcionan para fines de ilustración únicamente.
El mensaje de SEI de MCTS puede incluir un elemento de sintaxis que indica si las piezas de una o más imágenes correspondientes se incluyen en MCTS separados, de manera que hay una correspondencia uno a uno entre piezas y MCTS. En un ejemplo, el elemento de sintaxis es un each_tile_one_tile_set_flag. En algunos ejemplos, un valor de uno para each_tile_one_tile_set_flag indica que las piezas de la una o más imágenes correspondientes están incluidas en los MCTS separados, y un valor de cero para each_tile_one_tile_set_flag indica que dos o más piezas de la una o más imágenes correspondientes pueden incluirse en un MCTS común (es decir, no se aplica la restricción de que cada pieza está en su propio MCTS).
La Figura 1 es un diagrama de bloques que ilustra un sistema 10 de codificación y decodificación de vídeo ilustrativo que puede utilizar técnicas para procesar datos de vídeo usando conjuntos de piezas restringidas en movimiento (MCTS). Como se muestra en la Figura 1, el sistema 10 incluye un dispositivo 12 de origen que proporciona datos de vídeo codificados para decodificarse en un tiempo posterior por un dispositivo 14 de destino. En particular, el dispositivo 12 de origen proporciona los datos de vídeo al dispositivo 14 de destino mediante un medio 16 legible por ordenador. El dispositivo 12 de origen y el dispositivo 14 de destino pueden comprender cualquiera de una amplia gama de dispositivos, que incluyen ordenadores de sobremesa, ordenadores portátiles (es decir, portátiles), ordenadores de tableta, decodificadores de salón, microteléfonos telefónicos tales como los denominados "inteligentes", los denominados mandos "inteligentes", televisiones, cámaras, dispositivos de visualización, reproductores de medios digitales, consolas de videojuegos, dispositivo de envío por flujo continuo de vídeo o similares. En algunos casos, el dispositivo 12 de origen y el dispositivo 14 de destino pueden equiparse para comunicación inalámbrica.
El dispositivo 14 de destino puede recibir los datos de vídeo codificados para que se decodifiquen mediante un medio 16 legible por ordenador. El medio 16 legible por ordenador puede comprender cualquier tipo de medio o dispositivo que pueda mover los datos de vídeo codificados desde el dispositivo 12 de origen al dispositivo 14 de destino. En un ejemplo, el medio 16 legible por ordenador puede comprender un medio de comunicación para posibilitar que el dispositivo 12 de origen transmita datos de vídeo codificados directamente al dispositivo 14 de destino en tiempo real. Los datos de vídeo codificados pueden modularse de acuerdo con una norma de comunicación, tal como un protocolo de comunicación inalámbrica, y transmitirse al dispositivo 14 de destino. El medio de comunicación puede comprender cualquier medio de comunicación inalámbrica o alámbrica, tal como un espectro de radiofrecuencia (RF) o una o más líneas de transmisión físicas. El medio de comunicación puede formar parte de una red basada en paquetes, tal como una red de área local, una red de área amplia o una red global, tal como internet. El medio de comunicación puede incluir encaminadores, conmutadores, estaciones base o cualquier otro equipo que pueda ser útil para facilitar la comunicación desde el dispositivo 12 de origen al dispositivo 14 de destino.
En el ejemplo de la Figura 1, se proporciona la unidad 24 de extracción de subflujo de bits a lo largo del medio 16 legible por ordenador. La unidad 24 de extracción de subflujo de bits puede formar parte de un dispositivo, tal como un elemento de red con reconocimiento de medios (MANE), encaminador u otro dispositivo que esté configurado para extraer subflujos de bits de flujos de bits originales, por ejemplo, de acuerdo con las técnicas de esta divulgación. La unidad 24 de extracción de subflujo de bits incluye la memoria 26, para el almacenamiento temporal de datos recibidos de un flujo de bits y datos extraídos para un subflujo de bits. La unidad 24 de extracción de subflujo de bits puede enviar los datos extraídos para el subflujo de bits al dispositivo 14 de destino. Adicionalmente o como alternativa, la interfaz 28 de entrada puede configurarse para extraer subflujos de bits de flujos de bits originales, por ejemplo, de acuerdo con las técnicas de esta divulgación. El codificador 20 de vídeo y/o la interfaz 22 de salida pueden configurarse para señalizar datos para extraer subflujos de bits de acuerdo con las técnicas de esta divulgación.
En algunos ejemplos, los datos codificados pueden emitirse desde la interfaz 22 de salida a un dispositivo de almacenamiento. De manera similar, puede accederse a los datos codificados desde el dispositivo de almacenamiento mediante interfaz de entrada. El dispositivo de almacenamiento puede incluir cualquiera de una diversidad de medios de almacenamiento de datos distribuidos o de acceso local, tales como un disco duro, discos Blu-ray, DVD, CD-ROM, memoria flash, memoria volátil o no volátil o cualquier otro medio de almacenamiento digital adecuado para almacenar datos de vídeo codificados. En un ejemplo adicional, el dispositivo de almacenamiento puede corresponder a un servidor de ficheros u otro dispositivo de almacenamiento intermedio que puede almacenar el vídeo codificado generado por el dispositivo 12 de origen. El dispositivo 14 de destino puede acceder a datos de vídeo almacenados del dispositivo de almacenamiento mediante envío por flujo continuo o descarga. El servidor de ficheros puede ser cualquier tipo de servidor que pueda almacenar datos de vídeo codificados y transmitir esos datos de vídeo codificados al dispositivo 14 de destino. Servidores de ficheros ilustrativos incluyen, un servidor web (por ejemplo, para un sitio web), un servidor de FTP, dispositivos de almacenamiento de conexión de red (NAS) o una unidad de disco local. El dispositivo 14 de destino puede acceder a los datos de vídeo codificados a través de cualquier conexión de datos convencional, incluyendo una conexión a Internet. Esta puede incluir, un canal inalámbrico (por ejemplo, una conexión de Wi-Fi), una conexión cableada (por ejemplo, DSL, módem de cable, etc.), o una combinación de ambos que es adecuada para acceder a datos de vídeo codificados almacenados en un servidor de ficheros. La transmisión de datos de vídeo codificados del dispositivo de almacenamiento puede ser una transmisión de envío por flujo continuo, una transmisión de descarga o una combinación de ambas.
Las técnicas de esta divulgación no están necesariamente limitadas a aplicaciones o ajustes inalámbricos. Las técnicas pueden aplicarse a codificación de vídeo en apoyo de cualquiera de una diversidad de aplicaciones multimedia, tales como difusiones de televisión en el transcurso de la comunicación, transmisiones de televisión de cable, transmisiones de televisión por satélite, transmisiones de vídeo de envío por flujo continuo de Internet, tales como envío por flujo continuo adaptativo dinámico a través de HTTP (DASH), vídeo digital que se codifica en un medio de almacenamiento de datos, decodificación de vídeo digital almacenado en un medio de almacenamiento de datos u otras aplicaciones. En algunos ejemplos, el sistema 10 puede configurarse para soportar una transmisión de vídeo unidireccional o bidireccional para soportar aplicaciones tales como envío por flujo continuo de vídeo, reproducción de vídeo, difusión de vídeo y/o telefonía de vídeo.
En el ejemplo de la Figura 1, el dispositivo 12 de origen incluye el origen 18 de vídeo, el codificador 20 de vídeo y la interfaz 22 de salida. El dispositivo 14 de destino incluye la interfaz 28 de entrada, el decodificador 30 de vídeo y el dispositivo 32 de visualización. De acuerdo con esta divulgación, el codificador 20 de vídeo del dispositivo 12 de origen, la interfaz 22 de salida, la unidad 24 de extracción de subflujo de bits, la interfaz 28 de entrada y/o el decodificador 30 de vídeo pueden configurarse para aplicar las técnicas para procesar datos de vídeo usando conjuntos de piezas restringidas en movimiento (MCTS). En otros ejemplos, un dispositivo de origen y un dispositivo de destino pueden incluir otros componentes o disposiciones. Por ejemplo, el dispositivo 12 de origen puede recibir datos de vídeo desde un origen 18 de vídeo externo, tal como una cámara externa. Análogamente, el dispositivo 14 de destino puede interconectar con un dispositivo de visualización externo, en lugar de incluir un dispositivo de visualización integrado.
El sistema 10 ilustrado de la Figura 1 es simplemente un ejemplo. Las técnicas para procesar datos de vídeo usando conjuntos de piezas restringidas en movimiento (MCTS) pueden realizarse por cualquier dispositivo de codificación y/o decodificación de vídeo digital. Aunque las técnicas de esta divulgación se realizan, en general, por un dispositivo de codificación de vídeo, las técnicas pueden realizarse por un codificador/decodificador de vídeo, típicamente denominado como un "CODEC". Además, las técnicas de esta divulgación pueden realizarse también por un preprocesador de vídeo. El dispositivo 12 de origen y el dispositivo 14 de destino son simplemente ejemplos de tales dispositivos de codificación en los que el dispositivo 12 de origen genera datos de vídeo codificados para transmisión al dispositivo 14 de destino. En algunos ejemplos, los dispositivos 12, 14 pueden operar de una manera sustancialmente simétrica de manera que cada uno de los dispositivos 12, 14 incluya componentes de codificación y decodificación de vídeo. Por lo tanto, el sistema 10 puede soportar transmisión unidireccional o bidireccional entre los dispositivos 12, 14 de vídeo, por ejemplo, para envío por flujo continuo de vídeo, reproducción de vídeo, difusión de vídeo o telefonía de vídeo.
El origen 18 de vídeo del dispositivo 12 de origen puede incluir un dispositivo de captura de vídeo, tal como una cámara de vídeo, un archivo de vídeo que contiene vídeo previamente capturado y/o una interfaz de alimentación de vídeo para recibir vídeo desde un proveedor de contenido de vídeo. Como una alternativa adicional, el origen 18 de vídeo puede generar datos basados en gráficos informáticos como el vídeo de origen, o una combinación de vídeo en directo, vídeo archivado y vídeo generado por ordenador. En algunos casos, si el origen 18 de vídeo es una cámara de vídeo, el dispositivo 12 de origen y el dispositivo 14 de destino pueden formar denominados teléfonos de cámara o videoteléfonos. Sin embargo, como se ha mencionado anteriormente, las técnicas descritas en esta divulgación pueden ser aplicables a codificación de vídeo, en general, y pueden aplicarse a aplicaciones inalámbricas y/o alámbricas. En cada caso, el vídeo capturado, pre-capturado o generado por ordenador puede codificarse por el codificador 20 de vídeo. La información de vídeo codificada puede emitirse a continuación por la interfaz 22 de salida en un medio 16 legible por ordenador.
El medio 16 legible por ordenador puede incluir medios transitorios, tales como una transmisión de difusión inalámbrica o de red cableada o medios de almacenamiento (es decir, medios de almacenamiento no transitorios), tales como un disco duro, unidad flash, disco compacto, disco de vídeo digital, disco Blu-ray u otro medio legible por ordenador. En algunos ejemplos, un servidor de red (no mostrado) puede recibir datos de vídeo codificados desde el dispositivo 12 de origen y proporcionar los datos de vídeo codificados al dispositivo 14 de destino, por ejemplo, mediante la transmisión de red. De manera similar, un dispositivo informático de una instalación de producción de medios, tal como una instalación de estampado de discos, puede recibir datos de vídeo codificados desde el dispositivo 12 de origen y producir un disco que contiene los datos de vídeo codificados. Por lo tanto, el medio 16 legible por ordenador puede entenderse que incluye uno o más medios legibles por ordenador de diversas formas en diversos ejemplos.
La interfaz 28 de entrada del dispositivo 14 de destino recibe información desde el medio 16 legible por ordenador. La información del medio 16 legible por ordenador puede incluir información de sintaxis definida por el codificador 20 de vídeo, que también se usa por el decodificador 30 de vídeo, que incluye elementos de sintaxis que describen características y/o procesamiento de bloques y otras unidades codificadas. El dispositivo 32 de visualización presenta visualmente los datos de vídeo decodificados a un usuario, y puede comprender cualquiera de una diversidad de dispositivos de visualización, tales como un tubo de rayos catódicos (CRT), una pantalla de cristal líquido (LCD), una pantalla de plasma, una pantalla de diodo de emisión de luz orgánico (OLED) u otro tipo de dispositivo de visualización.
El codificador 20 de vídeo y el decodificador 30 de vídeo pueden operar de acuerdo con una norma de codificación de vídeo, tal como la norma de Codificación de Vídeo de Alta Eficacia (HEVC), también denominada como ITU-T H.265. Como alternativa, el codificador 20 de vídeo y el decodificador 30 de vídeo pueden operar de acuerdo con otras normas propietarias o industriales, tal como la norma ITU-T H.264, denominada como alternativa como MPEG-4, Parte 10, Codificación Avanzada de Vídeo (AVC) o extensiones de tales normas. Sin embargo, las técnicas de esta divulgación no están limitadas a ninguna norma de codificación particular. Otros ejemplos de normas de codificación de vídeo incluyen MPEG-2 e ITU-T H.263. Aunque no se muestra en la Figura 1, en algunos aspectos, el codificador 20 de vídeo y el decodificador 30 de vídeo puede cada uno estar integrado con un codificador y decodificador de audio, y puede incluir unidades MUX-DEMUX apropiadas y otro hardware y software, para manejar la codificación tanto de audio como de vídeo en un flujo de datos común o en flujos de datos separados. Si es aplicable, las unidades MUX-DEMUX pueden ser de conformidad con el protocolo multiplexor de la ITU H.223 u otros protocolos, tales como el protocolo de datagramas de usuario (UDP).
El codificador 20 de vídeo y el decodificador 30 de vídeo cada uno puede implementarse como cualquiera de una diversidad de circuitería de codificador adecuada, tal como uno o más microprocesadores, procesadores de señales digitales (DSP), circuitos integrados específicos de la aplicación (ASIC), campos de matrices de puertas programables (FPGA), lógica discreta, software, hardware, firmware o cualquier combinación de los mismos. Cuando las técnicas se implementan parcialmente en software, un dispositivo puede almacenar instrucciones para el software en un medio legible por ordenador no transitorio adecuado y ejecutar las instrucciones en hardware usando uno o más procesadores para realizar las técnicas de esta divulgación. Cada uno del codificador 20 de vídeo y el decodificador 30 de vídeo pueden estar incluidos en uno o más codificadores o decodificadores, cualquiera de los cuales puede estar integrado como parte de un codificador/decodificador combinado (CODEC) en un respectivo dispositivo.
En general, de acuerdo con la ITU-T H.265, una imagen de vídeo puede dividirse en una secuencia de unidades de árbol de codificación (CTU) (o unidades de codificación más grandes (LCU)) que pueden incluir muestras tanto de luminancia como de crominancia. Como alternativa, las CTU pueden incluir datos monocromo (es decir, muestras únicamente de luminancia). Los datos de sintaxis dentro de un flujo de bits pueden definir un tamaño para la CTU, que es una unidad de codificación más grande en términos del número de píxeles. Un corte incluye un número de CTU consecutivas en orden de codificación. Una imagen de vídeo puede subdividirse en uno o más cortes. Cada CTU puede dividirse en unidades de codificación (CU) de acuerdo con un árbol cuádruple. En general, una estructura de datos de árbol cuádruple incluye un nodo por CU, que corresponde a un nodo raíz a la CTU. Si una CU se divide en cuatro sub-CU, el nodo que corresponde a la CU incluye cuatro nodos hoja, cada uno de los cuales corresponde a una de las sub-CU.
Cada nodo de la estructura de datos de árbol cuádruple puede proporcionar datos de sintaxis para la correspondiente CU. Por ejemplo, un nodo en el árbol cuádruple puede incluir una bandera de división, que indica si la CU que corresponde al nodo se divide en sub-CU. Los elementos de sintaxis para una CU pueden definirse de manera recursiva, y pueden depender de si la CU se divide en las sub-CU. Si una CU no se divide más, se denomina como una CU hoja. En esta divulgación, cuatro sub-CU de una CU hoja se denominarán también como las CU hoja, incluso si no hay división explícita de la CU hoja original. Por ejemplo, si una CU en tamaño de 16x16 no se divide más, las cuatro sub-CU de 8x8 se denominarán también como CU hoja, aunque la CU de 16x16 nunca se dividió.
Una CU tiene un propósito similar que un macrobloque de la norma H.264, excepto que una CU no tiene una distinción de tamaño. Por ejemplo, una CTU puede dividirse en cuatro nodos hijo (también denominados como sub-CU), y cada nodo hijo puede convertirse, a su vez, en un nodo padre y dividirse en otros cuatro nodos hijo. Un nodo hijo no dividido final, denominado como un nodo hoja del árbol cuádruple, comprende un nodo de codificación, también denominado como una CU hoja. Los datos de sintaxis asociados con un flujo de bits codificado pueden definir un número máximo de veces que puede dividirse una CTU, denominado como profundidad de CU máxima, y puede definir también un tamaño mínimo de los nodos de codificación. Por consiguiente, un flujo de bits puede definir también la unidad de codificación más pequeña (SCU). Esta divulgación usa el término "bloque" para hacer referencia a cualquiera de una CU, unidad de predicción (PU) o unidad de transformada (TU), en el contexto de HEVC o estructuras de datos similares en el contexto de otras normas (por ejemplo, macrobloques y subbloques de los mismos en H.264/AVC).
Una CU incluye un nodo de codificación y unidades de predicción (PU) y unidades de transformada (TU) asociadas con el nodo de codificación. Un tamaño de la CU corresponde a un tamaño del nodo de codificación y es, en general, cuadrado en forma. El tamaño de la CU puede variar de 8x8 píxeles hasta el tamaño de la CTU con un tamaño máximo, por ejemplo, de 64x64 píxeles o mayor. Cada CU puede contener una o más PU y una o más TU. Los datos de sintaxis asociados con una CU pueden describir, por ejemplo, la subdivisión de la CU en una o más PU. Los modos de subdivisión pueden diferir entre si se omite la CU o se codifica en modo directo, se codifica en modo de intra-predicción o se codifica en modo de predicción. Las PU pueden subdividirse para ser no cuadradas en forma. Los datos de sintaxis asociados con una CU pueden describir también, por ejemplo, la subdivisión de la CU en una o más TU de acuerdo con un árbol cuádruple. Una TU puede ser cuadrada o no cuadrada (por ejemplo, rectangular) en forma.
La norma de HVEC permite transformaciones de acuerdo con las TU, que pueden ser diferentes para diferentes CU. Las TU están típicamente dimensionadas basándose en el tamaño de las PU (o particiones de una CU) dentro de una CU dada definida para una CTU subdividida, aunque este puede no ser siempre el caso. Las TU tienen típicamente el mismo tamaño o menor que las PU (o subdivisiones de una CU, por ejemplo, en el caso de intra predicción). En algunos ejemplos, las muestras residuales que corresponden a una Cu pueden subdividirse en unidades más pequeñas usando una estructura de árbol cuádruple conocida como un "árbol cuádruple residual" (RQT). Los nodos hoja del RQT pueden denominarse como unidades de transformada (TU). Los valores de diferencia de píxel asociados con las TU pueden transformarse para producir coeficientes de transformada, que pueden cuantificarse.
Una CU hoja puede incluir una o más unidades de predicción (PU) cuando se predice usando inter-predicción. En general, una PU representa un área espacial que corresponde a toda o una porción de la correspondiente CU, y puede incluir datos para recuperar y/o generar una muestra de referencia para la PU. Además, una PU incluye datos relacionados con la predicción. Cuando la CU está codificada por inter-modo, una o más PU de la CU pueden incluir datos que definen información de movimiento, tal como uno o más vectores de movimiento, o las PU pueden codificarse en modo de omisión. Los datos que definen el vector de movimiento para una PU pueden describir, por ejemplo, un componente horizontal del vector de movimiento, un componente vertical del vector de movimiento, una resolución para el vector de movimiento (por ejemplo, una precisión de un cuarto de píxel o una precisión de un octavo de píxel), una imagen de referencia a la que apunta el vector de movimiento y/o una lista de imágenes de referencia (por ejemplo, Lista 0 o Lista 1) para el vector de movimiento.
Las CU hoja pueden también predecirse por intra-modo. En general, la intra predicción implica predecir una CU hoja (o subdivisiones de la misma) usando un intra-modo. Un codificador de vídeo puede seleccionar un conjunto de píxeles previamente codificados vecinos de la CU hoja para usar para predecir la CU hoja (o subdivisiones de la misma).
Una CU hoja puede incluir también una o más unidades de transformada (TU). Las unidades de transformada pueden especificarse usando un RQT (también denominado como una estructura de árbol cuádruple de TU), como se ha analizado anteriormente. Por ejemplo, una bandera de división puede indicar si una CU hoja se divide en cuatro unidades de transformada. A continuación, cada TU puede dividirse adicionalmente en sub-TU adicionales. Cuando la TU no se divide más, puede denominarse como una TU hoja. En general, para intra codificación, todas las TU hoja que pertenecen a una Cu hoja comparten el mismo modo de intra predicción. Es decir, el mismo modo de intrapredicción se aplica, en general, para calcular valores previstos para todas las TU de una CU hoja. Para intra codificación, un codificador de vídeo puede calcular un valor residual para cada TU hoja usando el modo de intra predicción, como una diferencia entre la porción de la CU que corresponde a la TU y el bloque original. Un TU no está necesariamente limitada al tamaño de una PU. Por lo tanto, las TU pueden ser más grandes o más pequeñas que una PU. Para intra codificación, pueden coubicarse particiones de una CU, o la misma CU con una correspondiente TU hoja para la CU. En algunos ejemplos, el tamaño máximo de una TU hoja puede corresponder al tamaño de la correspondiente CU hoja.
Además, las TU de las CU hoja pueden también estar asociadas con respectivas estructuras de datos de árbol cuádruple, denominadas como árboles cuádruples residuales (RQT). Es decir, una CU hoja puede incluir un árbol cuádruple que indica cómo se subdivide la CU hoja en las TU. El nodo raíz de un árbol cuádruple de TU generalmente corresponde a una CU hoja, mientras que el nodo raíz de un árbol cuádruple de CU corresponde en general a una CTU (o LCU). Las TU del RQT que no se dividen se denomina como TU hoja. En general, esta divulgación usa los términos CU y TU para hacer referencia a la CU hoja y TU hoja, respectivamente, a menos que se indique de otra manera.
Una secuencia de vídeo típicamente incluye una serie de fotogramas o imágenes de vídeo, empezando con una imagen de punto de acceso aleatorio (RAP). Una secuencia de vídeo puede incluir datos de sintaxis en un conjunto de parámetros de secuencia (SPS) de esas características de la secuencia de vídeo. Cada corte de una imagen puede incluir datos de sintaxis de corte que describen un modo de codificación para el respectivo corte. El codificador 20 de vídeo típicamente opera en bloques de vídeo dentro de cortes de vídeo individuales para codificar los datos de vídeo. Un bloque de vídeo puede corresponder a un nodo de codificación dentro de una CU. Los bloques de vídeo pueden tener tamaños fijos o variables, y pueden diferir en tamaño de acuerdo con una norma de codificación especificada.
Como un ejemplo, puede realizarse predicción para las PU de diversos tamaños. Suponiendo que el tamaño de una CU particular es 2Nx2N, puede realizarse intra-predicción en los tamaños de PU de 2Nx2N o NxN, y puede realizarse inter-predicción en tamaños de PU simétricos de 2Nx2N, 2NxN, Nx2N o NxN. Puede realizarse la subdivisión asimétrica para inter-predicción también para tamaños de PU de 2NxnU, 2NxnD, nLx2N y nRx2N. En subdivisión asimétrica, no se subdivide una dirección de una CU, mientras que la otra dirección se subdivide en el 25 % y el 75 %. La porción de la CU que corresponde a la partición del 25 % se indica por una "n" seguida por una indicación de "Arriba", "Abajo", "Izquierda" o "Derecha". Por lo tanto, por ejemplo, "2NxnU" hace referencia a una CU de 2Nx2N que se subdivide horizontalmente con una PU 2Nx0,5N en la parte superior y una PU de 2Nx1,5N en la parte inferior.
En esta divulgación, "NxN" y "N por N" pueden usarse de manera intercambiable para hacer referencia a las dimensiones de píxel de un bloque de vídeo en términos de dimensiones vertical y horizontal, por ejemplo, 16x16 píxeles o 16 por 16 píxeles. En general, un bloque de 16x16 tendrá 16 píxeles en una dirección vertical (y = 16) y 16 píxeles en una dirección horizontal (x = 16). Análogamente, un bloque NxN tiene en general N píxeles en una dirección vertical y N píxeles en una dirección horizontal, donde N representa un valor entero no negativo. Los píxeles en un bloque pueden disponerse en filas y columnas. Además, los bloques no necesariamente tienen que tener el mismo número de píxeles en la dirección horizontal que en la dirección vertical. Por ejemplo, los bloques pueden comprender NxM píxeles, donde M no es necesariamente igual a N.
Siguiendo la codificación intra-predictiva o inter-predictiva que usa las PU de una CU, el codificador 20 de vídeo puede calcular datos residuales para las TU de la CU. Las PU pueden comprender datos de sintaxis que describen un método o modo de generación de datos de píxel predictivos en el dominio espacial (también denominado como el dominio de los píxeles) y las TU pueden comprender coeficientes en el dominio de la transformada que sigue la aplicación de una transformada, por ejemplo, una transformada de coseno discreta (DCT), una transformada de número entero, una transformada de ondícula o una transformada conceptualmente similar a los datos de vídeo residuales. Los datos residuales pueden corresponder a diferencias de píxel entre píxeles de la imagen no codificada y los valores de predicción que corresponden a las PU. El codificador 20 de vídeo puede formar las TU para incluir coeficientes de transformada cuantificados representativos de los datos residuales para la CU. Es decir, el codificador 20 de vídeo puede calcular los datos residuales (en forma de un bloque residual), transformar el bloque residual para producir un bloque de coeficientes de transformada, y, a continuación, cuantificar los coeficientes de transformada para formar coeficientes de transformada cuantificados. El codificador 20 de vídeo puede formar una TU que incluye los coeficientes de transformada cuantificados, así como otra información de sintaxis (por ejemplo, información de división para la TU).
Como se ha indicado anteriormente, después de cualquier transformada para producir coeficientes de transformada, el codificador 20 de vídeo puede realizar cuantificación de los coeficientes de transformada. La cuantificación hace referencia, en general, a un proceso en el que se cuantifican los coeficientes de transformada para reducir posiblemente la cantidad de datos usados para representar los coeficientes, lo que proporciona compresión adicional. El proceso de cuantificación puede reducir la profundidad de bits asociada con alguno o todos los coeficientes. Por ejemplo, un valor de n bits puede redondearse hasta un valor de m bits durante la cuantificación, donde n es mayor que m.
Después de la cuantificación, el codificador de vídeo puede explorar los coeficientes de transformada, produciendo un vector unidimensional a partir de la matriz bidimensional que incluye los coeficientes de transformada cuantificados. La exploración puede estar diseñada para colocar coeficientes de energía mayor (y, por lo tanto, de frecuencia inferior) delante de la matriz y para colocar coeficientes de energía inferior (y, por lo tanto, de frecuencia superior) en la parte trasera de la matriz. En algunos ejemplos, el codificador 20 de vídeo puede utilizar un orden de exploración predefinido para explorar los coeficientes de transformada cuantificados para producir un vector en serie que puede codificarse por entropía. En otros ejemplos, el codificador 20 de vídeo puede realizar una exploración adaptiva. Después de explorar los coeficientes de transformada cuantificados para formar un vector unidimensional, el codificador 20 de vídeo puede codificar por entropía el vector unidimensional, por ejemplo, de acuerdo con la codificación de longitud variable adaptativa según contexto (CAVLC), la codificación binaria aritmética adaptativa según contexto (CABAC), la codificación binaria aritmética adaptativa según contexto basada en sintaxis (SBAc ), la codificación por entropía de subdivisión de intervalo de probabilidad (PIPE) u otra metodología de codificación por entropía. El codificador 20 de vídeo puede también codificar por entropía elementos de sintaxis asociados con los datos de vídeo codificados para su uso por decodificador 30 de vídeo al decodificar los datos de vídeo.
Para realizar CABAC, el codificador 20 de vídeo puede asignar un contexto dentro de un modelo de contexto a un símbolo que va a transmitirse. El contexto puede estar relacionado con, por ejemplo, si los valores vecinos del símbolo son o no distintos de cero. Para realizar CAVLC, el codificador 20 de vídeo puede seleccionar un código de longitud variable para un símbolo que va a transmitirse. Pueden construirse palabras de código en VLC de manera que los códigos relativamente más cortos corresponden a símbolos más probables, mientras que los códigos más largos corresponden a símbolos menos probables. De esta manera, el uso de VLC puede conseguir unos ahorros de bits, por ejemplo, sobre el uso de palabras de código de igual longitud para cada símbolo que va a transmitirse. La determinación de probabilidad puede estar basada en un contexto asignado al símbolo.
En general, el decodificador 30 de vídeo realiza un proceso sustancialmente similar, aunque recíproco, al realizado por el codificador 20 de vídeo para decodificar datos codificados. Por ejemplo, el decodificador 30 de vídeo cuantifica a la inversa y transforma a la inversa los coeficientes de una TU recibida para reproducir un bloque residual. El decodificador 30 de vídeo usa un modo de predicción señalizado (intra- o inter- predicción) para formar un bloque previsto. A continuación, el decodificador 30 de vídeo combina el bloque previsto y el bloque residual (en una base píxel a píxel) para reproducir el bloque original. Puede realizarse procesamiento adicional, tal como realizar un proceso de desbloqueo para reducir artefactos visuales a lo largo de los límites de bloque. Adicionalmente, el decodificador 30 de vídeo puede decodificar elementos de sintaxis usando CABAC de una manera sustancialmente similar a, aunque recíproca a, el proceso de codificación de CABAC del codificador 20 de vídeo.
De acuerdo con las técnicas de esta divulgación, el dispositivo 12 de origen (por ejemplo, el codificador 20 de vídeo y/o la interfaz 22 de salida) pueden configurase para señalizar datos y, una unidad de extracción de subflujo de bits, tal como la unidad 24 de extracción de subflujo de bits y/o la interfaz 28 de entrada del dispositivo 14 de destino, puede configurarse para extraer un subflujo de bits usando los datos señalizados. En particular, estos elementos pueden implementar cualquiera o todas las técnicas de esta divulgación para tratar los problemas enumerados anteriormente analizados. Las diversas técnicas descritas a continuación pueden realizarse en solitario o en cualquier combinación. Sin embargo, a continuación, la técnica que es parte de la presente invención es la solución al sexto problema anteriormente analizado. Las otras soluciones potenciales proporcionadas a continuación son para fines de ilustración únicamente.
1) Una solución potencial al primer problema anteriormente analizado es imponer una restricción de que un mensaje de SEI de MCTS-EIS no deberá estar presente en una unidad de acceso a menos que haya un mensaje de SEI de MCTS temporal presente en la unidad de acceso. En consecuencia, se aplica el conjunto de imágenes asociadas associatedPicSet del mensaje de SEI de MCTS temporal al mensaje de SEI de MCTS-EIS. Y, adicionalmente, puede retirarse la definición de associatedPicSet y las restricciones sobre la presencia del mensaje de SEI de MCTS-EIS y la presencia del mensaje de SEI de MCTs temporal en la semántica del mensaje de SEI de MCTS-EIS. De esta manera, el dispositivo 12 de origen, la unidad 24 de extracción de subflujo de bits y el dispositivo 14 de destino pueden codificar un mensaje de SEI de MCTS-EIS de una unidad de acceso únicamente cuando la unidad de acceso incluye un mensaje de SEI de MCTS temporal.
2) Soluciones potenciales al segundo problema anteriormente analizado incluyen las siguientes:
a. Una solución potencial al problema 2a anterior es de la siguiente manera. Cuando el valor de each_tile_one_tile_set_flag del mensaje de SEI de MCTS temporal asociado es igual a 0, el identificador de MCTS de un MCTS de la imagen actual se especifica como el valor del índice del MCTS, donde el índice es la variable i dentro del bucle de num_sets_in_message_minus1 1 conjuntos de información de MCTS especificados por el mensaje de SEI de MCTS asociado. Por lo tanto, cuando el valor del elemento de sintaxis each_tile_one_tile_set_flag es igual a cero, el dispositivo 12 de origen, la unidad 24 de extracción de subflujo de bits y el dispositivo 14 de destino pueden establecer un identificador de MCTS de un MCTS de una imagen actual de la unidad de acceso igual a un valor de un índice del MCTS.
b. Una solución potencial al problema 2b anterior es definir el identificador de MCTS para cada MCTS como la posición de la pieza de la única pieza en el MCTS en orden de exploración por filas de piezas cuando each_tile_one_tile_set_flag del mensaje de SEI de MCTS temporal asociado es igual a 1. Por lo tanto, cuando el valor del elemento de sintaxis each_tile_one_tile_set_flag es igual a uno, el dispositivo 12 de origen, la unidad 24 de extracción de subflujo de bits y el dispositivo 14 de destino pueden establecer identificadores de MCTS para cada MCTS igual a una posición de pieza de una pieza correspondiente en el MCTS en orden de exploración por filas de piezas.
3) Una solución potencial al tercer problema anteriormente analizado es retirar la condición "que tener nuh_layer_id igual a 0" de la redacción de la etapa en el proceso de extracción de subflujo de bits de MCTS especificado en la semántica del mensaje de SEI de MCTS-EIS que especifica la retirada de todas las unidades de NAL de SEI que tienen id de capa nuh igual a 0 y que contienen mensajes de SEI de MCTS no anidados, es decir, se cambia la etapa para especificar la retirada de todas las unidades de NAL de SEI que contienen mensajes de SEI de MCTS no anidados. Por lo tanto, la unidad 24 de extracción de subflujo de bits y/o el dispositivo 14 de destino pueden omitir, cuando se extrae un subflujo de bits de MCTS, todas las unidades de NAL de SEI que contienen mensajes de SEI de MCTS no anidados de la inclusión en el subflujo de bits de MCTS extraído, independientemente de un valor de identificador de capa de encabezado de unidad de capa de abstracción de red (NAL) para los mensajes de SEI de MCTS no anidados.
4) Una solución potencial al cuarto problema anteriormente analizado es imponer una restricción de que un segmento de corte que contiene una o más piezas que pertenecen a cualquier MCTS particular, mctsA no deberá ser un segmento de corte dependiente de un segmento de corte independiente que contiene una o más piezas que no pertenecen a mctsA. Esta restricción debería especificarse como parte de la semántica de cualquiera del mensaje de SEI de MCTS temporal o del mensaje de s Ei de MCTS-EIS. Por lo tanto, el codificador 20 de vídeo y el decodificador 30 de vídeo pueden codificar todos segmentos de corte que contienen una o más piezas que pertenecen a respectivos MCTs de los datos de vídeo de manera que los segmentos de corte dependen, en su mayoría, de segmentos de corte dentro del mismo MCTS.
5) Una solución potencial al quinto problema anteriormente analizado es imponer una restricción de que un mensaje de SEI de anidación de MCTS no deberá estar presente en una unidad de acceso a menos que haya un mensaje de SEI de MCTS-EIS presente en la unidad de acceso. Por lo tanto, el dispositivo 12 de origen, la unidad 24 de extracción de subflujo de bits, y el dispositivo 14 de destino pueden codificar un mensaje de SEI de anidación de MCTS de una unidad de acceso únicamente cuando la unidad de acceso incluye un mensaje de SEI de MCTS-EIS.
a. Como alternativa, puede imponerse una restricción de que un mensaje de SEI de anidación de MCTS no deberá estar presente en la unidad de acceso actual a menos que la imagen actual pertenezca al associatedPicSet de un mensaje de SEI de MCTS-EIS. Por lo tanto, cuando una unidad de acceso incluye un mensaje de SEI de MCTS -EIS, el dispositivo 12 de origen, la unidad 24 de extracción de subflujo de bits y el dispositivo 14 de destino pueden determinar un conjunto de imágenes asociadas del mensaje de SEI de MCTS-ElS, determinar si una imagen actual de la unidad de acceso está incluida en el conjunto de imágenes asociadas y codificar un mensaje de SEI de anidación de MCTS de la unidad de acceso únicamente cuando la imagen actual está incluida en el conjunto de imágenes asociadas.
6) Una solución al sexto problema anteriormente analizado es imponer una restricción de que una unidad de NAL de SEI que contiene un mensaje de SEI de anidación de MCTS no debe contener cualquier otro mensaje de SEI que no sea MCTS anidado en el mensaje de SEI de anidación de MCTS. Por lo tanto, el dispositivo 12 de origen, la unidad 24 de extracción de subflujo de bits y el dispositivo 14 de destino determinan que un mensaje de SEI de anidación de MCTS no contiene ningún mensaje de SEI no de anidación de MCTS en respuesta a un mensaje de SEI padre que contiene el mensaje de SEI de anidación de MCTS (y, por lo tanto, evitar la codificación de ningún mensaje de SEI no de anidación de MCTS).
7) Pueden usarse las siguientes técnicas para resolver el séptimo problema anteriormente analizado:
a. Una técnica es cambiar el mensaje de SEI de MCTS-EIS de la siguiente manera. En el proceso de extracción de subflujo de bits de MCTS especificado como parte de la semántica, en lugar de extraer un subflujo de bits para un MCTS, se extrae un subflujo de bits para un conjunto de uno o más MCTS. En consecuencia, la fase y el nivel del conjunto de MCTS se señalizaría en los SPS de sustitución para su inclusión en el subflujo de bits extraído. Para un acceso conveniente de la información de fase y de nivel, también puede señalizarse la fase y el nivel para cada conjunto de MCTS adicionalmente en el mensaje de SEI de MCTS-EIS cuando el conjunto de MCTS contiene más de un MCTS. Por lo tanto, la unidad 24 de extracción de subflujo de bits y el dispositivo 14 de destino pueden extraer un subflujo de MCTS de un flujo de bits original de manera que el subflujo de bits de MCTS incluye un conjunto de dos o más MCTS. Debería observarse que esta solución puede resolver también el octavo problema anteriormente analizado.
i. Cada conjunto de MCTS para el que puede extraerse un flujo de bits conforme puede corresponder a un conjunto de información de extracción indicado en el mensaje de SEI de MCTS-EIS.
ii. Como alternativa, para mantener la funcionalidad para la compartición de los VPS, SPS y PPS de sustitución por múltiples conjuntos de datos extraíbles, pueden aplicarse los siguientes cambios de sintaxis: dentro del bucle de información de extracción, añadir un bucle más, de manera que hay una lista de conjuntos extraíbles de MCTS señalizados para cada conjunto de información de extracción y para cada conjunto extraíble de MCTS, se señaliza la lista de los identificadores de MCTS. Los VPS, SPS y PPS de sustitución de un conjunto de información de extracción se aplican a la extracción de un subflujo de bits para cualquier conjunto extraíble particular de MCTS.
b. Otra solución es definir un nuevo mensaje de SEI para permitir la agrupación de piezas no vecinas en un MCTS, siempre que el conjunto de piezas pueda fusionarse en una región rectangular de muestras. Por lo tanto, el dispositivo 12 de origen, la unidad 24 de extracción de subflujo de bits y el dispositivo 14 de destino pueden codificar un mensaje de SEI de un flujo de bits original que incluye información representativa de piezas no vecinas que pueden agruparse en unos conjuntos de piezas restringidas en movimiento (MCTS) comunes y codificar una lista de índices de piezas para las piezas no vecinas que pueden agruparse en el MCTS común. Un ejemplo de un nuevo mensaje de SEI de este tipo es el mismo que el mensaje de SEI de MCTS temporal excepto en los siguientes aspectos:
i. Se usa un tipo de carga útil de SEI diferente.
ii. Para indicar el conjunto de piezas en un MCTS, en lugar de usar los dos elementos de sintaxis top_left_tile_index[i][j] y bottom_right_tile_index[i][j] que identifican la posición de pieza de la pieza superior izquierda y la posición de pieza de la pieza inferior derecha en una región rectangular del iésimo conjunto de piezas restringidas en movimiento temporal identificado, respectivamente, en orden de exploración por filas de la pieza, se usa una lista de índices de pieza.
8) Una solución potencial al octavo problema anteriormente analizado es cambiar la señalización del número máximo de MCTS permitidos para que sea un valor mayor, por ejemplo, 1024, 2048 o 4096. Por lo tanto, el dispositivo 12 de origen, la unidad 24 de extracción de subflujo de bits y el dispositivo 14 de destino pueden codificar un valor para un elemento de sintaxis del mensaje de SEI de MCTS, donde el elemento de sintaxis representa un número de MCTS señalizados en el mensaje de SEI de MCTS temporal y el valor del elemento de sintaxis indica que el número de MCTS es mayor que 256.
9) Una solución potencial al noveno problema anteriormente analizado es cambiar el límite superior a un valor práctico más razonable, tal como 255, 511, 1023, 2047 o 4095. Como un ejemplo y como se explicará en mayor detalle a continuación, en lugar del valor del elemento de sintaxis num_extraction_info_sets_minus1 que se encuentra en el intervalo de 0 a 232 - 2, inclusive, el valor puede encontrarse en el intervalo de 0 a 2047, inclusive.
A continuación, hay algunas combinaciones ilustrativas de las técnicas anteriormente descritas. Esta lista de combinaciones propuestas no se pretende que sea exhaustiva, ya que cualquier otra combinación puede implementarse también.
1) Técnicas 1, 2a, 2b, 3, 4, 5, y 6
2) Técnicas 1, 2a, 2b, 3, 4, 5, 6, 8
3) Técnicas 1, 2a, 2b, 3, 4, 5, 6 y 7a
4) Técnicas 1, 2a, 2b, 3, 4, 5, 6, 7a y 8
5) Técnicas 1, 2a, 2b, 3, 4, 5a y 6
6) Técnicas 1, 2a, 2b, 3, 4, 5a, 6 y 7a
7) Técnicas 1, 2a, 2b, 3 y 4
8) Técnicas 2a, 2b, 3 y 4
9) Técnicas 2a, 2b, 5 y 6
10) Técnica 1 únicamente
11) Técnica 2a únicamente
12) Técnica 2b únicamente
13) Técnicas 2a y 2b
14) Técnica 3 únicamente
15) Técnica 4 únicamente
16) Técnica 5 únicamente
17) Técnica 5a únicamente
18) Técnica 6 únicamente
19) Técnica 7b únicamente
20) Técnica 8 únicamente
21) Técnicas 7b y 8, con el mensaje de SEI de MCTS temporal en la técnica 8 sustituyéndose por el nuevo mensaje de SEI en la técnica 7b.
22) Técnicas 1, 2a, 2b, 3, 4, 5 y 7b, con el mensaje de SEI de MCTS temporal en las técnicas distintas de la técnica 7b sustituyéndose por el nuevo mensaje de SEI en la técnica 7b.
23) Técnicas 1, 2a, 2b, 3, 4, 5, 7b y 8, con el mensaje de SEI de MCTS temporal en las técnicas distintas de la técnica 7b sustituyéndose por el nuevo mensaje de SEI en la técnica 7b.
24) Cada una de las técnicas anteriores más la técnica 9.
El codificador 20 de vídeo puede enviar adicionalmente datos de sintaxis, tales como datos de sintaxis basados en bloques, datos de sintaxis basados en imágenes y datos de sintaxis basados en secuencias, al decodificador 30 de vídeo, por ejemplo, en un encabezado de imagen, un encabezado de bloque, un encabezado de corte u otros datos de sintaxis, tales como un conjunto de parámetros de secuencia (SPS), un conjunto de parámetros de imagen (PPS) o un conjunto de parámetros de vídeo (VPS).
El codificador 20 de vídeo y el decodificador 30 de vídeo cada uno puede implementarse como cualquiera de una diversidad de circuitería de codificador o decodificador adecuada, según sea aplicable, tal como uno o más microprocesadores, procesadores de señales digitales (DSP), circuitos integrados específicos de la aplicación (ASIC), campos de matrices de puertas programables (FPGA), circuitería de lógica discreta, software, hardware, firmware o cualquier combinación de los mismos. Cada uno del codificador 20 de vídeo y el decodificador 30 de vídeo pueden estar incluidos en uno o más codificadores o decodificadores, cualquiera de los cuales puede estar integrado como parte de un codificador/decodificador de vídeo combinado (CODEC). Un dispositivo que incluye el codificador 20 de vídeo y/o el decodificador 30 de vídeo puede comprender un circuito integrado, un microprocesador y/o un dispositivo de comunicación inalámbrica, tal como un teléfono celular.
La Figura 2 es un diagrama de bloques que ilustra un ejemplo de un codificador 20 de vídeo que puede implementar técnicas para procesar datos de vídeo usando conjuntos de piezas restringidas en movimiento (MCTS). El codificador 20 de vídeo puede realizar intra- e inter- codificación de bloques de vídeo dentro de cortes de vídeo. La intracodificación se basa en la predicción espacial para reducir o eliminar la redundancia espacial en vídeo dentro de un fotograma de vídeo o imagen dados. La inter-codificación se basa en la predicción temporal para reducir o eliminar la redundancia temporal en el vídeo dentro de fotogramas o imágenes adyacentes de una secuencia de vídeo. El intramodo (modo I) puede hacer referencia a cualquiera de varios modos de codificación espacial. Los inter-modos, tales como la predicción unidireccional (modo P) o la bipredicción (modo B), pueden hacer referencia a cualquiera de varios modos de codificación temporal.
Como se muestra en la Figura 2, el codificador 20 de vídeo recibe un bloque de vídeo actual dentro de un fotograma de vídeo que va a codificarse. En el ejemplo de la Figura 2, el codificador 20 de vídeo incluye la unidad 40 de selección de modo, la memoria 64 de imagen de referencia (que puede denominarse también como una memoria intermedia de imagen decodificada (DPB)), el sumador 50, la unidad 52 de procesamiento de transformada, la unidad 54 de cuantificación y la unidad 56 de codificación por entropía. La unidad 40 de selección de modo, a su vez, incluye la unidad 44 de compensación de movimiento, la unidad 42 de estimación de movimiento, la unidad 46 de intra-predicción y la unidad 48 de subdivisión. Para la reconstrucción del bloque de vídeo, el codificador 20 de vídeo también incluye la unidad 58 de cuantificación inversa, la unidad 60 de transformada inversa y el sumador 62. Un filtro de desbloqueo (no mostrado en la Figura 2) también puede incluirse para filtrar límites de bloque para eliminar los artefactos de bloqueo del vídeo reconstruido. Si se desea, el filtro de desbloqueo típicamente filtraría la salida del sumador 62. Pueden usarse también filtros adicionales (dentro del bucle o posteriores al bucle) además del filtro de desbloqueo. Tales filtros no se muestran por brevedad, pero, si se desea, pueden filtrar la salida del sumador 50 (como un filtro en bucle).
Durante el proceso de codificación, el codificador 20 de vídeo recibe un fotograma o corte de vídeo que va a codificarse. El fotograma o corte puede dividirse en múltiples bloques de vídeo. La unidad 42 de estimación de movimiento y la unidad 44 de compensación de movimiento realizan codificación inter-predictiva del bloque de vídeo recibido con relación a uno o más bloques en uno o más fotogramas de referencia para proporcionar predicción temporal. La unidad 46 de intra-predicción puede realizar, como alternativa, codificación intra-predictiva del bloque de vídeo recibido con relación a uno o más bloques vecinos en el mismo fotograma o corte que el bloque que va a codificarse para proporcionar una predicción espacial. El codificador 20 de vídeo puede realizar múltiples pasadas de codificación, por ejemplo, para seleccionar un modo de codificación apropiado para cada bloque de datos de vídeo.
Además, la unidad 48 de subdivisión puede subdividir bloques de datos de vídeo en subbloques, basándose en una evaluación de los esquemas de subdivisión previos en pasadas de codificación previas. Por ejemplo, la unidad 48 de subdivisión puede subdividir inicialmente un fotograma o corte en CTU, y subdividir cada una de las CTU en sub-CU basándose en el análisis de tasa-distorsión (por ejemplo, optimización de tasa-distorsión). La unidad 40 de selección de modo puede producir adicionalmente una estructura de datos de árbol cuádruple indicativa de la subdivisión de una CTU en sub-CU. Las CU de nodo hoja del árbol cuádruple pueden incluir una o más PU y una o más TU.
La unidad 40 de selección de modo puede seleccionar uno de los modos de predicción, intra o inter, por ejemplo, basándose en los resultados de error, y proporcionar el bloque previsto resultante al sumador 50 para generar datos residuales y al sumador 62 para reconstruir el bloque codificado para su uso como un fotograma de referencia. La unidad 40 de selección de modo también proporciona elementos de sintaxis, tales como vectores de movimiento, indicadores de intra-modo, información de subdivisión y otra información de sintaxis de este tipo, a la unidad 56 de codificación por entropía.
La unidad 42 de estimación de movimiento y la unidad 44 de compensación de movimiento pueden estar altamente integradas, pero, se ilustran de manera separada para propósitos conceptuales. La estimación de movimiento, realizada por la unidad 42 de estimación de movimiento, es el proceso de generación de vectores de movimiento, que estiman el movimiento para bloques de vídeo. Un vector de movimiento, por ejemplo, puede indicar el desplazamiento de una PU de un bloque de vídeo dentro de un fotograma de vídeo o imagen actual con relación a un bloque predictivo dentro de un fotograma de referencia (u otra unidad codificada) con relación al bloque actual que se está codificando dentro del fotograma actual (u otra unidad codificada). Un bloque predictivo es un bloque que se halla que coincide estrechamente al bloque que va a codificarse, en términos de diferencia de píxel, que puede determinarse por una suma de diferencia absoluta (SAD), suma de diferencia de cuadrados (SSD) u otras métricas de diferencia. En algunos ejemplos, el codificador 20 de vídeo puede calcular valores para las posiciones de píxeles sub-enteros de imágenes de referencia almacenadas en la memoria 64 de imagen de referencia. Por ejemplo, el codificador 20 de vídeo puede interpolar valores de posiciones de un cuarto de píxel, posiciones de un octavo de píxel y otras posiciones de píxel fraccionales de la imagen de referencia. Por lo tanto, la unidad 42 de estimación de movimiento puede realizar una búsqueda de movimiento con relación a las posiciones de píxel completas y las posiciones de píxel fraccionales y emitir un vector de movimiento con precisión de píxel fraccional.
La unidad 42 de estimación de movimiento calcula un vector de movimiento para una PU de un bloque de vídeo en un corte inter-codificado comparando la posición de la PU a la posición de un bloque predictivo de una imagen de referencia. La imagen de referencia puede seleccionarse de una primera lista de imágenes de referencia (Lista 0) o una segunda lista de imágenes de referencia (Lista 1), cada una de las cuales identifica una o más imágenes de referencia almacenadas en la memoria 64 de imagen de referencia. La unidad 42 de estimación de movimiento envía el vector de movimiento calculado a la unidad 56 de codificación por entropía y a la unidad 44 de compensación de movimiento.
La compensación de movimiento, realizada por la unidad 44 de compensación de movimiento, puede implicar capturar o generar el bloque predictivo basándose en el vector de movimiento determinado por la unidad 42 de estimación de movimiento. De nuevo, la unidad 42 de estimación de movimiento y la unidad 44 de compensación de movimiento pueden estar funcionalmente integradas, en algunos ejemplos. Tras recibir el vector de movimiento para la PU del bloque de vídeo actual, la unidad 44 de compensación de movimiento puede ubicar el bloque predictivo al que apunta el vector de movimiento en una de las listas de imágenes de referencia. El sumador 50 forma un bloque de vídeo residual restando valores de píxel del bloque predictivo de los valores de píxel del bloque de vídeo actual que se está codificando, formando valores de diferencia de píxel, como se analiza a continuación. En general, la unidad 42 de estimación de movimiento realiza estimación de movimiento con relación a componentes de luminancia, y la unidad 44 de compensación de movimiento usa vectores de movimiento calculados basándose en los componentes de luminancia para tanto los componentes de crominancia como los componentes de luminancia. La unidad 40 de selección de modo puede generar también elementos de sintaxis asociados con los bloques de vídeo y el corte de vídeo para su uso por el decodificador 30 de vídeo al decodificar los bloques de vídeo del corte de vídeo.
La unidad 46 de intra-predicción puede intra-predecir un bloque actual, como una alternativa a la inter-predicción realizada por la unidad 42 de estimación de movimiento y la unidad 44 de compensación de movimiento, como se ha descrito anteriormente. En particular, la unidad 46 de intra-predicción puede determinar un modo de intra-predicción para usar para codificar un bloque actual. En algunos ejemplos, la unidad 46 de intra-predicción puede codificar un bloque actual usando diversos modos de intra-predicción, por ejemplo, durante pasadas de codificación separadas y la unidad 46 de intra-predicción (o la unidad 40 de selección de modo, en algunos ejemplos) puede seleccionar un modo de intra-predicción apropiado para usar a partir de los modos probados.
Por ejemplo, la unidad 46 de intra-predicción puede calcular valores de tasa-distorsión usando un análisis de tasadistorsión para los diversos modos de intra-predicción probados, y seleccionar el modo de intra-predicción que tiene las mejores características de tasa-distorsión entre los modos probados. El análisis de tasa-distorsión determina, en general, una cantidad de distorsión (o error) entre un bloque codificado y un bloque original no codificado, que se codificó para producir el bloque codificado, así como una tasa de bits (es decir, un número de bits) usada para producir el bloque codificado. La unidad 46 de intra-predicción puede calcular relaciones a partir de las distorsiones y tasas para los diversos bloques codificados para determinar cuál modo de intra-predicción muestra el mejor valor de tasadistorsión para el bloque.
Después de seleccionar un modo de intra-predicción para un bloque, la unidad 46 de intra-predicción puede proporcionar información indicativa del modo de intra-predicción seleccionado para el bloque a la unidad 56 de codificación por entropía. La unidad 56 de codificación por entropía puede codificar la información que indica el modo de intra-predicción seleccionado. El codificador 20 de vídeo puede incluir en el flujo de bits transmitido datos de configuración, que pueden incluir una pluralidad de tablas de índices de modo de intra-predicción y una pluralidad de tablas de índices de modo de intra predicción modificado (también denominadas como tablas de mapeo de palabra de código), definiciones de codificación de contextos para diversos bloques e indicaciones de un modo de intrapredicción más probable, una tabla de índices de modo de intra-predicción y una tabla de índices de modo de intrapredicción modificado para usar para cada uno de los contextos.
El codificador 20 de vídeo forma un bloque de vídeo residual restando los datos de predicción de la unidad 40 de selección de modo del bloque de vídeo original que se está codificando. El sumador 50 representa el componente o componentes que realizan esta operación de resta. La unidad 52 de procesamiento de transformada aplica una transformada, tal como una transformada de coseno discreta (DCT) o una transformada conceptualmente similar, al bloque residual, produciendo un bloque de vídeo que comprende valores de coeficientes de transformada. Podrían usarse las transformadas de ondícula, las transformadas de enteros, las transformadas de subbanda, las transformadas de seno discretas (DST),u otros tipos de transformadas en lugar de una DCT. En cualquier caso, la unidad 52 de procesamiento de transformada aplica la transformada al bloque residual, produciendo un bloque de coeficientes de transformada. La transformada puede convertir la información residual de un dominio de los píxeles a un dominio de la transformada, tal como un dominio de frecuencia. La unidad 52 de procesamiento de transformada puede enviar los coeficientes de transformada resultantes a la unidad 54 de cuantificación. La unidad 54 de cuantificación cuantifica los coeficientes de transformada para reducir adicionalmente la tasa de bits. El proceso de cuantificación puede reducir la profundidad de bits asociada con alguno o todos los coeficientes. El grado de cuantificación puede modificarse ajustando un parámetro de cuantificación.
Después de la cuantificación, la unidad 56 de codificación por entropía codifica por entropía los coeficientes de transformada cuantificados. Por ejemplo, la unidad 56 de codificación por entropía puede realizar codificación de longitud variable adaptativa según contexto (CAVLC), codificación binaria aritmética adaptativa según contexto (CABAC), codificación binaria aritmética adaptativa según contexto basada en sintaxis (SBAC), codificación por entropía de subdivisión de intervalo de probabilidad (PIPE) u otra técnica de codificación por entropía. En el caso de codificación por entropía basada en contexto, el contexto puede estar basado en bloques vecinos. Después de la codificación por entropía por la unidad 56 de codificación por entropía, el flujo de bits codificado puede transmitirse a otro dispositivo (por ejemplo, el decodificador 30 de vídeo) o archivarse para su transmisión o recuperación posterior.
La unidad 58 de cuantificación inversa y la unidad de transformada inversa 60 aplican cuantificación inversa y transformación inversa, respectivamente, para reconstruir el bloque residual en el dominio de los píxeles. En particular, el sumador 62 añade el bloque residual objetivo al bloque de predicción de movimiento compensado anteriormente producido por la unidad 44 de compensación de movimiento o la unidad 46 de intra-predicción para producir un bloque de vídeo reconstruido para su almacenamiento en la memoria 64 de imagen de referencia. El bloque de vídeo reconstruido puede usarse por la unidad 42 de estimación de movimiento y la unidad 44 de compensación de movimiento como un bloque de referencia para intercodificar un bloque en un fotograma de vídeo posterior.
La Figura 3 es un diagrama de bloques que ilustra un ejemplo de un decodificador 30 de vídeo que puede implementar técnicas para procesar datos de vídeo usando conjuntos de piezas restringidas en movimiento (MCTS). En el ejemplo de la Figura 3, el decodificador 30 de vídeo incluye una unidad 70 de decodificación por entropía, la unidad 72 de compensación de movimiento, la unidad 74 de intra-predicción, la unidad 76 de cuantificación inversa, la unidad 78 de transformación inversa, la memoria 82 de imagen de referencia y el sumador 80. El decodificador 30 de vídeo puede realizar, en algunos ejemplos, una pasada de decodificación generalmente recíproca a la pasada de codificación descrita con respecto al codificador 20 de vídeo (Figura 2). La unidad 72 de compensación de movimiento puede generar datos de predicción basándose en vectores de movimiento recibidos de la unidad 70 de decodificación por entropía, mientras que la unidad 74 de intra-predicción puede generar datos de predicción basándose en los indicadores de modo de intra-predicción recibidos de la unidad 70 de decodificación por entropía.
Durante el proceso de decodificación, el decodificador 30 de vídeo recibe un flujo de bits de vídeo codificado que representa bloques de vídeo de un corte de vídeo codificado y elementos de sintaxis asociados del codificador 20 de vídeo. La unidad 70 de decodificación por entropía del decodificador 30 de vídeo decodifica por entropía el flujo de bits para generar coeficientes cuantificados, vectores de movimiento o indicadores de modo de intra-predicción y otros elementos de sintaxis. La unidad 70 de decodificación por entropía reenvía los vectores de movimiento y otros elementos de sintaxis a la unidad 72 de compensación de movimiento. El decodificador 30 de vídeo puede recibir los elementos de sintaxis en el nivel de corte de vídeo y/o en el nivel de bloque de vídeo.
Cuando se codifica el corte de vídeo como un corte intra-codificado (I), la unidad 74 de intra-predicción puede generar datos de predicción para un bloque de vídeo del corte de vídeo actual basándose en un modo de intra predicción señalizado y datos de bloques previamente decodificados del fotograma o imagen actual. Cuando se codifica el fotograma de vídeo como un corte inter-codificado (es decir, B o P),la unidad 72 de compensación de movimiento produce bloques predictivos para un bloque de vídeo del corte de vídeo actual basándose en los vectores de movimiento y otros elementos de sintaxis recibidos de la unidad 70 de decodificación por entropía. Los bloques predictivos pueden producirse de una de las imágenes de referencia dentro de una de las listas de imágenes de referencia. El decodificador 30 de vídeo puede reconstruir las listas de fotogramas de referencia, Lista 0 y Lista 1, usando técnicas de construcción por defecto basándose en imágenes de referencia almacenadas en la memoria 82 de imagen de referencia. La unidad 72 de compensación de movimiento determina información de predicción para un bloque de vídeo del corte de vídeo actual analizando los vectores de movimiento y otros elementos de sintaxis, y usa la información de predicción para producir los bloques predictivos para el bloque de vídeo actual que se está decodificando. Por ejemplo, la unidad 72 de compensación de movimiento usa alguno de los elementos de sintaxis recibidos para determinar un modo de predicción (por ejemplo, intra- o inter- predicción) usado para codificar los bloques de vídeo del corte de vídeo, un tipo de corte de inter-predicción (por ejemplo, corte B o corte P), información de construcción para una o más de las listas de imágenes de referencia para el corte, vectores de movimiento para cada bloque de vídeo inter-codificado del corte, estado de inter-predicción para cada bloque de vídeo inter-codificado del corte, y otra información para decodificar los bloques de vídeo en el corte de vídeo actual.
La unidad 72 de compensación de movimiento puede realizar también interpolación basándose en filtros de interpolación. La unidad 72 de compensación de movimiento puede usar filtros de interpolación como se usan por el codificador 20 de vídeo durante la codificación de los bloques de vídeo para calcular valores interpolados para píxeles sub-enteros de los bloques de referencia. En este caso, la unidad 72 de compensación de movimiento puede determinar los filtros de interpolación usados por el codificador 20 de vídeo de los elementos de sintaxis recibidos y usar los filtros de interpolación para producir bloques predictivos.
La unidad 76 de cuantificación inversa cuantifica a la inversa, es decir, descuantifica, los coeficientes de transformada cuantificados proporcionados en el flujo de bits y decodificados por la unidad 70 de decodificación por entropía. El proceso de cuantificación inversa puede incluir el uso de un parámetro de cuantificación QPy calculado por el decodificador 30 de vídeo para cada bloque de vídeo en el corte de vídeo para determinar un grado de cuantificación y, análogamente, un grado de cuantificación inversa que debe aplicarse.
La unidad 78 de transformación inversa aplica una transformada inversa, por ejemplo, una DCT inversa, una transformada de entero inversa o un proceso de transformada inversa conceptualmente similar, a los coeficientes de transformada para producir bloques residuales en el dominio de los píxeles.
Después de que la unidad 72 de compensación de movimiento genera el bloque predictivo para el bloque de vídeo actual basándose en los vectores de movimiento y otros elementos de sintaxis, el decodificador 30 de vídeo forma un bloque de vídeo decodificado sumando los bloques residuales de la unidad 78 de transformada inversa con los correspondientes bloques predictivos generados por la unidad 72 de compensación de movimiento. El sumador 80 representa el componente o componentes que realizan esta operación de suma. Si se desea, puede aplicarse también un filtro de desbloqueo para filtrar los bloques decodificados para eliminar artefactos de bloqueo. Pueden usarse también otros filtros de bucle (en el bucle de codificación o después del bucle de codificación) para suavizar las transiciones de píxel, o mejorar de otra manera la calidad de vídeo. Los bloques de vídeo decodificados en un fotograma o imagen dados se almacenan a continuación en la memoria 82 de imagen de referencia, que almacena imágenes de referencia usadas para compensación de movimiento posterior. La memoria 82 de imagen de referencia también almacena vídeo decodificado para su presentación posterior en un dispositivo de visualización, tal como el dispositivo 32 de visualización de la Figura 1.
La Figura 4 es un diagrama de flujo que ilustra un método ilustrativo para extraer un subflujo de bits de acuerdo con las técnicas de esta divulgación. El método de la Figura 4 se explica realizándose por la unidad 24 de extracción de subflujo de bits de la Figura 1. Sin embargo, debería entenderse que pueden configurarse otras unidades o dispositivos para realizar el método de la Figura 4. Por ejemplo, el dispositivo 14 de destino o el decodificador 30 de vídeo pueden configurarse para realizar el método de la Figura 4.
Inicialmente, la unidad 24 de extracción de subflujo de bits recibe un mensaje de SEI de MCTS temporal para un flujo de bits (100). En particular, la unidad 24 de extracción de subflujo de bits puede recibir el mensaje de SEI de MCTS en una unidad de acceso del flujo de bits. En este ejemplo, la unidad 24 de extracción de subflujo de bits también recibe un mensaje de SEI de MCTS-EIS para el flujo de bits (102). De acuerdo con algunos ejemplos de las técnicas de esta divulgación, la unidad 24 de extracción de subflujo de bits decodifica un mensaje de s Ei de MCTS-EIS de una unidad de acceso únicamente cuando la unidad de acceso incluye un mensaje de SEI de MCTS temporal.
La unidad 24 de extracción de subflujo de bits a continuación determina un subflujo de bits para extraer desde el flujo de bits (104). Por ejemplo, la unidad 24 de extracción de subflujo de bits puede recibir una solicitud del dispositivo 14 de destino para uno o más MCTS particulares. La unidad 24 de extracción de subflujo de bits determina conjuntos de parámetros (por ejemplo, conjuntos de parámetros de vídeo, de secuencia y/o de imágenes) para que se extraigan para el uno o más MCTS que van a extraerse. Es decir, el mensaje de SEI de MCTS-EIS puede incluir identificadores de conjuntos de parámetros que corresponden a cada MCTS. Por consiguiente, la unidad 24 de extracción de subflujo de bits extrae los conjuntos de parámetros para los MCTS que van a extraerse usando el mensaje (106) de SEI de MCTS-EIS.
En algunos ejemplos, en respuesta a la determinación para extraer el subflujo de bits usando el mensaje de SEI de MCTS-EIS, la unidad 24 de extracción de subflujo de bits omite todas las unidades de NAL de SEI que contienen mensajes de SEI de MCTS no anidados de la inclusión en el subflujo de bits extraído, independientemente de un valor de un valor de identificador de capa de encabezado de unidad de capa de abstracción de red (NAL) para los mensajes (108) de SEI de MCTS no anidados. Es decir, la unidad 24 de extracción de subflujo de bits puede extraer otras unidades de NAL de SEI (por ejemplo, aquellas que incluyen únicamente los mensajes de SEI de MCTS anidados, por ejemplo, mensajes de SEI que contienen un mensaje de SEI de anidación de MCTS) e incluyen estas unidades de nAl de SEI en el flujo de bits extraído.
En algunos ejemplos, después de decodificar una unidad de NAL de SEI que contiene un mensaje de SEI de anidación de MCTS, la unidad 24 de extracción de subflujo de bits está configurada para determinar que el mensaje de SEI de anidación de MCTS no contiene ningún mensaje de SEI no de anidación de MCTS. Es decir, la unidad 24 de extracción de subflujo de bits puede determinar, basándose en una restricción impuesta en el flujo de bits original, que cualquier unidad de NAL de SEI que contiene un mensaje de SEI de anidación de MCTS únicamente contiene mensajes de SEI de anidación de MCTS, y no contienen ningún mensaje de SEI no de anidación de MCTS. Por consiguiente, en respuesta a la decodificación del mensaje de SEI de anidación de MCTS, la unidad 24 de extracción de subflujo de bits puede decodificar mensajes de SEI posteriores de la unidad de NAL de SEI como mensajes de SEI de anidación de MCTS en respuesta a la determinación.
La unidad 24 de extracción de subflujo de bits puede determinar también un conjunto de imágenes que incluyen MCTS asociados con el mensaje de SEI de MCTS-EIS usando, por ejemplo, un elemento de sintaxis associatedPicSet del mensaje de SEI de MCTS temporal. En particular, la unidad 24 de extracción de subflujo de bits puede evitar la decodificación de un elemento de sintaxis associatedPicSet del mensaje de SEI de MCTS-EIS, y únicamente decodificar el elemento de sintaxis associatedPicSet del mensaje de SEI de MCTS temporal.
La unidad 24 de extracción de subflujo de bits a continuación extrae datos de vídeo para el subflujo de bits usando los mensajes de SEI (110) de las imágenes asociadas. Por ejemplo, la unidad 24 de extracción de subflujo de bits puede extraer datos para uno o más cortes o piezas de las imágenes asociadas en el flujo de bits original que corresponden a los MCTS, que van a enviarse al dispositivo 14 de destino. En algunos ejemplos, la unidad 24 de extracción de subflujo de bits puede determinar que los segmentos de corte del subflujo de bits que contienen una o más piezas que pertenecen a los respectivos MCTS dependen, como máximo, de los segmentos de corte en el mismo MCTS. De esta manera, la unidad 24 de extracción de subflujo de bits no necesita extraer ningún dato de MCTS excepto los MCTS determinados que van a presentarse. De esta manera, la unidad 24 de extracción de subflujo de bits puede extraer un subconjunto de MCTS disponibles de la unidad de acceso usando el mensaje de SEI de MCTS-EIS. La unidad 24 de extracción de subflujo de bits a continuación envía el subflujo de bits extraído al dispositivo 14 de destino y al decodificador 30 de vídeo del mismo (112).
De esta manera, el método de la Figura 4 representa un ejemplo de un método que incluye determinar si una unidad de acceso de los datos de vídeo incluye un mensaje de información de mejora complementaria (SEI) de conjuntos de piezas restringidas en movimiento (MCTS) temporal; y decodificar un mensaje de SEI de conjunto de información de extracción de MCTS (MCTS-EIS) de la unidad de acceso únicamente cuando la unidad de acceso incluye el mensaje de SEI de MCTS temporal.
Adicionalmente, el método de la Figura 4 representa un ejemplo de un método que incluye determinar la extracción de un subflujo de bits de conjuntos de piezas restringidas en movimiento (MCTS) de un flujo de bits original basándose al menos en parte en la información de un mensaje de información de mejora complementaria (SEI) de conjunto de información de extracción de MCTS (MCTS-EIS); y en respuesta a la determinación al extraer el subflujo de bits de MCTS, omitir todas las unidades de capa de abstracción de red (NAL) de SEI que contienen mensajes de SEI de MCTS no anidados de la inclusión en el subflujo de bits de MCTS extraído, independientemente de un valor de un valor de identificador de capa de encabezado de unidad de NAL para los mensajes de SEI de MCTS no anidados.
Además, el método de la Figura 4 representa un ejemplo de un método que incluye la decodificación de una unidad de capa de abstracción de red (NAL) de información de mejora complementaria (SEI) de un flujo de bits de vídeo, conteniendo la unidad de NAL de SEI un mensaje de SEI de anidación de conjuntos de piezas restringidas en movimiento (MCTS), determinar que la unidad de NAL de SEI no contiene ningún mensaje de SEI no de anidación de MCTS en respuesta a la unidad de NAL de SEI que contiene el mensaje de SEI de anidación de MCTS, y decodificar mensajes de SEI posteriores de la unidad de NAL de SEI como mensajes de SEI de anidación de MCTS en respuesta a la determinación.
La Figura 5 es un diagrama de flujo que ilustra otro método ilustrativo para extraer un subflujo de bits de acuerdo con las técnicas de esta divulgación. La Figura 5 se muestra como un método separado de la Figura 4 por claridad, aunque debería entenderse que, en algunos ejemplos, los métodos de las Figuras 4 y 5 pueden realizarse juntos. Por ejemplo, partes del método de la Figura 5 pueden corresponder, en general, a la etapa 110 de la Figura 4. Análogamente, el método de la Figura 5 se explica también como que se realiza por la unidad 24 de extracción de subflujo de bits de la Figura 1. Sin embargo, debería entenderse que pueden configurarse otras unidades o dispositivos para realizar el método de la Figura 5. Por ejemplo, el dispositivo 14 de destino o el decodificador 30 de vídeo pueden configurarse para realizar el método de la Figura 5.
En este ejemplo, la unidad 24 de extracción de subflujo de bits recibe inicialmente un mensaje de SEI de MCTS temporal para un flujo de bits (120). La unidad 24 de extracción de subflujo de bits también determina extraer un subflujo de bits, y determina si cada una de las imágenes en el flujo de bits original es su propio MCTS (122) separado. Por ejemplo, la unidad 24 de extracción de subflujo de bits puede determinar un valor de un elemento de sintaxis each_tile_one_tile_set_flag del mensaje de SEI de MCTS temporal para determinar si cada pieza corresponde a un conjunto de piezas separado.
Si cada pieza corresponde a un conjunto de piezas separado (ramal "SÍ" de 122), la unidad 24 de extracción de subflujo de bits puede establecer valores de identificador para cada MCTS a posiciones de pieza de piezas en una o más imágenes (124) correspondientes, por ejemplo, en orden de exploración por filas. Por lo tanto, en algunos ejemplos, cuando each_tile_one_tile_set_flag del mensaje de SEI de los MCTS temporales asociados es igual a 1, la unidad 24 de extracción de subflujo de bits puede establecer los identificadores de MCTS para cada MCTS igual a una posición de pieza de una pieza correspondiente en el MCTS en orden de exploración por filas de piezas.
Por otra parte, si cada pieza no corresponde a un conjunto de piezas separado (ramal "NO" de 124), por ejemplo, si un conjunto de piezas puede incluir dos o más piezas, la unidad 24 de extracción de subflujo de bits puede determinar un número de conjuntos de MCTS en el mensaje de SEI de MCTS temporal (126). El número de conjuntos de MCTS puede indicarse por el valor del elemento de sintaxis num_sets_in_message_minus1 del mensaje de SEI de MCTS temporal. Como se muestra en el ejemplo de la tabla 1 anterior, el mensaje de SEI de MCTS temporal puede incluir un bucle a través del número de conjuntos de MCTS en el mensaje de SEI de MCTS temporal, incluyendo el bucle una iteración por los valores de señalización establecidos para diversos elementos de sintaxis para cada conjunto de MCTS. Tales parámetros pueden incluir, por ejemplo, mcts_id[i]. De acuerdo con las técnicas de esta divulgación, la unidad 24 de extracción de subflujo de bits procesa iterativamente valores de elementos de sintaxis para los MCTS del mensaje de SEI de MCTS temporal como se muestra en, por ejemplo, la tabla 1 (128). Adicionalmente, la unidad 24 de extracción de subflujo de bits puede establecer un valor de identificador (por ejemplo, mcts_id[i]) para cada MCS igual a la posición de iteración (130), por ejemplo, "i" en el bucle que se itera a través de los MCTS como se muestra en la tabla 1.
En cualquier caso, la unidad 24 de extracción de subflujo de bits puede a continuación extraer un subflujo de bits usando los identificadores (132) de MCTS y enviar el subflujo de bits al decodificador 30 de vídeo (Figura 1) (134).
De esta manera, el método de la Figura 5 representa un ejemplo de un método que incluye determinar un valor de un elemento de sintaxis de un mensaje de información de mejora complementaria (SEI) de conjuntos de piezas restringidas en movimiento (MCTS) temporal de una unidad de acceso, en donde el valor del elemento de sintaxis representa si todas las piezas de una o más imágenes correspondientes están incluidas en MCTS separados; y cuando el valor del elemento de sintaxis indica que cada pieza de las correspondientes imágenes no está incluida en el MCTS separado, establecer un identificador de MCTS del MCTS de una imagen actual de la unidad de acceso igual a un valor de un índice del MCTS, siendo imagen actual una de las correspondientes imágenes.
Ha de reconocerse que, dependiendo del ejemplo, ciertos actos o eventos de cualquiera de las técnicas descritas en el presente documento pueden realizarse en una secuencia diferente, pueden añadirse, fusionarse o excluirse por completo (por ejemplo, no todos los actos o eventos descritos son necesarios para la puesta en práctica de las técnicas). Además, en ciertos ejemplos, los actos o eventos pueden realizare de manera concurrente, por ejemplo, a través de procesamiento de múltiples hilos, procesamiento de interrupción o múltiples procesadores en lugar de secuencialmente.
En uno o más ejemplos, las funciones descritas pueden implementarse en hardware, software, firmware o cualquier combinación de los mismos. Si se implementan en software, las funciones pueden almacenarse en o transmitirse a través como una o más instrucciones o código en un medio legible por ordenador y ejecutarse por una unidad de procesamiento basada en hardware. Medio legible por ordenador puede incluir medio de almacenamiento legible por ordenador, que corresponde a un medio de almacenamiento tal como un medio de almacenamiento de datos o medios de comunicación que incluyen cualquier medio que facilite la transferencia de un programa informático desde un lugar a otro, por ejemplo, de acuerdo con un protocolo de comunicación. De esta manera, medio legible por ordenador generalmente puede corresponder a (1) medio de almacenamiento legible por ordenador tangible que es no transitorio o (2) un medio de comunicación tal como una señal u onda portadora. El medio de almacenamiento de datos puede ser cualquier medio disponible que pueda accederse por uno o más ordenadores o uno o más procesadores para recuperar instrucciones, código y/o estructuras de datos para la implementación de las técnicas descritas en esta divulgación. Un producto de programa informático puede incluir un medio legible por ordenador.
A modo de ejemplo, y no como limitación, tal medio de almacenamiento legible por ordenador puede comprender RAM, ROM, EEPROM, CD-ROM u otro almacenamiento de disco óptico, almacenamiento de disco magnético u otros dispositivos de almacenamiento magnético, memoria flash o cualquier otro medio que pueda usarse para almacenar código de programa deseado en forma de instrucciones o estructuras de datos y que puede accederse por un ordenador. También, cualquier conexión se denomina apropiadamente como un medio legible por ordenador. Por ejemplo, si las instrucciones se transmiten desde un sitio web, servidor u otra fuente remota usando un cable coaxial, cable de fibra óptica, par trenzado, línea digital de abonado (DSL) o tecnologías inalámbricas tales como infrarrojos, radio y microondas, entonces el cable coaxial, cable de fibra óptica, par trenzado, DSL o tecnologías inalámbricas tales como infrarrojos, radio y microondas se incluyen en la definición de medio. Sin embargo, debería entenderse que medio de almacenamiento legible por ordenador y medio de almacenamiento de datos no incluyen conexiones, ondas portadoras, señales u otros medios transitorios, sino que, en su lugar, se refieren a medio de almacenamiento tangible no transitorio. Disco magnético y disco óptico, como se usan en este documento, incluyen disco compacto (CD), disco láser, disco óptico, disco versátil digital (DVD), disco flexible y disco Blu-ray donde los discos magnéticos normalmente reproducen datos magnéticamente, mientras que los discos ópticos reproducen datos ópticamente con láseres. Combinaciones de lo anterior deberían incluirse también dentro del alcance de medio legible por ordenador.
Las instrucciones pueden ejecutarse por uno o más procesadores, tal como uno o más procesadores de señales digitales (DSP), microprocesadores de propósito general, circuitos integrados específicos de la aplicación (ASIC), campos de matrices de puertas programabas (FPGA) u otra circuitería integrada o de lógica discreta equivalente. Por consiguiente, el término "procesador', como se usa en el presente documento puede hacer referencia a cualquiera de la estructura anterior o cualquier otra estructura adecuada para la implementación de las técnicas descritas en el presente documento. Además, en algunos aspectos, la funcionalidad descrita en el presente documento puede proporcionarse dentro de hardware especializado y/o módulos de software configurados para codificar y decodificar o incorporarse en un códec combinado. También, las técnicas podrían implementarse completamente en uno o más circuitos o elementos lógicos.
Las técnicas de esta divulgación pueden implementarse en una amplia diversidad de dispositivos o aparatos, que incluye un microteléfono inalámbrico, un circuito integrado (CI) o un conjunto de CI (por ejemplo, un conjunto de chips). Se describen diversos componentes, módulos o unidades en esta divulgación para destacar aspectos funcionales de dispositivos configurados para realizar las técnicas desveladas, pero no requieren necesariamente la realización por diferentes unidades de hardware. En su lugar, como se ha descrito anteriormente, diversas unidades pueden combinarse en una unidad de hardware de códec o proporcionarse mediante una recopilación de unidades de hardware inter operativas, que incluyen uno o más procesadores, como se ha descrito anteriormente, en conjunto con software y/o firmware adecuado.
Se han descrito diversos ejemplos.

Claims (15)

REIVINDICACIONES
1. Un método de decodificación de datos de vídeo, comprendiendo el método:
decodificar una unidad de capa de abstracción de red, NAL, de información de mejora complementaria, SEI, recibida de un flujo de bits de vídeo, conteniendo la unidad de NAL de SEI, según se recibe, un mensaje de SEI de anidación de conjuntos de piezas restringidas en movimiento, MCTS;
determinar, basándose en una restricción impuesta en el flujo de bits de vídeo según se recibe que cualquier unidad de NAL de SEI que contiene un respectivo mensaje de SEI de anidación de MCTS no contiene ningún mensaje de SEI no de anidación de MCTS, que la unidad de NAL de SEI, según se recibe, no contiene ningún mensaje de SEI no de anidación de MCTS en respuesta a la unidad de NAL de SEI que contiene el mensaje de SEI de anidación de MCTS; y
decodificar mensajes de SEI posteriores de la unidad de NAL de SEI recibida como mensajes de SEI de anidación de MCTS en respuesta a la determinación.
2. El método de la reivindicación 1, en donde la decodificación de la unidad de NAL de SEI comprende decodificar valores para uno o más elementos de sintaxis del mensaje de SEI de anidación de MCTS usando un límite superior de 511 para los valores.
3. El método de la reivindicación 2, en donde el uno o más elementos de sintaxis incluyen un elemento de sintaxis que representa un número de mensajes de conjuntos de información de extracción de MCTS, MCTS-EIS, incluidos en la unidad de NAL de SEI.
4. El método de la reivindicación 2, en donde el uno o más elementos de sintaxis incluyen un elemento de sintaxis que representa un número de MCTS asociados con un conjunto de información de extracción de MCTS que corresponde a la unidad de NAL de SEI.
5. El método de la reivindicación 2, en donde el uno o más elementos de sintaxis incluyen un elemento de sintaxis que representa un número de MCTS asociados con el mensaje de SEI de anidación de MCTS.
6. El método de la reivindicación 1, comprendiendo el flujo de bits de vídeo un flujo de bits original, comprendiendo el método adicionalmente:
decodificar un mensaje de información de mejora complementaria, SEI, del conjunto de información de extracción, MCTS-EIS, de conjuntos de piezas restringidas en movimiento del flujo de bits original; y
extraer un subflujo de bits de MCTS desde el flujo de bits original, incluyendo el subflujo de bits de MCTS un conjunto de dos o más MCTS.
7. El método de la reivindicación 6, que comprende adicionalmente señalizar la información de fase y nivel del conjunto de dos o más MCTS en un mensaje de SEI de MCTS-EIS se sustitución del subflujo de bits de MCTS extraído.
8. El método de la reivindicación 6, en donde la decodificación del mensaje de SEI de MCTS-EIS comprende decodificar un conjunto de información de extracción del mensaje de SEI de MCTS-EIS, comprendiendo el método adicionalmente determinar el conjunto de dos o más MCTS a partir del conjunto de información de extracción del mensaje de SEI de MCTS-EIS.
9. El método de la reivindicación 6, en donde la decodificación del mensaje de SEI de MCTS-EIS comprende decodificar una lista de conjuntos extraíbles de MCTS como un bucle anidado dentro de un bucle de conjuntos de información de extracción del mensaje de SEI de MCTS-EIS.
10. El método de la reivindicación 6, que comprende adicionalmente señalizar información de fase y nivel del conjunto de dos o más MCTS en conjuntos de parámetros de secuencia (SPS) de sustitución del subflujo de bits de MCTS extraído.
11. Un medio de almacenamiento legible por ordenador que tiene almacenado en el mismo instrucciones que, cuando se ejecutan por un procesador, hacen que el procesador realice un método de acuerdo con cualquiera de las reivindicaciones 1 a 10.
12. Un dispositivo para decodificar datos de vídeo, comprendiendo el dispositivo:
una memoria configurada para almacenar datos de vídeo; y
uno o más procesadores implementados en circuitería y configurados para:
decodificar una unidad de capa de abstracción de red, NAL, de información de mejora complementaria, SEI, recibida de un flujo de bits de vídeo que incluye los datos de vídeo, conteniendo la unidad de NAL de SEI, según se recibe, un mensaje de SEI de anidación de conjuntos de piezas restringidas en movimiento, MCTS; determinar, basándose en una restricción impuesta en el flujo de bits de vídeo según se recibe que cualquier unidad de NAL de SEI que contiene un respectivo mensaje de SEI de anidación de MCTS no contiene ningún mensaje de SEI no de anidación de MCTS, que la unidad de NAL de SEI, según se recibe, no contiene ningún mensaje de SEI no de anidación de MCTS en respuesta a la unidad de NAL de SEI que contiene el mensaje de SEI de anidación de MCTS; y
decodificar mensajes de SEI posteriores de la unidad de NAL de SEI recibida como mensajes de SEI de anidación de MCTS en respuesta a la determinación.
13. El dispositivo de la reivindicación 12, en donde para decodificar la unidad de NAL de SEI, el uno o más procesadores están configurados para decodificar valores para uno o más elementos de sintaxis del mensaje de SEI de anidación de MCTS usando un límite superior de 511 para los valores.
14. El dispositivo de la reivindicación 12, que comprende adicionalmente una pantalla configurada para presentar visualmente los datos de vídeo.
15. El dispositivo de la reivindicación 12, en donde el dispositivo comprende uno o más de una cámara, un ordenador, un dispositivo móvil, un dispositivo receptor de difusión o un decodificador de salón.
ES18710753T 2017-03-03 2018-03-02 Codificación de mensajes de SEI de MCTS anidados Active ES2867583T3 (es)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201762466871P 2017-03-03 2017-03-03
US201762473947P 2017-03-20 2017-03-20
US15/909,597 US10764575B2 (en) 2017-03-03 2018-03-01 Coding MCTS-nested SEI messages to exclude other SEI messages that are not MCTS-nested
PCT/US2018/020677 WO2018160976A2 (en) 2017-03-03 2018-03-02 Coding mcts-nested sei messages

Publications (1)

Publication Number Publication Date
ES2867583T3 true ES2867583T3 (es) 2021-10-20

Family

ID=63355493

Family Applications (4)

Application Number Title Priority Date Filing Date
ES18710749T Active ES2909066T3 (es) 2017-03-03 2018-03-02 Identificadores de codificación para conjuntos de mosaicos con movimiento restringido
ES18710753T Active ES2867583T3 (es) 2017-03-03 2018-03-02 Codificación de mensajes de SEI de MCTS anidados
ES18710745T Active ES2895270T3 (es) 2017-03-03 2018-03-02 Codificación de mensajes SEI de MCTS-EIS de una unidad de acceso
ES18710752T Active ES2867624T3 (es) 2017-03-03 2018-03-02 Extracción de subflujos de bits de MCTS para codificación de vídeo

Family Applications Before (1)

Application Number Title Priority Date Filing Date
ES18710749T Active ES2909066T3 (es) 2017-03-03 2018-03-02 Identificadores de codificación para conjuntos de mosaicos con movimiento restringido

Family Applications After (2)

Application Number Title Priority Date Filing Date
ES18710745T Active ES2895270T3 (es) 2017-03-03 2018-03-02 Codificación de mensajes SEI de MCTS-EIS de una unidad de acceso
ES18710752T Active ES2867624T3 (es) 2017-03-03 2018-03-02 Extracción de subflujos de bits de MCTS para codificación de vídeo

Country Status (6)

Country Link
US (4) US10687055B2 (es)
EP (4) EP3590261B1 (es)
CN (4) CN110326299B (es)
ES (4) ES2909066T3 (es)
SG (4) SG11201906484YA (es)
WO (4) WO2018160964A1 (es)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10687055B2 (en) * 2017-03-03 2020-06-16 Qualcomm Incorporated Coding MCTS-EIS SEI messages of an access unit
WO2019009473A1 (ko) * 2017-07-04 2019-01-10 엘지전자 주식회사 360도 비디오의 영역 기반 처리 방법 및 장치
US10638151B2 (en) * 2018-05-31 2020-04-28 Verizon Patent And Licensing Inc. Video encoding methods and systems for color and depth data representative of a virtual reality scene
WO2020056356A1 (en) * 2018-09-14 2020-03-19 Futurewei Technologies, Inc. Tile signaling in video coding
CN118158405A (zh) 2018-10-24 2024-06-07 北京字节跳动网络技术有限公司 子块运动矢量预测中基于空域邻近块的运动候选推导
JP7293368B2 (ja) * 2019-02-01 2023-06-19 フラウンホーファー-ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン サブピクチャまたは領域ごとのランダムアクセスを可能にするビデオコーデックとこのビデオコーデックを使用したビデオ合成の概念
WO2020175908A1 (ko) * 2019-02-26 2020-09-03 엘지전자 주식회사 시그널링된 정보에 기반한 픽처 파티셔닝 방법 및 장치
US11159827B2 (en) * 2019-09-23 2021-10-26 Tencent America LLC Method for signaling output layer set with sub picture
KR20230013061A (ko) 2020-05-22 2023-01-26 바이트댄스 아이엔씨 일치하는 출력 서브-비트스트림의 생성을 위한 기술
MX2022014673A (es) 2020-05-22 2022-12-15 Bytedance Inc Codificacion del conteo del orden de las imagenes en flujos de bits de video.
EP4150912A4 (en) * 2020-06-09 2023-11-08 ByteDance Inc. VIDEO PARAMETER SET CONSTRAINTS FOR SUB-BIT STREAM EXTRACTION FROM SUB-PICTURES
BR112022025149A2 (pt) 2020-06-09 2022-12-27 Bytedance Inc Método e aparelho de processamento de dados de vídeo, e, meios de armazenamento e de gravação legíveis por computador não transitórios
KR20230020424A (ko) 2020-06-09 2023-02-10 바이트댄스 아이엔씨 비디오 코딩에서 보충 향상 정보 메시지에 대한 제약들
US11321878B2 (en) 2020-06-26 2022-05-03 Sony Group Corporation Decoded tile hash SEI message for V3C/V-PCC
KR20230075492A (ko) * 2020-09-25 2023-05-31 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비디오 비트스트림들에서의 네스팅된 및 비-네스팅된 sei 메시지들
US11962936B2 (en) 2020-09-29 2024-04-16 Lemon Inc. Syntax for dependent random access point indication in video bitstreams

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6214235B2 (ja) * 2012-07-02 2017-10-18 キヤノン株式会社 ファイル生成方法、ファイル生成装置、及びプログラム
US9521393B2 (en) * 2013-01-07 2016-12-13 Qualcomm Incorporated Non-nested SEI messages in video coding
SG10201913539SA (en) * 2013-04-07 2020-02-27 Dolby Int Ab Signaling change in output layer sets
US9749627B2 (en) * 2013-04-08 2017-08-29 Microsoft Technology Licensing, Llc Control data for motion-constrained tile set
GB2516224A (en) 2013-07-11 2015-01-21 Nokia Corp An apparatus, a method and a computer program for video coding and decoding
CN106210746B (zh) * 2013-07-12 2019-10-11 索尼公司 图像解码装置和方法
JP6261215B2 (ja) * 2013-07-12 2018-01-17 キヤノン株式会社 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
CN105359525A (zh) 2013-07-14 2016-02-24 夏普株式会社 瓦片对齐信令和一致性约束
JP6150011B2 (ja) * 2013-07-15 2017-06-21 ソニー株式会社 インタラクティビティのための動き制約タイルセットseiメッセージの拡張
US20150016547A1 (en) * 2013-07-15 2015-01-15 Sony Corporation Layer based hrd buffer management for scalable hevc
AU2014294127B2 (en) 2013-07-22 2018-09-13 Sony Corporation Image processing device and method
CN105519114A (zh) 2013-09-10 2016-04-20 株式会社Kt 用于对可扩展视频信号进行编码/解码的方法及装置
US9648333B2 (en) 2013-10-11 2017-05-09 Vid Scale, Inc. High level syntax for HEVC extensions
US10187662B2 (en) 2013-10-13 2019-01-22 Sharp Kabushiki Kaisha Signaling parameters in video parameter set extension and decoder picture buffer operation
US10284858B2 (en) * 2013-10-15 2019-05-07 Qualcomm Incorporated Support of multi-mode extraction for multi-layer video codecs
WO2015060295A1 (ja) * 2013-10-22 2015-04-30 シャープ株式会社 画像復号装置、及び画像復号方法
US9106929B2 (en) * 2014-01-02 2015-08-11 Vidyo, Inc. Overlays using auxiliary pictures
US10178397B2 (en) * 2014-03-24 2019-01-08 Qualcomm Incorporated Generic use of HEVC SEI messages for multi-layer codecs
US20170150160A1 (en) 2014-06-17 2017-05-25 Sharp Kabushiki Kaisha Bitstream partitions operation
RU2019117034A (ru) 2014-06-20 2019-07-29 Сони Корпорейшн Устройство и способ кодирования изображений и устройство и способ декодирования изображений
US9716900B2 (en) * 2014-06-20 2017-07-25 Qualcomm Incorporated Extensible design of nesting supplemental enhancement information (SEI) messages
WO2016208241A1 (ja) 2015-06-24 2016-12-29 ソニー株式会社 符号化装置、復号装置及び伝送制御方法
CA3013657C (en) * 2016-02-09 2022-09-13 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Concept for picture/video data streams allowing efficient reducibility or efficient random access
CN114125505B (zh) 2016-05-26 2024-06-28 弗劳恩霍夫应用研究促进协会 针对交互式客户端的全景视频的广播流
EP3566452A4 (en) 2017-01-05 2020-06-10 Sharp Kabushiki Kaisha SYSTEMS AND METHODS FOR SIGNALING MOVEMENT-RESTRICTED TILE-SETS FOR VIRTUAL REALITY APPLICATIONS
US10687055B2 (en) * 2017-03-03 2020-06-16 Qualcomm Incorporated Coding MCTS-EIS SEI messages of an access unit

Also Published As

Publication number Publication date
WO2018160976A3 (en) 2018-10-18
CN110337814A (zh) 2019-10-15
US10897612B2 (en) 2021-01-19
CN110313182B (zh) 2022-03-22
US20180255305A1 (en) 2018-09-06
US10904521B2 (en) 2021-01-26
US20180255323A1 (en) 2018-09-06
SG11201906484YA (en) 2019-09-27
WO2018160964A1 (en) 2018-09-07
CN110337814B (zh) 2022-03-29
US10764575B2 (en) 2020-09-01
EP3590263B1 (en) 2021-04-14
CN110313182A (zh) 2019-10-08
WO2018160976A2 (en) 2018-09-07
EP3590261A1 (en) 2020-01-08
EP3590261B1 (en) 2021-09-22
EP3590262B1 (en) 2022-02-23
CN110326298B (zh) 2021-09-28
ES2895270T3 (es) 2022-02-18
EP3590264B1 (en) 2021-04-14
CN110326299A (zh) 2019-10-11
EP3590263A1 (en) 2020-01-08
US10687055B2 (en) 2020-06-16
CN110326298A (zh) 2019-10-11
CN110326299B (zh) 2022-04-05
US20180255296A1 (en) 2018-09-06
SG11201906481WA (en) 2019-09-27
ES2909066T3 (es) 2022-05-05
SG11201906482UA (en) 2019-09-27
EP3590262A1 (en) 2020-01-08
SG11201906486SA (en) 2019-09-27
ES2867624T3 (es) 2021-10-20
WO2018160957A1 (en) 2018-09-07
US20180255322A1 (en) 2018-09-06
EP3590264A2 (en) 2020-01-08
WO2018160970A1 (en) 2018-09-07

Similar Documents

Publication Publication Date Title
ES2867583T3 (es) Codificación de mensajes de SEI de MCTS anidados
ES2901503T3 (es) Decodificación de datos de vídeo usando una estructura de árbol de múltiples tipos de dos niveles
ES2895717T3 (es) Intra predicción y codificación de modo intra
ES2779461T3 (es) Intrapredicción de vídeo mejorada que usa una combinación de predicción dependiente de la posición para codificación de vídeo
ES2975180T3 (es) Modificación de las profundidades de bits en la codificación de transformación de espacio de color
ES2854699T3 (es) Intrapredicción y codificación intramodo
ES2973247T3 (es) Indicación de modo de intra-predicción mejorada para codificación de vídeo utilizando el modo contiguo
ES2884723T3 (es) Señalización de regiones de interés y actualización de decodificación gradual en la codificación de video
ES2897708T3 (es) Modelado de contexto eficiente en memoria
ES2647948T3 (es) Reutilización de conjuntos de parámetros para la codificación de vídeo
ES2649532T3 (es) Predicción ponderada explícita de alta precisión para la codificación de vídeo
KR20190044629A (ko) 비디오 코딩을 위한 트리-타입 코딩
US20130258052A1 (en) Inter-view residual prediction in 3d video coding
ES2736312T3 (es) Señalización de imágenes de referencia a largo plazo para codificación de vídeo
ES2886344T3 (es) Predicción residual generalizada para codificación de vídeo escalable y codificación de vídeo 3D
EP3375187A1 (en) Coding sign information of video data
BR112017015890B1 (pt) Predição avançada do vetor de movimento temporal com base em unidade de subpredição
AU2013272130A1 (en) Signaling data for long term reference pictures for video coding
ES2856099T3 (es) Señalización mejorada de identificadores de capa para puntos de operación de un codificador de vídeo
ES2977586T3 (es) Estructura GOP adaptativa con fotograma de referencia futuro en configuración de acceso aleatorio para codificación de vídeo