MX2015004383A - Estructura de sintaxis de parametro de decodificador de referencia hipotetica. - Google Patents

Estructura de sintaxis de parametro de decodificador de referencia hipotetica.

Info

Publication number
MX2015004383A
MX2015004383A MX2015004383A MX2015004383A MX2015004383A MX 2015004383 A MX2015004383 A MX 2015004383A MX 2015004383 A MX2015004383 A MX 2015004383A MX 2015004383 A MX2015004383 A MX 2015004383A MX 2015004383 A MX2015004383 A MX 2015004383A
Authority
MX
Mexico
Prior art keywords
hrd
parameter
parameters
syntax
video
Prior art date
Application number
MX2015004383A
Other languages
English (en)
Other versions
MX341437B (es
Inventor
Ye-Kui Wang
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
Publication of MX2015004383A publication Critical patent/MX2015004383A/es
Publication of MX341437B publication Critical patent/MX341437B/es

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/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/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/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Error Detection And Correction (AREA)

Abstract

Un codificador de video señaliza, en una corriente de bits codificada, un conjunto de parámetros de video (VPS) que incluye una pluralidad de estructuras de sintaxis del parámetro de Decodificador de Referencia Hipotética (HRD) en donde cada una incluye parámetros HRD; para cada estructura de sintaxis de parámetro HRD respectiva en la pluralidad de estructuras de sintaxis del parámetro HRD, el VPS además incluye un elemento de sintaxis indicando si los parámetros HRD de la estructura de sintaxis de parámetro HRD respectiva incluyen un conjunto común de parámetros HRD además de un conjunto de información de parámetros HRD específica de la sub-capa específica para una sub-capa particular de la corriente de bits de video codificado; el conjunto común de parámetros HRD es común a todas las sub-capas de la corriente de bits de video codificado; un decodificador de video u otro dispositivo decodifica, a partir de la corriente de bits de video codificado, el VPS y ejecuta una operación utilizando los parámetros HRD de al menos una de las estructuras de sintaxis del parámetro HRD.

Description

ESTRUCTURA DE SINTAXIS DE PARAMETRO DE DECODIFICADOR DE REFERENCIA HIPOTÉTICA CAMPO DE LA INVENCIÓN Esta divulgación se refiere a una codificación decodificación de video.
ANTECEDENTES DE LA INVENCIÓN Las capacidades de video digital se pueden incorporar en un amplio rango de dispositivos, incluyendo televisiones digitales, sistemas de transmisión directa digital, sistemas de transmisión inalámbrica, asistentes digitales personales (PDAs), computadoras laptop o de escritorio, computadoras de tableta, lectores de libros electrónicos, cámaras digitales, dispositivos de grabación digital, reproductores de medios digitales, dispositivos de juegos de video, consolas de juegos de video, teléfonos radio satelitales o celulares, denominados "teléfonos inteligentes", dispositivos de teleconferencia de video, dispositivos de corriente de video, y similar. Los dispositivos de video digital implementan téenicas de compresión de video tales como aquellas descritas en los estándares definidos por MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Parte 10, Codificación de Video Avanzada (AVC), el Estándar de Codificación de Video de Alta Eficiencia (HEVC), y extensiones de dichos estándares. Los dispositivos de video pueden transmitir, recibir, codificar, decodificar y/o almacenar información de video digital de manera más eficiente implementando dichas téenicas de compresión de video.
Las técnicas de compresión de video ejecutan predicción espacial (intra-imagen) y/o predicción temporal (inter imagen) para reducir o remover la redundancia inherente en las secuencias de video. Para codificación de video basada en bloque, una porción de video (es decir, un cuadro de video o una porción de un cuadro de video) se puede dividir en bloques de video. Los bloques de video en una porción intra-codificada (I) de una imagen son codificados utilizando predicción espacial con respecto a muestras de referencia en bloques vecinos en la misma imagen. Los bloques de video en una porción inter-codificada (P o B) de una imagen pueden utilizar 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 se pueden referir como cuadros, y las imágenes de referencia se pueden referir como cuadros de referencia.
La predicción espacial o temporal tiene como resultado un bloque predictivo para que un bloque sea codificado. Los datos residuales representan diferencias de pixel entre el bloque original que se va a codificar y el bloque predictivo. Un bloque ínter-codificado es codificado de acuerdo con un vector de movimiento que señala a un bloque de muestras de referencia que forman el bloque predictivo, y los datos residuales indicando la diferencia entre el bloque codificado y el bloque predictivo. Un bloque intra-codificado es codificado de acuerdo con un modo de intra-codificación y los datos residuales. Para compresión adicional, los datos residuales se pueden transformar del dominio de pixel a un dominio de transformada, teniendo como resultado coeficientes de transformada residuales, los cuales entonces se pueden cuantificar. Los coeficientes de transformada cuantificados, inicialmente acomodados en un arreglo bidimensional, se pueden escanear para producir un vector unidimensional de los coeficientes de transformada, y se puede aplicar codificación por entropía para lograr incluso más compresión.
Una corriente de bits de codificación multivista puede ser generada mediante la codificación de vistas, por ejemplo, desde múltiples perspectivas. Se han desarrollado algunos estándares de video tridimensionales (3D) que hacen uso de aspectos de codificación multivista. Por ejemplo, diferentes vistas pueden transmitir vistas del ojo izquierdo y derecho para soportar video 3D. Alternativamente, algunos procesos de codificación de video 3D pueden aplicar la denominada codificación multivista más profundidad. En la codificación multivista más profundidad, una corriente de bits de video 3D puede contener no solo componentes de vista de textura, sino también componentes de vista de profundidad. Por ejemplo, cada vista puede comprender un componente de vista de textura y un componente de vista de profundidad.
BREVE DESCRIPCIÓN DE LA INVENCIÓN En general, esta divulgación describe la señalización de parámetros de decodificador de referencia hipotética (HRD). Por ejemplo, un codificador de video puede señalizar, en una corriente de bits, un conjunto de parámetros de video (VPS) que incluye una pluralidad de estructuras de sintaxis del parámetro HRD donde cada una incluye un conjunto de uno o más parámetros HRD. Para cada estructura de sintaxis de parámetro HRD respectiva en la pluralidad de estructuras de sintaxis del parámetro HRD, el VPS además incluye un elemento de sintaxis que indica si los parámetros HRD de la estructura de sintaxis de parámetro HRD respectiva incluyen un conjunto común de parámetros HRD además de un conjunto de información de parámetros HRD específicos de la sub-capa especifico para una sub-capa particular de la corriente de bits. El conjunto común de parámetros HRD es común a todas las sub-capas de la corriente de bits. Un decodificador de video u otro dispositivo puede decodificar, a partir de la corriente de bits, el VPS y puede ejecutar una operación utilizando los parámetros HRD de al menos una de las estructuras de sintaxis del parámetro HRD.
En un ejemplo, esta divulgación describe un método para decodificar datos de video. El método comprende decodificar, a partir de una corriente de bits de video codificado, un VPS que incluye una pluralidad de estructuras de sintaxis del parámetro HRD donde cada una incluye parámetros HRD. Para cada estructura de sintaxis de parámetro HRD respectiva en la pluralidad de estructuras de sintaxis del parámetro HRD, el VPS además incluye un elemento de sintaxis que indica si los parámetros HRD de la estructura de sintaxis de parámetro HRD respectiva incluye un conjunto común de parámetros HRD. El conjunto común de parámetros HRD es común a todas las sub capas de la corriente de bits de video codificado. El método también comprende ejecutar una operación utilizando los parámetros HRD de al menos una de las estructuras de sintaxis del parámetro HRD.
En otro ejemplo, esta divulgación describe un dispositivo de decodificación de video que comprende uno o más procesadores configurados para decodificar, a partir de una corriente de bits de video codificado, un VPS que incluye una pluralidad de estructuras de sintaxis del parámetro HRD donde cada una incluye parámetros HRD. Para cada estructura de sintaxis de parámetro HRD respectiva en la pluralidad de estructuras de sintaxis del parámetro HRD, el VPS además incluye un elemento de sintaxis que indica si los parámetros HRD de la estructura de sintaxis de parámetro HRD respectiva incluyen un conjunto común de parámetros HRD. El conjunto común de parámetros HRD es común a todas las sub-capas de la corriente de bits de video codificado. Uno o más procesadores también están configurados para ejecutar una operación utilizando los parámetros HRD de al menos una de las estructuras de sintaxis del parámetro HRD.
En otro ejemplo, esta divulgación describe un dispositivo de decodificación de video que comprende medios para decodificar, a partir de una corriente de bits de video codificado, un VPS que incluye una pluralidad de estructuras de sintaxis del parámetro HRD donde cada una incluye parámetros HRD. Para cada estructura de sintaxis de parámetro HRD respectiva en la pluralidad de estructuras de sintaxis del parámetro HRD, el VPS además incluye un elemento de sintaxis que indica si los parámetros HRD de la estructura de sintaxis de parámetro HRD respectiva incluye un conjunto común de parámetros HRD, en donde el conjunto común de parámetros HRD es común a todas las sub-capas de la corriente de bits de video codificado. El dispositivo de decodificación de video comprende medios para ejecutar una operación utilizando los parámetros HRD de al menos una de las estructuras de sintaxis del parámetro HRD.
En otro ejemplo, esta divulgación describe un medio de almacenamiento legible por computadora que almacena instrucciones que, cuando son ejecutadas por un dispositivo de decodificación de video, configuran el dispositivo de decodificación de video para decodificar, a partir de una corriente de bits de video codificado, un VPS que incluye una pluralidad de estructuras de sintaxis del parámetro HRD en donde cada una incluye parámetros HRD. Para cada estructura de sintaxis de parámetro HRD respectiva en la pluralidad de estructuras de sintaxis del parámetro HRD, el VPS además incluye un elemento de sintaxis que indica si los parámetros HRD de la estructura de sintaxis de parámetro HRD respectiva incluyen un conjunto común de parámetros HRD. El conjunto común de parámetros HRD es común a todas las sub-capas de la corriente de bits de video codificado. Las instrucciones, cuando son ejecutadas, además configuran el dispositivo de decodificación de video para ejecutar una operación utilizando los parámetros HRD de al menos una de las estructuras de sintaxis del parámetro HRD.
En otro ejemplo, esta divulgación describe un método para codificar datos de video. El método comprende generar un VPS que incluye una pluralidad de estructuras de sintaxis del parámetro HRD en donde cada una incluye parámetros HRD. Para cada estructura de sintaxis de parámetro HRD respectiva en la pluralidad de estructuras de sintaxis del parámetro HRD, el VPS además incluye un elemento de sintaxis indicando si los parámetros HRD de la estructura de sintaxis de parámetro HRD respectiva incluyen un conjunto común de parámetros HRD además de un conjunto de información de parámetros HRD especifica de la sub-capa especifica para una sub-capa particular de una corriente de bits de video codificado. El conjunto común de parámetros HRD es común a todas las sub capas de la corriente de bits de video codificado. El método también comprende señalizar el VPS en la corriente de bits de video codificado.
En otro ejemplo, esta divulgación describe un dispositivo de codificación de video que comprende uno o más procesadores configurados para generar un VPS que incluye una pluralidad de estructuras de sintaxis del parámetro HRD en donde cada una incluye parámetros HRD. Para cada estructura de sintaxis de parámetro HRD respectiva en la pluralidad de estructuras de sintaxis del parámetro HRD, el VPS además incluye un elemento de sintaxis que indica si los parámetros HRD de la estructura de sintaxis de parámetro HRD respectiva incluyen un conjunto común de parámetros HRD además de un conjunto de información de parámetros HRD especifica de la sub-capa especifica para una sub-capa particular de una corriente de bits de video codificado. El conjunto común de parámetros HRD es común a todas las sub-capas de la corriente de bits de video codificado. Uno o más procesadores también están configurados para señalizar el VPS en la corriente de bits de video codificado.
En otro ejemplo, esta divulgación describe un dispositivo de codificación de video que comprende medios para generar, un VPS que incluye una pluralidad de estructuras de sintaxis del parámetro HRD en donde cada una incluye parámetros HRD. Para cada estructura de sintaxis de parámetro HRD respectiva en la pluralidad de estructuras de sintaxis del parámetro HRD, el VPS además incluye un elemento de sintaxis que indica si los parámetros HRD de la estructura de sintaxis de parámetro HRD respectiva incluyen un conjunto común de parámetros HRD además de un conjunto de información de parámetros HRD especifica de la sub-capa especifica para una sub-capa particular de una corriente de bits de video codificado. El conjunto común de parámetros HRD es común a todas las sub-capas de la corriente de bits de video codificado. El dispositivo de codificación de video también comprende medios para señalizar el VPS en la corriente de bits de video codificado.
En otro ejemplo, esta divulgación describe un medio de almacenamiento legible por computadora que almacena instrucciones que, cuando son ejecutadas por un dispositivo de codificación de video, configuran el dispositivo de codificación de video para generar un VPS que incluye una pluralidad de estructuras de sintaxis del parámetro HRD en donde cada una incluye parámetros HRD. Para cada estructura de sintaxis de parámetro HRD respectiva en la pluralidad de estructuras de sintaxis del parámetro HRD, el VPS además incluye un elemento de sintaxis que indica si los parámetros HRD de la estructura de sintaxis de parámetro HRD respectiva incluyen un conjunto común de parámetros HRD además de un conjunto de información de parámetros HRD especifica de la sub-capa especifica para una sub-capa particular de la corriente de bits de video codificado. El conjunto común de parámetros HRD es común a todas las sub-capas de la corriente de bits de video codificado. Las instrucciones, cuando son ejecutadas, además configuran el dispositivo de codificación de video para señalizar el VPS en la corriente de bits de video codificado.
Los detalles de uno o más ejemplos de la divulgación se establecen en los dibujos acompañantes y la siguiente descripción. Otras características, objetivos y ventajas serán aparentes a partir de la descripción, dibujos, y reivindicaciones.
BREVE DESCRIPCIÓN DE LAS FIGURAS La figura 1 es un diagrama en bloques que ilustra un ejemplo del sistema de codificación de video que puede utilizar las téenicas descritas en esta divulgación.
La figura 2 es un diagrama en bloques que ilustra un ejemplo de un codificador de video que puede implementar las técnicas descritas en esta divulgación.
La figura 3 es un diagrama en bloques que ilustra un ejemplo de un decodificador de video que puede implementar las técnicas descritas en esta divulgación.
La figura 4 es un gráfico de flujo que ilustra un ejemplo de operación de un codificador de video, de acuerdo con una o más técnicas de esta divulgación.
La figura 5 es un gráfico de flujo que ilustra un ejemplo de operación de un dispositivo, de acuerdo con una o más técnicas de esta divulgación.
La figura 6 es un gráfico de flujo que ilustra un ejemplo de operación de un codificador de video, de acuerdo con una o más técnicas de esta divulgación.
La figura 7 es un gráfico de flujo que ilustra un ejemplo de operación de un dispositivo, de acuerdo con una o más téenicas de esta divulgación.
La figura 8 es un gráfico de flujo que ilustra un ejemplo de operación de un codificador de video, de acuerdo con una o más técnicas de esta divulgación.
La figura 9 es un gráfico de flujo que ilustra un ejemplo de operación de un dispositivo, de acuerdo con una o más técnicas de esta divulgación.
DESCRIPCIÓN DETALLADA DE LA INVENCIÓN Un codificador de video puede generar una corriente de bits que incluye datos de video codificados. Debido a que la corriente de bits incluye datos de video codificados, la corriente de bits se puede denominar aquí como una corriente de bits de video codificado. La corriente de bits puede comprender una serie de unidades de capa de abstracción de red (NAL). Las unidades NAL pueden incluir unidades NAL de capa de codificación de video (VCL) y unidades no-VCL NAL. Las unidades VCL NAL pueden incluir porciones codificadas de imágenes. Una unidad no-VCL NAL puede incluir un conjunto de parámetros de video (VPS), un conjunto de parámetros de secuencia (SPS), un conjunto de parámetros de imágenes (PPS), información de memoria complementaria (SEI), u otros tipos de datos. Un VPS es una estructura de sintaxis que puede contener elementos de sintaxis que aplican a cero o más secuencias de video codificado completas. Un SPS es una estructura de sintaxis que puede contener elementos de sintaxis que aplican a cero o más secuencias de video codificado completas. Un solo VPS se puede aplicar a múltiples SPSs. Un PPS es una estructura de sintaxis que puede contener elementos de sintaxis que aplican a cero o más imágenes codificadas completas. Un solo SPS se puede aplicar a múltiples PPSs.
Un dispositivo, tal como un dispositivo de red de entrega de contenido (CDN), elemento de red de conocimiento de medios (MANE), codificador de video, o decodificador de video, puede extraer una sub-corriente de bits de la corriente de bits. El dispositivo puede ejecutar el proceso de extracción de la sub-corriente de bits removiendo algunas unidades NAL de la corriente de bits. La sub-corriente de bits resultante incluye las unidades NAL no removidas restantes de la corriente de bits. En algunos ejemplos, datos de video decodificados de la sub-corriente de bits pueden tener una velocidad de cuadro inferior y/o pueden representar menos vistas que la corriente de bits original.
Estándares de codificación de video pueden incluir varias características para soportar el proceso de extracción de la sub-corriente de bits. Por ejemplo, datos de video de la corriente de bits se pueden dividir en un conjunto de capas. Para cada una de las capas, los datos en una capa inferior pueden ser decodificados sin referencia a los daros en alguna capa superior. Las unidades NAL solo encapsulan datos de una sola capa. Por lo tanto, unidades NAL que encapsulan datos de la capa restante más alta de la corriente de bits pueden ser removidas de la corriente de bits sin afectar la capacidad de decodificación de datos en las capas restantes de la corriente de bits. En codificación de video escalable (SVC), capas superiores pueden incluir datos de mejora que incrementan la calidad de las imágenes en capas inferiores (escalabilidad de calidad), agrandan el formato espacial de imágenes en capas inferiores (escalabilidad espacial), o incrementan la velocidad temporal de las imágenes en capas inferiores (escalabilidad temporal). En codificación multivista (MVC) y codificación de video tridimensional (3DV), capas superiores pueden incluir vistas adicionales.
Cada unidad NAL puede incluir una cabecera y una carga útil. Las cabeceras de las unidades NAL pueden incluir elementos de sintaxis nuh_reservado_cero_6bits. El elemento de sintaxis nuh reservado cero 6bits de una unidad NAL es igual a 0 si la unidad NAL se refiere a una capa base en MVC, codificación 3DV, o SVC. Los datos en una capa base de una corriente de bits pueden ser decodificados sin referencia a datos en alguna otra capa de la corriente de bits. Si la unidad NAL no se refiere a una capa base en MVC, 3DV, o SVC, el elemento de sintaxis nuh_reservado_cero_6bits puede tener otros valores no cero. Específicamente, si una unidad NAL no se refiere a una capa base en MVC, 3DV, o SVC, el elemento de sintaxis nuh_reservado_cero_6bits de la unidad NAL especifica un identificador de capa que identifica una capa asociada con la unidad NAL.
Además, algunas imágenes dentro de una capa pueden ser decodificadas sin referencia a otras imágenes dentro de la misma capa. Por lo tanto, unidades NAL que encapsulan datos de algunas imágenes de una capa pueden ser removidas de la corriente de bits sin afectar la capacidad de decodificación de otras imágenes en la capa. Por ejemplo, imágenes con valores de conteo de orden de imágenes pares (POC) pueden ser decodificables sin referencia a imágenes con valores POC impares. La remoción de unidades NAL que encapsulan datos de dichas imágenes pueden reducir la tasa de transferencia de cuadro de la corriente de bits. Un subconjunto de imágenes dentro de una capa que puede ser decodificada sin referencia a otras imágenes dentro de la capa se puede referir aquí como un a "sub-capa" o una "sub-capa temporal." Unidades NAL pueden incluir elementos de sintaxis nuh_temporal_id_másl. El elemento de sintaxis nuh_temporal_id_másl de una unidad NAL puede especificar un identificador temporal de la unidad NAL. Si el identificador temporal de una primera unidad NAL es menor que el identificador temporal de una segunda unidad NAL, los datos encapsulados por la primera unidad NAL pueden ser decodificados sin referencia a los datos encapsulados por la segunda unidad NAL.
Puntos de operación de una corriente de bits están asociados con un conjunto de identificadores de capa (es decir, un conjunto de valores nuh_reservado_cero_6bits) y un identificador temporal. El conjunto de identificadores de capa puede ser denotado como OpCapaldConjunto y el identificador temporal puede ser denotado como TemporalID. Si un identificador de capa de la unidad NAL está en un conjunto de identificadores de capa del punto de operación y el identificador temporal de la unidad NAL es menor que o igual al identificador temporal del punto de operación, la unidad NAL está asociada con el punto de operación. Una representación del punto de operación es un subconjunto de corriente de bits (es decir, una sub-corriente de bits) que está asociada con un punto de operación. La representación del punto de operación de un punto de operación puede incluir cada unidad NAL que está asociada con el punto de operación. La representación del punto de operación no incluye unidades VCL NAL que no están asociadas con el punto de operación.
Una fuente externa puede especificar un conjunto de identificadores de capa objetivo para un punto de operación.
Por ejemplo, un dispositivo de red de entrega de contenido (CDN) puede especificar el conjunto de identificadores de capa objetivo. En este ejemplo, el dispositivo CDN puede utilizar el conjunto de identificadores de capa objetivo para identificar un punto de operación. El dispositivo CDN entonces puede extraer la representación del punto de operación para el punto de operación y puede reenviar la representación del punto de operación, en lugar de la corriente de bits original, a un dispositivo de cliente. Extraer y reenviar la representación del punto de operación al dispositivo de cliente puede reducir la tasa de transferencia de bits de la corriente de bits.
Además, los estándares de codificación de video especifican modelos de almacenamiento en memoria intermedia del video. Un modelo de almacenamiento en memoria intermedia del video también se puede referir como un "decodificador de referencia hipotética" o un "HRD." El HRD describe la manera en que los datos van a ser almacenados en memoria intermedia para decodificación y la manera en que los datos decodificados son almacenados en memoria intermedia para salida. Por ejemplo, el HRD describe la operación de una memoria intermedia de imágenes codificadas ("CPB") y una memoria intermedia de imágenes decodificadas ("DPB") en un decodificador de video. La CPB es una memoria intermedia primero en entrar primero en salir que contiene unidades de acceso en el orden de decodificación especificado por el HRD. La DPB es una memoria intermedia que tiene imágenes decodificada para referencia, reordenamiento de salida, o retraso de salida especificado por el HRD.
Un codificador de video puede señalizar un conjunto de parámetros HRD. Los parámetros HRD controlan varios aspectos del HRD. Los parámetros HRD pueden incluir un retraso de remoción CPB inicial, un tamaño de CP, una tasa de transferencia de bits, un retraso de salida DPB inicial, y n tamaño de DPB. Estos parámetros HRD pueden ser codificados en una estructura de sintaxis hrd_parámetros( ) especificada en un VPS y/o un SPS. Los parámetros HRD también pueden ser especificados en mensajes SEI de periodo de almacenamiento en memoria intermedia o mensajes SEI de temporización de imágenes .
Tal como se explicó antes, una representación del punto de operación puede tener una velocidad de cuadro y/o tasa de transferencia de bits diferente que una corriente de bits original. Esto se debe a que la representación del punto de operación puede no incluir algunas imágenes y/o algunos de los datos de la corriente de bits original. Por lo tanto, si el decodificador de video fuese a remover datos de la CPB y/o la DPB a una velocidad particular cuando se procesa la corriente de bits original y si el decodificador de video fuese a remover datos de la CPB y/o la DPB a la misma velocidad cuando se procesa una representación del punto de operación, el decodificador de video puede remover demasiados o muy pocos datos de la CPB y/o la DPB. Por consiguiente, el codificador de video puede señalizar conjuntos diferentes de parámetros HRD para diferentes puntos de operación. En el estándar emergente de Codificación de Video de Alta Eficiencia (HEVC), el codificador de video puede señalizar conjuntos de parámetros HRD en un VPS o el codificador de video puede señalizar conjuntos de parámetros HRD en un SPS.
El conjunto de parámetros HRD opcionalmente incluye un conjunto de información que es común para todas las sub-capas temporales. Una sub-capa temporal es una capa escalable temporal de una corriente de bits escalable temporal que consiste de unidades VCL NAL con un identificador temporal particular y las unidades no-VCL NAL asociadas. Además del conjunto de información común, los conjuntos de parámetros HRD pueden incluir un conjunto de elementos de sintaxis que son específicos para sub-capas temporales individuales. Debido a que el conjunto de información común es común para múltiples conjuntos de parámetros HRD, puede ser innecesario señalizar el conjunto de información común en múltiples conjuntos de parámetros HRD. En algunas propuestas para HEVC, la información común puede estar presente en un conjunto de parámetros HRD cuando el conjunto de parámetros HRD es el primer conjunto de parámetros HRD en un VPS o la información común puede estar presente en un conjunto de parámetros HRD cuando el conjunto de parámetros HRD es asociado con el primer punto de operación.
Sin embargo, cuando hay múltiples conjuntos de parámetros HRD en un VPS, puede ser deseable tener múltiples conjuntos diferentes de información común para los conjuntos de parámetros HRD. Esto puede ser especialmente verdadero cuando hay grandes números de estructuras de sintaxis del parámetro HRD en un VPS. Por lo tanto, puede ser deseable tener conjuntos de información común en estructuras de sintaxis del parámetro HRD diferente a la primera estructura de sintaxis del parámetro HRD.
Las téenicas de esta divulgación proporcionan un diseño para permitir que la información común de estructuras de sintaxis del parámetro HRD sea explícitamente señalizada para cualquier estructura de sintaxis del parámetro HRD. En otras palabras, las téenicas de esta divulgación pueden permitir la información que es común para que todas las sub-capas sean explícitamente señalizadas para cualquier estructura de sintaxis hrd_parámetros( ). Esto puede mejorar la eficiencia de la codificación.
Por lo tanto, de acuerdo con una o más técnicas de esta divulgación, un dispositivo, tal como un decodificador de video u otro dispositivo, puede determinar, con base al menos en parte en un elemento de sintaxis en un VPS que incluye una pluralidad de estructuras de sintaxis del parámetro HRD, si una estructura de sintaxis del parámetro HRD particular en el VPS incluye un conjunto de parámetros HRD que son comunes a cada sub-capa de una corriente de bits. El dispositivo puede decodificar el elemento de sintaxis del VPS. Una o más estructuras de sintaxis del parámetro HRD pueden ocurrir en el orden de codificación en el VPS antes que la estructura de sintaxis del parámetro HRD particular. En respuesta a determinar que la estructura de sintaxis particular del parámetro HRD incluye el conjunto de parámetros HRD que son comunes a cada sub-capa de la corriente de bits, el dispositivo puede ejecutar una operación utilizando la estructura de sintaxis particular del parámetro HRD, incluyendo el conjunto de parámetros HRD que son comunes a cada sub-capa de la corriente de bits.
Además, un codificador de video puede generar mensajes SEI de anidado escalable. Un mensaje SEI de anidado escalable contiene uno o más mensajes SEI. Mensajes SEI anidados en un mensaje SEI de anidado escalable pueden incluir parámetros HRD u otra información asociada con un punto de operación. Algunas propuestas para HEVC no permiten que un mensaje SEI sea aplicad a múltiples puntos de operación. Esto puede disminuir la eficiencia de la tasa de transferencia de bits debido a que puede ocasionar que un codificador de video señalice múltiples mensajes SEI con la misma información. Por consiguiente, las téenicas de esta divulgación pueden permitir que un mensaje SEI sea aplicado a múltiples puntos de operación. Por ejemplo, un mensaje SEI de anidado escalable puede incluir elementos de sintaxis que especifican múltiples puntos de operación aplicables a mensajes SEI anidados dentro del mensaje SEI de anidado escalable.
Además, unidades SEI NAL, al igual que otros tipos de unidades NAL, incluyen una cabecera de unidad NAL y un cuerpo de unidad NAL. El cuerpo de unidad NAL de una unidad SEI NAL puede incluir un mensaje SEI, tal como un mensaje SEI de anidado escalable u otro tipo de mensaje SEI. Al igual que otras unidades NAL, la cabecera de unidad NAL de una unidad SEI NAL puede incluir un elemento de sintaxis nuh reservado cero 6bits y un elemento de sintaxis nuh_temporal_id_másl. Sin embargo, en algunas propuestas para HEVC, el elemento de sintaxis nuh_reservado_cero_6bits y/o el elemento de sintaxis nuh_temporal_id_másl de una cabecera de unidad NAL de una unidad SEI NAL no son utilizados para determinar un punto de operación aplicable a un mensaje SEI (o mensajes SEI) encapsulado por la unidad SEI NAL. Sin embargo, estos elementos de sintaxis de la cabecera de la unidad SEI NAL podrían ser reutilizados para reducir el número de bits señalizados. Por lo tanto, de acuerdo con las téenicas de esta divulgación, un elemento de sintaxis puede ser señalizado en un mensaje SEI de anidado escalable para indicar si un punto de operación aplicable a mensajes SEI anidados en una unidad SEI NAL es el punto de operación indicado por la información de identificación de capa en la cabecera de unidad NAL de la unidad SEI NAL. La información de identificación de capa en la cabecera de unidad NAL de una unidad SEI NAL puede incluir el valor de nuh_reservado_cero_6bits y el valor de nuh_temporal_id_másl de la cabecera de unidad NAL.
La figura 1 es un diagrama en bloques que ilustra un sistema de codificación de video 10 ejemplar que puede utilizar las técnicas de esta divulgación. Tal como aquí se utiliza, el término "codificador de video" se refiere genéricamente a codificadores de video y decodificadores de video. En esta divulgación, los términos "codificación de video" o "codificación" se pueden referir genéricamente a codificación de video o decodificación de video.
Tal como se muestra en la figura 1, el sistema de codificación de video 10 incluye un dispositivo fuente 12 y un dispositivo destino 14. El dispositivo fuente 12 genera datos de video codificados. Por consiguiente, el dispositivo fuente 12 se puede referir como un dispositivo de codificación de video o un aparato de codificación de video. El dispositivo destino 14 puede decodificar los datos de video codificados generados por el dispositivo fuente 12. Por consiguiente, el dispositivo destino 14 se puede referir como un dispositivo de decodificación de video o un aparato de decodificación de video. El dispositivo fuente 12 y el dispositivo destino 14 pueden ser ejemplos de dispositivos de codificación de video o aparatos de codificación de video.
El dispositivo fuente 12 y el dispositivo destino 14 pueden comprender un rango amplio de dispositivos, incluyendo computadoras de escritorio, dispositivos de computación móviles, computadoras notebook (por ejemplo, laptop), computadoras de tableta, descodificadores, equipos telefónicos tales como los denominados teléfonos inteligentes", televisiones , camaras, dispositivos de despliegue, reproductores de medios digitales, consolas de juegos de video, computadoras en-carro, o similares.
El dispositivo destino 14 puede recibir datos de video codificados desde el dispositivo fuente 12 a través de un canal 16. El canal 16 puede comprender uno o más medios o dispositivos con la capacidad para mover los datos de video codificados desde el dispositivo fuente 12 al dispositivo destino 14. En un ejemplo, el canal 16 puede comprender uno o más medios de comunicación que permitan al dispositivo fuente 12 transmitir datos de video codificados directamente al dispositivo destino 14 en tiempo real. En este ejemplo, el dispositivo fuente 12 puede modular los datos de video codificados de acuerdo con un estándar de comunicación, tal como un protocolo de ·comunicación inalámbrica, y puede transmitir los datos de video modulados al dispositivo destino 14. Uno o más medios de comunicación pueden incluir medios de comunicación inalámbricos y/o cableados, tal como un espectro de radiofrecuencia (RF) o una o más lineas de transmisión físicas. Uno o más medios de comunicación pueden formar parte de una red basada en paquete, tal como una red de área local, una red de área amplia, o una red global (por ejemplo, la Internet). Uno o más medios de comunicación pueden incluir enrutadores, conmutadores, estaciones base, u otro equipo que felicite la comunicación desde el dispositivo fuente 12 al dispositivo destino 14.
En otro ejemplo, el canal 16 puede incluir un medio de almacenamiento que almacena datos de video codificados generados por el dispositivo fuente 12. En este ejemplo, el dispositivo destino 14 puede tener acceso al medio de almacenamiento, por ejemplo, a través de acceso por disco o acceso por tarjeta. El medio de almacenamiento puede incluir una variedad de medios de almacenamiento de datos al que se tiene acceso en forma local tal como discos Blu-ray, DVDs, CD-ROMs, memoria flash, u otro almacenamiento digital conveniente para almacenar datos de video codificados.
En un ejemplo adicional, el canal 16 puede incluir un servidor de archivo u otro dispositivo de almacenamiento intermedio que almacene datos de video codificados generados por el dispositivo fuente 12. En este ejemplo, el dispositivo destino 14 puede tener acceso a datos de video codificados almacenados en el servidor de archivos u otro dispositivo de almacenamiento intermedio a través de corriente o descarga. El servidor de archivos puede ser un tipo de servidor con la capacidad para almacenar datos de video codificados y transmitir los datos de video codificados al dispositivo destino 14. Servidores de archivos ejemplares incluyen servidores Web (por ejemplo, para un sitio Web), servidores de protocolo de transferencia de archivos (FTP), dispositivos de almacenamientos unidos a la red (ÑAS), y unidades de disco local.
El dispositivo destino 14 puede tener acceso a los datos de video codificados a través de una conexión de datos estándar, tal como una conexión de Internet. Ejemplos de tipos de conexiones de datos pueden incluir canales inalámbricos (por ejemplo, conexiones Wi-Fi), conexiones cableadas (por ejemplo, DSL, módem de cable, etc.), o combinaciones de ambos que sean convenientes para tener acceso a datos de video codificados almacenados en un servidor de archivos. La transmisión de datos de video codificados desde el servidor de archivos puede ser una transmisión en corriente, una transmisión de descarga, o una combinación de ambas.
Las téenicas de esta divulgación no se limitan a aplicaciones o configuraciones inalámbricas. Las técnicas se pueden aplicar a codificación de video en apoyo a una variedad de aplicaciones multimedia, tal como transmisiones de televisión sobre-el-aire, transmisiones de televisión por cable, transmisiones de televisión satelital, transmisiones de video en corriente, por ejemplo, a través de la Internet, codificación de datos de video para almacenamiento en un medio de almacenamiento de datos, decodificación de datos de video almacenados en un medio de almacenamiento de datos, u otras aplicaciones. En algunos ejemplos, el sistema de codificación de video 10 se puede configurar para soportar transmisión de video de una vía o dos vías para soportar aplicaciones tales como corriente de video, reproducción de video, transmisión de video, y/o telefonía de video.
La figura 1 es simplemente un ejemplo y las téenicas de esta divulgación pueden aplicar a configuraciones de codificación de video (por ejemplo, codificación de video o decodificación de video) que no necesariamente incluyen alguna comunicación de datos entre los dispositivos de codificación y decodificación. En otros ejemplos, los datos son recuperados de una memoria local, puestos en corriente sobre una red, o similar. Un dispositivo de codificación de video puede codificar y almacenar datos en la memoria, y/o un dispositivo de decodificación de video puede recuperar y decodificar datos de la memoria. En muchos ejemplos, la codificación y decodificación se realiza a través de dispositivos que no se comunican entre si, sino que simplemente codifican datos para la memoria y/o recuperan y decodifican datos de la memoria.
En el ejemplo de la figura 1, el dispositivo fuente 12 incluye una fuente de video 18, un codificador de video 20, y una interfaz de salida 22. En algunos ejemplos, la interfaz de salida 22 puede incluir un modulador/desmodulador (modem) y/o un transmisor. La fuente de video 18 puede incluir un dispositivo de captura de video, por ejemplo, una cámara de video, un archivo de video que contiene datos de video previamente capturados, una interfaz de alimentación de video para recibir datos de video desde un proveedor de contenido de video, y/o un sistema de gráficos de computadora para generar datos de video, o una combinación de dichas fuentes de datos de video.
El codificador de video 20 puede codificar datos de video de la fuente de video 18. En algunos ejemplos, el dispositivo fuente 12 transmite directamente los datos de video codificados al dispositivo destino 14 a través de la interfaz de salida 22. En otros ejemplos, los datos de video codificados también pueden ser almacenados sobre un medio de almacenamiento o un servidor de archivos para posterior acceso por el dispositivo destino 14 para decodificación y/o reproducción.
En el ejemplo de la figura 1, el dispositivo destino 14 incluye una interfaz de entrada 28, un decodificador de video 30, y un dispositivo de despliegue 32. En algunos ejemplos, la interfaz de entrada 28 incluye un receptor y/o un modem. La interfaz de entrada 28 puede recibir datos de video codificados sobre el canal 16. El dispositivo de despliegue 32 puede estar integrado con o puede ser externo al dispositivo destino 14. En general, dispositivo de despliegue 32 despliega datos de video decodificados. El dispositivo de despliegue 32 puede comprender una variedad de dispositivos de despliegue, tal como una pantalla de cristal liquido (LCD), una pantalla de plasma, una pantalla de diodo de emisión de luz orgánica (OLED), u otro tipo de dispositivo de despliegue.
El codificador de video 20 y el decodificador de video 30 se pueden implementar como cualquiera de una variedad de circuitos convenientes, tal como uno o más microprocesadores, procesadores de señal digital (DSPs), circuitos integrados de aplicación especifica (ASICs), arreglos de compuerta programable en campo (FPGAs), lógica discreta, hardware, o cualesquiera combinaciones de los mismos. Si las téenicas son implementadas parcialmente en software, un dispositivo puede almacenar instrucciones para el software en un medio de almacenamiento legible por computadora no transitorio conveniente y pueden ejecutar las instrucciones en hardware utilizando uno o más procesadores para ejecutar las técnicas de esta divulgación. Cualquiera de los anteriores (incluyendo hardware, software, una combinación de hardware y software, etc.) se puede considerar como uno o más procesadores. Cada uno del codificador de video 20 y el decodificador de video 30 se puede incluir en uno o más codificadores o decodificadores, cualquiera de los cuales se puede integrar como parte de un codificador/decodificador combinado (CODEC) en un dispositivo respectivo.
Esta divulgación generalmente se puede referir a un codificador de video 20 "señalizando" cierta información a otro dispositivo, tal como el decodificador de video 30. El término "señalizando" generalmente se puede referir a la comunicación de elementos de sintaxis y/u otros datos utilizados para decodificar los datos de video comprimidos. Dicha comunicación puede ocurrir en tiempo real o en tiempo casi real. Alternativamente, dicha comunicación puede ocurrir sobre un lapso de tiempo, tal como pudiera ocurrir cuando se almacenan elementos de sintaxis en un medio de almacenamiento legible por computadora en una corriente de bits codificados al momento de la codificación, los cuales después pueden ser recuperados a través de un dispositivo de decodificación en cualquier momento después de ser almacenados en este medio.
En algunos ejemplos, el codificador de video 20 y el decodificador de video 30 operan de acuerdo con un estándar de compresión de video, tal como ISO/IEC MPEG-4 Visual e ITU-T H.264 (también conocido como ISO/IEC MPEG-4 AVC), incluyendo su extensión de Codificación de Video Escalable (SVC), extensión de Codificación de Video Multivista (MVC), y extensión 3DV basada en MVC. En algunos casos, cualquier corriente de bits que se adapte a 3DV basada en MVC siempre contiene una sub-corriente de bits que cumple con un perfil MV, por ejemplo, alto perfil estéreo. Además, hay un esfuerzo en curso para generar una extensión de codificación de video tridimensional (3DV) para H.264/AVC, concretamente 3DV basada en MVC. En otros ejemplos, el codificador de video 20 y el decodificador de video 30 pueden operar de acuerdo con ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 o ISO/IEC MPEG-2 Visual, e ITU-T H.264, ISO/IEC Visual.
En otros ejemplos, el codificador de video 20 y el decodificador de video 30 pueden operar de acuerdo con el estándar de Codificación de Video de Alta Eficiencia (HEVC) actualmente bajo desarrollo por el Equipo de Colaboración Conjunta en Codificación de Video (JCT-VC) del Grupo de Expertos de Codificación de Video (VCEG ITU-T y el Grupo de Expertos de Imágenes en Movimiento (MPEG) ISO/IEC. Un bosquejo del estándar HEVC por llegar, referido como "Bosquejo de Trabajo HEVC 8" se describe en Bross et al., "bosquejo de especificación de texto 8 de Codificación de Video de Alta Eficiencia (HEVC)," Equipo Colaborativo Conjunto en Codificación de Video (JCT-VC) de ITU-T SG16 WP3 e ISO/IEC JTC1/SC29/WG11, 10ava Reunión, Estocolmo, Suecia, Julio 2012, el cual a partir del 13 de junio de 2013, está disponible en http://phenix.int-evry.fr/jct/doc_end_user/documents/10_Stockholm/wgll/JCTVC-J1003-v8.zip. Otro bosquejo del estándar HEVC por llegar, referido como "Bosquejo de Trabajo HEVC 9" se describe en Bross et al., "bosquejo de especificación de texto 9 de Codificación de Video de Alta Eficiencia," Equipo Colaborativo Conjunto en Codificación de Video (JCT-VC) de ITU-T SG16 WP3 e ISO/IEC JTC1/SC29/WG11, llava Reunión, Shanghai, China, Octubre 2012, el cual a partir del 13 de junio de 2013, está disponible en http://phenix.int-evry.fr/jct/doc_end_user/documents/ll_Shanghai/wgll/JCTVC-K1003-vl3.zip. Además, hay esfuerzos en curso para producir extensiones SVC, MVC, y 3DV para HEVC. La extensión 3DV de HEVC se puede referir como 3DV basado en HEVC o HEVC-3DV.
En HEVC y otros estándares de codificación de video, una secuencia de video típicamente incluye una serie de imágenes. Las imágenes también se pueden referir como "cuadros." Una imagen puede incluir tres arreglos muestra, denotados SL, Scb y SCr- SL es un arreglo bidimensional (es decir, un bloque) de muestras de luminancia. Scb es un arreglo bidimensional de muestras de crominancia Cb. SCr es un arreglo bidimensional de muestras de crominancia Cr. Las muestras de crominancia también se pueden referir aquí como muestras de "crominancia". En otros casos, una imagen puede ser monocromo y puede incluir únicamente un arreglo de muestras de luminancia.
Para generar una representación codificada de una imagen, el codificador de video 20 puede generar un conjunto de unidades de árbol de codificación (CTUs). Cada una de las CTUs puede ser un bloque de árbol de codificación de muestras de luminancia, dos bloques de árbol de codificación correspondientes de muestras de crominancia, y estructuras de sintaxis utilizadas para codificar las muestras de los bloques de árbol de codificación. Un bloque de árbol de codificación puede ser un bloque de muestras NxN. Una CTU también se puede referir como un "bloque de árbol" o una "unidad de codificación más grande" (LCU). Las CTUs de HEVC pueden ser ampliamente análogas a los macrobloques de otros estándares, tal como H.264/AVC. Sin embargo, una CTU no necesariamente está limitada a un tamaño particular y puede incluir una o más unidades de codificación (CUs). Una porción puede incluir un número entero de CTUs ordenadas en forma consecutiva en el escaneo de trama.
Para generar una CTU codificada, el codificador de video 20 de manera recursiva puede ejecutar división de árbol cuaternario en los bloques de árbol de codificación de una CTU para dividir los bloques de árbol de codificación en bloques de codificación, de ahí el nombre "unidades de árbol de codificación." Un bloque de codificación es un bloque de muestras NxN. Una CU puede ser un bloque de codificación de muestras de lu inancia y dos bloques de codificación correspondientes de muestras de crominancia de una imaqen que tiene un arreglo de muestras de luminancia, un arreglo de muestras Cb y un arreglo de muestras Cr, y estructuras de sintaxis utilizadas para codificar las muestras de los bloques de codificación. El codificador de video 20 puede dividir un bloque de codificación de una CU en uno o más bloques de predicción. Un bloque de predicción puede ser un bloque rectangular (es decir, cuadrado o no cuadrado) de muestras en las cuales se aplica la misma predicción. Una unidad de predicción (PU) de una CU puede ser un bloque de predicción de muestras de luminancia, dos bloques de predicción correspondientes de muestras de crominancia de una imagen, y estructuras de sintaxis utilizadas para predecir las muestras de bloques de predicción. El codificador de video 20 puede generar bloques de luminancia, Cb y Cr predictivos para bloques de predicción de luminancia, Cb y Cr de cada PU de la CU.
El codificador de video 20 puede utilizar intra-predicción o ínter-predicción para generar los bloques predictivos para una PU. Si el codificador de video 20 utiliza intra-predicción para generar los bloques predictivos de una PU, el codificador de video 20 puede generar los bloques predictivos de la PU con base en muestras decodificadas de la imagen asociada con la PU.
Si el codificador de video 20 utiliza inter-predicción para generar los bloques predictivos de una PU, el codificador de video 20 puede generar los bloques predictivos de la PU con base en muestras decodificadas de una o más imágenes diferentes a la imagen asociada con la PU. El codificador de video 20 puede utilizar uni-predicción o bi-predicción para generar los bloques predictivos de una PU.
Cuando el codificador de video 20 utiliza uni-predicción para generar los bloques predictivos para una PU, la PU puede tener un solo vector de movimiento. Cuando el codificador de video 20 utiliza bi-predicción para generar los bloques predictivos para una PU, la PU puede tener dos vectores de movimiento.
Después que el codificador de video 20 genera bloques de luminancia, Cb y Cr predictivos para una o más PUs de una CU, el codificador de video 20 puede generar un bloque residual de luminancia para la CU. Cada muestra en el bloque residual de luminancia de la CU indica una diferencia entre una muestra de luminancia en uno de los bloques de luminancia predictivos de la CU y una muestra correspondiente en el bloque de codificación de luminancia original de la CU.
Además, el codificador de video 20 puede generar un bloque residual Cb para la CU. Cada muestra en el bloque residual Cb de la CU puede indicar una diferencia entre una muestra Cb en uno de los bloque Cb predictivos de la CU y una muestra correspondiente en el bloque de codificación Cb original de la CU. El codificador de video 20 también puede generar un bloque residual Cr para la CU. Cada muestra en el bloque residual Cr de la CU puede indicar una diferencia entre una muestra Cr en uno de los bloque Cr predictivos de la CU y una muestra correspondiente en el bloque de codificación Cr original de la CU.
Además, el codificador de video 20 puede utilizar la división de árbol cuaternario para descomponer los bloques residuales de luminancia, Cb y Cr de una CU en uno o más bloques de transformada de luminancia, Cb y Cr. Un bloque de transformada puede ser un bloque rectangular de muestras en las cuales aplica la misma transformada. Una unidad de transformada (TU) de una CU puede ser un bloque de transformada de muestras de luminancia, dos bloques de transformada correspondientes de muestras de crominancia, y estructuras de sintaxis utilizadas para transformar las muestras del bloque de transformada. Por lo tanto, cada TU de una CU se puede asociar con un bloque de transformada de luminancia, un bloque de transformada Cb, y un bloque de transformada Cr. El bloque de transformada de luminancia asociado con la TU puede ser un sub-bloque del bloque residual de luminancia de la CU. El bloque de transformada Cb puede ser un sub-bloque del bloque residual Cb de la CU. El bloque de transformada Cr puede ser un sub-bloque del bloque residual Cr de la CU.
El codificador de video 20 puede aplicar una o más transformadas a un bloque de transformada de luminancia de una TU para generar un bloque de coeficiente de luminancia para la TU. Un bloque de coeficiente puede ser un arreglo bidimensional de coeficientes de transformada. Un coeficiente de transformada puede ser una cantidad escalar. El codificador de video 20 puede aplicar una o más transformadas a un bloque de transformada Cb de una TU para generar un bloque de coeficiente Cb para la TU. El codificador de video 20 puede aplicar una o más transformadas a un bloque de transformada Cr de una TU para generar un bloque de coeficiente Cr para la TU.
Después de generar un bloque de coeficiente (por ejemplo, un bloque de coeficiente de luminancia, un bloque de coeficiente Cb o un bloque de coeficiente Cr), el codificador de video 20 puede cuantificar el bloque de coeficiente. La cuantificación generalmente se refiere a un proceso en el cual se cuantifican los coeficientes de transformada para reducir posiblemente la cantidad de datos utilizados para representar los coeficientes de transformada, proporcionando compresión adicional. Después que el codificador de video 20 cuantifica un bloque de coeficiente, el codificador de video 20 puede codificar por entropía elementos de sintaxis indicando los coeficientes de transformada cuantificados. Por ejemplo, el codificador de video 20 puede ejecutar Codificación Aritmética Binaria Adaptable al Contexto (CABAC) en los elementos de sintaxis indicando los coeficientes de transformada cuantificados. El codificador de video 20 puede emitir los elementos de sintaxis codificados por entropía en una corriente de bits.
El codificador de video 20 puede emitir una corriente de bits que incluye los elementos de sintaxis codificados por entropía. La corriente de bits puede incluir una secuencia de bits que forma una representación de imágenes codificadas y datos asociados. La corriente de bits puede comprender una secuencia de unidades de capa de abstracción de red (NAL). Cada una de las unidades NAL incluye una cabecera de unidad NAL y encapsula una carga útil de secuencia de bytes sin procesar (RBSP). La cabecera de unidad NAL puede incluir un elemento de sintaxis que indica un código tipo unidad NAL. El código tipo unidad NAL especificado por la cabecera de unidad NAL de una unidad NAL indica el tipo de la unidad NAL. Una RBSP puede ser una estructura de sintaxis que contiene un número entero de bytes que son encapsulados dentro de una unidad NAL. En algunos casos, una RBSP incluye cero bits.
Diferentes tipos de unidades NAL pueden encapsular diferentes tipos de RBSPs. Por ejemplo, un primer tipo de unidad NAL puede encapsular una RBSP para un conjunto de parámetros de imagen (PPS), un segundo tipo de unidad NAL puede encapsular una RBSP para una porción codificada, un tercer tipo de unidad NAL puede encapsular una RBSP para SEI, y así sucesivamente. Las unidades NAL que encapsulan las RBSPs para datos de codificación de video (en oposición a las RBSPs para conjuntos de parámetros y mensajes SEI) se pueden referir como unidades NAL de capa de codificación de video (VCL).
El decodificador de video 30 puede recibir una corriente de bits generada por el codificador de video 20. Además, el decodificador de video 30 puede analizar sintácticamente la corriente de bits para decodificar elementos de sintaxis de la corriente de bits. El decodificador de video 30 puede reconstruir las imágenes de los datos de video con base al menos en parte en los elementos de sintaxis decodificados de la corriente de bits. El proceso para reconstruir los datos de video generalmente puede ser recíproco al proceso ejecutado por el codificador de video 20. Por ejemplo, el decodificador de video 30 puede utilizar vectores de movimiento de las PUs para determinar bloques predictivos para las PUs de una CU actual. Además, el decodificador de video 30 puede cuantificar a la inversa bloques de coeficientes de transformada asociados con las TUs de la CU actual. El decodificador de video 30 puede ejecutar transformadas inversas en los bloques de coeficientes de transformada para reconstruir bloques de transformada asociados con las TUs de la CU actual. El decodificador de video 30 puede reconstruir los bloques de codificación de la CU actual agregando las muestras de los bloques predictivos para las PUs de la CU actual a muestras correspondientes de los bloques de transformada de las TUs de la CU actual. Al reconstruir los bloques de codificación para cada CU de una imagen, el decodificador de video 30 puede reconstruir la imagen.
En codificación multi-vista, puede haber múltiples vistas de la misma escena desde diferentes puntos de vista. El término "unidad de acceso" se utiliza para hacer referencia al conjunto de imágenes que corresponde al mismo caso de tiempo. Por lo tanto, los datos de video pueden ser conceptualizados como una serie de unidades de acceso que ocurren con el paso del tiempo. Un "componente de vista" puede ser una representación codificada de una vista en una sola unidad de acceso. En esta divulgación, una "vista" se puede referir a una secuencia de componentes de vista asociados con el mismo identificador de vista.
La codificación multi-vista soporta predicción inter vista. La predicción inter-vista es similar a la inter predicción utilizada en HEVC y puede utilizar los mismos elementos de sintaxis. Sin embargo, cuando un codificador de video ejecuta predicción inter-vista en una unidad de video actual (tal como una PU), el codificador de video 20 puede utilizar, como una imagen de referencia, una imagen que está en la misma unidad de acceso que la unidad de video actual, pero en una vista diferente. En contraste, la inter predicción convencional solamente utiliza imágenes en diferentes unidades de acceso como imágenes de referencia.
En codificación multi-vista, una vista puede ser referida como una "vista base" en caso que un decodificador de video (por ejemplo, decodificador de video 30) pueda decodificar imágenes en la vista sin referencia a imágenes en alguna otra vista. Cuando se codifica una imagen en una de las vistas no-base, un codificador de video (tal como el codificador de video 20 o decodificador de video 30) puede agregar una imagen a una lista de imágenes de referencia en caso que la imagen esté en una vista diferente pero dentro de un mismo caso de tiempo (es decir, unidad de acceso) que la imagen que el codificador de video está codificando actualmente. Al igual que otras imágenes de referencia de ínter-predicción, el codificador de video puede insertar una imagen de referencia de inter-vista de predicción en cualquier posición de una lista de imágenes de referencia.
Los estándares de codificación de video especifican los modelos de almacenamiento en memoria intermedia del video. En H.264/AVC y HEVC, un modelo de almacenamiento en memoria intermedia se refiere como un "decodificador de referencia hipotético" o "HRD." En el bosquejo de trabajo HEVC 8, el HRD se describe en el anexo C.
El HRD describe la manera en que los datos van a ser almacenados en memoria intermedia para decodificación y la manera en que los datos decodificados son almacenados en memoria intermedia para su salida. Por ejemplo, el HRD describe la operación de una CPB, una memoria intermedia de imágenes decodificadas ("DPB"), y un proceso de decodificación de video. La CPB es una memoria intermedia primero en entrar primero en salir que contiene unidades de acceso en el orden de decodificación especificado por el HRD. La DPB es una memoria intermedia que mantiene imágenes decodificadas para referencia, reordenamiento de salida o retraso de salida especificado por el HRD. Los comportamientos de la CPB y DPB pueden ser matemáticamente especificados. El HRD directamente puede imponer restricciones en la temporización, tamaños de memoria intermedia y tasas de transferencia de bits. Además, el HRD indirectamente puede imponer restricciones en varias.
En H.264/AVC y HEVC, la adaptación de la corriente de bits y la adaptación del decodificador son especificadas como parte de la especificación HRD. En otras palabras, el modelo HRD especifica pruebas para determinar si una corriente de bits se adecúa a un estándar y pruebas para determinar si un decodificador se adecúa al estándar. Aunque el HRD es nombrado como cierto tipo de decodificador, los codificadores de video típicamente utilizan el HRD para garantizar la adaptación de la corriente de bits, mientras que los decodificadores de video típicamente no necesitan el HRD.
H.264/AVC y HEVC especifican dos tipos de corriente de bits o adecuación del HRD, concretamente Tipo I y Tipo II. Un Tipo I de corriente de bits es una corriente de unidad NAL que únicamente contiene las unidades VCL NAL y unidad NAL de datos de rellenador para todas las unidades de acceso en la corriente de bits. Un Tipo II de corriente de bits es una corriente de unidad NAL que contiene, además de las unidades VCL NAL y las unidades NAL de datos rellenadores para todas las unidades de acceso en la corriente de bits, al menos uno de los siguientes: unidades no-VCL NAL adicionales diferentes a las unidades NAL de datos rellenadores; y todos los elementos de sintaxis delantero_cero_8bits, cero byte, inicio_codificado_prefijo_uno_3bytes, y arrastre_cero_8bits que forman una corriente de bytes de la corriente de la unidad NAL.
Cuando un dispositivo ejecuta una prueba de adecuación de corriente de bits que determina si una corriente de bits se adecúa a un estándar de codificación de video, el dispositivo puede seleccionar un punto de operación de la corriente de bits. El dispositivo entonces puede determinar un conjunto de parámetros HRD aplicable al punto de operación seleccionado. El dispositivo puede utilizar el conjunto de parámetros HRD aplicable al punto de operación seleccionado para configurar el comportamiento del HRD. De manera más particular, el dispositivo puede utilizar el conjunto de parámetros HRD aplicable para configurar los comportamientos de componentes particulares del HRD, tal como un programador de corriente hipotético (HSS), la CPB, un proceso de decodificación, la DPB, y asi sucesivamente. Después, el HSS puede inyectar datos de video codificados de la corriente de bits en la CPB del HRD de acuerdo con un programa particular. Además, el dispositivo puede recurrir a un proceso de decodificación que decodifica los datos de video codificados en la CPB. El proceso de decodificación puede emitir imágenes decodificadas a la DPB. A medida que el dispositivo mueve datos a través del HRD, el dispositivo puede determinar si se sigue satisfaciendo un conjunto particular de restricciones. Por ejemplo, el dispositivo puede determinar si ocurre una condición de flujo excesivo o falta de flujo en la CPB o DPB mientras que el HRD está decodificando la representación del punto de operación del punto de operación seleccionado. El dispositivo puede seleccionar y procesar cada punto de operación de la corriente de bits en esta manera. Si ningún punto de operación de la corriente de bits ocasiona que se infrinjan restricciones, el dispositivo puede determinar que la corriente de bits se ajuste al estándar de codificación de video.
Tanto H.264/AVC como HEVC especifican dos tipos de adaptación de decodificador, concretamente adaptación de decodificador de temporización de salida y adaptación de decodificador de orden de salida. Un decodificador que reclama adaptación a un perfil, fila y nivel específicos, puede decodificar con éxito todas las corrientes de bits que se adaptan a los requerimientos de adaptación de la corriente de bits de un estándar de codificación de video, tal como HEVC. En esta divulgación, un "perfil" se puede referir a un subconjunto de la sintaxis de la corriente de bits. "Filas" y "niveles" se pueden especificar dentro de cada perfil. Un nivel de una fila puede ser un conjunto especificado de restricciones impuestas en valores de los elementos de sintaxis en la corriente de bits. Estas restricciones pueden ser limites simples en los valores. De manera alternativa, las restricciones pueden asumir la forma de restricciones en combinaciones aritméticas de valores (por ejemplo, ancho de imagen multiplicado por altura de imagen multiplicado por número de imágenes decodificadas por segundo). Típicamente, un nivel especificado para una fila inferior está más restringido que un nivel especificad para una fila superior.
Cuando un dispositivo ejecuta una prueba de adaptación de decodificador para determinar si un decodificador bajo prueba (DUT) se adapta a un estándar de codificación de video, el dispositivo puede proporcionar, tanto al HRD como al DUT, una corriente de bits que se adapta al estándar de codificación de video. El HRD puede procesar la corriente de bits en la manera descrita antes con respecto a la prueba de adaptación de corriente de bits. El dispositivo puede determinar que el DUT se adapta al estándar de codificación de video si el orden de las imágenes decodificadas emitidas por el DUT coincide con el orden de imágenes decodificadas emitidas por el HRD. Además, el dispositivo puede determinar que el DUT se adapta al estándar de codificación de video si la temporización con la cual el DUT emite imágenes decodificadas coincide con la temporización con la cual el HRD emite las imágenes decodificadas.
En los modelos H.264/AVC y HEVC HRD, la decodificación o remoción de CPB puede estar basada en la unidad de acceso. Es decir, se asume que el HRD decodifica unidades de acceso completas en una sola vez y remueve unidades de acceso completas de la CPB. Además, en los modelos H.264/AVC y HEVC HRD, se asume que la decodificación de imágenes es instantánea. El codificador de video 20 puede señalizar, en mensajes SEI de temporización de imágenes, tiempos de decodificación para iniciar la decodificación de las unidades de acceso. En aplicaciones prácticas, si un decodificador de video de conformación sigue estrictamente los tiempos de decodificación señalizados para iniciar la decodificación de unidades de acceso, el tiempo posible más anticipado para emitir una imagen decodificada particular es igual al tiempo de decodificación de esa imagen particular más el tiempo necesario para decodificar esa imagen particular. Sin embargo, en el mundo real, el tiempo necesario para la decodificación de una imagen no puede ser igual a cero.
Parámetros HRD pueden controlar varios aspectos del HRD. En otras palabras, el HRD se puede basar en los parámetros HRD. Los parámetros HRD pueden incluir un retraso de remoción CPB inicial, un tamaño de CPB, una tasa de transferencia de bits, un retraso de salida DPB inicial, y un tamaño de DPB. El codificador de video 20 puede señalizar estos parámetros HRD en una estructura de sintaxis hrd_parámetros( ) especificada en un conjunto de parámetros de video (VPS) y/o un conjunto de parámetros de secuencia (SPS). VPSs y/o SPSs individuales pueden incluir múltiples estructuras de sintaxis hrd_parámetros( ) para diferentes conjuntos de parámetros HRD. En algunos ejemplos, el codificador de video 20 puede señalizar parámetros HRD en mensajes SEI de periodo de almacenamiento en memoria intermedia o mensajes SEI de temporización de imágenes.
Tal como se explicó antes, un punto de operación de una corriente de bits está asociada con un conjunto de identificadores de capa (es decir, un conjunto de valores nuh_reservado_cero_6bits) y un identificador temporal. Una representación del punto de operación puede incluir cada unidad NAL que está asociada con el punto de operación. Una representación del punto de operación puede tener una velocidad de cuadro y/o tasa de transferencia de bits diferente que una corriente de bits original. Esto se debe a que la representación del punto de operación puede no incluir algunas imágenes y/o algunos de los datos de la corriente de bits original. Por lo tanto, si el decodificador de video 30 fuese a remover datos de la CPB y/o la DPB a una velocidad particular cuando se procesa la corriente de bits original y si el decodificador de video 30 fuese a remover datos de la CPB y/o la DPB a la misma velocidad cuando se procesa una representación del punto de operación, el decodificador de video 30 puede remover demasiados o muy pocos datos de la CPB y/o la DPB. Por consiguiente, el codificador de video 20 puede señalizar diferentes conjuntos de parámetros HRD para diferentes puntos de operación. Por ejemplo, el codificador de video 20 puede incluir, en un VPS, múltiples estructuras de sintaxis hrd_parámetros( ) que incluyen parámetros HRD para diferentes puntos de operación.
En el bosquejo de trabajo HEVC 8, el conjunto de parámetros HRD opcionalmente incluye un conjunto de información que es común para todas las sub-capas temporales. En otras palabras, el conjunto de parámetros HRD opcionalmente puede incluir un conjunto de elementos de sintaxis comunes que son aplicables a puntos de operación que incluyen cualesquiera sub-capas temporales. Una sub-capa temporal puede ser una capa escalable temporal de una corriente de bits escalable temporal que consiste de unidades VCL NAL con un valor particular de Temporalld y las unidades no-VCL NAL asociadas. Además del conjunto de información común, los conjuntos de parámetros HRD pueden incluir un conjunto de elementos de sintaxis que son específicos para sub-capas temporales individuales. Por ejemplo, la estructura de sintaxis hrd_parámetros( ) opcionalmente puede incluir un conjunto de información que es común para todas las sub-capas y siempre incluye información especifica de la sub-capa. Debido a que el conjunto de información común es común para múltiples conjuntos de parámetros HRD, puede ser innecesario señalizar el conjunto de información común en múltiples conjuntos de parámetros HRD. Más bien, en el Bosquejo de Trabajo HEVC 8, la información común puede estar presente en un conjunto de parámetros HRD cuando el conjunto de parámetros HRD es el primer conjunto de parámetros HRD en un VPS o la información común puede estar presente en un conjunto de parámetros HRD cuando el conjunto de parámetros HRD está asociado con un primer índice de punto de operación. Por ejemplo, el Bosquejo de Trabajo HEVC 8 soporta la presencia de información común cuando cualquiera de la estructura de sintaxis hrd_parámetros ( ) es la primera estructura de sintaxis hrd_parámetros( ) en el VPS o cuando la estructura de sintaxis hrd_parámetros( ) está asociada con un primer índice de punto de operación.
A continuación la Tabla 1 es un ejemplo de estructura de sintaxis para una estructura de sintaxis hrd_parámetros( ) en HEVC.
TABLA 1 parámetros HRD En el ejemplo de la tabla 1, anterior, y otras tablas de sintaxis de esta divulgación, elementos de sintaxis con descriptor de tipo ue(v) pueden ser enteros sin signo de longitud variable codificados utilizando codificación Golomb exponencial de 0avo orden (Exp-Golomb) con bit izquierdo primero. En el ejemplo de la tabla 1 y las siguientes tablas, elementos de sintaxis que tienen descriptores de la forma u(n), donde n es un entero no negativo, son valores no firmados de longitud n.
En la sintaxis ejemplar de la Tabla 1, los elementos de sintaxis en el bloque "si ( comúnEnPresentelndicador ) { ... }" son la información común de la estructura de sintaxis del parámetro HRD. En otras palabras, la información común del conjunto de parámetros HRD puede incluir los elementos de sintaxis temporización_info_presente_indicador, num_unidades_en_tic, tiempo_escala, nal_hrd_parámetros_presente_indicador, vcl_hrd_parámetros_presente_indicador, sub_imagen_cpb_parámetros_presente_indicador, tic_di isor_menos2, du_cpb_remoción_retraso_longitud_menosl, bit_tasa_de_transferencia_escala, cpb_tamaño__escala, inicial_cpb_remoción_retraso_longitud_menosl, cpb_remoción_retraso_longitud_menosl, y dpb_salida_retraso_longitud_menosl.
Además, en el ejemplo de la Tabla 1, los elementos de sintaxis fijo_imagen_velocidad_indicador[i], imagen_duración_en_tc_menosl[i], bajo_retraso_hrd_indicador[i], y cpb_ent_menosl[i] puede ser un conjunto de parámetros HRD específicos de la sub-capa. En otros palabras, estos elementos de sintaxis de la estructura de sintaxis hrd_parámetro() solamente se pueden aplicar a puntos de operación que incluyen una sub-capa específica. Por lo tanto, los parámetros HRD de una estructura de sintaxis hrd_parámetros () pueden incluir, además de la información común opcionalmente incluida, un conjunto de parámetros HRD específicos de la sub-capa que es específico para una sub-capa particular de la corriente de bits.
El elemento de sintaxis fijo_imagen_velocidad_indicador[i] puede indicar que, cuando MásElevadoTid es igual a i, la distancia temporal entre los tiempos de salida HRD de cualesquiera dos imágenes consecutivas en el orden de salida está restringido a una forma específica. MásElevadoTid puede ser una variable que identifique una sub-capa temporal más elevada (por ejemplo, de un punto de operación). El elemento de sintaxis imagen_duración_en_tc_menosl[i] puede especificar, cuando MásElevadoTid es igual a i, la distancia temporal, en tics de reloj, entre los tiempos de salida HRD de cualesquiera imágenes consecutivas en el orden de salida en la secuencia de video codificada. El elemento de sintaxis bajo_retraso_hrd_indicador[i] puede especificar el modo de operación HRD, cuando MásElevadoTid es igual a i, tal como se especifica en el Anexo C del Bosquejo de Trabajo HEVC 8. El elemento de sintaxis cpb_ent_menosl[i] puede especificar el número de especificaciones CPB alternativas en la corriente de bits de la secuencia de video codificada cuando MásElevadoTid es igual a i, en donde una especificación CPB alternativa se refiere a una operación CPB particular con un conjunto particular de parámetros CPB.
El codificador de video 20 puede utilizar mensajes SEI para incluir, en la corriente de bits, metadatos que no son requeridos para la decodificación correcta de los valores muestra de imágenes. Sin embargo, el decodificador de video 30 u otros dispositivos pueden utilizar los metadatos incluidos en mensajes SEI para otros propósitos diversos. Por ejemplo, el decodificador de video 30 u otro dispositivo pueden utilizar los metadatos en mensajes SEI para temporización de salida de imagen, despliegue de imagen, detección de pérdida, y ocultamiento de error.
El codificador de video 20 puede incluir una o más unidades SEI NAL en una unidad de acceso. En otras palabras, cualquier número de unidades SEI NAL se puede asociar con una unidad de acceso. Además, cada unidad SEI NAL puede contener uno o más mensajes SEI. El estándar HEVC describe la sintaxis y semántica para varios tipos de mensajes SEI. Sin embargo, el estándar HEVC no describe el manejo de los mensajes SEI debido a que los mensajes SEI no afectan el proceso de decodificación normativo. Un motivo para tener mensajes SEI en el estándar HEVC es para permitir que datos complementarios sean interpretados de manera idéntica en diferentes sistemas utilizando HEVC. Especificaciones y sistemas que utilizan HEVC pueden requerir codificadores de video para generar ciertos mensajes SEI o pueden definir manejo especifico de tipos particular de mensajes SEI recibidos. La Tabla 2, a continuación, enlista mensajes SEI especificados en HEVC y brevemente describe sus propósitos.
TABLA.2 Perspectivas de mensajes SEI Indica que algunas imágenes consecutivas Segmento de representan un refinamiento progresivo de refinamiento Características Permite a los decodificadores para Preferencia de Recomienda si las imágenes desplegadas despliegue de debieran o no experimentar el proceso de filtro de desbloqueo en bucle Proporciona coeficientes de post-filtro Indicio de sugeridos o información de correlación Post-filtro para diseño de post-filtro Información de Remapeo a otro espacio de color que aquél mapeo de tono utilizado o asumido en la codifica Arreglo de Empaque de video estereoscópico corriente de bits HEVC Especifica la inversión y/o rotación que se debiera aplicar a las imágenes de La solicitud de patente provisional de los Estados Unidos 61/705,102, presentada el 24 de septiembre de 2012, describe varios métodos para señalización y selección de parámetros HRD, incluyendo señalización y selección de información de retraso y temporización en mensajes SEI. Hannuksela et al., "AHG9: Puntos de operación en VPS y SEI de anidado," Equipo Colaborativo Conjunto en Codificación de Video (JCT-VC) de ITU-T SG 16 WP 3 e ISO/IEC JTC 1/SC 29/WG11, llava Reunión, Shanghai, CN, 10-19 Oct. 2012, documento no. JCTVC-K0180vl, el cual, a partir del 13 de junio de 2013, está disponible de http://phenix.int- evry.fr/jet/doc_end_user/documents/ll_Shanghai/wgll/JCTVC- K0180-vl.zip, proporciona otro método para señalización de parámetros HRD asi como un mecanismo para anidado de mensajes SEI.
Hay varios problemas o inconvenientes con téenicas existentes para señalización de parámetros HRD. Por ejemplo, las téenicas existentes pueden no permitir que un conjunto de parámetros HRD sea compartido por múltiples puntos de operación. Sin embargo, cuando el número de puntos de operación es alto, esto puede ser una carga en el codificador de video 20 u otra unidad que intenta asegurar la conformación de una corriente de bits para producir diferentes conjuntos de parámetros HRD para cada punto de operación. Más bien, la conformación de la corriente de bits se puede asegurar al garantizar que cada punto de operación esté asociado con un conjunto de parámetros HRD pero que un conjunto particular de parámetros HRD pueda ser compartido por múltiples puntos de operación. Una o más técnicas de esta divulgación pueden proporcionar un diseño para permitir que un conjunto de parámetros HRD sea compartido por múltiples puntos de operación. En otras palabras, un solo conjunto de parámetros HRD se puede aplicar a múltiples puntos de operación. Este diseño puede permitir al codificador de video 20 u otra unidad que intenta asegurar la conformación de una corriente de bits para compensar entre complejidad y desempeño.
En otro ejemplo de los problemas o inconvenientes con técnicas existentes de señalización de parámetros HRD, cuando hay múltiples conjuntos de parámetros HRD en un VPS, puede ser deseable tener múltiples conjuntos diferentes de información común para los conjuntos de parámetros HRD. Esto puede ser especialmente verdadero cuando hay grandes números de estructuras de sintaxis del parámetro HRD en un VPS. Por lo tanto, puede ser deseable tener conjuntos de información común en estructuras de sintaxis del parámetro HRD diferentes a la primera estructura de sintaxis del parámetro HRD. Por ejemplo, para proporcionar un desempeño incrementado cuando hay múltiples estructuras de sintaxis hrd_parámetros( ) en un VPS, particularmente cuando el número total de estructuras de sintaxis hrd_parámetros( ) es relativamente alto, puede ser deseable tener diferente información común para estructuras de sintaxis hrd_parámetros( ) diferente a la información común de la primera estructura de sintaxis hrd_parámetros( ) u otra diferente a la información común del primer indice de punto de operación.
Una o más téenicas de esta divulgación proporcionan un diseño para permitir que la información común de conjuntos de parámetros HRD sea explícitamente señalizada para cualquier conjunto de parámetros HRD. Por ejemplo, las técnicas de esta divulgación pueden permitir que la información que es común para todas las sub-capas sea explícitamente señalizada para cualquier estructura de sintaxis hrd_parámetros( ).
Bajo esta perspectiva, el codificador de video 20 puede señalizar en una corriente de bits, un VPS que incluye una pluralidad de estructuras de sintaxis del parámetro HRD en donde cada una incluye parámetros HRD. Para cada estructura de sintaxis de parámetro HRD respectiva en la pluralidad de estructuras de sintaxis del parámetro HRD, el VPS además incluye un elemento de sintaxis indicando si los parámetros HRD de la estructura de sintaxis de parámetros HRD respectiva incluyen un conjunto común de parámetros HRD además de un conjunto de información de parámetros HRD especifico de la sub-capa especifica para una sub-capa particular de la corriente de bits. El conjunto común de parámetros HRD es común a todas las sub-capas de la corriente de bits.
De manera similar, el decodificador de video 30 u otro dispositivo puede decodificar, a partir de una corriente de bits, un VPS que incluye una pluralidad de estructuras de sintaxis del parámetro HRD donde cada una incluye parámetros HRD. Para cada estructura de sintaxis de parámetros HRD respectiva en la pluralidad de estructuras de sintaxis del parámetro HRD, el VPS además puede incluir un elemento de sintaxis indicando si los parámetros HRD de la estructura de sintaxis de parámetros HRD respectiva incluyen un conjunto común de parámetros HRD. El decodificador de video 30 u otro dispositivo pueden ejecutar una operación utilizando los parámetros HRD de al menos una de las estructuras de sintaxis del parámetro HRD.
Además, métodos existentes para anidar los mensajes SEI pueden tener varios problemas o inconvenientes. Por ejemplo, las téenicas existentes de señalización de parámetros HRD pueden no permitir que un mensaje SEI sea aplicado a múltiples puntos de operación. Las técnicas de esta divulgación pueden proporcionar un diseño para permitir que un mensaje SEI sea aplicado a múltiples puntos de operación.
En particular, un mensaje SEI de anidado escalable puede incluir elementos de sintaxis que especifiquen múltiples puntos de operación aplicables a mensajes SEI anidados dentro del mensaje SEI de anidado escalable. En otras palabras, mensajes SEI de anidado escalable pueden proporcionar un mecanismo para asociar mensajes SEI con un subconjunto de corriente de bits (por ejemplo, una representación del punto de operación) o con capas y sub-capas especificas.
De esta forma, el codificador de video 20 puede generar un mensaje SEI de anidado escalable que incluye una pluralidad de elementos de sintaxis que identifican una pluralidad de puntos de operación a los cuales aplica un mensaje SEI anidado encapsulado por el mensaje SEI de anidado escalable. Además, el codificador de video 20 puede señalizar el mensaje SEI de anidado escalable en una corriente de bits.
De esta forma, el decodificador de video 30 u otro dispositivo puede, en un proceso de codificación de video, decodificar, a partir de un mensaje SEI de anidado escaladle, una pluralidad de elementos de sintaxis que identifican puntos de operación a los cuales aplica un mensaje SEI anidado encapsulado por el mensaje SEI de anidado escalable. Además, el decodificador de video 30 u otro dispositivo pueden ejecutar una operación con base al menos en parte en uno o más de los elementos de sintaxis del mensaje SEI anidado.
Otro ejemplo de los problemas o inconvenientes con téenicas existentes de mensajes SEI de anidado se refiere al hecho de que las técnicas existentes de mensajes SEI de anidado no utilizan el valor de un elemento de sintaxis de identificador de capa (por ejemplo, nuh_reservado_cero_6bits) en una unidad SEI NAL actual para determinar un punto de operación aplicable a mensajes SEI anidados escaladles encapsulados por la unidad SEI NAL actual.
Las técnicas de esta divulgación proporcionan un diseño que señaliza si un punto de operación aplicable a mensajes SEI anidados en una unidad SEI NAL es el punto de operación indicado por la información de identificación de capa en la cabecera de unidad NAL de la unidad SEI NAL. La información de identificación de capa en la cabecera de unidad NAL de una unidad SEI NAL puede incluir el valor de nuh_reservado_cero_6bits y el valor de nuh_temporal_id_másl de la cabecera de unidad NAL. En otras palabras, las téenicas de esta divulgación pueden proporcionar un diseño para el uso de información de identificación de capa (por ejemplo, el valor de nuh_reservado_cero_6bits y nuh_temporal_id másl) en la cabecera de unidad NAL de una unidad SEI NAL actual (es decir, la unidad SEI NAL que contiene el mensaje SEI de anidado escalable), a través de la señalización respecto a si los mensajes SEI anidados aplican a un punto de operación por omisión identificado por la información de identificación de capa incluida en la cabecera de unidad NAL de la unidad SEI NAL actual.
De esta forma, el codificador de video 20 puede incluir, en un mensaje SEI de anidado escalable encapsulado por una unidad SEI NAL, un elemento de sintaxis que indica si un mensaje SEI anidado encapsulado por el mensaje SEI de anidado escalable es aplicable a una sub-corriente de bits por omisión. La sub-corriente de bits por omisión puede ser una representación del punto de operación de un punto de operación definido por un identificador de capa especificado en una cabecera de unidad NAL de la unidad SEI NAL y un identificador temporal especificado en la cabecera de unidad NAL. Además, el codificador de video 20 puede emitir una corriente de bits que incluye el mensaje SEI de anidado escalable.
De manera similar, un dispositivo, tal como un decodificador de video 30 u otro dispositivo, puede determinar, con base al menos en parte en un elemento de sintaxis en un mensaje SEI de anidado escalable encapsulado por una unidad SEI NAL, si un mensaje SEI anidado encapsulado por el mensaje SEI de anidado escalable es aplicable a una sub-corriente de bits por omisión. Tal como antes, la subcorriente de bits por omisión puede ser una representación del punto de operación de un punto de operación definido por un identificador de capa especificado en una cabecera de unidad NAL de la unidad SEI NAL y un identificador temporal especificado en la cabecera de unidad NAL. Cuando el mensaje SEI anidado es aplicable a la sub-corriente de bits por omisión, el dispositivo puede utilizar el mensaje SEI anidado en una operación en la sub-corriente de bits por omisión. Por ejemplo, el mensaje SEI anidado puede incluir uno o más parámetros HRD. En este ejemplo, el dispositivo puede utilizar uno o más parámetros HRD para ejecutar una prueba de adaptación de corriente de bits que determine si la sub-corriente de bits por omisión se adapta a un estándar de codificación de video, tal como HEVC. Alternativamente, en este ejemplo, el dispositivo puede utilizar uno o más parámetros HRD para determinar si el decodificador de video 30 satisface una prueba de adaptación de decodificador.
En otro ejemplo de los problemas o inconvenientes de los métodos existentes para anidar mensajes SEI, la codificación explícita de identificadores de capa resulta ineficiente. Las téenicas de esta divulgación pueden incrementar la eficiencia de la codificación explícita de identificadores de capa a través de la codificación diferencial o codificación utilizando indicadores.
La figura 2 es un diagrama en bloques que ilustra un ejemplo del codificador de video 20 que puede implementar las técnicas de esta divulgación. La figura 2 es proporcionada para propósitos de explicación y no se debiera considerar una limitación de las técnicas tan ampliamente ejemplificadas y descritas en esta divulgación. Para propósitos de explicación, esta divulgación describe el codificador de video 20 en el contexto de codificación HEVC. Sin embargo, las técnicas de esta divulgación se pueden aplicar a otros estándares o métodos de codificación.
En el ejemplo de la figura 2, el codificador de video 20 incluye una unidad de procesamiento de predicción 100, una unidad de procesamiento de predicción 102, una unidad de procesamiento de transformada 104, una unidad de cuantificación 106, una unidad de cuantificación inversa 108, una unidad de procesamiento de transformada inversa 110, una unidad de reconstrucción 112, una unidad de filtro 114, una memoria intermedia de imágenes decodificadas 116, y una unidad de codificación por entropía 118. La unidad de procesamiento de predicción 100 incluye una unidad de procesamiento de inter-predicción 120 y una unidad de procesamiento de intra-predicción 126. La unidad de procesamiento de inter-predicción 120 incluye una unidad de cálculo de movimiento 122 y una unidad de compensación de movimiento 124. En otros ejemplos, el codificador de video 20 puede incluir una cantidad mayor, menor o diferente de componentes funcionales.
El codificador de video 20 puede recibir datos de video. El codificador de video 20 puede codificar cada CTU en una porción de una imagen de los datos de video. Cada una de las CTUs puede estar asociada con blogues de árbol de codificación (CTBs) de luminancia de igual tamaño y CTBs correspondientes de la imagen. Como parte de la codificación de una CTU, la unidad de procesamiento de predicción 100 puede ejecutar división de árbol cuaternario para dividir las CTBs de la CTU en bloques progresivamente más pequeños. Los bloques más pequeños pueden ser bloques de codificación de las CUs. Por ejemplo, la unidad de procesamiento de predicción 100 puede dividir una CTB asociada con una CTU en cuatro sub-bloques de igual tamaño, la división de uno o más de los sub-bloques en cuatro sub-sub-bloques de igual tamaño, y así sucesivamente.
El codificador de video 20 puede codificar CUs de una CTU para generar representaciones codificadas de las CUs (es decir, CUs codificadas). Como parte de la codificación de una CU, la unidad de procesamiento de predicción 100 puede dividir los bloques de codificación asociados con la CU entre una o más PUs de la CU. Por lo tanto, cada PU puede ser asociada con un bloque de predicción de luminancia y bloques de predicción de crominancia correspondientes. El codificador de video 20 y el decodificador de video 30 pueden soportar PUs que tienen varios tamaños. Como se indicó antes, el tamaño de una CU se puede referir al tamaño del bloque de codificación de luminancia de la CU y el tamaño de una PU se puede referir al tamaño de un bloque de predicción de luminancia de la PU. Asumiendo que el tamaño de una CU particular es 2Nx2N, el codificador de video 20 y el decodificador de video 30 pueden soportar tamaños de PU de 2Nx2N o NxN para intra-predicción, y tamaños de PU simétricos de 2Nx2N, 2NxN, Nx2N, NxN, o similar para inter-predicción. El codificador de video 20 y el decodificador de video 30 también pueden soportar división asimétrica para tamaños de PU de 2NxnU, 2NxnD, nLx2N, y nRx2N para inter-predicción. en RefImagenListaO de la imagen de referencia que contiene la región de referencia para la PU. Además, la unidad de cálculo de movimiento 122 puede generar un vector de movimiento que indica un desplazamiento espacial entre un bloque de codificación de la PU y una ubicación de referencia asociada con la región de referencia. Por ejemplo, el vector de movimiento puede ser un vector bidimensional que proporcione una compensación de las coordenadas en la imagen actual a las coordenadas en una imagen de referencia. La unidad de cálculo de movimiento 122 puede emitir el indice de referencia y el vector de movimiento como la información de movimiento de la PU. La unidad de compensación de movimiento 124 puede generar los bloques predictivos de la PU con base en muestras reales o interpoladas en la ubicación de referencia por el vector de movimiento de la PU.
Si una PU está en una porción B, la unidad de cálculo de movimiento 122 puede ejecutar uni-predicción o bi-predicción para la PU. Para ejecutar uni-predicción para la PU, la unidad de cálculo de movimiento 122 puede buscar las imágenes de referencia de RefImagenListaO o una segunda lista de imágenes de referencia ("RefImagenListal") para una región de referencia para la PU. La unidad de cálculo de movimiento 122 puede emitir, como la información de movimiento de la PU, un indice de referencia que indica una posición en La unidad de procesamiento de inter-predicción 120 puede generar datos predictivos para una PU ejecutando interpredicción en cada PU de una CU. Los datos predictivos para la PU pueden incluir bloques predictivos de la PU e información de movimiento para la PU. La unidad de procesamiento de inter-predicción 120 puede ejecutar diferentes operaciones para una PU de una CU dependiendo si la PU está en una I porción, una P porción, o una B porción. En una I porción, todas las PUs son intra-predichas. Por lo tanto, si la PU está en una I porción, la unidad de procesamiento de inter-predicción 120 no ejecuta inter predicción en la PU. Por lo tanto, para bloques codificados en I-modo, el bloque predictivo es formado utilizando predicción espacial de bloques vecinos previamente codificados dentro del mismo cuadro.
Si una PU está en una porción P, la unidad de cálculo de movimiento 122 puede buscar las imágenes de referencia en una lista de imágenes de referencia (por ejemplo, "RefImagenListaO") para una región de referencia para la PU. La región de referencia para la PU puede ser una región, dentro de una imagen de referencia, que contiene bloques muestra que de manera más estrecha corresponden a los bloques muestra de la PU. La unidad de cálculo de movimiento 122 puede generar un indice de referencia que indica una posición RefImagenListaO o RefImagenListal de la imagen de referencia que contiene la región de referencia, un vector de movimiento que indica un desplazamiento espacial entre un bloque de predicción de la PU y una ubicación de referencia asociada con la región de referencia, y uno o más indicadores de dirección de predicción que indican si la imagen de referencia está en RefImagenListaO o RefImagenListal. La unidad de compensación de movimiento 124 puede generar los bloques predictivos de la PU con base al menos en parte en muestras reales o interpoladas en la región de referencia indicada por el vector de movimiento de la PU.
Para ejecutar inter-predicción bidireccional para una PU, la unidad de cálculo de movimiento 122 puede buscar las imágenes de referencia en RefImagenListaO para una región de referencia para la PU y también puede buscar las imágenes de referencia en RefImagenListal para otra región de referencia para la PU. La unidad de cálculo de movimiento 122 puede generar indices de referencia que indican posiciones en RefImagenListaO y RefImagenListal de las imágenes de referencia que contienen las regiones de referencia. Además, la unidad de cálculo de movimiento 122 puede generar vectores de movimiento que indican desplazamientos espaciales entre las ubicaciones de referencia asociadas con las regiones de referencia y un bloque de predicción de la PU. La información de movimiento de la PU puede incluir los indices de referencia y los vectores de movimiento de la PU. La unidad de compensación de movimiento 124 puede generar los bloques predictivos de la PU con base al menos en parte en muestras reales o interpoladas en la región de referencia indicada por el vector de movimiento de la PU.
La unidad de procesamiento de intra-predicción 126 puede generar datos predictivos para una PU ejecutando intra-predicción en la PU. Los datos predictivos para la PU pueden incluir bloques predictivos para la PU y varios elementos de sintaxis. La unidad de procesamiento de intra-predicción 126 puede ejecutar intra-predicción en PUs en las porciones I, porciones P, y porciones B.
Para ejecutar intra-predicción en una PU, la unidad de procesamiento de intra-predicción 126 puede utilizar múltiples modos de intra-predicción para generar múltiples conjuntos de datos predictivos para la PU. La unidad de procesamiento de intra-predicción 126 puede generar un bloque predictivo para una PU con base en muestras de PUs vecinas. Las PUs vecinas pueden estar encima, encima y a la derecha, encima y a la izquierda, o a la izquierda de la PU, asumiendo un orden de codificación de izquierda-a-derecha, superior-a-inferior para las PUs, CUs, y CTUs. La unidad de procesamiento de intra-predicción 126 puede utilizar varios números de modos de intra-predicción, por ejemplo, 33 modos de intra-predicción direccional. En algunos ejemplos, el número de modos de intra-predicción puede depender del tamaño de los bloques de predicción de la PU.
La unidad de procesamiento de predicción 100 puede seleccionar los datos predictivos para PUs de una CU de entre los datos predictivos generados por la unidad de procesamiento de inter-predicción 120 para las PUs o los datos predictivos generados por la unidad de procesamiento de intra-predicción 126 para las PUs. En algunos ejemplos, la unidad de procesamiento de predicción 100 selecciona los datos predictivos para las PUs de la CU con base en las métricas de velocidad/distorsión de los conjuntos de datos predictivos. Los bloques predictivos de los datos predictivos seleccionados se pueden referir aquí como los bloques predictivos seleccionados.
La unidad de generación residual 102 puede generar, con base en el bloque de codificación de luminancia, Cb y Cr de una CU y los bloques de luminancia, Cb y Cr predictivos seleccionados de las PUs de la CU, bloques de luminancia, Cb y Cr residuales de la CU. Por ejemplo, la unidad de generación residual 102 puede generar los bloques residuales de la CU de manera que cada muestra en los bloques residuales tiene un valor igual a una diferencia entre una muestra en un bloque de codificación de la CU y una muestra correspondiente en un bloque predictivo seleccionado correspondiente de una PU de la CU.
La unidad de procesamiento de transformada 104 puede ejecutar división de árbol cuaternario para dividir los bloques residuales de una CU en bloques de transformada asociados con las TUs de la CU. Por lo tanto, una TU puede ser asociada con un bloque de transformada de luminancia y dos bloques de transformada de crominancia correspondientes. Los tamaños y posiciones de los bloques de transformada de luminancia y crominancia de las TUs de una CU pueden o no estar basados en los tamaños y posiciones de bloques de predicción de las PUs de la CU. Una estructura de árbol cuaternario conocida como un "árbol cuaternario residual" (RQT) puede incluir nodos asociados con cada una de las regiones. Las TUs de una CU pueden corresponder a nodos hoja del RQT.
La unidad de procesamiento de transformada 104 puede generar bloques de coeficientes de transformada para cada TU de una CU aplicando una o más transformadas a los bloques de transformada de la TU. La unidad de procesamiento de transformada 104 puede aplicar varias transformadas a un bloque de transformada asociado con una TU. Por ejemplo, la unidad de procesamiento de transformada 104 puede aplicar una transformada de coseno discreto (DCT), una transformada direccional, o una transformada conceptualmente similar a un bloque de transformada. En algunos ejemplos, la unidad de procesamiento de transformada 104 no aplica transformadas a un bloque de transformada. En dichos ejemplos, el bloque de transformada puede ser tratado como un bloque de coeficiente de transformada.
La unidad de cuantificación 106 puede cuantificar los coeficientes de transformada en un bloque de coeficiente. El proceso de cuantificación puede reducir la profundidad de bit asociada con algunos o todos los coeficientes de transformada. Por ejemplo, un coeficiente de transformada de n-bits puede ser redondeado a un coeficiente de transformada de m-bits durante la cuantificación, donde n es mayor que m. La unidad de cuantificación 106 puede cuantificar un bloque de coeficiente asociado con una TU de una CU con base en un valor de parámetro de cuantificación (QP) asociado con la CU. El codificador de video 20 puede ajustar el grado de cuantificación aplicado a los bloques de coeficientes asociados con una CU ajustando el valor QP asociado con la CU. La cuantificación puede introducir pérdida de información, por lo tanto los coeficientes de transformada cuantificados pueden tener una menor precisión que los originales .
La unidad de cuantificación inversa 108 y la unidad de procesamiento de transformada inversa 110 pueden aplicar cuantificación inversa y transformadas inversas a un bloque de coeficiente, respectivamente, para reconstruir un bloque residual del bloque de coeficiente. La unidad de reconstrucción 112 puede agregar el bloque residual reconstruido a muestras correspondientes de uno o más bloques predictivos generados por la unidad de procesamiento de predicción 100 para producir un bloque de transformada reconstruido asociado con una TU. Al reconstruir los bloques de transformada para cada TU de una CU en esta forma, el codificador de video 20 puede reconstruir los bloques de codificación de la CU.
La unidad de filtro 114 puede ejecutar una o más operaciones de desbloqueo para reducir los artefactos de bloqueo en los bloques de codificación asociados con una CU. Memoria intermedia de imágenes decodificadas 116 puede almacenar los bloques de codificación reconstruidos después que la unidad de filtro 114 ejecuta una o más operaciones de desbloqueo en los bloques de codificación reconstruidos. La unidad de procesamiento de inter-predicción 120 puede utilizar una imagen de referencia que contiene los bloques de codificación reconstruidos para ejecutar inter-predicción en PUs de otras imágenes. Además, la unidad de procesamiento de intra-predicción 126 puede utilizar bloques de codificación reconstruidos en memoria intermedia de imágenes decodificadas 116 para ejecutar intra-predicción en otras PUs en la misma imagen que la CU.
La unidad de codificación por entropía 118 puede recibir datos desde otros componentes funcionales del codificador de video 20. Por ejemplo, la unidad de codificación por entropía 118 puede recibir bloques de coeficientes desde la unidad de cuantificación 106 y puede recibir elementos de sintaxis desde la unidad de procesamiento de predicción 100. La unidad de codificación por entropía 118 puede ejecutar una o más operaciones de codificación por entropía en los datos para generar datos codificados por entropía. Por ejemplo, la unidad de codificación por entropía 118 puede ejecutar una operación de codificación de longitud variable adaptable al contexto (CAVLC), una operación CABAC, una operación de codificación de longitud variable-a-variable (V2V), una operación aritmética binaria de contexto adaptable basada en sintaxis (SBAC), una operación de codificación de Entropía de División de Intervalo de Probabilidad (PIPE), una operación de codificación Golomb Exponencial, u otro tipo de operación de codificación por entropía en los datos. El codificador de video 20 puede emitir una corriente de bits que incluye datos codificados por entropía generados por la unidad de codificación por entropía 118. Por ejemplo, la corriente de bits puede incluir datos que representan una RQT para una CU.
Tal como se indicó antes, las téenicas de esta divulgación pueden proporcionar un diseño para permitir que la información común de estructuras de sintaxis del parámetro HRD sea explícitamente señalizada para cualquier estructura de sintaxis del parámetro HRD en un VPS. Para permitir que la información común de estructuras de sintaxis del parámetro HRD sea explícitamente señalizada para cualquier parámetro HRD en un VPS, el codificador de video 20 puede generar estructuras de sintaxis VPS que se ajustan a la sintaxis ejemplar mostrada en la tabla 3, a continuación.
TABLA 3 Estructura de sintaxis de VPS Las partes en itálicas de la Tabla 3 indican diferencias entre la sintaxis de la Tabla 3 y la tabla correspondiente del Bosquejo de Trabajo HEVC 8. Además, en el ejemplo de sintaxis de la Tabla 3, el elemento de sintaxis num_ops_menosl especifica el número de estructuras de sintaxis operación_punto( ) presentes en el VPS. El elemento de sintaxis hrd aplicable ops menosl[i] especifica el número de puntos de operación a los cuales aplica la estructura de sintaxis i-avo hrd_parámetros( ). El elemento de sintaxis hrd_op_idx[i][j] especifica el j-avo punto de operación al cual aplica la estructura de sintaxis i-avo hrd_parámetros( ) en el VPS. Tal como se mencionó brevemente antes, las téenicas de esta divulgación pueden permitir que un conjunto de parámetros HRD sea compartido por múltiples puntos de operación. Los elementos de sintaxis hrd_aplicable_ops_menosl[i] y hrd_op_idx[i][j] pueden servir para indicar puntos de operación a los cuales aplica un conjunto de parámetros HRD. En algunos ejemplos donde múltiples puntos de operación no pueden ser aplicables a un solo conjunto de parámetros HRD, los elementos de sintaxis hrd_aplicable_ops_menosl[i] y los elementos de sintaxis hrd_op_idx[i][j] se omiten de la Tabla 3.
En el ejemplo de la sintaxis de la Tabla 3, un VPS puede incluir un conjunto indicadores presentes de parámetros comunes (es decir, elementos de sintaxis), denotados en la Tabla 3 como cprms_presente_indicador[i]. Un elemento de sintaxis cprms_presente__indicador[i] igual a 1 especifica que los parámetros HRD que son comunes para todas las sub-capas están presentes en la estructura de sintaxis i-avo hrd_parámetros ( ) en el VPS. Un elemento de sintaxis cprms_presente_indicador[i] igual a 0 especifica que los parámetros HRD que son comunes para todas las sub-capas no están presentes en la estructura de sintaxis i-avo hrd_parámetros( ) en el VPS y en su lugar son derivados para ser los mismos que la estructura de sintaxis (i-l)-avo hrd_parámetros( ) en el VPS. cprms_presente_indicador[0] puede ser inferido para ser igual a l. Es decir, un dispositivo automáticamente puede determinar (es decir, inferir) que la primera (en orden de codificación) estructura de sintaxis hrd_parámetros( ) en el VPS incluye parámetros HRD que son comunes para todas las sub-capas. En consecuencia, la primera estructura de sintaxis del parámetro HRD señalizado en el VPS incluye un conjunto común de parámetros HRD. Una o más estructuras de sintaxis posteriores del parámetro HRD en el VPS pueden incluir diferentes conjuntos comunes de parámetros HRD.
Tal como se mencionó brevemente antes, las téenicas de esta divulgación pueden permitir que la información común (es decir, parámetros HRD comunes a cada una de las sub-capas) de estructuras de sintaxis del parámetro HRD sea explícitamente señalizada para cualquier estructura de sintaxis del parámetro HRD. El elemento de sintaxis cprms_presente_indicador[i] de la Tabla 3 puede permitir que el decodificador de video 30 u otro dispositivo determinen cuáles de las estructuras de sintaxis del parámetro HRD incluyen un conjunto de parámetros HRD comunes a cada una de las sub-capas. Por lo tanto, mientras que la primera estructura de sintaxis del parámetro HRD siempre puede incluir el conjunto común de parámetros HRD, una o más estructuras de sintaxis del parámetro HRD señalizadas en el VPS no incluyen el conjunto común de parámetros HRD. Un dispositivo puede utilizar los elementos de sintaxis cprms_presente_indicador[i] para determinar cuáles de las estructuras de sintaxis del parámetro HRD del VPS incluyen conjuntos comunes de parámetros HRD.
Una estructura de sintaxis del parámetro HRD (por ejemplo, una estructura de sintaxis hrd_parámetros( )) puede incluir el conjunto de parámetros HRD específicos de la sub capa sin considerar si la estructura de sintaxis del parámetro HRD incluye parámetros HRD que son comunes para todas las sub-capas. Cuando el decodificador de video 30 u otro dispositivo determina que una estructura particular de sintaxis del parámetro HRD no incluye el conjunto común de parámetros HRD, el decodificador de video 30 o el otro dispositivo pueden ejecutar una operación utilizando un conjunto común de parámetros HRD asociados con una estructura de sintaxis previa del parámetro HRD y el conjunto de parámetros HRD específicos de la sub-capa de la estructura de sintaxis particular del parámetro HRD. La estructura de sintaxis previa del parámetro HRD puede ser un conjunto de parámetros HRD señalizado en el VPS antes, en orden de codificación, que la estructura de sintaxis particular del parámetro HRD. Si la estructura de sintaxis previa del parámetro HRD incluye un conjunto común de parámetros HRD, el conjunto común de parámetros HRD asociado con la estructura de sintaxis previa del parámetro HRD es el conjunto común de parámetros HRD incluido en la estructura de sintaxis previa del parámetro HRD. Si la estructura de sintaxis previa del parámetro HRD no incluye el conjunto común de parámetros HRD, un dispositivo puede determinar que el conjunto común de parámetros HRD asociado con la estructura de sintaxis previa del parámetro HRD es el conjunto común de parámetros HRD asociado con una estructura de sintaxis del parámetro HRD previo a, en orden de codificación, la estructura de sintaxis previa del parámetro HRD en orden de codificación.
Tal como se mencionó antes, un dispositivo puede ejecutar una operación utilizando un conjunto común de parámetros HRD y parámetros HRD específicos de la sub-capa. Durante esta operación, el dispositivo pyede administrar la operación de una CPB de acuerdo con uno o más de los parámetros HRD, puede decodificar los datos de video, y puede administrar imágenes decodificadas en DPB de acuerdo con uno o más de los parámetros HRD. En otro ejemplo, el conjunto común de parámetros HRD y parámetros HRD específicos de la sub-capa pueden ser utilizados para ejecutar una prueba de adaptación de corriente de bits o una prueba de adaptación de decodificador.
Además, en algunos ejemplos, un mensaje SEI de anidado escalable proporciona un mecanismo para asociar los mensajes SEI con subconjuntos de corriente de bits (por ejemplo, representación de puntos de operación) o con capas y sub capas específicas. En algunos de esos ejemplos, un mensaje SEI de anidado escalable puede contener uno o más mensajes SEI. Un Mensaje SEI contenido en un mensaje SEI de anidado escalable se puede referir como un mensaje SEI anidado. Un mensaje SEI no contenido en un mensaje SEI de anidado escalable se puede referir como un mensaje no-SEI anidado. En algunos ejemplos, un mensaje SEI anidado en un mensaje SEI de anidado escalable puede incluir un conjunto de parámetros HRD.
En algunos ejemplos, hay varias limitaciones respecto a cuáles tipos de mensajes pueden ser anidados. Por ejemplo, un Mensaje SEI de periodo de almacenamiento en memoria intermedia y un mensaje SEI de cualquier otro tipo pueden no ser anidados en el mismo mensaje SEI de anidado escalable. Un mensaje SEI de periodo de almacenamiento en memoria intermedia puede indicar retrasos iniciales para operación HRD. En otro ejemplo, un mensaje SEI de temporización de imagen y un mensaje SEI de cualquier otro tipo pueden no ser anidados en el mismo mensaje SEI de anidado escalable. Un mensaje SEI de temporización de imagen puede indicar un tiempo de salida de imagen y un tiempo de remoción de imagen/sub-imagen para operación HRD. En otros ejemplos, un mensaje SEI de temporización de imagen y un mensaje SEI de temporización de sub-imagen pueden ser anidados en el mismo mensaje SEI de anidado escalable. Un mensaje SEI de temporización de sub-imagen puede proporcionar información de retraso de remoción CPB para la unidad decodificada asociada con el mensaje SEI.
Tal como se indicó antes, una o más téenicas de esta divulgación pueden permitir que un mensaje SEI sea aplicado a múltiples puntos de operación. Además, una o más técnicas de esta divulgación pueden permitir que un codificador de video 20 señalice si un punto de operación aplicable a un mensaje SEI anidado en una unidad SEI NAL es el punto de operación indicado por la información de identificación de capa en la cabecera de unidad NAL de la unidad SEI NAL. Además, una o más técnicas de esta divulgación pueden incrementar la eficiencia de la codificación explícita de identificadores de capa a través de codificación diferencial. El ejemplo de sintaxis que se muestra en la Tabla 4, a continuación, y la semántica acompañante pueden implementar estas téenicas.
TABLA 4 Mensaje SEI de Anidado Escalable En el ejemplo de la Tabla 4, las partes en itálica pueden indicar diferencias del Bosquejo de Trabajo HEVC 8. Específicamente, en el ejemplo de sintaxis de la Tabla 4, un elemento de sintaxis CorrienteBits_SubConjunto_indicador igual a 0 especifica que mensajes SEI anidados en el mensaje SEI de anidado escalable aplican a capas y sub-capas específicas. Un elemento de sintaxis CorrienteBits_SubConjunto_indicador igual a 1 especifica que los mensajes SEI anidados en el mensaje SEI de anidado escalable aplican a una sub-corriente de bits que son el resultado de un proceso de extracción de la sub-corriente de bits de la subcláusula 10.1 del Bosquejo de Trabajo HEVC 8 con entradas especificadas por los elementos de sintaxis del mensaje SEI de anidado escalable como se especifica a continuación. La subcláusula 10.1 del Bosquejo de Trabajo HEVC 8 describe una operación para extraer una sub-corriente de bits (es decir, una representación del punto de operación) de la corriente de bits. Específicamente, la subcláusula 10.1 del Bosquejo de Trabajo HEVC 8 establece que la sub-corriente de bits es derivada removiendo de la corriente de bits todas las unidades NAL con identificadores temporales (por ejemplo, TemporalID) mayores que tldObjetivo o identificadores de capa (por ejemplo, nuh_reservado_cero_6bits) no entre los valores en objetivoDecCapaldConjunto. tldObjetivo Y objetivoDecCapaldConjunto son parámetros del proceso de extracción de la corriente de bits. En algunos ejemplos, si los mensajes SEI anidados son mensajes SEI de almacenamiento en memoria intermedia de imágenes, los mensajes SEI de temporización de imágenes o mensajes SEI de temporización de sub-imágenes, el elemento de sintaxis corriente_de_bits_subconjunto_indicador es igual a l. De otra manera, en dichos ejemplos, el elemento de sintaxis de corriente_de_bits_subconjunto_indicador es igual a 0.
Además, en el ejemplo de sintaxis de la Tabla 4, el mensaje SEI de anidado escaladle incluye un elemento de sintaxis predeterminado_op_aplicable_indicador si el elemento de sintaxis corriente_de_bits_subconjunto_indicador es igual a 1. Un elemento de sintaxis predeterminado_op_aplicable_indicador igual a 1 especifica que los mensajes SEI anidados (es decir, los mensajes SEI anidados dentro del mensaje SEI de anidado escalable) aplican a una sub-corriente de bits por omisión que es el resultado del proceso de extracción de la sub-corriente de bits de la subcláusula 10.1 del Bosquejo de Trabajo HEVC 8 con entradas tldObjetivo igual al identificador temporal (Temporalld) de la unidad SEI NAL actual y objetivoDecCapaldConjunto consistiendo de todos los valores de nuh_reservado_cero_6bits en el rango de 0 a nuh_reservado_cero_6bits de la unidad SEI NAL actual, inclusiva. Por lo tanto, la sub-corriente de bits por omisión puede ser la corriente de bits que es derivada removiendo de la corriente de bits todas las unidades NAL con identificadores temporales mayores que el identificador temporal de la unidad SEI NAL actual o identificadores de capa en el rango de 0 al identificador de capa (por ejemplo, nuh_reservado_cero_6bits) de la unidad SEI NAL actual, inclusivo. Por ejemplo, la sub-corriente de bits por omisión puede ser un subconjunto de una corriente de bits y la sub-corriente de bits por omisión puede no incluir unidades VCL NAL de la corriente de bits que tienen identificadores de capa mayores que el identificador de capa indicado por el elemento de sintaxis de identificador de capa de la cabecera de unidad NAL o puede tener identificadores temporales mayores que el identificador temporal indicado por el elemento de sintaxis de identificador de capa temporal (por ejemplo, nuh_temporal_id_ ásl) de la cabecera de unidad NAL. Un elemento de sintaxis predeterminado_op_aplicable_indicador igual a 0 especifica que los mensajes SEI anidados no aplican a la sub-corriente de bits por omisión.
En el ejemplo de sintaxis de la Tabla 4, el mensaje SEI de anidado escalable incluye un elemento de sintaxis anidado_num_ops_menosl si el elemento de sintaxis corriente de bits subconjunto indicador es igual a 1. El elemento de sintaxis anidado_num_ops_ enosl, más 1, especifica el número de elementos de sintaxis anidado_op_idx[i] en el mensaje SEI de anidado escalable. Por lo tanto, si el elemento de sintaxis anidado_num_ops menosl, más 1, es mayor que 0, el elemento de sintaxis anidado_num_ops_menosl puede indicar si el mensaje SEI de anidado escalable incluye una pluralidad de elementos de sintaxis que identifican múltiples puntos de operación a los cuales son aplicables los mensajes SEI anidados. De esta forma, un dispositivo puede decodificar, a partir del mensaje SEI de anidado escalable, un elemento de sintaxis (anidado__num_ops_menosl) que indica el número de puntos de operación a los cuales aplica el mensaje SEI anidado. Cuando el elemento de sintaxis anidado_num_ops_menosl no está presente, el valor de anidado_num_ops_menosl puede ser inferido para ser igual a 0. Por lo tanto, si el elemento de sintaxis corriente_de_bits__subconjunto_indicador es igual a 0, el mensaje SEI de anidado escalable no incluye elementos de sintaxis anidado_op_idx[i].
Un elemento de sintaxis anidado_op_indicador igual a 0 especifica que anidadoCapaldConjunto[0] es especificado por el elemento de sintaxis todas_capas_indicador y, cuando está presente, un elemento de sintaxis anidado_capa_id_delta[i] para todos los valores i en el rango de 0 a anidado_num_capas_menosl, inclusivo. Los elementos de sintaxis anidadoCapaldConjunto [] son un arreglo de identificadores de capa. Un elemento de sintaxis anidado_op_indicador igual a 1 especifica gue anidadoCapaldConjunto[i] es especificado por el elemento de sintaxis anidado_op_idx[i]. Cuando no está presente, el valor de anidado_op_indicador es inferido para ser igual a 1.
El elemento de sintaxis anidado_max_temporal_id_másl[i] especifica una variable maxTemporalId[i]. En el ejemplo de sintaxis de la Tabla 4, el valor del elemento de sintaxis anidado_max_temporal_id_másl[i] es mayor que el valor del elemento de sintaxis nuh_temporal_id_másl de la unidad SEI NAL actual (es decir, la unidad NAL que contiene el mensaje SEI anidado escalable). La variable maxTemporalId[i] es establecida igual a anidado__max_temporal_id_másl[i] - 1.
El elemento de sintaxis anidado_op_idx[i] se utiliza para especificar el conjunto anidadoCapaldConjunto[i]. El conjunto anidadoCapaldConjunto [i] puede consistir de op_capa_id[ anidado_op_idx ][i] con todos los valores de i en el rango de 0 a op_num_capa_id_valores_menosl[ anidado_op_idx ], inclusivo. El VPS activo puede especificar los valores op_capa_id[ ][ ] y op_num_capa_valores_menosl[ ].
Además, en el ejemplo de sintaxis de la Tabla 4, un elemento de sintaxis todas_capas_indicador igual a 0 especifica que el conjunto anidadoCapaldConjunto[0] consiste de anidadoCapald[i] para todos los valores i en el rango de 0 a anidado_num_capas_menosl, inclusivo. La variable anidadoCapald[i] se describe a continuación. Un elemento de sintaxis todas_capas_indicador igual a 1 especifica que el conjunto anidadoCapaldConjunto consiste de todos los valores nuh_reservado_cero_6bits presentes en la unidad de acceso actual que son iguales a o mayores que nuh_reservado_cero_6bits de la unidad SEI NAL actual.
El elemento de sintaxis anidado_num_capas_menosl, másl, especifica el número de elementos de sintaxis anidado_capa_id_delta[i] en el mensaje SEI de anidado escalable. Un elemento de sintaxis anidado_capa_id_delta[i], cuando i es igual a 0, especifica la diferencia entre el primer valor (es decir el 0-avo) nuh_reservado_cero_6bits incluido en el conjunto anidadoCapaldConjunto[0] y el elemento de sintaxis nuh_reservado_cero_6bits de la unidad SEI NAL actual. Un elemento de sintaxis anidado_capa_id_delta[i], cuando i es mayor que 0, especifica la diferencia entre los valores i-avo e (i - 1)-avo nuh_reservado_cero_6bits incluidos en el conjunto anidadoCapaldConjunto[0].
La variable anidadoCapald[i] se puede derivar de la siguiente forma, donde nuh_reservado_cero 6bits es de la cabecera de unidad NAL de la unidad SEI NAL actual. anidadoCapald[ 0 ] = nuh_reservado_cero_6bits + anidado_capa_id_delta[ 0 ] para( i = 1; i <= anidado_num_capas_menosl; i++) anidadoCapald[ i ] = anidadoCapald[ i - 1 ] + anidado_capa_id_delta[ i ] El conjunto anidadoCapaldConjunto[ 0 ] es establecido para ser consistente de anidadoCapald[i] para todos los i valores en el rango de 0 a anidado_num_capas_menosl, inclusivo. Cuando el elemento de sintaxis corriente_de_bits_subconjunto_indicador es igual a 0, los mensajes SEI anidados aplican a unidades NAL con nuh_reservado_cero_6bits incluido en el conjunto anidadoCapaldConjunto[0] o igual a nuh_reservado_cero_6bits de la unidad SEI NAL actual, y con nuh_temporal_id_másl en el rango de nuh_temporal_id_másl de la unidad SEI NAL actual a maxTemporalI [ 0 ] + 1, inclusivo. Cuando el elemento de sintaxis corriente_de_bits_subconjunto_indicador es igual a 1, los mensajes SEI anidados aplican al resultado del proceso de extracción de la sub-corriente de bits de la subcláusula 10.1 del Bosquejo de Trabajo HEVC 8 con las entradas tldObjetivo igual a maxTemporalId [i] y objetivoDecCapaldConjunto igual aanidadoCapaldConjunto [i] para cada i valor en el rango de 0 a anidado_num ops menos1, inclusivo, y cuando el elemento de sintaxis predeterminado_op_aplicable_indicador es igual a 1, los mensajes SEI anidados también aplican a la sub-corriente de bits por omisión. La sub-corriente de bits extraída puede ser el resultado de remover todas las unidades NAL con identificadores temporales mayores que maxTemporalld[i] o identificadores de capa en el rango de 0 a anidado_num_ops_menosl.
De esta forma, para al menos un punto de operación respectivo en la pluralidad de puntos de operación a los cuales aplica el mensaje SEI anidado, un dispositivo (por ejemplo, codificador de video 20, decodificador de video 30, u otro dispositivo, tal como un dispositivo de red de entrega de contenido) puede decodificar, a partir del mensaje SEI de anidado escalable, un primer elemento de sintaxis (por ejemplo, anidado_max_temporal_id_másl[i]) y un segundo elemento de sintaxis (por ejemplo, anidado_op_idx [i]). Además, el dispositivo puede determinar, con base al menos en parte en el primer elemento de sintaxis, un identificador temporal máximo del punto de operación respectivo. El dispositivo puede determinar, con base al menos en parte en el segundo elemento de sintaxis, un conjunto de identificadores de capa del punto de operación respectivo.
En el ejemplo de la Tabla 4, el elemento de sintaxis anidado_cero_bit es igual a 0. El elemento de sintaxis anidado_cero_bit puede servir para asegurar que el mensaje SEI de anidado escaladle está alineado en bytes. El mensaje SEI de anidado escalable puede estar alineado en bytes cuando el número de bits en el mensaje SEI de anidado escalable se divide entre 8.
Además, en el ejemplo de la Tabla 4, estructuras de sintaxis sei_mensaje( ) incluyen mensajes SEI. Por lo tanto, un dispositivo puede decodificar, a partir del mensaje SEI de anidado escalable, una pluralidad de mensajes SEI anidados encapsulados por el mensaje SEI de anidado escalable. Cada uno de los mensajes SEI anidados se puede aplicar a todos los puntos de operación identificados por la pluralidad de elementos de sintaxis (por ejemplo, anidado_max_temporal_id_másl[i], anidado_op_idx[i], etc.).
En un ejemplo alternativo, los mensajes SEI de anidado escalable se pueden ajustar al ejemplo de sintaxis de la Tabla 5, a continuación. En el ejemplo de sintaxis de la Tabla 5, un mensaje SEI de anidado escalable puede, de acuerdo con una o más téenicas de esta divulgación, incrementar la eficiencia de la codificación explícita de identificadores de capa a través del uso de indicadores de codificación.
TABLA 5 Mensaje SEI de Anidado Escalable En el ejemplo de la Tabla 5, las partes en itálica muestran diferencias del Bosquejo de Trabajo HEVC 8. Tal como se muestra en la Tabla 5, el elemento de sintaxis corriente_de_bits_subconjunto_indicador, el elemento de sintaxis predeterminado_op_aplicable_indicador, el elemento de sintaxis anidado_num_ops_menosl, el elemento de sintaxis anidado_max_temporal_id_másl, el elemento de sintaxis anidado_op_idx[i], y el elemento de sintaxis anidado_cero_bit pueden tener la misma semántica que se describió anteriormente con respecto a la Tabla 4.
Además, en el ejemplo de la Tabla 5, una variable minCapald es establecida igual a nuh_reservado_cero_6bits + 1, donde nuh_reservado_cero_6bits es de la cabecera de unidad NAL de la unidad SEI NAL actual. Un elemento de sintaxis anidado_op_indicador igual a 0 especifica que el conjunto anidadoCapaldConjunto[0] es especificado por el elemento de sintaxis todas_capas_indicador y, cuando está presente, anidado_capa_id_incluido_indicador[i] para todos los valores i en el rango de 0 a anidado_max_capa__id - minCapald - 1, inclusivo. Un elemento de sintaxis anidado_op_indicador igual a 1 especifica que el conjunto anidadoCapaldConjunto[i] es especificado por el elemento de sintaxis anidado_op_idx[i]. Cuando el elemento de sintaxis anidado_op_indicador no está presente, el valor de anidado_op_indicador es inferido para ser igual a 1.
En el ejemplo de la Tabla 5, un elemento de sintaxis todas_capas_indicador igual a 0 especifica que el conjunto anidadoCapaldConjunto[0] consiste de anidadoCapald[i] para todos los valores i en el rango de 0 a anidado_max_capa id - minCapald, inclusivo. La variable anidadoCapald[i] se describe a continuación. En el ejemplo de la Tabla 5, un todas_capas_indicador igual a 1 especifica gue el conjunto anidadoCapaldConjunto consiste de todos los valores nuh_reservado_cero_6bits presentes en la unidad de acceso actual que son mayores que o iguales al elemento de sintaxis nuh_reservado_cero_6bits de la unidad SEI NAL actual.
Además, en el ejemplo de la Tabla 5, el elemento de sintaxis anidado_max_capa_id especifica el mayor valor de nuh_reservado_cero_6bits en el conjunto anidadoCapaldConjunto[0]. Un elemento de sintaxis anidado_capa_id_incluido_indicador[i] igual a 1 especifica que el valor de nuh_reservado_cero_6bits igual a i + minCapald está incluido en el conjunto anidadoCapaldConjunto[0]. Un elemento de sintaxis anidado_capa_id_incluido_indicador[i] igual a 0 especifica que el valor de nuh_reservado_cero_6bits igual a i + minCapald no está incluido en el conjunto anidadoCapaldConjunto[0].
La variable anidadoNumCapasMenosl y las variables anidadoCapald [i] para i en el rango de 0 a anidadoNumCapasMenosl, inclusivo, pueden ser derivadas de la siguientes forma: para( i = 0, j = 0; i < anidado_ ax_capa_id; i++ ) si( anidado_capa_id_incluido_indicador[ i ] ) anidadoCapald[ j++ ] = i + minCapald anidadoCapald[ j ] = anidado_max_capa_id anidadoNumCapasMenosl = j El conjunto anidadoCapaldConjunto[0] puede ser establecido para consistir de anidadoCapald[i] para todos los i valores en el rango de 0 a anidadoNumCapasMenosl, inclusivo.
Cuando el elemento de sintaxis corriente_de_bits_subconjunto_indicador es igual a 0, los mensajes SEI anidados pueden aplicar a unidades NAL con nuh_reservado_cero_6bits incluido en el conjunto anidadoCapaldConjunto[0] o igual al elemento de sintaxis nuh_reservado_cero_6bits de la unidad SEI NAL actual, y con nuh_temporal_id_másl en el rango del elemento de sintaxis nuh_temporal_id_ ásl de la unidad SEI NAL actual a maxTemporalld[ 0 ] + 1, inclusivo.
Cuando el elemento de sintaxis corriente_de_bits_subconjunto_indicador del mensaje SEI anidado escalable es igual a 1, los mensajes SEI anidados pueden aplicar al resultado del proceso de extracción de la sub-corriente de bits de la subclausula 10.1 con las entradas tldObjetivo igual a maxTemporalld [i] y objetivoDecCapaldConjunto igual a anidadoCapaldConjunto[i] para cada i valor en el rango de 0 a anidado_num_ops_menosl, inclusivo, y cuando predeterminado_op_aplicable_indicador es igual a 1, los mensajes SEI anidados también aplican a la sub-corriente de bits por omisión.
La figura 3 es un diagrama en bloques que ilustra un ejemplo del decodificador de video 30 que está configurado para implementar las téenicas de esta divulgación. La figura 3 es proporcionada para propósitos de explicación y no hay una limitación en las técnicas tal como se ejemplifican y describen ampliamente en esta divulgación. Para propósitos de explicación, esta divulgación describe el decodificador de video 30 en el contexto de codificación HEVC. Sin embargo, las técnicas de esta divulgación se pueden aplicar a otros estándares o métodos de codificación.
En el ejemplo de la figura 3, el decodificador de video 30 incluye una unidad de decodificación por entropía 150, una unidad de procesamiento de predicción 152, una unidad de cuantificación inversa 154, una unidad de procesamiento de transformada inversa 156, una unidad de reconstrucción 158, una unidad de filtro 160, y una memoria intermedia de imágenes decodificadas 162. La unidad de procesamiento de predicción 152 incluye una unidad de compensación de movimiento 164 y una unidad de procesamiento de intra- predicción 166. En otros ejemplos, el decodificador de video 30 puede incluir más, menos o diferentes componentes funcionales.
Una memoria intermedia de imágenes codificadas (CPB) 151 puede recibir y almacenar datos de video codificados (por ejemplo, unidades NAL) de una corriente de bits. La unidad de decodificación por entropía 150 puede recibir unidades NAL de la CPB 151 y analizar sintácticamente la unidad NALs para decodificar elementos de sintaxis. La unidad de decodificación por entropía 150 puede decodificar por entropía elementos de sintaxis codificados por entropía en la unidad NALs. La unidad de procesamiento de predicción 152, unidad de cuantificación inversa 154, unidad de procesamiento de transformada inversa 156, unidad de reconstrucción 158, y unidad de filtro 160 pueden generar datos de video decodificados con base en los elementos de sintaxis extraídos de la corriente de bits.
Las unidades NAL de la corriente de bits pueden incluir unidades NAL de porción codificada. Como parte de la decodificación de la corriente de bits, la unidad de decodificación por entropía 150 puede extraer y decodificar por entropía elementos de sintaxis de las unidades NAL de porción codificada. Cada una de las porciones codificadas puede incluir una cabecera de porción y datos de porción. La cabecera de porción puede contener elementos de sintaxis pertenecientes a una porción. Los elementos de sintaxis en la cabecera de porción pueden incluir un elemento de sintaxis que identifica un PPS asociado con una imagen que contiene la porción.
Además de decodificar los elementos de sintaxis de la corriente de bits, el decodificador de video 30 puede ejecutar una operación de reconstrucción en una CU no dividida. Para ejecutar la operación de reconstrucción en una CU no dividida, el decodificador de video 30 puede ejecutar una operación de reconstrucción en cada TU de la CU. Al ejecutar la operación de reconstrucción para cada TU de la CU, el decodificador de video 30 puede reconstruir bloques residuales de la CU.
Como parte de la ejecución de una operación de reconstrucción en una TU de una CU, la unidad de cuantificación inversa 154 puede cuantificar a la inversa, es decir, des-cuantificar, bloques de coeficientes asociados con la TU. La unidad de cuantificación inversa 154 puede utilizar un valor QP asociado con la CU de la TU para determinar un grado de cuantificación y, de igual manera, un grado de cuantificación inversa para que lo aplique la unidad de cuantificación inversa 154. Es decir, la relación de compresión, es decir, la relación del número de bits utilizados para representar la secuencia original y el comprimido, puede ser controlada ajustando el valor del QP utilizado cuando se cuantifican coeficientes de transformada. La relación de compresión también puede depender del método de codificación por entropía empleado.
Después que la unidad de cuantificación inversa 154 cuantifica a la inversa un bloque de coeficientes, la unidad de procesamiento de transformada inversa 156 puede aplicar una o más transformadas inversas al bloque de coeficientes a fin de generar un bloque residual asociado con la TU. Por ejemplo, la unidad de procesamiento de transformada inversa 156 puede aplicar una DCT inversa, una transformada de entero inversa, una transformada inversa Karhunen-Loeve (KLT), una transformada rotacional inversa, una transformada direccional inversa, u otra transformada inversa al bloque de coeficientes.
Si una PU es codificada utilizando intra-predicción, la unidad de procesamiento de intra-predicción 166 puede ejecutar intra-predicción para generar bloques predictivos para la PU. La unidad de procesamiento de intra-predicción 166 puede utilizar un modo de intra-predicción para generar los bloques predictivos de luminancia, Cb y Cr para la PU con base en los bloques de predicción de PUs espacialmente vecinos. La unidad de procesamiento de intra-predicción 166 puede determinar el modo de intra-predicción para la PU con base en uno o más elementos de sintaxis decodificados de la corriente de bits.
La unidad de procesamiento de predicción 152 puede construir una primera lista de imágenes de referencia (RefImagenListaO) y una segunda lista de imágenes de referencia (RefImagenListal) con base en elementos de sintaxis extraídos de la corriente de bits. Además, si una PU es codificada utilizando inter-predicción, la unidad de decodificación por entropía 150 puede extraer información de movimiento para la PU. La unidad de compensación de movimiento 164 puede determinar, con base en la información de movimiento de la PU, una o más regiones de referencia para la PU. La unidad de compensación de movimiento 164.puede generar, con base en bloques de muestras en uno o más bloques de referencia para la PU, bloques predictivos de luminancia, Cb y Cr para la PU.
La unidad de reconstrucción 158 puede utilizar los bloques de transformada de luminancia, Cb y Cr asociados con las TUs de una CU y los bloques predictivos de luminancia, Cb y Cr de las PUs de la CU, es decir, ya sea datos de intra-predicción data o datos de inter-predicción, según aplique, para reconstruir los bloques de codificación de luminancia, Cb y Cr de la CU. Por ejemplo, la unidad de reconstrucción 158 puede agregar muestras de los bloques de transformada de luminancia, Cb y Cr a muestras correspondientes de los bloques predictivos de luminancia, Cb y Cr para reconstruir los bloques de codificación de luminancia, Cb y Cr de la CU.
La unidad de filtro 160 puede ejecutar una operación de desbloqueo para reducir los artefactos de bloqueo asociados con los bloques de codificación de luminancia, Cb y Cr de la CU. El decodificador de video 30 puede almacenar los bloques de codificación de luminancia, Cb y Cr de la CU en memoria intermedia de imágenes decodificadas 162. La memoria intermedia de imágenes decodificadas 162 puede proporcionar imágenes de referencia para posterior compensación de movimiento, intra-predicción, y presentación en un dispositivo de despliegue, tal como el dispositivo de despliegue 32 de la figura 1. Por ejemplo, el decodificador de video 30 puede ejecutar, con base en los bloques de luminancia, Cb y Cr en memoria intermedia de imágenes decodificadas 162, operaciones de intra-predicción o interpredicción en las PUs de otras CUs. De esta forma, el decodificador de video 30 puede extraer, de la corriente de bits, niveles de coeficientes de transformada del bloque de coeficientes significativos de luminancia, puede cuantificar a la inversa los niveles de coeficientes de transformada, puede aplicar una transformada a los niveles de coeficientes de transformada para generar un bloque de transformada, puede generar, con base al menos en parte en el bloque de transformada, un bloque de codificación, y puede emitir el bloque de codificación para despliegue.
La figura 4 es un gráfico de flujo que ilustra una operación ejemplar 200 del codificador de video 20, de acuerdo con una o más téenicas de esta divulgación. En el ejemplo de la figura 4, el codificador de video 20 puede generar un VPS que incluye una pluralidad de estructuras de sintaxis del parámetro HRD donde cada una incluye parámetros HRD (202). Para cada estructura de sintaxis de parámetro HRD respectiva en la pluralidad de estructuras de sintaxis del parámetro HRD, el VPS además incluye un elemento de sintaxis indicando si los parámetros HRD de la estructura de sintaxis del parámetro HRD respectivo incluye un conjunto común de parámetros HRD además de un conjunto de información de parámetros HRD específicos de la sub-capa específico para una sub-capa particular de la corriente de bits, en donde el conjunto común de parámetros HRD es común a todas las sub-capas de la corriente de bits. Además, el codificador de video 20 puede señalizar el VPS en la corriente de bits (204).
La figura 5 es un gráfico de flujo que ilustra una operación ejemplar 250 de un dispositivo, de acuerdo con una o más téenicas de esta divulgación. La operación 250 puede ser ejecutada por el codificador de video 20, el decodificador de video 30, u otro dispositivo. Tal como se ilustra en el ejemplo de la figura 5, el dispositivo puede decodificar, a partir de una corriente de bits, un VPS que incluye una pluralidad de estructuras de sintaxis del parámetro HRD donde cada una incluye parámetros HRD (252). Para cada estructura de sintaxis de parámetro HRD respectiva en la pluralidad de estructuras de sintaxis del parámetro HRD, el VPS además incluye un elemento de sintaxis indicando si los parámetros HRD de la estructura de sintaxis del parámetro HRD respectivo incluye un conjunto común de parámetros HRD.
Además, el dispositivo puede ejecutar una operación utilizando los parámetros HRD de al menos una de las estructuras de sintaxis del parámetro HRD (254). En algunos ejemplos, la corriente de bits puede comprender una representación del punto de operación de un punto de operación particular, una estructura de sintaxis particular del parámetro HRD se puede aplicar al punto de operación particular, y el dispositivo puede ejecutar la operación utilizando los parámetros HRD de la estructura de sintaxis particular del parámetro HRD. Por ejemplo, el dispositivo puede utilizar los parámetros HRD para ejecutar una prueba de adaptación de corriente de bits que determine si un punto de operación aplicable a la estructura de sintaxis del parámetro HRD se adapta a un estándar de codificación de video, tal como HEVC. En otro ejemplo, el dispositivo puede utilizar los parámetros HRD para ejecutar una prueba de adaptación de decodificador .
El conjunto común de parámetros HRD puede ser común a todas las sub-capas de la corriente de bits. En algunos ejemplos, los parámetros HRD de cada estructura de sintaxis del parámetro HRD incluyen un conjunto de parámetros HRD específicos de la sub-capa que es especifico para una subcapa particular de la corriente de bits. En algunos ejemplos, cada uno de los conjuntos de parámetros HRD específicos de la sub-capa incluye un elemento de sintaxis (por ejemplo, indicando una distancia temporal entre los tiempos de salida HRD de cualesquiera dos imágenes consecutivas en orden de salida, un elemento de sintaxis indicando un número de especificaciones alternativas de memoria intermedia de imágenes codificadas en la corriente de bits de una secuencia de video codificada. En algunos ejemplos, cuando el dispositivo determina que una estructura de sintaxis particular del parámetro HRD no incluye un conjunto común de parámetros HRD, el dispositivo puede ejecutar la operación itilizando un conjunto común de parámetros HRD asociado con una estructura de sintaxis previa del parámetro HRD y el conjunto de parámetros HRD específicos de la sub-capa de la estructura de sintaxis particular del parámetro HRD.
La figura 6 es un gráfico de flujo que ilustra una operación ejemplar 300 del codificador de video 20, de acuerdo con una o más téenicas de esta divulgación. Tal como se ilustra en el ejemplo de la figura 6, el codificador de video 20 puede generar un mensaje SEI de anidado escalable que incluye una pluralidad de elementos de sintaxis que identifica una pluralidad de puntos de operación a los cuales aplica un mensaje SEI anidado encapsulado por el mensaje SEI de anidado escalable (302). Además, el codificador de video 20 puede señalizar el mensaje SEI de anidado escalable en una corriente de bits (304).
La figura 7 es un gráfico de flujo que ilustra una operación ejemplar 350 de un dispositivo, de acuerdo con una o más técnicas de esta divulgación. El codificador de video 20, decodificador de video 30, u otro dispositivo pueden ejecutar la operación 350. Tal como se ilustra en el ejemplo de la figura 7, un dispositivo puede decodificar, a partir de un mensaje SEI de anidado escalable, una pluralidad de elementos de sintaxis que identifican una pluralidad de puntos de operación a los cuales aplica un mensaje SEI anidado encapsulado por el mensaje SEI de anidado escalable (352). En algunos ejemplos, el dispositivo puede decodificar, a partir del mensaje SEI de anidado escalable, un elemento de sintaxis (por ejemplo, anidado_num_ops_menosl) indicando si el mensaje SEI de anidado escalable incluye la pluralidad de elementos de sintaxis que identifican los puntos de operación.
Además, el dispositivo puede utilizar uno o más elementos de sintaxis del mensaje SEI anidado para ejecutar una operación referente a cualquiera de los puntos de operación a los cuales aplica el mensaje SEI anidado (354). Por ejemplo, el dispositivo puede utilizar elementos de sintaxis del mensaje SEI anidado en una prueba de adaptación de corriente de bits que determina si cualquiera de los puntos de operación a los cuales aplica el mensaje SEI anidado se adapta a un estándar de codificación de video, tal como HEVC. En otro ejemplo, el dispositivo puede utilizar elementos de sintaxis del mensaje SEI anidado para ejecutar una prueba de adaptación de decodificador.
La figura 8 es un gráfico de flujo que ilustra una operación ejemplar 400 del codificador de video 20, de acuerdo con una o más téenicas de esta divulgación. Tal como se ilustra en el ejemplo de la figura 8, el codificador de video 20 puede incluir, en un mensaje SEI de anidado escalable encapsulado por una unidad SEI NAL, un elemento de sintaxis (por ejemplo, predeterminado_op_aplicable_indicador) que indica si un mensaje SEI anidado encapsulado por el mensaje SEI de anidado escalable es aplicable a una sub corriente de bits por omisión (402). La sub-corriente de bits por omisión es una representación del punto de operación de un punto de operación definido por un identificador de capa especificado en una cabecera de unidad NAL de la unidad SEI NAL y un identificador temporal especificado en la cabecera de unidad NAL. Un primer elemento de sintaxis en la cabecera de unidad NAL (por ejemplo, nuh_reservado_cero_6bits) puede indicar el identificador de capa y un segundo elemento de sintaxis en la cabecera de unidad NAL (por ejemplo, nuh_reservado_temporal_id_másl) puede indicar el identificador temporal.
En el ejemplo de la figura 8, el codificador de video 20 puede incluir, en el mensaje SEI de anidado escalable, uno o más elementos de sintaxis adicionales gue identifican un identificador temporal de un punto de operación adicional y un identificador de capa máximo del punto de operación adicional (404). Además, el codificador de video 20 puede señalizar el mensaje SEI de anidado escalable en una corriente de bits (406). En algunos ejemplos, el elemento de sintaxis que indica si un mensaje SEI anidado encapsulado por el mensaje SEI de anidado escalable es aplicable a la sub- corriente de bits por omisión se puede referir como un primer elemento de sintaxis y el codificador de video 20 puede incluir un segundo elemento de sintaxis (por ejemplo, CorrienteBits_SubConjunto_indicador) en el mensaje SEI de anidado escaladle. El segundo elemento de sintaxis puede indicar si los mensajes SEI anidados encapsulados por el mensaje SEI de anidado escalable aplican a una sub-corriente de bits extraída de la corriente de bits o si los mensajes SEI anidados aplican a capas y sub-capas específicas de la corriente de bits. El codificador de video 20 puede incluir el primer elemento de sintaxis únicamente cuando el segundo elemento de sintaxis indica que los mensajes SEI anidados aplican a la sub-corriente de bits extraída de la corriente de bits.
La figura 9 es un gráfico de flujo que ilustra una operación ejemplar 450 de un dispositivo, de acuerdo con una o más téenicas de esta divulgación. El codificador de video 20, decodificador de video 30, u otro dispositivo pueden ejecutar la operación 450. Tal como se ilustra en el ejemplo de la figura 9, el dispositivo puede determinar, con base al menos en parte en un primer elemento de sintaxis (por ejemplo, CorrienteBits_SubConjunto_indicador) de un mensaje SEI de anidado escalable, si un mensaje SEI anidado encapsulado por el mensaje SEI de anidado escalable aplica a una sub-corriente de bits extraída de una corriente de bits (452). En respuesta a determinar que el mensaje SEI anidado encapsulado por el mensaje SEI de anidado escalable aplica a una sub-corriente de bits extraída de una corriente de bits ("Sí" de 452), el dispositivo puede decodificar un elemento de sintaxis de punto de operación por omisión (por ejemplo, predeterminado_op_aplicable_indicador) en el mensaje SEI de anidado escalable (454). elemento de sintaxis de punto de operación por omisión puede indicar si el mensaje SEI anidado encapsulado por el mensaje SEI de anidado escalable es aplicable a una sub-corriente de bits por omisión.
La sub-corriente de bits por omisión puede ser una representación del punto de operación de un punto de operación definido por un identificador de capa especificado en una cabecera de unidad NAL de la unidad SEI NAL y un identificador temporal especificado en la cabecera de unidad NAL. En algunos ejemplos, un primer elemento de sintaxis en la cabecera de unidad NAL (por ejemplo, nuh_reservado_cero_6bits) indica el identificador de capa y un segundo elemento de sintaxis en la cabecera de unidad NAL (por ejemplo, nuh_reservado_temporal_id_másl) indica el identificador temporal. La sub-corriente de bits por omisión puede ser un subconjunto de una corriente de bits y la sub-corriente de bits por omisión no incluye unidades VCL NAL de la corriente de bits que tienen identificadores de capa mayores que el identificador de capa indicado por el primer elemento de sintaxis de la cabecera de unidad NAL o que tienen identificadores temporales mayores que el identificador temporal indicado por el segundo elemento de sintaxis de la cabecera de unidad NAL.
Además, el dispositivo puede determinar, con base al menos en parte en un elemento de sintaxis (por ejemplo, predeterminado_op_aplicable_indicador) en el mensaje SEI de anidado escaladle encapsulado por la unidad SEI NAL, si el mensaje SEI anidado encapsulado por el mensaje SEI de anidado escalable es aplicable a una sub-corriente de bits por omisión de la corriente de bits (456). En algunos ejemplos, el mensaje SEI de anidado escalable encapsula una pluralidad de mensajes SEI anidados. En dichos ejemplos, el dispositivo puede determinar, con base en un elemento de sintaxis (por ejemplo, predeterminado_op_aplicable_indicador), si cada uno del mensaje SEI anidado en el mensaje SEI de anidado escalable es aplicable a la sub-corriente de bits por omisión.
Cuando el mensaje SEI anidado es aplicable a la sub-corriente de bits por omisión ("Si" de 456), el dispositivo puede utilizar el mensaje SEI anidado en una operación en la sub-corriente de bits por omisión (458). Por ejemplo, el mensaje SEI anidado puede incluir un conjunto de parámetros HRD. En este ejemplo, el dispositivo puede utilizar los parámetros HRD en el mensaje SEI anidado en una operación que prueba si la sub-corriente de bits por omisión se adapta a un estándar de codificación de video, tal como HEVC. En otro ejemplo, el dispositivo puede utilizar los parámetros HRD en el mensaje SEI anidado en una prueba de adaptación de decodificador. En otro ejemplo, el dispositivo puede utilizar el mensaje SEI anidado en una operación de decodificación en la sub-corriente de bits por omisión. En otro ejemplo, los retrasos de remoción CPB iniciales pueden ser utilizados para guiar un sistema para configurar un retraso extreme-a-extremo inicial apropiado y los tiempos de salida DPB pueden ser utilizados para derivar los sellos de hora RTP cuando el video es transportado sobre RTP.
De otra manera, cuando el mensaje SEI anidado no es aplicable a la sub-corriente de bits por omisión ("NO" de 456) o cuando el mensaje SEI de anidado escalable no aplica a una sub-corriente de bits extraída de la corriente de bits ("NO" de 452), el dispositivo no utiliza el mensaje SEI anidado en una operación en la sub-corriente de bits por omisión (460). Por ejemplo, el dispositivo puede determinar, con base en uno o más elementos de sintaxis adicionales en el mensaje SEI de anidado escalable (por ejemplo, anidado_max_temporal_id_másl[i], anidado_op_idx[i], etc.) un identificador temporal de un segundo punto de operación y un identificador de capa máximo del segundo punto de operación. En este ejemplo, el dispositivo puede utilizar el mensaje SEI anidado en una operación en una sub-corriente de bits adicional, la sub-corriente de bits adicional es una representación del punto de operación del segundo punto de operación.
En uno o más ejemplos, las funciones descritas pueden ser implementadas en hardware, software, firmware o cualquier combinación de los mismos. Si se implementan en software, las funciones pueden ser almacenadas en o transmitidas sobre, como una o más instrucciones o código, un medio legible por computadora y ejecutadas por una unidad de procesamiento basada en hardware. El medio legible por computadora puede incluir medios de almacenamiento legibles por computadora, los cuales corresponden a un medio tangible tal como un medio de almacenamiento de datos, o medios de comunicación incluyendo cualquier medio que facilite la transferencia de un programa de computadora de un lugar a otro, por ejemplo, de acuerdo con un protocolo de comunicación. De esta manera, los medios legibles por computadora generalmente pueden corresponder a (1) medios de almacenamiento legibles por computadora tangibles los cuales no son transitorios o (2) un medio de comunicación tal como una onda de portadora o señal. El medio de almacenamiento de datos puede ser cualquier medio disponible al que se pueda tener acceso a través de una o más computadoras o uno o más procesadores para recuperar instrucciones, código y/o estructuras de datos para implementación de las téenicas descritas en esta divulgación. Un producto de programa de computadora puede incluir un medio legible por computadora.
A manera de ejemplo, y no limitación, dicho medio de almacenamiento legible por computadora 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 se pueda utilizar para almacenar un código de programa deseado en la forma de instrucciones o estructuras de datos y a los que se pueda tener acceso mediante una computadora. También, cualquier conexión se denomina de manera apropiada un medio legible por computadora. Por ejemplo, si las instrucciones son transmitidas desde un sitio Web, servidor u otra fuente remota utilizando un cable coaxial, cable de fibra óptica, par torcido, linea de suscriptor digital (DSL), o tecnologías inalámbricas tales como infrarrojo, radio y microondas, entonces el cable coaxial, cabe de fibra óptica, par torcido, DSL, o teenologías inalámbricas tales como infrarrojo, radio y microondas se incluyen en la definición de medio. Sin embargo, se debiera entender que el medio de almacenamiento legible por computadora y el medio de almacenamiento de datos no incluyen conexiones, ondas de portadora, señales u otros medios transitorios, sino que más bien están dirigidos a medios de almacenamiento tangibles, no transitorios. Disco (disk) y disco, tal como aquí se utilizan, incluyen un disco compacto (CD), disco láser, disco óptico, disco versátil digital (DVD), disco flexible y disco Blu-ray, donde discos (disks) por lo general reproducen datos en forma magnética, mientras que los discos reproducen datos en forma óptica con láser. Combinaciones de los anteriores también se debieran incluir dentro del alcance del medio iegible por computadora.
Las instrucciones pueden ser ejecutadas por uno o más procesadores, tales como uno o más procesadores se señal digital (DSPs), microprocesadores de propósito general, circuitos integrados de aplicación especifica (ASICs), arreglos lógicos de campo programadle (FPGAs), u otros circuitos lógicos discretos o integrados equivalentes. Por consiguiente, el término "procesador" tal como aquí se utiliza se puede referir a cualquiera de la estructura anterior o cualquier otra estructura conveniente para implementación de las técnicas aquí descritas. Además, en algunos aspectos, la funcionalidad aquí descrita puede ser proporcionada dentro de los módulos de hardware y/o software dedicados configurados para la codificación y decodificación, o incorporados en un codee combinado. También, las téenicas podrían ser completamente implementadas en uno o más circuitos o elementos lógicos.
Las técnicas de esta divulgación se pueden implementar en una amplia variedad de dispositivos o aparatos, incluyendo un equipo inalámbrico, un circuito integrado (IC) o un conjunto de ICs (por ejemplo, un conjunto de chips). Diversos componentes, módulos o unidades se describen en esta divulgación para enfatizar aspectos funcionales de dispositivos configurados para ejecutar las técnicas divulgadas, pero no necesariamente requieren la realización mediante diferentes unidades de hardware. Más bien, tal como se describió antes, diversas unidades se pueden combinar en una unidad de hardware de codee o proporcionar a través de un conjunto de unidades de hardware interoperables, incluyendo uno o más procesadores tal como se describió antes, en conjunto con software y/o firmware conveniente.
Se han descrito diversos ejemplos. Estos y otros ejemplos están dentro del alcance de las siguientes reivindicaciones.

Claims (30)

NOVEDAD DE LA INVENCIÓN Habiendo descrito la presente invención, se considera como una novedad y, por lo tanto, se reclama como propiedad lo contenido en las siguientes: REIVINDICACIONES
1.- Un método para decodificar datos de video, el método comprende: decodificar, a partir de una corriente de bits de video codificado, un conjunto de parámetros de video (VPS) que incluye una pluralidad de estructuras de sintaxis del parámetro de decodificador de referencia hipotética (HRD) donde cada una incluye parámetros HRD, en donde para cada estructura de sintaxis de parámetro HRD respectiva en la pluralidad de estructuras de sintaxis del parámetro HRD, el VPS además incluye un elemento de sintaxis que indica si los parámetros HRD de la estructura de sintaxis de parámetro HRD respectiva incluye un conjunto común de parámetros HRD, en donde el conjunto común de parámetros HRD es común a todas las sub-capas de la corriente de bits de video codificado; y ejecutar una operación utilizando los parámetros HRD de al menos una de las estructuras de sintaxis del parámetro HRD.
2.- E1 método de conformidad con la reivindicación 1, que además comprende: determinar que una estructura de sintaxis del parámetro HRD particular no incluye un conjunto común de parámetros HRD, y en donde la ejecución de la operación utilizando los parámetros HRD de al menos una de las estructuras de sintaxis del parámetro HRD comprende, cuando la estructura de sintaxis del parámetro HRD particular no incluye el conjunto común de parámetros HRD, ejecutar la operación utilizando un conjunto común de parámetros HRD asociados con una estructura de sintaxis del parámetro HRD previo y parámetros HRD adicionales de la estructura de sintaxis del parámetro HRD particular.
3.- El método de conformidad con la reivindicación 1, caracterizado porque la primera estructura de sintaxis del parámetro HRD señalizada en el VPS incluye un primer conjunto común de parámetros HRD.
4.- El método de conformidad con la reivindicación 3, caracterizado porque una estructura de sintaxis del parámetro HRD posterior señalizada en el VPS incluye un segundo conjunto común diferente de parámetros HRD.
5.- El método de conformidad con la reivindicación 3, caracterizado porque al menos una estructura de sintaxis del parámetro HRD señalizada en el VPS no incluye un conjunto común de parámetros HRD.
6.- El método de conformidad con la reivindicación 1, caracterizado porque cada una de las estructuras de sintaxis del parámetro HRD es aplicable a un punto de operación de la corriente de bits de video codificado.
7.- El método de conformidad con la reivindicación 1, caracterizado porque al menos una de las estructuras de sintaxis del parámetro HRD es aplicable a múltiples puntos de operación de la corriente de bits de video codificado.
8.- Un dispositivo de decodificación de video que comprende uno o más procesadores configurados para: decodificar, a partir de una corriente de bits de video codificado, un conjunto de parámetros de video (VPS) que incluye una pluralidad de estructuras de sintaxis del parámetro de decodificador de referencia hipotética (HRD) donde cada una incluye parámetros HRD, en donde para cada estructura de sintaxis de parámetro HRD respectiva en la pluralidad de estructuras de sintaxis del parámetro HRD, el VPS además incluye un elemento de sintaxis que indica si los parámetros HRD de la estructura de sintaxis de parámetro HRD respectiva incluye un conjunto común de parámetros HRD, en donde el conjunto común de parámetros HRD es común a todas las sub-capas de la corriente de bits de video codificado; y ejecutar una operación utilizando los parámetros HRD de al menos una de las estructuras de sintaxis del parámetro HRD.
9.- El dispositivo de decodificación de video de conformidad con la reivindicación 8, caracterizado porque uno o más procesadores además están configurados para: determinar que una estructura de sintaxis del parámetro HRD particular no incluye un conjunto común de parámetros HRD, y cuando la estructura de sintaxis del parámetro HRD particular no incluye el conjunto común de parámetros HRD, ejecutar la operación utilizando un conjunto común de parámetros HRD asociados con una estructura de sintaxis de parámetros HRD previos y parámetros HRD adicionales de la estructura de sintaxis del parámetro HRD particular.
10.- El dispositivo de decodificación de video de conformidad con la reivindicación 8, caracterizado porque la primera estructura de sintaxis del parámetro HRD señalizada en el VPS incluye un primer conjunto común de parámetros HRD.
11.- El dispositivo de decodificación de video de conformidad con la reivindicación 10, caracterizado porque una estructura de sintaxis del parámetro HRD posterior señalizada en el VPS incluye un segundo conjunto común diferente de parámetros HRD.
12.- El dispositivo de decodificación de video de conformidad con la reivindicación 10, caracterizado porque al menos una estructura de sintaxis del parámetro HRD señalizada en el VPS no incluye un conjunto común de parámetros HRD.
13.- El dispositivo de decodificación de video de conformidad con la reivindicación 8, caracterizado porque cada una de las estructuras de sintaxis del parámetro HRD es aplicable a un punto de operación de la corriente de bits de video codificado.
14.- El dispositivo de decodificación de video de conformidad con la reivindicación 8, caracterizado porque al menos una de las estructuras de sintaxis del parámetro HRD es aplicable a múltiples puntos de operación de la corriente de bits de video codificado.
15.- Un dispositivo de decodificación de video que comprende: medios para decodificar, a partir de una corriente de bits de video codificado, un conjunto de parámetros de video (VPS) que incluye una pluralidad de estructuras de sintaxis del parámetro de decodificador de referencia hipotética (HRD) donde cada una incluye parámetros HRD, en donde para cada estructura de sintaxis de parámetro HRD respectiva en la pluralidad de estructuras de sintaxis del parámetro HRD, el VPS además incluye un elemento de sintaxis que indica si los parámetros HRD de la estructura de sintaxis de parámetro HRD respectiva incluye un conjunto común de parámetros HRD, en donde el conjunto común de parámetros HRD es común a todas las sub-capas de la corriente de bits de video codificado; y medios para ejecutar una operación utilizando los parámetros HRD de al menos una de las estructuras de sintaxis del parámetro HRD.
16.- El dispositivo de decodificación de video de conformidad con la reivindicación 15, caracterizado porque: la primera estructura de sintaxis del parámetro HRD señalizada en el VPS incluye un primer conjunto común de parámetros HRD, una estructura de sintaxis del parámetro HRD posterior señalizada en el VPS incluye un segundo conjunto común diferente de parámetros HRD, y cada una de las estructuras de sintaxis del parámetro HRD es aplicable a un punto de operación de la corriente de bits de video codificado.
17.- Un medio de almacenamiento legible por computadora que almacena instrucciones que, cuando son ejecutadas por un dispositivo de decodificación de video, configuran el dispositivo de decodificación de video para: decodificar, a partir de una corriente de bits de video codificado, un conjunto de parámetros de video (VPS) que incluye una pluralidad de estructuras de sintaxis del parámetro de decodificador de referencia hipotética (HRD) donde cada una incluye parámetros HRD, en donde para cada estructura de sintaxis de parámetro HRD respectiva en la pluralidad de estructuras de sintaxis del parámetro HRD, el VPS además incluye un elemento de sintaxis que indica si los parámetros HRD de la estructura de sintaxis de parámetro HRD respectiva incluye un conjunto común de parámetros HRD, en donde el conjunto común de parámetros HRD es común a todas las sub-capas de la corriente de bits de video codificado; y ejecutar una operación utilizando los parámetros HRD de al menos una de las estructuras de sintaxis del parámetro HRD.
18.- El medio de almacenamiento legible por computadora de conformidad con la reivindicación 17, caracterizado porque: la primera estructura de sintaxis del parámetro HRD señalizada en el VPS incluye un primer conjunto común de parámetros HRD, una estructura de sintaxis del parámetro HRD posterior señalizada en el VPS incluye un segundo conjunto común diferente de parámetros HRD, y cada una de las estructuras de sintaxis del parámetro HRD es aplicable a un punto de operación de la corriente de bits de video codificado.
19.- Un método para codificar datos de-video, el método comprende: generar un conjunto de parámetros de video (VPS) que incluye una pluralidad de estructuras de sintaxis del parámetro de Decodificador de Referencia Hipotética (HRD) en donde cada una incluye parámetros HRD, en donde para cada estructura de sintaxis de parámetro HRD respectiva en la pluralidad de estructuras de sintaxis del parámetro HRD, el VPS además incluye un elemento de sintaxis indicando si los parámetros HRD de la estructura de sintaxis de parámetro HRD respectiva incluyen un conjunto común de parámetros HRD además de un conjunto de información de parámetros HRD especifica de la sub-capa especifica para una sub-capa particular de una corriente de bits de video codificado, en donde el conjunto común de parámetros HRD es común a todas las sub-capas de la corriente de bits de video codificado; y señalizar el VPS en la corriente de bits de video codificado.
20.- El método de conformidad con la reivindicación 19, caracterizado porque la primera estructura de sintaxis del parámetro HRD señalizada en el VPS incluye un primer conjunto común de parámetros HRD.
21.- El método de conformidad con la reivindicación 20, caracterizado porque una estructura de sintaxis del parámetro HRD posterior señalizada en el VPS incluye un segundo conjunto común diferente de parámetros HRD.
22.- El método de conformidad con la reivindicación 20, caracterizado porque al menos una estructura de sintaxis del parámetro HRD señalizada en el VPS no incluye un conjunto común de parámetros HRD.
23.- Un dispositivo de codificación de video que comprende uno o más procesadores configurados para: generar un conjunto de parámetros de video (VPS) que incluye una pluralidad de estructuras de sintaxis del parámetro de Decodificador de Referencia Hipotética (HRD) en donde cada una incluye parámetros HRD, en donde para cada estructura de sintaxis de parámetro HRD respectiva en la pluralidad de estructuras de sintaxis del parámetro HRD, el VPS además incluye un elemento de sintaxis indicando si los parámetros HRD de la estructura de sintaxis de parámetro HRD respectiva incluyen un conjunto común de parámetros HRD además de un conjunto de información de parámetros HRD especifica de la sub-capa especifica para una sub-capa particular de una corriente de bits de video codificado, en donde el conjunto común de parámetros HRD es común a todas las sub-capas de la corriente de bits de video codificado; y señalizar el VPS en la corriente de bits de video codificado.
24.- El dispositivo de codificación de video de conformidad con la reivindicación 23, caracterizado porque la primera estructura de sintaxis del parámetro HRD señalizada en el VPS incluye un primer conjunto común de parámetros HRD.
25.- El dispositivo de codificación de video de conformidad con la reivindicación 24, caracterizado porque una estructura de sintaxis del parámetro HRD posterior señalizada en el VPS incluye un segundo conjunto común diferente de parámetros HRD.
26.- El dispositivo de codificación de video de conformidad con la reivindicación 24, caracterizado porque al menos una estructura de sintaxis del parámetro HRD señalizada en el VPS no incluye un conjunto común de parámetros HRD.
27.- Un dispositivo de codificación de video que comprende: medios para generar un conjunto de parámetros de video (VPS) que incluye una pluralidad de estructuras de sintaxis del parámetro de Decodificador de Referencia Hipotética (HRD) en donde cada una incluye parámetros HRD, en donde para cada estructura de sintaxis de parámetro HRD respectiva en la pluralidad de estructuras de sintaxis del parámetro HRD, el VPS además incluye un elemento de sintaxis indicando si los parámetros HRD de la estructura de sintaxis de parámetro HRD respectiva incluyen un conjunto común de parámetros HRD además de un conjunto de información de parámetros HRD especifica de la sub-capa especifica para una sub-capa particular de una corriente de bits de video codificado, en donde el conjunto común de parámetros HRD es común a todas las sub-capas de la corriente de bits de video codificado; y medios para señalizar el VPS en la corriente de bits de video codificado.
28.- El dispositivo de codificación de video de conformidad con la reivindicación 27, caracterizado porque: la primera estructura de sintaxis del parámetro HRD señalizada en el VPS incluye un primer conjunto común de parámetros HRD, una estructura de sintaxis del parámetro HRD posterior señalizada en el VPS incluye un segundo conjunto común diferente de parámetros HRD, y cada una de las estructuras de sintaxis del parámetro HRD es aplicable a un punto de operación de la corriente de bits de video codificado.
29.- Un medio de almacenamiento legible por computadora que almacena instrucciones que, cuando son ejecutadas por un dispositivo de codificación de video, configuran el dispositivo de codificación de video para: generar un conjunto de parámetros de video (VPS) que incluye una pluralidad de estructuras de sintaxis del parámetro de Decodificador de Referencia Hipotética (HRD) en donde cada una incluye parámetros HRD, en donde para cada estructura de sintaxis de parámetro HRD respectiva en la pluralidad de estructuras de sintaxis del parámetro HRD, el VPS además incluye un elemento de sintaxis indicando si los parámetros HRD de la estructura de sintaxis de parámetro HRD respectiva incluyen un conjunto común de parámetros HRD además de un conjunto de información de parámetros HRD específica de la sub-capa específica para una sub-capa particular de una corriente de bits de video codificado, en donde el conjunto común de parámetros HRD es común a todas las sub-capas de la corriente de bits de video codificado; y señalizar el VPS en la corriente de bits de video codificado.
30.- El medio de almacenamiento legible por computadora de conformidad con la reivindicación 29, caracterizado porque: la primera estructura de sintaxis del parámetro HRD señalizada en el VPS incluye un primer conjunto común de parámetros HRD, una estructura de sintaxis del parámetro HRD posterior señalizada en el VPS incluye un segundo conjunto común diferente de parámetros HRD, y cada una de las estructuras de sintaxis del parámetro HRD es aplicable a un punto de operación de la corriente de bits de video codificado.
MX2015004383A 2012-10-08 2013-09-20 Estructura de sintaxis de parametro de decodificador de referencia hipotetica. MX341437B (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201261711098P 2012-10-08 2012-10-08
US13/954,712 US9319703B2 (en) 2012-10-08 2013-07-30 Hypothetical reference decoder parameter syntax structure
PCT/US2013/060906 WO2014058598A1 (en) 2012-10-08 2013-09-20 Hypothetical reference decoder parameter syntax structure

Publications (2)

Publication Number Publication Date
MX2015004383A true MX2015004383A (es) 2015-06-10
MX341437B MX341437B (es) 2016-08-18

Family

ID=50432659

Family Applications (1)

Application Number Title Priority Date Filing Date
MX2015004383A MX341437B (es) 2012-10-08 2013-09-20 Estructura de sintaxis de parametro de decodificador de referencia hipotetica.

Country Status (30)

Country Link
US (3) US9380317B2 (es)
EP (3) EP2904782B1 (es)
JP (3) JP6062558B2 (es)
KR (3) KR101677867B1 (es)
CN (3) CN104685892B (es)
AP (1) AP3952A (es)
AR (2) AR094449A1 (es)
AU (2) AU2013330372B2 (es)
BR (2) BR112015007763B1 (es)
CA (2) CA2885807C (es)
CO (1) CO7350643A2 (es)
DK (1) DK2904782T3 (es)
EC (1) ECSP15018127A (es)
ES (2) ES2727814T3 (es)
HK (2) HK1207775A1 (es)
HU (2) HUE038492T2 (es)
IL (2) IL237949B (es)
MA (1) MA37971B1 (es)
MX (1) MX341437B (es)
MY (2) MY168739A (es)
PH (2) PH12015500625A1 (es)
PT (1) PT2904782T (es)
RU (2) RU2643463C2 (es)
SA (1) SA515360254B1 (es)
SG (2) SG11201501832UA (es)
SI (1) SI2904782T1 (es)
TW (2) TWI533674B (es)
UA (2) UA116998C2 (es)
WO (3) WO2014058598A1 (es)
ZA (1) ZA201502498B (es)

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104185992A (zh) * 2012-02-08 2014-12-03 汤姆逊许可公司 用于使用假设参考解码器的超低延迟模式的方法和装置
US9912941B2 (en) 2012-07-02 2018-03-06 Sony Corporation Video coding system with temporal layers and method of operation thereof
US10110890B2 (en) 2012-07-02 2018-10-23 Sony Corporation Video coding system with low delay and method of operation thereof
US9380317B2 (en) 2012-10-08 2016-06-28 Qualcomm Incorporated Identification of operation points applicable to nested SEI message in video coding
EP2907318A1 (en) 2012-10-09 2015-08-19 Cisco Technology, Inc. Output management of prior decoded pictures at picture format transitions in bitstreams
EP2907308B1 (en) * 2012-10-09 2019-08-14 Cisco Technology, Inc. Providing a common set of parameters for sub-layers of coded video
US9374585B2 (en) * 2012-12-19 2016-06-21 Qualcomm Incorporated Low-delay buffering model in video coding
EP3058735B1 (en) * 2013-10-14 2019-05-08 Nokia Technologies Oy Multi-layer hypothetical reference decoder
CN105981387B (zh) * 2013-10-15 2019-09-27 诺基亚技术有限公司 用于处理视频的方法、装置和计算机可读存储介质
KR101930896B1 (ko) * 2013-10-22 2018-12-19 후아웨이 테크놀러지 컴퍼니 리미티드 이미지 디코딩 장치 및 이미지 디코딩 방법
US10063867B2 (en) * 2014-06-18 2018-08-28 Qualcomm Incorporated Signaling HRD parameters for bitstream partitions
US9918091B2 (en) * 2014-06-20 2018-03-13 Qualcomm Incorporated Systems and methods for assigning a minimum value to a syntax structure in a parameter set
US10432951B2 (en) * 2014-06-24 2019-10-01 Qualcomm Incorporated Conformance and inoperability improvements in multi-layer video coding
US9800898B2 (en) 2014-10-06 2017-10-24 Microsoft Technology Licensing, Llc Syntax structures indicating completion of coded regions
WO2016180486A1 (en) * 2015-05-12 2016-11-17 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Composite scalable video streaming
US10129558B2 (en) * 2015-09-21 2018-11-13 Qualcomm Incorporated Supplement enhancement information (SEI) messages for high dynamic range and wide color gamut video coding
US10244249B2 (en) 2015-09-21 2019-03-26 Qualcomm Incorporated Fixed point implementation of range adjustment of components in video coding
US10349067B2 (en) * 2016-02-17 2019-07-09 Qualcomm Incorporated Handling of end of bitstream NAL units in L-HEVC file format and improvements to HEVC and L-HEVC tile tracks
US10397443B2 (en) * 2016-03-01 2019-08-27 Qualcomm Incorporated Methods and systems for generating color remapping information supplemental enhancement information messages for video
CA3020757C (en) * 2016-04-13 2024-02-13 Cryos Technologies Inc. Membrane-based foot imaging apparatus including a camera for monitoring foot positioning
UA124806C2 (uk) 2016-10-05 2021-11-24 Долбі Леборетеріз Лайсенсінг Корпорейшн Обмін повідомленнями з інформацією про вихідний колірний об'єм
US10728559B2 (en) * 2017-07-07 2020-07-28 Qualcomm Incorporated Precision of computation and signaling of dynamic range adjustment and color remapping information
WO2019065587A1 (en) * 2017-09-29 2019-04-04 Sharp Kabushiki Kaisha SYSTEMS AND METHODS FOR SIGNALING INFORMATION ASSOCIATED WITH A CONSTITUTIVE IMAGE
KR102284378B1 (ko) * 2018-02-07 2021-08-03 엘지전자 주식회사 비면허 대역을 지원하는 무선 통신 시스템에서 신호를 송신하는 방법 및 이를 지원하는 장치
CN109905715B (zh) * 2019-02-26 2021-07-06 北京世纪好未来教育科技有限公司 ***sei数据的码流转换方法及***
CN113892271A (zh) * 2019-05-30 2022-01-04 夏普株式会社 用于在视频编码中发送信号通知假想参考解码器参数的***和方法
US12022122B2 (en) * 2019-06-19 2024-06-25 Sharp Kabushiki Kaisha Systems and methods for signaling decoded picture buffer information in video coding
CN114009051B (zh) * 2019-06-27 2023-07-18 华为技术有限公司 用于v-pcc的假设参考解码器
EP3977746A4 (en) 2019-07-05 2022-08-03 Huawei Technologies Co., Ltd. BITSTREAM EXTRACTION FOR VIDEO CODING WITH SIGNALING IDENTIFIERS
JP7425185B2 (ja) * 2019-09-24 2024-01-30 華為技術有限公司 指定されたレイヤのためのスケーラブル・ネスティングseiメッセージ
JP2022550320A (ja) * 2019-09-24 2022-12-01 ホアウェイ・テクノロジーズ・カンパニー・リミテッド ビデオ符号化におけるseiメッセージ依存性の簡略化
JP7419507B2 (ja) * 2019-09-24 2024-01-22 ホアウェイ・テクノロジーズ・カンパニー・リミテッド Olsのためのスケーラブルネスティングseiメッセージ
KR20220063260A (ko) * 2019-09-24 2022-05-17 후아웨이 테크놀러지 컴퍼니 리미티드 시간적 스케일러빌러티를 위한 픽처 타이밍 및 디코딩 단위 정보
CN117528101A (zh) * 2019-09-24 2024-02-06 华为技术有限公司 序列级hrd参数
EP4062635A4 (en) 2019-12-26 2022-12-28 ByteDance Inc. CONSTRAINTS ON SIGNALING VIDEO LAYERS IN ENCODED BITSTREAMS
WO2021134018A1 (en) 2019-12-26 2021-07-01 Bytedance Inc. Signaling of decoded picture buffer parameters in layered video
KR20220113404A (ko) 2019-12-27 2022-08-12 바이트댄스 아이엔씨 비디오 서브픽처들을 시그널링하기 위한 신택스
WO2021142369A1 (en) 2020-01-09 2021-07-15 Bytedance Inc. Signalling of the wavefront parallel processing
KR20230015382A (ko) 2020-05-22 2023-01-31 바이트댄스 아이엔씨 비디오 비트스트림 처리에서 픽처 유형들에 대한 제약들
BR122023020999A2 (pt) * 2020-05-22 2024-02-27 Ge Video Compression, Llc Aparelho e método para receber fluxo de dados de vídeo, fluxo de dados de vídeo, codificador e decodificador de vídeo, e método para codificar um vídeo em um fluxo de dados de vídeo
WO2021237123A1 (en) 2020-05-22 2021-11-25 Bytedance Inc. Sei message handling in video sub-bitstream extraction process
AU2022271427B2 (en) * 2020-05-22 2024-01-18 Ge Video Compression, Llc Video encoder, video decoder, methods for encoding and decoding and video data stream for realizing advanced video coding concepts
KR20230020425A (ko) 2020-06-09 2023-02-10 바이트댄스 아이엔씨 비디오 코딩에서 보충 향상 정보 메시지의 스케일러블 네스팅
CN115699773A (zh) 2020-06-09 2023-02-03 字节跳动有限公司 在编解码视频中信令通知图片定时信息
JP2023529823A (ja) * 2020-06-09 2023-07-12 バイトダンス インコーポレイテッド マルチレイヤ映像ビットストリームのサブビットストリーム抽出
US11962936B2 (en) 2020-09-29 2024-04-16 Lemon Inc. Syntax for dependent random access point indication in video bitstreams
US20230412846A1 (en) * 2020-12-17 2023-12-21 Lg Electronics Inc. Method and device for generating/receiving media file including nal unit information, and method for transmitting media file
US20240205460A1 (en) * 2021-04-12 2024-06-20 Telefonaktiebolaget Lm Ericsson (Publ) Message referencing

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW262619B (en) 1995-06-06 1995-11-11 United Microelectronics Corp Shrinking device for code table of variable length decoder
EP1346568A1 (en) * 2000-12-04 2003-09-24 Koninklijke Philips Electronics N.V. Recording arrangement for the error-tolerant recording of an information signal
TWI259378B (en) 2004-02-26 2006-08-01 Cablesoft Tech Inc An automatic addressing control method for MSO CATV system
US8615038B2 (en) 2004-12-06 2013-12-24 Nokia Corporation Video coding, decoding and hypothetical reference decoder
BRPI0605857A (pt) 2005-04-19 2007-12-18 Coding Tech Ab quantização dependente de energia para a codificação eficiente de parámetros de áudio espacial
WO2007042914A1 (en) * 2005-10-11 2007-04-19 Nokia Corporation Efficient decoded picture buffer management for scalable video coding
AU2006300881B2 (en) 2005-10-11 2011-03-17 Nokia Technologies Oy System and method for efficient scalable stream adaptation
TWI432035B (zh) * 2006-01-11 2014-03-21 Nokia Corp 可縮放視訊編碼之圖像反向相容聚合技術
US20070230564A1 (en) * 2006-03-29 2007-10-04 Qualcomm Incorporated Video processing with scalability
EP2039168A2 (en) * 2006-07-05 2009-03-25 Thomson Licensing Methods and apparatus for multi-view video encoding and decoding
US8699583B2 (en) * 2006-07-11 2014-04-15 Nokia Corporation Scalable video coding and decoding
US7860147B2 (en) 2006-08-16 2010-12-28 Harris Corporation Method of communicating and associated transmitter using coded orthogonal frequency division multiplexing (COFDM)
WO2008046243A1 (en) 2006-10-16 2008-04-24 Thomson Licensing Method and device for encoding a data stream, method and device for decoding a data stream, video indexing system and image retrieval system
US20080089411A1 (en) 2006-10-16 2008-04-17 Nokia Corporation Multiple-hypothesis cross-layer prediction
US20080095228A1 (en) * 2006-10-20 2008-04-24 Nokia Corporation System and method for providing picture output indications in video coding
AU2007342468B2 (en) * 2007-01-05 2011-11-24 Interdigital Vc Holdings, Inc. Hypothetical reference decoder for scalable video coding
EP2123044A1 (en) 2007-01-08 2009-11-25 Thomson Licensing Methods and apparatus for video stream splicing
GB0700381D0 (en) * 2007-01-09 2007-02-14 Mitsubishi Electric Inf Tech Generalised Hypothetical Reference Decoder for Scalable Video Coding with Bitstream Rewriting
WO2008126059A2 (en) * 2007-04-17 2008-10-23 Nokia Corporation Feedback based scalable video coding
US8761265B2 (en) * 2007-04-17 2014-06-24 Thomson Licensing Hypothetical reference decoder for multiview video coding
US20100142613A1 (en) 2007-04-18 2010-06-10 Lihua Zhu Method for encoding video data in a scalable manner
KR101663438B1 (ko) * 2007-04-18 2016-10-06 톰슨 라이센싱 코딩 시스템
US20090003431A1 (en) * 2007-06-28 2009-01-01 Lihua Zhu Method for encoding video data in a scalable manner
KR20100030648A (ko) 2007-06-26 2010-03-18 노키아 코포레이션 시간 레이어 스위칭 포인트들을 표시하는 시스템 및 방법
JP5153674B2 (ja) * 2008-02-26 2013-02-27 キヤノン株式会社 動画像符号化装置及び動画像符号化方法
US8369415B2 (en) * 2008-03-06 2013-02-05 General Instrument Corporation Method and apparatus for decoding an enhanced video stream
FR2932050B1 (fr) 2008-06-03 2010-05-21 Canon Kk Procede et dispositif de transmission de donnees video
RU2492585C2 (ru) 2008-07-16 2013-09-10 Нокиа Корпорейшн Способ и устройство для группирования треков и подмножеств треков
WO2010021665A1 (en) 2008-08-20 2010-02-25 Thomson Licensing Hypothetical reference decoder
JP5072893B2 (ja) * 2009-03-25 2012-11-14 株式会社東芝 画像符号化方法および画像復号化方法
JP5267886B2 (ja) 2009-04-08 2013-08-21 ソニー株式会社 再生装置、記録媒体、および情報処理方法
JP5614901B2 (ja) 2009-05-01 2014-10-29 トムソン ライセンシングThomson Licensing 3dvの参照ピクチャ・リスト
US8948241B2 (en) 2009-08-07 2015-02-03 Qualcomm Incorporated Signaling characteristics of an MVC operation point
CN103119934B (zh) 2010-07-20 2017-02-22 诺基亚技术有限公司 一种流媒体传输装置
US9131033B2 (en) 2010-07-20 2015-09-08 Qualcomm Incoporated Providing sequence data sets for streaming video data
US9716920B2 (en) * 2010-08-05 2017-07-25 Qualcomm Incorporated Signaling attributes for network-streamed video data
US9635355B2 (en) 2011-07-28 2017-04-25 Qualcomm Incorporated Multiview video coding
US10244257B2 (en) 2011-08-31 2019-03-26 Nokia Technologies Oy Video coding and decoding
US9591361B2 (en) 2011-09-07 2017-03-07 Qualcomm Incorporated Streaming of multimedia data from multiple sources
US9998726B2 (en) * 2012-06-20 2018-06-12 Nokia Technologies Oy Apparatus, a method and a computer program for video coding and decoding
US9351005B2 (en) 2012-09-24 2016-05-24 Qualcomm Incorporated Bitstream conformance test in video coding
US8989508B2 (en) * 2012-09-28 2015-03-24 Sharp Kabushiki Kaisha Electronic device for signaling a sub-picture buffer parameter
US9380317B2 (en) 2012-10-08 2016-06-28 Qualcomm Incorporated Identification of operation points applicable to nested SEI message in video coding

Also Published As

Publication number Publication date
JP6077124B2 (ja) 2017-02-08
KR20150067319A (ko) 2015-06-17
SG11201501833PA (en) 2015-05-28
CN104685892B (zh) 2019-02-22
CN104704842B (zh) 2018-04-20
CN104685891B (zh) 2018-07-20
KR101677867B1 (ko) 2016-11-18
BR112015007761A2 (pt) 2017-07-04
HK1209550A1 (en) 2016-04-01
US20140098894A1 (en) 2014-04-10
EP2904787A1 (en) 2015-08-12
MY168739A (en) 2018-11-29
KR101697886B1 (ko) 2017-01-18
BR112015007763B1 (pt) 2022-08-02
JP2015532551A (ja) 2015-11-09
RU2015117436A (ru) 2016-11-27
AR094449A1 (es) 2015-08-05
TWI565299B (zh) 2017-01-01
MA37971B1 (fr) 2016-10-31
PH12015500742A1 (en) 2015-05-25
AU2013330284B2 (en) 2017-06-08
RU2015117520A (ru) 2016-11-27
HUE043479T2 (hu) 2019-08-28
CO7350643A2 (es) 2015-08-10
US9154785B2 (en) 2015-10-06
MX341437B (es) 2016-08-18
HK1207775A1 (en) 2016-02-05
ECSP15018127A (es) 2015-12-31
SA515360254B1 (ar) 2016-08-15
CA2885670C (en) 2017-07-18
SG11201501832UA (en) 2015-05-28
RU2633100C2 (ru) 2017-10-11
AU2013330284A1 (en) 2015-04-23
BR112015007763A2 (pt) 2017-07-04
US20140098895A1 (en) 2014-04-10
EP2904782A1 (en) 2015-08-12
CN104685891A (zh) 2015-06-03
SI2904782T1 (en) 2018-05-31
EP2904784A1 (en) 2015-08-12
PH12015500625B1 (en) 2015-05-11
AU2013330372B2 (en) 2017-07-06
JP2015536114A (ja) 2015-12-17
US20140098896A1 (en) 2014-04-10
JP6062558B2 (ja) 2017-01-18
TW201429256A (zh) 2014-07-16
ES2727814T3 (es) 2019-10-18
WO2014058599A1 (en) 2014-04-17
MY172252A (en) 2019-11-20
HUE038492T2 (hu) 2018-10-29
PH12015500625A1 (en) 2015-05-11
UA116998C2 (uk) 2018-06-11
AU2013330372A1 (en) 2015-04-16
CA2885670A1 (en) 2014-04-17
US9319703B2 (en) 2016-04-19
CA2885807C (en) 2018-04-03
WO2014058598A1 (en) 2014-04-17
DK2904782T3 (en) 2018-04-30
IL237949B (en) 2019-10-31
AP2015008363A0 (en) 2015-04-30
CA2885807A1 (en) 2014-04-17
TW201436536A (zh) 2014-09-16
ZA201502498B (en) 2017-09-27
RU2643463C2 (ru) 2018-02-01
KR20150056877A (ko) 2015-05-27
AR093288A1 (es) 2015-05-27
IL237949A0 (en) 2015-05-31
JP6013614B2 (ja) 2016-10-25
TWI533674B (zh) 2016-05-11
EP2904787B1 (en) 2019-02-27
US9380317B2 (en) 2016-06-28
CN104704842A (zh) 2015-06-10
ES2663692T3 (es) 2018-04-16
EP2904782B1 (en) 2018-01-17
CN104685892A (zh) 2015-06-03
MA37971A1 (fr) 2016-03-31
JP2015537420A (ja) 2015-12-24
WO2014058600A1 (en) 2014-04-17
AP3952A (en) 2016-12-21
BR112015007761B1 (pt) 2022-08-09
PT2904782T (pt) 2018-04-23
IL237948A (en) 2016-11-30
PH12015500742B1 (en) 2015-05-25
UA116363C2 (uk) 2018-03-12
EP2904784B1 (en) 2018-12-19
KR20150067318A (ko) 2015-06-17
KR101719935B1 (ko) 2017-03-24

Similar Documents

Publication Publication Date Title
JP6077124B2 (ja) 仮想参照デコーダパラメータシンタックス構造
KR101776448B1 (ko) 비디오 코딩에 있어서의 비-네스팅된 sei 메시지들
KR102054040B1 (ko) 멀티-계층 비디오 코덱들에 대한 멀티-모드 추출의 지원

Legal Events

Date Code Title Description
FG Grant or registration