ES2784613T3 - Identificación de conjuntos de parámetros en archivos de vídeo - Google Patents

Identificación de conjuntos de parámetros en archivos de vídeo Download PDF

Info

Publication number
ES2784613T3
ES2784613T3 ES13717366T ES13717366T ES2784613T3 ES 2784613 T3 ES2784613 T3 ES 2784613T3 ES 13717366 T ES13717366 T ES 13717366T ES 13717366 T ES13717366 T ES 13717366T ES 2784613 T3 ES2784613 T3 ES 2784613T3
Authority
ES
Spain
Prior art keywords
particular type
parameter sets
video
sample description
sample
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
ES13717366T
Other languages
English (en)
Inventor
Ye-Kui Wang
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Application granted granted Critical
Publication of ES2784613T3 publication Critical patent/ES2784613T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • G06F16/73Querying
    • G06F16/738Presentation of query results
    • G06F16/739Presentation of query results in form of a video summary, e.g. the video summary being a video sequence, a composite still image or having synthesized frames
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • G06F16/1794Details of file format conversion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • G06F16/74Browsing; Visualisation therefor
    • G06F16/743Browsing; Visualisation therefor a collection of video files or sequences
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • G06F16/74Browsing; Visualisation therefor
    • G06F16/745Browsing; Visualisation therefor the internal structure of a single video sequence

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Television Signal Processing For Recording (AREA)

Abstract

Un procedimiento para almacenar datos de vídeo codificados que comprende una pluralidad de secuencias de imágenes de vídeo codificadas en un archivo electrónico (100; 140), comprendiendo el procedimiento: determinar, para una descripción de muestra (108; 150) que está en una pista de datos de vídeo (104; 144) y asociada con al menos una muestra (110, 111; 152, 153), si la descripción de muestra (108; 150) en la pista de vídeo (104; 144) incluye todos los conjuntos de parámetros de un primer tipo particular asociado con la al menos una muestra (110, 111; 152, 153), en el que la al menos una muestra (110, 111; 152, 153) comprende al menos una parte de la pluralidad de secuencias de imágenes de vídeo codificadas, y en el que el primer tipo particular es uno de una pluralidad de diferentes tipos particulares de conjuntos de parámetros; proporcionar, en el archivo electrónico (100; 140), un primer indicador de un bit que tiene un primer valor que indica que la descripción de muestra (108; 150) incluye todos los conjuntos de parámetros del primer tipo particular o un segundo valor que indica que al menos un conjunto de parámetros del primer tipo particular se incluye en una pista de conjuntos de parámetros, basándose el valor en la determinación de si la descripción de muestra (108; 150) en la pista de vídeo (104; 144) incluye todos los conjuntos de parámetros del primer tipo particular; determinar, para la descripción de muestra (108; 150), si la descripción de muestra (108; 150) en la pista de vídeo (104; 144) incluye todos los conjuntos de parámetros de un segundo tipo particular asociado con la al menos una muestra (110, 111; 152, 153), y en el que el segundo tipo particular es uno de una pluralidad de diferentes tipos particulares de conjuntos de parámetros diferentes del primer tipo particular; y, proporcionar, en el archivo electrónico (100; 140), un segundo indicador de un bit que tiene un primer valor que indica que la descripción de muestra (108; 150) incluye todos los conjuntos de parámetros del segundo tipo particular o un segundo valor que indica que al menos un conjunto de parámetros del segundo tipo particular se incluye en una pista de conjuntos de parámetros, basándose el valor en la determinación de si la descripción de muestra (108; 150) en la pista de vídeo (104; 144) incluye todos los conjuntos de parámetros del segundo tipo particular, en el que si la descripción de muestra (108; 150) incluye todos los conjuntos de parámetros del segundo tipo particular es independiente de si la descripción de muestra (108; 150) incluye todos los conjuntos de parámetros del primer tipo particular.

Description

