ES2692190T3 - Procedimiento de codificación de vídeo y almacenamiento de contenido de vídeo - Google Patents

Procedimiento de codificación de vídeo y almacenamiento de contenido de vídeo Download PDF

Info

Publication number
ES2692190T3
ES2692190T3 ES13705054.8T ES13705054T ES2692190T3 ES 2692190 T3 ES2692190 T3 ES 2692190T3 ES 13705054 T ES13705054 T ES 13705054T ES 2692190 T3 ES2692190 T3 ES 2692190T3
Authority
ES
Spain
Prior art keywords
video
parameter sets
file
sample
encapsulating
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
ES13705054.8T
Other languages
English (en)
Inventor
Ye-Kui Wang
Ying Chen
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 ES2692190T3 publication Critical patent/ES2692190T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Television Signal Processing For Recording (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)

Abstract

Un procedimiento para generar un archivo de vídeo HEVC que incluye contenido codificado de vídeo, el procedimiento que comprende: obtener (702) una pluralidad de fragmentos de contenido de vídeo codificado; obtener (704) una primera pluralidad de conjuntos de parámetros de un primer tipo asociado con la pluralidad de fragmentos de contenido de vídeo y una segunda pluralidad de conjuntos de parámetros de un segundo tipo asociado con la pluralidad de fragmentos de contenido de vídeo; encapsular (706) la pluralidad de fragmentos de contenido de vídeo codificado dentro de una pluralidad de unidades de acceso de un flujo de vídeo; encapsular (708) la pluralidad de unidades de acceso dentro de una pluralidad de muestras en una pista 15 de archivo; encapsular la primera pluralidad de conjuntos de parámetros; y encapsular la segunda pluralidad de conjuntos de parámetros; caracterizado por encapsular la primera pluralidad de conjuntos de parámetros dentro de la pluralidad de muestras y encapsular (710) la segunda pluralidad de conjuntos de parámetros dentro de una descripción de la muestra de la pista de archivo para soportar la transmisión en banda de la primera pluralidad de conjuntos de parámetros mientras se admite la transmisión fuera de banda de la segunda pluralidad de conjuntos de parámetros.

Description

