ES2711892T3 - Señalización de puntos de operación para el transporte de extensiones de la HEVC - Google Patents

Señalización de puntos de operación para el transporte de extensiones de la HEVC Download PDF

Info

Publication number
ES2711892T3
ES2711892T3 ES16712105T ES16712105T ES2711892T3 ES 2711892 T3 ES2711892 T3 ES 2711892T3 ES 16712105 T ES16712105 T ES 16712105T ES 16712105 T ES16712105 T ES 16712105T ES 2711892 T3 ES2711892 T3 ES 2711892T3
Authority
ES
Spain
Prior art keywords
descriptor
elementary
syntactic
syntactic element
list
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES16712105T
Other languages
English (en)
Inventor
Fnu Hendry
Ying Chen
Ye-Kui Wang
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Application granted granted Critical
Publication of ES2711892T3 publication Critical patent/ES2711892T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234327Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by decomposing into layers, e.g. base layer and one or more enhancement layers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • H04N21/2353Processing of additional data, e.g. scrambling of additional data or processing content descriptors specifically adapted to content descriptors, e.g. coding, compressing or processing of metadata
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Library & Information Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Communication Control (AREA)

Abstract

Un procedimiento para procesamiento de datos de vídeo, el procedimiento que comprende: recibir (200; 300) un flujo de transporte que incluye un primer descriptor, un segundo descriptor y una pluralidad de flujos elementales, siendo el primer descriptor un descriptor para un punto de operación de los datos de vídeo, siendo el segundo descriptor uno entre: un descriptor de jerarquía o un descriptor de extensión jerárquica; decodificar (202, 204; 304, 306) un primer elemento sintáctico y un segundo elemento sintáctico en el primer descriptor, en donde: una lista de flujos elementales es una lista de flujos elementales del flujo de transporte que forman parte del punto de operación, el segundo descriptor tiene un valor de índice de capa jerárquica igual a un valor del segundo elemento sintáctico, un primer valor del primer elemento sintáctico especifica que: un flujo elemental indicado por el segundo elemento sintáctico, cuando no esté presente en la lista de flujos elementales, se agregará a la lista de flujos elementales, siendo el flujo elemental indicado por el segundo elemento sintáctico uno entre la pluralidad de flujos elementales, y un flujo elemental indicado por un índice de capa integrada en el segundo descriptor, cuando no esté presente en la lista de flujos elementales, se agregará a la lista de flujos elementales, siendo el flujo elemental indicado por el índice de capa integrada en el segundo descriptor uno entre la pluralidad de flujos elementales, y en respuesta a la determinación (206) de que el primer elemento sintáctico tiene un segundo valor diferente al primer valor, agregar (208; 308) el flujo elemental indicado por el segundo elemento sintáctico, cuando no esté presente en la lista de flujos elementales, a la lista de flujos elementales, pero no agregar el flujo elemental, indicado por el índice de capa integrada en el segundo descriptor, en la lista de flujos elementales.

Description