DESCRIPCIÓN
identificación de conjuntos de parámetros en archivos de vídeo
CAMPO TÉCNICO
[0001] Esta divulgación se refiere al almacenamiento y transporte de datos de vídeo codificados.
ANTECEDENTES
[0002] Las capacidades de vídeo digital se pueden incorporar a una amplia gama de dispositivos, incluyendo televisores digitales, sistemas de radiodifusión directa digital, sistemas de radiodifusión inalámbrica, asistentes digitales personales (PDA), ordenadores portátiles o de escritorio, cámaras digitales, dispositivos de grabación digitales, reproductores de medios digitales, dispositivos de videojuegos, consolas de videojuegos, teléfonos de radio celulares o por satélite, dispositivos de videoconferencia y similares. Los dispositivos de vídeo digitales implementan técnicas de compresión de vídeo, tales como las descritas en las normas definidas por MPEG-2, MPEG-4, ITU-T H.263 o ITU-T H.264/MPEG-4, parte 10, Codificación de Vídeo Avanzada (AVC) y ampliaciones de dichas normas, para transmitir y recibir información de vídeo digital de manera más eficaz.
[0003] Las técnicas de compresión de vídeo realizan predicción espacial y/o predicción temporal para reducir o eliminar la redundancia inherente a las secuencias de vídeo. Independientemente de los procedimientos particulares, después de que se hayan codificado los datos de vídeo, los datos de vídeo se pueden agrupar en paquetes para su transmisión o almacenamiento. Los datos de vídeo se pueden ensamblar en un archivo de vídeo que se ajusta a cualquiera de una variedad de estándares, tales como el formato de archivo de medios de base de la Organización Internacional de Normalización (ISO) (ISOBMFF) y ampliaciones del mismo, tal como el archivo AVC.
[0004] "Tecnología de la información. Codificación de objetos audiovisuales. Parte 15: Formato de archivo de Codificación de Vídeo Avanzada (AVC)", describe que cuando hay un flujo elemental de vídeo y un flujo elemental del conjunto de parámetros, las unidades de NAL del conjunto de parámetros de imagen y las unidades de NAL del conjunto de parámetros de secuencia deben proporcionarse en el flujo elemental del conjunto de parámetros, pero donde no hay divulgación de que las unidades de NAL de PPS y SPS deban incluirse en las descripciones de muestra en el flujo elemental de vídeo. En este caso, se necesita el número de PPS y SPS para señalar cada uno de estos conjuntos de parámetros.
BREVE DESCRIPCIÓN
[0005] En general, esta divulgación describe técnicas para el almacenamiento y transporte de datos de vídeo. Esta divulgación proporciona técnicas para especificar si todos los conjuntos de parámetros de un tipo particular se almacenan en una denominada "descripción de muestra" incluida en el archivo de vídeo independientemente de otros tipos de conjuntos de parámetros.
[0006] Un ejemplo incluye un procedimiento para almacenar datos de vídeo codificados que comprende una pluralidad de secuencias de imágenes de vídeo codificadas en un archivo electrónico. El procedimiento incluye determinar si una descripción de muestra asociada con al menos una muestra incluye todos los conjuntos de parámetros de un tipo particular asociado con al menos una muestra. La al menos una muestra comprende al menos una parte de la pluralidad de secuencias de imágenes de vídeo codificadas. El tipo particular es uno de una pluralidad de diferentes tipos particulares de conjuntos de parámetros. El procedimiento también incluye proporcionar, en el archivo electrónico, una indicación que indique si la descripción de muestra incluye todos los conjuntos de parámetros del tipo particular en base a la determinación.
[0007] En otro ejemplo, un aparato se configura para almacenar datos de vídeo codificados que incluyen un número de secuencias de imágenes de vídeo codificadas en un archivo electrónico. El aparato incluye al menos un procesador configurado para determinar si una descripción de muestra asociada con al menos una muestra incluye todos los conjuntos de parámetros de un tipo particular asociado con al menos una muestra. La al menos una muestra comprende al menos una parte de la pluralidad de secuencias de imágenes de vídeo codificadas. El tipo particular es uno de una pluralidad de diferentes tipos particulares de conjuntos de parámetros. El al menos un procesador también está configurado para proporcionar, en el archivo electrónico, una indicación que indica si la descripción de muestra incluye todos los conjuntos de parámetros del tipo particular en base a la determinación.
[0008] Otro ejemplo incluye un medio de almacenamiento legible por ordenador que ha almacenado instrucciones en el mismo que, cuando se ejecutan, hacen que uno o más procesadores realicen operaciones, incluyendo determinar si una descripción de muestra asociada con al menos una muestra incluye todos los conjuntos de parámetros de un tipo particular asociado con la al menos una muestra. La al menos una muestra comprende al menos una parte de la pluralidad de secuencias de imágenes de vídeo codificadas. El tipo particular es uno de una pluralidad de diferentes tipos particulares de conjuntos de parámetros. Las instrucciones, cuando se ejecutan, también hacen que uno o más procesadores realicen operaciones que incluyen proporcionar, en el archivo electrónico, una indicación que indica si la descripción de muestra incluye todos los conjuntos de parámetros del tipo particular en base a la determinación.
[0009] Otro ejemplo incluye un aparato para almacenar datos de vídeo codificados que comprende una pluralidad de secuencias de imágenes de vídeo codificadas en un archivo electrónico. El aparato incluye medios para determinar si una descripción de muestra asociada con al menos una muestra incluye todos los conjuntos de parámetros de un tipo particular asociado con la al menos una muestra. La al menos una muestra comprende al menos una parte de la pluralidad de secuencias de imágenes de vídeo codificadas. El tipo particular es uno de una pluralidad de diferentes tipos particulares de conjuntos de parámetros. El aparato también incluye medios para proporcionar, en el archivo electrónico, una indicación que indica si la descripción de muestra incluye todos los conjuntos de parámetros del tipo particular en base a la determinación.
[0010] Otro ejemplo incluye un procedimiento para procesar datos de vídeo codificados que comprende una pluralidad de secuencias de imágenes de vídeo codificadas almacenadas en un archivo electrónico. El procedimiento incluye recibir una indicación en el archivo que indica si una descripción de muestra asociada con al menos una muestra incluye todos los conjuntos de parámetros de un tipo particular asociado con la al menos una muestra. La al menos una muestra comprende al menos una parte de la pluralidad de secuencias de imágenes de vídeo codificadas. El tipo particular es uno de una pluralidad de diferentes tipos particulares de conjuntos de parámetros. El procedimiento también incluye determinar si todos los conjuntos de parámetros del tipo particular se almacenan en la descripción de muestra en base a la indicación y procesar los datos de vídeo codificados en base al menos en parte a uno o más de los conjuntos de parámetros del tipo particular en base a la determinación de si todos los conjuntos de parámetros del tipo particular se almacenan en la descripción de muestra.
[0011] Otro ejemplo incluye un aparato para almacenar datos de vídeo codificados que comprende una pluralidad de secuencias de imágenes de vídeo codificadas en un archivo electrónico. El aparato incluye al menos un procesador configurado para recibir una indicación en el archivo que indica si una descripción de muestra asociada con al menos una muestra incluye todos los conjuntos de parámetros de un tipo particular asociado con la al menos una muestra. La al menos una muestra comprende al menos una parte de la pluralidad de secuencias de imágenes de vídeo codificadas. El tipo particular es uno de una pluralidad de diferentes tipos particulares de conjuntos de parámetros. El al menos un procesador también está configurado para determinar si todos los conjuntos de parámetros del tipo particular se almacenan en la descripción de muestra en base a la indicación y procesar los datos de vídeo codificados en base al menos en parte a uno o más de los conjuntos de parámetros del tipo particular en base a la determinación de si todos los conjuntos de parámetros del tipo particular se almacenan en la descripción de muestra.
[0012] Los detalles de uno o más ejemplos se exponen en los dibujos adjuntos y en la descripción siguiente. Otras características, objetos y ventajas resultarán evidentes a partir de la descripción y de los dibujos, y a partir de las reivindicaciones.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
[0013]
La FIG. 1 es un diagrama de bloques que ilustra un sistema ejemplar en el que un dispositivo de origen de audio/vídeo (A/V) transfiere datos de audio y vídeo a un dispositivo de destino de A/V.
La FIG. 2 es un diagrama de bloques que ilustra componentes de una unidad de encapsulación ejemplar.
La FIG. 3 es un diagrama de bloques que ilustra elementos de un archivo de vídeo ejemplar.
La FIG. 4 es un diagrama conceptual que ilustra elementos de otro archivo de vídeo ejemplar.
La FIG. 5 es un diagrama de flujo que ilustra un procedimiento ejemplar de almacenamiento de datos de vídeo codificados en un archivo electrónico.
La FIG. 6 es un diagrama de flujo que ilustra un procedimiento ejemplar de procesamiento de datos de vídeo codificados.
DESCRIPCIÓN DETALLADA
[0014] En general, se describen técnicas para almacenar contenido de vídeo en un archivo. En particular, las técnicas se relacionan con diversos procedimientos para almacenar contenido de vídeo de codificación de vídeo de alta eficiencia (HEVC) en un archivo basado en el formato de archivo de medios de base de la Organización Internacional de Normalización (ISO) (ISOBMFF). Las técnicas pueden permitir la especificación de si todos los conjuntos de parámetros de un tipo particular se almacenan en una denominada "descripción de muestra" incluida en el archivo de vídeo independientemente de otros tipos de conjuntos de parámetros. Las técnicas pueden extender lo que a veces se denomina registros de configuración de descodificador, que es una estructura de sintaxis incluida en la descripción de muestra, para incluir uno o más indicadores que indican si todos los conjuntos de parámetros de un tipo particular están almacenados en la descripción de muestra. Los ejemplos divulgados permiten distinguir si todos los conjuntos de parámetros de un tipo particular están incluidos en la descripción de muestra, lo que, a su vez, puede permitir determinaciones sobre cuándo realizar el transporte fuera de banda de conjuntos de parámetros de diferentes tipos. De esta manera, los ejemplos divulgados pueden permitir un almacenamiento, procesamiento y transmisión más eficientes de datos de vídeo codificados, lo que, a su vez, puede mejorar el rendimiento de los dispositivos de codificación de vídeo tales como codificadores y descodificadores de vídeo.
[0015] Las capacidades de vídeo digital se pueden incorporar a una amplia gama de dispositivos, incluyendo televisores digitales, sistemas de radiodifusión directa digital, sistemas de radiodifusión inalámbrica, asistentes digitales personales (PDA), ordenadores portátiles o de escritorio, cámaras digitales, dispositivos de grabación digitales, reproductores de medios digitales, dispositivos de videojuegos, consolas de videojuegos, teléfonos de radio celulares o por satélite, dispositivos de videoconferencia y similares. Los dispositivos de vídeo digitales implementan técnicas de compresión de vídeo, tales como las descritas en las normas definidas por MPEG-2, MPEG-4, ITU-T H.263 o ITU-T H.264/MPEG-4, parte 10, Codificación de Vídeo Avanzada (AVC) y ampliaciones de dichas normas, para transmitir y recibir información de vídeo digital de manera más eficaz.
[0016] Las técnicas de compresión de vídeo realizan predicción espacial y/o predicción temporal para reducir o eliminar la redundancia inherente a las secuencias de vídeo. Para la codificación de vídeo basada en bloques, una trama o fragmento de vídeo se puede dividir en bloques, por ejemplo, macrobloques. Cada macrobloque se puede dividir también aún más. Los bloques de una trama o fragmento intracodificado (I) se codifican usando predicción espacial con respecto a bloques contiguos. Los bloques de una trama o fragmento intercodificado (P o B) pueden usar predicción espacial con respecto a bloques contiguos de la misma trama o fragmento, o predicción temporal con respecto a otras tramas de referencia.
[0017] Después de que se hayan codificado los datos de vídeo, los datos de vídeo se pueden agrupar en paquetes para su transmisión o almacenamiento. Los datos de vídeo pueden ensamblarse en un archivo de vídeo que cumpla con cualquiera de una variedad de estándares, tal como ISOBMFF. Los estándares ejemplares adicionales incluyen el formato de archivo de codificación de vídeo escalable (SVC), el formato de archivo de codificación de vídeo avanzada (AVC), el formato de archivo del Proyecto de asociación de tercera generación (3GPP) y/o el formato de archivo de codificación de vídeo multivisión (MVC) u otros formatos de archivo de vídeo similares.
[0018] En un ejemplo, una unidad de encapsulación de archivo u otro dispositivo recibe flujos elementales que comprenden datos de vídeo desde un codificador de vídeo y flujos elementales que comprenden datos de audio desde un codificador de audio. Los datos de AV junto con los parámetros/atributos relacionados con los mismos, por ejemplo, velocidad de bits, velocidad de trama, resoluciones, tipo de códec (para datos de vídeo y/o audio), idioma, etc. pueden formar una "representación" de AV.
[0019] El término "representación" se puede usar para referirse a una sección de datos de audio o vídeo codificados correspondientes a un período en particular del contenido multimedia y codificados de una forma en particular. Cada flujo individual de datos de AV se puede denominar flujo elemental. Un flujo elemental es un componente único codificado digitalmente (posiblemente comprimido) de una representación. Por ejemplo, la parte de vídeo o audio codificado de la representación puede ser un flujo elemental. Adicionalmente, la información con respecto a los parámetros relacionados con los datos de vídeo incluidos en un flujo elemental de vídeo, por ejemplo, conjuntos de parámetros de secuencia como se describe a continuación, puede incluirse en un flujo elemental del conjunto de parámetros.
[0020] En algunos ejemplos, el codificador de vídeo y audio pueden incluir, cada uno, paquetizadores para formar paquetes de flujos elementales agrupados en paquetes (PES) a partir de datos codificados. En otros ejemplos, el codificador de vídeo y audio pueden interactuar, cada uno, con los paquetizadores respectivos para formar paquetes PES a partir de datos codificados. En otros ejemplos más, la unidad de encapsulación puede incluir paquetizadores para formar paquetes PES a partir de datos de audio y vídeo codificados.
[0021] La unidad de encapsulación puede recibir paquetes PES para flujos elementales de una representación desde el codificador de audio y vídeo y formar las correspondientes unidades de capa de abstracción de red (NAL) a partir de los paquetes PES. En el ejemplo de H.264/AVC (codificación de vídeo avanzada), los segmentos de vídeo codificados están organizados en unidades de NAL, que proporcionan una representación de vídeo "adaptada para redes" que aborda aplicaciones tales como la videotelefonía, el almacenamiento, la radiodifusión o la transmisión en continuo. Las unidades de NAL se pueden clasificar en unidades de NAL de capa de codificación de vídeo (VCL) y unidades de NAL no de VCL. Las unidades de VCL pueden contener el motor de compresión central y pueden incluir datos a nivel de bloque, macrobloque y/o fragmento. Las unidades de NAL de no VCL pueden incluir unidades de NAL de conjunto de parámetros, entre otras.
[0022] Los conjuntos de parámetros fueron introducidos en la norma H.264/AVC, en respuesta a los efectos de una pérdida de la cabecera de secuencia y la cabecera de imagen, si una imagen es dividida, por ejemplo, en múltiples segmentos (también denominados fragmentos) y esos segmentos son transportados en su propia unidad de transporte (por ejemplo, paquete de RTP). La pérdida del primer paquete de una imagen, que transporta no solo los datos del primer segmento de imagen, sino también la cabecera de imagen, puede conducir a una imagen reconstruida de forma completamente incorrecta (y a veces también a las siguientes imágenes), incluso si todos los demás paquetes no se perdieron. Algunas implementaciones de descodificadores ni siguiera intentarían descodificar los paquetes recibidos de una imagen, si se perdiera el paquete con la cabecera de la imagen.
[0023] Los conjuntos de parámetros pueden ser parte del flujo de bits de vídeo o pueden ser recibidos por un descodificador a través de otros medios (incluyendo la transmisión fuera de banda que usa un canal confiable, codificación rígida en codificador y descodificador, y así sucesivamente). Un conjunto de parámetros contiene una identificación, a la que se hace referencia, directa o indirectamente, desde, por ejemplo, una cabecera de fragmento correspondiente a un fragmento de una imagen incluida en una secuencia de vídeo codificada. El proceso de referencia se conoce como "activación". Dependiendo del tipo de conjunto de parámetros, la activación puede producirse una vez por imagen o una vez por secuencia. El concepto de activación mediante referencias fue introducido, entre otros motivos, porque la activación implícita, en virtud de la posición de la información en el flujo de bits (como es común para otros elementos sintácticos de un códec de vídeo), no está disponible en el caso de una transmisión fuera de banda.
[0024] HEVC incluye varios tipos diferentes de conjuntos de parámetros que se aplican a diferentes niveles de granularidad de los datos de vídeo, por ejemplo, imagen, secuencia, capa, de una secuencia de vídeo codificada. Los conjuntos de parámetros incluidos en HEVC son conjuntos de parámetros de imagen (PPS), conjuntos de parámetros de secuencia (SPS) y conjuntos de parámetros de vídeo (VPS). Un VPS transmite información aplicable a múltiples capas, así como subcapas. Los ejemplos de secuencias de vídeo de múltiples capas incluyen, por ejemplo, múltiples versiones del mismo flujo de vídeo que incluyen representaciones que difieren en resolución, velocidad de bits, velocidad de trama, etc. Cada capa de una secuencia de vídeo dada, independientemente de si dichas capas tienen el mismo o diferentes SPS, en general pueden referirse al mismo VPS. Un VPS puede transportar información que incluye (1) elementos sintácticos comunes compartidos por múltiples capas o puntos de operación, con el fin de evitar duplicaciones innecesarias; (2) información de puntos de operación necesarios para la negociación de sesiones, incluyendo, por ejemplo, el perfil y el nivel; y (3) otra información específica de puntos de operación, que no pertenezca a un SPS. Los ejemplos de otra información específica de puntos de operación que no pertenece a un SPS pueden incluir parámetros del descodificador de referencia hipotético (HRD) para capas o subcapas.
[0025] Los SPS contienen información que puede aplicarse a todos los fragmentos de una secuencia de vídeo codificada. En HEVC, una secuencia de vídeo codificada comienza a partir de una imagen actualizada de descodificación instantánea (IDR), una imagen de acceso aleatorio nítida (CRA) o una imagen de acceso de enlace roto (BLA) que es la primera imagen en el flujo de bits, e incluye todas las imágenes posteriores que no son una imagen IDR o BLA. Un flujo de bits consiste en una o más secuencias de vídeo codificado. El contenido de un SPS se puede dividir en varias categorías de información, que incluyen, por ejemplo: (1) una autorreferencia (su propio ID); (2) referencia al punto de operación del descodificador (perfil, nivel, tamaño de imagen, número de subcapas, etc.); (3) indicadores de habilitación para determinadas herramientas dentro de un perfil, y parámetros asociados de herramientas de codificación, en caso de que la herramienta esté habilitada; (4) información que restringe la flexibilidad de estructuras y la codificación de coeficientes de transformada; (5) control temporal de escalabilidad; y (6) Información de Capacidad de Utilización Visual (VUI),que incluye información del descodificador de referencia hipotética (HRD).
[0026] Los PPS contienen información que puede cambiar de una imagen a otra en una secuencia de vídeo codificada. El contenido de un PPS se puede dividir en varias categorías de información, que incluyen, por ejemplo: (1) una autorreferencia; (2) información de control de imagen inicial, tal como el parámetro de cuantificación inicial (QP), una serie de indicadores que indican el uso o la presencia de determinadas herramientas o información de control en la cabecera (secuencia) del sector; y (3) información de mosaico.
[0027] El Formato de Archivo de Medios de Base de la ISO (ISOBMFF, ISO/IEC 14496-12) está diseñado para contener la información cronológica de medios para una presentación de medios en un formato flexible y extensible que facilite el intercambio, la gestión, la edición y la presentación de los medios. El ISOBMFF se especifica en MPEG-4 Parte-12, que define una estructura general para archivos multimedia basados en el tiempo. El ISOBMFF se usa como la base para otros formatos de archivo en la familia, tales como el soporte definido del formato de archivo AVC (ISO/IEC 14496-15) para la compresión de vídeo de la norma AVC H.264/MPEG-4, el formato de archivo 3GPP, el formato de archivo SVC y el formato de archivo MVC. El formato de archivo 3GPP y el formato de archivo MVC son ampliaciones del formato de archivo AVC. El formato de archivo de medios de base de la ISO contiene la cronología, la estructura y la información de medios para secuencias cronometradas de datos de medios, tales como las presentaciones audiovisuales. La estructura del archivo es orientada a objetos. Un archivo puede descomponerse en objetos básicos y la estructura de los objetos está implícita a partir de su tipo.
[0028] En el formato de archivo de medios de base de la ISO, la presentación general se denomina película, que se divide lógicamente en pistas. Algunas pistas pueden representar una secuencia de medios cronometrada (tramas de vídeo, por ejemplo). Adicionalmente, las pistas pueden contener otros datos, tales como atributos/parámetros de medios, incluyendo, por ejemplo, conjuntos de parámetros mediante los cuales los datos de vídeo codificados pueden ser descodificados por un dispositivo descodificador que recibe los datos encapsulados en el archivo. Dentro de cada pista, cada unidad cronometrada se denomina muestra, que podría ser, por ejemplo, una trama de vídeo o audio. Las muestras están numeradas implícitamente en secuencia. Cada pista tiene una o más descripciones de muestra y cada muestra en la pista está vinculada a una descripción por referencia. La descripción define cómo se puede descodificar la muestra (por ejemplo, la descripción identifica el algoritmo de compresión usado).
[0029] A diferencia de otros formatos de archivos multimedia, el formato de archivo de medios de base de la ISO separa varios conceptos que a veces están vinculados. La estructura física del archivo puede no estar vinculada a las estructuras físicas de los propios medios. Por ejemplo, la estructura física del archivo y el diseño de los medios no necesitan estar vinculados al orden temporal de los medios. No es necesario que las tramas de vídeo se establezcan en el archivo en un orden temporal (aunque puede ser el caso). Sin embargo, las estructuras de archivos se pueden usar para describir la localización y la cronología de los medios. Dichas estructuras de archivos pueden permitir, pero no requieren, archivos ordenados por tiempo.
[0030] Los datos dentro de un archivo se pueden encapsular en cuadros. Los metadatos, incluyendo los que definen la localización y la cronología de los medios, pueden estar contenidos en cuadros estructurados y los metadatos (tramas de vídeo, por ejemplo) pueden hacer referencia a los mismos mediante estos metadatos. Los datos de medios pueden estar en el mismo archivo (contenidos en uno o más cuadros) o pueden estar en otros archivos. Por ejemplo, los metadatos permiten hacer referencia a otros archivos por medio de URL. La ubicación de los datos de medios dentro de estos archivos secundarios se describe completamente mediante los metadatos en el archivo primario. Dichos archivos secundarios no necesitan ser formateados para esta especificación, aunque pueden formatearse; es posible que no haya cuadros, por ejemplo, en estos archivos de medios secundarios.
[0031] Las pistas pueden ser de varios tipos. Las pistas de vídeo contienen muestras que son visuales y las pistas de audio contienen medios de audio. Los archivos también pueden incluir pistas de sugerencia, que contienen instrucciones para un servidor de transmisión con respecto a cómo formar paquetes para un protocolo de transmisión, a partir de las pistas de medios en un archivo. Las pistas de sugerencia se pueden ignorar cuando se lee un archivo para la reproducción local. El formato de archivo de medios de base de la ISO también permite otras pistas.
[0032] Las extensiones del formato de archivo de medios de base de la ISO se han formulado para varios estándares de vídeo codificados diferentes, incluyendo HEVC. De acuerdo con dichas extensiones del formato de archivo de medios de base de la ISO, los conjuntos de parámetros, incluyendo los VPS, SPS y PPS, pueden asociarse con el flujo elemental de vídeo, que se encuentra en la pista de vídeo del vídeo. Adicionalmente, los conjuntos de parámetros también se pueden almacenar en la descripción de muestra asociada con una muestra. También es posible tener los conjuntos de parámetros en otra pista, llamada pista de conjunto de parámetros, que incluye un flujo elemental de conjunto de parámetros que contiene las muestras que se forman a partir de una o más de las unidades de NAL de conjunto de parámetros no de VCL SPS, PPS y/o VPS.
[0033] Las descripciones de muestra asociadas con muestras de vídeo indican la localización de los conjuntos de parámetros. La descripción de muestra proporciona una estructura de sintaxis mediante la cual la información de atributo de la muestra se puede comunicar a un dispositivo, tal como un descodificador de vídeo. Los formatos de archivo HEVC anteriores especificaban que todos los conjuntos de parámetros de todos los tipos están incluidos en la descripción de muestra o que todos los conjuntos de parámetros de todos los tipos pueden almacenarse en la descripción de muestra y las muestras. Sin embargo, en algunos casos, puede ser útil distinguir si se incluye un tipo particular de conjuntos de parámetros en la descripción de muestra, por ejemplo, para determinar cuándo realizar el transporte fuera de banda de uno o más de VPS, SPS y PPS.
[0034] Para facilitar la determinación de si todos los conjuntos de parámetros de un tipo particular se incluyen en una descripción de muestra o muestra asociada, o en alguna otra localización, por ejemplo, una pista de conjunto de parámetros, las técnicas de esta divulgación permiten especificar indicaciones en el archivo encapsulado, por ejemplo, en la descripción de muestra, que indica individualmente si cada tipo de conjunto de parámetros está incluido en la descripción de muestra, en los datos de muestra o en ambos o en alguna otra localización. En un ejemplo, se incluye una indicación para cada tipo de conjuntos de parámetros en el registro de configuración del descodificador, que es una estructura de sintaxis que forma parte de la descripción de muestra.
[0035] La FIG. 1 es un diagrama de bloques que ilustra un sistema ejemplar 10 en el que el dispositivo de origen de audio/vídeo (A/V) 20 transporta datos de audio y vídeo al dispositivo de destino de A/V 40. El sistema 10 de la FIG. 1 puede corresponder a un sistema de teleconferencia por vídeo, un sistema de cliente/servidor, un sistema de difusor/receptor o cualquier otro sistema en el que se envíen datos de vídeo desde un dispositivo de origen, tal como un dispositivo de origen de A/V 20, a un dispositivo de destino, tal como un dispositivo de destino de A/V 40. En algunos ejemplos, el dispositivo de origen de A/V 20 y el dispositivo de destino de A/V 40 pueden realizar el intercambio bidireccional de información. Es decir, el dispositivo de origen de A/V 20 y el dispositivo de destino de A/V 40 pueden ser capaces tanto de codificar como de descodificar (y transmitir y recibir) datos de audio y vídeo. En algunos ejemplos, el codificador de audio 26 puede comprender un codificador de voz, también denominado vocodificador.
[0036] El dispositivo de origen de A/V 20, en el ejemplo de la FIG. 1, incluye una fuente de audio 22, una fuente de vídeo 24, un codificador de audio 26, un codificador de vídeo 28, una unidad de encapsulación 30 y una interfaz de salida 32. La fuente de audio 22 puede incluir, por ejemplo, un micrófono que produce señales eléctricas representativas de datos de audio captado que el codificador de audio 26 va a codificar. De forma alternativa, la fuente de audio 22 puede comprender un medio de almacenamiento que almacena datos de audio previamente registrados, un generador de datos de audio tal como un sintetizador informatizado, o cualquier otra fuente de datos de audio. El origen de vídeo 24 puede comprender una cámara de vídeo que produce datos de vídeo que han de ser codificados por el codificador de vídeo 28, un medio de almacenamiento codificado con datos de vídeo previamente grabados, una unidad de generación de datos de vídeo o cualquier otra fuente de datos de vídeo.
[0037] Los datos de audio y vídeo no procesados pueden comprender datos analógicos o digitales. Los datos analógicos se pueden digitalizar antes de que el codificador de audio 26 y/o el codificador de vídeo 28 los codifiquen. La fuente de audio 22 puede obtener datos de audio a partir de un participante que habla mientras el participante que habla está hablando, y la fuente de vídeo 24 puede obtener simultáneamente datos de vídeo del participante que habla. De esta manera, las técnicas descritas en esta divulgación se pueden aplicar a datos de audio y vídeo en tiempo real, de transmisión en directo y en continuo, o a datos de audio y vídeo archivados y prerregistrados.
[0038] La fuente de vídeo 24 puede proporcionar una o múltiples vistas simultáneas de una escena. Por ejemplo, la fuente de vídeo 24 puede corresponder a una cámara o un conjunto de cámaras, por ejemplo, dos o más cámaras cada una separada por una cierta cantidad de distancia, de modo que cada una de las cámaras en el conjunto se dirija a un punto focal aproximadamente común. En una disposición de múltiples cámaras, cada una de las cámaras puede proporcionar una perspectiva ligeramente diferente de la escena.
[0039] La fuente de vídeo 24 también puede proporcionar múltiples vistas simultáneas usando otras técnicas. Por ejemplo, la fuente de vídeo 24 puede proporcionar una vista e información de profundidad para objetos en una escena. La información de profundidad se puede usar para generar una segunda vista desde una segunda perspectiva de cámara virtual. La fuente de vídeo 24 puede incluir un procesador para generar la segunda vista o una unidad de preprocesamiento para el codificador de vídeo 28 puede generar la segunda vista. En algunos ejemplos, la fuente de vídeo 24 puede comprender un ordenador que genera gráficos informáticos usando dos o más perspectivas de cámara.
[0040] Las tramas de audio que corresponden a tramas de vídeo son, en general, tramas de audio que contienen datos de audio que fueron capturados por la fuente de audio 22 junto con los datos de vídeo capturados por la fuente de vídeo 24 que están contenidos dentro de las tramas de vídeo. Así pues, una trama de audio puede corresponder temporalmente a una o más tramas de vídeo en particular. En consecuencia, una trama de audio correspondiente a una trama de vídeo corresponde en general a una situación en la que se han captado datos de audio y datos de vídeo al mismo tiempo, y para la que una trama de audio y una trama de vídeo comprenden, respectivamente, los datos de audio y los datos de vídeo que se han captado al mismo tiempo.
[0041] En algunos ejemplos, el codificador de audio 26 puede codificar una marca de hora en cada trama de audio codificada, que representa una hora a la que se han registrado los datos de audio para la trama de audio codificada y, de forma similar, el codificador de vídeo 28 puede codificar una marca de hora en cada trama de vídeo codificada, que representa una hora a la que se han registrado los datos de vídeo para la trama de vídeo codificada. El dispositivo de origen de A/V 20 puede incluir un reloj interno a partir del cual el codificador de audio 26 y/o el codificador de vídeo 28 pueden generar las marcas de hora, o que la fuente de audio 22 y la fuente de vídeo 24 pueden usar para asociar datos de audio y vídeo, respectivamente, con una marca de hora.
[0042] En algunos ejemplos, la fuente de audio 22 puede enviar datos al codificador de audio 26, correspondientes a una hora a la que se han registrado los datos de audio, y la fuente de vídeo 24 puede enviar datos al codificador de vídeo 28, correspondientes a una hora a la que se han registrado los datos de vídeo. En algunos ejemplos, el codificador de audio 26 puede codificar un identificador de secuencia en unos datos de audio codificados para indicar un orden temporal relativo de los datos de audio codificados, pero sin indicar necesariamente una hora absoluta a la que se han registrado los datos de audio y, de forma similar, el codificador de vídeo 28 también puede usar identificadores de secuencia para indicar un orden temporal relativo de los datos de vídeo codificados. De forma similar, en algunos ejemplos, un identificador de secuencia se puede asociar a, o correlacionar de otro modo con, una marca de hora.
[0043] Para codificar los datos de vídeo recibidos desde la fuente de vídeo 24, el codificador de vídeo 28 realiza intra y/o interpredicción para generar uno o más bloques de predicción. El codificador de vídeo 28 resta los bloques de predicción de los bloques de vídeo originales que se van a codificar para generar bloques residuales. Por tanto, los bloques residuales pueden representar diferencias de píxel a píxel entre los bloques que se codifican y los bloques de predicción. El codificador de vídeo 28 puede aplicar una transformada a los bloques residuales para generar bloques de coeficientes de transformada. Siguiendo las técnicas de codificación en base a la intra y/o interpredicción y de transformada, el codificador de vídeo 28 puede cuantificar los coeficientes de transformada. Después de la cuantificación, la codificación de entropía puede realizarse mediante el codificador 28 de acuerdo con una metodología de codificación de entropía.
[0044] Un bloque de vídeo codificado generado por el codificador de vídeo 28 puede representarse mediante información de predicción que se puede usar para crear o identificar un bloque predictivo y un bloque residual de datos que se puede aplicar al bloque predictivo para recrear el bloque original. La información de predicción puede incluir vectores de movimiento usados para identificar el bloque predictivo de datos. Mediante los vectores de movimiento, el descodificador de vídeo 48 puede ser capaz de reconstruir los bloques predictivos que se usaron por el codificador de vídeo 28 para codificar los bloques residuales. Por tanto, dado un conjunto de bloques residuales y un conjunto de vectores de movimiento (y posiblemente sintaxis adicional), el descodificador de vídeo 28 puede reconstruir una trama de vídeo u otro bloque de datos que se codificó originalmente. La intercodificación basada en estimación de movimiento y compensación de movimiento puede alcanzar cantidades relativamente altas de compresión sin pérdida de datos excesiva, porque las tramas de vídeo sucesivas u otros tipos de unidades codificadas a menudo son similares. Una secuencia de vídeo codificada puede incluir bloques de datos residuales, vectores de movimiento (cuando se ha sometido a codificación de interpredicción), indicaciones de modos de intrapredicción para intrapredicción y elementos sintácticos.
[0045] El codificador de vídeo 28 también puede usar técnicas de intrapredicción para codificar bloques de vídeo en relación con bloques de vídeo contiguos de una trama o fragmento común u otra porción secundaria de una trama. De esta manera, el codificador de vídeo 28 predice los bloques espacialmente. El codificador de vídeo 28 puede configurarse con una variedad de modos de intrapredicción, que en general corresponden a varias direcciones de predicción espaciales.
[0046] El codificador de vídeo 28 puede aplicar procesos de transformada, cuantificación y codificación de entropía para reducir aún más la velocidad de bits asociada con la comunicación de bloques residuales resultantes de la codificación de datos de vídeo de origen proporcionados por la fuente de vídeo 24. Las técnicas de transformada pueden incluir transformadas de coseno discretas (DCT) o procesos conceptualmente similares. De forma alternativa, pueden usarse transformadas de ondícula, transformadas enteras u otros tipos de transformadas. El codificador de vídeo 28 también puede cuantificar los coeficientes de transformada, lo que en general implica un proceso para posiblemente reducir la cantidad de datos, por ejemplo, bits usados para representar los coeficientes. La codificación de entropía puede incluir procesos que comprimen colectivamente datos para la salida a un flujo de bits. Los datos comprimidos pueden incluir, por ejemplo, una secuencia de modos de codificación, información de movimiento, patrones de bloques codificados y coeficientes de transformada cuantificados. Entre los ejemplos de codificación por entropía se incluyen la codificación de longitud variable adaptativa al contexto (CAVLC) y la codificación aritmética binaria adaptativa al contexto (CABAC).
[0047] La codificación y descodificación de vídeo por el dispositivo de origen 20 y el dispositivo de destino 40 pueden admitir varios tamaños de bloques codificados por vídeo diferentes para la intrapredicción, tal como 16 por 16, 8 por 8 o 4 por 4 para componentes luma y 8x8 para componentes croma. Adicionalmente, el dispositivo de origen 20 y el dispositivo de destino 40 pueden admitir varios tamaños de bloques codificados por vídeo diferentes para la interpredicción, tal como 16x16, 16x8, 8x16, 8x8, 8x4, 4x8 y 4x4 para componentes luma y tamaños a escala correspondientes para componentes croma. En esta divulgación, ''NxN'' y "N por N" pueden usarse de manera intercambiable para referirse a las dimensiones de píxel del bloque en lo que respecta a las dimensiones vertical y horizontal, por ejemplo, 16x16 píxeles o 16 por 16 píxeles. En general, un bloque de 16x16 tendrá 16 píxeles en una dirección vertical (y = 16) y 16 píxeles en una dirección horizontal (x = 16). Asimismo, un bloque de tamaño NxN tiene, en general, N píxeles en una dirección vertical y N píxeles en una dirección horizontal, donde N representa un valor entero no negativo. Los píxeles de un bloque se pueden disponer en filas y columnas. Los bloques pueden tener diferentes números de píxeles en las dimensiones horizontal y vertical. Es decir, los bloques pueden incluir NxM píxeles, donde N no es necesariamente igual a M.
[0048] Los tamaños de bloque que son inferiores a 16 por 16 pueden denominarse divisiones de un macrobloque de 16 por 16. Los bloques de vídeo pueden comprender bloques de datos de píxeles en el dominio de píxel, o bloques de coeficientes de transformada en el dominio de transformada, por ejemplo, tras la aplicación de una transformada, tal como una transformada de coseno discreta (DCT), una transformada de números enteros, una transformada de ondículas o una transformada conceptualmente similar a los datos de bloques de vídeo residuales que representan diferencias de píxeles entre bloques de vídeo codificados y bloques de vídeo predictivos. En algunos casos, un bloque de vídeo puede comprender bloques de coeficientes de transformada cuantificados en el dominio de transformada.
[0049] Los bloques de vídeo más pequeños pueden proporcionar una mejor resolución y se pueden usar para localizaciones de una trama de vídeo que incluyen altos niveles de detalle. En general, los macrobloques y las diversas divisiones, denominadas en ocasiones subbloques, pueden considerarse bloques de vídeo. Además, un fragmento puede considerarse una pluralidad de bloques de vídeo, tales como macrobloques y/o subbloques. Cada fragmento puede ser una unidad independientemente descodificable de una trama de vídeo. De forma alternativa, las propias tramas pueden ser unidades descodificables, o pueden definirse otras partes de una trama como unidades descodificables. El término "unidad codificada" o "unidad de codificación" puede referirse a cualquier unidad independientemente descodificable de una trama de vídeo, tal como una trama completa, un fragmento de una trama, un grupo de imágenes (GOP), denominado también secuencia u otra unidad independientemente descodificable definida de acuerdo con técnicas de codificación aplicables.
[0050] En referencia nuevamente a la FIG. 1, la fuente de vídeo 24 puede proporcionar una o más vistas de una escena al codificador de vídeo 28 o puede proporcionar la información directamente a la unidad de encapsulación 30. La unidad de encapsulación 30 puede recibir flujos elementales que incluyen datos de vídeo codificados procedentes del codificador de vídeo 28 y flujos elementales que incluyen datos de audio procedentes del codificador de audio 26. En algunos ejemplos, el codificador de vídeo 28 y el codificador de audio 26 pueden incluir, cada uno, paquetizadores para formar paquetes PES a partir de datos codificados. En otros ejemplos, el codificador de vídeo 28 y el codificador de audio 26 pueden interactuar, cada uno, con los paquetizadores respectivos para formar paquetes PES a partir de datos codificados. En otros ejemplos más, la unidad de encapsulación 30 puede incluir paquetizadores para formar paquetes PES a partir de datos de audio y de vídeo codificados.
[0051] La unidad de encapsulación 30 puede recibir paquetes PES para flujos elementales de una representación desde el codificador de audio 26 y el codificador de vídeo 28 y formar las correspondientes unidades de capa de abstracción de red (NAL) a partir de los paquetes PES. Dentro de la misma representación, se puede usar un ID de flujo para distinguir los paquetes PES que pertenecen a un flujo elemental de los otros. La unidad básica de datos de un flujo elemental puede ser un paquete PES. Por tanto, cada vista de datos de vídeo de MVC corresponde a flujos elementales respectivos. De forma similar, los datos de audio corresponden a uno o más flujos elementales respectivos. Además de los flujos elementales de medios, la unidad de encapsulación 30 puede recibir otros tipos de flujos elementales, incluyendo los flujos de conjuntos de parámetros correspondientes a conjuntos de parámetros mediante los cuales los datos de vídeo codificados por el descodificador de vídeo 28 pueden descodificarse mediante un dispositivo de descodificación como el descodificador de vídeo 48 de dispositivo de destino de A/V 40.
[0052] Las técnicas de la presente divulgación se dirigen en general al almacenamiento y transporte de datos multimedia codificados (por ejemplo, audio y vídeo), y a la recepción y la posterior interpretación y descodificación de los datos multimedia transportados. Por ejemplo, las técnicas de esta divulgación permiten especificar indicaciones en un archivo de vídeo encapsulado, que indican individualmente si cada tipo de conjuntos de parámetros, por ejemplo, VPS, SPS y PPS se incluyen en una descripción de muestra asociada con una muestra, en datos de muestra, tanto la descripción de muestra como la muestra o en alguna otra localización.
[0053] En un ejemplo, la unidad de encapsulación 30 analiza los flujos elementales recibidos desde el codificador de vídeo 28 y determina si todos los conjuntos de parámetros de un tipo particular asociado con una muestra se almacenan en una descripción de muestra asociada con la muestra. La unidad de encapsulación 30 puede proporcionar a continuación una indicación en un archivo creado a partir de los flujos elementales, que indica si todos los conjuntos de parámetros del tipo particular están almacenados en la descripción de muestra. Detalles adicionales con respecto a esta y otras funciones de la unidad de encapsulación 30 de acuerdo con esta divulgación se proporcionan a continuación con referencia a las FIGS. 2-5.
[0054] En un ejemplo, la unidad de encapsulación 30 recibe paquetes PES para flujos elementales de una representación desde el codificador de audio 26 y el codificador de vídeo 28 y forma las correspondientes unidades de NAL a partir de los paquetes PES. La organización de segmentos de vídeo codificados en unidades de NAL puede proporcionar una representación de vídeo "adaptada para redes" de los datos para abordar aplicaciones tales como telefonía de vídeo, almacenamiento, difusión amplia o transmisión en continuo. Las unidades de NAL se pueden clasificar en unidades de NAL de capa de codificación de vídeo (VCL) y unidades de NAL no de VCL. Las unidades de VCL pueden contener el motor de compresión central y pueden incluir datos a nivel de bloque, macrobloque y/o fragmento. Otras unidades de NAL pueden ser unidades de NAL no de VCL.
[0055] Las unidades de NAL no de VCL pueden incluir unidades de NAL de conjunto de parámetros y unidades de NAL de Información de mejora complementaria (SEI), entre otras. Los conjuntos de parámetros pueden contener información de cabecera diferente para diferentes niveles de granularidad de datos de vídeo, por ejemplo, secuencia e imagen. Los parámetros encapsulados en unidades de NAL de parámetros pueden incluir VPS, SPS y PPS. Con los conjuntos de parámetros, la información que cambia raramente no necesita repetirse para cada secuencia o imagen, de ahí que pueda mejorarse la eficacia de la codificación y la transmisión. Por ejemplo, el uso de conjuntos de parámetros puede permitir la transmisión fuera de banda de la información de cabecera importante, evitando la necesidad de transmisiones redundantes para resistencia a los errores. En los ejemplos de transmisión fuera de banda, las unidades de NAL de conjunto de parámetros se pueden transmitir en un canal diferente al de otras unidades de NAL, tales como las unidades de NAL de SEI.
[0056] La SEI pueden contener información que no es necesaria para descodificar las muestras de imágenes codificadas a partir de las unidades de NAL de VCL, pero puede ayudar en los procesos relacionados con la descodificación, visualización, resistencia a errores y otros fines. Los mensajes SEI pueden estar contenidos en unidades de NAL no de VCL. Los mensajes SEI son la parte normativa de algunas especificaciones estándar y, por lo tanto, no siempre son obligatorios para la implementación de descodificadores que cumplen los estándares. Los mensajes SEI pueden ser mensajes SEI de nivel de secuencia o mensajes SEI de nivel de imagen. Parte de la información de nivel de secuencia puede estar contenida en mensajes SEI, tales como mensajes SEI de información de escalabilidad en el ejemplo de SVC y mensajes SEI de información de escalabilidad de vistas en MVC. Estos ejemplos de mensajes SEI pueden transmitir información, por ejemplo, sobre extracción de puntos de funcionamiento y características de los puntos de funcionamiento.
[0057] Una unidad de NAL que incluye datos de vídeo en su carga útil puede incluir diversos niveles de granularidad de datos de vídeo. Por ejemplo, una unidad de NAL puede comprender un bloque de datos de vídeo, uno o más macrobloques, un fragmento de datos de vídeo o una trama completa de datos de vídeo.
[0058] En un ejemplo, la unidad de encapsulación 30 ensambla unidades de acceso desde varias unidades de NAL. En general, una unidad de acceso puede incluir una o más unidades de NAL para representar una trama de datos de vídeo, así como datos de audio correspondientes a la trama cuando dichos datos de audio están disponibles. Una unidad de acceso incluye en general todas las unidades de NAL para una instancia de tiempo de salida, por ejemplo, todos los datos de audio y vídeo para una instancia de tiempo. Por ejemplo, si cada vista tiene una velocidad de tramas de 20 tramas por segundo (fps), entonces cada instancia de hora puede corresponder a un intervalo de tiempo de 0,05 segundos. Durante este intervalo de tiempo, las tramas específicas para todas las vistas de la misma unidad de acceso (la misma instancia de tiempo) se pueden representar simultáneamente. El orden de descodificación de las unidades de acceso no necesita ser el mismo que el orden de salida o de visualización.
[0059] Después de que la unidad de encapsulación 30 haya ensamblado las unidades de NAL y/o las unidades de acceso en un archivo de vídeo, en base a los datos recibidos, la unidad de encapsulación 30 pasa el archivo de vídeo a la interfaz de salida 32 para su salida. En algunos ejemplos, la unidad de encapsulación 30 puede almacenar el archivo de vídeo localmente o enviar el archivo de vídeo a un servidor remoto por medio de la interfaz de salida 32, en lugar de enviar el archivo de vídeo directamente al dispositivo de destino 40. En un ejemplo, los datos de vídeo se pueden transferir a la interfaz de entrada 36 del dispositivo de destino de A/V 40 por medio del enlace 34. En algunos ejemplos, el dispositivo de origen 20 incluye un módem que modula los datos de vídeo transmitidos al dispositivo de destino 40, de acuerdo con una norma de comunicación, tal como el acceso múltiple por división de código (CDMA) u otra norma de comunicación. El módem puede incluir varios mezcladores, filtros, amplificadores u otros componentes diseñados para la modulación de señales. La interfaz de salida 32 puede incluir circuitos diseñados para transmitir datos, que incluyen amplificadores, filtros y una o más antenas. En algunos ejemplos, en lugar de transmitir a través de un canal de comunicación, por ejemplo, a través del enlace 34, el dispositivo de origen 20 puede almacenar datos de vídeo codificados en un dispositivo de almacenamiento, tal como un disco de vídeo digital (DVD), disco Bluray, memoria flash o similares.
[0060] El dispositivo de destino de A/V 40, en el ejemplo de la FIG. 1, incluye una salida de audio 42, una salida de vídeo 44, un descodificador de audio 46, un descodificador de vídeo 48, una unidad de desencapsulación 38 y una interfaz de entrada 36. En el dispositivo de destino 40, el descodificador de vídeo 48 recibe finalmente los datos de vídeo codificados. Por ejemplo, la interfaz de entrada 36 del dispositivo de destino 40 recibe información a través del enlace 34 o desde un dispositivo de almacenamiento, que a continuación es desencapsulada por la unidad de desencapsulación 38. El descodificador de vídeo 48 recibe datos de vídeo desencapsulados de la unidad de desencapsulación 38. En algunos ejemplos, el dispositivo de destino 40 incluye un módem que desmodula la información. Como la interfaz de salida 32, la interfaz de entrada 36 puede incluir circuitos diseñados para recibir datos, que incluyen amplificadores, filtros y una o más antenas. En algunos casos, la interfaz de salida 32 y/o la interfaz de entrada 36 pueden incorporarse dentro de un único componente de transceptor que incluye tanto circuitería de recepción como de transmisión. Un módem puede incluir varios mezcladores, filtros, amplificadores u otros componentes diseñados para la desmodulación de señales. En algunos casos, un módem puede incluir componentes para realizar la modulación y la desmodulación.
[0061] La unidad de desencapsulación 38 puede desencapsular elementos de un archivo de vídeo en flujos PES constituyentes, despaquetizar los flujos PES para recuperar datos codificados y enviar los datos codificados al descodificador de audio 46 o bien al descodificador de vídeo 48, dependiendo de si los datos codificados forman parte de un flujo de audio o vídeo, por ejemplo, como lo indican las cabeceras de paquetes PES del flujo. El descodificador de audio 46 descodifica datos de audio codificados y envía los datos de audio descodificados a la salida de audio 42, mientras que el descodificador de vídeo 48 descodifica datos de vídeo codificados y envía los datos de vídeo descodificados, que pueden incluir una pluralidad de vistas de un flujo, a la salida de vídeo 44.
[0062] En un ejemplo, el descodificador de vídeo 48 realiza la descodificación de entropía de los datos de vídeo codificados recibidos 8, tales como un bloque codificado, de acuerdo con una metodología de codificación de entropía, tal como CAVLC o CABAC, para obtener los coeficientes cuantificados. El descodificador de vídeo 48 aplica las funciones de cuantificación inversa (descuantificación) y de transformada inversa para reconstruir el bloque residual en el dominio del píxel. El descodificador de vídeo 48 genera también un bloque de predicción basado en información de control o información de sintaxis (por ejemplo, modo de codificación, vectores de movimiento, sintaxis que define coeficientes de filtro y similares) incluidos en los datos de vídeo codificados. El descodificador de vídeo 48 calcula una suma del bloque de predicción y el bloque residual reconstruido para generar un bloque de vídeo reconstruido para su visualización.
[0063] En un ejemplo, la salida de vídeo 44 incluye uno o más dispositivos de visualización, que están configurados para mostrar los datos de vídeo descodificados a un usuario que incluye, por ejemplo, vídeo de múltiples vistas que incluye vista(s) de destino sintetizada(s) en base a la información de profundidad incluida en una vista o vistas de referencia. El dispositivo de visualización que forma parte de o abarca todo de la salida de vídeo 44 puede incluir cualquiera de entre una variedad de uno o más dispositivos de visualización, tales como un tubo de rayos catódicos (CRT), una pantalla de cristal líquido (LCD), una pantalla de plasma, una pantalla de diodos orgánicos emisores de luz (OLED) u otro tipo de dispositivo de visualización. En algunos ejemplos, la salida de vídeo 44 incluye un dispositivo de visualización con capacidad de reproducción tridimensional. Por ejemplo, la salida de vídeo 44 puede incluir una pantalla estereoscópica, que el observador usa provisto de unas gafas.
[0064] El codificador de vídeo 28, el descodificador de vídeo 48, el codificador de audio 26, el descodificador de audio 46, la unidad de encapsulación 30 y la unidad de desencapsulación 38 pueden, cada uno, implementarse como cualquiera de una diversidad de circuitos de procesamiento adecuados, según corresponda, tales como uno o más microprocesadores, procesadores de señales digitales (DSP), circuitos integrados específicos de la aplicación (ASIC), matrices de compuertas programables en el terreno (FPGA), circuitos lógicos discretos, software, hardware, firmware o cualquier combinación de los mismos. Tanto el codificador de vídeo 28 como el descodificador de vídeo 48 pueden estar incluidos en uno o más codificadores o descodificadores, ambos de los cuales pueden estar integrados como parte de un codificador/descodificador (CÓDEC) de vídeo combinado. Asimismo, tanto el codificador de audio 26 como el descodificador de audio 46 pueden estar incluidos en uno o más codificadores o descodificadores, ambos de los cuales puede estar integrado como parte de un CÓDEC combinado. Un aparato que incluye un codificador de vídeo 28, un descodificador de vídeo 48, un codificador de audio 26, un descodificador de audio 46, una unidad de encapsulación 30 y/o una unidad de desencapsulación 38 puede comprender un circuito integrado, un microprocesador y/o un dispositivo de comunicación inalámbrica, tal como un teléfono celular.
[0065] La FIG. 2 es un diagrama de bloques que ilustra componentes de una unidad de encapsulación ejemplar 30. En el ejemplo de la FIG. 2, la unidad de encapsulación 30 incluye una interfaz de entrada de vídeo 80, una interfaz de entrada de audio 82, una unidad de creación de archivos de vídeo 60 y una interfaz de salida de archivos de vídeo 84. La unidad de creación de archivos de vídeo 60, en este ejemplo, incluye el constructor de unidad de capa de abstracción de red (NAL) 62, la unidad de extracción de conjuntos de parámetros 64 y la unidad de creación de descripción de muestra 66.
[0066] La interfaz de entrada de vídeo 80 y la interfaz de entrada de audio 82 reciben datos de vídeo y audio codificados, respectivamente. La interfaz de entrada de vídeo 80 y la interfaz de entrada de audio 82 pueden recibir datos de vídeo y audio codificados a medida que se codifican los datos, o puede recuperar datos de vídeo y audio codificados a partir de un medio legible por ordenador. Tras recibir datos de vídeo y audio codificados, la interfaz de entrada de vídeo 80 y la interfaz de entrada de audio 82 pasan los datos de vídeo y audio codificados a la unidad de creación de archivos de vídeo 60 para ensamblarlos en un archivo de vídeo.
[0067] La unidad de creación de archivos de vídeo 60 puede corresponder a una unidad de control que incluya hardware, software y/o firmware configurada para realizar las funciones y procedimientos atribuidos a los mismos. La unidad de control puede llevar a cabo además las funciones atribuidas a la unidad de encapsulación 30 en general. Para ejemplos en los que la unidad de creación de archivos de vídeo 60 está incorporada en software y/o firmware, la unidad de encapsulación 30 puede incluir un medio legible por ordenador que comprende instrucciones para la unidad de creación de archivos de vídeo 60 y una unidad de procesamiento para ejecutar las instrucciones. Cada una de las subunidades de la unidad de creación de archivos de vídeo 60 (constructor de unidad de NAL 62, unidad de extracción de conjuntos de parámetros 64 y unidad de creación de descripción de muestra 66, en este ejemplo) se puede implementar como unidades de hardware y/o módulos de software individuales, y se pueden integrar funcionalmente o separar adicionalmente en subunidades adicionales. La unidad de creación de archivos de vídeo 60 puede corresponder a cualquier unidad de procesamiento o circuitos de procesamiento adecuados, tales como, por ejemplo, uno o más microprocesadores, circuitos integrados específicos de la aplicación (ASIC), matrices de puertas programables en el terreno (FPGA), procesadores de señales digitales (DSP) o cualquier combinación de los mismos. La unidad de creación de archivos de vídeo 60 puede incluir además un medio legible por ordenador no transitorio que almacena instrucciones para cualquiera o la totalidad del constructor de unidad de NAL 62, la unidad de extracción de conjuntos de parámetros 64 y la unidad de creación de descripción de muestra 66, así como un procesador para ejecutar las instrucciones.
[0068] En general, la unidad de creación de archivos de vídeo 60 puede crear un archivo de vídeo incluyendo los datos de audio y vídeo recibidos. El constructor de unidades de NAL 62 puede formar unidades de NAL que incluyen muestras codificadas de vídeo y audio. La unidad de creación de archivos de vídeo 60 puede configurarse además para ensamblar unidades de acceso que incluyan todas las unidades de NAL para una instancia de tiempo en particular. Además, la unidad de creación de archivos de vídeo 60 puede configurarse para desacoplar mensajes SEI de nivel de secuencia a partir de imágenes de vídeo codificadas descritas por los mensajes SEI de nivel de secuencia, y almacenar los mensajes SEI de nivel de secuencia en el archivo de vídeo por separado a partir de las imágenes de vídeo codificadas descritas por los mensajes SEI de nivel de secuencia.
[0069] El codificador de vídeo 28 (FIG. 1) puede incluir datos distintos de datos de vídeo con muestras de datos de vídeo. Los datos de vídeo codificados recibidos por la interfaz de entrada de vídeo 80 de la unidad de encapsulación 30 del codificador de vídeo 28 pueden incluir, por ejemplo, datos que representan conjuntos de parámetros tales como VPS, SPS y PPS, así como mensajes SEI para muestras de vídeo codificado. En el contexto de un archivo de vídeo encapsulado, las muestras pueden referirse a muestras de datos codificados de vídeo, así como a muestras de otros datos, incluyendo muestras que incluyen porciones formadoras de datos de conjuntos de parámetros que pueden ser usados por un descodificador de vídeo, por ejemplo, el descodificador de vídeo 48 del dispositivo de destino 40 para descodificar datos de vídeo codificados también incluidos en el archivo de vídeo encapsulado creado por la unidad de encapsulación 30.
[0070] En los ejemplos de acuerdo con esta divulgación, la unidad de creación de archivos de vídeo 60 de la unidad de encapsulación 30 está configurada para almacenar datos de conjuntos de parámetros recibidos como parte de los datos de vídeo codificados en localizaciones particulares y proporcionar indicaciones en el archivo encapsulado que indica dónde se encuentran los conjuntos de parámetros. Por ejemplo, la unidad de creación de archivos de vídeo 60 de la unidad de encapsulación 30 está configurada para almacenar datos de conjuntos de parámetros en una descripción de muestra asociada con una muestra de vídeo, en datos de muestra, tanto la descripción de muestra como la muestra o en alguna otra localización.
[0071] Como se indicó anteriormente, la unidad de creación de archivos de vídeo 60 incluye la unidad de extracción de conjuntos de parámetros 64 y la unidad de creación de descripción de muestra 66. En un ejemplo, la unidad de extracción de conjuntos de parámetros 64 está configurada para extraer datos del conjunto de parámetros de los datos de vídeo codificados recibidos por la interfaz de entrada de vídeo 80 de la unidad de encapsulación 30. La unidad de extracción de conjuntos de parámetros 64 puede, en un ejemplo, identificar datos de conjuntos de parámetros y así distinguir estos datos de los datos de vídeo codificados. Adicionalmente, la unidad de extracción de conjuntos de parámetros 64 puede separar datos de conjuntos de parámetros de datos de vídeo codificados.
[0072] La unidad de extracción de conjuntos de parámetros 64 de la unidad de creación de archivos de vídeo 60 también se puede configurar para almacenar los datos de conjuntos de parámetros en varias localizaciones diferentes en el archivo de vídeo encapsulado. En un ejemplo, la unidad de extracción de conjuntos de parámetros 64 está configurada para almacenar parte o la totalidad de los datos de conjuntos de parámetros en una o más descripciones de muestra asociadas con muestras de datos de vídeo. En otro ejemplo, la unidad de extracción de conjuntos de parámetros 64 está configurada para almacenar los datos de conjuntos de parámetros en localizaciones distintas a las descripciones de muestra, incluso con las muestras de vídeo en una pista de vídeo o en una pista separada del archivo de vídeo encapsulado como una pista de conjuntos de parámetros. En los conjuntos de parámetros, los datos se almacenan por separado de las descripciones de muestra y las muestras de vídeo; en algunos ejemplos, la unidad de extracción de conjuntos de parámetros 64 puede crear un archivo separado del archivo de vídeo encapsulado en el cual se almacena y a través del cual se transmiten algunos o todos los datos de los conjuntos de parámetros.
[0073] La unidad de creación de descripción de muestra 66 de la unidad de creación de archivo de vídeo 60 está configurada para generar descripciones de muestra asociadas con muestras de vídeo. Como se indica anteriormente, en un archivo formateado de acuerdo con el formato de archivo de medios de base de la ISO, la presentación de medios general se denomina película. La película está dividida lógicamente en pistas. Algunas pistas pueden representar una secuencia de medios cronometrada (tramas de vídeo, por ejemplo). Adicionalmente, las pistas pueden contener otros datos, tales como atributos/parámetros de medios, incluyendo, por ejemplo, conjuntos de parámetros mediante los cuales los datos de vídeo codificados pueden ser descodificados por un dispositivo descodificador que recibe los datos encapsulados en el archivo. Dentro de cada pista, cada unidad cronometrada se denomina muestra, que podría ser, por ejemplo, una trama de vídeo o audio. Cada pista tiene una o más descripciones de muestra y cada muestra en la pista está vinculada a una descripción por referencia. La descripción de muestra proporciona una estructura de sintaxis mediante la cual la información de atributo de la muestra se puede comunicar a un dispositivo, tal como un descodificador de vídeo. La descripción de muestra define cómo se puede descodificar la muestra (por ejemplo, la descripción identifica el algoritmo de compresión usado). La unidad de creación de descripción de muestra 66 está configurada para generar descripciones de muestra asociadas con muestras de vídeo incluidas en los datos de vídeo codificados recibidos por la interfaz de entrada de vídeo 80 de la unidad de encapsulación 30.
[0074] Entre otra información, en un ejemplo, las descripciones de muestra generadas por la unidad de creación de descripción de muestra 66 indican la localización de los conjuntos de parámetros. Los formatos de archivo HEVC anteriores especificaban que todos los conjuntos de parámetros de todos los tipos están incluidos en la descripción de muestra o que todos los conjuntos de parámetros de todos los tipos pueden almacenarse en la descripción de muestra y las muestras. Sin embargo, en algunos casos, puede ser útil distinguir si se incluye un tipo particular de conjuntos de parámetros en la descripción de muestra, por ejemplo, para determinar cuándo realizar el transporte fuera de banda de uno o más de VPS, SPS y PPS.
[0075] Para facilitar la determinación de si todos los conjuntos de parámetros de un tipo particular se incluyen en una descripción de muestra o en alguna otra localización, por ejemplo, una pista de conjunto de parámetros, las técnicas de esta divulgación permiten que las indicaciones sean especificadas por la unidad de creación de descripción de muestra 66 en una descripción de muestra, que indica individualmente dónde se almacenan cada tipo de conjuntos de parámetros. En un ejemplo, la unidad de creación de descripción de muestra 66 proporciona una indicación para cada tipo de conjuntos de parámetros, por ejemplo, cada VPS, SPS y PPS en el registro de configuración del descodificador. El registro de configuración del descodificador es una estructura de sintaxis que forma parte de la descripción de muestra. Las FIGS. 3 y 4 ilustran ejemplos de archivos creados por la unidad de encapsulación 30, que incluyen indicaciones de la localización de conjuntos de parámetros asociados con muestras de vídeo almacenadas en los archivos.
[0076] La FIG. 3 es un diagrama conceptual que ilustra el archivo de vídeo ejemplar 100 encapsulado por la unidad de encapsulación 30. El archivo de vídeo 100 incluye el área de moov 102, que incluye la pista de datos de vídeo 104 y la pista de conjuntos de parámetros 106. El archivo de vídeo 100 u otros archivos de vídeo encapsulados de acuerdo con esta divulgación pueden incluir muchas más de dos pistas, incluyendo múltiples pistas de datos de vídeo y audio, así como múltiples pistas de conjunto de parámetros. En la FIG. 3, la pista de datos de vídeo 104 incluye la descripción de muestra 108 y una secuencia asociada de muestras de vídeo que incluye las muestras de vídeo 110 y 11. La pista de datos de vídeo 104 puede incluir más muestras de vídeo y descripciones de muestra adicionales.
[0077] El área de moov 102 forma el recipiente de almacenamiento básico para datos de vídeo incluido en el archivo de vídeo de formato de archivo de medios de base de la ISO 100. Como se indica anteriormente, en la práctica, el área de moov 102 puede incluir varias pistas diferentes, incluyendo datos de vídeo, datos de audio y, en algunos casos, pistas de conjuntos de parámetros. En el archivo de vídeo ejemplar 100 de la FIG. 3, el área de moov 102 incluye la pista de datos de vídeo 104 y la pista de conjuntos de parámetros 106. Cada una de las pistas de datos de vídeo 104 y la pista de conjuntos de parámetros 106 puede representar una secuencia cronometrada de medios u otra información (tramas de vídeo, por ejemplo). Dentro de cada pista, cada unidad cronometrada se denomina muestra, que podría ser, por ejemplo, una trama de vídeo o audio o una muestra de datos que representan conjuntos de parámetros mediante los cuales se descodifican muestras de vídeo.
[0078] En un ejemplo, la descripción de muestra 108 es generada por la unidad de creación de descripción de muestra 66 basada, al menos en parte, en donde se almacenan en el archivo de vídeo 100 conjuntos de parámetros asociados con muestras de vídeo 110 y 111. En el ejemplo de la FIG. 3, los conjuntos de parámetros asociados con las muestras de vídeo 110 y 111 incluyen varios tipos diferentes de conjuntos de parámetros, incluyendo VPS 120, SPS 122 y PPS 124. Los VPS 120 se almacenan en la pista de conjuntos de parámetros 106, mientras que los SPS 122 y los PPS 124 se almacenan en la descripción de muestra 108 o con las muestras de vídeo 110 y 111 o en ambas.
[0079] La unidad de creación de descripción de muestra 66 puede generar una descripción de muestra 108 determinando dónde se almacenan los conjuntos de parámetros en el archivo de vídeo 100, por ejemplo, mediante la unidad de extracción de conjuntos de parámetros 64. En un ejemplo, la unidad de creación de descripción de muestra 66 determina que los VPS 120 se almacenan en la pista de conjuntos de parámetros 106 del archivo de vídeo 100, mientras que los SPS 122 y PPS 124 se almacenan en la descripción de muestra 108 asociada con las muestras de vídeo 110 y 111. En tal caso, la unidad de creación de descripción de muestra 66 puede proporcionar indicaciones de las localizaciones de los conjuntos de parámetros en el archivo de vídeo 100 en el registro de configuración del descodificador 126, que es una estructura de sintaxis incluida en la descripción de muestra 108.
[0080] A continuación, se proporciona un ejemplo de implementación. En particular, la sintaxis para el registro de configuración del descodificador 126 incluida en la descripción de muestra 108 asociada con las muestras de vídeo 110 y 11 en el archivo de vídeo encapsulado 100 puede ser la siguiente en el ejemplo del registro de configuración del descodificador HEVC que se muestra a continuación.
aligned(8) class HEVCDecoderConfigurationRecord {
unsigned int(8) configuration Version = 1;
unsigned int(8) ProfileIndication;
unsigned int(8) ProfileCompatibility;
unsigned int(8) LevelIndication;
bit(3) reserved = '111'b;
bit(1) allSpsIncluded;
bit(1) allPpsIncluded;
bit(0) allVpsIncluded; ...
}
[0081] En el ejemplo anterior, la indicación allSpsIncluded es igual a 1, lo que puede indicar que todos los SPS para las muestras de vídeo a las que se aplica el registro de configuración 126, por ejemplo, las muestras de vídeo 110 y 111, están incluidos en el registro de configuración del descodificador 126. La indicación allPpsIncluded es igual a 1, lo que puede indicar que todos los PPS para las muestras de vídeo a las que se aplica el registro de configuración 126, por ejemplo, las muestras de vídeo 110 y 111, están incluidos en el registro de configuración del descodificador 126. Sin embargo, la indicación allVpsIncluded es igual a 0, lo que indica que todos los VPS para las muestras de vídeo a las que se aplica el registro de configuración 126, por ejemplo, las muestras de vídeo 110 y 111, no están incluidos en el registro de configuración del descodificador 126. En el ejemplo de la FIG. 3, los VPS 120 están incluidos en la pista de conjuntos de parámetros 106.
[0082] Es posible que sea necesario enviar un conjunto de parámetros que se va a usar en una imagen u otra porción de datos de vídeo codificados antes de que la muestra contenga esa imagen o en la muestra para esa imagen. Sin embargo, dependiendo de la naturaleza de la información incluida en los conjuntos de parámetros, así como de las muestras de vídeo con las que se asocian los conjuntos de parámetros, puede ser posible transmitir algunos de los conjuntos de parámetros por separado de los datos de vídeo, por ejemplo, algunos de los conjuntos de parámetros pueden transmitirse fuera de banda, como se describe anteriormente. Por tanto, puede ser ventajoso indicar individualmente las localizaciones de diferentes tipos de conjuntos de parámetros y, como se ilustra en el ejemplo de la FIG. 3, especificar que, mientras que los SPS 122 y PPS 124 están incluidos en el registro de configuración de descodificador 126 de la descripción de muestra 108, los VPS 120 se almacenan en la pista de conjuntos de parámetros 106 separados de los datos de vídeo tales como las muestras de vídeo 110 y 111 con las cuales se asocian los VPS 120.
[0083] La FIG. 4 es un diagrama conceptual que ilustra otro archivo de vídeo ejemplar 140 encapsulado por la unidad de encapsulación 30. El archivo de vídeo 140 incluye el área de moov 142, que incluye la pista de datos de vídeo 144. En el ejemplo de la FIG. 4, la unidad de encapsulación 30 genera un archivo de parámetros individuales 146, que incluye la pista de conjuntos de parámetros 148. El archivo de vídeo 140 u otros archivos de vídeo encapsulados de acuerdo con esta divulgación pueden incluir muchas más de dos pistas, incluyendo múltiples pistas de datos de vídeo y audio, así como múltiples pistas de conjunto de parámetros. En la FIG. 4, la pista de datos de vídeo 144 incluye la descripción de muestra 150 y una secuencia asociada de muestras de vídeo que incluye las muestras de vídeo 152 y 153. La pista de datos de vídeo 144 puede incluir más muestras de vídeo y descripciones de muestra adicionales.
[0084] En el ejemplo de la FIG. 4, la unidad de creación de descripción de muestra 66 genera una descripción de muestra 150, que incluye el registro de configuración de descodificador 152. Adicionalmente, el registro de configuración de descodificador 152 incluye indicadores allVpsIncluded, allSpsIncluded y allPpsIncluded, que indican individualmente si los VPS 154, SPS 156 y PPS 158 están almacenados en la descripción de muestra 150. En el ejemplo de la FIG.4, los VPS 154 se almacenan en la pista de conjuntos de parámetros 148 del archivo de parámetros 146, mientras que los SPS 156 y PPS 158 se almacenan en la descripción de muestra 150 de la pista de datos de vídeo 144 del archivo de vídeo 140. Por tanto, en este ejemplo, puede ser posible transmitir VPS 154 por separado de los datos de vídeo 140, por ejemplo, transmitir VPS 154 fuera de banda, como se describe anteriormente.
[0085] Las descripciones de muestra asociadas con muestras de vídeo en un archivo de vídeo encapsulado pueden incluir un nombre, que puede establecerse en varios valores diferentes. En algunos ejemplos de acuerdo con esta divulgación, el nombre de una descripción de muestra puede indicar la localización de uno o más conjuntos de parámetros, por ejemplo, puede indicar si uno o más conjuntos de parámetros de tipos particulares están almacenados o no en la descripción de muestra. En un ejemplo, las descripciones de muestra pueden incluir un número de ‘hvc1 ’ o ‘hev1’. En un ejemplo, para una secuencia de muestras de vídeo a las que se aplica una descripción de muestra particular, los VPS, SPS y PPS, se almacenan solo en la descripción de muestra cuando el nombre de la descripción de muestra es ‘hvc1 ’, y se almacenan tanto en la descripción de muestra como en las muestras cuando el nombre de la descripción de muestra es ‘hev1’. De esta manera, el nombre de la descripción de muestra, por ejemplo, ‘hvc1 ’ o ‘hev1 ’, indica dónde se almacenan los conjuntos de parámetros en la descripción de muestra o en las muestras.
[0086] El almacenamiento de conjuntos de parámetros en las descripciones de muestra de un flujo de vídeo proporciona una manera simple y estática de suministrar conjuntos de parámetros. El almacenamiento de parámetros en muestras, por otro lado, aunque posiblemente sea más complejo, puede permitir una mayor flexibilidad, por ejemplo, en el caso de actualizaciones de conjuntos de parámetros y en el caso de agregar conjuntos de parámetros adicionales. Un descodificador se inicializa con los conjuntos de parámetros en la descripción de muestra y a continuación se actualiza usando los conjuntos de parámetros a medida que ocurren en el flujo. Dicha actualización puede reemplazar los conjuntos de parámetros con una nueva definición usando el mismo identificador. Cada vez que cambia la descripción de muestra, el descodificador se reinicia con los conjuntos de parámetros incluidos en la descripción de muestra.
[0087] En los ejemplos de implementación anteriores, el indicador allSpsIncluded (o, de forma alternativa, bit), cuando es igual a 1, puede indicar que todos los SPS para el flujo al que se aplica este registro de configuración están incluidos en la descripción de muestra. Cuando el nombre de la descripción de muestra es ‘hvc1’, el indicador allSpsIncluded típicamente se establece en 1. El indicador allPpsIncluded, cuando es igual a 1, también puede indicar que todos los PPS para el flujo al que se aplica este registro de configuración están incluidos en la descripción de muestra. Nuevamente, cuando el nombre de la descripción de muestra es ‘hvc1 ’, el indicador allPpsIncluded también se establece típicamente en 1. El indicador allVpsIncluded, cuando es igual a 1, puede indicar que todos los VPS para el flujo al que se aplica este registro de configuración están incluidos en la descripción de muestra. Cuando el nombre de la descripción de muestra es ‘hvc1 ’, el indicador allVpsIncluded típicamente se establece en 1.
[0088] Como alternativa a tener ambos nombres de descripción de muestra ‘hvc1 ’ y ‘hev1 ’, uno de los dos nombres de descripción de muestra ‘hvc1 ’ y ‘hev1 ’ puede eliminarse como una posibilidad para los nombres de descripción de muestra de modo que el nombre de descripción de muestra restante no indique dónde se almacenan los conjuntos de parámetros. En dicho ejemplo, la localización de los parámetros se puede indicar independientemente del nombre de la descripción de muestra mediante los tres indicadores allSpsIncluded, allPpsIncluded y allVpsIncluded. En consecuencia, en esta alternativa, la semántica de los tres indicadores puede ser la siguiente:
• allSpsIncluded igual a 1 indica que todos los SPS para el flujo al que se aplica este registro de configuración están incluidos en la descripción de muestra independientemente del nombre de la descripción de muestra.
• allPpsIncluded igual a 1 indica que todos los PPS para el flujo al que se aplica este registro de configuración están incluidos en la descripción de muestra independientemente del nombre de la descripción de muestra.
• allVpsIncluded igual a 1 indica que todos los VPS para el flujo al que se aplica este registro de configuración están incluidos en la descripción de muestra independientemente del nombre de la descripción de muestra.
[0089] De forma alternativa (a cualquiera de las alternativas enumeradas anteriormente), algunos aspectos de las técnicas pueden proporcionar que, cuando el indicador allSpsIncluded sea igual a 0, al menos un SPS para el flujo al que se aplica este registro de configuración no se incluye en la descripción de muestra. Del mismo modo, algunos aspectos de las técnicas pueden proporcionar que, cuando el indicador allPpsIncluded sea igual a 0, al menos un PPS para el flujo al que se aplica este registro de configuración no se incluye en la descripción de muestra. Además, algunos aspectos de las técnicas pueden proporcionar que, cuando el indicador allVpsIncluded sea igual a 0, al menos un VPS para el flujo al que se aplica este registro de configuración no se incluye en la descripción de muestra.
[0090] La FIG. 5 es un diagrama de flujo que ilustra un procedimiento ejemplar de almacenamiento de datos de vídeo codificados en un archivo electrónico. El procedimiento de la FIG. 5 incluye determinar si una descripción de muestra asociada con al menos una muestra incluye todos los conjuntos de parámetros de un tipo particular asociado con al menos una muestra (200) y proporcionar, en el archivo electrónico, una indicación que indique si la descripción de muestra incluye todos los conjuntos de parámetros del tipo particular basado en la determinación (202). La al menos una muestra incluye al menos una parte de una pluralidad de secuencias de imágenes de vídeo codificadas en el archivo electrónico. El tipo particular es uno de una pluralidad de diferentes tipos particulares de conjuntos de parámetros. Las funciones del procedimiento ejemplar de la FIG. 5 se describen con más detalle a continuación con referencia al procedimiento ejemplar de la FIG. 6, que ilustra un procedimiento ejemplar para procesar datos de vídeo codificados de acuerdo con esta divulgación.
[0091] La FIG. 6 es un diagrama de flujo que ilustra un procedimiento ejemplar de procesamiento de datos de vídeo codificados. Aunque se describe con respecto a los componentes del dispositivo de origen 20 y el dispositivo de destino 40 (FIG. 1) con fines de ejemplo y explicación, debe entenderse que cualquier dispositivo adecuado puede implementar las técnicas de la FIG. 6.
[0092] Inicialmente, la unidad de encapsulación 30 puede recibir una secuencia de imágenes de vídeo codificadas (210). Un codificador, tal como el codificador de vídeo 28, puede haber incluido conjuntos de parámetros de diferentes tipos con las muestras de vídeo codificadas, que incluyen, por ejemplo, VPS, SPS y PPS. De forma adicional o alternativa, la unidad de encapsulación 30 puede crear conjuntos de parámetros por separado del codificador de vídeo 28. En cualquier caso, la unidad de encapsulación 30 puede separar datos de conjuntos de parámetros de imágenes de vídeo codificadas con las que están asociados los conjuntos de parámetros (212). Por ejemplo, la unidad de extracción de conjuntos de parámetros 64 de la unidad de creación de archivos de vídeo 60 de la unidad de encapsulación 30 puede separar los datos de los conjuntos de parámetros de las imágenes de vídeo codificadas con las que están asociados los conjuntos de parámetros.
[0093] Es decir, la unidad de encapsulación 30 puede crear un archivo de vídeo que incluye conjuntos de parámetros e imágenes de vídeo codificadas con las que están asociados los conjuntos de parámetros (214). Al hacerlo, sin embargo, la unidad de encapsulación 30 puede almacenar uno o más de los conjuntos de parámetros por separado de las imágenes de vídeo codificadas con las que están asociados los conjuntos de parámetros. De esta manera, los conjuntos de parámetros pueden transmitirse y procesarse por separado de las imágenes de vídeo codificadas. Por ejemplo, de acuerdo con las técnicas de esta divulgación, la unidad de encapsulación 30 puede almacenar uno o más conjuntos de parámetros en una pista de conjunto de parámetros del archivo de vídeo creado o de otro archivo separado del archivo de vídeo. En otro ejemplo, la unidad de encapsulación 30 puede almacenar uno o más de los conjuntos de parámetros en una o más descripciones de muestra asociadas con imágenes de vídeo codificadas.
[0094] La unidad de encapsulación 30, por ejemplo, la unidad de creación de descripción de muestra 66 de la unidad de encapsulación 30 se puede configurar para generar una o más descripciones de muestra asociadas con las imágenes de vídeo codificadas incluidas en el archivo de vídeo encapsulado (216). Como parte de este proceso, la unidad de creación de descripción de muestra 66 puede configurarse para determinar la localización de diferentes tipos de conjuntos de parámetros y proporcionar indicaciones en una descripción de muestra con respecto a si todos los conjuntos de parámetros de un tipo particular se almacenan en la descripción de muestra, como se describe anteriormente con referencia a los ejemplos de archivos de vídeo 100 y 140 de las FIGS. 3 y 4, respectivamente.
[0095] La unidad de encapsulación 30 puede generar a continuación el archivo de vídeo (218). Por ejemplo, la unidad de encapsulación 30 puede hacer que el dispositivo de origen 20 escriba el archivo de vídeo en un medio de almacenamiento, tal como, por ejemplo, un disco óptico, un disquete, una unidad flash, un disco duro, una unidad de estado sólido u otro medio de almacenamiento. Dichos medios de almacenamiento pueden transportarse físicamente al dispositivo de destino 40. De forma alternativa, el dispositivo de origen 20 puede transmitir el archivo de vídeo al dispositivo de destino 40, por ejemplo, a través de radiodifusión, transmisión de red u otras técnicas de transmisión. En cualquier caso, el dispositivo de destino 40 puede recibir finalmente el archivo de vídeo (220).
[0096] En algunos ejemplos, el dispositivo de origen 20 puede proporcionar partes distintas del archivo de vídeo al dispositivo de destino 40, por ejemplo, en respuesta a una o más peticiones Get HTTP o Get parcial emitidas por el dispositivo de destino 40 al dispositivo de origen 20. El dispositivo de destino 40 puede emitir una primera petición Get HTTP o Get parcial al dispositivo de origen 20 para recuperar un conjunto de datos de secuencia, por ejemplo, todo o una parte de una pista de conjunto de parámetros que incluye mensajes SEI de nivel de secuencia y una segunda (o más) petición o peticiones Get HTTP o Get parcial para recuperar imágenes de vídeo codificadas descritas por el conjunto de datos de secuencia.
[0097] Después de recibir el archivo de vídeo, el dispositivo de destino 40 puede descodificar el archivo de vídeo basado en los conjuntos de parámetros (222). Es decir, el descodificador de vídeo 48 puede usar datos de los conjuntos de parámetros, que incluyen uno o más VPS, SPS y PPS para ayudar en el proceso de descodificación. En un ejemplo, el descodificador de vídeo 48 analiza las descripciones de muestra asociadas con uno o más conjuntos de imágenes de vídeo codificadas incluidas en el archivo de vídeo recibido desde el dispositivo de origen 20. Por ejemplo, el descodificador de vídeo 48 puede recibir una descripción de muestra que incluye indicadores, por ejemplo, allSpsIncluded, allPpsIncluded y allVpsIncluded, que indican individualmente si se incluyen SPS, PPS y VPS en la descripción de muestra. Dependiendo de las indicaciones proporcionadas en la descripción de muestra, el descodificador de vídeo puede recuperar o de lo contrario hacer referencia a los conjuntos de parámetros para descodificar el vídeo incluido en el archivo de vídeo recibido desde el dispositivo de origen 20.
[0098] En un ejemplo, la unidad de encapsulación 30 del dispositivo de origen 20 almacena todos los VPS en un archivo de parámetros separado del archivo de vídeo y transmite el archivo de parámetros al dispositivo de destino 40 antes de transmitir el archivo de vídeo. El descodificador de vídeo 48 puede hacer referencia a descripciones de muestra, incluyendo la referencia al registro de configuración del descodificador con respecto a diferentes conjuntos de muestras de vídeo y determinar, en base a las indicaciones proporcionadas en el registro de configuración del descodificador, que todos los VPS no están almacenados en la descripción de muestra. En dicho ejemplo, el descodificador de vídeo 48 puede recuperar o de lo contrario hacer referencia a los VPS incluidos en el archivo de parámetros proporcionado por el dispositivo de origen 20 por separado del archivo de vídeo.
[0099] En uno o más ejemplos, las funciones, procedimientos y técnicas descritos en esta divulgación pueden implementarse en hardware, software, firmware o cualquier combinación de los mismos. Si se implementan en software, las funciones se pueden almacenar en, o transmitir por, un medio legible por ordenador, como una o más instrucciones o código, y ejecutar mediante una unidad de procesamiento basada en hardware. Los medios legibles por ordenador pueden incluir medios de almacenamiento legibles por ordenador, que corresponden a un medio tangible tal como unos medios de almacenamiento de datos, o medios de comunicación que incluyen cualquier medio que facilita la transferencia de un programa informático de un lugar a otro, por ejemplo, de acuerdo con un protocolo de comunicación. De esta manera, los medios legibles por ordenador pueden corresponder, en general, a (1) medios de almacenamiento tangibles legibles por ordenador que son no transitorios o (2) un medio de comunicación tal como una señal o una onda portadora. Los medios de almacenamiento de datos pueden ser cualquier medio disponible al que se pueda acceder desde uno o más ordenadores o uno o más procesadores para recuperar instrucciones, código y/o estructuras de datos para la implementación de las técnicas descritas en la presente divulgación. Un producto de programa informático puede incluir un medio legible por ordenador.
[0100] A modo de ejemplo, y no de limitación, dichos medios de almacenamiento legibles por ordenador pueden comprender RAM, ROM, EEPROM, CD-ROM u otro almacenamiento en disco óptico, almacenamiento en disco magnético u otros dispositivos de almacenamiento magnético, memoria flash o cualquier otro medio que se pueda usar para almacenar código de programa deseado en forma de instrucciones o estructuras de datos y al que se pueda acceder mediante un ordenador. Además, cualquier conexión recibe apropiadamente la denominación de medio legible por ordenador. Por ejemplo, si las instrucciones se transmiten desde un sitio web, un servidor u otro origen remoto usando un cable coaxial, un cable de fibra óptica, un par trenzado, una línea de abonado digital (DSL) o unas tecnologías inalámbricas tales como infrarrojos, radio y microondas, entonces el cable coaxial, el cable de fibra óptica, el par trenzado, la DSL o las tecnologías inalámbricas tales como infrarrojos, radio y microondas están incluidos en la definición de medio. Sin embargo, se debe entender que los medios de almacenamiento legibles por ordenador y los medios de almacenamiento de datos no incluyen conexiones, ondas portadoras, señales ni otros medios transitorios, sino que, en cambio, se refieren a medios de almacenamiento tangibles no transitorios. Los discos, como se usan en el presente documento, incluyen el disco compacto (CD), el disco láser, el disco óptico, el disco versátil digital (DVD), el disco flexible y el disco Blu-ray, donde algunos discos reproducen habitualmente los datos magnéticamente, mientras que otros discos reproducen los datos ópticamente con láseres. Las combinaciones de los anteriores también se deben incluir dentro del alcance de los medios legibles por ordenador.
[0101] Uno o más procesadores, tales como uno o más procesadores de señales digitales (DSP), microprocesadores de propósito general, circuitos integrados específicos de la aplicación (ASIC), matrices lógicas programables in situ (FPGA) u otros circuitos lógicos integrados o discretos equivalentes pueden ejecutar las instrucciones. En consecuencia, el término "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 implementación de las técnicas descritas en el presente documento. Además, en algunos aspectos, la funcionalidad descrita en el presente documento se puede proporcionar en módulos de hardware y/o de software dedicados configurados para la codificación y la descodificación, o incorporarse en un códec combinado. Además, las técnicas se podrían implementar por completo en uno o más circuitos o elementos lógicos.
[0102] Las técnicas de esta divulgación se pueden implementar en una amplia variedad de dispositivos o aparatos, incluyendo un teléfono inalámbrico, un circuito integrado (IC) o un conjunto de IC (por ejemplo, un conjunto de chips). En esta divulgación se describen diversos componentes, módulos o unidades para destacar aspectos funcionales de dispositivos configurados para realizar las técnicas divulgadas, pero no se requiere necesariamente su realización por diferentes unidades de hardware. En su lugar, como se ha descrito anteriormente, diversas unidades se pueden combinar en una unidad de hardware de códec o proporcionar mediante un grupo de unidades de hardware interoperativas, incluidos uno o más procesadores como los descritos anteriormente, junto con software y/o firmware adecuado.
[0103] Se han descrito diversos ejemplos. Estos y otros ejemplos están dentro del alcance de las siguientes reivindicaciones.