5
10
15
20
25
30
35
40
45
50
55
60
65
DESCRIPCION
Procedimiento de codificacion de video y almacenamiento de contenido de video SOLICITUDES RELACIONADAS CAMPO TECNICO
[1] Esta divulgacion se refiere a la codificacion de video y al almacenamiento de contenido de video y, mas particularmente, a tecnicas para encapsular conjuntos de parametros y otros parametros dentro de un archivo de video.
ANTECEDENTES
[2] Las capacidades del video digital pueden incorporarse en una amplia gama de dispositivos, incluyendo televisores digitales, sistemas de radiodifusion directa digital, sistemas de radiodifusion inalambrica, asistentes digitales personales (PDA), ordenadores portatiles o de escritorio, ordenadores tipo tableta, lectores de libros electronicos, camaras digitales, dispositivos de grabacion digital, reproductores de medios digitales, dispositivos de videojuegos, consolas de videojuegos, telefonos celulares o de radio por satelite, los denominados "telefonos inteligentes", dispositivos de videoconferencia, dispositivos de transmision continua de video y similares. Los dispositivos de video digitales implementan tecnicas de compresion de video, tales como las descritas en las normas definidas por MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Parte 10, Codificacion Avanzada de Video (AVC), la norma de Codificacion de Video de Alta Eficiencia (HEVC) actualmente en desarrollo y las ampliaciones de dichas normas. Los dispositivos de video pueden transmitir, recibir, codificar, descodificar y/o almacenar informacion de video digital mas eficazmente, implementando dichas tecnicas de compresion de video.
[3] Las tecnicas de compresion de video realizan la prediccion espacial (intraimagen) y/o la prediccion temporal (entre imagenes) para reducir o eliminar la redundancia intrfnseca en las secuencias de video. Para la codificacion de video basada en bloques, un fragmento de video (es decir, una trama de video o una porcion de una trama de video) puede dividirse en bloques de video, que tambien pueden denominarse bloques de arbol, unidades de arbol de codificacion (CTU), bloques de arbol de codificacion (CTB), unidades de codificacion (CU) y/o nodos de codificacion. Los bloques de video en un fragmento intracodificado (I) de una imagen se codifican mediante prediccion espacial con respecto a muestras de referencia en bloques contiguos de la misma imagen. Los bloques de video en un fragmento intercodificado (P o B) de una imagen pueden usar la prediccion espacial con respecto a muestras de referencia en bloques contiguos de la misma imagen, o la prediccion temporal con respecto a muestras de referencia en otras imagenes de referencia. Las imagenes pueden denominarse tramas, y las imagenes de referencia pueden denominarse tramas de referencia.
[4] La prediccion espacial o temporal da como resultado un bloque predictivo para un bloque a codificar. Los datos residuales representan diferencias de pfxeles entre el bloque original a codificar y el bloque predictivo. Un bloque intercodificado se codifica de acuerdo con un vector de movimiento que apunta a un bloque de muestras de referencia que forman el bloque predictivo, y los datos residuales que indican la diferencia entre el bloque codificado y el bloque predictivo. Un bloque intracodificado se codifica de acuerdo con un modo de intracodificacion y los datos residuales. Para una mayor compresion, los datos residuales pueden transformarse desde el dominio de los pfxeles al dominio de las transformadas, dando como resultado unos coeficientes de transformada residuales, que posteriormente se pueden cuantificar. Los coeficientes de transformada cuantificados, dispuestos inicialmente en una matriz bidimensional, pueden explorarse con el fin de generar un vector unidimensional de coeficientes de transformada, y puede aplicarse la codificacion por entropfa para lograr aun mas compresion.
[5] ISO/IEC 14496-15: 2010 "Information Technology - Coding of Audio-visual Objects - Part 15: Advanced Video Coding (AVC) File Format [Tecnologfa de la informacion - Codificacion de objetos audiovisuales" - Parte 15: Formato de archivo de Codificacion Avanzada de Video (AVC)]", ISO/IEC JTC1/SC29/WG11, 22 de enero de 2010 describe el formato de archivo AVC.
[6] El artfculo "High-Level Syntax for Bitstream Extraction [Sintaxis de alto nivel para la extraccion de flujos de bits]" de Sjoberg y otros, JCTVC-G607, 8 de noviembre de 2011, describe los cambios en la cabecera de la unidad NAL y SPS.
SUMARIO
[7] La invencion se define en las reivindicaciones a las que esta dirigida ahora la referencia. Esta divulgacion se refiere a diversas tecnicas para almacenar datos de video. En particular, esta divulgacion describe una tecnica para encapsular conjuntos de parametros y otros parametros dentro de un archivo de video.
[8] Los detalles de uno o mas ejemplos se exponen en los dibujos adjuntos y en la siguiente descripcion. Otras caracterfsticas, objetivos y ventajas resultaran evidentes a partir de la descripcion y de los dibujos, y a partir de las
5
10
15
20
25
30
35
40
45
50
55
60
65
reivindicaciones.
BREVE DESCRIPCION DE LOS DIBUJOS
[9]
La FIG. 1 es un diagrama conceptual que ilustra la estructura de un archivo multimedia de ejemplo que puede generarse de acuerdo con las tecnicas descritas en esta divulgacion.
La FIG. 2 ilustra un ejemplo de una unidad de acceso HEVC que puede incluirse en un archivo multimedia generado de acuerdo con las tecnicas descritas en esta divulgacion.
La FIG. 3 es un diagrama de bloques que ilustra un sistema de codificacion y descodificacion de video de ejemplo que puede utilizar las tecnicas descritas en esta divulgacion.
La FIG. 4 es un diagrama de bloques que ilustra un ejemplo de un codificador de video.
La FIG. 5 es un diagrama de bloques que ilustra un ejemplo de un modulo de encapsulacion que puede implementar las tecnicas descritas en esta divulgacion.
La FIG. 6 es un diagrama conceptual que ilustra la estructura de un archivo multimedia de ejemplo que puede generarse de acuerdo con las tecnicas descritas en esta divulgacion.
La FIG. 7 es un diagrama de flujo que ilustra un ejemplo de generacion de un archivo de video que incluye contenido de video codificado de acuerdo con las tecnicas de esta divulgacion.
DESCRIPCION DETALLADA
[10] En general, esta divulgacion se refiere a la codificacion de video y al almacenamiento de contenido de video codificado en un archivo. Esta divulgacion describe diversas tecnicas para almacenar contenido de video que incluyen, por ejemplo, almacenar contenido de video codificado de acuerdo con la norma de video HEVC en un archivo basado en un formato de archivo multimedia basado en ISO (ISOBMFF). En particular, esta divulgacion describe tecnicas para encapsular conjuntos de parametros de secuencia (SPS), conjuntos de parametros de imagen (PPS) y conjuntos de parametros adaptativos (APS) incluidos en el contenido de video HEVC en un archivo multimedia. En el caso en que todos los conjuntos de parametros puedan conocerse al comienzo del archivo y ninguno necesite actualizacion (es decir, en algunos casos los conjuntos de parametros con el mismo ID de conjunto de parametros se actualizan para incluir contenido diferente), los conjuntos de parametros pueden incluirse en la descripcion de la muestra, lo que permite la transmision de parametros fuera de banda. En el caso en que no se puedan conocer todos los conjuntos de parametros al comienzo del archivo, o al menos uno necesite ser actualizado, los conjuntos de parametros pueden incluirse en las muestras del flujo, o de forma alternativa, el flujo se puede dividir en multiples subflujos, para cada uno de los cuales los conjuntos de parametros se pueden incluir en una descripcion de la muestra correspondiente. Al permitir que los conjuntos de parametros se incluyan en la descripcion de la muestra o en las muestras del flujo a las que se aplica la descripcion de la muestra, no se necesitan pistas adicionales para almacenar solo los conjuntos de parametros, y un modulo de creacion de archivos de video puede negociar entre el numero de descripciones de la muestra con la posibilidad de transmision del conjunto de parametros fuera de banda.
[11] Entre las normas de codificacion de video se incluyen ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 o ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual e ITU-T H.264 (tambien conocida como ISO/IEC MPEG-4 AVC), incluyendo sus ampliaciones de codificacion de video ajustable a escala (SVC) y de codificacion de video multivista (MVC). Ademas, existe una nueva norma de codificacion de video, concretamente la Codificacion de Video de Alta Eficiencia (HEVC) que esta siendo desarrollada por el Equipo de Colaboracion Conjunta en Codificacion de Video (JCT-VC) del Grupo de Expertos en Codificacion de Video (VCEG) de ITU-T y el Grupo de Expertos en Imagenes en Movimiento (MPEG) de ISO/IEC. Un borrador de trabajo reciente (WD) de la norma HEVC, denominado "HEVC Working Draft 5 [Borrador de trabajo de HEVC 5]" o "WD5", se describe en el documento JCTVC-G1103 de Bross y otros, titulado "WD5: Working Draft 5 of High-Efficiency Video Coding (HEVC) [WD5: Borrador de trabajo 5 de Codificacion de Video de Alta Eficiencia (HEVC)]" Equipo de Colaboracion Conjunta en Codificacion de Video (JCT-VC) de ITU-T SG16 WP3 e ISO/IEC JTC1/SC29/WG11, septima reunion: Ginebra, CH, noviembre de 2012. Ademas, otro borrador de trabajo reciente de la norma HEVC, Borrador de trabajo 7, se describe en el documento HCTVC-HCTVC-11003, de Bross y otros, titulado "High Efficiency Video Coding (HEVC) Text Specification Draft 7 [Codificacion de Video de Alta Eficiencia (HEVC)] Borrador de trabajo 7" Equipo de Colaboracion Conjunta en Codificacion de Video (JCT-VC) de ITU-T SG16 WP3 e ISO/IEC JTC1/SC29/WG11, novena reunion: Ginebra, Suiza, 27 de abril de 2012 al 7 de mayo de 2012. La norma HEVC tambien puede denominarse ISO/IEC 23008-HEVC, que se pretende que sea el numero de la norma para la version publicada de HEVC.
5
10
15
20
25
30
35
40
45
50
55
60
65
[12] Para almacenar contenido de video codificado de acuerdo con una norma de video particular, se necesita una especificacion de formato de archivo correspondiente a la norma de video particular. El ultimo borrador del formato de archivo HEVC utiliza ISOBMFF como base para su formato de encapsulacion. El ultimo borrador del formato de archivo HEVC, denominado en el presente documento HEVCFF, se define segun ISO/IEC 14496-15: 2010/Amd.1:2011(E) e incluye las siguientes referencias normativas:
(1) ISO/IEC 14496-1:2001, Tecnologfa de la informacion - Codificacion de objetos audiovisuales - Parte 1:
Sistemas;
(2) ISO/IEC 23008-HEVC; y
(3) ISO/IEC 14496-12, Tecnologfa de la informacion - Codificacion de objetos audiovisuales - Parte 12: formato
de archivo multimedia basado en ISO (es decir, ISOBMFF)
cada uno de los cuales son incorporados por referencia en su totalidad.
[13] Cabe senalar que ISO/IEC 14496-12 es tecnicamente identica a ISO / IEC 15444-12. El ISOBMFF se utiliza como base para muchos formatos de encapsulacion de la norma de codificacion de video, asf como para muchos formatos de contenedor multimedia. Ejemplos de otros formatos de archivo basados en ISOBMFF, incluyen, por ejemplo, el formato de archivo MPEG-4 (ISO/IEC 14496-14), el formato de archivo 3GPP (3GPP TS 26.244) y el formato de archivo AVC (ISO/IEC 14496-15) (es decir, AVCFF). Ademas, debe observarse que aunque las tecnicas divulgadas en el presente documento se describen en algunos ejemplos con respecto a HEVC y pueden hacer referencia a formatos de archivo particulares, pueden ser igualmente aplicables a otras normas de codificacion de video y formatos de archivo.
[14] Los archivos estructurados de acuerdo con ISOBMFF se pueden usar para muchos fines, incluida la reproduccion local de archivos multimedia, la descarga progresiva de un archivo remoto, segmentos para la transmision en tiempo real adaptativa dinamica sobre HTTP (DASH), contenedores para transmitir contenido y sus instrucciones de empaquetado y grabacion de flujos de medios recibidos en tiempo real. En general, ISOBMFF permite que los datos multimedia continuos, como los datos de audio y video, se almacenen independientemente de los metadatos. En un ejemplo, los datos multimedia pueden incluir un grupo de imagenes codificadas de acuerdo con HEVC. Los metadatos incluyen tfpicamente informacion de presentacion y temporizacion de modo que porciones de datos de medios se pueden descodificar independientemente.
[15] ISOBMFF usa un esquema orientado a objetos en el cual elementos sintacticos elementales se usan como bloques de construccion para formar un archivo multimedia. En ISOBMFF estos elementos sintacticos elementales se conocen como "cajas". Sin embargo, los formatos de archivo especfficos basados en ISOBMFF pueden referirse a cajas que usan terminologfa diferente, como "atomos". Ademas, debe observarse que, cuando se describen formatos de archivos especfficos basados en ISOBMFF, la terminologfa especffica a menudo se puede usar indistintamente con la terminologfa ISOBMFF de una manera no limitativa. Por ejemplo, cuando se describe HEVCFF, el termino "unidad de acceso" puede corresponderse con el termino "muestra" en el ISOBMFF y una unidad de acceso puede describirse usando cualquiera de los terminos. En ISOBMFF, una caja incluye un tipo de cuatro caracteres, el recuento de bytes de la caja y la carga util. El tipo de caja define la relacion logica entre una caja en particular y otros tipos de cajas. El tipo de caja tambien puede describir que datos son obligatorios para el tipo de caja particular y que datos son opcionales para el tipo de caja particular. Una caja puede ser parte de una secuencia o grupo de cajas y puede contener otras cajas, que pueden denominarse subcajas.
[16] En ISOBMFF, una caja de pelfcula ("moov") contiene los metadatos de los flujos continuos de medios presentes en el archivo. Los metadatos para los flujos de medios continuos presentes en el archivo se pueden encerrar en cajas adicionales en la caja de pelfcula. Los flujos de medios continuos se pueden representar en un archivo ISOMBFF como una pista, donde una pista es una estructura logica que hace referencia a metadatos que pueden estar encerrados dentro de la caja de pelfcula y en la que el flujo de medios consiste en una secuencia de muestras. En ISOBMFF, un flujo de medios puede incluirse dentro de cajas, como una caja de Datos de medios ("mdat") y subcajas de las mismas. Ademas, en algunos ejemplos, un flujo de medios puede almacenarse directamente en un archivo ISOBMFF. El contenido multimedia de una pista consiste en una secuencia de muestras, como unidades de acceso de video. Una secuencia de muestras se puede referir como un flujo. El ISOBMFF especifica una pista de medios que contiene un flujo de medios elemental. Los metadatos para cada pista incluyen una lista de entradas de descripcion de la muestra, cada una de las cuales proporciona el formato de codificacion o encapsulacion utilizado en la pista y los datos de inicializacion necesarios para procesar ese formato. Cada muestra esta asociada con una de las entradas de descripcion de la muestra de la pista. Algunos tipos de archivos basados en ISOBMFF tambien incluyen pistas de indicacion. Las pistas de indicacion incluyen informacion que facilita la reconstruccion del contenido multimedia de modo que la calidad y la fiabilidad mejoran cuando el contenido multimedia se transmite a traves de una red.
[17] Similar a un archivo almacenado de acuerdo con ISOBMFF, un archivo HEVC puede incluir una serie de flujos elementales que hacen referencia a los metadatos. En el HEVCFF, una muestra puede denominarse una
5
10
15
20
25
30
35
40
45
50
55
unidad de acceso como se define en ISO/IEC 23008-HEVC. En el HEVCFF, los metadatas tambien se pueden incluir en las entradas de descripcion de la muestra. El HEVCFF puede permitir indicaciones, pero debe tenerse en cuenta que lo que las pistas de indicacion denominan "tramas B" en algunos formatos de archivo, en realidad, pueden ser imagenes "desechables" o imagenes no de referencia como se define en ISO/IEC 23008-HEVC. Ademas, un formato de archivo utilizado para el almacenamiento de contenido de video HEVC puede usar las capacidades existentes de ISOBMFF, pero tambien puede definir ampliaciones para admitir caracteristicas de contenido de video codificado HEVC especfficas tales como: conjuntos de parametros, escalabilidad temporal y punto de recuperacion de acceso aleatorio.
[18] El termino conjuntos de parametros puede referirse a un conjunto de parametros de secuencia, un conjunto de parametros de imagen o un conjunto de parametros de adaptacion, como se define en ISO/IEC 23008-HEVC. Los mecanismos de conjunto de parametros de secuencia e imagen pueden desacoplar la transmision de informacion que cambia poco frecuentemente de la transmision de datos de bloque codificados. De acuerdo con HEVC, cada fragmento que contiene datos de bloque codificados puede hacer referencia a un conjunto de parametros de imagen que contiene sus parametros de descodificacion. Ademas, un conjunto de parametros de imagen puede hacer referencia a un conjunto de parametros de secuencia que contiene informacion de parametros de descodificacion de nivel de secuencia. Ademas, HEVC tambien admite conjuntos de parametros de adaptacion. Los conjuntos de parametros de adaptacion pueden contener parametros de descodificacion que se espera que cambien con mas frecuencia que los parametros de codificacion en los conjuntos de parametros de imagen. Un conjunto de parametros de adaptacion tambien puede ser referenciado por un fragmento, cuando sea necesario. Cabe senalar que AVC no admite actualmente conjuntos de parametros de adaptacion.
[19] HEVCFF puede admitir la agrupacion de muestras de escalabilidad temporal al incluir un mecanismo de estructuracion y agrupamiento para indicar la asociacion de unidades de acceso con diferentes niveles de jerarquizacion de escalabilidad temporal. La escalabilidad temporal, en general, permite que el contenido de video codificado se reproduzca a diversas velocidades de trama (por ejemplo, 30 tramas por segundo (fps) o 60 fps) a varias velocidades de bits. En un ejemplo, una pista de video HEVC puede contener cero o una instancia de una SampleToGroupBox con un grouping_type 'tscl'. Esta instancia de SampleToGroupBox puede representar la asignacion de muestras en la pista a capas temporales. Una instancia que acompana a la SampleGroupDescriptionBox con el mismo tipo de agrupacion puede, si esta presente, contener entradas de grupo de muestra TemporalLayerEntry que describen las capas temporales. Por lo tanto, una entrada de grupo de muestra de capa temporal se puede definir en HEVCFF como tipo de Grupo: 'tscl'; Contenedor: Caja de descripcion de grupo de muestra ('sgpd'); Obligatorio: No; y Cantidad: cero o mas muestras.
[20] En algunos casos, una entrada de grupo de muestra de capa temporal puede definir la informacion de capa temporal para todas las muestras en una capa temporal. Las capas temporales se pueden numerar con enteros no negativos, cada capa temporal se puede asociar con un valor particular de temporal_id como se define en ISO/IEC 23008-HEVC. En un ejemplo, una capa temporal asociada con un valor temporal_id mayor que 0 puede depender de todas las capas temporales asociadas con valores temporal_id menores. Una representacion de capa temporal (que tambien puede denominarse la representacion de una capa temporal) asociada con un valor temporal_id particular puede consistir en todas las capas temporales asociadas con valores temporal_id iguales o mayores que el valor temporal_id particular.
[21] El siguiente es un ejemplo de sintaxis que puede usarse para una entrada de capa temporal:
class TemporalLayerEntry() extends VisualSampleGroupEntry ('tscl')
{
unsigned int(8) temporalLayerId; unsigned int(8) tlProfileIndication; unsigned int(8) tlProfileCompatibility; unsigned int(8) tlLevelIndication; unsigned int(16) tlMaxBitRate; unsigned int(16) tlAvgBitRate; unsigned int(8) tlConstantFrameRate; unsigned int(16) tlAvgFrameRate;
}
[22] En la sintaxis de entrada de la capa temporal de ejemplo anterior, la semantica se puede definir de la
5
10
15
20
25
30
35
40
45
50
55
60
65
siguiente manera:
temporalLayerld puede dar el ID de la capa temporal. En algunos ejemplos, para todas las muestras que son miembros de este grupo de muestra, las unidades de la capa de abstraccion de red (NCL) de la capa de codificacion de video (VCL) (las unidades NAL de VCL se describen con mas detalle a continuacion) tendran temporal_id, como se define en ISO/IEC 23008-HEVC, igual a temporalLayerld.
tlProfilelndication puede contener el codigo de perfil (profile_idc) como se define en ISO/IEC 23008-HEVC, para la representacion de la capa temporal identificada por temporalLayerId.
tlProfileCompatibility puede ser un byte definido exactamente igual que el byte que se produce entre el profile_idc y el level_idc en un SPS, como se define en ISO/IEC 23008-HEVC, para la representacion de la capa temporal identificada por temporalLayerId.
Levellndication puede contener el codigo de nivel (level_idc) como se define en ISO/IEC 23008-10, para la representacion de la capa temporal identificada por temporalLayerId.
tlMaxBitrate puede dar la velocidad maxima en 1000 bits por segundo sobre cualquier ventana de un segundo, para la representacion de la capa temporal identificada por temporalLayerId.
tlAvgBitRate puede dar la velocidad de bits promedio en unidades de 1000 bits por segundo, para la representacion de la capa temporal identificada por temporalLayerId.
tlConstantFrameRate puede ser igual a 1 para indicar que la representacion de la capa temporal identificada por temporalLayerId es de velocidad de trama constante. El valor cero puede indicar que la representacion de la capa temporal identificada por temporalLayerId puede ser o no de velocidad de trama constante.
tlAvgFrameRate puede dar la velocidad de trama promedio en unidades de tramas/(256 segundos), para la representacion de la capa temporal identificada por temporalLayerId.
[23] Ademas de la agrupacion de muestras de escalabilidad temporal, el borrador de trabajo de HEVC tambien incluye el concepto de "actualizacion de descodificacion gradual" o punto de recuperacion de acceso aleatorio. El punto de recuperacion de acceso aleatorio se puede senalar en el flujo de bits utilizando el mensaje de informacion de mejora complementaria (SEI) del punto de recuperacion. Este mensaje se puede encontrar al comienzo del acceso aleatorio y puede indicar cuantos datos se deben descodificar despues de la unidad de acceso en la posicion del mensaje SEI antes de que se complete la recuperacion. El concepto de recuperacion gradual se admite en el HEVCFF utilizando la agrupacion de muestra del tipo "rollo" como se define en ISO/IEC 14496-12. La membresia del grupo puede marcar la muestra que contiene el mensaje SEI de tal manera que la "distancia de rollo" se limita a ser solo positiva (es decir, un postrollo). Cabe senalar que la forma en que el grupo de rollos cuenta las muestras en el formato de archivo puede no coincidir con la forma en que se representan las distancias en el mensaje SEI. Por lo tanto, dentro de un flujo, puede ser necesario marcar el comienzo del prerollo, de modo que un descodificador de flujo puede comenzar a descodificar desde alli. Sin embargo, en un archivo, cuando se realiza un acceso aleatorio, puede desearse una busqueda determinista para la trama anterior mas cercana que se puede descodificar perfectamente (por ejemplo, una muestra de sincronizacion o el final de un prerollo).
[24] La FIG. 1 es un diagrama conceptual que ilustra la estructura de un archivo multimedia HEVC de ejemplo basado en el ISOBMFF y el HEVCFF actual. Debe observarse que el archivo 142 multimedia HEVC de ejemplo de la FIG. 1 pretende ilustrar la relacion logica entre flujos de datos de video y metadatos. En aras de la brevedad, no se ha ilustrado la estructura de encapsulacion completa del archivo 142 multimedia HEVC. Sin embargo, el archivo 142 multimedia HEVC puede utilizar cajas y estructuras de encapsulacion definidas de acuerdo con HEVCFF. En el ejemplo ilustrado en la FIG. 1, el archivo 142 multimedia HEVC incluye una caja 144 de metadatos y flujos 146A- 146N de datos de video. La caja 144 de metadatos puede ser similar a una caja "moov" de ISOBMFF y puede contener metadatos para cada uno de los flujos 146A-146N de datos de video. En un ejemplo, los metadatos pueden incluirse dentro de las tablas de metadatos 148A-148N. Las tablas de metadatos 148A-148N pueden incluir entradas de muestra que corresponden a los flujos 146A-146N de datos de video. Un ejemplo de una tabla de metadatos es una caja de tabla de muestra. Cada uno de los flujos 146A-146N de datos de video puede hacer referencia a una o mas de las tablas de metadatos 148A-148N.
[25] Los flujos 146A-146N de datos de video pueden corresponder a las pistas de video o visuales descritas en ISOBMFF. Por lo tanto, los flujos 146A-146N de datos de video pueden usar, por lo tanto: (1) un handler_type de 'vide' en la HandlerBox; (2) una cabecera de medios de video 'vmhd'; y (3) una derivada de VisualSampleEntry. Un flujo de video puede estar representado por una pista de video en el archivo 142 multimedia HEVC. Cada uno de los flujos 146A-146N de datos de video puede incluir una o mas unidades de acceso 150A-150N. Las unidades de acceso 150A-150N del archivo 142 multimedia HEVC se pueden definir de acuerdo con HEVCFF. Las unidades de acceso 150A-150N pueden corresponder a una muestra en ISOBMFF. Las unidades de acceso 150A-150N pueden disponerse en tramas externamente y tienen un tamano suministrado por esa disposicion en tramas externa. En
5
10
15
20
25
30
35
40
45
50
55
60
algunos casos, la caja de metadatos 144 puede incluir informacion que define el tamano de las unidades de acceso 150A-150N. Las unidades de acceso 150A-150N pueden incluir un conjunto de unidades NAL (es decir, capa de abstraccion de red) 152A-152N. Las unidades NAL 152A-152N se pueden definir de acuerdo con HEVCFF.
[26] Cada unidad NAL 152A-152N puede incluir un campo de longitud que indica la longitud de la unidad NAL en bytes. En algunos ejemplos, el campo de longitud se puede configurar para ser uno, dos o cuatro bytes. Los campos de longitud permiten un escaneo facil de las unidades NAL dentro de una unidad de acceso. Las unidades NAL 152A-152N pueden contener datos de unidad NAL como se especifica en ISO/IEC 23008-HEVC. Ademas de otros tipos de unidades NAL, HEVCFF define los siguientes tipos de unidades NAL: Las unidades NAL de datos de video pueden denominarse unidades NAL de VCL, unidades NAL de informacion de mejora complementaria (SEI) y unidades NAL delimitadoras de la unidad de acceso (AU), asi como otros tipos de unidades NAL. Cabe senalar que los tipos de unidades NAL que estan reservados en ISO/IEC 23008-HEVc pueden adquirir una definicion en el futuro. Algunos lectores de archivos pueden configurarse para ignorar unidades NAL con valores reservados de tipo de unidad NAL cuando estan presentes en estas matrices. Cabe senalar que este comportamiento "tolerante" esta disenado para que no se generen errores, lo que permite la posibilidad de ampliaciones compatibles con versiones anteriores de estas matrices en futuras especificaciones.
[27] Las unidades NAL de VCL pueden formatearse de forma tal que todas las unidades NAL de fragmento codificadas para una sola imagen esten contenidas dentro de la unidad de acceso cuyo tiempo de descodificacion y tiempo de composicion son los de la imagen. Ademas, se puede requerir que las unidades de acceso 150A-150N contengan al menos una unidad NAL de datos de video.
[28] Los flujos 146A-146N de datos de video tambien pueden formatearse de manera que todas las unidades NAL de SEI esten contenidas en la unidad de acceso cuyo tiempo de descodificacion se produce antes del momento en que los mensajes SEI entran en vigor. El orden de los mensajes SEI dentro de las unidades de acceso 150A- 150N puede ser como se define segun ISO/IEC 23008-HEVC. Ademas, el archivo HEVC 142 puede requerir que los mensajes SEI para una imagen esten incluidos en la unidad de acceso que contiene esa imagen y que los mensajes SEI pertenecientes a una secuencia de imagenes esten incluidos en la unidad de acceso que contiene la primera imagen de la secuencia a la que mensaje SEI pertenece. Las unidades NAL del delimitador de unidades de acceso pueden estar restringidas de acuerdo con ISO/IEC 23008-HEVC. El archivo HEVC 142 puede requerir que la secuencia de unidades NAL en los flujos 146A-146N de datos de video y dentro de una unica unidad de acceso esten dispuestas en un orden de descodificacion valido como se especifica en ISO/IEC 23008-HEVC.
[29] La FIG. 2 ilustra un ejemplo de una unidad de acceso HEVC que incluye unidades NAL. Como se ilustra en la FIG. 2, la unidad de acceso 150 incluye una unidad NAL de delimitador AU, una unidad NAL de SEI y dos unidades NAL de fragmento. Ademas, debe observarse que el HEVCFF puede soportar el concepto de submuestras descrito en ISOMBFF. Una submuestra se define como una o mas unidades NAL contiguas dentro de una muestra y que tienen el mismo valor de los siguientes campos; RefPicFlag y VclNalUnitFlag. En el ejemplo, la unidad de acceso 150 ilustrada en la FIG. 2, las dos unidades NAL de fragmento pueden formar una submuestra. En la Seccion 8.7.7 de ISO/IEC 14496-12, se describe un ejemplo de una caja de informacion de submuestra que puede usarse para un flujo de HEVC. Una submuestra puede incluir multiples unidades NAL y su campo o campos de longitud de unidad NAL precedente. Cuando se usan submuestras, la presencia de una caja de informacion de submuestra puede ser opcional. Sin embargo, de acuerdo con HEVCFF, si la caja de informacion de submuestra esta presente en una pista que contiene datos HEVC, puede requerirse que el campo de subsample_priority se establezca en un valor de acuerdo con la especificacion de este campo en ISO/IEC 14496-12. Ademas, puede requerirse que el campo descartable se establezca a 1 solo si esta muestra todavfa puede descodificarse si esta submuestra se descarta (por ejemplo, la submuestra consiste en una unidad NAL de SEI). El campo reservado se define en HEVCFF de acuerdo con la siguiente sintaxis de ejemplo:
unsigned int(1) RefPicFlag;
unsigned int(1) VclNalUnitFlag;
unsigned int(30) reserved = 0;
[30] En la sintaxis de ejemplo anterior, la semantica se puede definir de la siguiente manera:
RefPicFlag igual a 0 puede indicar que todas las unidades NAL en la submuestra tienen nal_ref_flag igual a 0. RefPicFlag igual a 1 puede indicar que todas las unidades NAL en la submuestra tienen nal_ref_flag igual a 1.
VclNalUnitFlag igual a 0 puede indicar que todas las unidades NAL en la submuestra son unidades NAL no VCL. El valor 1 puede indicar que todas las unidades NAL en la submuestra son unidades NAL de VLC.
[31] Con referencia de nuevo a la FIG. 1, el archivo 142 multimedia HEVC puede formatearse de manera que toda la informacion de temporizacion sea externa a los flujos 146A-146N de datos de video. Sin embargo, en algunos ejemplos, el archivo HEVC 142 puede incluir mensajes SEI de temporizacion de imagen que definen marcas
5
10
15
20
25
30
35
40
45
50
55
60
65
de tiempo de presentacion o composicion en los flujos 146A-146N de datos de video, ya que el mensaje SEI de temporizacion de imagen puede contener informacion distinta a la temporizacion y puede requerirse para verificacion de conformidad. El archivo 142 multimedia HEVC puede almacenar toda la informacion de temporizacion en las tablas de metadatos 148A-148N de la muestra. La informacion de temporizacion almacenada en las tablas de metadatos 148A-148N puede anular cualquier temporizacion proporcionada en los flujos 146A-146N de datos de video. Ademas, el archivo 142 multimedia HEVC puede configurarse de modo que la informacion de temporizacion proporcionada dentro de un flujo sea ignorada por un descodificador ya que puede contradecir la informacion de temporizacion proporcionada en otro archivo 142 multimedia HEVC y, ademas, en algunos casos la informacion de temporizacion proporcionada dentro de un flujo puede no ser correcta o coherente dentro de si misma. Debe observarse que las restricciones de informacion de temporizacion pueden ser impuestas debido al hecho de que la edicion de post-compresion, combinacion o re-temporizacion de un flujo en el nivel de formato de archivo puede invalidar o hacer incoherente cualquier informacion de temporizacion incorporada presente dentro del flujo.
[32] En algunos ejemplos, el archivo 142 multimedia HEVC puede configurarse de modo que las unidades de acceso 150A-150N se almacenen en orden de descodificacion. Por lo tanto, si no se utiliza el reordenamiento de la imagen y el tiempo de descodificacion (DTS) y el tiempo de composicion (CTS) son los mismos, entonces la presentacion es igual que el orden de descodificacion y solo se necesita usar una tabla de tiempos-de-muestra 'stts'. Cabe senalar que cualquier tipo de imagen puede reordenarse en video HEVC, no solo en imagenes B. Si el tiempo de descodificacion y el tiempo de composicion difieren, la tabla "ctts" del tiempo-de-muestra de composicion tambien se puede usar junto con la tabla 'stts'. En algunos ejemplos, una unidad de acceso puede considerarse como una muestra de sincronizacion si las unidades NAL de VCL en la unidad de acceso indican que la imagen codificada contenida en la unidad de acceso es una imagen de actualizacion de descodificacion instantanea (IDR).
[33] En algunos casos, el archivo 142 multimedia HEVC puede configurarse de manera que se requiera que los flujos 146A-146N de datos de video no incluyan los codigos de inicio. Sin embargo, los sistemas que desean entregar un flujo para el archivo 142 multimedia HEVC usando codigos de inicio pueden hacerlo formateando de nuevo los flujos de video 146A-146N para introducir codigos de inicio. Ademas, los datos de video pueden representarse naturalmente como una tasa de bits variable en el archivo 142 multimedia HEVC y pueden llenarse para la transmision si es necesario. Por lo tanto, el archivo 142 multimedia HEVC puede configurarse de modo que los flujos 146A-146N de datos de video no requieren incluir unidades NAL de datos de relleno y mensajes SEI de datos de relleno. Debe observarse que si el archivo 142 multimedia HEVC no contiene unidades NAL de datos de relleno, codigos de inicio, elementos sintacticos de cero bytes y/o mensajes SEI de datos de relleno, las caracterfsticas de flujo de bits del archivo 142 multimedia HEVC pueden cambiar con respecto a la conformidad con el descodificador de referencia hipotetico (HRD) cuando se opera el HRD en modo de velocidad constante de bits (CBR) como se especifica en ISO/IEC 23008-HEVC, Anexo C.
[34] Similar a HEVCFF, AVCFF tambien incluye ISO/IEC 14496-1:2001 como referencia normativa y AVCFF incluye un diseno similar de la interfaz del sistema (tambien conocido como sintaxis de alto nivel) como el borrador de trabajo de HEVC. Por lo tanto, algunas partes del archivo 142 multimedia HEVC pueden formatearse de una manera similar a un archivo AVC. Sin embargo, algunos aspectos del AVCFF pueden no proporcionar un formato optimo del contenido de video codificado HEVC.
[35] Un aspecto del AVCFF es que, dado que los conjuntos de parametros pueden incluirse en la descripcion de la muestra o en una pista de conjunto de parametros separada, puede haber un aumento innecesario del numero de pistas o del numero de descripciones de la muestra, donde cada una corresponde a un subconjunto del flujo de video completo en una pista de video. Cabe senalar que el HEVCFF actual no permite pistas de conjuntos de parametros por separado.
[36] Otro aspecto del AVCFF es que se agrupan diferentes tipos de conjuntos de parametros, ya esten incluidos en la descripcion de la muestra o en una pista de conjunto de parametros por separado. Por lo tanto, en los archivos AVC que no usan una pista de parametros separada, no es posible incluir algunos tipos de conjuntos de parametros en una descripcion de la muestra mientras se excluyen otros. Por lo tanto, en este caso, SPS y PPS se almacenan en la descripcion de la muestra, aunque PPS puede cambiar mas frecuentemente. De esta manera, PPS no se puede transmitir independientemente de SPS.
[37] Otro aspecto del AVCFF es que una descripcion de la muestra incluye una matriz para un SPS y otra matriz para PPS. En AVCFF estas matrices tambien pueden contener unidades nAl de SEI que contienen mensajes SEI declarativos. Por lo tanto, un analizador de archivos deberfa verificar la cabecera de la unidad NAL de cada unidad NAL incluida en una matriz SPS o PPS para determinar si la unidad NAL es una unidad NAL de conjunto de parametros o una unidad NAL de SEI.
[38] Otro aspecto del formato de archivo AVC es que las propiedades de transmision como la resolucion espacial y la velocidad de tramas que son importantes para la seleccion de pista o flujo (por ejemplo, en aplicaciones de transmision adaptativa basadas en archivos) no se pueden almacenar en la descripcion de la muestra y por lo tanto no son convenientemente accesibles con el diseno AVCFF.
5
10
15
20
25
30
35
40
45
50
55
60
65
[39] Otro aspecto del formato de archivo AVC es que las propiedades de escalabilidad temporal, como el perfil, el nivel y la velocidad de trama, que son importantes para la seleccion de un subconjunto temporal particular de un flujo, faltan para cada representacion de capa temporal.
[40] La FIG. 3 es un diagrama de bloques que ilustra un sistema de codificacion y transmision de video de ejemplo que puede utilizar las tecnicas descritas en esta divulgacion. En un ejemplo, el sistema 10 puede configurarse para encapsular un PPS dentro de las unidades de acceso de un flujo de video, en el que la descripcion de la muestra incluye un indicador que identifica el numero de PPS almacenados dentro de una o mas unidades de acceso del flujo de video. Como se muestra en la FIG. 3, el sistema 10 incluye un dispositivo de origen 12 que genera datos de video codificados que un dispositivo de destino 14 va a descodificar en un momento posterior. El dispositivo de origen 12 y el dispositivo de destino 14 pueden configurarse de manera que el archivo 142 multimedia HEVC, descrito con respecto a la FIG. 1 puede generarse en el dispositivo de origen 12 y transmitirse al dispositivo de destino 14. El dispositivo de origen 12 y el dispositivo de destino 14 pueden comprender cualquiera entre una amplia gama de dispositivos, incluyendo ordenadores de sobremesa, ordenadores plegables (es decir, portatiles), ordenadores tipo tableta, descodificadores, equipos telefonicos tales como los denominados telefonos “inteligentes”, los denominados paneles “inteligentes”, televisores, camaras, dispositivos de visualizacion, reproductores multimedia digitales, consolas de videojuegos, un dispositivo de transmision continua de video o similares. En algunos casos, el dispositivo de origen 12 y el dispositivo de destino 14 pueden estar equipados para la comunicacion inalambrica.
[41] En el ejemplo de la FIG. 3, el dispositivo de origen 12 incluye una fuente de video 18, codificador de video 20, unidad de encapsulacion 21 y una interfaz de salida 22. La fuente de video 18 puede incluir una fuente tal como un dispositivo de captura de video, por ejemplo, una videocamara, un archivo de video que contiene video previamente capturado, una interfaz de alimentacion de video para recibir video desde un proveedor de contenido de video y/o un sistema de graficos de ordenador para generar datos de graficos de ordenador como video de origen, o una combinacion de dichas fuentes. El video capturado, precapturado o generado por ordenador puede ser codificado por el codificador de video 20. El codificador de video 20 puede funcionar de acuerdo con una norma de compresion de video, tal como HEVC y puede ajustarse al modelo de prueba HEVC (HM). Ademas, el codificador de video 20 puede funcionar de acuerdo con otras normas de video descritas en el presente documento.
[42] Para la codificacion de video de acuerdo con el HEVC, una trama de video puede dividirse en unidades de codificacion. Una unidad de codificacion (CU) se refiere en general a una region de imagen que sirve de unidad basica a la que se aplican diversas herramientas de codificacion para la compresion de video. Una CU por lo general tiene una componente de luminancia, denominada Y, y dos componentes de crominancia, denominadas U y V. Segun el formato de muestreo de video, el tamano de las componentes U y V, en terminos del numero de muestras, puede ser el mismo o diferente al tamano de la componente Y. Una CU es tfpicamente cuadrada, y puede considerarse similar a un llamado macrobloque, por ejemplo, en virtud de otras normas de codificacion de video, tales como AVC. La codificacion, de acuerdo con algunos de los aspectos propuestos actualmente de la norma HEVC en proceso de elaboracion, se describira en esta solicitud con fines ilustrativos. Sin embargo, las tecnicas descritas en esta divulgacion pueden ser utiles para otros procesos de codificacion de video, tales como los que se definen de acuerdo con AVC u otras normas o procesos de codificacion de video patentados. Los esfuerzos de normalizacion de la HEVC se basan en un modelo de un dispositivo de codificacion de video denominado Modelo de Prueba de HEVC (HM). El HM supone varias capacidades de los dispositivos de codificacion de video respecto a dispositivos de acuerdo con, por ejemplo, la norma ITU-T H.264/AVC. Por ejemplo, mientras que AVC proporciona nueve modos de codificacion por intraprediccion, HM proporciona hasta treinta y cuatro modos de codificacion por intraprediccion.
[43] Una secuencia de video incluye tfpicamente una serie de tramas o imagenes de video. Un grupo de imagenes (GOP) comprende, en general, una serie de una o mas de las imagenes de video. Un GOP puede incluir datos sintacticos en una cabecera del GOP, en una cabecera de una o mas de las imagenes o en otras ubicaciones, que describen un cierto numero de imagenes incluidas en el GOP. Cada fragmento de una imagen puede incluir datos sintacticos de fragmento que describen un modo de codificacion para el fragmento respectivo. Un codificador de video 20 actua tfpicamente sobre bloques de video dentro de fragmentos de video individuales con el fin de codificar los datos de video. Un bloque de video puede incluir una o mas TU o PU que corresponden a un nodo de codificacion dentro de una CU. Los bloques de video pueden presentar tamanos fijos o variables y pueden diferir en tamano de acuerdo con una norma de codificacion especificada.
[44] De acuerdo con el HM, una CU puede incluir una o mas unidades de prediccion (PU) y/o una o mas unidades de transformada (TU). Los datos sintacticos dentro de un flujo de bits pueden definir una unidad de codificacion maxima (LCU), que es la CU mas grande en terminos del numero de pfxeles. En general, una CU tiene un proposito similar a un macrobloque de la norma H.264, excepto en que una CU no tiene una distincion de tamano. Por tanto, una CU puede dividirse en sub-CU. En general, las referencias de esta divulgacion a una CU pueden referirse a la unidad de codificacion maxima de una imagen o a una sub-CU de una LCU. Una LCU puede dividirse en sub-CU y cada sub-CU puede dividirse ademas en sub-CU. Los datos sintacticos para un flujo de bits pueden definir un numero maximo de veces en que puede dividirse una LCU, denominada profundidad de CU. Por consiguiente, un flujo de bits tambien puede definir una unidad de codificacion de mfnimo tamano (SCU). Esta divulgacion tambien usa el termino "bloque" o "porcion" para referirse a cualquiera entre una CU, una PU o una TU.
5
10
15
20
25
30
35
40
45
50
55
60
65
En general, "porcion" puede referirse a cualquier subconjunto de una trama de video.
[45] Una LCU puede asociarse a una estructura de datos de arbol cuaternario. En general, una estructura de datos en arbol cuaternario incluye un nodo por CU, donde un nodo raiz corresponde a la LCU. Si una CU se divide en cuatro sub-CU, el nodo correspondiente a la CU incluye cuatro nodos hoja, cada uno de los cuales corresponde a una de las sub-CU. Cada nodo de la estructura de datos en arbol cuaternario puede proporcionar datos sintacticos para la CU correspondiente. Por ejemplo, un nodo en el arbol cuaternario puede incluir un indicador de division, que indica si la CU correspondiente al nodo esta dividida o no en varias sub-CU. Los elementos sintacticos para una CU pueden definirse de manera recursiva y pueden depender de si la CU esta dividida en varias sub-CU. Si una CU no esta dividida adicionalmente, se denomina CU hoja. En esta divulgacion, 4 sub-CU de una CU hoja tambien se denominaran CU hoja aunque no haya una division explfcita de la CU hoja original. Por ejemplo, si una CU con un tamano de 16x16 no se divide adicionalmente, las cuatro sub-CU de tamano 8x8 tambien se denominaran CU hoja aunque la CU de tamano 16x16 no se haya dividido nunca.
[46] Ademas, las TU de las CU hoja tambien pueden asociarse a respectivas estructuras de datos de arbol cuaternario. Es decir, una CU hoja puede incluir un arbol cuaternario que indica como la CU hoja esta dividida en varias TU. Esta divulgacion hace referencia al arbol cuaternario que indica como una LCU esta dividida como un arbol cuaternario de CU, e indicando el arbol cuaternario como una CU hoja esta dividida en varias TU como un arbol cuaternario de TU. El nodo raiz de un arbol cuaternario de TU corresponde en general a una CU hoja, mientras que el nodo raiz de un arbol cuaternario de CU corresponde en general a una LCU. Las TU del arbol cuaternario de Tu que no estan divididas se denominan TU hoja.
[47] Una CU hoja puede incluir una o mas unidades de prediccion (PU). En general, una PU representa la totalidad o una parte de la CU correspondiente, y puede incluir datos para recuperar una muestra de referencia para la PU. Por ejemplo, cuando la PU se codifica de forma intermodal, la PU puede incluir datos que definan un vector de movimiento para la PU. Los datos que definen el vector de movimiento pueden describir, por ejemplo, una componente horizontal del vector de movimiento, una componente vertical del vector de movimiento, una resolucion para el vector de movimiento (por ejemplo, con una precision de un cuarto de pixel o con una precision de un octavo de pixel), una trama de referencia a la que apunte el vector de movimiento y/o una lista de referencia (por ejemplo, lista 0 o lista 1) para el vector de movimiento. Los datos de la CU hoja que definan la(s) PU tambien pueden describir, por ejemplo, una division de la CU en una o mas PU. Las modalidades de division pueden diferir en funcion de si la CU esta sin codificar, codificada en la modalidad de intraprediccion o codificada en la modalidad de interprediccion. Para la intracodificacion, una PU puede tratarse de la misma forma que una unidad de transformada de hoja descrita a continuacion.
[48] En un ejemplo, el HM soporta la prediccion en diversos tamanos de PU. Suponiendo que el tamano de una Cu particular es 2Nx2N, el HM admite intraprediccion en tamanos de PU de 2Nx2N o NxN e interprediccion en tamanos de PU simetricos de 2Nx2N, 2NxN, Nx2N o NxN. El HM tambien admite la division asimetrica para la interprediccion en tamanos de PU de 2NxnU, 2NxnD, nLx2N y nRx2N. En la division asimetrica, una direccion de una CU no esta dividida, mientras que la otra direccion esta dividida en el 25 % y el 75 %. La parte de la CU correspondiente a la division del 25 % esta indicada por una “n” seguida de una indicacion de “arriba”, “abajo”, “izquierda” o “derecha”. Asf pues, por ejemplo, “2NxnU” se refiere a una CU de tamano 2Nx2N que esta dividida horizontalmente con una PU de tamano 2Nx0,5N encima y una PU de tamano 2Nx1,5N debajo.
[49] En esta divulgacion, "NxN" y "N por N" pueden usarse indistintamente para hacer referencia a las dimensiones de pfxeles de un bloque de video en terminos de dimensiones verticales y horizontales, por ejemplo, 16x16 pfxeles o 16 por 16 pfxeles. En general, un bloque de tamano 16x16 tendra 16 pfxeles en la direccion vertical (y = 16) y 16 pfxeles en la direccion horizontal (x = 16). Asimismo, un bloque de tamano NxN presenta, en general, N pfxeles en una direccion vertical y N pfxeles en una direccion horizontal, donde N representa un valor entero no negativo. Los pfxeles en un bloque pueden disponerse en filas y columnas. Ademas, no es necesario que los bloques presenten necesariamente el mismo numero de pfxeles en la direccion horizontal y en la direccion vertical. Por ejemplo, los bloques pueden comprender NxM pfxeles, donde M no es necesariamente igual a N.
[50] Para codificar un bloque (por ejemplo, una unidad de prediccion de datos de video), se obtiene primero un predictor para el bloque. El predictor, tambien denominado bloque predictivo, puede obtenerse, ya sea mediante la intraprediccion (I) (es decir, prediccion espacial) o la interprediccion (P o B) (es decir, prediccion temporal). Por lo tanto, algunas unidades de prediccion pueden estar intracodificadas (I) usando prediccion espacial con respecto a las muestras de referencia en bloques de referencia contiguos en la misma trama (o fragmento), y otras unidades de prediccion pueden estar intercodificadas unidireccionalmente (P) o intercodificadas bidireccionalmente (B) con respecto a bloques de muestras de referencia en otras tramas (o fragmentos) previamente codificadas. En cada caso, las muestras de referencia se pueden utilizar para formar un bloque predictivo para un bloque que ha de codificarse.
[51] Tras la identificacion de un bloque predictivo, se determina la diferencia entre el bloque de datos de video original y su bloque predictivo. Esta diferencia puede denominarse datos residuales de prediccion, e indica las diferencias de pfxeles entre los valores de pixel en el bloque que tiene que codificarse y los valores de pixel en el
5
10
15
20
25
30
35
40
45
50
55
60
65
bloque predictivo seleccionado para representar al bloque codificado. Para lograr una mejor compresion, los datos residuales de prediccion pueden transformarse, por ejemplo, usando una transformada de coseno discreta (DCT), una transformada de enteros, una transformada de Karhunen-Loeve (K-L) u otra transformacion.
[52] Los datos residuales en un bloque de transformacion, tales como una TU, pueden estar dispuestos en una matriz bidimensional (2D) de valores de diferencia de pfxeles en el dominio espacial de pfxeles. Una transformacion convierte los valores de los pfxeles residuales en una matriz bidimensional de coeficientes de transformacion en un dominio de la transformacion, tal como un dominio de frecuencia. Para una mayor compresion, los coeficientes de transformacion pueden cuantificarse antes de la codificacion por entropfa. Un codificador por entropfa, a continuacion, aplica codificacion por entropfa, tal como la codificacion de longitud variable adaptativa de contexto (CAVLC), la codificacion aritmetica binaria adaptativa al contexto (CABAC), la codificacion por entropfa de division de intervalos de probabilidad (PIPE), o similares, a los coeficientes de transformacion cuantificados.
[53] Para codificar por entropfa un bloque de coeficientes de transformacion cuantificados, generalmente se realiza un proceso de escaneo de modo que se reordene la matriz bidimensional (2D) de coeficientes de transformacion cuantificados en un bloque, de acuerdo con un orden de escaneo particular, en una matriz ordenada, unidimensional (1D), es decir, un vector, de coeficientes de transformacion. A continuacion se aplica la codificacion por entropfa al vector de coeficientes de transformacion. El escaneo de los coeficientes de transformacion cuantificados en una unidad de transformacion serializa la matriz bidimensional de coeficientes de transformacion para el codificador por entropfa. Puede generarse una correlacion de significancia para indicar las posiciones de los coeficientes significativos (es decir, distintos a cero). El escaneo se puede aplicar para escanear niveles de coeficientes significativos (es decir, distintos de cero), y/o para codificar signos de los coeficientes significativos.
[54] En HEVC, la informacion de posicion de la transformacion significativa (por ejemplo, la correlacion de significancia) se codifica en primer lugar para una TU para indicar la ubicacion del ultimo coeficiente distinto de cero en el orden de escaneo. La correlacion de significancia y la informacion de nivel (los valores absolutos y los signos de los coeficientes) se codifican para cada coeficiente en un orden de escaneo inverso.
[55] Tras cualquier transformada para generar coeficientes de transformada, el codificador de video 20 puede realizar la cuantificacion de los coeficientes de transformada. La cuantificacion se refiere, en general, a un proceso en el que los coeficientes de transformada se cuantifican para reducir posiblemente la cantidad de datos usados para representar los coeficientes, proporcionando compresion adicional. El proceso de cuantificacion puede reducir la profundidad de bits asociada con algunos o la totalidad de los coeficientes. Por ejemplo, un valor de bit n se puede redondear a un valor de bit m durante la cuantificacion, donde n es mayor que m. En algunos ejemplos, el codificador de video 20 puede utilizar un orden de escaneo predefinido para escanear los coeficientes de transformacion cuantificados para producir un vector serializado que puede ser codificado por entropfa. En otros ejemplos, el codificador de video 20 puede realizar un escaneo adaptativo.
[56] La FIG. 4 es un diagrama de bloques que ilustra un ejemplo de codificador de video 20 que puede implementar las tecnicas descritas en esta divulgacion. El codificador de video 20 puede realizar la intracodificacion y la intercodificacion de bloques de video dentro de fragmentos de video. La intracodificacion se apoya en la prediccion espacial para reducir o eliminar la redundancia espacial en el video dentro de una trama o imagen de video determinada. La intercodificacion se basa en la prediccion temporal para reducir o eliminar la redundancia temporal en el video dentro de tramas o imagenes adyacentes de una secuencia de video. El modo intra (modo I) puede referirse a cualquiera de varios modos de compresion espacial. Los modos inter, tales como la prediccion unidireccional (modo P) o la biprediccion (modo B), pueden referirse a cualquiera de varios modos de compresion de base temporal.
[57] En el ejemplo de la FIG. 4, el codificador de video 20 incluye un modulo de division 35, un modulo de prediccion 41, una memoria de imagenes de referencia 64, un sumador 50, un modulo de transformacion 52, un modulo de cuantificacion 54 y un modulo de codificacion por entropfa 56. El modulo de prediccion 41 incluye un modulo de estimacion de movimiento 42, un modulo de compensacion de movimiento 44 y un modulo de intraprediccion 46. El modulo de prediccion 41 tambien puede incluir el modulo de division 35. Para la reconstruccion de bloques de video, el codificador de video 20 incluye ademas un modulo de cuantificacion inversa 58, un modulo de transformacion inversa 60 y un sumador 62. Tambien puede incluirse un filtro de eliminacion de bloques (no mostrado en la FIG. 4) para filtrar lfmites de bloque a fin de eliminar distorsiones de efecto pixelado del video reconstruido. Si se desea, el filtro de eliminacion de bloques filtrara tfpicamente la salida del sumador 62. Tambien pueden usarse filtros de bucle adicionales (en bucle o tras el bucle), ademas del filtro de eliminacion de bloques.
[58] Como se representa en la FIG. 4, el codificador de video 20 recibe datos de video, y el modulo de division 35 divide los datos en bloques de video. Esta division tambien puede incluir la division de datos de video en fragmentos, mosaicos u otras unidades mas grandes, asf como divisiones de bloques de video, por ejemplo, de acuerdo con una estructura de arbol cuaternario residual de LCU y CU para producir PU y TU. El modulo de division 35 puede dividir bloques de datos de video tales como LCU en subbloques tales como CU, PU y TU. Por ejemplo, el modulo de division 35 puede dividir bloques de datos de video basandose en la evaluacion de esquemas de division previos en pasadas de codificacion previas. Por ejemplo, el modulo de division 35 puede dividir inicialmente una
5
10
15
20
25
30
35
40
45
50
55
60
65
trama o un fragmento en LCU, y dividir cada una de las LCU en sub-CU basandose en un analisis de velocidad- distorsion (por ejemplo, optimizacion de velocidad-distorsion) junto con el modulo de prediccion 41. Por consiguiente, aunque el modulo de division 35 se muestra en la FIG. 4 como un bloque separado para fines ilustrativos, las funciones de division realizadas por el modulo de division 35 pueden integrarse con las funciones de seleccion y prediccion de modo del modulo de prediccion 41, particularmente cuando el analisis de velocidad-distorsion realizado por el modulo de prediccion 41 puede usarse para determinar, al menos en parte, aspectos de la division aplicada a una LCU para producir CU, sub-CU, PU y TU. En general, el modulo de prediccion 41, junto con el modulo de division 35, puede producir una estructura de datos de arbol cuaternario indicativa de la division de una LCU en sub-CU. Las CU de nodos de hojas del arbol cuaternario pueden incluir una o mas PU y una o mas TU.
[59] El modulo de prediccion 41, representado por el modulo de division 35, puede proporcionar diversas tecnicas para definir un esquema de division para una de la pluralidad de componentes de video independientemente de otros componentes de video, como se describe en esta divulgacion. En otro aspecto, el modulo de prediccion 41 puede determinar si se define un esquema de division para al menos uno de la pluralidad de componentes de video de un bloque de video independientemente de los otros componentes de video basandose en una o mas propiedades del bloque de video. En algunos ejemplos, las propiedades pueden incluir al menos uno de tamano de bloque, tipo de imagen, division de bloque o informacion de movimiento.
[60] El codificador de video 20 ilustra, en general, los componentes que codifican bloques de video de un fragmento de video que se va a codificar. El fragmento puede dividirse en varios bloques de video (y, posiblemente, en conjuntos de bloques de video denominados mosaicos). El modulo de prediccion 41 puede seleccionar uno entre una pluralidad de posibles modos de codificacion, tal como uno entre una pluralidad de modos de intracodificacion, o uno entre una pluralidad de modos de intercodificacion, para el bloque de video actual, basandose en resultados de errores (por ejemplo, la velocidad de codificacion y el nivel de distorsion). El modulo de prediccion 41 puede proporcionar el bloque intracodificado o intercodificado resultante al sumador 50 para generar datos de bloques residuales, y al sumador 62 para reconstruir el bloque codificado para su uso como una imagen de referencia.
[61] El modulo de intraprediccion 46, dentro del modulo de prediccion 41, puede realizar la codificacion intrapredictiva del bloque de video actual con respecto a uno o mas bloques contiguos en la misma trama o fragmento que el bloque que va a codificarse, para proporcionar compresion espacial. El modulo de estimacion de movimiento 42 y el modulo de compensacion de movimiento 44, dentro del modulo de prediccion 41, realizan la codificacion interpredictiva del bloque de video actual con respecto a uno o mas bloques predictivos en una o mas imagenes de referencia, para proporcionar compresion temporal.
[62] Si se selecciona la interprediccion en lugar de la intraprediccion para un bloque de video actual, el modulo 42 de estimacion de movimiento puede configurarse para determinar el modo de interprediccion para un fragmento de video de acuerdo con un patron predeterminado para una secuencia de video. El patron predeterminado puede designar fragmentos de video en la secuencia como fragmentos P, fragmentos B o fragmentos P/B generalizados (GPB). El modulo de estimacion de movimiento 42 y el modulo de compensacion de movimiento 44 pueden estar altamente integrados, pero se ilustran por separado con fines conceptuales. La estimacion de movimiento, realizada mediante el modulo de estimacion de movimiento 42, es el proceso de generar vectores de movimiento, que estiman el movimiento para los bloques de video. Un vector de movimiento, por ejemplo, puede indicar el desplazamiento de una PU de un bloque de video de una trama o imagen de video actual con respecto a un bloque predictivo de una imagen de referencia.
[63] En intercodificacion, un bloque predictivo es un bloque del que se descubre que se corresponde estrechamente con la PU del bloque de video que se va a codificar en terminos de diferencia de pfxeles, que puede determinarse mediante la suma de la diferencia absoluta (SAD), suma de la diferencia al cuadrado (SSD) u otras metricas de diferencia. En algunos ejemplos, el codificador de video 20 puede calcular valores para posiciones fraccionarias de pfxeles de imagenes de referencia almacenadas en la memoria de imagenes de referencia 64. Por ejemplo, el codificador de video 20 puede interpolar valores de posiciones de un cuarto de pixel, posiciones de un octavo de pixel u otras posiciones de fracciones de pixel de la imagen de referencia. Por lo tanto, el modulo de estimacion de movimiento 42 puede realizar una busqueda de movimiento con respecto a las posiciones de pfxeles completos y a las posiciones de fracciones de pixel, y emitir un vector de movimiento con una precision de fracciones de pixel.
[64] El modulo de estimacion de movimiento 42 calcula un vector de movimiento para una PU de un bloque de video en un fragmento intercodificado, comparando la posicion de la PU con la posicion de un bloque predictivo de una imagen de referencia. La imagen de referencia puede seleccionarse de una primera lista de imagenes de referencia (Lista 0) o de una segunda lista de imagenes de referencia (Lista 1), cada una de las cuales identifica una o mas imagenes de referencia almacenadas en la memoria de imagenes de referencia 64. El modulo de estimacion de movimiento 42 envfa el vector de movimiento calculado al modulo de codificacion por entropfa 56 y al modulo de compensacion de movimiento 44, por ejemplo, junto con otros elementos sintacticos.
[65] La compensacion de movimiento, realizada por el modulo de compensacion de movimiento 44, puede implicar extraer o generar el bloque predictivo basandose en el vector de movimiento determinado por la estimacion
5
10
15
20
25
30
35
40
45
50
55
60
65
de movimiento, realizando posiblemente interpolaciones hasta la precision de subpfxel. Tras recibir el vector de movimiento para la PU del bloque de video actual, el modulo de compensacion de movimiento 44 puede localizar el bloque predictivo al que apunta el vector de movimiento en una de las listas de imagenes de referencia. El codificador de video 20 forma un bloque de video residual restando los valores de pfxeles del bloque predictivo a los valores de pfxeles del bloque de video actual que se esta codificando, generando valores de diferencia de pixel. Los valores de diferencia de pixel forman datos residuales para el bloque, y pueden incluir componentes de diferencia de luminancia y crominancia. El sumador 50 representa el componente o los componentes que realizan esta operacion de resta. El modulo de compensacion de movimiento 44 tambien puede generar elementos sintacticos asociados a los bloques de video y al fragmento de video para su uso mediante el descodificador de video 30 en la descodificacion de los bloques de video del fragmento de video.
[66] El modulo de intraprediccion 46 puede intrapredecir un bloque actual, como alternativa a la interprediccion llevada a cabo por el modulo de estimacion de movimiento 42 y el modulo de compensacion de movimiento 44, como se ha descrito anteriormente. En particular, el modulo de intraprediccion 46 puede determinar un modo de intraprediccion a usar para codificar un bloque actual. En algunos ejemplos, el modulo de intraprediccion 46 puede codificar un bloque actual para generar un bloque predictivo usando varios modos de intraprediccion, por ejemplo, durante pasadas de codificacion independientes, y el modulo de intraprediccion 46 (o el modulo de seleccion de modo 40, en algunos ejemplos) puede seleccionar un modo adecuado de intraprediccion a usar, entre los modos probados. Por ejemplo, el modulo de intraprediccion 46 puede calcular valores de velocidad-distorsion usando un analisis de velocidad-distorsion para los diversos modos de intraprediccion probados, y seleccionar el modo de intraprediccion que tenga las mejores caracterfsticas de velocidad-distorsion entre los modos probados. El analisis de velocidad-distorsion determina, en general, una magnitud de distorsion (o error) entre un bloque codificado y un bloque original no codificado que se codifico para generar el bloque codificado, asf como una velocidad de transferencia de bits (es decir, un numero de bits) utilizada para generar el bloque codificado. El modulo de intraprediccion 46 puede calcular proporciones a partir de las distorsiones y velocidades para los diversos bloques codificados, para determinar que modo de intraprediccion presenta el mejor valor de velocidad-distorsion para el bloque.
[67] En cualquier caso, tras seleccionar un modo de intraprediccion para un bloque, el modulo de intraprediccion 46 puede proporcionar informacion que indica el modo de intraprediccion seleccionado para el bloque al modulo de codificacion por entropfa 56. Por ejemplo, el modulo de intraprediccion 46 puede proporcionar senalizacion, tal como uno o mas elementos sintacticos, para indicar un modo intra seleccionado. El modulo de codificacion por entropfa 56 puede codificar la informacion que indica el modo de intraprediccion seleccionado. El codificador de video 20 puede incluir datos de configuracion en el flujo de bits transmitido, que pueden incluir una pluralidad de tablas de indices de modos de intraprediccion y una pluralidad de tablas de indices de modos de intraprediccion modificadas (tambien denominadas tablas de correlacion de palabras de codigo), definiciones de contextos de codificacion para varios bloques e indicaciones del modo de intraprediccion mas probable, una tabla de indices de modos de intraprediccion y una tabla de indices de modos de intraprediccion modificadas a utilizar para cada uno de los contextos.
[68] Despues de que el modulo de prediccion 41 genere el bloque predictivo para el bloque de video actual, el codificador de video 20 forma un bloque de video residual al restar el bloque predictivo del bloque de video actual. Los datos de video residual del bloque residual pueden ser incluidos en una o mas TU y ser aplicados al modulo de transformada 52. El modulo de transformada 52 transforma los datos de video residual en coeficientes de transformada residual, usando una transformada, tal como una transformada de coseno discreta (DCT) o una transformada conceptualmente similar. El modulo de transformada 52 puede convertir los datos de video residual, desde un dominio de pfxeles a un dominio de transformada, tal como un dominio de frecuencia.
[69] El modulo de transformada 52 puede enviar los coeficientes de transformacion resultantes al modulo de cuantificacion 54. El modulo de cuantificacion 54 cuantifica los coeficientes de transformacion para reducir adicionalmente la velocidad de transmision de bits. El proceso de cuantificacion puede reducir la profundidad de bits asociada con algunos o la totalidad de los coeficientes. El grado de cuantificacion puede modificarse ajustando un parametro de cuantificacion. En algunos ejemplos, el modulo de cuantificacion 54 puede realizar, a continuacion, un escaneo de la matriz que incluye los coeficientes de transformacion cuantificados. De forma alternativa, el modulo de codificacion por entropfa 56 puede realizar el escaneo.
[70] Tras la cuantificacion, el modulo de codificacion por entropfa 56 codifica por entropfa los coeficientes de transformacion cuantificados. Por ejemplo, el modulo de codificacion por entropfa 56 puede realizar una codificacion de longitud variable adaptativa al contexto (CAVLC), una codificacion aritmetica binaria adaptativa al contexto (CABAC), una codificacion aritmetica binaria adaptativa al contexto basandose en la sintaxis (SBAC), una codificacion por entropfa por division de intervalos de probabilidad (PIPE) u otra metodologfa o tecnica de codificacion por entropfa. Tras la codificacion por entropfa realizada por el modulo de codificacion por entropfa 56, el flujo de bits codificado puede transmitirse al descodificador de video 30, o archivarse para su posterior transmision o recuperacion mediante el descodificador de video 30. El modulo de codificacion por entropfa 56 tambien puede realizar la codificacion por entropfa de los vectores de movimiento y de los otros elementos sintacticos para el fragmento de video actual que se esta codificando.
5
10
15
20
25
30
35
40
45
50
55
60
65
[71] El modulo de cuantificacion inversa 58 y el modulo de transformacion inversa 60 aplican una cuantificacion inversa y una transformacion inversa, respectivamente, para reconstruir el bloque residual en el dominio de los pfxeles, para su uso posterior como un bloque de referencia de una imagen de referencia. El modulo de compensacion de movimiento 44 puede calcular un bloque de referencia sumando el bloque residual a un bloque predictivo de una de las imagenes de referencia de una de las listas de imagenes de referencia. El modulo de compensacion de movimiento 44 tambien puede aplicar uno o mas filtros de interpolacion al bloque residual reconstruido para calcular valores de pfxeles fraccionarios para su uso en la estimacion de movimiento. El sumador 62 anade el bloque residual reconstruido al bloque predictivo con compensacion de movimiento generado por el modulo de compensacion de movimiento 44 para generar un bloque de referencia para su almacenamiento en la memoria de imagenes de referencia 64. El modulo de estimacion de movimiento 42 y el modulo de compensacion de movimiento 44 pueden usar el bloque de referencia como un bloque de referencia para realizar la interprediccion de un bloque en una imagen o trama de video posterior.
[72] El codificador de video 20 de la FIG. 4 representa un ejemplo de un codificador de video configurado para emitir contenido de video codificado HEVC, que puede incluir muestras codificadas de contenido de video, conjuntos de parametros y mensajes SEI. Como se describio anteriormente, con respecto al archivo 142 multimedia HEVC ilustrado en la FlG. 1, los tipos de conjuntos de parametros utilizados con la norma de codificacion de video HEVC incluyen SPS, PPS y APS. Cada conjunto de parametros tiene un identificador, y cada fragmento codificado de acuerdo con la norma HEVC, como se describio anteriormente, puede hacer referencia al conjunto de parametros con el que se codifico utilizando el identificador del conjunto de parametros.
[73] Con referencia de nuevo a la FIG. 3, el modulo de encapsulacion 21 puede recibir el contenido de video codificado del codificador de video 20 y generar un archivo de video de acuerdo con las tecnicas descritas en el presente documento. En un ejemplo, el modulo de encapsulacion 21 puede recibir contenido de video codificado HEVC y generar un archivo de video usando un formato de archivo basado en el ISOBMFF y la version actual del HEVCFF.
[74] La FIG. 5 es un diagrama de bloques que ilustra componentes de un ejemplo de modulo de encapsulacion 21. En el ejemplo de la FIG. 5, el modulo de encapsulacion 21 incluye la interfaz 70 de entrada de video, el modulo 72 de creacion de archivos de video y la interfaz 76 de salida de archivo de video. El modulo 70 de creacion de archivos de video, en este ejemplo, incluye el constructor 74 de la unidad de la capa de abstraccion de red (NAL).
[75] La interfaz 70 de entrada de video puede recibir contenido de video codificado. La interfaz 70 de entrada de video puede recibir contenido de video codificado desde el codificador 20 de video o puede recuperar contenido de video codificado desde un dispositivo de almacenamiento. El contenido de video codificado se puede codificar de acuerdo con la norma HEVC y puede incluir muestras de contenido de video, conjuntos de parametros y mensajes SEI. Al recibir el contenido de video codificado, la interfaz 70 de entrada de video puede enviar el contenido de video codificado al modulo 72 de creacion de archivos de video para ensamblarlo en un archivo de video. En algunos casos, la interfaz 70 de entrada de video puede facilitar el ensamblaje de un archivo de video organizando o almacenando en memoria intermedia contenido de video codificado antes de que se emita al modulo 72 de creacion de archivos de video.
[76] En general, el modulo 72 de creacion de archivos de video puede generar un archivo de video que incluye el contenido de video codificado recibido. En un ejemplo, el modulo 72 de creacion de archivos de video puede crear un archivo de video, tal como, el archivo 142 multimedia HEVC descrito con respecto a la FIG. 1. El modulo 72 de creacion de archivos de video puede corresponder a una unidad de control que incluye hardware, software y/o firmware configurada para realizar las funciones y procedimientos atribuidos a los mismos. La unidad de control puede realizar adicionalmente las funciones atribuidas al modulo de encapsulacion 21 en general. Para ejemplos en los que el modulo 72 de creacion de archivos de video esta incorporado en software y/o firmware, el modulo de encapsulacion 21 puede incluir un medio legible por ordenador que comprende instrucciones para el modulo 72 de creacion de archivos de video y una unidad de procesamiento para ejecutar las instrucciones. Los submodulos del modulo 72 de creacion de archivos de video (constructor 74 de unidades NAL en este ejemplo) pueden implementarse como modulos de hardware individuales y/o modulos de software, y pueden integrarse funcionalmente o separarse adicionalmente en submodulos adicionales. El modulo 72 de creacion de archivos de video puede corresponder a cualquier unidad de procesamiento o circuitos de procesamiento adecuados, como, por ejemplo, uno o mas microprocesadores, circuitos integrados especfficos de la aplicacion (ASIC), matriz de puertas programables in situ (FPGA), procesadores de senales digitales (DSP), o cualquier combinacion de los mismos. El modulo 72 de creacion de archivos de video puede incluir, ademas, instrucciones de almacenamiento de medios legibles por ordenador no transitorias para el constructor 74 de unidades NAL, asf como tambien un procesador para ejecutar las instrucciones.
[77] En un ejemplo, el modulo 72 de creacion de archivos de video puede configurarse para generar datos de video codificados de acuerdo con un formato de archivo donde los conjuntos de parametros pueden incluirse en la descripcion de la muestra o en las muestras o unidades de acceso del flujo al que se aplica la descripcion de la muestra. En un ejemplo, si se incluye un tipo de conjunto de parametros en la descripcion de la muestra, es posible que no se incluya tambien dentro de las propias muestras. Es decir, en este ejemplo particular, para un flujo de video
5
10
15
20
25
30
35
40
45
50
55
60
65
al que se aplica una descripcion de la muestra particular, un tipo particular de conjunto de parametros, si esta presente, puede almacenarse en la descripcion de la muestra o en las muestras, pero nunca en ambas. En un ejemplo alternativo, se puede incluir un tipo de conjunto de parametros tanto en la descripcion de la muestra como en las muestras del flujo al que se aplica la descripcion de la muestra. Cuando se permite la inclusion de conjuntos de parametros en la descripcion de la muestra o en las propias muestras, se puede incluir una indicacion en la descripcion de la muestra para indicar si existen conjuntos de parametros incluidos en las muestras ademas de los incluidos en la descripcion de la muestra. En otro ejemplo, el modulo 72 de creacion de archivos de video puede configurarse para generar datos de video codificados de acuerdo con un formato de archivo en el que solo uno o mas de un tipo particular de conjunto de parametros puede incluirse tanto en la descripcion de la muestra como en las muestras del flujo al que se aplica la descripcion de la muestra. Por ejemplo, en algunos casos, un formato de archivo puede permitir que se incluya PPS tanto en la descripcion de la muestra como en las muestras, mientras que SPS solo puede incluirse en la descripcion de la muestra. Ademas, en este caso, solo se puede permitir que APS se almacene en muestras. Ademas, se puede incluir una indicacion en la descripcion de la muestra para indicar si puede haber conjuntos de parametros del tipo particular incluido en las muestras ademas de los incluidos en la descripcion de la muestra.
[78] Ademas, el modulo 72 de creacion de archivos de video puede configurarse de manera que cada descripcion de la muestra HEVC, que contiene la informacion especffica del descodificador de flujo de video HEVC, pueda incluir un grupo del tipo particular de conjuntos de parametros. Un grupo de conjuntos de parametros puede funcionar de manera similar a un libro de codigos. Cada conjunto de parametros puede tener un identificador, y cada fragmento codificado puede hacer referencia a un identificador de conjunto de parametros. Segun lo definido por un formato de archivo, cada configuracion de conjuntos de parametros se puede representar por separado. De acuerdo con algunos formatos de archivo, un conjunto de parametros no se puede actualizar sin causar que se use una descripcion de la muestra diferente. En este caso, los sistemas que deseen enviar actualizaciones del conjunto de parametros pueden necesitar comparar las dos configuraciones para encontrar las diferencias a fin de enviar las actualizaciones apropiadas del conjunto de parametros. Cabe senalar, que HEVCFF tfpicamente recomienda que cuando se utilizan varios conjuntos de parametros y se desea actualizar el conjunto de parametros, los conjuntos de parametros se incluyen en las muestras del flujo. Tambien se debe tener en cuenta que los descodificadores que cumplen con HEVCFF pueden ser necesarios para admitir conjuntos de parametros almacenados en las muestras asf como conjuntos de parametros almacenados en las entradas de descripcion de la muestra, a menos que este restringido por otro formato de archivo basado en HEVCFF.
[79] En un ejemplo, el modulo 72 de creacion de archivos de video puede configurarse para generar datos de video codificados de acuerdo con un formato de archivo donde los diferentes tipos de conjuntos de parametros no se agrupan cuando se incluyen en la descripcion de la muestra o en las muestras del flujo al que se aplica la descripcion de la muestra. En este ejemplo, la inclusion de un tipo de conjunto de parametros en la descripcion de la muestra o en las muestras puede ser independiente de si se incluyen otros tipos de conjuntos de parametros en la descripcion de la muestra o en las muestras. En otro ejemplo, el modulo de creacion de archivos de video puede configurarse para generar datos de video codificados de acuerdo con un formato de archivo donde solo un subconjunto de todos los tipos de conjuntos de parametros se agrupan cuando se trata de si estan incluidos en la descripcion de muestra o en las muestras del flujo al que se aplica la descripcion de la muestra. Por ejemplo, SPS y PPS pueden agruparse, mientras que la inclusion de APS en la descripcion de la muestra o en las muestras puede ser independiente de la inclusion de SPS y PPS en la descripcion de la muestra o en las muestras.
[80] En un ejemplo, el modulo 72 de creacion de archivos de video puede configurarse para generar datos de video codificados de acuerdo con un formato de archivo donde una descripcion de la muestra incluye una matriz para cada tipo de conjunto de parametros, y la matriz para un tipo particular de conjunto de parametros solo puede incluir unidades NAL de conjunto de parametros de ese tipo en particular. Ademas, la descripcion de la muestra tambien puede incluir una matriz para unidades NAL de SEI que contienen mensajes SEI declarativos. Por lo tanto, en este caso, un analizador de archivos no necesita verificar la cabecera de la unidad NAL de cada unidad NAL incluida en una matriz para determinar el tipo de la unidad NAL. En un ejemplo alternativo, el modulo 72 de creacion de archivos de video puede configurarse para generar datos de video codificados de acuerdo con un formato de archivo donde se incluye una matriz en la descripcion de la muestra, y la matriz puede incluir cualquier tipo de conjuntos de parametros asf como unidades NAL de SEI que contienen mensajes SEI declarativos.
[81] En un ejemplo, el modulo 72 de creacion de archivos de video puede configurarse para emitir datos de video codificados segun un formato de archivo donde las propiedades del flujo como resolucion espacial y velocidad de trama que son importantes para la seleccion de pista o flujo (por ejemplo, en aplicaciones de transmision adaptativa basadas en archivos) estan incluidas en la descripcion de la muestra. Ademas, en otro ejemplo, el modulo 72 de creacion de archivos de video puede configurarse para emitir datos de video codificados de acuerdo con un formato de archivo donde la descripcion de la muestra incluye la profundidad de bits de salida (es decir, la profundidad de bits, posiblemente la misma o diferente para diferentes componentes de color, de las imagenes enviadas desde el codificador de video 20). La inclusion de las propiedades de flujo que son importantes para la seleccion de la pista o flujo en la descripcion de la muestra puede permitir el acceso conveniente a estas propiedades de flujo. En otro ejemplo, el modulo 72 de creacion de archivos de video puede configurarse para generar datos de video codificados de acuerdo con un formato de archivo donde la descripcion de la muestra incluye
5
10
15
20
25
30
35
40
45
50
55
60
informacion sobre un conjunto de mosaicos (como se define en HEVC) que se puede descodificar independientemente de otros mosaicos en todo el flujo, por ejemplo, la region de geometrfa cubierta por el conjunto de mosaicos.
[82] En un ejemplo, el modulo 72 de creacion de archivos de video puede configurarse para generar datos de video codificados de acuerdo con un formato de archivo donde las propiedades de escalabilidad temporal tales como perfil, nivel y velocidad de trama, que son importantes para la seleccion de un subconjunto temporal particular de un flujo, se incluyen para cada representacion de capa temporal, a traves del mecanismo de agrupacion de muestra de escalabilidad temporal.
[83] En un ejemplo, el modulo 72 de creacion de archivos de video puede configurarse para almacenar un flujo de video completo en una pista, independientemente de cuantas capas temporales esten incluidas en la transmision de video. En un ejemplo alternativo, un flujo de video completo puede almacenarse en mas de una pista, donde cada pista contiene un subconjunto de capas temporales consecutivas. En el caso en que se almacena un flujo de video completo en mas de una pista, puede haber una indicacion en el archivo para indicar cada pista para la cual la capa temporal contenida mas baja tiene un temporal_id, denotado como tId, mayor que 0, e indicar la pista que contiene la capa con temporal_id igual a tId - 1. Estas pistas se pueden designar respectivamente como pista A y pista B. Dicha indicacion puede ser una referencia de pista de tipo 'tscl' incluida en la pista A, donde la referencia de pista se refiere a la pista B de la que depende la pista A. Las propiedades de flujo de la pista A pueden describir que el flujo consiste en la pista A y todas las pistas que colectivamente contienen las capas temporales con valores de temporal_id menores que tId, como si todas estas capas temporales tambien estuvieran en la pista A. En un ejemplo, el modulo 72 de creacion de archivos de video puede estar configurado para realizar cualquiera y todas las combinaciones de los ejemplos descritos anteriormente. Por ejemplo, el modulo 72 de creacion de archivos de video puede configurarse como salida de datos de video codificados de acuerdo con un formato de archivo que incluye cualquiera y todas las combinaciones de los formatos de archivo descritos en el presente documento.
[84] El modulo 72 de creacion de archivos de video puede incluir informacion de configuracion del descodificador en un registro de configuracion de informacion del descodificador almacenado dentro de un archivo. La informacion del descodificador puede definirse mediante la norma HEVC y el registro de configuracion del descodificador puede basarse en el registro de configuracion del descodificador actualmente definido en el HEVCFF, pero tambien puede incluir informacion adicional coherente con los ejemplos descritos en el presente documento. De esta manera, una o mas de las configuraciones de ejemplo del modulo 72 de creacion de archivos de video descrito anteriormente pueden implementarse de acuerdo con un formato de archivo que define la informacion de configuracion del descodificador. La informacion de configuracion del descodificador puede incluirse en un registro de configuracion del descodificador como se describe adicionalmente a continuacion. Por lo tanto, en un ejemplo, una descripcion de la muestra como se describio anteriormente puede incorporarse en un registro de configuracion del descodificador. Debe observarse que aunque metadatos, tales como conjuntos de parametros e indicaciones respectivas de los mismos, se describen como incluidos en un registro de configuracion de descodificador o en una descripcion de la muestra, esto no debe interpretarse como limitacion y los metadatos descritos anteriormente con respectivas configuraciones de ejemplo del modulo 72 de creacion de archivos de video pueden almacenarse en otras partes de un archivo generado por el modulo 72 de creacion de archivos de video, donde las otras partes de un archivo generado por el modulo 72 de creacion de archivos de video son distintas de los flujos de video.
[85] En un ejemplo, el modulo 72 de creacion de archivos de video puede generar un archivo que incluye un registro de configuracion del descodificador que puede contener el tamano del campo de longitud utilizado en cada unidad de acceso para indicar la longitud de las unidades NAL contenidas en una unidad de acceso. Ademas, en un ejemplo, el registro de configuracion del descodificador generado por el modulo 72 de creacion de archivos de video tambien puede incluir informacion con respecto a conjuntos de parametros y unidades NAL de SEI declarativas, tales como, por ejemplo: (1) una indicacion de si los conjuntos de parametros estan almacenados en la descripcion de la muestra o dentro de las unidades de acceso (2) el numero de conjuntos de parametros almacenados en una descripcion de la muestra o dentro de las unidades de acceso de un flujo; (3) informacion con respecto a las unidades NAL de conjunto de parametros; (4) informacion con respecto a las unidades NAL de SEI declarativas; y/o (5) informacion de resolucion espacial.
[86] Un registro de configuracion de descodificador de ejemplo puede ser generado por el modulo 72 de creacion de archivos de video de acuerdo con la siguiente sintaxis de ejemplo. Debe observarse que la sintaxis siguiente puede modificarse de acuerdo con las otras configuraciones del modulo 72 de creacion de archivos de video de ejemplo descritas anteriormente.
aligned(8) class HEVCDecoderConfigurationRecord { unsigned int(8) configurationVersion = 1; unsigned int(8) ProfileIndication; unsigned int(8) profileCompatibility;
5
10
15
20
25
30
35
40
unsigned int(8) LevelIndication; bit(6) reserved = ‘111111 ’b; unsigned int(2) chromaFormat;
bit(5) reserved = ‘11111 ’b;
unsigned int(3) bitDepthLumaMinus8;
bit(5) reserved = ‘11111 ’b;
unsigned int(3) bitDepthChromaMinus8;
bit(16) picture WidthInLumaSamples;
bit(l 6) pictureHeightInLumaSamples;
bit(16) avgFrameRate;
bit(1) constantFrameRate;
bit(3) numTemporalLayers;
bit(2) reserved = ‘11 ’b;
unsigned int(2) lengthSizeMinusOne;
unsigned int(8) numOfSequenceParameterSets;
for (i=0; i< numOfSequenceParameterSets; i++) {
unsigned int(16) sequenceParameterSetLength ; bit(8*sequenceParameterSetLength) sequenceParameterSetNalUnit;
}
unsigned int(8) numOfPictureParameterSets; for (i=0; i< numOfPictureParameterSets; i++) {
unsigned int(16) pictureParameterSetLength;
bit(8 *pictureParameterSetLength) pictureParameterSetNal Unit;
}
unsigned int(8) numOfAdaptationParameterSets; for (i=0; i< numOfAdaptationParameterSets; i++) {
unsigned int(16) adaptationParameterSetLength;
bit (8*adaptationParameterSetLength) adaptationParameterSetNALUnit;
}
unsigned int(8) numOfDeclarativeSeiNalUnits; for (i=0; i< numOfDeclarativeSeiNalUnits; i++) {
unsigned int(16) declarativeSeiNalUnitLength; bit(8*declarativeSeiNalUnitLength) declarativeSeiNalUnit;
}
}
[87] En la sintaxis anterior de ejemplo, la semantica se puede definir de la siguiente manera:
ProfileIndication puede contener el codigo de perfil (profile_idc) como se define en ISO/IEC 23008-HEVC, para el flujo al que se aplica este registro de configuracion.
5
10
15
20
25
30
35
40
45
50
55
60
65
profileCompatibility puede ser un byte definido exactamente igual que el byte que se produce entre profile_idc y level_idc en un conjunto de parametros de secuencia (SPS), como se define en ISO/IEC 23008-HEVC, para el flujo al que se aplica este registro de configuracion.
LevelIndication puede contener el codigo de nivel (level_idc) como se define en ISO/IEC 23008-10.
chromaFormat puede contener el indicador chroma_format tal como se define en el parametro chroma_format_idc en ISO/IEC 23008-HEVC, para el flujo al que se aplica este registro de configuracion.
bitDepthLumaMinus8 puede contener el indicador de profundidad de bits de luma definido por el parametro bit_depth_luma_minus8 en ISO/IEC 23008-HEVC, para el flujo al que se aplica este registro de configuracion.
bitDepthChromaMinus8 puede contener el indicador de profundidad de bits de croma definido por bit_depth_chroma_minus8 en ISO/IEC 23008-HEVC, para el flujo al que se aplica este registro de configuracion.
pictureWidthInLumaPixels puede indicar el ancho de la imagen descodificada en unidades de pfxeles luma, para el flujo al que se aplica este registro de configuracion.
pictureHeightInLumaPixels puede indicar la altura de la imagen descodificada en unidades de pfxeles luma, para el flujo al que se aplica este registro de configuracion.
avgFrameRate puede dar la velocidad de trama promedio en unidades de tramas/(256 segundos), para el flujo al que se aplica este registro de configuracion. El valor 0 puede indicar una velocidad de trama promedio no especificada.
constantFrameRate igual a 1 puede indicar que el flujo al que se aplica este registro de configuracion es de velocidad de trama constante. El valor 2 puede indicar que la representacion de cada capa temporal en el flujo es de velocidad de trama constante. El valor 0 puede indicar que el flujo puede ser o no de velocidad de trama constante.
numTemporalLayers mayor que 1 puede indicar que el flujo al que se aplica este registro de configuracion es temporalmente escalable y el numero de capas contenidas es igual a numTemporalLayers. El valor 1 puede indicar que el flujo no es escalable temporalmente. El valor 0 puede indicar que se desconoce si el flujo es temporalmente escalable.
lengthSizeMinusOne mas 1 puede indicar la longitud en bytes del campo NALUnitLength en una muestra de video HEVC en el flujo al que se aplica este registro de configuracion. Por ejemplo, un tamano de un byte se puede indicar con un valor de 0. El valor de este campo puede ser uno de 0, 1 o 3, correspondiente a una longitud codificada con 1, 2 o 4 bytes, respectivamente.
numOfSequenceParameterSets puede indicar el numero de SPS que se utilizan para descodificar el flujo al que se aplica este registro de configuracion. En un ejemplo, si el valor es mayor que 0, no habra SPS incluido en las muestras del flujo. En un ejemplo, si el valor es igual a 0, debe haber al menos un SPS incluido en las muestras del flujo.
sequenceParameterSetLength puede indicar la longitud en bytes de las unidades NAL de SPS, como se define en ISO/IEC 23008-HEVC.
sequenceParameterSetNalUnit puede contener una unidad NAL de SPS, como se especifica en ISO/IEC 23008-HEVC.
numOfPictureParameterSets puede indicar el numero de conjuntos de parametros de imagen que se utilizan para descodificar el flujo al que se aplica este registro de configuracion. En un ejemplo, si el valor es mayor que 0, no habra ningun PPS incluido en las muestras del flujo. En un ejemplo, si el valor es igual a 0, debe haber al menos un PPS incluido en las muestras del flujo.
pictureParameterSetLength puede indicar la longitud en bytes de la unidad NAL de PPS como se define en ISO/IEC 23008-HEVC.
pictureParameterSetNalUnit puede contener una unidad NAL de PPS, como se especifica en ISO/IEC 23008- HEVC.
numOfAdaptationParameterSets puede indicar el numero de conjuntos de parametros de adaptacion (APS) que se utilizan para descodificar el flujo al que se aplica este registro de configuracion. En un ejemplo, si el valor es mayor que 0, no se incluira ningun APS en las muestras del flujo. En un ejemplo, si el valor es igual a 0, puede haber o no APS incluidos en las muestras del flujo.
5
10
15
20
25
30
35
40
45
50
55
60
65
adaptationParameterSetLength puede indicar la longitud en bytes de la unidad NAL de APS como se define en ISO/IEC 23008-HEVC.
adaptationParameterSetNalUnit puede contener una unidad NAL de APS, como se especifica en ISO/IEC 23008-HEVC.
numOfDeclarativeSeiNalUnits puede indicar el numero de unidades NAL de SEI declarativas para el flujo al que se aplica este registro de configuracion. Una unidad NAL de SEI declarativa puede contener mensajes SEI de naturaleza 'declarativa', es decir, aquellos que proporcionan informacion sobre el flujo como un todo. Un ejemplo de dicho SEI es un SEI de datos de usuario.
declarativeSeiNalUnitLength puede indicar la longitud en bytes de la unidad NAL de SEI declarativa. declarativeSeiNalUnit puede contener una unidad NAL de SEI declarativa.
numOfSequenceParameterSetExt puede indicar el numero de Ampliaciones de conjunto de parametros de secuencia que se utilizan para descodificar el flujo elemental de AVC.
sequenceParameterSetExtLength puede indicar la longitud en bytes de la unidad NAL de ampliacion de SPS como se define en ISO/IEC 14496-10.
sequenceParameterSetExtNALUnit puede contener una unidad NAL de ampliacion de SPS, como se especifica en ISO/IEC 14496-10.
[88] Ademas del ejemplo de sintaxis y semantica descrito anteriormente, un formato de archivo utilizado por el modulo 72 de creacion de video puede incluir restricciones adicionales con respecto a un registro de configuracion del descodificador. Por ejemplo, en algunos casos, los valores para ProfileIndication, LevelIndication y los indicadores que indican la compatibilidad del perfil deben ser validos para todos los conjuntos de parametros del flujo descrito por un registro de configuracion del descodificador. Ademas, en algunos casos, la indicacion de nivel debe indicar un nivel de capacidad igual o mayor que el nivel mas alto indicado en los conjuntos de parametros incluidos y cada indicador de compatibilidad de perfil solo se puede establecer si todos los conjuntos de parametros incluidos establecen ese indicador. Ademas, en algunos casos, la indicacion de perfil debe indicar un perfil al que se ajusta el flujo asociado con este registro de configuracion. Ademas, en algunos casos, si los conjuntos de parametros de secuencia estan marcados con diferentes perfiles y los indicadores de compatibilidad de perfil pertinente son todos cero, entonces el flujo puede necesitar un examen para determinar a que perfil, si corresponde, corresponde todo el flujo. Ademas, si no se examina todo el flujo, o si el examen revela que no existe un perfil al que se ajuste todo el flujo, entonces el flujo completo debe dividirse en dos o mas subflujos con registros de configuracion separados en los se pueden cumplir estas reglas.
[89] Ademas, en algunos ejemplos, se puede proporcionar una indicacion explicita en el registro de configuracion del descodificador sobre el formato cromatico y la profundidad de bits, asi como otra informacion de formato importante utilizada por el flujo elemental de video hEvC. Se puede requerir que cada tipo de dicha informacion sea identico en todos los conjuntos de parametros, si esta presente, en un unico registro de configuracion de HEVC. Ademas, en algunos casos, si dos secuencias difieren en cualquier tipo de dicha informacion, pueden ser necesarios dos registros de configuracion de HEVC diferentes. Ademas, si las dos secuencias difieren en las indicaciones de espacio de color en su informacion de VUI, entonces tambien pueden requerirse dos registros de configuracion diferentes.
[90] Ademas, el registro de configuracion del descodificador generado por el modulo 72 de creacion de archivos de video puede disponerse en tramas externamente. Cuando el registro de configuracion del descodificador se dispone en tramas externamente, su tamano puede ser suministrado por la estructura que lo contiene. El registro de configuracion del descodificador tambien puede contener un campo de version. En algunos casos, las ampliaciones compatibles de este registro de configuracion del descodificador pueden extenderlo y no cambiaran el codigo de la version de configuracion. En algunos casos, los lectores de archivos deben estar preparados para ignorar datos no reconocidos mas alla de la definicion de los datos que entienden.
[91] Ademas de generar un registrador de configuracion de descodificador, el modulo 72 de creacion de archivos de video puede configurarse adicionalmente para ensamblar unidades de acceso que incluyen todas las unidades NAL para una instancia de tiempo particular. Con referencia de nuevo a la FIG. 5, el constructor 74 de la unidad NAL puede formar unidades NAL que incluyen datos de video codificados. Como se describe anteriormente con respecto al archivo 142 multimedia HEVC descrito en la FIG. 1, los tipos de unidades NAL pueden incluir: unidad NAL de delimitador AU, unidad NAL de SEI y unidades NAL de fragmento. Como se describe adicionalmente con respecto a la sintaxis y la semantica del registro del descodificador de ejemplo, los tipos adicionales de unidades NAL pueden incluir: unidades NAL de SPS, unidades NAL de PPS, unidades NAL de APS y unidades NAL de SEI declarativas.
5
10
15
20
25
30
35
40
45
50
55
60
[92] En un ejemplo, el constructor 74 de unidades NAL puede configurarse para definir unidades NAL basandose en un registro de configuracion del descodificador de acuerdo con la siguiente sintaxis:
aligned(8) class HEVCSample {
unsigned int PictureLength = samplesize; //Tamano de HEVCSample de SampleSizeBox
for (i=0; i< PictureLength;) // al final de la imagen
{
unsigned int((HEVCDecoderConfigurationRecord.LengthSizeMinusOne+1)*8) NALUnitLength;
bit(NALUnitLength * 8) NALUnit;
i += (HEVCDecoderConfigurationRecord.LengthSizeMinusOne+1) + NALUnitLength;
}
}
[93] En la sintaxis de ejemplo, NALUnitLength puede indicar el tamano de una unidad NAL en bytes. El campo de longitud puede incluir el tamano de la cabecera NAL y la carga util de RBSP, pero no necesariamente incluye el campo de longitud en si. Ademas, NALUnit puede contener una sola unidad NAL. La sintaxis de una unidad NAL puede definirse en ISO/IEC 23008-HEVC y puede incluir tanto la cabecera NAL como la carga util de flujo de bytes encapsulados de longitud variable.
[94] Ademas, en algunos ejemplos, el modulo 72 de creacion de archivos de video puede configurarse adicionalmente para ensamblar unidades de acceso que incluyen unidades NAL de acuerdo con las restricciones definidas por un formato de archivo. Por ejemplo, en un caso, donde se permite almacenar un conjunto de parametros dentro de una muestra para ser utilizado para una imagen codificada, debe enviarse antes de la muestra que contiene esa imagen o en la muestra para esa imagen. Con referencia a la FIG. 1, si una imagen esta contenida dentro de la unidad de acceso 150B, de acuerdo con esta restriccion de ejemplo, para un conjunto de parametros a usar con la unidad de acceso 150B, debe almacenarse en la caja de metadatos 144, la unidad de acceso 150A o la unidad de acceso 150B. Cabe senalar que el almacenamiento de conjuntos de parametros en las descripciones de la muestra de un flujo de video proporciona una manera simple y estatica de suministrar conjuntos de parametros. Sin embargo, almacenar conjuntos de parametros en muestras puede ser mas complejo que almacenar conjuntos de parametros en la descripcion de la muestra, pero permite mas dinamismo en el caso de las actualizaciones del conjunto de parametros y en el caso de agregar conjuntos de parametros adicionales. Una actualizacion del conjunto de parametros se refiere al contenido de un conjunto de parametros en particular, pero el ID del conjunto de parametros permanece igual.
[95] Ademas, un formato de archivo utilizado por el modulo 72 de creacion de video puede definir el formato de las unidades de acceso en un flujo elemental de video HEVC, que tambien puede denominarse entradas de la muestra visual de HEVC. En un ejemplo, la sintaxis de una unidad de acceso puede configurarse a traves de la configuracion especffica del descodificador para el flujo elemental de HEVC. Ademas, en un ejemplo, el nombre de la descripcion de la muestra y el formato asociado con una o mas unidades de acceso se pueden definir de la siguiente manera: (1) los tipos de cajas se pueden definir como 'hvc1' o 'hvcC'; (2) un contenedor puede definirse como Caja de tabla de muestra ('stbl'); (3) una entrada obligatoria puede incluir una entrada de muestra 'hvcl'; y (4) se puede definir una cantidad para permitir que una o mas entradas de la muestra esten presentes. Ademas, en un ejemplo, puede requerirse que una entrada de la muestra visual de HEVC contenga una caja de configuracion de HEVC, como se describe con mas detalle a continuacion. En algunos ejemplos, una caja de configuracion de HEVC puede incluir un registro de configuracion de descodificador HEVC, como se describe anteriormente.
[96] Un elemento de sintaxis opcional MPEG4BitRateBox puede estar presente en una entrada de la muestra visual HEVC para senalizar la informacion de tasa de bits del flujo de video HEVC. Los descriptores de ampliacion que deberfan insertarse en el Descriptor de flujo elemental, cuando se usan en MPEG-4, tambien pueden estar presentes. En algunos ejemplos, se pueden usar multiples descripciones de la muestra, segun lo permitido por la especificacion del formato de archivo multimedia de base ISO, para indicar secciones de video que usan configuraciones o conjuntos de parametros diferentes.
[97] En algunos ejemplos, el nombre de la entrada de la muestra 'hvcl' solo se puede usar cuando el flujo al que se aplica esta entrada de la muestra es un flujo HEVC docil y compatible visto por un descodificador HEVC que opera bajo la configuracion (incluyendo perfil y nivel) dada en el HEVCConfigurationBox.
[98] En un ejemplo, el modulo 72 de creacion de archivos de video puede configurarse para definir entradas de la muestras visuales HEVC de acuerdo con la siguiente sintaxis:
// Secuencias visuales
5
10
15
20
25
30
35
40
45
50
55
60
class HEVCConfigurationBox extends Box('hvcC') {
HEVCDecoderConfigurationRecord() HEVCConfig;
}
class HEVCSampleEntry() extends VisualSampleEntry (’hvcl’){
HEVCConfigurationBox config;
MPEG4BitRateBox (); //opcional
MPEG4ExtensionDescriptorsBox (); //opcional
extra_boxes boxes; //opcional
}
[99] Ademas, en el ejemplo anterior de sintaxis, Compressorname como se define en la clase base VisualSampleEntry puede indicar el nombre del compresor utilizado con el valor "\013HEVC Coding" que se recomienda (\012 es 10, la longitud de la cadena en bytes). Los elementos de sintaxis Compressorname se pueden definir de acuerdo con HEVCFF. El elemento de sintaxis config se puede definir de acuerdo con un registro de configuracion del descodificador.
[100] El modulo 72 de creacion de archivos de video puede configurarse, ademas, para ensamblar unidades de acceso, incluidas las unidades NAL, donde los campos de anchura y altura se incluyen en VisualSampleEntry. En un ejemplo, los campos de anchura y altura en VisualSampleEntry deben documentar correctamente las dimensiones de la imagen recortada (tamano de presentacion visual) del flujo HEVC que se describe en esa entrada. En un ejemplo, los campos de anchura y altura no reflejan ningun cambio en el tamano causado por los mensajes SEI como pan-scan (barrido horizontal). En algunos ejemplos, el manejo visual de los mensajes SEI como pan-scan es opcional y dependiente del terminal. Ademas, en algunos casos, si la anchura y la altura de la secuencia cambian, entonces se necesita una nueva descripcion de la muestra. En algunos ejemplos, los campos de anchura y altura de la cabecera de la pista pueden no ser los mismos que los campos de anchura y altura en una o mas de una VisualSampleEntry en la pista de video. Tal como se especifica en el Formato de archivo multimedia de base ISO, si se necesita una presentacion visual normalizada, todas las secuencias se pueden normalizar segun la anchura y la altura de la pista para la presentacion.
[101] Despues de que la unidad 72 de creacion de archivos de video genera un archivo de video, la unidad 72 de creacion de archivos de video puede pasar el archivo de video a la interfaz 76 de salida de archivos de video. La interfaz 76 de salida de archivos de video puede enviar el archivo de video, por ejemplo, a la interfaz 22 de salida del dispositivo de origen 20. En algunos ejemplos, la interfaz 76 de salida de archivo de video puede enviar el archivo de video a un medio de almacenamiento del dispositivo de origen 20 (no mostrado) o al dispositivo de almacenamiento 32.
[102] La FIG. 6 es un diagrama conceptual que ilustra la estructura de un archivo multimedia HEVC de ejemplo basado en el ISOBMFF y el HEVCFF actual. El archivo 242 multimedia HEVC representa un ejemplo de un texto de formato de archivo que utiliza las tecnicas de esta divulgacion donde (1) conjuntos de parametros pueden incluirse en la descripcion de la muestra o en las muestras del flujo al que se aplica la descripcion de la muestra; (2) los diferentes tipos de conjuntos de parametros no estan agrupados cuando se trata de si estan incluidos en la descripcion de la muestra o en las muestras del flujo al que se aplica la descripcion de la muestra; (3) una descripcion de la muestra incluye una matriz para cada tipo de conjunto de parametros, y la matriz para un tipo particular de conjunto de parametros solo puede incluir unidades NAL de conjunto de parametros de ese tipo particular y la descripcion de la muestra tambien incluye una matriz para unidades NAL de SEI que contienen mensajes SEI declarativos; (4) las propiedades del flujo se incluyen en la descripcion de la muestra. Debe observarse que el archivo 242 multimedia HEVC de ejemplo de la FIG. 6 esta destinado a ilustrar la relacion logica entre flujos de datos de video y metadatos. En aras de la brevedad, no se ha ilustrado la estructura de encapsulacion completa del archivo 242 multimedia HEVC. Sin embargo, el archivo 242 multimedia HEVC puede utilizar cajas y estructuras de encapsulacion definidas de acuerdo con HEVCFF. El archivo multimedia HEVC puede ser generado por la unidad 72 de creacion de archivos de video de acuerdo con la sintaxis y las restricciones de ejemplo descritas anteriormente.
[103] En el ejemplo ilustrado en la FIG. 6, el archivo 242 multimedia HEVC incluye una caja de metadatos 244 y un flujo de datos de video 246. La caja de metadatos 244 puede ser similar a una caja ISOBMFF 'moov' y puede contener datos para flujos 266 de datos de video, tal como el registro 250 de configuracion del descodificador. En un ejemplo, la tabla de metadatos puede ser una caja de tabla de muestras. Tanto la caja de metadatos 244 como el registro 250 de configuracion del descodificador pueden formar porciones de una descripcion de la muestra. En un ejemplo, el registro 250 de configuracion del descodificador se puede generar usando la sintaxis de ejemplo descrita anteriormente y puede incluir informacion con respecto a los conjuntos de parametros y los mensajes de la unidad
5
10
15
20
25
30
35
40
45
50
55
60
65
NAL de SEI. Ademas, el registro de configuracion del descodificador incluye ELEMENTOS SINTACTICOS. Los ELEMENTOS SINTACTICOS pueden incluir informacion sobre las propiedades del flujo, como la resolucion espacial. En un ejemplo, el registro 252 de configuracion del descodificador puede incluir la matriz 254 de SPS y la matriz 258 de SEI. La matriz 254 de SPS puede incluir la unidad NAL de SpS 255. La matriz 258 de SEI puede incluir la unidad NAL de SEI 259.
[104] Los flujos 246 de datos de video pueden corresponder a un video o pista visual descrita en HEVCFF. Por lo tanto, el flujo 246 de datos de video puede, por lo tanto, usar: (1) un handler_type de 'vide' en la HandlerBox; (2) una cabecera multimedia de video 'vmhd'; y (3) una derivada de VisualSampleEntry. El flujo 246 de datos de video puede incluir una pluralidad de unidades de acceso 260A-260N. Las unidades de acceso 260A-260N pueden ser generadas por la unidad 72 de creacion de archivos de video de acuerdo con la sintaxis y las restricciones de ejemplo descritas anteriormente. Como se ilustra en la FIG. 6 la unidad de acceso 260A incluye la unidad NAL de PPS 256A y una unidad NAL de VCL 256B y la unidad de acceso 260N incluye una unidad NAL de APS 256C y NAL de VCL 256d. En un ejemplo, el flujo 246 de datos de video puede incluir una o mas capas temporales y la caja de metadatos 244 puede incluir, ademas, una indicacion de si el flujo de datos de video 246 esta dividido en una o mas pistas.
[105] De esta manera, el archivo HEVC 242 representa un archivo de ejemplo donde (1) los conjuntos de parametros se incluyen en la descripcion de la muestra y en las muestras del flujo al que se aplica la descripcion de la muestra; (2) los diferentes tipos de conjuntos de parametros no estan agrupados cuando se trata de si estan incluidos en la descripcion de la muestra o en las muestras del flujo al que se aplica la descripcion de la muestra; (3) una descripcion de la muestra incluye una matriz para cada tipo de conjunto de parametros y la descripcion de la muestra tambien incluye una matriz para unidades NAL de sEi que contiene mensajes SEI declarativos; y (4) las propiedades del flujo estan incluidas en la descripcion de la muestra.
[106] Con referencia de nuevo a la FIG. 3, el dispositivo de origen 12 puede configurarse para emitir datos de video codificados de acuerdo con uno o mas formatos de archivo y el dispositivo de destino 14 puede configurarse para recibir datos de video codificados en uno o mas formatos de archivo, tales como los descritos en el presente documento. Los archivos de video descritos en el presente documento pueden transmitirse directamente al dispositivo de destino 14 a traves de la interfaz de salida 22 del dispositivo de origen 12. El archivo de video puede asimismo (o de forma alternativa) almacenarse en el dispositivo de almacenamiento 32 para un acceso posterior por el dispositivo de destino 14 u otros dispositivos, para su descodificacion y/o reproduccion.
[107] El dispositivo de destino 14 incluye una interfaz de entrada 28, un modulo de desencapsulacion 29, un descodificador de video 30 y un dispositivo de visualizacion 34. En algunos casos, la interfaz de entrada 28 puede incluir un receptor y/o un modem. La interfaz de entrada 28 del dispositivo de destino 14 recibe los datos de video codificados por el enlace 16. Los datos de video codificados, comunicados por el enlace 16, o proporcionados en el dispositivo de almacenamiento 32, pueden incluir una diversidad de elementos sintacticos generados por el codificador de video 20, para su uso por un descodificador de video, tal como el descodificador de video 30, en la descodificacion de los datos de video. Dichos elementos sintacticos pueden incluirse con los datos de video codificados, transmitidos en un medio de comunicacion, almacenados en un medio de almacenamiento o almacenados en un servidor de archivos. En algunos ejemplos, dichos elementos sintacticos pueden incluir elementos de sintaxis que senalizan modos de intracodificacion como se describe en esta divulgacion.
[108] El dispositivo de visualizacion 34 puede estar integrado con, o ser externo a, el dispositivo de destino 14. En algunos ejemplos, el dispositivo de destino 14 puede incluir un dispositivo de visualizacion integrado y tambien estar configurado para interconectarse con un dispositivo de visualizacion externo. En otros ejemplos, el dispositivo de destino 14 puede ser un dispositivo de visualizacion. En general, el dispositivo de visualizacion 34 visualiza los datos de video descodificados ante un usuario y puede comprender cualquiera de una variedad de dispositivos de visualizacion, tales como una pantalla de cristal lfquido (LCD), una pantalla de plasma, una pantalla de diodos organicos emisores de luz (OLED) u otro tipo de dispositivo de visualizacion.
[109] El dispositivo de destino 14 puede recibir los datos de video codificados que se van a descodificar mediante un enlace 16. El enlace 16 puede comprender cualquier tipo de medio o dispositivo capaz de desplazar los datos de video codificados desde el dispositivo de origen 12 al dispositivo de destino 14. En un ejemplo, el enlace 16 puede comprender un medio de comunicacion para permitir al dispositivo de origen 12 transmitir los datos de video codificados directamente al dispositivo de destino 14 en tiempo real. Los datos de video codificados pueden modularse de acuerdo con una norma de comunicacion, tal como un protocolo de comunicacion inalambrica, y transmitirse al dispositivo de destino 14. El medio de comunicacion puede comprender cualquier medio de comunicacion inalambrica o alambrica, tal como un espectro de radiofrecuencia (RF) o una o mas lfneas de transmision ffsica. El medio de comunicacion puede formar parte de una red basada en paquetes, tal como una red de area local, una red de area amplia o una red global tal como Internet. El medio de comunicacion puede incluir encaminadores, conmutadores, estaciones base o cualquier otro equipo que pueda ser util para facilitar la comunicacion desde el dispositivo de origen 12 al dispositivo de destino 14. En algunos casos, la interfaz de salida 22 puede incluir un modulador/desmodulador (modem) y/o un transmisor.
5
10
15
20
25
30
35
40
45
50
55
60
65
[110] De forma alternativa, los datos codificados pueden ser emitidos desde la interfaz de salida 22 a un dispositivo de almacenamiento 32. De forma similar, se puede acceder a los datos codificados desde el dispositivo de almacenamiento 32 mediante una interfaz de entrada 28. El dispositivo de almacenamiento 32 puede incluir cualquiera de una diversidad de medios de almacenamiento de datos, de acceso distribuido o local, tales como una unidad de disco duro, unos discos Blu-ray, discos DVD, discos CD-ROM, una memoria flash, memoria volatil o no volatil o cualquier otro medio de almacenamiento digital adecuado, para almacenar datos de video codificados. En un ejemplo adicional, el dispositivo de almacenamiento 32 puede corresponder a un servidor de archivos o a otro dispositivo de almacenamiento intermedio que pueda retener el video codificado generado por el dispositivo de origen 12. El dispositivo de destino 14 puede acceder a los datos de video almacenados desde el dispositivo de almacenamiento 32 a traves de transmision en continuo o descarga. El servidor de archivos puede ser cualquier tipo de servidor capaz de almacenar datos de video codificados y transmitir esos datos de video codificados al dispositivo de destino 14. Ejemplos de servidores de archivos incluyen un servidor web (por ejemplo, para un sitio web), un servidor FTP, dispositivos de almacenamiento conectado en red (NAS) o una unidad de disco local. El dispositivo de destino 14 puede acceder a los datos de video codificados mediante cualquier conexion de datos estandar, incluyendo una conexion a Internet. Esto puede incluir un canal inalambrico (por ejemplo, una conexion Wi-Fi), una conexion alambrica (por ejemplo, DSL, modem de cable, etc.), o una combinacion de ambos que sea adecuada para acceder a datos de video codificados almacenados en un servidor de archivos. La transmision de datos de video codificados desde el dispositivo de almacenamiento 32 puede ser una transmision en continuo, una transmision de descarga o una combinacion de ambas.
[111] Las tecnicas de esta divulgacion no estan limitadas necesariamente a aplicaciones o configuraciones inalambricas. Las tecnicas pueden aplicarse a la codificacion de video, en soporte de cualquiera de una diversidad de aplicaciones de multimedia, tales como radiodifusiones de television por el aire, transmisiones de television por cable, transmisiones de television por satelite, transmisiones de video en continuo, por ejemplo, mediante Internet, codificacion de video digital para su almacenamiento en un medio de almacenamiento de datos, descodificacion de video digital almacenado en un medio de almacenamiento de datos, u otras aplicaciones. En algunos ejemplos, el sistema 10 puede configurarse para soportar la transmision de video unidireccional o bidireccional para soportar aplicaciones tales como la transmision continua de video, la reproduccion de video, la radiodifusion de video y/o la videotelefonfa.
[112] Aunque no se muestra en la FIG. 3, en algunos aspectos, el codificador de video 20 y el descodificador de video 30 pueden estar integrados, cada uno de ellos, en un codificador y descodificador de audio, y pueden incluir unidades MUX-DEMUX adecuadas, u otro tipo de hardware y software, para gestionar la codificacion tanto de audio como de video en un flujo de datos comun o en flujos de datos diferentes. Si procede, en algunos ejemplos, las unidades MUX-DEMUX pueden conformarse al protocolo de multiplexado ITU H.223 o a otros protocolos, tales como el protocolo de datagramas de usuario (UDP).
[113] El codificador de video 20 y el descodificador de video 30 pueden implementarse como cualquiera de entre una variedad de circuitos adecuados de codificadores, tales como uno o mas microprocesadores, procesadores de senales digitales (DSP), circuitos integrados especfficos de la aplicacion (ASIC), matrices de puertas programables in situ (FPGA), logica discreta, software, hardware, firmware o cualquier combinacion de los mismos. Cuando las tecnicas se implementan parcialmente en software, un dispositivo puede almacenar instrucciones para el software en un medio adecuado no transitorio, legible por ordenador, y ejecutar las instrucciones en hardware mediante uno o mas procesadores para realizar las tecnicas de esta divulgacion. Cada uno del codificador de video 20 y el descodificador de video 30 pueden estar incluidos en uno o mas codificadores o descodificadores, cualquiera de los cuales puede estar integrado como parte de un codificador/descodificador (CODEC) combinado en un dispositivo respectivo.
[114] El modulo 29 de desencapsulacion puede estar configurado para recibir un archivo de video que analiza el archivo de video de manera que el descodificador de video 30 pueda emitir datos de video descodificados. En algunos ejemplos, el modulo de desencapsulacion 29 puede realizar procesos recfprocos del modulo de encapsulacion 72. En algunos ejemplos, el descodificador de video 30 puede realizar una pasada de descodificacion que en general es recfproca a la pasada de codificacion descrita con respecto al codificador de video 20 de la FIG. 4.
[115] La FIG. 7 es un diagrama de flujo que ilustra un ejemplo de generacion de un archivo de video que incluye contenido de video codificado de acuerdo con las tecnicas de esta divulgacion. El proceso descrito en la FIG. 7 puede realizarse mediante un dispositivo de codificacion de video que puede incluir cualquier combinacion de dispositivo de origen 20, modulo de encapsulacion 21 y modulo 72 de creacion de video descritos en el presente documento. Un dispositivo de codificacion de video puede obtener fragmentos de contenido de video codificado (702). El contenido de video codificado puede incluir una pluralidad de fragmentos codificados de acuerdo con HEVC. El dispositivo de codificacion de video puede obtener conjuntos de parametros asociados con los fragmentos de contenido de video (704). Los conjuntos de parametros pueden incluir SPS, PPS y/o APS. El dispositivo de codificacion de video puede encapsular fragmentos de contenido de video codificado dentro de las unidades de acceso (706). Las unidades de acceso se pueden definir como se describen en el presente documento. El dispositivo de codificacion de video puede encapsular conjuntos de parametros dentro de las unidades de acceso (708). Los
5
10
15
20
25
30
35
40
45
50
55
60
conjuntos de parametros se pueden encapsular dentro de las unidades de acceso de acuerdo con las tecnicas descritas en el presente documento. El dispositivo de codificacion de video puede encapsular conjuntos de parametros dentro de una descripcion de la muestra (710). En un ejemplo, PPS puede estar encapsulado dentro de una o mas unidades de acceso mientras que SPS esta encapsulado dentro de una descripcion de la muestra. El dispositivo de codificacion de video genera el archivo de video (712). El archivo de video puede generarse adicionalmente basandose en un formato de archivo en el que el formato de archivo se basa en las tecnicas descritas en el presente documento.
[116] En uno o mas ejemplos, las funciones descritas pueden implementarse en hardware, software, firmware o cualquier combinacion de estos. Si se implementan en software, las funciones pueden almacenarse en o transmitirse a traves de, como una o mas instrucciones o codigo, un medio legible por ordenador o ejecutarse 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 unos medios de comunicacion que incluyen cualquier medio que facilite la transferencia de un programa informatico desde un lugar a otro, por ejemplo, de acuerdo con un protocolo de comunicacion. De esta manera, los medios legibles por ordenador pueden corresponder en general a (1) unos medios de almacenamiento tangibles legibles por ordenador que son no transitorios, o (2) un medio de comunicacion tal como una senal o una onda portadora. Los medios de almacenamiento de datos pueden ser medios disponibles cualesquiera a los que se puede acceder desde uno o mas ordenadores o uno o mas procesadores para recuperar instrucciones, codigo y/o estructuras de datos para la implementacion de las tecnicas descritas en esta divulgacion. Un producto de programa informatico puede incluir un medio legible por ordenador.
[117] A modo de ejemplo, y no de manera limitativa, tales medios de almacenamiento legibles por ordenador pueden comprender RAM, ROM, EEPROM, CD-ROM u otro almacenamiento de disco optico, almacenamiento de disco magnetico u otros dispositivos de almacenamiento magnetico, memoria flash o cualquier otro medio que pueda usarse para almacenar codigo de programa deseado en forma de instrucciones o estructuras de datos y al que pueda accederse mediante un ordenador. Ademas, cualquier conexion recibe debidamente la denominacion de medio legible por ordenador. Por ejemplo, si las instrucciones se transmiten desde un sitio web, un servidor u otro origen remoto usando un cable coaxial, un cable de fibra optica, un par trenzado, una lfnea de abonado digital (DSL) o tecnologfas inalambricas tales como infrarrojos, radio y microondas, entonces el cable coaxial, el cable de fibra optica, el par trenzado, la DSL o las tecnologfas inalambricas tales como infrarrojos, radio y microondas se incluyen en la definicion de medio. Sin embargo, deberfa entenderse que los medios de almacenamiento legibles por ordenador y los medios de almacenamiento de datos no incluyen conexiones, ondas portadoras, senales u otros medios transitorios, sino que, en cambio, se orientan a medios de almacenamiento tangibles no transitorios. El termino disco, tal como se utiliza en el presente documento, incluye un disco compacto (CD), un disco laser, un disco optico, un disco versatil digital (DVD), un disco flexible y un disco Blu-ray, donde algunos discos habitualmente emiten datos magneticamente, mientras que otros discos emiten datos opticamente con laseres. Las combinaciones de los anteriores tambien deben incluirse dentro del alcance de los medios legibles por ordenador.
[118] Las instrucciones pueden ser ejecutadas por uno o mas procesadores, tales como uno o mas procesadores de senales digitales (DSP), microprocesadores de proposito general, circuitos integrados especfficos de la aplicacion (ASIC), matriz de puertas programables in situ (FPGA) u otros circuitos logicos integrados o discretos equivalentes. Por consiguiente, el termino «procesador», como se utiliza en el presente documento, puede referirse a cualquiera de las estructuras anteriores o a cualquier otra estructura adecuada para la implementacion de las tecnicas descritas en el presente documento. Ademas, en algunos aspectos, la funcionalidad descrita en el presente documento puede proporcionarse dentro de modulos de hardware y/o software dedicados configurados para la codificacion y la descodificacion, o incorporarse en un codec combinado. Asimismo, las tecnicas podrfan implementarse por completo en uno o mas circuitos o elementos logicos.
[119] Las tecnicas de la presente divulgacion se pueden implementar en una amplia variedad de dispositivos o aparatos, incluidos un telefono inalambrico, un circuito integrado (IC) o un conjunto de IC (por ejemplo, un conjunto de chips). Diversos componentes, modulos o unidades se describen en esta divulgacion para enfatizar aspectos funcionales de dispositivos configurados para realizar las tecnicas divulgadas, pero no requieren necesariamente su realizacion mediante diferentes unidades de hardware. En cambio, como se ha descrito anteriormente, diversas unidades pueden combinarse en una unidad de hardware de codec o proporcionarse por medio de un grupo de unidades de hardware interoperativas, que incluyen uno o mas procesadores como los descritos anteriormente, conjuntamente con software y/o firmware adecuados.
[120] Se han descrito diversos ejemplos. Estos y otros ejemplos estan dentro del alcance de las siguientes reivindicaciones.