DESCRIPCION
Senalizacion de puntos de operacion para el transporte de extensiones de la HEVC
CAMPO TECNICO
[0001] Esta divulgacion se refiere a la codificacion de video y, mas particularmente, al transporte de datos de video codificados.
ANTECEDENTES
[0002] Las capacidades del video digital pueden incorporarse en una amplia gama de dispositivos, incluyendo televisores digitales, sistemas de difusion directa digital, sistemas de difusion inalambrica, asistentes digitales personales (PDA), ordenadores portatiles o de escritorio, ordenadores de tableta, lectores de libros electronicos, camaras digitales, dispositivos de grabacion digital, reproductores de medios digitales, dispositivos de videojuegos, consolas de videojuegos, telefonos celulares o de radio por satelite, los denominados "telefonos inteligentes", dispositivos de videoconferencia, dispositivos de transmision por flujo de video y similares. Los dispositivos de video digital implementan tecnicas de codificacion de video, tales como las descritas en las normas definidas por MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Parte 10, Codificacion de Video Avanzada (AVC), la norma de Codificacion de Video de Alta Eficacia (HEVC) y las extensiones de dichas normas. Los dispositivos de video pueden transmitir, recibir, codificar, decodificar y/o almacenar informacion de video digital mas eficazmente, implementando tales tecnicas de codificacion de video.
[0003] Las tecnicas de codificacion de video incluyen la prediccion espacial (intraimagen) y/o la prediccion temporal (entre imagenes) para reducir o eliminar la redundancia intrinseca en las secuencias de video. Para la codificacion de video basada en bloques, un fragmento de video (por ejemplo, una trama de video o una parte de una trama de video) puede dividirse en bloques de video, que tambien pueden denominarse bloques arbolados, unidades de codificacion (CU) y/o nodos de codificacion. Los bloques de video en un fragmento intracodificado (I) de una imagen se codifican utilizando prediccion espacial con respecto a muestras de referencia en bloques contiguos en la misma imagen. Los bloques de video en un fragmento intercodificado (P o B) de una imagen pueden usar la prediccion espacial con respecto a muestras de referencia en bloques vecinos en la misma imagen o la prediccion temporal con respecto a muestras de referencia en otras imagenes de referencia. Las imagenes pueden denominarse tramas, y las imagenes de referencia pueden denominarse tramas de referencia.
[0004] La prediccion espacial o temporal da como resultado un bloque predictivo para un bloque a codificar. Los datos residuales representan diferencias de pixeles entre el bloque original a codificar y el bloque predictivo. Un bloque intercodificado se codifica de acuerdo con un vector de movimiento que apunta a un bloque de muestras de referencia que forman el bloque predictivo, y los datos residuales que indican la diferencia entre el bloque codificado y el bloque predictivo. Un bloque intracodificado se codifica de acuerdo con una modalidad de intracodificacion y a los datos residuales. Para una mayor compresion, los datos residuales pueden transformarse desde el dominio de pixeles a un dominio de transformacion, dando como resultado coeficientes de transformacion residuales, que a continuacion se pueden cuantizar. Los coeficientes de transformacion cuantizados, dispuestos inicialmente en una formacion bidimensional, pueden examinarse con el fin de generar un vector unidimensional de coeficientes de transformacion, y puede aplicarse codificacion por entropia para lograr aun mas compresion.
[0005] El documento "Proposed Study Text of ISO/IEC 13818-1:2013/PDAM7 [Texto de estudio propuesto de ISO / IEC 13818-1: 2013 / PDAM7]”, de Gruneberg et al, describe las mejoras tecnicas propuestas relacionadas con el transporte de datos de video de la HEVC en capas.
SUMARIO
[0006] El alcance de la proteccion se define en las reivindicaciones independientes, a las que ahora se debe hacer referencia. Las caracteristicas optativas se incluyen en las reivindicaciones dependientes.
[0007] En general, esta divulgacion describe tecnicas que pueden mejorar el diseno del descriptor del punto de operacion de HEVC en el flujo de transporte (TS) de MPEG-2 (Grupo de Expertos en Imagenes en Movimiento) para el transporte. El transporte de datos de video codificados tambien puede denominarse porte de datos de video codificados. Las tecnicas de esta divulgacion pueden usarse para el transporte de datos de video codificados para una extension de una norma de codificacion de video, por ejemplo, una extension de la norma de codificacion de video de alta eficacia (HEVC). Dichas extensiones pueden incluir extensiones de vista multiple (por ejemplo, MV-HEVC), extensiones ajustables a escala (por ejemplo, SHVC) y extensiones en tres dimensiones (por ejemplo, 3D-HEVC). Sin embargo, deberia entenderse que las tecnicas de esta divulgacion pueden usarse con otros flujos de transporte y / u otras tecnicas de compresion de video.
[0008] En un aspecto, esta divulgacion describe un procedimiento para procesar datos de video, comprendiendo el procedimiento: recibir un flujo de transporte que incluye un primer descriptor, un segundo descriptor y una pluralidad de flujos elementales, siendo el primer descriptor un descriptor para un punto de operacion de los datos de video, siendo el segundo descriptor uno entre: un descriptor jerarquico o un descriptor de extension jerarquica; decodificar un primer elemento sintactico y un segundo elemento sintactico en el primer descriptor, en donde: una lista de flujos elementales es una lista de flujos elementales del flujo de transporte que forman parte del punto de operacion, el segundo descriptor tiene un valor de indice de capa jerarquica igual a un valor del segundo elemento sintactico, un primer valor del primer elemento sintactico especifica que: un flujo elemental indicado por el segundo elemento sintactico, cuando no este presente en la lista de flujos elementales, se agregara a la lista de flujos elementales, siendo el flujo elemental indicado por el segundo elemento sintactico uno entre la pluralidad de flujos elementales, y un flujo elemental, indicado por un indice de capa incrustado en el segundo descriptor, cuando no este presente en la lista de flujos elementales, se agregara a la lista de flujos elementales, siendo el flujo elemental indicado por el indice de capa incrustado en el segundo descriptor uno entre la pluralidad de flujos elementales; y, en respuesta a la determinacion de que el primer elemento sintactico tiene un segundo valor diferente al primer valor, agregar el flujo elemental indicado por el segundo elemento sintactico, cuando no este presente en la lista de flujos elementales, en la lista de flujos elementales, pero no agregar el flujo elemental, indicado por el indice de capa incrustado en el segundo descriptor, en la lista de flujos elementales.
[0009] En otro aspecto, esta divulgacion describe un procedimiento para procesar datos de video, comprendiendo el procedimiento: generar un primer descriptor, siendo el primer descriptor un descriptor de un punto de operacion de los datos de video; generar un segundo descriptor, siendo el segundo descriptor uno entre: un descriptor jerarquico o un descriptor de extension jerarquica; en donde generar el primer descriptor comprende: incluir un primer elemento sintactico y un segundo elemento sintactico en el primer descriptor, en donde: una lista de flujos elementales es una lista de flujos elementales que forman parte del punto de operacion, el segundo descriptor tiene un indice de capa jerarquica igual a un valor del segundo elemento sintactico, un primer valor del primer elemento sintactico especifica que: un flujo elemental indicado por el segundo elemento sintactico, cuando no este presente en la lista de flujos elementales, se agregara a la lista de flujos elementales, y un flujo elemental, indicado por un indice de capa incrustado en el segundo descriptor, cuando no este presente en la lista de flujos elementales, se agregara a la lista de flujos elementales, y un segundo valor del primer elemento sintactico especifica que el flujo elemental indicado por el segundo elemento sintactico, cuando no este presente en la lista de flujos elementales, se agregara a la lista de flujos elementales, pero no el flujo elemental indicado por el indice de capa incrustado en el segundo descriptor; e incluir el primer descriptor y el segundo descriptor en un flujo de transporte.
[0010] En otro aspecto, esta divulgacion describe un dispositivo para procesar datos de video, comprendiendo el dispositivo: una interfaz de entrada configurada para recibir informacion, incluyendo la informacion un flujo de transporte que incluye un primer descriptor, un segundo descriptor y una pluralidad de flujos elementales, siendo el primer descriptor un descriptor para un punto de operacion de los datos de video, siendo el segundo descriptor uno entre: un descriptor jerarquico o un descriptor de extension jerarquica; y uno o mas procesadores configurados para: decodificar un primer elemento sintactico y un segundo elemento sintactico en el primer descriptor, en donde: una lista de flujos elementales es una lista de flujos elementales del flujo de transporte que forman parte del punto de operacion, el segundo descriptor tiene un valor de indice de capa jerarquica igual a un valor del segundo elemento sintactico, un primer valor del primer elemento sintactico especifica que: un flujo elemental indicado por el segundo elemento sintactico, cuando no este presente en la lista de flujos elementales, se agregara a la lista de flujos elementales, siendo el flujo elemental indicado por el segundo elemento sintactico uno entre la pluralidad de flujos elementales, y un flujo elemental indicado por un indice de capa incrustado en el segundo descriptor, cuando no este presente en la lista de flujos elementales, se agregara a la lista de flujos elementales, siendo el flujo elemental indicado por el indice de capa incrustado en el segundo descriptor uno entre la pluralidad de flujos elementales; y, en respuesta a la determinacion de que el primer elemento sintactico tiene un segundo valor diferente al primer valor, agregar el flujo elemental indicado por el segundo elemento sintactico, cuando no este presente en la lista de flujos elementales, en la lista de flujos elementales, pero no agregar el flujo elemental, indicado por el indice de capa incrustado en el segundo descriptor, en la lista de flujos elementales.
[0011] En otro aspecto, esta divulgacion describe un dispositivo para procesar datos de video, comprendiendo el dispositivo: uno o mas procesadores configurados para: generar un primer descriptor, siendo el primer descriptor un descriptor de un punto de operacion de los datos de video; generar un segundo descriptor, siendo el segundo descriptor uno entre: un descriptor jerarquico o un descriptor de extension jerarquica; en el que los uno o mas procesadores estan configurados de tal manera que, como parte de la generacion del primer descriptor, los uno o mas procesadores: incluyen un primer elemento sintactico y un segundo elemento sintactico en el primer descriptor, en donde: una lista de flujos elementales es una lista de flujos elementales que forman parte del punto de operacion, el segundo descriptor tiene un valor de indice de capa jerarquica igual a un valor del segundo elemento sintactico, un primer valor del primer elemento sintactico especifica que: un flujo elemental indicado por el segundo elemento sintactico, cuando no este presente en la lista de flujos elementales, se agregara a la lista de flujos elementales, y un flujo elemental indicado por un indice de capa incrustado en el segundo descriptor, cuando no este presente en la lista de flujos elementales, se agregara a la lista de flujos elementales, y un segundo valor del primer elemento sintactico especifica que el flujo elemental indicado por el segundo elemento sintactico, cuando no este presente en la lista de flujos elementales, se agregara a la lista de flujos elementales, pero no el flujo elemental indicado por el indice de capa incrustado en el segundo descriptor; e incluir el primer descriptor y el segundo descriptor en un flujo de transporte; y una interfaz de salida configurada para generar una version codificada de los datos de video.
[0012] En otro aspecto, esta divulgacion describe un dispositivo para procesar datos de video, comprendiendo el dispositivo medios para recibir un flujo de transporte que incluye un primer descriptor, un segundo descriptor y una pluralidad de flujos elementales, siendo el primer descriptor un descriptor para un punto de operacion de los datos de video, siendo el segundo descriptor uno entre: un descriptor jerarquico o un descriptor de extension jerarquica; medios para decodificar un primer elemento sintactico y un segundo elemento sintactico en el primer descriptor, en donde: una lista de flujos elementales es una lista de flujos elementales del flujo de transporte que forman parte del punto de operacion, el segundo descriptor tiene un valor de indice de capa jerarquica igual a un valor del segundo elemento sintactico, un primer valor del primer elemento sintactico especifica que: un flujo elemental indicado por el segundo elemento sintactico, cuando no este presente en la lista de flujos elementales, se agregara a la lista de flujos elementales, siendo el flujo elemental indicado por el segundo elemento sintactico uno entre la pluralidad de flujos elementales, y un flujo elemental indicado por un indice de capa incrustado en el segundo descriptor, cuando no este presente en la lista de flujos elementales, se agregara a la lista de flujos elementales, siendo el flujo elemental indicado por el indice de capa incrustado en el segundo descriptor uno entre la pluralidad de flujos elementales, y medios para agregar, en respuesta a la determinacion de que el primer elemento sintactico tiene un segundo valor diferente al primer valor, el flujo elemental indicado por el segundo elemento sintactico, cuando no esta presente en la lista de flujos elementales, en la lista de flujos elementales, pero sin agregar el flujo elemental, indicado por el indice de capa incrustado en el segundo descriptor, en la lista de flujos elementales.
[0013] En otro aspecto, esta divulgacion describe un dispositivo para procesar datos de video, comprendiendo el dispositivo medios para generar un primer descriptor, siendo el primer descriptor un descriptor de un punto de operacion de los datos de video; medios para generar un segundo descriptor, siendo el segundo descriptor uno entre: un descriptor jerarquico o un descriptor de extension jerarquica; en donde los medios para generar el primer descriptor comprenden: medios para incluir un primer elemento sintactico y un segundo elemento sintactico en el primer descriptor, en donde: una lista de flujos elementales es una lista de flujos elementales que forman parte del punto de operacion, el segundo descriptor tiene un valor de indice de capa jerarquica igual a un valor del segundo elemento sintactico, un primer valor del primer elemento sintactico especifica que: un flujo elemental indicado por el segundo elemento sintactico, cuando no este presente en la lista de flujos elementales, se agregara a la lista de flujos elementales, y un flujo elemental indicado por un indice de capa incrustado en el segundo descriptor, cuando no este presente en la lista de flujos elementales, se agregara a la lista de flujos elementales, y un segundo valor del primer elemento sintactico especifica que el flujo elemental indicado por el segundo elemento sintactico, cuando no este presente en la lista de flujos elementales, se agregara a la lista de flujos elementales, pero no el flujo elemental indicado por el indice de capa incrustado en el segundo descriptor; y medios para incluir el primer descriptor y el segundo descriptor en un flujo de transporte.
[0014] En otro aspecto mas, esta divulgacion describe un medio de almacenamiento de datos legible por ordenador que comprende instrucciones almacenadas en el mismo que, cuando se ejecutan, hacen que un dispositivo para procesar datos de video realice los procedimientos de los parrafos anteriores y descritos en esta divulgacion.
[0015] Los detalles de uno o mas ejemplos se exponen en los dibujos adjuntos y en la siguiente descripcion. Otras caracteristicas, objetos y ventajas resultaran evidentes a partir de la descripcion y de los dibujos, y a partir de las reivindicaciones.
BREVE DESCRIPCION DE LOS DIBUJOS
[0016]
La figura 1 es un diagrama de bloques que ilustra un sistema ejemplar de codificacion y decodificacion de video que puede utilizar tecnicas para transportar datos de video codificados de acuerdo con extensiones de una norma de codificacion de video.
La figura 2 es un diagrama de bloques que ilustra un ejemplo de un codificador de video que puede implementar tecnicas para transportar datos de video codificados de acuerdo con las extensiones de la norma de codificacion de video.
La figura 3 es un diagrama de bloques que ilustra un ejemplo de un decodificador de video que puede implementar tecnicas para transportar datos de video codificados de acuerdo con las extensiones de la norma de codificacion de video.
La figura 4 es un diagrama de flujo que ilustra una operacion ejemplar de un dispositivo que genera un flujo de transporte, de acuerdo con una tecnica de esta divulgacion.
La figura 5 es un diagrama de flujo que ilustra una operacion ejemplar de un dispositivo que recibe un flujo de transporte, de acuerdo con una tecnica de esta divulgacion.
La figura 6 es un diagrama de flujo que ilustra una operacion ejemplar de un dispositivo para generar un flujo de transporte de acuerdo con una tecnica ejemplar de esta divulgacion.
La figura 7 es un diagrama de flujo que ilustra una operacion ejemplar de un dispositivo que recibe un flujo de transporte de acuerdo con una tecnica ejemplar de esta divulgacion.
DESCRIPCION DETALLADA
[0017] En general, esta divulgacion describe tecnicas relacionadas con datos del nivel de Sistemas del grupo de expertos en imagenes en movimiento (MPEG)-2 para datos de medios. La especificacion de sistemas de MPEG-2 generalmente describe como dos o mas flujos de datos se multiplexan entre si para formar un solo flujo de datos. Esta divulgacion describe tecnicas relacionadas con los datos de los sistemas de MpEG-2 para datos de video de multiples capas. Por ejemplo, esta divulgacion describe cambios que potencialmente pueden mejorar el diseno del descriptor de punto de operacion de la Codificacion de video de alta eficacia (HEVC) en flujos de transporte (TS) del MPEG-2 para el transporte de extensiones de la HEVC. Sin embargo, las tecnicas de esta divulgacion no estan necesariamente limitadas al Ts del MPEG-2 o a la HEVC.
[0018] Solo para facilitar la descripcion, las tecnicas de esta divulgacion se describen generalmente para el porte (por ejemplo, el transporte) de datos de video codificados de acuerdo con una extension para una norma de codificacion de video (por ejemplo, una extension a la HEVC, tambien conocida como ITU-T H.265). Dichas extensiones pueden incluir extensiones de vista multiple, tridimensionales y / o ajustables a escala. Por lo tanto, las tecnicas de esta divulgacion pueden aplicarse a la HEVC de vista multiple (MV-HEVC), la HEVC tridimensional (3D-HEVC) y la HEVC ajustable a escala (SHVC).
[0019] Los datos de video de multiples capas, por ejemplo, los datos de video de multiples vistas y / o los datos de video con multiples capas ajustables a escala, pueden incluir puntos de operacion designados. En general, un punto de operacion describe un subconjunto de capas (por ejemplo, vistas) de un conjunto completo de capas de datos de video de multiples capas. El punto de operacion tambien puede identificar las capas de salida de destino, es decir, las capas para las cuales se han de emitir los datos. En algunos casos, los datos de una capa pueden incluirse en un punto de operacion solo para su uso como capa de referencia y, por lo tanto, dicha capa no se considerara una capa de salida de destino. Una capa de referencia puede ser una capa utilizada como referencia por otra capa para la codificacion y decodificacion.
[0020] Los puntos de operacion de la HEVC generalmente se senalizan en un descriptor de punto de operacion de la HEVC especificando referencias a flujos elementales, como se describe con mas detalle a continuacion. Sin embargo, algunos disenos del descriptor de punto de operacion de la HEVC permiten una lista de flujos elementales para que un punto de operacion de destino incluya una capa o un flujo elemental dos veces. Ademas, en algunos casos, no todas las capas que deben decodificarse estan senalizadas en algunos disenos del descriptor del punto de operacion de la HEVC porque la informacion para dichas capas esta disponible en otros lugares. En algunos ejemplos, debido a que una capa particular no esta senalizada, ciertos elementos sintacticos asociados a la capa pueden no estar disponibles para el decodificador de video.
[0021] Las tecnicas descritas en esta divulgacion pueden abordar una o mas de las cuestiones descritas anteriormente. Sin embargo, no es una necesidad que las tecnicas aborden las cuestiones descritas anteriormente. Por ejemplo, la divulgacion describe ejemplos que pueden garantizar que un flujo, o una capa, elemental no se incluya varias veces en la lista de flujos elementales del punto de operacion. La divulgacion tambien describe ejemplos de inclusion de informacion en el flujo de bits que recibe un decodificador de video que incluye elementos sintacticos asociados a una capa, incluso si esa capa no se senaliza explicitamente como parte de la lista de flujos elementales del punto de operacion.
[0022] La figura 1 es un diagrama de bloques que ilustra un sistema ejemplar de codificacion y decodificacion de video 10 que puede utilizar tecnicas para transportar datos de video codificados de acuerdo con extensiones de una norma de codificacion de video. Como se muestra en la figura 1, el sistema 10 incluye un dispositivo de origen 12 que proporciona datos de video codificados, a ser decodificados en un momento posterior por un dispositivo de destino 14. En particular, el dispositivo de origen 12 proporciona los datos de video al dispositivo de destino 14 mediante un medio legible por ordenador 16. El dispositivo de origen 12 y el dispositivo de destino 14 pueden comprender cualquiera entre una amplia gama de dispositivos, incluyendo ordenadores de escritorio, ordenadores plegables (es decir, portatiles), ordenadores de tableta, decodificadores, equipos telefonicos de mano tales como los denominados telefonos “inteligentes”, tabletas, televisores, camaras, dispositivos de visualizacion, reproductores de medios digitales, consolas de videojuegos, dispositivo de transmision por flujo de video o similares. En algunos ejemplos, el dispositivo de origen 12 y el dispositivo de destino 14 pueden estar equipados para la comunicacion inalambrica. Por lo tanto, en algunos ejemplos, el dispositivo de origen 12 y el dispositivo de destino 14 son dispositivos de comunicacion inalambrica.
[0023] En el ejemplo de la figura 1, el dispositivo de origen 12 incluye un origen de video 18, un codificador de video 20, un multiplexador 21 y una interfaz de salida 22. En algunos ejemplos, la interfaz de salida 22 incluye un modulador/demodulador (modem) y/o un transmisor. El origen de video 18 puede incluir un origen tal como un dispositivo de captura de video, por ejemplo, una videocamara, un archivo de video que contiene video previamente capturado, una interfaz de alimentacion de video para recibir video desde un proveedor de contenido de video y/o un sistema de graficos de ordenador para generar datos de graficos de ordenador como el video de origen, o una combinacion de dichos origenes. Sin embargo, las tecnicas descritas en esta divulgacion pueden ser aplicables a la codificacion de video en general, y se pueden aplicar a aplicaciones inalambricas y/o cableadas.
[0024] El codificador de video 20 puede codificar datos de video capturados, precapturados o generados por ordenador. El dispositivo de origen 12 puede transmitir los datos de video codificados directamente al dispositivo de destino 14 mediante la interfaz de salida 22 del dispositivo de origen 12. Los datos de video codificados pueden almacenarse tambien (o de forma alternativa) en un dispositivo de almacenamiento para un acceso posterior por parte del dispositivo de destino 14 u otros dispositivos, para su decodificacion y/o reproduccion. La informacion de video codificada puede entonces ser emitida por la interfaz de salida 22 hacia un medio legible por ordenador 16.
[0025] El dispositivo de destino 14 incluye una interfaz de entrada 28, un demultiplexador 29, un decodificador de video 30 y un dispositivo de visualizacion 32. En algunos casos, la interfaz de entrada 28 puede incluir un receptor y/o un modem. La interfaz de entrada 28 del dispositivo de destino 14 recibe los datos de video codificados por un enlace 16. Los datos de video codificados, comunicados por el enlace 16, o proporcionados en el dispositivo de almacenamiento 33, pueden incluir una diversidad de elementos sintacticos generados por el codificador de video 20, para su uso por un decodificador de video, tal como el decodificador de video 30, en la decodificacion de los datos de video. Dichos elementos sintacticos se pueden incluir con los datos de video codificados, transmitidos en un medio de comunicacion, almacenar en un medio de almacenamiento o almacenar en un servidor de ficheros.
[0026] El dispositivo de destino 14 puede recibir los datos de video codificados, a decodificar mediante el medio legible por ordenador 16. El medio legible por ordenador 16 puede comprender cualquier tipo de medio o dispositivo capaz de desplazar los datos de video codificados desde el dispositivo de origen 12 al dispositivo de destino 14. En un ejemplo, el medio legible por ordenador 16 puede comprender un medio de comunicacion que habilita el dispositivo de origen 12 para transmitir datos de video codificados directamente al dispositivo de destino 14 en tiempo real. Los datos de video codificados se pueden modular de acuerdo con una norma de comunicacion, tal como un protocolo de comunicacion inalambrica, y transmitir al dispositivo de destino 14. El medio de comunicacion puede comprender cualquier medio de comunicacion, inalambrica o cableada, tal como un espectro de radiofrecuencia (RF) o una o mas lineas de transmision fisica. El medio de comunicacion puede formar parte de una red basada en paquetes, tal como una red de area local, una red de area amplia o una red global tal como Internet. El medio de comunicacion puede incluir encaminadores, conmutadores, estaciones base o cualquier otro equipo que pueda ser util para facilitar la comunicacion desde el dispositivo de origen 12 hasta el dispositivo de destino 14.
[0027] En algunos ejemplos, pueden emitirse datos codificados desde la interfaz de salida 22 hasta un dispositivo de almacenamiento. Por ejemplo, el dispositivo de origen 12 puede incluir un dispositivo de almacenamiento configurado para almacenar los datos de video codificados. En algunos ejemplos, se puede acceder a los datos codificados desde el dispositivo de almacenamiento mediante la interfaz de entrada 28. El dispositivo de almacenamiento puede incluir cualquiera entre una diversidad de medios de almacenamiento de datos, de acceso distribuido o local, tales como una unidad de disco duro, discos Blu-ray, discos DVD, discos CD-ROM, memoria flash, memoria volatil o no volatil u otros medios adecuados cualesquiera de almacenamiento digital para almacenar datos de video codificados. En un ejemplo adicional, el dispositivo de almacenamiento puede corresponder a un servidor de ficheros o a otro dispositivo de almacenamiento intermedio que pueda almacenar los datos de video codificados, generados por el dispositivo de origen 12. El dispositivo de destino 14 puede acceder a datos de video almacenados desde el dispositivo de almacenamiento mediante transmision por flujo o descarga. El servidor de ficheros puede ser cualquier tipo de servidor capaz de almacenar datos de video codificados y transmitir esos datos de video codificados al dispositivo de destino 14. Los servidores de ficheros ejemplares incluyen servidores de la Red (por ejemplo, para una sede de la Red), servidores del FTP, dispositivos de almacenamiento conectados a la red (NAS), o unidades de disco locales u otros servidores configurados para proporcionar ficheros. El dispositivo de destino 14 puede acceder a los datos de video codificados a traves de cualquier conexion de datos estandar, incluyendo una conexion a Internet. Esto puede incluir un canal inalambrico (por ejemplo, una conexion de Wi-Fi), una conexion por cable (por ejemplo, un modem DSL, un modem por cable), o una combinacion de ambos que sea adecuada para acceder a datos de video codificados almacenados en un servidor de ficheros. La transmision de datos de video codificados desde el dispositivo de almacenamiento puede ser una transmision por flujo, una transmision de descarga o una combinacion de ambas.
[0028] El medio legible por ordenador 16 puede incluir medios transitorios, tales como una difusion inalambrica o una transmision de red cableada, o medios de almacenamiento (es decir, medios de almacenamiento no transitorio), tales como un disco duro, una unidad de memoria flash, un disco compacto, un disco de video digital, un disco Bluray u otros medios legibles por ordenador. En algunos ejemplos, un servidor de red (no mostrado) puede recibir datos de video codificados desde el dispositivo de origen 12 y proporcionar los datos de video codificados al dispositivo de destino 14, por ejemplo, mediante transmision por red. De manera similar, un dispositivo informatico de una utilidad de produccion de un medio, tal como una utilidad de grabacion de discos, puede recibir datos de video codificados desde el dispositivo de origen 12 y producir un disco que contiene los datos de video codificados. Por lo tanto, puede entenderse que el medio legible por ordenador 16 incluye uno o mas medios legibles por ordenador de diversas formas, en varios ejemplos.
[0029] Las tecnicas de esta divulgacion no estan limitadas necesariamente a aplicaciones o configuraciones inalambricas. Las tecnicas pueden aplicarse a la codificacion de video como soporte de cualquiera entre una diversidad de aplicaciones de multimedios, tales como difusiones de television por el aire, transmisiones de television por cable, transmisiones de television por satelite, transmisiones por flujo de video por Internet, tales como el flujo de transmision adaptativo dinamico sobre HTTP (DASH), el video digital que se codifica en un medio de almacenamiento de datos, la decodificacion de video digital almacenado en un medio de almacenamiento de datos, u otras aplicaciones. En algunos ejemplos, el sistema 10 se puede configurar para prestar soporte a la transmision de video unidireccional o bidireccional, para prestar soporte a aplicaciones tales como la transmision por flujo de video, la reproduccion de video, la difusion de video y/o la videotelefonia.
[0030] En el ejemplo de la figura 1, de acuerdo con esta divulgacion, el multiplexador 21 del dispositivo de origen 12 puede configurarse para aplicar las tecnicas para transportar datos de video codificados de acuerdo con las extensiones de una norma de codificacion de video, mientras que el demultiplexador 29 puede recibir dichos datos para procesar y remitir los datos de video procesados a otro dispositivo o componente, por ejemplo, el decodificador de video 30. En otros ejemplos, un dispositivo de origen y un dispositivo de destino pueden incluir otros componentes o disposiciones. Por ejemplo, el dispositivo de origen 12 puede recibir datos de video desde un origen de video externo 18, tal como una camara externa. Del mismo modo, el dispositivo de destino 14 puede interactuar con un dispositivo de visualizacion externo, en lugar de incluir un dispositivo de visualizacion integrado.
[0031] El sistema ilustrado 10 de la figura 1 es simplemente un ejemplo. Las tecnicas para el transporte de datos de video, codificados de acuerdo con las extensiones de una norma de codificacion de video pueden ser realizadas por cualquier dispositivo de codificacion y / o decodificacion de video digital. Aunque, en general, las tecnicas de esta divulgacion se realizan mediante un dispositivo de codificacion de video, las tecnicas tambien pueden realizarse mediante un codificador/decodificador de video, denominado habitualmente «CODEC». El dispositivo de origen 12 y el dispositivo de destino 14 son simplemente ejemplos de dichos dispositivos de codificacion en los que el dispositivo de origen 12 genera datos de video codificados para su transmision al dispositivo de destino 14. En algunos ejemplos, los dispositivos 12, 14 pueden funcionar de manera esencialmente simetrica, de modo que cada uno de los dispositivos 12, 14 incluya componentes de codificacion y de decodificacion de video. Por lo tanto, el sistema 10 puede prestar soporte a la transmision de video unidireccional o bidireccional entre los dispositivos de video 12, 14, por ejemplo, para la transmision de video por flujo, la reproduccion de video, la difusion de video o la videotelefonia.
[0032] La interfaz de entrada 28 del dispositivo de destino 14 recibe informacion desde el medio legible por ordenador 16. La informacion del medio legible por ordenador 16 puede incluir informacion sintactica definida por el codificador de video 20, que tambien es usado por el decodificador de video 30, que incluye elementos sintacticos que describen caracteristicas y/o procesamiento de bloques y de otras unidades codificadas.
[0033] El dispositivo de visualizacion 32 puede estar integrado con, o ser externo a, el dispositivo de destino 14. En algunos ejemplos, el dispositivo de destino 14 puede incluir un dispositivo de visualizacion integrado y tambien puede estar configurado para interactuar con un dispositivo de visualizacion externo. En otros ejemplos, el dispositivo de destino 14 puede ser un dispositivo de visualizacion. El dispositivo de visualizacion 32 muestra los datos de video decodificados a un usuario, y puede comprender cualquiera entre una diversidad de dispositivos de visualizacion, tales como un tubo de rayos catodicos (CRT), una pantalla de cristal liquido (LCD), una pantalla de plasma, una pantalla de diodos organicos emisores de luz (OLED) u otro tipo de dispositivo de visualizacion.
[0034] El codificador de video 20, el multiplexador 21, el demultiplexador 29 y el decodificador de video 30 pueden implementarse como cualquiera entre una variedad de circuitos adecuados de codificadores o decodificadores, tales como uno o mas microprocesadores, procesadores de senales digitales (DSP), circuitos integrados especificos de la aplicacion (ASIC), formaciones de compuertas programables in situ (FPGA), logica discreta, software, hardware, firmware o cualquier combinacion de los mismos. Cuando las tecnicas se implementan parcialmente en software, un dispositivo puede almacenar instrucciones para el software en un medio adecuado no transitorio legible por ordenador, y ejecutar las instrucciones en hardware utilizando uno o mas procesadores para realizar las tecnicas de esta divulgacion. Cada uno entre el codificador de video 20 y el decodificador de video 30 se puede incluir en uno o mas codificadores o decodificadores, cualquiera de los cuales se puede integrar como parte de un codificador/decodificador (CODEC) combinado en un dispositivo respectivo.
[0035] Esta divulgacion puede referirse, en general, al codificador de video 20 que "senaliza" o "transmite" cierta informacion a otro dispositivo, tal como el decodificador de video 30. El termino "senalizar" o "transmitir" puede referirse en general a la comunicacion de elementos sintacticos y/u otros datos usados para decodificar los datos de video comprimidos. Dicha comunicacion puede producirse en tiempo real o casi real. De forma alternativa, dicha comunicacion puede producirse durante un tramo de tiempo, tal como podria producirse cuando se almacenan elementos sintacticos en un medio de almacenamiento legible por ordenador en un flujo de bits codificado en el momento de la codificacion, que entonces pueden ser recuperado por un dispositivo de decodificacion en cualquier momento tras haber sido almacenado en este medio. Por lo tanto, aunque el decodificador de video 30 puede mencionarse como "recibiendo" cierta informacion, la recepcion de informacion no necesariamente se produce en tiempo real o casi real, y puede recuperarse desde un medio en algun momento despues del almacenamiento.
[0036] Ademas, aunque no se ilustra especificamente en la figura 1, algunas de las tecnicas ejemplares descritas en esta divulgacion pueden ser implementadas por algun medio externo, tal como un elemento de red consciente de los medios (MANE). El MANE puede recibir datos de video desde el codificador de video 20 y senalizar un flujo de bits que recibe el decodificador de video 30. En algunos ejemplos, el MANE puede recibir y procesar un flujo de transporte. En consecuencia, en ocasiones, cuando la divulgacion describe la senalizacion, dicha senalizacion puede ser realizada por el codificador de video 20 o por algun medio externo, tal como el MANE
[0037] El codificador de video 20 y el decodificador de video 30 pueden funcionar de acuerdo con una norma de codificacion de video. De forma alternativa, el codificador de video 20 y el decodificador de video 30 pueden funcionar de acuerdo con otras normas de propiedad o industriales, tales como la norma ITU-T H.264, alternativamente denominada MPEG-4, parte 10, Codificacion Avanzada de Video (AVC), o extensiones de dichas normas. Sin embargo, las tecnicas de esta divulgacion no estan limitadas a ninguna norma de codificacion particular. Otros ejemplos de normas de codificacion de video incluyen MPEG-2 e ITU-T H.263. La norma ITU-T H.264/MPEG-4 (AVC) fue formulada por el Grupo de Expertos en Codificacion de Video (VCEG) de la ITU-T junto con el Grupo de Expertos en Imagenes en Movimiento (MPEG) de la ISO/IEC, como el producto de una asociacion colectiva conocida como Equipo Mixto de Video (JVT, por sus siglas en ingles). En algunos aspectos, las tecnicas descritas en esta divulgacion pueden aplicarse a dispositivos que se ajustan en general a la norma H.264. La norma H.264 se describe en la recomendacion H.264 de ITU-T, Codificacion avanzada de video para servicios audiovisuales genericos, por el Grupo de estudio de la ITU-T, con fecha de marzo de 2005, que puede mencionarse en el presente documento como la norma H.264 o la especificacion H.264, o la norma o especificacion H.264/AVC. El Equipo mixto de video (JVT) continua trabajando en extensiones de la norma H.264/MPEG-4 AVC. Mas en general, las normas de codificacion de video incluyen ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 o ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual e ITU-T H.264 (tambien conocida como ISO/IEC MPEG-4 AVC), incluyendo sus extensiones de codificacion de video ajustable a escala (SVC) y de codificacion de video de vista multiple (MVC).
[0038] En otro ejemplo, el codificador de video 20 y el decodificador de video 30 pueden codificar y decodificar datos de video usando otra norma de codificacion de video, tal como la norma de Codificacion de video de alta eficacia (HEVC), tambien conocida como la norma de codificacion de video H.265. La HEVC ha sido finalizada por el Equipo Conjunto de Colaboracion en Codificacion de Video (JCT-VC) del Grupo de Expertos en Codificacion de Video (VCEG) del ITU-T y el Grupo de Expertos en Imagenes en Movimiento (MPEG) de la ISO / IEC. La mas reciente especificacion preliminar de la HEVC se denomina HEVC WD en lo sucesivo.
[0039] Ademas, el JCT-3V tambien esta desarrollando la extension de vista multiple para la HEVC, es decir, MV-HEVC. La ampliacion ajustable a escala para la HEVC, llamada SHVC, tambien esta siendo desarrollada por el JCT-VC. El documento mas reciente que incluye la especificacion para la HEVC, la extension de rango de la HEVC, la SHVC y la MV-HEVC esta disponible en http://phenix.intevry.fr/jct/doc_end_user/documents/18_Sapporo/wg11/JCTVC-R1013-v6.zip.
[0040] En la HEVC y en otras normas de codificacion de video, una secuencia de video incluye tipicamente una serie de imagenes. Las imagenes tambien pueden denominarse "tramas". Para generar una representacion codificada de una imagen, el codificador de video 20 puede generar un conjunto de unidades arboladas de codificacion (CTU). Cada una de las CTU puede ser un bloque arbolado de codificacion de muestras de luminancia, dos correspondientes bloques arbolados de codificacion de muestras de crominancia y estructuras sintacticas usadas para codificar las muestras de los bloques arbolados de codificacion. Un bloque de arbol de codificacion puede ser un bloque de muestras de tamano NxN. Una CTU tambien puede denominarse "bloque arbolado" o "maxima unidad de codificacion" (LCU).
[0041] Para generar una CTU codificada, el codificador de video 20 puede dividir los bloques arbolados de codificacion de una CTU en bloques de codificacion, de ahi el nombre de "unidades arboladas de codificacion". Una CU puede ser un bloque de codificacion de muestras de luminancia y dos correspondientes bloques de codificacion de muestras de crominancia de una imagen que tenga una formacion de muestras de luminancia, una formacion de muestras de Cb y una formacion de muestras de Cr, y estructuras sintacticas usadas para codificar las muestras de los bloques de codificacion. El codificador de video 20 puede dividir un bloque de codificacion de una CU en uno o mas bloques de prediccion. Un bloque de prediccion puede ser un bloque rectangular (es decir, cuadrado o no cuadrado) de muestras en las que se aplique la misma prediccion. Una unidad de prediccion (PU) de una CU puede ser un bloque de prediccion de muestras de luma, dos correspondientes bloques de prediccion de muestras de croma de una imagen y estructuras sintacticas usadas para predecir las muestras de bloques de prediccion. El codificador de video 20 puede generar bloques predictivos de luma, Cb y Cr para bloques de prediccion de luma, Cb y Cr de cada PU de la CU. El codificador de video 20 puede usar intraprediccion o interprediccion para generar los bloques predictivos para una PU.
[0042] Despues de que el codificador de video 20 genera bloques predictivos para una o mas PU de una CU, el codificador de video 20 puede generar bloques residuales para la CU. Cada muestra en un bloque residual de la CU puede indicar una diferencia entre una muestra en un bloque predictivo de una PU de la CU y una muestra correspondiente en un bloque de codificacion de la CU. Ademas, el codificador de video 20 puede descomponer los bloques residuales de una CU en uno o mas bloques de transformacion. Una unidad de transformacion (TU) de una CU puede ser un bloque de transformacion de muestras de luma, dos bloques de transformacion correspondientes de muestras de croma y estructuras sintacticas usadas para transformar las muestras de bloques de transformacion. El codificador de video 20 puede aplicar una o mas transformaciones a un bloque de transformacion para generar un bloque de coeficientes para una TU. Despues de generar un bloque de coeficientes, el codificador de video 20 puede cuantizar el bloque de coeficientes. Despues de que el codificador de video 20 cuantice un bloque de coeficientes, el codificador de video 20 puede codificar por entropia elementos sintacticos que indican los coeficientes de transformacion cuantizados. Por ejemplo, el codificador de video 20 puede realizar la Codificacion Aritmetica Binaria Adaptativa al Contexto (CABAC) en los elementos sintacticos que indiquen los coeficientes de transformacion cuantizados. El codificador de video 20 puede emitir los elementos sintacticos codificados por entropia en un flujo de bits. El flujo de bits tambien puede incluir elementos sintacticos que no esten codificados por entropia.
[0043] El flujo de bits puede incluir una secuencia de bits que forme una representacion de imagenes codificadas y datos asociados. El flujo de bits puede comprender una secuencia de unidades de capas de abstraccion de red (NAL). Cada una de las unidades de n Al incluye un encabezado de unidad de NAL y encapsula una carga util de secuencias de octetos sin procesar (RBSP). Una RBSP puede ser una estructura sintactica que contenga un numero entero de octetos que se encapsule dentro de una unidad de NAL. En algunos casos, una RBSP incluye cero bits.
[0044] Diferentes tipos de unidades de NAL pueden encapsular diferentes tipos de las RBSP. Por ejemplo, un primer tipo de unidad de NAL puede encapsular una RBSP para un conjunto de parametros de imagen (PPS), un segundo tipo de unidad de NAL puede encapsular una RBSP para un fragmento codificado, un tercer tipo de unidad de NAL puede encapsular una RBSP para informacion de mejora complementaria (SEI), y asi sucesivamente. Las unidades de NAL que encapsulan las RBSP para datos de codificacion de video (a diferencia de las RBSP para conjuntos de parametros y mensajes de SEI) pueden denominarse unidades de NAL de la capa de codificacion de video (VCL).
[0045] El decodificador de video 30 puede recibir un flujo de bits generado por el codificador de video 20. Ademas, el decodificador de video 30 puede obtener elementos sintacticos del flujo de bits. Por ejemplo, el decodificador de video 30 puede analizar sintacticamente el flujo de bits para decodificar elementos sintacticos a partir del flujo de bits. El decodificador de video 30 puede reconstruir las imagenes de los datos de video basandose, al menos en parte, en los elementos sintacticos obtenidos (por ejemplo, decodificados) a partir del flujo de bits. El proceso para reconstruir los datos de video puede ser, en general, reciproco al proceso realizado por el codificador de video 20. El decodificador de video 30 puede reconstruir los bloques de codificacion de la CU actual anadiendo las muestras de los bloques predictivos de muestra para las PU de la CU actual a las muestras correspondientes de los bloques de transformacion de las TU de la CU actual. Mediante la reconstruccion de los bloques de codificacion para cada CU de una imagen, el decodificador de video 30 puede reconstruir la imagen.
[0046] En la codificacion de vista multiple, puede haber varias vistas de la misma escena desde diferentes puntos de vista. En el contexto de la codificacion de vista multiple, el termino "unidad de acceso" se puede usar para referirse al conjunto de imagenes que corresponden a la misma instancia de tiempo. Por tanto, los datos de video pueden conceptualizarse como una serie de unidades de acceso que se producen a lo largo del tiempo. Un "componente de vista" puede ser una representacion codificada de una vista en una unica unidad de acceso. En esta divulgacion, una "vista" puede referirse a una secuencia de componentes de vistas asociadas al mismo identificador de vista. En algunos ejemplos, un componente de vista puede ser un componente de vista de textura (es decir, una imagen de textura) o un componente de vista de profundidad (es decir, una imagen de profundidad).
[0047] En la MV-HEVC y la SHVC, un codificador de video puede generar un flujo de bits que comprende una serie de unidades de NAL. Las diferentes unidades de NAL del flujo de bits pueden estar asociadas a diferentes capas del flujo de bits. Una capa se puede definir como un conjunto de unidades de NAL de VCL y unidades asociadas de NAL no de VCL, que tienen el mismo identificador de capa. Una capa puede ser equivalente a una vista en la codificacion de video de vista multiple. En la codificacion de video de vista multiple, una capa puede contener todos los componentes de vista de la misma capa con diferentes casos en el tiempo. Cada componente de vista puede ser una imagen codificada de la escena de video que pertenece a una vista especifica en un caso especifico en el tiempo. En algunos ejemplos de codificacion de video de vista multiple o tridimensional, una capa puede contener todas las imagenes de profundidad codificadas de una vista especifica o imagenes de textura codificadas de una vista especifica. En otros ejemplos de codificacion de video tridimensional, una capa puede contener tanto componentes de vista de textura como componentes de vista de profundidad de una vista especifica. De forma similar, en el contexto de la codificacion de video ajustable a escala, una capa corresponde habitualmente a imagenes codificadas que tengan caracteristicas de video diferentes a las imagenes codificadas en otras capas. Dichas caracteristicas de video habitualmente incluyen la resolucion espacial y el nivel de calidad (por ejemplo, la razon entre senal y ruido). En la HEVC y en sus extensiones, la ajustabilidad a escala temporal se puede lograr dentro de una capa definiendo un grupo de imagenes con un nivel temporal particular como una subcapa.
[0048] Para cada capa respectiva del flujo de bits, los datos en una capa inferior pueden decodificarse sin referencia a los datos en cualquier capa superior. En la codificacion de video ajustable a escala, por ejemplo, los datos en una capa de base pueden decodificarse sin referenda a los datos en una capa de mejora. En general, las unidades de NAL solo pueden encapsular datos de una unica capa. Por tanto, las unidades de NAL que encapsulan los datos de la capa restante mas alta del flujo de bits pueden eliminarse del flujo de bits sin afectar a la decodificabilidad de los datos en las capas restantes del flujo de bits. En la codificacion de vista multiple, las capas superiores pueden incluir componentes de vista adicionales. En la SHVC, las capas superiores pueden incluir datos de mejora de la razon entre senal y ruido (SNR), datos de mejora espacial y/o datos de mejora temporal. En la MV-HEVC y la SHVC, una capa puede denominarse "capa base" si un decodificador de video puede decodificar imagenes en la capa sin hacer referencia a los datos de cualquier otra capa. La capa base puede ajustarse a la especificacion de base de la HEVC (por ejemplo, Rec. UIT-T H.265 | ISO / IEC 23008-2).
[0049] En la codificacion de video escalable, las capas distintas a la capa base pueden denominarse "capas de mejora" y pueden proporcionar informacion que mejore la calidad visual de los datos de video decodificados a partir del flujo de bits. La codificacion de video ajustable a escala puede mejorar la resolucion espacial, la razon entre senal y ruido (es decir, la calidad) o la tasa temporal. En la codificacion de video ajustable a escala (por ejemplo, la SHVC), una "representacion de capa" puede ser una representacion codificada de una capa espacial en una unica unidad de acceso. Para facilitar la explicacion, esta divulgacion puede referirse a componentes de vista y/o representaciones de capa como "componentes de vista / representaciones de capa" o simplemente "imagenes".
[0050] La codificacion de vista multiple da soporte a la prediccion entre vistas. La prediccion entre vistas es similar a la interprediccion utilizada en la HEVC y puede usar los mismos elementos sintacticos. Sin embargo, cuando un codificador de video realiza la prediccion entre vistas en una unidad de video actual (tal como una PU), el codificador de video 20 puede usar, como una imagen de referencia, una imagen que esta en la misma unidad de acceso que la unidad de video actual, pero en una vista diferente. Por lo contrario, la interprediccion convencional solo usa imagenes en diferentes unidades de acceso como imagenes de referencia.
[0051] En la codificacion de vista multiple, una vista puede denominarse "vista de base" si un decodificador de video (por ejemplo, el decodificador de video 30) puede decodificar imagenes en la vista sin referencia a imagenes en ninguna otra vista. Cuando se codifica una imagen en una de las vistas no de base, un codificador de video (tal como el codificador de video 20 o el decodificador de video 30) puede agregar una imagen a una lista de imagenes de referencia si la imagen esta en una vista diferente pero dentro de la misma instancia de tiempo (es decir, unidad de acceso) que la imagen que el codificador de video esta codificando actualmente. Al igual que otras imagenes de referencia de interprediccion, el codificador de video puede insertar una imagen de referencia de prediccion entre vistas en cualquier posicion de una lista de imagenes de referencia.
[0052] Por ejemplo, las unidades de NAL pueden incluir encabezados (es decir, encabezados de unidades de NAL) y cargas utiles (por ejemplo, las RBSP). Los encabezados de la unidad de NAL pueden incluir elementos sintacticos nuh_reservado_cero_6bits, que tambien pueden denominarse elementos sintacticos nuh_layer_id. Las unidades de NAL que tienen elementos sintacticos nuh_reservado_cero_6bit que especifican valores diferentes pertenecen a diferentes "capas" de un flujo de bits. Por lo tanto, en la codificacion de vista multiple, la MV-HEVC, la SVC o la SHVC, el elemento sintactico nuh_layer_id de la unidad de NAL especifica un identificador de capa (es decir, un ID de capa) de la unidad de NAL. El elemento sintactico nuh_layer_id de una unidad de NAL es igual a 0 si la unidad de NAL se refiere a una capa de base en la codificacion de vista multiple, la MV-HEVC o la SHVC. Los datos en una capa de base de un flujo de bits pueden decodificarse sin referencia a los datos en cualquier otra capa del flujo de bits. Si la unidad de NAL no se refiere a una capa de base en la codificacion de vista multiple, la MV-HEVC o la SHVC, el elemento sintactico nuh_layer_id puede tener un valor distinto de cero. En la codificacion de vista multiple, las diferentes capas de un flujo de bits pueden corresponder a diferentes vistas. En la SVC o la SHVC, las capas distintas a la capa de base pueden denominarse "capas de mejora" y pueden proporcionar informacion que mejora la calidad visual de los datos de video decodificados a partir del flujo de bits.
[0053] Ademas, algunas imagenes dentro de una capa se pueden decodificar sin referencia a otras imagenes dentro de la misma capa. Por lo tanto, las unidades de NAL que encapsulan datos de ciertas imagenes de una capa pueden eliminarse del flujo de bits sin afectar la capacidad de decodificacion de otras imagenes en la capa. La eliminacion de unidades de NAL que encapsulan datos de tales imagenes puede reducir la velocidad de tramas del flujo de bits. Un subconjunto de imagenes dentro de una capa que puede decodificarse sin referencia a otras imagenes dentro de la capa se puede denominar en el presente documento una "subcapa" o una "subcapa temporal". Por lo tanto, un tipo de dimension ajustable a escala es la dimension temporal.
[0054] Por ejemplo, en la ajustabilidad a escala temporal, un conjunto de datos de video puede dar soporte a varias velocidades de trama o velocidades de reproduccion, por ejemplo, 15 tramas por segundo (FPS), 30 FPS, 60 FPS y 120 FPS. Un nivel temporal dado puede incluir todas las imagenes en ese nivel y en niveles inferiores. Por ejemplo, continuando con el ejemplo anterior, un nivel temporal de 0 puede corresponder a 15 FPS, un nivel temporal de 1 puede incluir imagenes del nivel temporal 0, asi como imagenes en el nivel temporal 1 para dar soporte a 30 FPS, un nivel temporal de 2 puede incluir imagenes de los niveles temporales 0 y 1, asi como imagenes en el nivel temporal 2 para dar soporte a 60 FPS, y asi sucesivamente.
[0055] Un identificador temporal, o IDtemporal, puede ser senalizado como representative del nivel temporal al que pertenece una imagen en particular. Por ejemplo, las unidades de NAL pueden incluir elementos sintacticos temporal_id. El elemento sintactico temporal_id de una unidad de NAL especifica un identificador temporal de la unidad de NAL. El identificador temporal de una unidad de NAL identifica una subcapa temporal con la que esta asociada la unidad de NAL. Por lo tanto, cada subcapa temporal de un flujo de bits puede asociarse a un identificador temporal diferente. Si el identificador temporal de una primera unidad de NAL es menor que el identificador temporal de una segunda unidad de NAL, los datos encapsulados por la primera unidad de NAL pueden decodificarse sin referencia a los datos encapsulados por la segunda unidad de NAL.
[0056] Un flujo de bits puede estar asociado a una pluralidad de puntos de operacion. En algunos ejemplos, cada punto de operacion de un flujo de bits puede asociarse a un conjunto de identificadores de capa (es decir, un conjunto de valores nuh_reservado_cero_6bits o valores nuh_layer_id) y un identificador temporal. El conjunto de identificadores de capa se puede indicar como OpLayerldSet y el identificador temporal se puede indicar como IDTemporal. Si el identificador de capa de una unidad de NAL se encuentra en el conjunto de identificadores de capa de un punto de operacion y el identificador temporal de la unidad de NAL es menor o igual que el identificador temporal del punto de operacion, la unidad de NAL esta asociada al punto de operacion. Por lo tanto, un punto de operacion puede ser un flujo de bits creado a partir de otro flujo de bits mediante la operacion del proceso de extraccion del subflujo de bits con este otro flujo de bits, un IDTemporal maximo de destino y una lista de identificadores de capa de destino como entradas para el proceso de extraccion del subflujo de bits. El punto de funcionamiento puede incluir cada unidad de NAL que este asociada al punto de funcionamiento. En algunos ejemplos, el punto de operacion no incluye unidades de NAL de VCL que no esten asociadas al punto de operacion.
[0057] Como se ha indicado anteriormente, un punto de operacion describe un subconjunto de capas (por ejemplo, vistas) de un conjunto completo de capas de datos de video de multiples capas. El punto de operacion tambien puede identificar las capas de salida de destino, es decir, las capas para las cuales se han de emitir datos (por ejemplo, imagenes decodificadas). En algunos casos, los datos de una capa pueden incluirse en un punto de operacion solo para su uso como capa de referencia (por ejemplo, solo para la prediccion entre capas o entre vistas de la capa o vista que se mostrara, donde en la capa de referencia o la vista no se muestra) y, por lo tanto, tal capa no se consideraria una capa de salida de destino.
[0058] La HEVC y otras normas de codificacion de video especifican perfiles, gradas y niveles. Los perfiles, gradas y niveles especifican restricciones sobre los flujos de bits y, por lo tanto, limites sobre las capacidades necesarias para decodificar los flujos de bits. Los perfiles, gradas y niveles tambien se pueden utilizar para indicar puntos de interoperabilidad entre implementaciones de decodificadores individuales. Cada perfil especifica un subconjunto de caracteristicas y herramientas algoritmicas presentes en una norma de codificacion de video. Por lo tanto, un "perfil" es un subconjunto de una sintaxis de flujo de bits completa que se especifica mediante una norma de codificacion de video aplicable. Los codificadores de video no estan obligados a utilizar todas las caracteristicas con soporte en un perfil. Cada nivel de una grada puede especificar un conjunto de limites sobre los valores que pueden tener los elementos y las variables sintacticas. Asi, un "nivel" corresponde a las limitaciones del consumo de recursos del decodificador, tales como, por ejemplo, memoria y calculos del decodificador, que estan relacionados con la resolucion de las imagenes, la velocidad de bits y la velocidad de procesamiento de bloques. El mismo conjunto de definiciones de grada y nivel puede usarse con todos los perfiles, pero las implementaciones individuales pueden prestar soporte a una grada diferente y, dentro de una grada, un nivel diferente para cada perfil con soporte. Para cualquier perfil dado, un nivel de una grada generalmente puede corresponder a una carga de procesamiento y capacidad de memoria del decodificador en particular. Las capacidades de los decodificadores de video se pueden especificar en terminos de la capacidad de decodificar flujos de video que se ajusten a las restricciones de perfiles, gradas y niveles particulares. Para cada perfil, la grada y el nivel con soporte para ese perfil tambien se pueden expresar. Es posible que algunos decodificadores de video no puedan decodificar perfiles, gradas o niveles particulares.
[0059] Esta divulgacion describe tecnicas que pueden mejorar el descriptor del punto de operacion de la HEVC en el flujo de transporte (TS) del MPEG-2 para el transporte de flujos de bits de extension de la HEVC. Por ejemplo, de acuerdo a una tecnica de esta divulgacion, el multiplexador 21 y / o el demultiplexador 29 pueden configurarse para transportar datos de video (es decir, enviar o recibir datos de video) que estan codificados de acuerdo a una norma de codificacion de video, tal como la HEVC, una extension de una norma de codificacion de video (por ejemplo, extensiones de la norma HEVC, tales como la SHVC o la MV-HEVC) u otras normas de codificacion de video aun no desarrolladas. En general, el multiplexador 21 puede encapsular datos de video codificados para formar un flujo de datos, por ejemplo, esencialmente de acuerdo con los sistemas del MPEG-2 y las tecnicas de esta divulgacion, mientras que el demultiplexador 29 puede recibir y desencapsular datos encapsulados, por ejemplo, datos de video codificados de acuerdo con una extension de una norma de codificacion de video.
[0060] La mas reciente especificacion de TS del MPEG-2 es la recomendacion ITU-T H.222.0, version de junio de 2012, en la que se proporciona el soporte de la AVC y de las extensiones de la AVC. Tambien se ha desarrollado una enmienda de TS del MPEG-2 para la HEVC. El mas reciente documento, "Text of ISO/IEC 13818-1: 2013/Final Draft Amendment 3 - Transport of HeVC video over MPEG-2 Systems,[” Texto de la ISO / IEC 13818-1: 2013 / Enmienda de Borrador Final 3 - Transporte de video de la HEVC sobre sistemas del MPEG-2"], esta disponible en el documento MPEG w13656, julio de 2013. Recientemente, se ha iniciado una enmienda del TS del MPEG-2 para el transporte de la HEVC en capas, denominada TS del MPEG-2 para la L-HEVC. El mas reciente documento es “Text of ISO/IEC 13818-1:2013 / DAM 3 - Carriage of Layered HEVC” ["Texto de la ISO / IEC 13818-1: 2013 / DAM 3 - Transporte de la HEVC en capas"], en adelante "DAM3". El termino "HEVC en capas" se refiere a las extensiones de la norma HEVC que usan multiples capas, tales como la SHVC, la MV-HEVC y la 3D-HEVC.
[0061] La especificacion de los sistemas del MPEG-2 describe como los flujos de datos de multimedios (video y audio) comprimidos pueden multiplexarse junto con otros datos para formar un solo flujo de datos adecuado para la transmision o almacenamiento digital. La especificacion de sistemas del MPEG-2 describe un flujo elemental, que es un componente unico, codificado digitalmente (posiblemente comprimido segun el MPEG) de un programa (tambien a veces escrito "programa"). Por ejemplo, la parte de video o audio codificado del programa puede ser un flujo elemental. Un flujo elemental se convierte primero en un flujo elemental empaquetado (PES) antes de ser multiplexado en un flujo de programa o un flujo de transporte. Dentro del mismo programa, se utiliza un elemento sintactico id_flujo para distinguir los paquetes del PES que pertenecen a un flujo elemental de los de otro. Cada paquete del PES puede contener una o mas unidades de NAL o una unidad de n Al puede dividirse entre multiples paquetes del PES.
[0062] En la especificacion de sistemas del MPEG-2, los flujos de programas y los flujos de transporte son dos multiplexos alternativos que se orientan a diferentes aplicaciones. Los flujos de programas estan predispuestos para el almacenamiento y la visualizacion de un solo programa desde un servicio de almacenamiento digital, y un flujo de programas esta concebido para su uso en entornos sin errores, ya que puede ser susceptible a errores.
[0063] Un flujo de programa incluye los flujos elementales que le pertenecen y generalmente contiene paquetes con paquetes de longitud variable. En un flujo de programa, los paquetes del PES que se obtienen de los flujos elementales contribuyentes se organizan en "fardos". Un fardo comprende una cabecera de fardo, una cabecera de sistema optativa y cualquier numero de paquetes del PES tomados de cualquiera de los flujos elementales contribuyentes, en cualquier orden. El encabezado del sistema contiene un resumen de las caracteristicas del flujo de programa, tales como: su maxima velocidad de datos; el numero de flujos elementales de audio y video que contribuyen; e informacion adicional de temporizacion. El decodificador de video 30 puede usar la informacion contenida en un encabezado del sistema para determinar si el decodificador de video tridimensional es capaz de decodificar el flujo de programa o no.
[0064] Los flujos de transporte estan concebidos para la entrega simultanea de una serie de programas por canales potencialmente propensos a errores. Un flujo de transporte es un multiplexo ideado para aplicaciones de multiples programas, tales como la difusion, de manera que un solo flujo de transporte pueda asimilar muchos programas independientes. Un flujo de transporte incluye una sucesion de paquetes de transporte, y cada uno de los paquetes de transporte tiene una longitud de 188 octetos. El uso de paquetes cortos de longitud fija significa que el flujo de transporte no es tan susceptible a errores como el flujo de programa. Ademas, a cada paquete de transporte de 188 octetos de longitud se otorga facilmente proteccion adicional contra errores procesandolo a traves de un proceso estandar de proteccion contra errores, tal como la codificacion de Reed-Solomon. La mejora de la resistencia a errores del flujo de transporte significa que tiene una mejor oportunidad de sobrevivir a los canales propensos a errores que se encuentran en un entorno de difusion, por ejemplo. Podria parecer que el flujo de transporte es claramente el mejor de los dos multiplexos, con su acrecentada resistencia a los errores y su capacidad para transportar muchos programas simultaneos. Sin embargo, el flujo de transporte es un multiplexo mas sofisticado que el flujo de programa y, por consiguiente, mas dificil de crear y demultiplexar.
[0065] El primer octeto de un paquete de transporte es un octeto de sincronizacion que, en algunos casos, es 0x47. Un unico flujo de transporte puede llevar muchos programas diferentes, comprendiendo cada uno muchos flujos elementales empaquetados. Un campo de identificador de paquete (PID) se usa para distinguir los paquetes de transporte que contienen los datos de un flujo elemental de aquellos que llevan los datos de otros flujos elementales. En algunos casos, el PID es de 13 bits. Puede ser responsabilidad del multiplexor 21 garantizar que cada flujo elemental reciba un valor unico de PID.
[0066] Aunque esta claro, basandose en un valor de PID, a que flujo elemental pertenece un paquete de transporte, el decodificador de video 30 puede necesitar saber que flujos elementales pertenecen a que programa. Por consiguiente, un flujo de transporte comprende informacion especifica de programa (PSI) para especificar explicitamente las relaciones entre los programas y los flujos elementales componentes. En otras palabras, el flujo de transporte puede incluir paquetes de transporte que contienen PSI.
[0067] La PSI puede incluir una tabla de asociacion de programas (PAT). La tabla de asociacion de programas incluye una lista completa de todos los programas disponibles en un flujo de transporte. En algunos ejemplos, la PAT siempre tiene el valor 0 del PID. Cada programa se enumera junto con el valor del PID de los paquetes de transporte que contienen la tabla de correlaciones de programa del programa.
[0068] Ademas, la PSI puede incluir una o mas tablas de correlaciones de programa (PMT). Cada programa transportado en un flujo de transporte tiene una PMT asociada. La PAT puede especificar el valor del PID de los paquetes de transporte que contienen la PMT para un programa. La PMT para un programa proporciona detalles sobre el programa y los flujos elementales que comprenden el programa. Por ejemplo, la PMT para un programa con numero de programa 3 puede especificar que el programa contiene paquetes de transporte con valores de PID 33, 57 y 60.
En este ejemplo, los paquetes de transporte con valores de PID iguales a 33 pueden incluir un flujo elemental que contiene datos de vfdeo codificados, los paquetes de transporte con valores de PID iguales a 57 pueden incluir datos de audio en ingles y los paquetes de transporte con valores de PID iguales a 60 pueden incluir datos de audio en chino. Una PMT puede incluir detalles sobre mas de un programa.
[0069] La PMT basica para un programa puede incluir algunos de los muchos descriptores especificados dentro de la especificacion de sistemas del MPEG-2. Dichos descriptores transmiten informacion adicional sobre un programa o sus flujos elementales componentes. Los descriptores pueden incluir parametros de codificacion de vfdeo, parametros de codificacion de audio, identificacion de idioma, informacion de vistas panoramicas y barridos, detalles de acceso condicional, informacion de derechos de autor, etc. Una emisora u otro usuario puede definir descriptores privados adicionales si es necesario.
[0070] Los descriptores son independientes de los datos de vfdeo codificados. Por lo tanto, un dispositivo, tal como un Elemento de Red Consciente de los Medios (MANE) o un decodificador de vfdeo, puede ser capaz de usar un descriptor para realizar varias funciones en flujos de transporte y flujos de programas sin decodificar o analizar de otro modo datos de vfdeo codificados. Por ejemplo, si los datos de vfdeo estan codificados usando la HEVC, el dispositivo no necesita ser configurado para decodificar los datos de vfdeo codificados por la HEVC para usar el descriptor para realizar funciones particulares en flujos de transporte o programas. Por ejemplo, el dispositivo puede ser capaz de usar los descriptores como parte de un proceso para determinar si se remiten elementos de programa particulares a un dispositivo de destino o se decodifican flujos elementales particulares.
[0071] Los descriptores para un programa que tiene flujos elementales de componentes relacionados con el vfdeo pueden incluir uno o mas descriptores jerarquicos. Un descriptor jerarquico esta disenado para senalizar la jerarqufa de los subflujos de bits de diferentes flujos elementales. El descriptor jerarquico proporciona informacion que identifica los elementos de programa que contienen componentes de flujos de vfdeo, de audio y privados, codificados jerarquicamente. Los flujos privados pueden incluir metadatos, tales como un flujo de informacion especffica de programa. En general, un elemento de programa es uno de los datos o flujos elementales incluidos en un programa (es decir, un flujo elemental componente del programa). En los flujos de transporte del MPEG-2, los elementos de programa normalmente se empaquetan. En los flujos de programa del MPEG-2, los elementos de programa no estan empaquetados.
[0072] En algunos casos, cada respectiva subcapa temporal de cada respectiva capa de un programa puede corresponder a un componente de programa diferente (por ejemplo, flujo elemental) del programa. En otros casos, cada capa respectiva de un programa corresponde a un flujo elemental diferente. Ademas, en algunos casos, dos o mas flujos elementales pueden corresponder a diferentes subcapas temporales de la misma capa de un programa, mientras que un solo flujo elemental puede corresponder a todas las subcapas temporales de otra capa del mismo programa. Como se ha indicado anteriormente, los descriptores pueden incluir descriptores jerarquicos. Cada descriptor jerarquico respectivo proporciona informacion con respecto a un correspondiente componente de programa (es decir, flujo elemental). Por ejemplo, un descriptor jerarquico correspondiente a un flujo elemental particular puede incluir un elemento sintactico que especifique otro flujo elemental necesario para decodificar datos de vfdeo del flujo elemental particular. En un ejemplo, un descriptor jerarquico correspondiente a un flujo elemental para una subcapa temporal particular puede incluir un elemento sintactico que especifique una subcapa temporal integrada, necesaria para decodificar la subcapa temporal particular.
[0073] La subcapa temporal integrada se puede "integrar" en el sentido de que la decodificacion de la subcapa temporal integrada es necesaria para la decodificacion exitosa de la subcapa temporal particular. Ademas, el descriptor jerarquico puede incluir elementos sintacticos que especifican si una subcapa temporal correspondiente al descriptor jerarquico proporciona ajustabilidad temporal a escala (por ejemplo, aumenta la velocidad de tramas) con respecto a la subcapa temporal integrada, proporciona ajustabilidad espacial a escala (por ejemplo, aumenta la resolucion de la imagen) ) en relacion con la subcapa temporal integrada, proporciona ajustabilidad de calidad a escala (por ejemplo, mejora la calidad o fidelidad entre senal y ruido) con respecto a la subcapa temporal integrada, y asf sucesivamente.
[0074] La Tabla 2-49, a continuacion, especifica la sintaxis de un descriptor jerarquico segun se define en DAM3.
T l 2-4 - D ri r r r i
Figure imgf000014_0001
[0075] En la Tabla 2-49, el hierarchy_layer_index es un campo de 6 bits que define un fndioe unico del elemento de programa asociado en una tabla de jerarquias de capas de codificacion. Los indices seran unicos dentro de una sola definicion de programa. Para los sub-flujos de bits de video de los flujos de video de la HEVC que se ajustan a uno o mas perfiles definidos en el Anexo F de la Rec. ITU-T H.265 | ISO / CEI 23008-2, este es el indice del elemento del programa, que se asigna de manera que el orden de los flujos de bits sea correcto si las capas de dependencia asociadas de los sub-flujos de bits de video de la misma unidad de acceso de la HEVC se vuelven a ensamblar en orden creciente del hierarchy_layer_index. En otras palabras, el hierarchy_layer_index de un descriptor jerarquico identifica el elemento de programa (es decir, el flujo elemental) que corresponde al descriptor jerarquico.
[0076] Ademas, en la Tabla 2-49, el hierarchy_embedded_layer_index es un campo de 6 bits que define el hierarchy_layer_index del elemento de programa al que se debe acceder y que debe estar presente en orden de decodificacion antes de decodificar el flujo elemental asociado a este hierarchy_descriptor. El hierarchy_embedded_layer_index esta indefinido si el valor de hierarchy_type es 15. En otras palabras, el hierarchy_embedded_layer_index de un descriptor jerarquico identifica un flujo elemental del cual depende el flujo elemental correspondiente al descriptor jerarquico.
[0077] Ademas de los uno o mas descriptores jerarquicos, los descriptores senalados en un flujo de transporte o programa del MPEG-2 pueden incluir uno o mas descriptores de extension jerarquica. Cada respectivo descriptor de extension jerarquica en el flujo de o transporte o de programa del MPEG-2 puede corresponder a un flujo elemental respectivo. Cada descriptor de extension jerarquica puede proporcionar informacion adicional con respecto a un flujo elemental correspondiente. Como se ha indicado anteriormente, un flujo elemental puede corresponder a una o mas subcapas temporales o puede corresponder a una capa como una totalidad. En otras palabras, un flujo elemental puede incluir datos de video codificados de una o mas subcapas temporales o puede corresponder a una capa como una totalidad. Por lo tanto, un descriptor de extension jerarquica puede corresponder a un flujo elemental correspondiente a una o mas subcapas temporales o puede corresponder a una capa como una totalidad.
[0078] Cuando un descriptor de extension jerarquica esta presente, el descriptor de extension jerarquica se usa para especificar las dependencias del flujo elemental correspondientes al flujo elemental. Por ejemplo, un descriptor de extension jerarquica correspondiente a un flujo elemental particular puede indicar multiples flujos elementales que deben decodificarse para decodificar con exito el flujo elemental correspondiente al descriptor de extension jerarquica. Por lo contrario, un descriptor jerarquico solo es capaz de indicar un flujo elemental requerido para la decodificacion exitosa de un flujo elemental correspondiente al descriptor jerarquico. La tabla 2-103deciens, a continuacion, indica una sintaxis de un descriptor de extension jerarquica, como se especifica en DAM3.
T l 2-1 i n - D ri r l x n i n l r r i l HE
Figure imgf000015_0001
[0079] En la Tabla 2-103deciens, el hierarchy_layer_index es un campo de 6 bits que define un indice unico del elemento de programa asociado en una tabla de jerarquias de capas de codificacion. Los indices seran unicos dentro de una sola definicion de programa. Para los sub-flujos de bits de video de los flujos de video de la HEVC que se ajustan a uno o mas perfiles definidos en el Anexo G o H de la Rec. H.265 | ISO / IEC 23008-2, este es el indice de elemento de programa, que se asigna de tal manera que el orden del flujo de bits sera correcto si las capas de dependencia asociadas de los sub-flujos de bits de video de la misma unidad de acceso se reensamblan en orden creciente del hierarchy_layer_index. Por lo tanto, el hierarchy_layer_index de un descriptor de extension jerarquica identifica el flujo elemental correspondiente al descriptor de extension jerarquica.
[0080] El nuh_layer_id es un campo de 6 bits que especifica el nuh_layer_id mas alto de las unidades de NAL en el flujo elemental asociado a este HEVC_hierarchy_extension_descriptor().
[0081] El temporal_id es un campo de 3 bits que especifica el Idtemporal mas alto de las unidades de NAL en el flujo elemental asociado a este HEVC_hierarchy_extension_descriptor().
[0082] El num_embedded_layers es un campo de 6 bits que especifica el numero de elementos de programa dependientes directos a los que se debe acceder y que deben estar presentes en el orden de decodificacion antes de decodificar el flujo elemental asociado a este HEVC_hierarchy_extension_descriptor().
[0083] El hierarchy_ext_embedded_layer_index es un campo de 6 bits que define el hierarchy_layer_index del elemento de programa al que se necesita acceder y que debe estar presente en el orden de decodificacion antes de la decodificacion del flujo elemental asociado a este hierarchy_extension_descriptor. Este campo esta indefinido si el valor de hierarchy_type es 15.
[0084] Ademas del descriptor de jerarquia y de los descriptores de extension de jerarquia, un flujo de transporte puede incluir un descriptor de punto de operacion de la HEVC. Los puntos de operacion de la HEVC se senalizan en un descriptor de punto de operacion de la HEVC especificando las referencias a los flujos elementales correspondientes a las capas en los puntos de operacion. Como se describe en DAM3, el descriptor del punto de operacion de la HEVC proporciona un procedimiento para indicar un perfil y un nivel para uno o mas puntos de operacion de la HEVC. El dispositivo de destino 14 puede usar los descriptores de punto de operacion incluidos en un flujo de bits para seleccionar uno de los puntos de operacion a decodificar y finalmente presentar (por ejemplo, exhibir) a un usuario. En lugar de pasar datos para todas las vistas o capas al decodificador de video 30 al recibirlos, el dispositivo de destino 14 puede enviar solo las vistas de un punto de operacion seleccionado al decodificador de video 30. Por ejemplo, el dispositivo de destino 14 puede descartar datos para vistas que no se decodificaran. Adicional o alternativamente, un dispositivo de red intermedio (por ejemplo, un elemento de red consciente de los medios (MANE)) puede descartar datos para vistas o capas que no corresponden a un punto de operacion solicitado (por ejemplo, para utilizar mejor el ancho de banda). El dispositivo de destino 14 puede seleccionar un punto de operacion basandose en la calidad mas alta con soporte en uno de los puntos de operacion para un flujo de bits y / o basandose en una cantidad disponible de ancho de banda de red.
[0085] La tabla 2-103noniens a continuacion indica la sintaxis del descriptor del punto de operacion de la HEVC, como se define en DAM3.
T l 2-1 n ni n - D ri r l n r i n l HE
Figure imgf000016_0001
_____________________ _____________________
[0086] de punto de operacion de la HEVC). Los siguientes parrafos describen dos de los problemas en el diseno actual del descriptor de punto de operacion de la HEVC definido en DAM3.
[0087] En primer lugar, como se muestra en la Tabla 2-103noniens, el descriptor del punto de operacion de la HEVC incluye elementos sintacticos prepend_dependencies[i][j]. Sin embargo, en DAM3, falta la semantica de prepend_dependencies[i][j] igual a 0. Ademas, en el diseno de DAM3, es posible que un flujo elemental (por ejemplo, un flujo elemental correspondiente a una capa) se incluya dos veces en la lista de flujos elementales para el punto de operacion de destino. El problema de mas de una inclusion puede ocurrir en cualquiera de los siguientes escenarios:
1. Cuando una capa se senaliza explicitamente como parte de un punto de operacion al senalizar su valor de ES_reference[i][j] y al mismo tiempo tambien es una capa de referencia de otra capa que tiene el valor de prepend_dependencies[i][j] igual a 1.
2. Cuando una capa es una capa de referencia para otras dos capas en el mismo punto de operacion que tienen, ambas, prepend_dependencies[i][j] igual a 1.
[0088] Un segundo problema en el diseno en DAM3 para el descriptor del punto de operacion de la HEVC puede ser que, para un punto de operacion, no todas las capas cuya decodificacion sea requerida por el decodificador de video 30 para el punto de operacion de la HEVC deben senalizarse explicitamente, porque algunas capas (los flujos elementales) pueden depender de otras y dicha informacion esta presente en otro lugar (por ejemplo, en el descriptor jerarquico o el descriptor de extension jerarquica). Cuando el valor del elemento sintactico prepend_dependencies[i][j] es igual a 1, se pueden obtener otras capas de las que depende la j-esima capa y, por lo tanto, no se senalizan explicitamente para el i-esimo punto de operacion de la HEVC. Sin embargo, en el punto de operacion de la HEVC, una capa obtenida no esta presente en el bucle de las capas explicitas (como lo indica el texto entre las etiquetas "<EMPHASIS>" y "</EMPHAs IS>" en la Tabla 2-103noniens en lo que antecede). Por lo tanto, actualmente no hay ninguna forma de conocer los valores de los siguientes elementos sintacticos para una capa obtenida: output_layer_flag[i][j] y ptl_ref_idx[i][j], aunque el flujo elemental de la capa obtenida puede identificarse mediante el descriptor jerarquico y / o el descriptor de extension jerarquica. En otras palabras, cuando las capas de senalizacion de un punto de operacion con referencias a flujos elementales y varias capas no se senalizan explicitamente, sino que se obtienen (cuando el valor del elemento sintactico prepend_dependencies[i]j] es 1), la informacion, tal como si una capa es una capa de salida y el perfil, la grada y el nivel para esas capas obtenidas, falta para estas capas obtenidas.
[0089] Un punto de operacion de salida en la HEVC en capas se define en funcion de un conjunto de capas de salida. Sin embargo, saber si una capa es una capa de salida puede ser requerido para la definicion de conformidad en la HEVC en capas y cada capa necesaria (es decir, una capa que es bien una capa de salida o bien una capa que es mencionada directa o indirectamente por una capa de salida dentro de un punto de operacion, o ambas) se asociara a un conjunto de informacion de perfil, grada y nivel (PTL) de acuerdo a la especificacion de la MV-HEVC / SHVC. Por lo tanto, puede ser necesario saber si una capa es o no una capa de salida de destino. Por ejemplo, puede ser necesario conocer el valor del elemento sintactico output_layer_flag[i][j]. Sin embargo, el elemento sintactico output_layer_flag[i][j] tambien puede no estar presente en el flujo de bits para las capas obtenidas, porque el bucle 'para', incluido en las etiquetas "<EMPHASIS>" y "</EMPHASIS>" en la Tabla 2-103noniens anterior, solo puede ser aplicable para capas explicitamente senalizadas.
[0090] Ademas, la HEVC en capas, por diseno, requiere que este presente la informacion de perfil, grada y nivel para cada capa necesaria (es decir, una capa que sea una capa de salida de destino, o necesaria para decodificar una capa de salida de destino). El diseno de DAM3 carece de tal informacion para las capas obtenidas. Ademas, para una capa innecesaria (es decir, una capa que no es una capa necesaria), la informacion de PTL no se senaliza segun la especificacion de codificacion y, por lo tanto, en el diseno de transporte del Flujo de Transporte, senalizar siempre PTL para capas innecesarias seria problematico, ya que hay no hay ninguna informacion de PTL para estas capas por senalizar.
[0091] A continuacion se describen tecnicas ejemplares que pueden abordar las cuestiones anteriores. Sin embargo, no deberia interpretarse como un requisito que las tecnicas que se describen a continuacion aborden las cuestiones anteriores. Las tecnicas ejemplares pueden ser aplicadas por el codificador de video 20, el multiplexador 21, el demultiplexador 29, un dispositivo intermedio (por ejemplo, un MANE) u otro dispositivo como parte de la produccion del flujo de bits que el decodificador de video 30 recibe eventualmente, o pueden ser aplicadas por el decodificador de video 30 u otro dispositivo como parte de la decodificacion de datos de video para producir las imagenes a exhibir. Algunas de las tecnicas se pueden aplicar de forma independiente y algunas de ellas se pueden aplicar en combinacion. Ademas, aunque la divulgacion describe los descriptores de puntos de operacion de la HEVC y, de lo contrario, se refiere a la HEVC, las tecnicas de esta divulgacion pueden ser aplicables a normas de codificacion de video que no sean la HEVC.
[0092] De acuerdo con una primera tecnica de esta divulgacion, se senaliza un indicador para cada flujo elemental (ES) / capa en el punto de operacion de la HEVC para indicar si el ES / la capa es una capa necesaria o no. En esta divulgacion, las referencias a ES / capa o capa / Es se refieren a un flujo elemental correspondiente a una capa o a una subcapa temporal de la capa. Por lo tanto, los datos que identifican un flujo elemental se pueden usar para identificar la capa correspondiente y viceversa. Por ejemplo, el codificador de video 20, el multiplexador 21 o un dispositivo intermedio pueden emitir (por ejemplo, senalizar) un indicador (por ejemplo, necessary_layer_flag[i][k], descrito a continuacion) en el flujo de bits para cada flujo elemental o capa en el punto de operacion, indicando si el flujo elemental, o la capa, es necesario o no. El decodificador de video 30 puede recibir un indicador de este tipo y utilizar el indicador para decodificar el flujo de bits. En otras palabras, el decodificador de video 30 puede decodificar el punto de operacion basandose en el indicador recibido.
[0093] De acuerdo con una segunda tecnica de esta divulgacion, la semantica de prepend_dependencies[i][j] se actualiza para aclarar que la inclusion de un ES / una capa en la lista de flujos elementales para un punto de operacion se aplicara solo cuando el ES no este aun presente en la lista. Por ejemplo, se agrega la semantica de prepend_dependencies[i][j] igual a 0 y se aclara que se incluira una capa / un flujo elemental en la lista de flujos elementales para el punto de operacion de destino solo si la capa / el flujo elemental no esta presente aun en la lista.
[0094] Asi, en algunos ejemplos, un dispositivo, tal como el codificador de video 20, genera un primer descriptor, tal como un descriptor de punto de operacion. Ademas, el dispositivo puede generar un segundo descriptor, tal como un descriptor jerarquico o un descriptor de extension jerarquica. Como parte de la generacion del primer descriptor, el dispositivo puede incluir un primer elemento sintactico y un segundo elemento sintactico en el primer descriptor. En al menos algunos de tales ejemplos, una lista de flujos elementales es una lista de flujos elementales que forman parte del punto de operacion y el segundo descriptor tiene un valor de indice de capa jerarquica igual a un valor del segundo elemento sintactico. Un primer valor del primer elemento sintactico especifica que un flujo elemental indicado por el segundo elemento sintactico, cuando no este presente en la lista de flujos elementales, se agregara a la lista de flujos elementales, y un flujo elemental indicado por un indice de capa integrada en el segundo descriptor, cuando no este presente en la lista de flujos elementales, se agregara a la lista de flujos elementales. Un segundo valor del primer elemento sintactico especifica que el flujo elemental indicado por el segundo elemento sintactico, cuando no este presente en la lista de flujos elementales, se agregara a la lista de flujos elementales, pero no el flujo elemental indicado por el fndice de capa integrada en el segundo descriptor. El dispositivo puede incluir el primer descriptor y el segundo descriptor en un flujo de transporte.
[0095] En un ejemplo similar, un dispositivo, tal como el decodificador de video 30, recibe un flujo de transporte que incluye un primer descriptor, un segundo descriptor y una pluralidad de flujos elementales. El primer descriptor puede ser un descriptor para un punto de operacion de los datos de video. El segundo descriptor puede ser uno entre: un descriptor jerarquico y un descriptor de extension jerarquica. El dispositivo puede decodificar un primer elemento sintactico y un segundo elemento sintactico en el primer descriptor. En al menos algunos de tales ejemplos, una lista de flujos elementales es una lista de flujos elementales del flujo de transporte que forman parte del punto de operacion y el segundo descriptor tiene un valor de fndice de capa jerarquica igual a un valor del segundo elemento sintactico. Ademas, en dichos ejemplos, un primer valor del primer elemento sintactico especifica que: se agregara un flujo elemental, indicado por el segundo elemento sintactico, cuando no este presente en la lista de flujos elementales, en la lista de flujos elementales, siendo el flujo elemental indicado por el segundo elemento sintactico uno entre la pluralidad de flujos elementales, y se agregara un flujo elemental, indicado por un fndice de capa integrada en el segundo descriptor, cuando no este presente en la lista de flujos elementales, a la lista de flujos elementales, siendo el flujo elemental indicado por el fndice de capa integrada en el segundo descriptor uno entre la pluralidad de flujos elementales. En respuesta a la determinacion de que el primer elemento sintactico tiene un segundo valor diferente al primer valor, el dispositivo puede agregar el flujo elemental indicado por el segundo elemento sintactico, cuando no esta presente en la lista de flujos elementales, en la lista de flujos elementales, pero no agregar el flujo elemental, indicado por el fndice de capa integrada en el segundo descriptor, en la lista de flujos elementales.
[0096] De acuerdo con una tercera tecnica de esta divulgacion, se agrega una restriccion al valor de ES_reference[i][j] de manera que el mismo flujo elemental no se senalice explicitamente mas de una vez para cualquier punto de operacion en particular. En otras palabras, se sugiere ademas imponer una restriccion para que el mismo flujo elemental no se senalice explicitamente mas de una vez para cualquier punto de operacion en particular. Por ejemplo, el codificador de video 20 o el dispositivo intermedio pueden configurarse de manera que el mismo flujo elemental no se senalice explicitamente mas de una vez.
[0097] Ademas, esta divulgacion describe varias tecnicas ejemplares que resuelven la segunda cuestion descrita anteriormente (es decir, el problema de no poder determinar los valores de ciertos elementos sintacticos para una capa obtenida, tal como el problema de la falta de indicador de capa de salida y el problema de informacion de PTL). En algunas de tales tecnicas para resolver la segunda cuestion, se propone mantener la funcionalidad de obtener capas para un punto de operacion, senalizar la informacion faltante para las capas obtenidas, pero no senalizar PTL para capas innecesarias.
[0098] En una primera tecnica ejemplar para resolver la segunda cuestion, los elementos sintacticos de prepend_dependencies[i][j] se eliminan y todas las capas se senalizan siempre de forma explicita.
[0099] En una segunda tecnica ejemplar para resolver la segunda cuestion, se presentan dos bucles para las capas de un punto de operacion en el descriptor de punto de operacion de la HEVC. Un bucle contiene los elementos sintacticos ES_reference[i][j] y los elementos sintacticos prepend_dependencies[i][j] de las capas que estan asociadas explicitamente a la referencia a un flujo elemental (ES_reference[i][jJ). Otro bucle contiene los elementos sintacticos output_layer_flag[i][k] y los elementos sintacticos ptl_ref_idx[i][k] de todas las capas. El codificador de video 20, el multiplexador 21, el demultiplexador 29, el decodificador de video 30, un dispositivo intermedio y / u otro dispositivo pueden implementar estos bucles ejemplares para codificar o decodificar el descriptor del punto de operacion de la HEVC.
[0100] En una instancia de la segunda tecnica ejemplar para resolver la segunda cuestion, un dispositivo puede configurarse para realizar un primer bucle para generar o decodificar multiples instancias (por ejemplo, conjuntos) de un primer elemento sintactico (por ejemplo, ES_reference[i][j]) en un descriptor de punto de operacion de la HEVC. El primer elemento sintactico indica el valor de fndice de capa jerarquica presente en el descriptor jerarquico o el descriptor de extension jerarquica de la HEVC que identifica un flujo elemental de un punto de operacion. En el primer bucle, el dispositivo tambien genera o decodifica multiples instancias de un segundo elemento sintactico (por ejemplo, prepend_dependencies[i][j]). El segundo elemento sintactico indica a partir de que estructuras deben incluirse los flujos elementales en una lista de flujos elementales para el punto de operacion, como parte del rendimiento del primer bucle. Ademas, en este ejemplo, el dispositivo puede realizar un segundo bucle para generar o decodificar multiples instancias de un tercer elemento sintactico (por ejemplo, output_layer_flag[i][k]) que indica que flujo elemental del punto de operacion es una capa de salida. Ademas, en el segundo bucle, el dispositivo puede generar o decodificar multiples instancias de un cuarto elemento sintactico (por ejemplo, ptl_ref_idx[i][k]) que indica un fndice para determinar un perfil, grada o nivel de un flujo elemental del punto de operacion. En algunos casos, el dispositivo puede generar un flujo de transporte que incluya el descriptor del punto de operacion de la HEVC o decodificar el punto de operacion basandose en uno o mas entre los elementos sintacticos primero, segundo, tercero y cuarto.
[0101] En una tercera tecnica ejemplar para resolver la segunda cuestion, los dos bucles en la anterior segunda tecnica ejemplar para resolver la segunda cuestion pueden fusionarse entre si, con un indicador para cada capa que indica si la capa esta senalizada explicita o implicitamente. Para este ejemplo, se supone que las capas, segun lo obtenido por el descriptor jerarquico o el descriptor de extension jerarquica identificado por ES_reference[i][j], formulan un cierto orden, de modo que es posible que las capas, segun estan ordenadas en el segundo bucle, correlacionen cada una de las capas senalizadas explicitamente con las capas segun son senalizadas u obtenidas por la informacion en el primer bucle.
[0102] Una cuarta tecnica ejemplar para resolver la segunda cuestion todavia habilita la funcionalidad mediante el elemento sintactico prepend_dependencies[i][j], pero, cuando se aplica, se deduce si una capa obtenida es una capa de salida con un valor predeterminado. Por ejemplo, cuando prepend_dependencies[i][j] es igual a 1, un dispositivo puede deducir que el valor de un elemento sintactico output_layer_flag[i][j] es igual a un valor predeterminado. Dicho valor predeterminado, por ejemplo, 0 o 1, puede senalizarse para el punto de operacion actual. El perfil, la grada y el nivel de una capa obtenida se configuran para que sean los mismos de la misma capa que ha sido explicitamente senalizada anteriormente en un punto de operacion diferente.
[0103] Con el fin de no senalizar PTL para capas innecesarias, esta divulgacion propone senalizar un indicador para cada ES / capa en el punto de operacion de la HEVC, para indicar si el ES / la capa es una capa necesaria o no. La senalizacion utiliza un bit que, de lo contrario, se reservaria, por lo que no se introduce ninguna sobrecarga adicional y la senalizacion evita un proceso de obtencion complicado que, de lo contrario, puede ser necesario especificar. Por ejemplo, un dispositivo (por ejemplo, el codificador de video 20, el multiplexador 21, el demultiplexador 29, el decodificador de video 30, un dispositivo intermedio u otro dispositivo) puede configurarse para determinar flujos o capas elementales de un punto de operacion, determinar un indicador (por ejemplo, necessary_layer_flag[i][k], descrito a continuacion) para cada flujo o capa elemental en el punto de operacion, en donde el indicador indica si un flujo, o capa, elemental respectivo es un flujo, o capa, necesario, y produce un flujo de bits que incluye los flujos elementales y los respectivas indicadores.
[0104] La figura 2 es un diagrama de bloques que ilustra un ejemplo del codificador de video 20 que puede implementar tecnicas para transportar datos de video codificados de acuerdo con las extensiones de una norma de codificacion de video. Los datos de video pueden incluir multiples (por ejemplo, dos o mas) capas de mejora para una capa de base, donde las capas de mejora pueden corresponder a diferentes dimensiones de ajustabilidad a escala.
[0105] En el ejemplo de la figura 2, el codificador de video 20 incluye la memoria de datos de video 49, la unidad de seleccion de modalidad 40, el almacen temporal de imagenes decodificadas (DPB) 64, el sumador 50, la unidad de procesamiento de transformacion 52, la unidad de cuantizacion 54 y la unidad de codificacion por entropia 56. A su vez, la unidad de seleccion de modalidad 40 incluye la unidad de compensacion de movimiento 44, la unidad de estimacion de movimiento 42, la unidad de intra-prediccion 46 y la unidad de division 48. Para la reconstruccion de bloques de video, el codificador de video 20 incluye tambien la unidad de cuantizacion inversa 58, la unidad de transformacion inversa 60 y el sumador 62.
[0106] La memoria de datos de video 49 puede almacenar datos de video a codificar por los componentes del codificador de video 20. Los datos de video almacenados en la memoria de datos de video 49 se pueden obtener, por ejemplo, a partir del origen de video 18. El DPB 64 puede ser una memoria de imagenes de referencia que almacena datos de video de referencia para su uso en la codificacion de datos de video por el codificador de video 20, por ejemplo, en modalidades de intracodificacion o intercodificacion. La memoria de datos de video 49 y el DPB 64 pueden estar formados por cualquiera entre varios dispositivos de memoria, tales como memoria dinamica de acceso aleatorio (DRAM), incluyendo DRAM sincrona (SDRAM), RAM magneto-resistiva (MRAM), RAM resistiva (RRAM) u otros tipos de dispositivos de memoria. La memoria de datos de video 49 y el DPB 64 pueden ser proporcionados por el mismo dispositivo de memoria o por dispositivos de memoria independientes. En diversos ejemplos, la memoria de datos de video 49 puede estar en un chip con otros componentes del codificador de video 20, o fuera de chip con respecto a esos componentes.
[0107] Durante el proceso de codificacion, el codificador 20 de video recibe una trama o un fragmento de video a codificar. La trama o el fragmento pueden dividirse en multiples bloques de video. La unidad de estimacion de movimiento 42 y la unidad de compensacion de movimiento 44 llevan a cabo la codificacion interpredictiva del bloque de video recibido con respecto a uno o mas bloques en una o mas tramas de referencia, para proporcionar la prediccion temporal. La unidad de intra-prediccion 46, de forma alternativa, puede llevar a cabo la codificacion intrapredictiva del bloque de video recibido, con respecto a uno o mas bloques contiguos en la misma trama o fragmento que el bloque a codificar, para proporcionar prediccion espacial. El codificador de video 20 puede llevar a cabo multiples pases de codificacion, por ejemplo, para seleccionar una modalidad de codificacion adecuada para cada bloque de datos de video.
[0108] Ademas, la unidad de division 48 puede dividir bloques de datos de video en subbloques, basandose en la evaluacion de los anteriores esquemas de division en los anteriores pases de codificacion. Por ejemplo, la unidad de particion 48 puede dividir inicialmente una trama o un fragmento en varias LCU, y dividir cada una de las LCU en varias sub-CU, basandose en un analisis de velocidad-distorsion (por ejemplo, una optimizacion de velocidad-distorsion). La unidad de seleccion de modalidad 40 puede producir ademas una estructura de datos de arbol cuadruple, indicativa de la division de una LCU en las sub-CU. Las CU de nodos de hojas del arbol cuadruple pueden incluir una o mas PU y una o mas TU.
[0109] La unidad de seleccion de modalidad 40 puede seleccionar una de las modalidades de codificacion, intra o inter, por ejemplo, basandose en los resultados de errores, y puede proporcionar el bloque intracodificado o intercodificado resultante al sumador 50 para generar datos de bloques residuales y al sumador 62 para reconstruir el bloque codificado para su uso en una trama de referencia. La unidad de seleccion de modalidad 40 proporciona ademas elementos sintacticos, tales como vectores de movimiento, indicadores de intramodalidad, informacion de division y otra informacion sintactica de este tipo, a la unidad de codificacion por entropia 56.
[0110] La estimacion del movimiento, realizada por la unidad de estimacion del movimiento 42, es el proceso de generacion de vectores de movimiento, que estiman el movimiento de los bloques de video. La unidad de estimacion de movimiento 42 calcula un vector de movimiento para una PU de un bloque de video en un fragmento intercodificado, comparando la posicion de la PU con la posicion de un bloque predictivo de una imagen de referencia. La imagen de referencia se puede seleccionar a partir de una primera lista de imagenes de referencia (ListaImgRef0) o una segunda lista de imagenes de referencia (ListalmgRefl), cada una de las cuales identifica una o mas imagenes de referencia almacenadas en el DPB 64. La unidad de estimacion del movimiento 42 envia el vector de movimiento calculado a la unidad de codificacion por entropia 56 y a la unidad de compensacion de movimiento 44. La compensacion de movimiento, llevada a cabo por la unidad de compensacion de movimiento 44, puede implicar capturar o generar el bloque predictivo basandose en el vector de movimiento determinado por la unidad de estimacion de movimiento 42. El sumador 50 forma un bloque de video residual restando los valores de pixel del bloque predictivo a los valores de pixel del bloque de video actual que se esta codificando, generando valores de diferencias de pixel, como se expone posteriormente. La unidad de seleccion de modalidad 40 tambien puede generar elementos sintacticos asociados a los bloques de video y el fragmento de video para su uso por el decodificador de video 30 al decodificar los bloques de video del fragmento de video.
[0111] La unidad de intra-prediccion 46 puede intrapredecir un bloque actual, como alternativa a la interprediccion llevada a cabo por la unidad de estimacion de movimiento 42 y la unidad de compensacion de movimiento 44, como se ha descrito anteriormente. Despues de seleccionar una modalidad de intra-prediccion para un bloque, la unidad de intra-prediccion 46 puede proporcionar informacion, indicativa de la modalidad de intra-prediccion seleccionada para el bloque, a la unidad de codificacion por entropia 56. La unidad de codificacion por entropia 56 puede codificar la informacion que indica la modalidad de intra-prediccion seleccionada.
[0112] El codificador de video 20 puede formar un bloque de video residual restando los datos de prediccion de la unidad de seleccion de modalidad 40 al bloque de video original que se esta codificando. El sumador 50 representa el componente o los componentes que realizan esta operacion de resta. La unidad de procesamiento de transformacion 52 puede aplicar una transformacion, tal como una transformacion discreta de coseno (DCT) o una transformacion conceptualmente similar, al bloque residual, generando un bloque de video que comprende valores residuales de coeficientes de transformacion. La unidad de cuantizacion 54 puede cuantizar los coeficientes de transformacion para reducir adicionalmente la tasa de bits. Despues de la cuantizacion, la unidad de codificacion por entropia 56 puede codificar por entropia los elementos sintacticos que indican los coeficientes de transformacion cuantizados. Por ejemplo, la unidad de codificacion por entropia 56 puede llevar a cabo la codificacion de longitud variable adaptable al contexto (CAVLC), la codificacion aritmetica binaria adaptable al contexto (CABAC), la codificacion aritmetica binaria adaptable al contexto y basada en sintaxis (SBAC), la codificacion por entropia mediante la division en intervalos de probabilidades (PIPE) u otra tecnica de codificacion por entropia. Tras la codificacion por entropia realizada por la unidad de codificacion por entropia 56, el flujo de bits codificado puede transmitirse a otro dispositivo (por ejemplo, el decodificador de video 30) o archivarse para su posterior transmision o recuperacion.
[0113] La unidad de cuantizacion inversa 58 y la unidad de transformacion inversa 60 aplican la cuantizacion inversa y la transformacion inversa, respectivamente, para reconstruir el bloque residual en el dominio del pixel, por ejemplo, para su uso posterior como bloque de referencia. La unidad de compensacion de movimiento 44 puede calcular un bloque de referencia anadiendo el bloque residual a un bloque predictivo de una de las tramas del DPB 64. El sumador 62 puede agregar el bloque residual reconstruido al bloque de prediccion de movimiento compensado por movimiento, producido por la unidad de compensacion de movimiento 44 para producir un bloque de video reconstruido para su almacenamiento en el DPB 64. El bloque de video reconstruido puede ser utilizado por la unidad de estimacion de movimiento 42 y la unidad de compensacion de movimiento 44, como bloque de referencia para intercodificar un bloque en una trama de video subsiguiente.
[0114] En algunos ejemplos, el codificador de video 20 de la figura 2 genera un primer descriptor, tal como un descriptor de punto de operacion. Ademas, el codificador de video 20 puede generar un segundo descriptor, tal como un descriptor jerarquico o un descriptor de extension jerarquica. Como parte de la generacion del primer descriptor, el codificador de video 20 puede incluir un primer elemento sintactico y un segundo elemento sintactico en el primer descriptor. En al menos algunos de tales ejemplos, una lista de flujos elementales es una lista de flujos elementales que forman parte del punto de operacion y el segundo descriptor tiene un valor de indice de capa jerarquica igual a un valor del segundo elemento sintactico. Un primer valor del primer elemento sintactico especifica que un flujo elemental indicado por el segundo elemento sintactico, cuando no este presente en la lista de flujos elementales, se agregara a la lista de flujos elementales, y un flujo elemental indicado por un indice de capa integrada en el segundo descriptor, cuando no este presente en la lista de flujos elementales, se agregara a la lista de flujos elementales. Un segundo valor del primer elemento sintactico especifica que el flujo elemental indicado por el segundo elemento sintactico, cuando no este presente en la lista de flujos elementales, se agregara a la lista de flujos elementales, pero no el flujo elemental indicado por el indice de capa integrada en el segundo descriptor. El codificador de video 20 puede incluir el primer descriptor y el segundo descriptor en un flujo de transporte.
[0115] La figura 3 es un diagrama de bloques que ilustra un ejemplo de decodificador de video 30 que puede implementar tecnicas para transportar datos de video codificados de acuerdo con las extensiones de una norma de codificacion de video. En el ejemplo de la figura 3, el decodificador de video 30 incluye una memoria de datos de video 69, una unidad de decodificacion por entropia 70, una unidad de compensacion de movimiento 72, una unidad de intra-prediccion 74, una unidad de cuantizacion inversa 76, una unidad de transformacion inversa 78, un almacen temporal de imagenes decodificadas (DPB) 82 y un sumador 80.
[0116] La memoria de datos de video 69 puede almacenar datos de video, tales como un flujo de bits de video codificado, para ser decodificado por los componentes del decodificador de video 30. Los datos de video almacenados en la memoria de datos de video 69 pueden obtenerse, por ejemplo, a partir del medio legible por ordenador 16, por ejemplo, desde un origen de video local, tal como una camara, mediante comunicacion de datos de video por red cableada o inalambrica, o accediendo a medios de almacenamiento fisico de datos. La memoria de datos de video 69 puede formar un almacen temporal de imagenes codificadas (CPB) que almacene datos de video codificados a partir de un flujo de bits de video codificado. El DPB 82 puede ser una memoria de imagen de referencia que almacena datos de video de referencia para su uso en la decodificacion de datos de video por el decodificador de video 30, por ejemplo, en modalidades de intracodificacion o intercodificacion. La memoria de datos de video 69 y el DPB 82 pueden estar formados por cualquiera entre varios dispositivos de memoria, tales como memoria dinamica de acceso aleatorio (DRAM), incluyendo DRAM sincrona (SDRAM), RAM magneto-resistiva (MRAM), RAM resistiva (RRAM) u otros tipos de dispositivos de memoria. La memoria de datos de video 69 y el DPB 82 pueden ser proporcionados por el mismo dispositivo de memoria o por dispositivos de memoria independientes. En diversos ejemplos, la memoria de datos de video 69 puede estar en un chip con otros componentes del decodificador de video 30, o fuera de chip con respecto a esos componentes.
[0117] La memoria de datos de video 69 puede recibir y almacenar datos de video codificados (por ejemplo, unidades de NAL) de un flujo de bits. La unidad de decodificacion por entropia 70 puede recibir datos de video codificados (por ejemplo, unidades de NAL) desde la memoria de datos de video 69 y puede analizar sintacticamente las unidades de NAL para decodificar elementos sintacticos. Durante el proceso de decodificacion, el decodificador 30 de video recibe un flujo de bits de video codificado que representa bloques de video de un fragmento de video codificado y elementos sintacticos asociados, desde el codificador de video 20. La unidad de decodificacion de entropia 70 del decodificador de video 30 decodifica por entropia el flujo de bits para generar coeficientes cuantizados, indicadores de modalidad de intra-prediccion y otros elementos sintacticos.
[0118] La unidad de intra-prediccion 74 puede generar datos de prediccion para un bloque de video del fragmento de video actual basandose en una modalidad de intra-prediccion senalizada y datos de bloques previamente decodificados de la trama o imagen actual. La unidad de compensacion de movimiento 72 produce bloques predictivos para un bloque de video del fragmento de video actual basandose en los vectores de movimiento y otros elementos sintacticos recibidos desde la unidad de decodificacion por entropia 70. Los bloques predictivos se pueden producir a partir de una de las imagenes de referencia dentro de una de las listas de imagenes de referencia. La unidad de compensacion de movimiento 72 puede determinar la informacion de prediccion para un bloque de video usando una informacion de prediccion, y puede producir los bloques predictivos para el bloque de video actual que se esta decodificando.
[0119] La unidad de cuantizacion inversa 76 puede cuantizar de manera inversa los coeficientes de transformacion cuantizados, proporcionados en el flujo de bits y decodificados por la unidad de decodificacion por entropia 70. La unidad de transformacion inversa 78 aplica una transformacion inversa, por ejemplo, una DCT inversa, una transformacion inversa de enteros, o un proceso de transformacion inversa conceptualmente similar, a los coeficientes de transformacion, con el fin de generar bloques residuales en el dominio del pixel.
[0120] Despues de que la unidad de compensacion de movimiento 72 genera el bloque predictivo para el bloque de video actual basandose en los vectores de movimiento y otros elementos sintacticos, el decodificador de video 30 puede formar un bloque de video decodificado sumando los bloques residuales de la unidad de transformacion inversa 78 y los correspondientes bloques predictivos generados por la unidad de compensacion de movimiento 72. El sumador 80 representa el componente o los componentes que realizan esta operacion de suma. Los bloques de video decodificados en una trama o imagen dada son a continuacion almacenados en el DPB 82, que almacena imagenes de referencia usadas para la posterior compensacion de movimiento. El DPB 82 almacena tambien video decodificado para su presentacion posterior en un dispositivo de visualizacion, tal como el dispositivo de visualizacion 32 de la figura 1.
[0121] En algunos ejemplos, el decodificador de video 30 recibe un flujo de transporte que incluye un primer descriptor, un segundo descriptor y una pluralidad de flujos elementales. El primer descriptor puede ser un descriptor para un punto de operacion de los datos de video. El segundo descriptor puede ser uno entre: un descriptor jerarquico y un descriptor de extension jerarquica. El decodificador de video 30 puede decodificar un primer elemento sintactico y un segundo elemento sintactico en el primer descriptor. En al menos algunos de tales ejemplos, una lista de flujos elementales es una lista de flujos elementales del flujo de transporte que forman parte del punto de operacion y el segundo descriptor tiene un valor de indice de capa jerarquica igual a un valor del segundo elemento sintactico. Ademas, en dichos ejemplos, un primer valor del primer elemento sintactico especifica que: se agregara un flujo elemental, indicado por el segundo elemento sintactico, cuando no este presente en la lista de flujos elementales, en la lista de flujos elementales, siendo el flujo elemental indicado por el segundo elemento sintactico uno entre la pluralidad de flujos elementales, y se agregara un flujo elemental, indicado por un indice de capa integrada en el segundo descriptor, cuando no este presente en la lista de flujos elementales, a la lista de flujos elementales, siendo el flujo elemental indicado por el indice de capa integrada en el segundo descriptor uno entre la pluralidad de flujos elementales. En respuesta a que la determinacion del primer elemento sintactico tiene un segundo valor diferente al primer valor, el decodificador de video 30 puede agregar el flujo elemental indicado por el segundo elemento sintactico, cuando no esta presente en la lista de flujos elementales, en la lista de flujos elementales, pero no agregando el flujo elemental indicado por el indice de la capa integrada en el segundo descriptor en la lista de flujos elementales.
[0122] La figura 4 es un diagrama de flujo que ilustra una operacion ejemplar de un dispositivo que genera un flujo de transporte, de acuerdo con una tecnica de esta divulgacion. Los diagramas de flujo de esta divulgacion se proporcionan como ejemplos de operaciones. Otras operaciones de acuerdo con las tecnicas de esta divulgacion pueden incluir mas, menos o diferentes acciones, o pueden realizar tales acciones en diferentes ordenes o en paralelo. En el ejemplo de la figura 4, el dispositivo puede ser un dispositivo de origen 12 u otro tipo de dispositivo para procesar datos de video. El funcionamiento de la figura 4 puede implementar una solucion a la segunda cuestion descrita anteriormente (es decir, el problema de no poder determinar los valores de ciertos elementos sintacticos para una capa derivada).
[0123] En el ejemplo de la figura 4, el dispositivo genera un primer descriptor (por ejemplo, un descriptor de punto de operacion de la HEVC) (150). El primer descriptor es un descriptor de un punto de operacion. Una lista de flujos elementales (por ejemplo, la OperationPointESList[i]) es una lista de flujos elementales del flujo de transporte que forman parte del punto de operacion. Un dispositivo que recibe o procesa un flujo puede generar la lista de flujos elementales agregando flujos elementales a la lista de flujos elementales. Ademas, el dispositivo genera un segundo descriptor (152). El segundo descriptor es uno entre: un descriptor jerarquico y un descriptor de extension jerarquica. El dispositivo puede incluir el primer descriptor y el segundo descriptor en un flujo de transporte (154). Por ejemplo, el dispositivo puede emitir una serie de bits que representan el primer descriptor y el segundo descriptor en el flujo de transporte.
[0124] Ademas, en el ejemplo de la figura 4, como parte de la generacion del primer descriptor, el dispositivo incluye un primer elemento sintactico (por ejemplo, prepend_dependencies[i][j]) en el primer descriptor (156). Ademas, como parte de la generacion del primer descriptor, el dispositivo incluye un segundo elemento sintactico (por ejemplo, ES_reference[i][j]) en el primer descriptor (158). El segundo descriptor tiene un valor de indice de capa jerarquica (por ejemplo, indice de capa jerarquica) igual a un valor del segundo elemento sintactico. Cuando el dispositivo incluye un elemento sintactico en un descriptor, el dispositivo puede almacenar un valor del elemento sintactico en una memoria de manera que indique que el valor es parte del descriptor, por ejemplo, como parte de una estructura de datos.
[0125] En el ejemplo de la figura 4, un primer valor (por ejemplo, 1) del primer elemento sintactico especifica que un flujo elemental indicado por el segundo elemento sintactico, cuando no este presente en la lista de flujos elementales, se agregara a la lista de flujos elementales. Ademas, el primer valor del primer elemento sintactico especifica un flujo elemental indicado por un indice de capa integrada (por ejemplo, hierarchy_embedded_layer_index o hierarchy_ext_embedded_layer_index) en el segundo descriptor, cuando no este presente en la lista de flujos elementales, se agregara a la lista de flujos elementales. Un segundo valor del primer elemento sintactico especifica que el flujo elemental indicado por el segundo elemento sintactico, cuando no este presente en la lista de flujos elementales, se agregara a la lista de flujos elementales, pero no el flujo elemental indicado por el indice de capa integrada en el segundo descriptor.
[0126] La figura 5 es un diagrama de flujo que ilustra una operacion ejemplar de un dispositivo que recibe un flujo de transporte, de acuerdo con una tecnica de esta divulgacion. En el ejemplo de la figura 5, el dispositivo puede ser un dispositivo de destino 14, un MANE u otro tipo de dispositivo para procesar datos de video. La operacion de la figura 5 puede implementar una solucion a la segunda cuestion descrita anteriormente (es decir, el problema de no poder determinar los valores de ciertos elementos sintacticos para una capa obtenida).
[0127] En el ejemplo de la figura 5, el dispositivo recibe un flujo de transporte que incluye un primer descriptor (por ejemplo, un descriptor de punto de operacion de la HEVC), un segundo descriptor y una pluralidad de flujos elementales (200). El primer descriptor es un descriptor para un punto de operacion. El segundo descriptor es uno entre: un descriptor jerarquico y un descriptor de extension jerarquica. En algunos ejemplos, la interfaz de entrada 28 recibe el flujo de transporte.
[0128] Ademas, el dispositivo puede decodificar un primer elemento sintactico (por ejemplo, prepend_dependencies[i][j]) en el primer descriptor (202). En otras palabras, el dispositivo puede determinar un valor del primer elemento sintactico. Las formas ejemplares de decodificacion de un elemento sintactico pueden incluir analizar sintacticamente el elemento sintactico a partir de una serie de bits, aplicar un algoritmo de decodificacion por entropia u obtener de otro modo el valor del elemento sintactico. Ademas, el dispositivo puede decodificar un segundo elemento sintactico diferente (por ejemplo, ES_reference[i][j]) en el primer descriptor (204). En otras palabras, el dispositivo puede determinar un valor del segundo elemento sintactico, por ejemplo, analizando sintacticamente el segundo elemento sintactico a partir de los bits del primer descriptor. Una lista de flujos elementales (por ejemplo, la OperationPointESList[i]) es una lista de flujos elementales del flujo de transporte que forman parte del punto de operacion. El segundo descriptor tiene un valor de indice de capa jerarquica (por ejemplo, hierarchy_layer_index) igual a un valor del segundo elemento sintactico.
[0129] En el ejemplo de la figura 5, un primer valor (por ejemplo, 1) del primer elemento sintactico especifica que un flujo elemental indicado por el segundo elemento sintactico, cuando no este presente en la lista de flujos elementales, se agregara a la lista de flujos elementales. El flujo elemental indicado por el segundo elemento sintactico puede ser uno entre la pluralidad de flujos elementales recibidos por el dispositivo. Ademas, el primer valor del primer elemento sintactico especifica un flujo elemental indicado por un indice de capa integrada (por ejemplo, hierarchy_embedded_layer_index o hierarchy_ext_embedded_layer_index) en el segundo descriptor, cuando no este presente en la lista de flujos elementales, se agregara a la lista de flujos elementales. El flujo elemental indicado por el indice de capa integrada en el segundo descriptor puede ser uno entre la pluralidad de flujos elementales recibidos por el dispositivo. Un segundo valor (por ejemplo, 0) del primer elemento sintactico especifica que el flujo elemental indicado por el segundo elemento sintactico, cuando no este presente en la lista de flujos elementales, se agregara a la lista de flujos elementales, pero no el flujo elemental indicado por el indice de capa integrada en el segundo descriptor.
[0130] Asi, en algunos casos, tal como en el ejemplo de la figura 5, el dispositivo puede determinar que el primer elemento sintactico tiene el segundo valor (206). En respuesta a que la determinacion del primer elemento sintactico tenga el segundo valor, el dispositivo puede agregar el flujo elemental indicado por el segundo elemento sintactico, cuando no este presente en la lista de flujos elementales, en la lista de flujos elementales, pero no agrega el flujo elemental, indicado por el indice de capa integrada en el segundo descriptor, en la lista de flujos elementales (208). Por ejemplo, un dispositivo puede agregar un flujo elemental a una lista almacenando una referencia al flujo elemental en una ubicacion en la memoria, de una manera que indique que el flujo elemental esta en la lista, tal como agregando la referencia al flujo elemental a un lista o formacion enlazada.
[0131] Aunque no se ilustra en el ejemplo de la figura 5, el dispositivo puede descartar datos para capas que no corresponden al punto de operacion. Por ejemplo, el dispositivo puede descartar paquetes de transporte de flujos elementales correspondientes a las capas que no corresponden al punto de operacion. El dispositivo puede remitir los datos restantes (por ejemplo, paquetes de transporte de flujos elementales correspondientes a las capas del punto de operacion) a otro dispositivo o un decodificador de video, tal como el decodificador de video 30.
[0132] El siguiente texto describe algunas formas ejemplares de implementar los aspectos descritos anteriormente. Los detalles de la implementacion se describen en terminos de cambios a DAM3. En los cambios de texto de estas implementaciones, el texto encerrado entre las etiquetas "<ins>" y "</ins>" se agrega o modifica (por ejemplo,<ins> texto insertado o modificado</ins>), mientras que las eliminaciones estan encerradas entre las etiquetas "<dlt>" y "</dlt>" (por ejemplo,<dlt> texto eliminado </dlt>).
[0133] De acuerdo con una primera tecnica ejemplar de implementacion, la Tabla 1 y sus elementos sintacticos describen las modificaciones detalladas a DAM3 para los ejemplos primero, segundo y tercero para resolver la primera cuestion descrita anteriormente y el segundo ejemplo para resolver la segunda cuestion descrita anteriormente.
Tabla 1
Figure imgf000023_0001
Figure imgf000024_0001
[0134] El siguiente texto indica modificaciones a la semantica de acuerdo con la primera tecnica ejemplar de implementacion. num_ptl - Este campo de<dlt> 8 bits </dlt><ins> 6 bits </ins>especifica el numero de estructuras de perfil, grada y nivel senalizadas en este descriptor. <ins>Sea OperationPointESList[i] la lista de los ES que forman parte del i-esimo punto de operacion de la HEVC. </ins> prepend_dependencies[i][j] - Este indicador, si se fija en 1,<dlt> indica </dlt><ins> especifica que el ES indicado por ES_reference[i][j], cuando no este presente aun en la OperationPointESList[i], se agregara a OperationPointESList[i] y </ins><dlt>que</dlt> el ES <ins>indicado</ins> por el elemento sintactico hierarchy_embedded_layer_index en el descriptor jerarquico, o todos los ES <ins>indicados</ins> por el elemento sintactico hierarchy_ext_embedded_layer_index en el descriptor de la extension de jerarquia de la HEVC, con el valor del indice de capa jerarquica especificado por el siguiente elemento sintactico ES_reference[i][j] < ms >, cuando aun no este presente en la OperationPointESList[i], </ins>sera agregado <dlt>a las flujos elementales para el punto de operacion de destino </dlt><ins> en la ListaCapasPuntoOperaci6n[i] inmediatamente </ins>antes del ES senalizado por la ES_reference[i][j] <ins> en orden ascendente del valor de su hierarchy_embedded_layer_index o hierarchy_ext_embedded_layer_index asociado. Cuando el valor de prepend_dependencies[i][j]es igual a 0, solo el ES indicado por ES_reference[i][j], cuando aun no este presente en la OperationPointESList[i], se agregara a la OperationPointESList[i]. El ES indicado por la ES_reference[i][m ]se colocara antes (es decir, con un indice inferior) en la OperationPointESList[i] que el ES indicado con la ES_reference[i][n] cuando m es menor que n. </ins><ins> NOTA: El orden de los ES en la OperationPointESList[i]debe estar en orden ascendente de los valores de su hierarchy_layer_index </ins>ES_reference[i][j] - Este campo de 6 bits indica el valor del fndice de la capa jerarquica presente en el descriptor jerarquico o en el descriptor de la extension jerarquica de la HEVC que identifica un flujo elemental.<ins>El valor de la ES_reference[i][m ]y la ES_reference[i][n] para m no igual a n no sera el mismo. </ins><ins> Sea NumESinOP[i]el numero de los ES en la OperationPointESList[i]despues de que todos los ES que forman parte del i-esimo punto de operacion de la HEVC se hayan incluido en la OperationPointESList[i] (es decir, despues de analizar sintacticamente ES_reference[i][ES_count[i] - 1 ]). </ins><ins> necessary_layer_flag[i][k] - Este indicador, cuando se fija en '1', indica que el k-esimo ES en la OperationPointESList[i] es una capa necesaria, segun se define en 23008-2, del i-esimo punto de operacion. Este indicador igual a '0' indica que el k-esimo ES en la OperationPointESList[i] no es una capa necesaria, segun se define en 23008-2, del i-esimo punto de operacion. </ins> output_layer_flag[i]<ins>[k ]</ins> - Este indicador, cuando se fija en '1', indica que el <ins>k</ins>-esimo<ins> ES en la capa de la OperationPointESList[i] </ins> <dlt> del i-esimo punto de operacion de la HEVC, definido en este descriptor, </dlt>es una capa de salida. De lo contrario, cuando se fija en '0', indica que el <ins>k</ins>-esimo<ins> ES en la capa de la OperationPointESList[i]</ins><dlt> del i-esimo punto de operacion de la HEVC, definido en este descriptor, </dlt>no es una capa de salida. <ins>Cuando el valor del necessary_layer_flag[i][k] es igual a 0, el valor del output_layer_flag[i][k] se ignorara. </ins>ptl_ref_idx[i][k] - Un campo de<dlt>8 bits</dlt><ins>6 bits</ins> que indica el fndice x para el elemento profile_tier_level_info[x] de la profile_tier_level_array que se aplica al <ins>k</ins>-esimo <ins> ES en la capa de la OperationPointESList[i]</ins><dlt>del i-esimo punto de operacion de la HEVC definido en este descriptor</dlt>. <ins> Cuando el valor de necessary_layer_flag[i][k] es igual a 0, el valor de ptl_ref_idx[i][k] se ignorara.</ins>
[0135] La figura 6 es un diagrama de flujo que ilustra una operacion ejemplar de un dispositivo para generar un flujo de transporte de acuerdo con una tecnica ejemplar de esta divulgacion. Por ejemplo, la operacion de la figura 6 puede ser de acuerdo con la primera tecnica ejemplar de implementacion de esta divulgacion expuesta anteriormente (es decir, la tecnica descrita anteriormente con respecto a la Tabla 1). La operacion de la figura 6 puede ser realizada por el dispositivo de origen 12 u otro dispositivo. La operacion de la figura 6 puede ser una version expandida de la operacion de la figura 4.
[0136] En el ejemplo de la figura 6, el dispositivo puede generar un conjunto de segundos descriptores (250). Cada respectivo segundo descriptor del conjunto de segundos descriptores puede ser uno entre: un descriptor jerarquico y un descriptor de extension jerarquica. El conjunto de segundos descriptores puede incluir el "segundo descriptor" descrito con respecto a la figura 4.
[0137] Ademas, el dispositivo puede generar un primer descriptor (por ejemplo, un descriptor de punto de operacion de la HEVC) (252). Como parte de la generacion del primer descriptor, el dispositivo puede incluir un elemento sintactico de recuento de flujos elementales (por ejemplo, ES_count) en el primer descriptor (254). El elemento sintactico de recuento de flujos elementales puede indicar un numero de flujos elementales.
[0138] Ademas, como parte de la generacion del primer descriptor, el dispositivo puede incluir un conjunto de primeros elementos sintacticos (por ejemplo, prepend_dependencies[i][j]) en el primer descriptor (256). Ademas, como parte de la generacion del primer descriptor, el dispositivo puede incluir un conjunto de segundos elementos sintacticos (por ejemplo, ES_reference[i][j]) en el primer descriptor (258). El numero de primeros elementos sintacticos en el conjunto de primeros elementos sintacticos y el numero de segundos elementos sintacticos en el conjunto de segundos elementos sintacticos es igual a un valor del elemento sintactico de recuento de flujo elemental. El conjunto de primeros elementos sintacticos puede incluir el "primer elemento sintactico" mencionado con respecto a la figura 4. El conjunto de segundos elementos sintacticos puede incluir el "segundo elemento sintactico" mencionado con respecto a la figura 4.
[0139] En algunos ejemplos, el conjunto de segundos elementos sintacticos esta restringido de tal manera que no haya dos segundos elementos sintacticos del conjunto de segundos elementos sintacticos que tengan el mismo valor. En otras palabras, como se indica en los cambios a DAM3 en lo que antecede, el valor de ES_reference[i][m] y de ES_reference[i][n], para m no igual a n, no sera el mismo.
[0140] Para cada respectivo primer elemento sintactico del conjunto de primeros elementos sintacticos, un respectivo segundo elemento sintactico del conjunto de segundos elementos sintacticos corresponde al respectivo primer elemento sintactico. Por ejemplo, un primer elemento sintactico y un segundo elemento sintactico con los mismos valores de i y j se corresponden entre sf. Un respectivo segundo descriptor del conjunto de segundos descriptores tiene un valor de fndice de capa jerarquica (por ejemplo, hierarchy_layer_id) igual a un valor del respectivo segundo elemento sintactico.
[0141] En el ejemplo de la figura 6, un primer valor (por ejemplo, 1) del respectivo primer elemento sintactico especifica que un flujo elemental indicado por el respectivo segundo elemento sintactico, cuando no este presente en la lista de flujos elementales, se agregara a la lista de flujos elementales, y un flujo elemental indicado por un fndice de capa integrada en el respectivo segundo descriptor, cuando no este presente en la lista de flujos elementales del punto de operacion, se agregara a la lista de flujos elementales. Un segundo valor (por ejemplo, 0) del respectivo primer elemento sintactico especifica que el respectivo flujo elemental indicado por el respectivo segundo elemento sintactico, cuando no este presente en la lista de flujos elementales, se agregara a la lista de flujos elementales, pero no el respectivo flujo elemental indicado por el fndice de capa integrada en el respectivo segundo descriptor.
[0142] Ademas, en el ejemplo de la figura 6, el dispositivo puede incluir un conjunto de elementos sintacticos indicadores de capa necesaria (por ejemplo, necessary_layer_flag[i][k]) en el primer descriptor (260). Cada respectivo elemento sintactico en el conjunto de elementos sintacticos indicadores de capa-necesaria puede corresponder a un respectivo flujo elemental en la lista de flujos elementales. Cada respectivo elemento sintactico respectivo del conjunto de elementos sintacticos indicadores de capa-necesaria indica si el flujo elemental correspondiente al respectivo elemento sintactico del conjunto de elementos sintacticos indicadores de capa-necesaria es una capa necesaria. Una capa necesaria puede definirse como una capa en un punto de operacion de salida asociado a un conjunto de capas de salida, siendo la capa una capa de salida del conjunto de capas de salida, o una capa de referencia de una capa de salida del conjunto de capas de salida.
[0143] El dispositivo tambien puede incluir un conjunto de elementos sintacticos indicadores de capa de salida (por ejemplo, output_layer_flag[i][k]) en el primer descriptor (262). Cada respectivo elemento sintactico en el conjunto de elementos sintacticos de salida puede corresponder a un respectivo flujo elemental en la lista de flujos elementales. Cada respectivo elemento sintactico del conjunto de elementos sintacticos indicadores de capa de salida puede indicar si el flujo elemental, correspondiente al respectivo elemento sintactico del conjunto de elementos sintacticos indicadores de capa de salida, es una capa de salida.
[0144] Ademas, el dispositivo puede incluir un conjunto de elementos sintacticos de fndices de referencia de PTL (por ejemplo, ptl_ref_idx[i][k]) en el primer descriptor (264). Cada respectivo elemento sintactico en el conjunto de elementos sintacticos de fndices de referencia de PTL puede corresponder a un respectivo flujo elemental en la lista de flujos elementales. Cada respectivo elemento sintactico del conjunto de elementos sintacticos de fndices de referencia de PTL puede indicar un fndice para determinar un perfil, grada o nivel del flujo elemental correspondiente al respectivo elemento sintactico del conjunto de elementos sintacticos de fndices de referencia de PTL.
[0145] En el ejemplo de la figura 6, el dispositivo puede incluir el primer descriptor y el segundo descriptor en un flujo de transporte (266). Por ejemplo, el dispositivo puede generar un conjunto de paquetes de transporte que contienen el primer descriptor y el segundo descriptor. El flujo de transporte puede incluir ademas uno o mas flujos elementales. En otros ejemplos, una o mas acciones de la figura 6 pueden ser omitidas.
[0146] La figura 7 es un diagrama de flujo que ilustra una operacion ejemplar de un dispositivo que recibe un flujo de transporte de acuerdo con una tecnica ejemplar de esta divulgacion. Por ejemplo, la operacion de la figura 7 puede ser congruente con la primera tecnica ejemplar de implementacion expuesta anteriormente. La operacion de la figura 7 puede ser una version expandida de la operacion de la figura 5.
[0147] En el ejemplo de la figura 7, el dispositivo recibe un flujo de transporte que incluye un primer descriptor (por ejemplo, un descriptor de punto de operacion de la HEVC), un conjunto de segundos descriptores y una pluralidad de flujos elementales (300). El conjunto de segundos descriptores puede incluir el "segundo descriptor" mencionado anteriormente con respecto a la figura 5. Cada respectivo segundo descriptor del conjunto de segundos descriptores puede ser uno entre: un descriptor jerarquico y un descriptor de extension jerarquica.
[0148] Adicionalmente, en el ejemplo de la figura 7, el dispositivo puede decodificar un elemento sintactico de recuento de flujo elemental (por ejemplo, ES_count, que puede ser mencionado en las reivindicaciones como un "tercer elemento sintactico") en el primer descriptor. El elemento sintactico de recuento de flujo elemental indica un numero de flujos elementales.
[0149] Ademas, en el ejemplo de la figura 7, el dispositivo puede decodificar un conjunto de primeros elementos sintacticos (por ejemplo, prepend_dependencies[i][j]) en el primer descriptor (302). Ademas, en el ejemplo de la figura 7, el dispositivo puede decodificar un conjunto de segundos elementos sintacticos (por ejemplo, ES_reference[i][j]) en el primer descriptor (304). El numero de primeros elementos sintacticos en el conjunto de primeros elementos sintacticos y el numero de segundos elementos sintacticos en el conjunto de segundos elementos sintacticos es igual a un valor del tercer elemento sintactico. El conjunto de primeros elementos sintacticos puede incluir el "primer elemento sintactico" mencionado con respecto a la figura 5. El conjunto de segundos elementos sintacticos puede incluir el "segundo elemento sintactico" mencionado con respecto a la figura 5.
[0150] En algunos ejemplos, el conjunto de segundos elementos sintacticos esta restringido de tal manera que no haya dos segundos elementos sintacticos del conjunto de segundos elementos sintacticos que tengan el mismo valor. En otras palabras, como se indica en los cambios a DAM3 en lo que antecede, el valor de ES_reference[i][m] y de ES_reference[i][n], para m no igual a n, no sera el mismo.
[0151] Para cada respectivo primer elemento sintactico del conjunto de primeros elementos sintacticos, un respectivo segundo elemento sintactico del conjunto de segundos elementos sintacticos corresponde al respectivo primer elemento sintactico. Por ejemplo, un primer elemento sintactico y un segundo elemento sintactico con los mismos valores de i y j se corresponden entre sf. Un respectivo segundo descriptor del conjunto de segundos descriptores tiene un valor de indice de capa jerarquica (por ejemplo, hierarchy_layer_id) igual a un valor del respectivo segundo elemento sintactico.
[0152] En el ejemplo de la figura 7, un primer valor (por ejemplo, 1) del respectivo primer elemento sintactico especifica que un flujo elemental indicad por el respectivo segundo elemento sintactico, cuando no este presente en la lista de flujos elementales, se agregara a la lista de flujos elementales, y un flujo elemental, indicado por un indice de capa integrada en el respectivo segundo descriptor, cuando no este presente en la lista de flujos elementales del punto de operacion, se agregara a la lista de flujos elementales. El flujo elemental indicado por el respectivo segundo elemento sintactico puede ser uno entre la pluralidad de flujos elementales. Un segundo valor (por ejemplo, 0) del respectivo primer elemento sintactico especifica que el respectivo flujo elemental, indicado por el respectivo segundo elemento sintactico, cuando no este presente en la lista de flujos elementales, se agregara a la lista de flujos elementales, pero no el respectivo flujo elemental indicado por el indice de capa integrada en el respectivo segundo descriptor. El flujo elemental indicado por el indice de capa integrada en el respectivo segundo descriptor puede ser uno entre la pluralidad de flujos elementales.
[0153] Para cada respectivo primer elemento sintactico del conjunto de primeros elementos sintacticos, se incluye un conjunto de uno o mas indices de capa integrada en el respectivo segundo descriptor. Ademas, en el ejemplo de la figura 7, basandose en el respectivo primer elemento sintactico que tiene el primer valor, el dispositivo puede agregar, en orden ascendente del valor del conjunto de indices de capa integrada, los flujos elementales indicados por el conjunto de indices de capa integrada en la lista de flujos elementales inmediatamente antes del flujo elemental indicado por el respectivo segundo elemento sintactico (308). En otras palabras, en respuesta a la determinacion de que el respectivo primer elemento sintactico tiene el segundo valor, el dispositivo puede agregar el respectivo flujo elemental indicado por el respectivo segundo elemento sintactico, cuando no este presente en la lista de flujos elementales, en la lista de flujos elementales, pero no agrega el respectivo flujo elemental, indicado por el indice de capa integrada en el respectivo segundo descriptor, en la lista de flujos elementales.
[0154] En el ejemplo de la figura 7, el dispositivo puede decodificar un conjunto de elementos sintacticos indicadores de capa-necesaria (por ejemplo, necessary_layer_flag[i][k]) en el primer descriptor (310). Cada respectivo elemento sintactico en el conjunto de elementos sintacticos indicadores de capa-necesaria puede corresponder a un respectivo flujo elemental en la lista de flujos elementales. Cada respectivo elemento sintactico del conjunto de elementos sintacticos de bandera de capa-necesaria puede indicar si el flujo elemental correspondiente al respectivo elemento sintactico del conjunto de elementos sintacticos indicadores de capa-necesaria es una capa necesaria. Como se ha descrito anteriormente, una capa necesaria se define como una capa en un punto de operacion de salida, asociado con un conjunto de capas de salida, siendo la capa una capa de salida del conjunto de capas de salida, o una capa de referencia de una capa de salida del conjunto de capas de salida.
[0155] Ademas, en el ejemplo de la figura 7, el dispositivo puede decodificar un conjunto de elementos sintacticos indicadores de capa de salida (por ejemplo, output_layer_flag[i][k]) en el primer descriptor (312). Cada respectivo elemento sintactico en el conjunto de elementos sintacticos indicadores de capa de salida puede corresponder a un respectivo flujo elemental en la lista de flujos elementales. Cada respectivo elemento sintactico del conjunto de elementos sintacticos indicadores de capa de salida indica si el flujo elemental, correspondiente al respectivo elemento sintactico del conjunto de elementos sintacticos indicadores de capa de salida, es una capa de salida.
[0156] Ademas, el dispositivo puede decodificar un conjunto de elementos sintacticos de indices de referencia de PTL en el primer descriptor (314). Cada respectivo elemento sintactico en el conjunto de elementos sintacticos de indices de referencia de PTL puede corresponder a un respectivo flujo elemental en la lista de flujos elementales. Cada respectivo elemento sintactico del conjunto de elementos sintacticos de indices de referencia de PTL puede indicar un indice para determinar un perfil, grada o nivel del flujo elemental correspondiente al respectivo elemento sintactico del conjunto de elementos sintacticos de indices de referencia de PTL.
[0157] En el ejemplo de la figura 7, el dispositivo puede descartar datos para capas que no forman parte del punto de operacion (316). En otras palabras, el dispositivo puede descartar datos para capas que no corresponden al punto de operacion. En otros ejemplos, una o mas acciones de la figura 7 pueden ser omitidas.
[0158] De acuerdo con una segunda tecnica ejemplar de implementacion, la Tabla 2 y sus elementos sintacticos describen las modificaciones detalladas a DAM3 para la tercera tecnica ejemplar para resolver la segunda cuestion descrita anteriormente.
Tabla 2
Figure imgf000027_0001
Figure imgf000028_0001
[0159] El siguiente texto indica modificaciones a la semantica de acuerdo con la segunda tecnica ejemplar de implementacion. El<ins> es_present_flag[i][j] especifica si ES_reference[i][j] y prepend_dependencies[i][j] estan presentes para la j-esima capa del i-esimo punto de operacion. Cuando el es_present_flag[i][j] es igual a 0, el valor de ES_reference[i][j] se obtiene basandose en informacion en el descriptor jerarquico o el descriptor de extension jerarquica de la capa senalada previamente en el i-esimo punto de operacion con los valores del es_present_flag igual a 1 y los valores de prepend_dependencies igual a 1. Cuando el es_present_flag[i][j] es igual a 0, se obtiene que el valor de prepend_dependencies[i][j] es 0. El valor del es_present_flag[i][0] no sera igual a 0. </ins> prepend_dependencies[i][j] - Este indicador, si se fija en 1, indica que el ES senalizado por el elemento sintactico hierarchy_embedded_layer_index en el descriptor de la jerarquia, o todos los ES senalizados por el elemento sintactico hierarchy_ext_embedded_layer_index en el descriptor de extension jerarquica de la HEVC, con el valor del fndice de capa jerarquica especificado por el siguiente elemento sintactico ES_reference[i][j], se agregara a la lista de flujos elementales para el punto de operacion de destino <dlt>antes de </dlt> <ins> despues </ins> del ES senalizado por la ES_reference[i][j]. <ins> NOTA: La lista posterior de flujos elementales para el punto de operacion de destino esta rellenada; se reordenara en el orden ascendente de su valor de fndice de capa jerarquica. </ins> Observese que las soluciones para los problemas de la capa necesaria y la posibilidad de una inclusion duplicada del ES en la lista de los ES para una operacion de la HEVC tambien se pueden aplicar a esta alternativa.
[0160] De acuerdo con una tercera tecnica ejemplar de implementacion, la Tabla 3 y sus elementos sintacticos describen las modificaciones detalladas para DAM3 para la cuarta tecnica ejemplar para resolver la segunda cuestion descrita anteriormente.
Tabla 3
Figure imgf000029_0001
Figure imgf000030_0001
[0161] El siguiente texto indica modificaciones a la semantica de acuerdo con la tercera tecnica ejemplar de implementacion.
prepend_dependencies[i][j] - Este indicador, si se fija en 1, indica que el ES senalizado por el elemento sintactico hierarchy_embedded_layer_index en el descriptor jerarquico, o la totalidad de los ES senalizados por el elemento sintactico hierarchy_ext_embedded_layer_index en el descriptor de extension de jerarquia de la HEVC, con el valor del indice de capa jerarquica especificado por el siguiente elemento sintactico ES_reference[i][j], se agregaran a la lista de flujos elementales para el punto de operacion de destino antes del ES senalizado por la ES_reference[i][j].
<ins> Cuando prepend_dependencies[i][j] es igual a 1, para cada flujo elemental esA que este senalizado por el elemento sintactico hierarchy_embedded_layer_index en el descriptor jerarquico, o todos los flujos elementales senalizados por el elemento sintactico hierarchy_ext_embedded_layer_index en el descriptor de extension de jerarquia de la HEVC, con el valor de indice de capa jerarquica especificado por el siguiente elemento sintactico ES_reference[i][j], vale lo siguiente:
• Si la default_output_ref_layer[i] es igual a 0, la capa asociada al esA no es una capa de salida del i-esimo punto de operacion de la HEVC; de lo contrario, la capa asociada al esA es una capa de salida del i-esimo punto de operacion de la HEVC.
• Habra al menos un punto de operacion de la opX de la HEVC con indice entre 0 e i - 1 que tambien contuvo el esA. Si hay mas de un candidato para opX, se usara el que tenga el indice mas alto. El indice del elemento profile_tier_level_info[x] de la profile_tier_level_array que se aplica al esA en el i-esimo punto de operacion de la HEVC es el conjunto igual al indice del elemento profile_tier_level_info[x] de la profile_tier_level_array que se aplica al esA en opX. </ins>
[0162] Ademas, para evitar complicaciones innecesarias, prepend_dependencies se pueden senalizar en el nivel del punto de operacion, en lugar del nivel de la capa. Las soluciones para los problemas de la capa necesaria y la posibilidad de la inclusion duplicada de ES en la lista de los ES para una operacion de la HEVC tambien se pueden aplicar a esta alternativa.
prepend_dependencies[i] - Este indicador, si se fija en 1, indica que el ES senalizado por el elemento sintactico hierarchy_embedded_layer_index en el descriptor jerarquico, o todos los ES senalizados por el elemento sintactico hierarchy_ext_embedded_layer_index en el descriptor de extension jerarquica de la HEVC, con el valor del indice de capa jerarquica especificado por el siguiente elemento sintactico referenciaES[i][j], se agregara a la lista de flujos elementales para el punto de operacion de destino antes del ES senalizado por la ES_reference[i][j]
<ins>, para cada flujo elemental indicado por la referenda E S [i][j]del i-esimo punto de operacion. </ins><ins> Cuando prepend_dependencies[i] es igual a 1, para cada flujo elemental esA que este senalizado por el elemento sintactico hierarchy_embedded_layer_index en el descriptor jerarquico, o por todos los flujos elementales senalizados por el elemento sintactico hierarchy_ext_embedded_layer_index en el descriptor de extension jerarquica de la HEVC, con el valor de indice de capa jerarquica especificado por el siguiente elemento sintactico ES_reference[i][j], vale lo siguiente:
• Si la default_output_ref_layer[i] es igual a 0, la capa asociada al esA no es una capa de salida del i-esimo punto de operacion de la HEVC; de lo contrario, la capa asociada al esA es una capa de salida del i-esimo punto de operacion de la HEVC.
• Habra al menos un punto de operacion de la HEVC, opX, con indice entre 0 e i - 1 que tambien contuviera el esA. Si hay mas de un candidato para opX, se usara el que tenga el indice mas alto. El indice del elemento profile_tier_level_info [x] de la profile_tier_level_array que se aplica al esA en el i-esimo punto de operacion de la HEVC es el conjunto igual al indice del elemento profile_tier_level_info [x] de la profile_tier_level_array que se aplica al esA en opX. </ins>
[0163] Ademas de la cuestion en DAM3 descrita anteriormente, cuando un flujo de bits de la HEVC en capas contiene una o mas capas auxiliares, no hay ningun mecanismo para describir la mejora auxiliar en el descriptor jerarquico o el descriptor de extension jerarquica. Una imagen auxiliar es una imagen que no tiene ningun efecto normativo en el proceso de decodificacion de las imagenes primarias, y con un valor de nuh_layer_id tal que AuxId[nuh_layer_id] sea mayor que 0. Una capa auxiliar es una capa que contiene imagenes auxiliares. Para resolver este problema, se sugiere incluir una descripcion para el tipo de jerarquia auxiliar en la Tabla 2-50 y la mejora auxiliar en la Tabla 2-103.
[0164] Para la gestion de capas auxiliares, la HEVC en capas da soporte a la presencia de capas auxiliares en el flujo de bits. Una capa auxiliar puede contener, por ejemplo, representacion de canal alfa o profundidad. El texto actual de ISO / IEC 13818-1: 201x / DAM 3 Transporte de HEVC en capas no tiene el mecanismo para describir las capas auxiliares. Llevar capas auxiliares de SHVC / MV-HEVC en un flujo elemental con un tipo de flujo especifico (por ejemplo, 0x1 E, es decir, el flujo de video auxiliar segun se define en ISO / IEC 23002-3) no es una solucion suficiente porque todavia no hay ninguna manera de describir la jerarquia de este flujo elemental y otros flujos elementales, especialmente el flujo al que se asocia la capa auxiliar en un programa. Ademas, el modelo actual de almacen temporal L-HEVC no gestiona tipos de flujo distintos a 0x27~0x2A, por lo que esta solucion (utilizando un tipo de flujo especifico) puede requerir modificaciones adicionales al modelo de almacen temporal.
[0165] Para superar el problema anterior, la divulgacion describe la inclusion del tipo de jerarquia auxiliar en la Tabla 2-50 y la inclusion de la mejora auxiliar en la Tabla 2-103undeciens, a continuacion. Con estas modificaciones, no han ninguna necesidad adicional de asignar un tipo de flujo especifico para las capas auxiliares, ninguna necesidad adicional de actualizar la modalidad de almacen temporal, y una capa auxiliar puede transportarse en un flujo elemental con un tipo de flujo en el rango de 0x27 ~ 0x2A.
[0166] El cambio de texto propuesto para la Tabla 2-50 es el siguiente:
Reemplace en la Tabla 2-50 la descripcion de los valores 8<ins>, 10</ins> y 15, de la siguiente manera:
Tabla 2-50 - Valores del cam o hierarch t e
Figure imgf000031_0001
Propuesta de cambio de texto a la tabla 2-103undeciens:
Tabla 2-103undeciens - Semantica de bits de dimension de extension
Figure imgf000031_0002
[0167] Los siguientes parrafos proporcionan ejemplos adicionales de esta divulgacion.
[0168] En algunos ejemplos, el decodificador de video 30 puede configurarse para recibir un primer elemento sintactico (por ejemplo, prepend_dependencies[i][j]) para un punto de operacion, en donde un primer valor del elemento sintactico especifica que un flujo elemental indicado por un segundo elemento sintactico (por ejemplo, ES_reference[i][j]), cuando aun no este presente en una lista de puntos de operacion (por ejemplo, la OperationPointESList[i]), se agregara a la lista de puntos de operacion, y en donde un segundo valor del elemento sintactico especifica que solo el flujo elemental indicado por el segundo elemento sintactico, cuando aun no este presente en la lista de operaciones, se agregara a la lista de puntos de operacion, y decodificar el punto de operacion en funcion del primer elemento sintactico recibido.
[0169] En algunos ejemplos, el decodificador de video 30 puede configurarse para realizar un primer bucle para decodificar multiples instancias de un primer elemento sintactico (por ejemplo, ES_reference[i][j]) que indica el valor de indice de capa jerarquica presente en el descriptor jerarquico o el descriptor de extension jerarquica de la HEVC, que identifica un flujo elemental de un punto de operacion, y / o decodificar multiples instancias de un segundo elemento sintactico (por ejemplo, prepend_dependencies[i][j]) que indica a partir de que estructuras han de incluirse flujos elementales en una lista de flujos elementales para el punto de operacion, como parte del rendimiento del primer bucle, realizando un segundo bucle para decodificar multiples instancias de un tercer elemento sintactico (por ejemplo, output_layer_flag[i][k]) que indica que flujo elemental del punto de operacion es una capa de salida y / o decodificar multiples instancias de un cuarto elemento sintactico (por ejemplo, ptl_ref_idx[i][k]) que indica un indice para determinar un perfil, grada o nivel de un flujo elemental del punto de operacion, y decodificar el punto de operacion en funcion de uno o mas de los elementos sintacticos primero, segundo, tercero y cuarto.
[0170] En algunos ejemplos, el codificador de video 20 o un dispositivo intermedio (por ejemplo, un MANE) puede configurarse para implementar las tecnicas ejemplares descritas en esta divulgacion. Por ejemplo, el codificador de video 20 o el dispositivo intermedio (o una combinacion de los dos) puede configurarse para determinar flujos o capas elementales de un punto de operacion, determinar un indicador (por ejemplo, necessary_layer_flag[i][k], descrito a continuacion) para cada flujo o capa elemental en el punto de operacion, en donde el indicador indica si un respectivo flujo o capa elemental es un flujo, o capa, necesario, y produce un flujo de bits que incluye los flujos elementales y los indicadores respectivos.
[0171] En un ejemplo, el codificador de video 20 o el dispositivo intermedio (o una combinacion de los dos) puede configurarse para determinar un primer elemento sintactico (por ejemplo, prepend_dependencies[i][j]) para un punto de operacion, en donde un primer valor del elemento sintactico especifica que un flujo elemental indicado por un segundo elemento sintactico (por ejemplo, ES_reference[i][j]), cuando aun no este presente en una lista de puntos de operacion (por ejemplo, la OperationPointESList[i]), se agregara a la lista de puntos de operacion, y en donde un segundo valor del elemento sintactico especifica que solo el flujo elemental indicado por el segundo elemento sintactico, cuando aun no este presente en la lista de operaciones, se agregara a la lista de puntos de operacion, y producira un flujo de bits que incluya informacion del punto de operacion que incluye el primer elemento sintactico determinado.
[0172] En un ejemplo, el codificador de video 20 o el dispositivo intermedio (o una combinacion de los dos) puede configurarse para realizar un primer bucle para determinar multiples instancias de un primer elemento sintactico (por ejemplo, ES_reference[i][j]) que indica el valor de indice de capa jerarquica presente en el descriptor jerarquico o en el descriptor de extension jerarquica de la HEVC, que identifica un flujo elemental de un punto de operacion, y / o determinar multiples instancias de un segundo elemento sintactico (por ejemplo, prepend_dependencies[i][j]) que indica de cuales estructuras han de incluirse los flujos elementales en una lista de flujos elementales para el punto de operacion, como parte del rendimiento del primer bucle, realizando un segundo bucle para determinar multiples instancias de un tercer elemento sintactico (por ejemplo, output_layer_flag[i][k]) que indica que flujo elemental del punto de operacion es una capa de salida y / o determinar multiples instancias de un cuarto elemento sintactico (por ejemplo, ptl_ref_idx[i][k]) que indica un indice para determinar un perfil, grada o nivel de un flujo elemental del punto de operacion, y producir un flujo de bits que incluye uno o mas de los elementos sintacticos primero, segundo, tercero y cuarto para el punto de operacion.
[0173] Debe reconocerse que, segun el ejemplo, ciertos actos o sucesos de cualquiera de las tecnicas descritas en el presente documento pueden realizarse en una secuencia distinta, pueden anadirse, fundirse u omitirse por completo (por ejemplo, no todos los actos o sucesos descritos son necesarios para la puesta en practica de las tecnicas). Ademas, en ciertos ejemplos, los actos o sucesos pueden realizarse simultaneamente, por ejemplo, mediante el procesamiento de multiples hilos, el procesamiento de interrupciones o multiples procesadores, en lugar de secuencialmente.
[0174] En uno o mas ejemplos, las funciones descritas pueden implementarse en hardware, software, firmware o cualquier combinacion de los mismos. Si se implementan en software, las funciones pueden almacenarse en, y transmitirse por, un medio legible por ordenador, como una o mas instrucciones o codigo, y ejecutarse mediante una unidad de procesamiento basada en hardware. Los medios legibles por ordenador pueden incluir medios de almacenamiento legibles por ordenador, que correspondan a un medio tangible tal como medios de almacenamiento de datos o medios de comunicacion que incluyan cualquier medio que facilite la transferencia de un programa informatico desde un lugar a otro, por ejemplo, de acuerdo con un protocolo de comunicacion. De esta manera, los medios legibles por ordenador pueden corresponder en general a (1) medios de almacenamiento tangibles legibles por ordenador que sean no transitorios o (2) un medio de comunicacion tal como una senal o una onda portadora. Los medios de almacenamiento de datos pueden ser cualquier medio disponible al que se pueda acceder desde uno o mas ordenadores o uno o mas procesadores para recuperar instrucciones, codigo y/o estructuras de datos para la implementacion de las tecnicas descritas en esta divulgacion. Un producto de programa informatico puede incluir un medio legible por ordenador.
[0175] A modo de ejemplo, y no de manera limitativa, tales medios de almacenamiento legibles por ordenador pueden comprender RAM, ROM, EEPROM, CD-ROM u otro almacenamiento de disco optico, almacenamiento de disco magnetico u otros dispositivos de almacenamiento magnetico, memoria flash o cualquier otro medio que pueda usarse para almacenar codigo de programa deseado en forma de instrucciones o estructuras de datos y al que pueda accederse mediante un ordenador. Ademas, cualquier conexion recibe debidamente la denominacion de medio legible por ordenador. Por ejemplo, si las instrucciones se transmiten desde una sede de la Red, un servidor u otro origen remoto usando un cable coaxial, un cable de fibra optica, un par trenzado, una linea de abonado digital (DSL) o tecnologias inalambricas tales como infrarrojos, radio y microondas, entonces el cable coaxial, el cable de fibra optica, el par trenzado, la DSL o las tecnologias inalambricas tales como infrarrojos, radio y microondas se incluyen en la definicion de medio. Sin embargo, deberia entenderse que los medios de almacenamiento legibles por ordenador y los medios de almacenamiento de datos no incluyen conexiones, ondas portadoras, senales u otros medios transitorios, sino que, en cambio, estan orientados a medios de almacenamiento tangibles no transitorios. El termino disco, como se usa en el presente documento, incluye un disco compacto (CD), un disco laser, un disco optico, un disco versatil digital (DVD), un disco flexible y un disco Blu-ray, donde algunos discos normalmente emiten datos magneticamente, mientras que otros discos emiten datos opticamente con laseres. Las combinaciones de lo anterior tambien deberian incluirse dentro del alcance de los medios legibles por ordenador.
[0176] Las instrucciones pueden ser ejecutadas por uno o mas procesadores, tales como uno o mas procesadores de senales digitales (DSP), microprocesadores de proposito general, circuitos integrados especificos de la aplicacion (ASIC), formaciones de compuertas programables in situ (FPGA) u otros circuitos logicos integrados o discretos equivalentes. En consecuencia, el termino "procesador", como se usa en el presente documento, se puede referir a cualquiera de las estructuras anteriores o a cualquier otra estructura adecuada para la implementacion de las tecnicas descritas en el presente documento. Ademas, en algunos aspectos, la funcionalidad descrita en el presente documento se puede proporcionar dentro de modulos de hardware y/o software dedicados, configurados para la codificacion y la decodificacion, o incorporados en un codec combinado. Tambien, las tecnicas se podrian implementar totalmente en uno o mas circuitos o elementos logicos.
[0177] Las tecnicas de la presente divulgacion se pueden implementar en una amplia variedad de dispositivos o aparatos, incluidos un equipo manual inalambrico, un circuito integrado (CI) o un conjunto de CI (por ejemplo, un conjunto de chips). Diversos componentes, modulos o unidades se describen en esta divulgacion para enfatizar aspectos funcionales de dispositivos configurados para realizar las tecnicas divulgadas, pero no requieren necesariamente su realizacion mediante diferentes unidades de hardware. En cambio, como se ha descrito anteriormente, diversas unidades se pueden combinar en una unidad de hardware de codec, o ser proporcionadas por un grupo de unidades de hardware interoperativas, incluyendo uno o mas procesadores, como se ha descrito anteriormente, juntamente con software y/o firmware adecuados.
[0178] Se han descrito diversos ejemplos. Estos y otros ejemplos estan dentro del alcance de las siguientes reivindicaciones.

Claims (1)

  1. REIVINDICACIONES
    Un procedimiento para procesamiento de datos de video, el procedimiento que comprende:
    recibir (200; 300) un flujo de transporte que incluye un primer descriptor, un segundo descriptor y una pluralidad de flujos elementales, siendo el primer descriptor un descriptor para un punto de operacion de los datos de video, siendo el segundo descriptor uno entre: un descriptor de jerarquia o un descriptor de extension jerarquica;
    decodificar (202, 204; 304, 306) un primer elemento sintactico y un segundo elemento sintactico en el primer descriptor, en donde:
    una lista de flujos elementales es una lista de flujos elementales del flujo de transporte que forman parte del punto de operacion,
    el segundo descriptor tiene un valor de indice de capa jerarquica igual a un valor del segundo elemento sintactico,
    un primer valor del primer elemento sintactico especifica que:
    un flujo elemental indicado por el segundo elemento sintactico, cuando no este presente en la lista de flujos elementales, se agregara a la lista de flujos elementales, siendo el flujo elemental indicado por el segundo elemento sintactico uno entre la pluralidad de flujos elementales, y
    un flujo elemental indicado por un indice de capa integrada en el segundo descriptor, cuando no este presente en la lista de flujos elementales, se agregara a la lista de flujos elementales, siendo el flujo elemental indicado por el indice de capa integrada en el segundo descriptor uno entre la pluralidad de flujos elementales, y
    en respuesta a la determinacion (206) de que el primer elemento sintactico tiene un segundo valor diferente al primer valor, agregar (208; 308) el flujo elemental indicado por el segundo elemento sintactico, cuando no este presente en la lista de flujos elementales, a la lista de flujos elementales, pero no agregar el flujo elemental, indicado por el indice de capa integrada en el segundo descriptor, en la lista de flujos elementales.
    El procedimiento segun la reivindicacion 1, que comprende ademas:
    recibir (300) un conjunto de segundos descriptores en el flujo de transporte, incluyendo el conjunto de segundos descriptores el segundo descriptor, siendo cada respectivo segundo descriptor del conjunto de segundos descriptores uno entre: un descriptor jerarquico o un descriptor de extension jerarquica; decodificar (302) un tercer elemento sintactico en el primer descriptor, indicando el tercer elemento sintactico un numero de flujos elementales;
    decodificar (304) un conjunto de primeros elementos sintacticos en el primer descriptor; y decodificar (306) un conjunto de segundos elementos sintacticos en el primer descriptor, en donde: el numero de primeros elementos sintacticos en el conjunto de primeros elementos sintacticos y el numero de segundos elementos sintacticos en el conjunto de segundos elementos sintacticos es igual a un valor del tercer elemento sintactico,
    el conjunto de primeros elementos sintacticos incluye el primer elemento sintactico,
    el conjunto de segundos elementos sintacticos incluye el segundo elemento sintactico,
    para cada respectivo primer elemento sintactico del conjunto de primeros elementos sintacticos: un respectivo segundo elemento sintactico del conjunto de segundos elementos sintacticos corresponde al respectivo primer elemento sintactico,
    un respectivo segundo descriptor del conjunto de segundos descriptores tiene un valor de indice de capa jerarquica igual a un valor del respectivo segundo elemento sintactico,
    el p r im e r v a lo r de l re sp e c tivo p r im e r e le m e n to s in ta c tico e s p e c ific a qu e :
    un flujo elemental indicado por el respectivo segundo elemento sintactico, cuando no este presente en la lista de flujos elementales, se agregara a la lista de flujos elementales, siendo el flujo elemental indicado por el respectivo segundo elemento sintactico uno entre la pluralidad de flujos elementales, y
    un flujo elemental indicado por un indice de capa integrada en el respectivo segundo descriptor, cuando no este presente en la lista de flujos elementales del punto de operacion, se agregara a la lista de flujos elementales, siendo el flujo elemental indicado por el indice de capa integrada en el respectivo segundo descriptor uno entre la pluralidad de flujos elementales, y en respuesta a la determinacion de que el respectivo primer elemento sintactico tiene el segundo valor, agregar (308) el respectivo flujo elemental, indicado por el respectivo segundo elemento sintactico, cuando no este presente en la lista de flujos elementales, a la lista de flujos elementales, pero sin agregar el respectivo flujo elemental, indicado por el indice de capa integrada en el respectivo segundo descriptor, en la lista de flujos elementales.
    El procedimiento segun la reivindicacion 2, que comprende ademas:
    para cada respectivo primer elemento sintactico del conjunto de primeros elementos sintacticos:
    un conjunto de uno o mas indices de capa integrada se incluye en el respectivo segundo descriptor, y basandose en el respectivo primer elemento sintactico que tiene el primer valor, agregar, en orden ascendente del valor del conjunto de indices de capa integrada, flujos elementales, indicados por el conjunto de indices de capa integrada, en la lista de flujos elementales inmediatamente antes del flujo elemental indicado por el respectivo segundo elemento sintactico.
    El procedimiento segun la reivindicacion 1, que comprende ademas:
    decodificar (310) un conjunto de elementos sintacticos en el primer descriptor, correspondiendo cada respectivo elemento sintactico en el conjunto de elementos sintacticos a un respectivo flujo elemental en la lista de flujos elementales, indicando cada respectivo elemento sintactico del conjunto de elementos sintacticos si el flujo elemental correspondiente al respectivo elemento sintactico del conjunto de elementos sintacticos es una capa necesaria, en donde una capa necesaria se define como una capa en un punto de operacion de salida, asociado a un conjunto de capas de salida, siendo la capa una capa de salida del conjunto de capas de salida, o una capa de referencia de una capa de salida del conjunto de capas de salida;
    o
    decodificar (312) un primer conjunto de elementos sintacticos en el primer descriptor, correspondiendo cada respectivo elemento sintactico en el primer conjunto de elementos sintacticos a un respectivo flujo elemental en la lista de flujos elementales, indicando cada respectivo elemento sintactico del primer conjunto de elementos sintacticos si el flujo elemental correspondiente al respectivo elemento sintactico del primer conjunto de elementos sintacticos es una capa de salida; y
    decodificar (314) un segundo conjunto de elementos sintacticos en el primer descriptor, correspondiendo cada respectivo elemento sintactico en el segundo conjunto de elementos sintacticos a un respectivo flujo elemental en la lista de flujos elementales, indicando cada respectivo elemento sintactico del segundo conjunto de elementos sintacticos un indice para determinar un perfil, grada o nivel del flujo elemental correspondiente al respectivo elemento sintactico del segundo conjunto de elementos sintacticos;
    o
    recibir (300) un conjunto de segundos descriptores en el flujo de transporte, incluyendo el conjunto de segundos descriptores el segundo descriptor, siendo cada respectivo segundo descriptor del conjunto de segundos descriptores uno entre: un descriptor jerarquico y un descriptor de extension jerarquica; y decodificar (306) un conjunto de segundos elementos sintacticos en el primer descriptor, en donde: el conjunto de segundos elementos sintacticos incluye el segundo elemento sintactico,
    indicando cada respectivo segundo elemento sintactico del conjunto de segundos elementos sintacticos un valor de indice de capa jerarquica presente en un descriptor del conjunto de segundos descriptores, y
    el conjunto de segundos elementos sintacticos esta restringido de modo tal que no haya dos segundos elementos sintacticos del conjunto de segundos elementos sintacticos que tengan el mismo valor; o
    descartar (316) datos para capas que no forman parte del punto de operacion.
    Un dispositivo (14) para procesar datos de video, el dispositivo que comprende:
    una interfaz de entrada (28) configurada para recibir informacion que incluye un flujo de transporte que incluye un primer descriptor, un segundo descriptor y una pluralidad de flujos elementales, siendo el primer descriptor un descriptor para un punto de operacion de los datos de video, siendo el segundo descriptor uno entre: un descriptor jerarquico o un descriptor de extension jerarquica; y
    uno o mas procesadores (29, 30) configurados para:
    decodificar un primer elemento sintactico y un segundo elemento sintactico en el primer descriptor, en donde:
    una lista de flujos elementales es una lista de flujos elementales del flujo de transporte que forman parte del punto de operacion,
    el segundo descriptor tiene un valor de indice de capa jerarquica igual a un valor del segundo elemento sintactico,
    un primer valor del primer elemento sintactico especifica que:
    un flujo elemental indicado por el segundo elemento sintactico, cuando no este presente en la lista de flujos elementales, se agregara a la lista de flujos elementales, siendo el flujo elemental indicado por el segundo elemento sintactico uno entre la pluralidad de flujos elementales, y un flujo elemental indicado por un indice de capa integrada en el segundo descriptor, cuando no este presente en la lista de flujos elementales, se agregara a la lista de flujos elementales, siendo el flujo elemental indicado por el indice de capa integrada en el segundo descriptor uno entre la pluralidad de flujos elementales, y
    en respuesta a la determinacion de que el primer elemento sintactico tiene un segundo valor diferente al primer valor, agregar el flujo elemental indicado por el segundo elemento sintactico, cuando no este presente en la lista de flujos elementales, en la lista de flujos elementales, pero no agregar el flujo elemental indicado por el indice de capa integrada en el segundo descriptor en la lista de flujos elementales.
    El dispositivo (14) segun la reivindicacion 5, en el que los uno o mas procesadores (29, 30) estan configurados para:
    recibir un conjunto de segundos descriptores en el flujo de transporte, incluyendo el conjunto de segundos descriptores el segundo descriptor, siendo cada respectivo segundo descriptor del conjunto de segundos descriptores uno entre: un descriptor jerarquico o un descriptor de extension jerarquica;
    decodificar un tercer elemento sintactico en el primer descriptor, indicando el tercer elemento sintactico un numero de flujos elementales;
    decodificar un conjunto de primeros elementos sintacticos en el primer descriptor; y
    decodificar un conjunto de segundos elementos sintacticos en el primer descriptor, en donde:
    el numero de primeros elementos sintacticos en el conjunto de primeros elementos sintacticos y el numero de segundos elementos sintacticos en el conjunto de segundos elementos sintacticos es igual a un valor del tercer elemento sintactico,
    el conjunto de primeros elementos sintacticos incluye el primer elemento sintactico,
    el conjunto de segundos elementos sintacticos incluye el segundo elemento sintactico, p a ra c a d a re sp e c tivo p r im e r e le m e n to s in ta c tico de l c o n ju n to de p rim e ro s e le m e n to s s in ta c tico s : un respectivo segundo elemento sintactico del conjunto de segundos elementos sintacticos corresponde al respectivo primer elemento sintactico,
    un respectivo segundo descriptor del conjunto de segundos descriptores tiene un valor de indice de capa jerarquica igual a un valor del respectivo segundo elemento sintactico,
    el primer valor del respectivo primer elemento sintactico especifica que:
    un flujo elemental indicado por el respectivo segundo elemento sintactico, cuando no este presente en la lista de flujos elementales, se agregara a la lista de flujos elementales, siendo el flujo elemental indicado por el respectivo segundo elemento sintactico uno entre la pluralidad de flujos elementales, y
    un flujo elemental indicado por un indice de capa integrada en el respectivo segundo descriptor, cuando no este presente en la lista de flujos elementales del punto de operacion, se agregara a la lista de flujos elementales, siendo el flujo elemental indicado por el indice de capa integrada en el respectivo segundo descriptor uno entre la pluralidad de flujos elementales, y
    en respuesta a la determinacion de que el primer elemento sintactico respectivo tiene el segundo valor, los uno o mas procesadores estan configurados para agregar el respectivo flujo elemental, indicado por el respectivo segundo elemento sintactico, cuando no este presente en la lista de flujos elementales, en la lista de flujos elementales, pero no agregar el respectivo flujo elemental, indicado por el indice de capa integrada en el respectivo segundo descriptor, en la lista de flujos elementales.
    El dispositivo (14) segun la reivindicacion 6, en el que, para cada respectivo primer elemento sintactico del conjunto de primeros elementos sintacticos, se incluye un conjunto de uno o mas indices de capa integrada en el respectivo segundo descriptor, y los uno o mas procesadores (29, 30) estan configurados de tal manera que, en funcion del respectivo primer elemento sintactico que tiene el primer valor, los uno o mas procesadores agregan, en orden ascendente del valor del conjunto de indices de capa integrada, flujos elementales indicados por el conjunto de indices de capa integrada en la lista de flujos elementales inmediatamente antes del flujo elemental indicado por el respectivo segundo elemento sintactico.
    El dispositivo (14) segun la reivindicacion 5, en el que los uno o mas procesadores (29, 30) estan configurados para:
    decodificar un conjunto de elementos sintacticos en el primer descriptor, correspondiendo cada respectivo elemento sintactico en el conjunto de elementos sintacticos a un respectivo flujo elemental en la lista de flujos elementales, indicando cada respectivo elemento sintactico del conjunto de elementos sintacticos si el flujo elemental corresponde al respectivo elemento sintactico del conjunto de elementos sintacticos es una capa necesaria, en donde una capa necesaria se define como una capa en un punto de operacion de salida, asociado a un conjunto de capas de salida, siendo la capa una capa de salida del conjunto de capas de salida, o una capa de referencia de una capa de salida del conjunto de capas de salida; o
    decodificar un primer conjunto de elementos sintacticos en el primer descriptor, correspondiendo cada respectivo elemento sintactico en el primer conjunto de elementos sintacticos a un respectivo flujo elemental en la lista de flujos elementales, indicando cada respectivo elemento sintactico del primer conjunto de elementos sintacticos si el flujo elemental correspondiente al respectivo elemento sintactico del primer conjunto de elementos sintacticos es una capa de salida; y
    decodificar un segundo conjunto de elementos sintacticos en el primer descriptor, correspondiendo cada respectivo elemento sintactico en el segundo conjunto de elementos sintacticos a un respectivo flujo elemental en la lista de flujos elementales, indicando cada respectivo elemento sintactico del segundo conjunto de elementos sintacticos un indice para determinar un perfil, grada o nivel del flujo elemental correspondiente al respectivo elemento sintactico del segundo conjunto de elementos sintacticos;
    o
    recibir un conjunto de segundos descriptores en el flujo de transporte, incluyendo el conjunto de segundos descriptores el segundo descriptor, siendo cada respectivo segundo descriptor del conjunto de segundos descriptores uno entre: un descriptor jerarquico o un descriptor de extension jerarquica; y
    decodificar un conjunto de segundos elementos sintacticos en el primer descriptor, en donde:
    el conjunto de segundos elementos sintacticos incluye el segundo elemento sintactico,
    indicando cada respectivo segundo elemento sintactico del conjunto de segundos elementos sintacticos un valor de fndice de capa jerarquica presente en un descriptor del conjunto de segundos descriptores, y
    el conjunto de segundos elementos sintacticos esta restringido de modo tal que no haya dos segundos elementos sintacticos del conjunto de segundos elementos sintacticos que tengan el mismo valor; o
    descartar datos para las capas que no forman parte del punto de operacion.
    El dispositivo (14) de cualquiera de las reivindicaciones 5 a 8, que comprende ademas un dispositivo de visualizacion (32) para exhibir datos de vfdeo decodificados.
    El dispositivo (14) de cualquiera de las reivindicaciones 5 a 9, en el que el dispositivo (14) es un dispositivo de comunicacion inalambrica.
    Un dispositivo (12) para procesar datos de vfdeo, el dispositivo que comprende: uno o mas procesadores (20, 21) configurados para:
    generar un primer descriptor, siendo el primer descriptor un descriptor de un punto de operacion de los datos de vfdeo;
    generar un segundo descriptor, siendo el segundo descriptor uno entre: un descriptor jerarquico o un descriptor de extension jerarquica;
    en donde los uno o mas procesadores estan configurados de tal manera que, como parte de la generacion del primer descriptor, los uno o mas procesadores:
    incluyen un primer elemento sintactico y un segundo elemento sintactico en el primer descriptor, en donde: una lista de flujos elementales es una lista de flujos elementales que forman parte del punto de operacion,
    el segundo descriptor tiene un valor de fndice de capa jerarquica igual a un valor del segundo elemento sintactico,
    un primer valor del primer elemento sintactico especifica que:
    un flujo elemental indicado por el segundo elemento sintactico, cuando no este presente en la lista de flujos elementales, se agregara a la lista de flujos elementales, y
    un flujo elemental indicado por un fndice de capa integrada en el segundo descriptor, cuando no este presente en la lista de flujos elementales, se agregara a la lista de flujos elementales, y un segundo valor del primer elemento sintactico especifica que el flujo elemental indicado por el segundo elemento sintactico, cuando no este presente en la lista de flujos elementales, se agregara a la lista de flujos elementales, pero no el flujo elemental indicado por el fndice de capa integrada en el segundo descriptor; e
    incluir el primer descriptor y el segundo descriptor en un flujo de transporte; y una interfaz de salida (22) configurada para generar una version codificada de los datos de vfdeo.
    El dispositivo (12) segun la reivindicacion 11, en el que:
    los uno o mas procesadores (20, 21) estan configurados para generar un conjunto de segundos descriptores, incluyendo el conjunto de segundos descriptores el segundo descriptor, siendo cada respectivo segundo descriptor del conjunto de segundos descriptores uno entre: un descriptor jerarquico o un descriptor de extension jerarquica;
    los uno o mas procesadores se configuran de tal manera que, como parte de la generacion del primer descriptor, los uno o mas procesadores:
    incluyen un tercer elemento sintactico en el primer descriptor, indicando el tercer elemento sintactico un numero de flujos elementales;
    in c luye n un c o n ju n to de p rim e ro s e le m e n to s s in ta c tico s en el p r im e r d e s c rip to r; e
    incluyen un conjunto de segundos elementos sintacticos en el primer descriptor, en donde:
    el numero de primeros elementos sintacticos en el conjunto de primeros elementos sintacticos y el numero de segundos elementos sintacticos en el conjunto de segundos elementos sintacticos es igual a un valor del tercer elemento sintactico,
    el conjunto de primeros elementos sintacticos incluye el primer elemento sintactico,
    el conjunto de segundos elementos sintacticos incluye el segundo elemento sintactico, para cada respectivo primer elemento sintactico del conjunto de primeros elementos sintacticos: un respectivo segundo elemento sintactico del conjunto de segundos elementos sintacticos corresponde al respectivo primer elemento sintactico,
    un respectivo segundo descriptor del conjunto de segundos descriptores tiene un valor de indice de capa jerarquica igual a un valor del respectivo segundo elemento sintactico,
    el primer valor del respectivo primer elemento sintactico especifica que:
    un flujo elemental indicado por el respectivo segundo elemento sintactico, cuando no este presente en la lista de flujos elementales, se agregara a la lista de flujos elementales, y un flujo elemental indicado por un indice de capa integrada en el respectivo segundo descriptor, cuando no este presente en la lista de flujos elementales del punto de operacion, se agregara a la lista de flujos elementales, y
    el segundo valor del respectivo primer elemento sintactico especifica que el respectivo flujo elemental indicado por el respectivo segundo elemento sintactico, cuando no este presente en la lista de flujos elementales, se agregara a la lista de flujos elementales, pero no el respectivo flujo elemental indicado por el Indice de capa integrada en el respectivo segundo descriptor. El dispositivo (12) de la reivindicacion 12, en el que los uno o mas procesadores (20, 21) estan configurados de tal manera que, como parte de la generacion del primer descriptor, los uno o mas procesadores: incluyen un conjunto de elementos sintacticos en el primer descriptor, correspondiendo cada respectivo elemento sintactico en el conjunto de elementos sintacticos a un respectivo flujo elemental en la lista de flujos elementales, indicando cada respectivo elemento sintactico del conjunto de elementos sintacticos si el flujo elemental correspondiente al respectivo elemento sintactico del conjunto de elementos sintacticos es una capa necesaria, en donde una capa necesaria se define como una capa en un punto de operacion de salida asociado a un conjunto de capas de salida, siendo la capa una capa de salida del conjunto de capas de salida, o una capa de referencia de una capa de salida del conjunto de capas de salida.
    El dispositivo (12) de la reivindicacion 11, en el que:
    los uno o mas procesadores (20, 21) estan configurados de tal manera que, como parte de la generacion del primer descriptor, los uno o mas procesadores:
    incluyen un primer conjunto de elementos sintacticos en el primer descriptor, correspondiendo cada respectivo elemento sintactico en el primer conjunto de elementos sintacticos a un respectivo flujo elemental en la lista de flujos elementales, indicando cada respectivo elemento sintactico del primer conjunto de elementos sintacticos si el flujo elemental correspondiente al respectivo elemento sintactico del primer conjunto de elementos sintacticos es una capa de salida; e
    incluyen un segundo conjunto de elementos sintacticos en el primer descriptor, correspondiendo cada respectivo elemento sintactico en el segundo conjunto de elementos sintacticos a un respectivo flujo elemental en la lista de flujos elementales, indicando cada respectivo elemento sintactico del segundo conjunto de elementos sintacticos un indice para determinar un perfil, grada o nivel del flujo elemental correspondiente al respectivo elemento sintactico del segundo conjunto de elementos sintacticos;
    o
    los uno o mas procesadores (20, 21) estan configurados ademas para incluir un conjunto de segundos descriptores en el flujo de transporte, incluyendo el conjunto de segundos descriptores el segundo descriptor, siendo cada uno de los respectivos segundos descriptores del conjunto de segundos descriptores uno entre: un descriptor jerarquico o un descriptor de extension jerarquica, y
    los uno o mas procesadores se configuran de tal manera que, como parte de la generacion del primer descriptor, los uno o mas procesadores:
    incluyen un conjunto de segundos elementos sintacticos en el primer descriptor, en donde:
    el conjunto de segundos elementos sintacticos incluye el segundo elemento sintactico,
    indicando cada respectivo segundo elemento sintactico del conjunto de segundos elementos sintacticos un valor de indice de capa jerarquica presente en un descriptor del conjunto de segundos descriptores, y el conjunto de segundos elementos sintacticos esta restringido de manera tal que no haya dos segundos elementos sintacticos del conjunto de segundos elementos sintacticos que tengan el mismo valor.
    15. El dispositivo (14) de cualquiera de las reivindicaciones 11 a 14, en el que el dispositivo (14) es un dispositivo de comunicacion inalambrica.
ES16712105T 2015-02-11 2016-02-11 Señalización de puntos de operación para el transporte de extensiones de la HEVC Active ES2711892T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201562115089P 2015-02-11 2015-02-11
US15/040,418 US9930378B2 (en) 2015-02-11 2016-02-10 Signaling of operation points for carriage of HEVC extensions
PCT/US2016/017499 WO2016130771A1 (en) 2015-02-11 2016-02-11 Signaling of operation points for carriage of hevc extensions

Publications (1)

Publication Number Publication Date
ES2711892T3 true ES2711892T3 (es) 2019-05-08

Family

ID=56567244

Family Applications (1)

Application Number Title Priority Date Filing Date
ES16712105T Active ES2711892T3 (es) 2015-02-11 2016-02-11 Señalización de puntos de operación para el transporte de extensiones de la HEVC

Country Status (12)

Country Link
US (1) US9930378B2 (es)
EP (1) EP3257253B1 (es)
JP (1) JP6442067B2 (es)
KR (1) KR101906136B1 (es)
CN (1) CN107251559B (es)
AU (1) AU2016219228B2 (es)
EA (1) EA034511B1 (es)
ES (1) ES2711892T3 (es)
HU (1) HUE041473T2 (es)
TN (1) TN2017000312A1 (es)
TW (1) TWI663870B (es)
WO (1) WO2016130771A1 (es)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2011205819B2 (en) 2010-01-18 2015-03-05 Telefonaktiebolaget Lm Ericsson (Publ) Method and arrangement for supporting playout of content
WO2022065875A1 (ko) * 2020-09-22 2022-03-31 엘지전자 주식회사 동작점 정보와 출력 계층 세트 정보를 시그널링하는 미디어 파일 생성/수신 방법, 장치 및 미디어 파일을 저장한 컴퓨터 판독 가능한 기록 매체

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7281018B1 (en) * 2004-05-26 2007-10-09 Microsoft Corporation Form template data source change
US8411746B2 (en) * 2009-06-12 2013-04-02 Qualcomm Incorporated Multiview video coding over MPEG-2 systems
US8948241B2 (en) 2009-08-07 2015-02-03 Qualcomm Incorporated Signaling characteristics of an MVC operation point
JP2013545361A (ja) * 2010-12-13 2013-12-19 エレクトロニクス アンド テレコミュニケーションズ リサーチ インスチチュート ステレオスコピックビデオサービスのためのシグナリング方法及びその方法を使用する装置
HUE066386T2 (hu) * 2011-05-31 2024-07-28 Jvckenwood Corp Mozgókép-kódoló eszköz, mozgókép-kódoló eljárás és mozgókép-kódoló program, valamint mozgókép-dekódoló eszköz, mozgókép-dekódoló eljárás és mozgókép-dekódoló program
CN107529708B (zh) * 2011-06-16 2019-05-07 Ge视频压缩有限责任公司 解码器、编码器、解码和编码视频的方法及存储介质
US9674525B2 (en) * 2011-07-28 2017-06-06 Qualcomm Incorporated Multiview video coding
US20130222537A1 (en) * 2012-02-29 2013-08-29 Qualcomm Incorporated Bitstream extraction in three-dimensional video
US9161039B2 (en) 2012-09-24 2015-10-13 Qualcomm Incorporated Bitstream properties in video coding
US20150264348A1 (en) * 2014-03-17 2015-09-17 Qualcomm Incorporated Dictionary coding of video content
WO2015179600A1 (en) * 2014-05-21 2015-11-26 Arris Enterprises, Inc. Signaling and selection for the enhancement of layers in scalable video

Also Published As

Publication number Publication date
JP2018509073A (ja) 2018-03-29
WO2016130771A1 (en) 2016-08-18
EP3257253B1 (en) 2018-11-28
US9930378B2 (en) 2018-03-27
AU2016219228A1 (en) 2017-07-27
EA201791482A1 (ru) 2018-01-31
BR112017017281A2 (pt) 2018-04-17
TN2017000312A1 (en) 2019-01-16
US20160234518A1 (en) 2016-08-11
TW201631969A (zh) 2016-09-01
CN107251559B (zh) 2019-09-27
JP6442067B2 (ja) 2018-12-19
TWI663870B (zh) 2019-06-21
EA034511B1 (ru) 2020-02-14
KR20170115063A (ko) 2017-10-16
EP3257253A1 (en) 2017-12-20
HUE041473T2 (hu) 2019-05-28
KR101906136B1 (ko) 2018-10-10
AU2016219228B2 (en) 2018-12-06
CN107251559A (zh) 2017-10-13

Similar Documents

Publication Publication Date Title
US10171842B2 (en) HRD descriptor and buffer model of data streams for carriage of HEVC extensions
ES2824770T3 (es) Asignación de agrupación de mosaicos y muestras en formatos de archivo HEVC y L-HEVC
ES2781307T3 (es) Mejora en la agrupación de mosaicos en formatos de archivo HEVC y L-HEVC
ES2813908T3 (es) Alineación del grupo de muestras de punto de funcionamiento en formato de archivo de flujos de bits multicapa
EP3363204B1 (en) Support of random access and switching of layers and sub-layers in multi-layer video files
ES2720662T3 (es) Diseños de formato de archivo de vídeo multicapa
ES2711535T3 (es) Procedimiento y dispositivo para probar la conformidad de parámetros hipotéticos de descodificador de referencia para esquemas de partición en la codificación de vídeo
ES2837853T3 (es) Codificación de datos de vídeo para un conjunto de capas de salida
JP6553054B2 (ja) Mpeg−2システムによるhevc拡張ビットストリームの搬送およびバッファモデル
ES2716852T3 (es) Formato de archivo para datos de vídeo
JP2017522779A (ja) ビットストリーム区分のための適合性パラメータ
TW201440487A (zh) 在視訊寫碼中之非巢套式補充增強資訊訊息
JP2017525257A (ja) スケーラブルビデオコード化におけるビットストリーム適合制約
ES2874073T3 (es) Flujo de transporte para el transporte de extensiones de codificación de vídeo
ES2711892T3 (es) Señalización de puntos de operación para el transporte de extensiones de la HEVC
BR112017017281B1 (pt) Sinalização de pontos de operação para conduzir extensões de hevc
OA18396A (en) Signaling of operation points for carriage of hevc extensions.