Claims (11)

  1. REIVINDICACIONES
    i . Un procedimiento para almacenar datos de vídeo codificados que comprende una pluralidad de secuencias de imágenes de vídeo codificadas en un archivo electrónico (100; 140), comprendiendo el procedimiento:
    determinar, para una descripción de muestra (108; 150) que está en una pista de datos de vídeo (104; 144) y asociada con al menos una muestra (110, 111; 152, 153), si la descripción de muestra (108; 150) en la pista de vídeo (104; 144) incluye todos los conjuntos de parámetros de un primer tipo particular asociado con la al menos una muestra (110, 111; 152, 153), en el que la al menos una muestra (110, 111; 152, 153) comprende al menos una parte de la pluralidad de secuencias de imágenes de vídeo codificadas, y en el que el primer tipo particular es uno de una pluralidad de diferentes tipos particulares de conjuntos de parámetros;
    proporcionar, en el archivo electrónico (100; 140), un primer indicador de un bit que tiene un primer valor que indica que la descripción de muestra (108; 150) incluye todos los conjuntos de parámetros del primer tipo particular o un segundo valor que indica que al menos un conjunto de parámetros del primer tipo particular se incluye en una pista de conjuntos de parámetros, basándose el valor en la determinación de si la descripción de muestra (108; 150) en la pista de vídeo (104; 144) incluye todos los conjuntos de parámetros del primer tipo particular;
    determinar, para la descripción de muestra (108; 150), si la descripción de muestra (108; 150) en la pista de vídeo (104; 144) incluye todos los conjuntos de parámetros de un segundo tipo particular asociado con la al menos una muestra (110, 111; 152, 153), y en el que el segundo tipo particular es uno de una pluralidad de diferentes tipos particulares de conjuntos de parámetros diferentes del primer tipo particular; y,
    proporcionar, en el archivo electrónico (100; 140), un segundo indicador de un bit que tiene un primer valor que indica que la descripción de muestra (108; 150) incluye todos los conjuntos de parámetros del segundo tipo particular o un segundo valor que indica que al menos un conjunto de parámetros del segundo tipo particular se incluye en una pista de conjuntos de parámetros, basándose el valor en la determinación de si la descripción de muestra (108; 150) en la pista de vídeo (104; 144) incluye todos los conjuntos de parámetros del segundo tipo particular,
    en el que si la descripción de muestra (108; 150) incluye todos los conjuntos de parámetros del segundo tipo particular es independiente de si la descripción de muestra (108; 150) incluye todos los conjuntos de parámetros del primer tipo particular.
  2. 2. El procedimiento de la reivindicación 1, en el que el primer tipo particular de conjuntos de parámetros comprende uno de conjuntos de parámetros de secuencia (SPS), conjuntos de parámetros de imagen (PPS) y conjuntos de parámetros de vídeo (VPS), y en el que el segundo tipo particular de conjuntos de parámetros comprende uno otro de conjuntos de parámetros de secuencia (SPS), conjuntos de parámetros de imagen (PPS) y conjuntos de parámetros de vídeo (VPS), diferentes del primer tipo particular de conjunto de parámetros.
  3. 3. El procedimiento de la reivindicación 1, que comprende además asociar, en el archivo electrónico (100; 140), un nombre con la descripción de muestra (108; 150), en el que el nombre no indica si la descripción de muestra (108; 150) incluye todos los conjuntos de parámetros de un tipo particular.
  4. 4. El procedimiento de la reivindicación 1, en el que proporcionar, en el archivo electrónico (100; 140), una indicación que indica si la descripción de muestra (108; 150) incluye todos los conjuntos de parámetros del tipo particular comprende proporcionar, en el archivo electrónico (100; 140), una indicación que indica que la descripción de muestra (108; 150) no incluye todos los conjuntos de parámetros de un tipo particular en base a la determinación.
  5. 5. El procedimiento de la reivindicación 1, en el que proporcionar, en el archivo electrónico (100; 140), una indicación que indica si la descripción de muestra (108; 150) incluye todos los conjuntos de parámetros del tipo particular comprende proporcionar, en el archivo electrónico (100; 140), una indicación que indica que la descripción de muestra (108; 150) sí incluye todos los conjuntos de parámetros de un tipo particular en base a la determinación.
  6. 6. El procedimiento de la reivindicación 1, en el que proporcionar, en el archivo electrónico (100; 140), una indicación que indica si la descripción de muestra (108; 150) incluye todos los conjuntos de parámetros de un tipo particular comprende proporcionar, en el archivo electrónico (100; 140), una indicación que indica si un registro de configuración del descodificador de la descripción de muestra (108; 150) incluye todos los conjuntos de parámetros del tipo particular en base a la determinación.
  7. 7. El procedimiento de la reivindicación 1,
    en el que la primera indicación indica que la descripción de muestra (108; 150) no incluye todos los conjuntos de parámetros del primer tipo en base a la determinación, y
    en el que la segunda indicación indica que la descripción de muestra (108; 150) sí incluye todos los conjuntos de parámetros del segundo tipo en base a la determinación.
  8. 8. Un procedimiento para procesar datos de vídeo codificados que comprende una pluralidad de secuencias de imágenes de vídeo codificadas almacenadas en un archivo electrónico (100; 140), comprendiendo el procedimiento:
    recibir un primer indicador de un bit en el archivo (100; 140), en el que cuando el indicador tiene un primer valor, el indicador indica, para una descripción de muestra (108; 150) que está en una pista de datos de vídeo (104; 144) y asociado con al menos una muestra (110, 111; 152, 153), que la descripción de muestra (108; 150) en la pista de vídeo (104; 144) incluye todos los conjuntos de parámetros de un primer tipo particular asociado con la al menos una muestra (110, 111; 152, 153), en el que cuando el indicador tiene un segundo valor, el indicador indica que al menos un conjunto de parámetros del primer tipo particular se incluye en una pista de conjuntos de parámetros, en el que la al menos una muestra (110, 111; 152, 153) comprende al menos una parte de la pluralidad de secuencias de imágenes de vídeo codificadas, y en el que el primer tipo particular es uno de una pluralidad de diferentes tipos particulares de conjuntos de parámetros;
    determinar si todos los conjuntos de parámetros del primer tipo particular se almacenan en la descripción de muestra (108; 150) basado en el primer indicador de un bit;
    recibir un segundo indicador de un bit en el archivo (100; 140), en el que cuando el indicador tiene un primer valor, el indicador indica, para la descripción de muestra (108; 150), que la descripción de muestra (108; 150) en la pista de vídeo (104; 144) incluye todos los conjuntos de parámetros de un segundo tipo particular asociado con la al menos una muestra (110, 111; 152, 153), en el que cuando el indicador tiene un segundo valor, el indicador indica que al menos un conjunto de parámetros del primer tipo particular se incluye en una pista de conjuntos de parámetros, y en el que el segundo tipo particular es uno de una pluralidad de diferentes tipos particulares de conjuntos de parámetros diferentes del primer tipo particular;
    determinar si todos los conjuntos de parámetros del segundo tipo particular se almacenan en la descripción de muestra (108; 150) basado en el segundo indicador de un bit, en el que si la descripción de muestra (108; 150) incluye todos los conjuntos de parámetros del segundo tipo particular es independiente de si la descripción de muestra (108; 150) incluye todos los conjuntos de parámetros del primer tipo particular; y
    procesar los datos de vídeo codificados basados al menos en parte en la determinación de si todos los conjuntos de parámetros del primer tipo particular y todos los conjuntos de parámetros del segundo tipo particular se almacenan en la descripción de muestra (108; 150).
  9. 9. Un medio de almacenamiento legible por ordenador que tiene almacenadas en el mismo instrucciones que, cuando se ejecutan, hacen que uno o más procesadores realicen operaciones de acuerdo con el procedimiento de una cualquiera de las reivindicaciones precedentes.
  10. 10. Un aparato para almacenar datos de vídeo codificados que comprende una pluralidad de secuencias de imágenes de vídeo codificadas en un archivo electrónico (100; 140), comprendiendo el aparato:
    medios para determinar, para una descripción de muestra (108; 150) que está en una pista de datos de vídeo (104; 144) y asociada con al menos una muestra (110, 111; 152, 153), si la descripción de muestra (108; 150) en la pista de vídeo (104; 144) incluye todos los conjuntos de parámetros de un primer tipo particular asociado con la al menos una muestra (110, 111; 152, 153), en el que la al menos una muestra (110, 111; 152, 153) comprende al menos una parte de la pluralidad de secuencias de imágenes de vídeo codificadas, y en el que el primer tipo particular es uno de una pluralidad de diferentes tipos particulares de conjuntos de parámetros; y
    medios para proporcionar, en el archivo electrónico (100; 140), un primer indicador de un bit que tiene un primer valor que indica que la descripción de muestra (108; 150) incluye todos los conjuntos de parámetros del primer tipo particular o un segundo valor que indica que al menos un conjunto de parámetros del primer tipo particular se incluye en una pista de conjuntos de parámetros, basándose el valor en la determinación de si la descripción de muestra (108; 150) en la pista de vídeo (104; 144) incluye todos los conjuntos de parámetros del primer tipo particular;
    medios para determinar, para la descripción de muestra (108; 150), si la descripción de muestra (108; 150) en la pista de vídeo (104; 144) incluye todos los conjuntos de parámetros de un segundo tipo particular asociado con la al menos una muestra (110, 111; 152, 153), y en el que el segundo tipo particular es uno de una pluralidad de diferentes tipos particulares de conjuntos de parámetros diferentes del primer tipo particular; y,
    medios para proporcionar, en el archivo electrónico (100; 140), un segundo indicador de un bit que tiene un primer valor que indica que la descripción de muestra (108; 150) incluye todos los conjuntos de parámetros del segundo tipo particular o un segundo valor que indica que al menos un conjunto de parámetros del segundo tipo particular se incluye en una pista de conjuntos de parámetros, basándose el valor en la determinación de si la descripción de muestra (108; 150) en la pista de vídeo (104; 144) incluye todos los conjuntos de parámetros del segundo tipo particular,
    en el que si la descripción de muestra (108; 150) incluye todos los conjuntos de parámetros del segundo tipo particular es independiente de si la descripción de muestra (108; 150) incluye todos los conjuntos de parámetros del primer tipo particular.
  11. 11. Un aparato para procesar datos de vídeo codificados que comprende una pluralidad de secuencias de imágenes de vídeo codificadas almacenadas en un archivo electrónico (100; 140), comprendiendo el aparato:
    medios para recibir un primer indicador de un bit en el archivo (100; 140), en el que cuando el indicador tiene un primer valor, el indicador indica, para una descripción de muestra (108; 150) que está en una pista de datos de vídeo (104; 144) y asociado con al menos una muestra (110, 111; 152, 153), que la descripción de muestra (108; 150) en la pista de vídeo (104; 144) incluye todos los conjuntos de parámetros de un primer tipo particular asociado con la al menos una muestra (110, 111; 152, 153), en el que cuando el indicador tiene un segundo valor, el indicador indica que al menos un conjunto de parámetros del primer tipo particular se incluye en una pista de conjuntos de parámetros, en el que la al menos una muestra (110, 111; 152, 153) comprende al menos una parte de la pluralidad de secuencias de imágenes de vídeo codificadas, y en el que el primer tipo particular es uno de una pluralidad de diferentes tipos particulares de conjuntos de parámetros;
    medios para determinar si todos los conjuntos de parámetros del primer tipo particular se almacenan en la descripción de muestra (108; 150) basado en la primera indicación;
    medios para recibir un segundo indicador de un bit en el archivo (100; 140), en el que cuando el indicador tiene un primer valor, el indicador indica, para la descripción de muestra (108; 150), que la descripción de muestra (108; 150) en la pista de vídeo (104; 144) incluye todos los conjuntos de parámetros de un segundo tipo particular asociado con la al menos una muestra (110, 111; 152, 153), en el que cuando el indicador tiene un segundo valor, el indicador indica que al menos un conjunto de parámetros del primer tipo particular se incluye en una pista de conjuntos de parámetros, y en el que el segundo tipo particular es uno de una pluralidad de diferentes tipos particulares de conjuntos de parámetros diferentes del primer tipo particular;
    medios para determinar si todos los conjuntos de parámetros del segundo tipo particular se almacenan en la descripción de muestra (108; 150) basado en la segunda primera indicación, en el que si la descripción de muestra (108; 150) incluye todos los conjuntos de parámetros del segundo tipo particular es independiente de si la descripción de muestra (108; 150) incluye todos los conjuntos de parámetros del primer tipo particular; y
    medios para procesar los datos de vídeo codificados basados al menos en parte en la determinación de si todos los conjuntos de parámetros del primer tipo particular y todos los conjuntos de parámetros del segundo tipo particular se almacenan en la descripción de muestra (108; 150).