Claims (12)

10
15
20
25
2.
30
35
40
45
50 3.
4.
55
5.
60 6.
7.
65
8.
REIVINDICACIONES
Un procedimiento para generar un archivo de video HEVC que incluye contenido codificado de video, el procedimiento que comprende:
obtener (702) una pluralidad de fragmentos de contenido de video codificado;
obtener (704) una primera pluralidad de conjuntos de parametros de un primer tipo asociado con la pluralidad de fragmentos de contenido de video y una segunda pluralidad de conjuntos de parametros de un segundo tipo asociado con la pluralidad de fragmentos de contenido de video;
encapsular (706) la pluralidad de fragmentos de contenido de video codificado dentro de una pluralidad de unidades de acceso de un flujo de video;
encapsular (708) la pluralidad de unidades de acceso dentro de una pluralidad de muestras en una pista de archivo;
encapsular la primera pluralidad de conjuntos de parametros; y
encapsular la segunda pluralidad de conjuntos de parametros; caracterizado por
encapsular la primera pluralidad de conjuntos de parametros dentro de la pluralidad de muestras y encapsular (710) la segunda pluralidad de conjuntos de parametros dentro de una descripcion de la muestra de la pista de archivo para soportar la transmision en banda de la primera pluralidad de conjuntos de parametros mientras se admite la transmision fuera de banda de la segunda pluralidad de conjuntos de parametros.
Un procedimiento para procesar un archivo de video HEVC que incluye contenido codificado de video, el procedimiento que comprende:
obtener una pista de archivo que incluye una pluralidad de muestras;
desencapsular una pluralidad de unidades de acceso de la pluralidad de muestras de un flujo de video en la pista de archivo;
desencapsular una pluralidad de fragmentos de contenido de video codificado a partir de la pluralidad de unidades de acceso;
desencapsular una primera pluralidad de conjuntos de parametros de un primer tipo asociado con la pluralidad de fragmentos de contenido de video; y
desencapsular una segunda pluralidad de conjuntos de parametros de un segundo tipo asociado con la pluralidad de fragmentos de contenido de video; caracterizado por
desencapsular la primera pluralidad de conjuntos de parametros de la pluralidad de muestras y desencapsular la segunda pluralidad de conjuntos de parametros de una descripcion de la muestra de la pista de archivo para admitir la transmision en banda de la primera pluralidad de conjuntos de parametros mientras se admite la transmision fuera de banda de la segunda pluralidad de conjuntos de parametros.
El procedimiento segun la reivindicacion 1 o 2, en el que el primer tipo es un conjunto de parametros de imagen (PPS) y el segundo tipo es un conjunto de parametros de secuencia (SPS).
El procedimiento segun la reivindicacion 1 o 2, en el que la descripcion de la muestra incluye un indicador que identifica un numero de conjuntos de parametros del segundo tipo almacenado dentro de la descripcion de la muestra.
El procedimiento segun la reivindicacion 1 o 2, en el que la segunda pluralidad de conjuntos de parametros consiste en conjuntos de parametros de diferentes tipos.
El procedimiento segun la reivindicacion 5, en el que las unidades de capa de abstraccion de red (NAL) de conjuntos de parametros de cada tipo se almacenan en una matriz dedicada en la descripcion de la muestra.
El procedimiento segun la reivindicacion 6, en el que la descripcion de la muestra incluye, ademas, una matriz que incluye unidades de capa de abstraccion de red (NAL) de informacion de mejora suplementaria (SEI).
El procedimiento segun la reivindicacion 1 o 2, en el que el primer tipo y el segundo tipo son ambos de un
mismo tipo, de manera que la primera pluralidad de conjuntos de parametros y la segunda pluralidad de conjuntos de parametros incluyen conjuntos de parametros del mismo tipo, y en el que la pista de archivo incluye una indicacion de si al menos algunos conjuntos de parametros del mismo tipo pueden estar encapsulados dentro de una muestra y dentro de la descripcion de la muestra.
5
9. El procedimiento segun la reivindicacion 1 o 2, en el que la primera pluralidad de conjuntos de parametros consiste en conjuntos de parametros de diferentes tipos.
10. El procedimiento segun la reivindicacion 1 o 2, en el que la descripcion de la muestra incluye informacion
10 asociada con al menos una de una velocidad de trama y una resolucion espacial del flujo de video.
11. El procedimiento segun la reivindicacion 1 o 2, en el que el flujo de video incluye multiples capas temporales y en el que la descripcion de la muestra incluye ademas una indicacion de un numero de las multiples capas temporales del flujo de video.
15
12. El procedimiento segun la reivindicacion 1 o 2, en el que la pista de archivo contiene una representacion de una asignacion de las muestras en la pista de archivo a capas temporales asf como una descripcion de caracterfsticas para cada una de las capas temporales, en el que la descripcion de caracterfsticas incluye al menos uno de una identificacion de capa temporal, un perfil, un nivel, una velocidad de bits y una velocidad
20 de trama.
13. Un medio de almacenamiento no transitorio legible por ordenador que tiene instrucciones almacenadas en el mismo que, durante la ejecucion, hace que uno o mas procesadores de un dispositivo de codificacion de video lleven a cabo el procedimiento de cualquiera de las reivindicaciones 1 a 12.
25
14. Un aparato configurado para generar un archivo de video HEVC que incluye contenido de video codificado, el aparato que comprende:
medios (70) para obtener una pluralidad de fragmentos de contenido de video codificado;
30
medios para obtener una primera pluralidad de conjuntos de parametros de un primer tipo asociado con la pluralidad de fragmentos de contenido de video y una segunda pluralidad de conjuntos de parametros de un segundo tipo asociado con la pluralidad de fragmentos de contenido de video;
35 medios (21) para encapsular la pluralidad de fragmentos de contenido de video codificado dentro de una
pluralidad de unidades de acceso (260A, 260B, ..., 260N) de un flujo de video (246);
medios (21) para encapsular la pluralidad de unidades de acceso dentro de una pluralidad de muestras en una pista de archivo;
40
medios (21) para encapsular la primera pluralidad de conjuntos de parametros; y medios (21) para encapsular la segunda pluralidad de conjuntos de parametros;
45 caracterizado por
los medios para encapsular la primera pluralidad de conjuntos de parametros que se encapsular la primera pluralidad de conjuntos de parametros (256A; 256C) dentro de muestras; y 50
los medios para encapsular la segunda pluralidad de conjuntos de parametros que se encapsular la segunda pluralidad de conjuntos de parametros (255) dentro de una descripcion de muestra de la pista de archivo (252).
55 15. Un aparato (29) configurado para procesar un archivo de video HEVC que incluye contenido de video
codificado, el aparato que comprende:
configuran para la pluralidad de
configuran para
60
medios (28) para obtener una pista de archivo que incluye una pluralidad de muestras;
medios (29) para desencapsular una pluralidad de unidades de acceso de la pluralidad de muestras de un flujo de video en la pista de archivo;
medios (29) para desencapsular una pluralidad de fragmentos de contenido de video codificado de la pluralidad de unidades de acceso;
medios (29) para desencapsular una primera pluralidad de conjuntos de parametros de un primer tipo
10
asociado con la pluralidad de fragmentos de contenido de video; y
medios (29) para desencapsular una segunda pluralidad de conjuntos de parametros de un segundo tipo asociado con la pluralidad de fragmentos de contenido de video; caracterizado por
los medios para desencapsular la primera pluralidad de conjuntos de parametros que estan configurados para desencapsular la primera pluralidad de conjuntos de parametros a partir de la pluralidad de muestras; y
los medios para desencapsular la segunda pluralidad de conjuntos de parametros que estan configurados para desencapsular la segunda pluralidad de conjuntos de parametros a partir de una descripcion de la muestra de la pista de archivo.
ES13705054.8T 2012-01-30 2013-01-30 Procedimiento de codificación de vídeo y almacenamiento de contenido de vídeo Active ES2692190T3 (es)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261592462P 2012-01-30 2012-01-30
US201261592462P 2012-01-30
US13/753,278 US10958915B2 (en) 2012-01-30 2013-01-29 Method of coding video and storing video content
US201313753278 2013-01-29
PCT/US2013/023867 WO2013116348A1 (en) 2012-01-30 2013-01-30 Method of coding video and storing video content