ES13717366T 2012-04-25 2013-03-26 Identificación de conjuntos de parámetros en archivos de vídeo Active ES2784613T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201261638393P 2012-04-25 2012-04-25
US13/748,291 US9161004B2 (en) 2012-04-25 2013-01-23 Identifying parameter sets in video files
PCT/US2013/033826 WO2013162808A1 (en) 2012-04-25 2013-03-26 Identifying parameter sets in video files

Publications (1)

Publication Number Publication Date
ES2784613T3 true ES2784613T3 (es) 2020-09-29

Family

ID=49477363

Family Applications (1)

Application Number Title Priority Date Filing Date
ES13717366T Active ES2784613T3 (es) 2012-04-25 2013-03-26 Identificación de conjuntos de parámetros en archivos de vídeo

Country Status (9)

Country Link
US (1) US9161004B2 (es)
EP (1) EP2842059B1 (es)
JP (1) JP6042531B2 (es)
KR (1) KR101676553B1 (es)
CN (1) CN104246773B (es)
BR (1) BR112014026747B1 (es)
ES (1) ES2784613T3 (es)
HU (1) HUE047509T2 (es)
WO (1) WO2013162808A1 (es)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130279882A1 (en) 2012-04-23 2013-10-24 Apple Inc. Coding of Video and Audio with Initialization Fragments
US9819944B2 (en) * 2013-04-12 2017-11-14 Samsung Electronics Co., Ltd. Multi-layer video coding method for random access and device therefor, and multi-layer video decoding method for random access and device therefor
US10148969B2 (en) * 2015-02-11 2018-12-04 Qualcomm Incorporated Of sample entry and operation point signalling in a layered video file format
US11418812B2 (en) * 2015-02-11 2022-08-16 Qualcomm Incorporated Placement of parameter sets and sync samples in video coding
GB2539462B (en) * 2015-06-16 2019-04-03 Canon Kk Obtaining media data and metadata from encapsulated bit-streams wherein operating point descriptors can be dynamically set
US10652631B2 (en) * 2016-05-24 2020-05-12 Qualcomm Incorporated Sample entries and random access
US9872062B1 (en) * 2017-02-22 2018-01-16 Wyse Technology L.L.C. Enforcing synchronization by embedding audio within video frame data
US11356698B2 (en) * 2019-12-30 2022-06-07 Tencent America LLC Method for parameter set reference constraints in coded video stream
US11716474B2 (en) * 2020-01-02 2023-08-01 Samsung Electronics Co., Ltd. Storage of EVC decoder configuration information
US20220086497A1 (en) * 2020-09-17 2022-03-17 Lemon Inc. Subpicture entity group signaling in coded video
KR20230122106A (ko) * 2020-12-21 2023-08-22 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 코딩된 비디오 시퀀스들에 대해 파라미터 세트들을사용하는 파일 파서, 파일 생성기, 인코더, 디코더, 클라이언트, 서버, 및 방법들
WO2024072750A1 (en) * 2022-09-27 2024-04-04 Bytedance Inc. Enhanced signalling of lost or corrupted samples in a media file

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003098475A1 (en) * 2002-04-29 2003-11-27 Sony Electronics, Inc. Supporting advanced coding formats in media files
US20040006575A1 (en) * 2002-04-29 2004-01-08 Visharam Mohammed Zubair Method and apparatus for supporting advanced coding formats in media files
US7724818B2 (en) * 2003-04-30 2010-05-25 Nokia Corporation Method for coding sequences of pictures
EP1704720A1 (en) 2004-01-16 2006-09-27 General Instrument Corporation Method, protocol, and apparatus for transporting advanced video coding content
US9560367B2 (en) * 2004-09-03 2017-01-31 Nokia Technologies Oy Parameter set and picture header in video coding
CN101057215B (zh) 2004-11-16 2012-08-22 汤姆森特许公司 用于在视频***中使用的伪随机数发生器的比特精确的种子初始化
JP2006203662A (ja) 2005-01-21 2006-08-03 Toshiba Corp 動画像符号化装置・復号化装置及び符号化ストリーム生成方法
WO2006109117A1 (en) * 2005-04-13 2006-10-19 Nokia Corporation Method, device and system for effectively coding and decoding of video data
EP1880549A4 (en) 2005-05-12 2011-03-30 Kylintv Inc INTERNET PROTOCOL TELEVISION
US7725593B2 (en) * 2005-07-15 2010-05-25 Sony Corporation Scalable video coding (SVC) file format
CN101313578B (zh) 2005-09-26 2011-10-19 韩国电子通信研究院 用于在可伸缩视频编码中定义和重构感兴趣区域的方法和装置
US8520733B2 (en) 2006-06-30 2013-08-27 Core Wireless Licensing S.A.R.L Video coding
CN101518086B (zh) * 2006-07-20 2013-10-30 汤姆森特许公司 在多视图视频编码中用信号通知视图可分级性的方法和装置
RU2492585C2 (ru) 2008-07-16 2013-09-10 Нокиа Корпорейшн Способ и устройство для группирования треков и подмножеств треков
US8514931B2 (en) 2009-03-20 2013-08-20 Ecole Polytechnique Federale De Lausanne (Epfl) Method of providing scalable video coding (SVC) video content with added media content
BR112012011581A2 (pt) 2009-11-04 2017-09-19 Huawei Tech Co Ltd sistema e método para streaming de conteúdo de mídia
US8918533B2 (en) * 2010-07-13 2014-12-23 Qualcomm Incorporated Video switching for streaming video data
US9131033B2 (en) * 2010-07-20 2015-09-08 Qualcomm Incoporated Providing sequence data sets for streaming video data
US9215473B2 (en) 2011-01-26 2015-12-15 Qualcomm Incorporated Sub-slices in video coding