Publications (1)

Publication Number Publication Date
ES2692190T3 true ES2692190T3 (es) 2018-11-30

Family

ID=48870198

Family Applications (2)

Application Number Title Priority Date Filing Date
ES13705054.8T Active ES2692190T3 (es) 2012-01-30 2013-01-30 Procedimiento de codificación de vídeo y almacenamiento de contenido de vídeo
ES13703702T Active ES2713087T3 (es) 2012-01-30 2013-01-30 Procedimiento de codificación de vídeo y de almacenamiento de contenido de vídeo

Family Applications After (1)

Application Number Title Priority Date Filing Date
ES13703702T Active ES2713087T3 (es) 2012-01-30 2013-01-30 Procedimiento de codificación de vídeo y de almacenamiento de contenido de vídeo

Country Status (9)

Country Link
US (4) US10958915B2 (es)
EP (4) EP2810434A1 (es)
JP (4) JP6117244B2 (es)
KR (4) KR20140119793A (es)
CN (4) CN104205840B (es)
BR (2) BR112014018444A8 (es)
ES (2) ES2692190T3 (es)
HU (2) HUE041729T2 (es)
WO (4) WO2013116352A1 (es)

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8995534B2 (en) 2010-09-20 2015-03-31 Bevara Technologies, Llc Systems and methods for encoding and decoding
US10129556B2 (en) 2014-05-16 2018-11-13 Bevara Technologies, Llc Systems and methods for accessing digital data
US10025787B2 (en) 2011-08-17 2018-07-17 Bevara Technologies, Llc Systems and methods for selecting digital data for archival
US10958915B2 (en) 2012-01-30 2021-03-23 Qualcomm Incorporated Method of coding video and storing video content
US10313696B2 (en) * 2012-03-16 2019-06-04 Lg Electronics Inc Method for storing image information, method for parsing image information and apparatus using same
WO2013165215A1 (ko) * 2012-05-04 2013-11-07 엘지전자 주식회사 영상 정보 저장 방법 및 영상 정보 파싱 방법 그리고 이를 이용하는 장치
FI3471419T3 (fi) * 2012-06-25 2023-05-29 Huawei Tech Co Ltd Gtla (gradual temporal layer access) -kuvat videopakkauksessa
US20140098868A1 (en) 2012-10-04 2014-04-10 Qualcomm Incorporated File format for video data
RU2653308C2 (ru) * 2012-10-09 2018-05-07 Сони Корпорейшн Устройство и способ обработки изображений
US11290510B2 (en) 2012-11-29 2022-03-29 Samsung Electronics Co., Ltd. Method and apparatus for encapsulation of motion picture experts group media transport assets in international organization for standardization base media files
KR102145742B1 (ko) 2013-06-12 2020-08-19 엘지전자 주식회사 방송 신호 송신 장치, 방송 신호 수신 장치, 방송 신호 송신 방법, 및 방송 신호 수신 방법
JP5774652B2 (ja) 2013-08-27 2015-09-09 ソニー株式会社 送信装置、送信方法、受信装置および受信方法
US9444856B2 (en) 2013-09-25 2016-09-13 Ericsson Ab System and method for managing adjacent channels in an adaptive streaming environment
US20150089073A1 (en) 2013-09-25 2015-03-26 Ericsson Television Inc System and method for effectuating fast channel change in an adpative streaming environment
KR101799276B1 (ko) * 2013-09-27 2017-11-20 엘지전자 주식회사 방송 신호 송신 장치, 방송 신호 수신 장치, 방송 신호 송신 방법 및 방송 신호 수신 방법
US9648348B2 (en) * 2013-10-23 2017-05-09 Qualcomm Incorporated Multi-layer video file format designs
EP3703379B1 (en) 2013-12-16 2022-06-22 Panasonic Intellectual Property Corporation of America Transmission method, reception method, transmitting device, and receiving device
JP6652320B2 (ja) * 2013-12-16 2020-02-19 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 送信方法、受信方法、送信装置及び受信装置
US9794558B2 (en) 2014-01-08 2017-10-17 Qualcomm Incorporated Support of non-HEVC base layer in HEVC multi-layer extensions
US9911460B2 (en) * 2014-03-24 2018-03-06 Microsoft Technology Licensing, Llc Fast and smart video trimming at frame accuracy on generic platform
WO2015176009A1 (en) 2014-05-16 2015-11-19 Bevara Technologies, Llc Systems and methods for selecting digital data for archival
US10298931B2 (en) 2014-09-25 2019-05-21 Microsoft Technology Licensing, Llc Coupling sample metadata with media samples
US20160105678A1 (en) * 2014-10-13 2016-04-14 Microsoft Technology Licensing, Llc Video Parameter Techniques
GB201502205D0 (en) * 2015-02-10 2015-03-25 Canon Kabushiki Kaisha And Telecom Paris Tech Image data encapsulation
US11418812B2 (en) * 2015-02-11 2022-08-16 Qualcomm Incorporated Placement of parameter sets and sync samples in video coding
US10506244B2 (en) 2015-03-06 2019-12-10 Qualcomm Incorporated Method and apparatus for video coding using adaptive tile sizes
CN106303673B (zh) * 2015-06-04 2021-01-22 中兴通讯股份有限公司 码流对齐、同步处理方法及发送、接收终端和通信系统
GB2539461B (en) * 2015-06-16 2020-01-08 Canon Kk Image data encapsulation
US20160373771A1 (en) * 2015-06-18 2016-12-22 Qualcomm Incorporated Design of tracks and operation point signaling in layered hevc file format
EP3375194A1 (en) 2015-11-09 2018-09-19 Thomson Licensing Method and device for adapting the video content decoded from elementary streams to the characteristics of a display
KR20240017138A (ko) * 2016-02-09 2024-02-06 소니그룹주식회사 송신 장치, 송신 방법, 수신 장치 및 수신 방법
US10652630B2 (en) * 2016-05-24 2020-05-12 Qualcomm Incorporated Sample entries and random access
WO2017204109A1 (en) * 2016-05-24 2017-11-30 Sharp Kabushiki Kaisha Systems and methods for signaling scalable video in a media application format
US10388054B2 (en) 2016-06-03 2019-08-20 Apple Inc. Controlling display performance using animation based refresh rates
US10510317B2 (en) 2016-06-03 2019-12-17 Apple Inc. Controlling display performance with target presentation times
GB2560921B (en) * 2017-03-27 2020-04-08 Canon Kk Method and apparatus for encoding media data comprising generated content
US11049219B2 (en) * 2017-06-06 2021-06-29 Gopro, Inc. Methods and apparatus for multi-encoder processing of high resolution content
JP6508270B2 (ja) * 2017-09-13 2019-05-08 ソニー株式会社 送信装置、送信方法、受信装置および受信方法
WO2019143808A1 (en) 2018-01-18 2019-07-25 Bevara Technologies, Llc Browser navigation for facilitating data access
US10491912B1 (en) * 2018-07-09 2019-11-26 Tencent America LLC Method and apparatus for video coding
US11582494B2 (en) 2018-07-18 2023-02-14 Pixellot Ltd. System and method for content-layer based video compression
CN109274902B (zh) * 2018-09-04 2020-11-27 北京字节跳动网络技术有限公司 视频文件处理方法和装置
JP6648811B2 (ja) * 2018-12-13 2020-02-14 ソニー株式会社 送信装置、送信方法、受信装置および受信方法
US11228781B2 (en) 2019-06-26 2022-01-18 Gopro, Inc. Methods and apparatus for maximizing codec bandwidth in video applications
US11375219B2 (en) * 2019-09-24 2022-06-28 Tencent America LLC Coding method and system with improved dynamic internal bit depth
US11481863B2 (en) 2019-10-23 2022-10-25 Gopro, Inc. Methods and apparatus for hardware accelerated image processing for spherical projections
JP6773205B2 (ja) * 2019-12-19 2020-10-21 ソニー株式会社 送信装置、送信方法、受信装置および受信方法
US11716474B2 (en) * 2020-01-02 2023-08-01 Samsung Electronics Co., Ltd. Storage of EVC decoder configuration information
US11589032B2 (en) * 2020-01-07 2023-02-21 Mediatek Singapore Pte. Ltd. Methods and apparatus for using track derivations to generate new tracks for network based media processing applications
EP4091321A4 (en) 2020-02-14 2023-04-12 Beijing Bytedance Network Technology Co., Ltd. INTERACTION BETWEEN LOOP FILTERING AND VIDEO TILES
US11750815B2 (en) 2020-09-17 2023-09-05 Lemon, Inc. Versatile video coding track coding
US11877011B2 (en) 2020-09-17 2024-01-16 Lemon Inc. Picture dimension indication in decoder configuration record
US20220109856A1 (en) * 2020-10-06 2022-04-07 Samsung Electronics Co., Ltd. Access of essential video coding (evc) slices in a file
CN114845134B (zh) * 2020-10-16 2023-01-24 腾讯科技(深圳)有限公司 文件封装方法、文件传输方法、文件解码方法及相关设备
GB2602643B (en) * 2021-01-06 2023-04-05 Canon Kk Method, device, and computer program for optimizing encapsulation of images

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6501797B1 (en) 1999-07-06 2002-12-31 Koninklijke Phillips Electronics N.V. System and method for improved fine granular scalable video using base layer coding information
CN100379290C (zh) 2002-02-25 2008-04-02 索尼电子有限公司 用于支持mp4中的avc的方法和设备
US7613727B2 (en) 2002-02-25 2009-11-03 Sont Corporation 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
JP3835801B2 (ja) * 2003-06-11 2006-10-18 ソニー株式会社 情報処理装置および方法、プログラム記録媒体、並びにプログラム
CN101835046B (zh) 2004-08-31 2013-01-23 松下电器产业株式会社 运动图像编码方法及装置
US20070098083A1 (en) 2005-10-20 2007-05-03 Visharam Mohammed Z Supporting fidelity range extensions in advanced video codec file format
CA2584765A1 (en) 2004-10-21 2006-05-04 Sony Electonics Inc. Supporting fidelity range extensions in advanced video codec file format
JP2006203662A (ja) 2005-01-21 2006-08-03 Toshiba Corp 動画像符号化装置・復号化装置及び符号化ストリーム生成方法
CN101120593A (zh) 2005-04-13 2008-02-06 诺基亚公司 可扩展性信息的编码、存储和信号发送
US20060233247A1 (en) * 2005-04-13 2006-10-19 Visharam Mohammed Z Storing SVC streams in the AVC file format
US20070015689A1 (en) 2005-06-23 2007-01-18 Alza Corporation Complexation of metal ions with polypeptides
US7974517B2 (en) 2005-10-05 2011-07-05 Broadcom Corporation Determination of decoding information
US9020047B2 (en) 2006-05-24 2015-04-28 Panasonic Intellectual Property Management Co., Ltd. Image decoding device
EP2194717A2 (en) 2008-12-08 2010-06-09 Electronics and Telecommunications Research Institute Method for generating and processing hierarchical PES packet for digital satellite broadcasting based on SVC video
TWI387347B (zh) 2009-02-18 2013-02-21 Novatek Microelectronics Corp 圖像解碼器,參考圖資訊溝通介面以及參考圖控制方法
JP2011066844A (ja) 2009-09-18 2011-03-31 Toshiba Corp 並列復号装置及びプログラム並びに符号化データの並列復号方法
US9131033B2 (en) 2010-07-20 2015-09-08 Qualcomm Incoporated Providing sequence data sets for streaming video data
JP5259780B2 (ja) * 2010-09-14 2013-08-07 株式会社東芝 映像ファイル作成装置および映像ファイル作成方法
CN102238390B (zh) 2011-08-05 2013-03-20 中国科学院深圳先进技术研究院 基于图像库的视频和图像的编码解码方法与系统
US10958915B2 (en) 2012-01-30 2021-03-23 Qualcomm Incorporated Method of coding video and storing video content

Also Published As

Publication number Publication date
US10958915B2 (en) 2021-03-23
KR102010613B1 (ko) 2019-08-13
US20130195173A1 (en) 2013-08-01
US20130195171A1 (en) 2013-08-01
CN104205840A (zh) 2014-12-10
CN104205840B (zh) 2018-10-02
JP2015511437A (ja) 2015-04-16
US20130195172A1 (en) 2013-08-01
JP6117244B2 (ja) 2017-04-19
BR112014018445A2 (pt) 2017-06-20
BR112014018444A2 (es) 2017-06-20
WO2013116350A1 (en) 2013-08-08
BR112014018444A8 (pt) 2017-07-11
WO2013116360A1 (en) 2013-08-08
EP2810435A1 (en) 2014-12-10
US9648317B2 (en) 2017-05-09
HUE041729T2 (hu) 2019-05-28
CN104205841A (zh) 2014-12-10
EP2810433A1 (en) 2014-12-10
KR20140119793A (ko) 2014-10-10
BR112014018445B1 (pt) 2022-12-27
BR112014018445A8 (pt) 2021-06-29
US20130195205A1 (en) 2013-08-01
WO2013116348A1 (en) 2013-08-08
CN104185995A (zh) 2014-12-03
JP2015511439A (ja) 2015-04-16
JP2015511438A (ja) 2015-04-16
CN104221386A (zh) 2014-12-17
EP2810441A1 (en) 2014-12-10
WO2013116352A1 (en) 2013-08-08
JP2015506650A (ja) 2015-03-02
KR102036939B1 (ko) 2019-10-25
ES2713087T3 (es) 2019-05-17
KR20140117658A (ko) 2014-10-07
EP2810434A1 (en) 2014-12-10
KR20140117659A (ko) 2014-10-07
HUE039170T2 (hu) 2018-12-28
EP2810441B1 (en) 2018-07-25
EP2810433B1 (en) 2018-11-28
KR20140117661A (ko) 2014-10-07
JP6208150B2 (ja) 2017-10-04

Similar Documents

Publication Publication Date Title
ES2692190T3 (es) Procedimiento de codificación de vídeo y almacenamiento de contenido de vídeo
ES2781307T3 (es) Mejora en la agrupación de mosaicos en formatos de archivo HEVC y L-HEVC
ES2716852T3 (es) Formato de archivo para datos de vídeo
ES2902675T3 (es) Diseño de señalización de entrada de muestra y de punto de operación en un formato de archivo de vídeo estratificado
ES2765462T3 (es) Diseños de formato de archivo de vídeo multicapa
ES2630831T3 (es) Señalización de relaciones entre el recuento de orden de imágenes y la información de temporización, para la temporización de vídeo en la codificación de vídeo
ES2663444T3 (es) Información de temporización de codificación para codificación de vídeo
ES2904350T3 (es) Almacenamiento de pistas separadas de vistas de textura y de profundidad para codificación de múltiples vistas más profundidad