Also Published As

Publication number Publication date
US9161004B2 (en) 2015-10-13
WO2013162808A1 (en) 2013-10-31
US20130287366A1 (en) 2013-10-31
EP2842059B1 (en) 2020-01-15
CN104246773B (zh) 2018-09-14
KR101676553B1 (ko) 2016-11-15
BR112014026747B1 (pt) 2021-10-13
CN104246773A (zh) 2014-12-24
JP6042531B2 (ja) 2016-12-14
KR20150006449A (ko) 2015-01-16
HUE047509T2 (hu) 2020-04-28
BR112014026747A2 (pt) 2017-06-27
JP2015519807A (ja) 2015-07-09
EP2842059A1 (en) 2015-03-04

Similar Documents

Publication Publication Date Title
ES2784613T3 (es) Identificación de conjuntos de parámetros en archivos de vídeo
US10389999B2 (en) Storage of virtual reality video in media files
US10405063B2 (en) Method, device, and computer program for encapsulating partitioned timed media data
ES2796535T3 (es) Proporcionar conjuntos de datos de secuencia para la transmisión continua de datos de vídeo
KR102185811B1 (ko) 컨테이너 파일들 및 비디오 비트스트림들의 관심 영역들의 강화된 시그널링
ES2898452T3 (es) Señalización de la resolución espacial de las vistas de profundidad en el formato de archivo de codificación de múltiples vistas
ES2813908T3 (es) Alineación del grupo de muestras de punto de funcionamiento en formato de archivo de flujos de bits multicapa
ES2903112T3 (es) Atributos de señalización para datos de vídeo transmitidos por red
ES2854877T3 (es) Formato de archivo para datos de vídeo
US20180277164A1 (en) Signalling of video content including sub-picture bitstreams for video coding
KR20190061002A (ko) 360 도 비디오 데이터를 프로세싱하기 위한 방법 및 시스템
US20180276890A1 (en) Advanced signalling of regions of interest in omnidirectional visual media
BR112019010875A2 (pt) sistemas e métodos de sinalização de regiões de interesse
US11638066B2 (en) Method, device and computer program for encapsulating media data into a media file
ES2843782T3 (es) Diseño de esquema restringido mejorado para vídeo
BR112013001337B1 (pt) Disposição de fragmentos de sub-trilha para transmissão contínua de dados de vídeo
ES2711892T3 (es) Señalización de puntos de operación para el transporte de extensiones de la HEVC