ES2713087T3 - Procedimiento de codificación de vídeo y de almacenamiento de contenido de vídeo - Google Patents
Procedimiento de codificación de vídeo y de almacenamiento de contenido de vídeo Download PDFInfo
- Publication number
- ES2713087T3 ES2713087T3 ES13703702T ES13703702T ES2713087T3 ES 2713087 T3 ES2713087 T3 ES 2713087T3 ES 13703702 T ES13703702 T ES 13703702T ES 13703702 T ES13703702 T ES 13703702T ES 2713087 T3 ES2713087 T3 ES 2713087T3
- Authority
- ES
- Spain
- Prior art keywords
- video
- file
- hevc
- flow
- syntactic element
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 230000006978 adaptation Effects 0.000 claims abstract description 11
- 230000008569 process Effects 0.000 claims description 11
- 230000001052 transient effect Effects 0.000 claims description 6
- 238000012545 processing Methods 0.000 claims description 5
- 239000000523 sample Substances 0.000 description 110
- 230000033001 locomotion Effects 0.000 description 48
- 238000005192 partition Methods 0.000 description 29
- 230000002123 temporal effect Effects 0.000 description 24
- 230000005540 biological transmission Effects 0.000 description 22
- 239000013598 vector Substances 0.000 description 21
- 238000005538 encapsulation Methods 0.000 description 20
- 239000011159 matrix material Substances 0.000 description 18
- 238000007906 compression Methods 0.000 description 15
- 238000013139 quantization Methods 0.000 description 15
- 230000006835 compression Effects 0.000 description 14
- 238000004891 communication Methods 0.000 description 13
- 230000000007 visual effect Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 230000015654 memory Effects 0.000 description 10
- 230000003044 adaptive effect Effects 0.000 description 9
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 6
- 230000008859 change Effects 0.000 description 6
- 238000013500 data storage Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000011084 recovery Methods 0.000 description 6
- 238000003491 array Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 241000023320 Luma <angiosperm> Species 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 4
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 4
- FMYKJLXRRQTBOR-UBFHEZILSA-N (2s)-2-acetamido-4-methyl-n-[4-methyl-1-oxo-1-[[(2s)-1-oxohexan-2-yl]amino]pentan-2-yl]pentanamide Chemical group CCCC[C@@H](C=O)NC(=O)C(CC(C)C)NC(=O)[C@H](CC(C)C)NC(C)=O FMYKJLXRRQTBOR-UBFHEZILSA-N 0.000 description 3
- 230000000295 complement effect Effects 0.000 description 3
- 239000000945 filler Substances 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000002457 bidirectional effect Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 208000033748 Device issues Diseases 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- AWSBQWZZLBPUQH-UHFFFAOYSA-N mdat Chemical compound C1=C2CC(N)CCC2=CC2=C1OCO2 AWSBQWZZLBPUQH-UHFFFAOYSA-N 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000013074 reference sample Substances 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000010408 sweeping Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/174—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods 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 basado en el formato de archivo multimedia basado en ISO, ISOBMFF, incluido el contenido de vídeo codificado de Codificación de Vídeo de Alta Eficiencia, HEVC, el procedimiento que comprende: obtener una pluralidad de segmentos de contenido de vídeo codificado; encapsular la pluralidad de segmentos de contenido de vídeo codificado dentro de una pluralidad de unidades de acceso de un flujo de vídeo; obtener una pluralidad de propiedades de flujo asociadas con el flujo de vídeo; y encapsular una o más de la pluralidad de propiedades de flujo dentro de una descripción de muestra de una pista de archivo; caracterizado por que encapsular una o más de la pluralidad de propiedades de flujo dentro de la descripción de muestra de la pista de archivo comprende encapsular al menos uno de un elemento sintáctico pictureWidthInLumaPixels, un elemento sintáctico pictureHeightInLumaPixels, un elemento sintáctico avgFrameRate y un elemento sintáctico constantFrameRate dentro de un registro de configuración de decodificador y no dentro de ningún conjunto de parámetros de secuencia, conjunto de parámetros de imagen y conjunto de parámetros de adaptación, en el que, para el flujo al que se aplica el registro de configuración de decodificador, pictureWidthInLumaPixels indica el ancho de la imagen decodificada, pictureHeightInLumaPixels indica el alto de la imagen decodificada, avgFrameRate indica la velocidad de tramas promedio, constantFrameRate indica si el flujo es de velocidad de tramas constante o no, o indica si la representación de cada capa temporal en el flujo es de velocidad de trama constante o no.
Description
DESCRIPCION
Procedimiento de codificacion de video y de almacenamiento de contenido de video
CAMPO TECNICO
[0001] 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
[0002] Las capacidades de video digital pueden incorporarse a una amplia gama de dispositivos, incluyendo televisiones digitales, sistemas de radiodifusion directa digital, sistemas de radiodifusion inalambrica, asistentes digitales personales (PDA), ordenadores portatiles o de escritorio, ordenadores de tablet, lectores de libros electronicos, camaras digitales, dispositivos de grabacion digital, reproductores de medios digitales, dispositivos de videojuegos, consolas de videojuegos, telefonos moviles o de radio por satelite, los denominados "telefonos inteligentes", dispositivos de videoteleconferencia, dispositivos de transmision de video y similares. Los dispositivos de video digital 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 de Video Avanzada (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, decodificar y/o almacenar informacion de video digital con mas eficiencia implementando dichas tecnicas de compresion de video.
[0003] Las tecnicas de compresion de video realizan la prediccion espacial (intraimagen) y/o la prediccion temporal (interimagen) para reducir o eliminar la redundancia intrinseca a los flujos de video. Para la codificacion de video basada en bloques, un segmento de video (es decir, una trama de video o una porcion de una trama de video) puede particionarse 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 segmento intracodificado (I) de una imagen se codifican usando prediccion espacial con respecto a muestras de referencia en bloques vecinos en la misma imagen. Los bloques de video en un segmento intercodificado (P o B) de una imagen pueden usar la prediccion espacial con respecto a muestras de referencia en bloques vecinos en la misma imagen o la prediccion temporal con respecto a muestras de referencia en otras imagenes de referencia. Las imagenes pueden denominarse tramas y las imagenes de referencia pueden denominarse tramas de referencia.
[0004] La prediccion espacial o temporal da como resultado un bloque predictivo para un bloque que se vaya a codificar. Los datos residuales representan diferencias de pixeles entre el bloque original que se vaya 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 con los datos residuales. Para una mayor compresion, los datos residuales pueden transformarse desde el dominio de pixeles en un dominio de transformada, dando como resultado coeficientes de transformada residuales, que luego se pueden cuantizar. Los coeficientes de transformada cuantizados, dispuestos inicialmente en una matriz bidimensional, pueden escanearse con el fin de generar un vector unidimensional de coeficientes de transformada, y puede aplicarse la codificacion por entropia para lograr aun mas compresion.
[0005] ISO/IEC 14496-15:2010(E) es una norma internacional relativa a la Tecnologia de la Informacion -Codificacion de objetos audiovisuales, Parte 15 formato de archivo de Codificacion Avanzada de Video (AVC). El documento de entrada a JCT_VC, JCTVC-G607, de Sjobert et al, titulado "High-level Syntax for Bitstream Extraction [Sintaxis de alto nivel para la extraccion de flujo de bits]" propuso cambios en la cabecera de la unidad NAL y en SPS para soportar la extraccion de flujo de bits tanto para la escalabilidad temporal como para cualquier otra escalabilidad de flujo de bits.
SUMARIO
[0006] La invencion se define en las reivindicaciones a las que esta dirigida ahora la referencia.
[0007] Los detalles de uno o mas ejemplos se exponen en los dibujos adjuntos y en la siguiente descripcion. Otras caracteristicas, objetivos y ventajas resultaran evidentes a partir de la descripcion y de los dibujos, y a partir de las reivindicaciones.
BREVE DESCRIPCION DE LOS DIBUJOS
[0008]
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 transmision 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
[0009] 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 la misma ID de conjunto de parametros se actualizan para incluir contenido diferente), los conjuntos de parametros pueden incluirse en la descripcion de 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 tenga que actualizarse, 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 muestra correspondiente. Al permitir que los conjuntos de parametros se incluyan en la descripcion de muestra o en las muestras del flujo a las que se aplica la descripcion de 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 muestra con la posibilidad de transmision del conjunto de parametros fuera de banda.
[0010] 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 Escalable (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 se esta desarrollando por el Equipo de Colaboracion Conjunta sobre Codificacion de Video (JCT-VC) del Grupo de Expertos sobre Codificacion de Video (VCEG) de ITU-T y el Grupo de Expertos sobre Imagenes en Movimiento (MPEG) de ISO/IEC. Un Borrador de trabajo (WD) reciente de HEVC, denominado "HEVC Working Draft 5 [Borrador de Trabajo de HEVC 5]" o "WD5", se describe en el documento JCTVC-G1103, de Bross et al., titulado "WD5: Working Draft 5 of High-Efficiency Video Coding (HEVC) [Borrador de Trabajo 5 de Codificacion de Video de Alta Eficiencia (HEVC)]" Equipo de Colaboracion Conjunta sobre 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 HEVC, Borrador de Trabajo 7, se describe en el documento HCTVC-HCTVC-11003, de Bross et al., titulado "High Efficiency Video Coding (HEVC) Text Specification Draft 7 [Borrador de Memoria Descriptiva de Texto 7 de Codificacion de Video de Alta Eficiencia (HEVC)]" Equipo de Colaboracion Conjunta sobre 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-h Ev C, que se pretende que sea el numero de la norma para la version publicada de HEVC.
[0011] Para almacenar contenido de video codificado de acuerdo con una norma de video particular, se necesita una memoria descriptiva de formato de archivo correspondiente a la norma de video particular. El ultimo borrador del formato de archivo HEVC usa el ISOBMFF como base para su formato de encapsulacion. El ultimo borrador del formato de archivo HEVC, denominado en el presente documento HEVCFF, se define de acuerdo con ISO/IEC 14496 15: 2010/Amd.1:2011(E) e incluye las siguientes referencias normativas:
(1) ISO/IEC 14496-1:2001, Tecnologia 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 se incorpora por referencia en su totalidad.
[0012] Cabe destacar que ISO/IEC 14496-12 es tecnicamente identica a ISO/IEC 15444-12. El ISOBMFF se usa como base para muchos formatos de encapsulacion de la norma de codificacion de vfdeo, asf como para muchos formatos de contenedor multimedia. Ejemplos de otros formatos de archivo basados en el 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, cabe destacar 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 vfdeo y formatos de archivo.
[0013] Los archivos estructurados de acuerdo con el ISOBMFF se pueden usar para muchos fines, incluyendo la reproduccion local de archivos multimedia, la descarga progresiva de un archivo remoto, segmentos para la Transmision Adaptativa Dinamica sobre HTTP (DASH), contenedores para transmitir contenido y sus instrucciones de paquetizacion y grabacion de flujos de medios recibidos en tiempo real. En general, ISOBMFF permite que los datos multimedia continuos, tales como los datos de audio y vfdeo, 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 manera que porciones de datos multimedia se pueden decodificar independientemente.
[0014] ISOBMFF usa un sistema 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 "cuadros". Sin embargo, los formatos de archivo especfficos basados en ISOBMFF pueden referirse a cuadros que usen terminologfa diferente, tal como "atomos". Ademas, cabe destacar que, cuando se describan 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 describa HEVCFF, el termino "unidad de acceso" puede corresponderse al termino "muestra" en el ISOBMFF y una unidad de acceso puede describirse usando cualquiera de los terminos. En ISOBMFF, un cuadro incluye un tipo de cuatro caracteres, el recuento de bytes del cuadro y la carga util. El tipo de caja define la relacion logica entre un cuadro en particular y otros tipos de cuadros. El tipo de cuadro tambien puede describir que datos son obligatorios para el tipo de cuadro particular y que datos son opcionales para el tipo de cuadro particular. Un cuadro puede formar parte de una secuencia o grupo de cuadros y puede contener otros cuadros, que pueden denominarse subcuadros.
[0015] En ISOBMFF, un cuadro 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 ademas en cuadros adicionales en el cuadro de pelfcula. Los flujos continuos de medios 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 del cuadro de pelfcula y en el que el flujo de medios consiste en una secuencia de muestras. En ISOBMFF, un flujo de medios puede incluirse dentro de cuadros, tal como un cuadro de Datos Multimedia ("mdat") y subcuadros de los mismos. 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, tales como unidades de acceso de vfdeo. Una secuencia de muestras se puede denominar 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 muestra, cada una de las cuales proporciona el formato de codificacion o encapsulacion usado 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 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 manera que la calidad y la fiabilidad mejoran cuando el contenido multimedia se transmite a traves de una red.
[0016] Similar a un archivo almacenado de acuerdo con ISOBMFF, un archivo HEVC puede incluir una serie de flujos elementales que hagan referencia a los metadatos. En el HEVCFF, una muestra puede denominarse unidad de acceso como se define en ISO/IEC 23008-HEVC. En el HEVCFF, los metadatos tambien se pueden incluir en las entradas de descripcion de muestra. El HEVCFF puede permitir indicaciones, pero cabe destacar 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 usado para el almacenamiento de contenido de vfdeo HEVC puede usar las capacidades existentes del ISOBMFF, pero tambien puede definir ampliaciones para soportar caracterfsticas de contenido de vfdeo codificado HEVC especfficas tales como: conjuntos de parametros, escalabilidad temporal y punto de recuperacion de acceso aleatorio.
[0017] 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 conjuntos de parametros de secuencia e imagen pueden desacoplar la transmision de informacion que cambie poco frecuentemente de la transmision de datos de bloque codificados. De acuerdo con HEVC, cada segmento que contenga datos de bloque codificados puede hacer referencia a un conjunto de parametros de imagen que contenga sus parametros de decodificacion. Ademas, un conjunto de parametros de imagen puede hacer referencia a un conjunto de parametros de secuencia que contenga informacion de parametros de decodificacion de nivel de secuencia. Ademas, HEVC tambien soporta conjuntos de parametros de adaptacion. Los conjuntos de parametros de adaptacion pueden contener parametros de decodificacion 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 referenciarse por un segmento, cuando sea necesario. Cabe destacar que AVC no soporta actualmente conjuntos de parametros de adaptacion.
[0018] HEVCFF puede soportar 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 permite en general que el contenido de video codificado se reproduzca a diversas velocidades de trama (por ejemplo, 30 tramas por segundo (fps) o 60 fps) a diversas velocidades de bits. En un ejemplo, una pista de video HEVC puede contener cero o una instancia de un SampleToGroupBox con un grouping_type 'tscl'. Esta instancia de SampleToGroupBox puede representar la asignacion de muestras en la pista a capas temporales. Una instancia complementaria del SampleGroupDescriptionBox con el mismo tipo de agrupacion puede, si esta presente, contener entradas de grupo de muestra TemporalLayerEntry que describan las capas temporales. Por tanto, una entrada de grupo de muestra de capa temporal se puede definir en HEVCFF como tipo de Grupo: 'tscl'; Contenedor: Cuadro de Descripcion de Grupo de Muestra ('sgpd'); Obligatorio: No; y Cantidad: cero o mas muestras.
[0019] 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 numeros 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 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.
[0020] El siguiente es un ejemplo de sintaxis que puede usarse para una entrada de capa temporal:
class TemporalLaverEntrvQ extends VisualSampleGroupEntrv ('tscl')
{ ' ' ' '
unsigned int(H) temporalLayerld;
unsigned int(H) tlProfilelndication;
unsigned int(8) tlProfileCompatibility;
unsigned int(8) tlLevellndication;
unsigned int(l6) tlMaxBitRate;
unsigned int(16) tlAvgBitRate;
unsigned int(8) dConstantFrameRate;
unsigned int(16) tlAvgFrameRate;
}
[0021] En la sintaxis de entrada de la capa temporal de ejemplo anterior, la semantica se puede definir de la siguiente manera:
temporalLayerld puede dar la ID de la capa temporal. En algunos ejemplos, para todas las muestras que sean elementos 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 VCL se describen con mas detalle a continuacion) tendran temporal_id, como se define en ISO/IEC 23008-HEVC, igual a temporalLayerId.
tlProfile lndication 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.
tlProfileCom patibility puede ser un byte definido exactamente igual que el byte que se produzca 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.
LevelIndication 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 temporalLayerld.
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 temporalLayerld.
tlAvgBitRate puede dar la velocidad de bits promedio en unidades de 1000 bits por segundo, para la representacion de la capa temporal identificada por temporalLayerld.
tlConstantFrameRate puede ser igual a 1 para indicar que la representacion de la capa temporal identificada por temporalLayerld es de velocidad de trama constante. El valor cero puede indicar que la representacion de la capa temporal identificada por temporalLayerld 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 temporalLayerld.
[0022] Ademas de la agrupacion de muestras de escalabilidad temporal, el borrador de trabajo de HEVC tambien incluye el concepto de "actualizacion de decodificacion gradual" o punto de recuperacion de acceso aleatorio. El punto de recuperacion de acceso aleatorio se puede senalar en el flujo de bits usando el mensaje de lnformacion de Mejora Complementaria (SEl) del punto de recuperacion. Este mensaje se puede encontrar al comienzo del acceso aleatorio y puede indicar cuantos datos se deben decodificar despues de la unidad de acceso en la posicion del mensaje SEl antes de que se complete la recuperacion. El concepto de la recuperacion gradual se soporta en el HEVCFF usando la agrupacion de muestra del tipo "rodillo" como se define en lSo/lEC 14496-12. La membresia del grupo puede marcar la muestra que contenga el mensaje SEl de manera que la "distancia de rodillo" se limita a ser solo positiva (es decir, un postrodillo). Cabe destacar que la forma en que el grupo de rodillos cuenta las muestras en el formato de archivo puede no coincidir con la forma en que se representan las distancias en el mensaje SEl. Por tanto, dentro de un flujo, puede ser necesario marcar el comienzo del prerrodillo, para que un decodificador de flujo pueda comenzar a decodificar desde alli. Sin embargo, en un archivo, cuando se realice un acceso aleatorio, puede desearse una busqueda determinista para la trama anterior mas cercana que se pueda decodificar perfectamente (por ejemplo, una muestra de sincronizacion o el final de un prerrodillo).
[0023] La FlG. 1 es un diagrama conceptual que ilustra la estructura de un archivo multimedia HEVC de ejemplo basado en el lSOBMFF y el HEVCFF actual. Cabe destacar que el archivo multimedia HEVC 142 de ejemplo de la FlG. 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 multimedia HEVC 142. Sin embargo, el archivo multimedia HEVC 142 puede utilizar cuadros y estructuras de encapsulacion definidas de acuerdo con HEVCFF. En el ejemplo ilustrado en la FlG. 1, el archivo multimedia HEVC 142 incluye un cuadro de metadatos 144 y flujos de datos de video 146A-146N. El cuadro de metadatos 144 puede ser similar a un cuadro "moov" de lSOBMFF y puede contener metadatos para cada uno de los flujos de datos de video 146A-146N. 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 correspondan a los flujos de datos de video 146A-146N. Un ejemplo de una tabla de metadatos es un cuadro de tabla de muestra. Cada uno de los flujos de datos de video 146A-146N puede hacer referencia a una o mas de las tablas de metadatos 148A-148N.
[0024] Los flujos de datos de video 146A-146N pueden corresponder a las pistas de video o visuales descritas en lSOBMFF. Por tanto, los flujos de datos de video 146A-146N pueden usar por lo tanto: (1) un handler_type de 'vide' en el HandlerBox; (2) una cabecera multimedia de video 'vmhd'; y (3) una derivada de la VisualSampleEntry. Un flujo de video puede estar representado por una pista de video en el archivo multimedia HEVC 142. Cada uno de los flujos de datos de video 146A-146N puede incluir una o mas unidades de acceso 150A-150N. Las unidades de acceso 150A-150N del archivo multimedia HEVC 142 se pueden definir de acuerdo con HEVCFF. Las unidades de acceso 150A-150N pueden corresponder a una muestra en lSOBMFF. Las unidades de acceso 150A-150N pueden disponerse en tramas externamente y tener un tamano suministrado por esa disposicion en tramas externa. En algunos casos, el cuadro de metadatos 144 puede incluir informacion que defina 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.
[0025] Cada unidad NAL 152A-152N puede incluir un campo de longitud que indique 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 lSO/lEC 23008-HEVC. Ademas de otros tipos de unidades NAL, HEVCFF define los siguientes tipos de unidades NAL: Las unidades NAL de datos de video, que pueden denominarse unidades NAL VCL, unidades NAL de lnformacion de Mejora Complementaria (SEl) y unidades NAL delimitadoras de la Unidad de Acceso (AU), asi como otros tipos de unidades NAL. Cabe destacar que los tipos de unidades NAL que esten reservados en lSO/lEC 23008-HEVC pueden adquirir una definicion en el futuro. Algunos lectores de archivos pueden configurarse para ignorar unidades NAL con valores reservados del tipo de unidad NAL cuando esten presentes en estas matrices. Cabe destacar 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 memorias descriptivas.
[0026] Las unidades NAL VCL pueden formatearse de manera que todas las unidades NAL de segmento codificadas para una sola imagen esten contenidas dentro de la unidad de acceso cuyos tiempo de decodificacion y tiempo de composicion sean 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.
[0027] Los flujos de datos de video 146A-146N tambien pueden formatearse de manera que todas las unidades NAL de SEI esten contenidas en la unidad de acceso cuyo tiempo de decodificacion se produzca antes del momento en que los mensajes SEI entren en vigor. El orden de los mensajes SEI dentro de las unidades de acceso 150A-150N puede ser como se define de acuerdo con 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 contenga esa imagen y que los mensajes SEI pertenecientes a una secuencia de imagenes esten incluidos en la unidad de acceso que contenga la primera imagen de la secuencia a la que pertenezca el mensaje SEI. Las unidades NAL delimitadoras 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 de datos de video 146A-146N y dentro de una unica unidad de acceso esten dispuestas en un orden de decodificacion valido como se especifica en ISO/IEC 23008-HEVC.
[0028] 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 delimitadora AU, una unidad NAL SEI y dos unidades NAL de segmento. Ademas, cabe destacar que el HEVCFF puede soportar el concepto de submuestras descrito en ISOMBFF. Una submuestra se define como una o mas unidades n Al contiguas dentro de una muestra y que tienen el mismo valor de los siguientes campos; RefPicFlag y VclNalUnitFlag. En la unidad de acceso 150 de ejemplo ilustrada en la FIG. 2, las dos unidades NAL de segmento pueden formar una submuestra. En la Seccion 8.7.7 de ISO/IEC 14496-12, se describe un ejemplo de un cuadro de informacion de submuestra que puede usarse para un flujo HEVC. Una submuestra puede incluir multiples unidades NAL y su campo o campos de longitud de unidad NAL anterior(es). Cuando se usen submuestras, la presencia de un cuadro de informacion de submuestra puede ser opcional. Sin embargo, de acuerdo con HEVCFF, si el cuadro de informacion de submuestra esta presente en una pista que contiene datos HEVC, puede requerirse que el campo subsample_priority se establezca en un valor de acuerdo con la memoria descriptiva de este campo en ISO/IEC 14496-12. Ademas, puede requerirse que el campo descartable se establezca en 1 solo si esta muestra todavia puede decodificarse si esta submuestra se descarta (por ejemplo, la submuestra consiste en una unidad NAL SEI). El campo reservado se define en HEVCFF de acuerdo con la siguiente sintaxis de ejemplo:
unsigned int(I) RefPicFlag;
unsigned int(!) VclNalUnitFlag;
unsigned int(30) reserved = 0;
[0029] En la sintaxis anterior de ejemplo, 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 VLC.
[0030] Con referencia de nuevo a la FIG. 1, el archivo multimedia HEVC 142 puede formatearse de manera que toda la informacion de temporizacion sea externa a los flujos de datos de video 146A-146N. Sin embargo, en algunos ejemplos, el archivo HEVC 142 puede incluir mensajes SEI de temporizacion de imagen que definen marcas de tiempo de presentacion o composicion en los flujos de datos de video 146A-146N, ya que el mensaje SEI de temporizacion de imagen puede contener informacion distinta a la temporizacion y puede requerirse para la verificacion de conformidad. El archivo multimedia HEVC 142 puede almacenar toda la informacion de temporizacion en las tablas de metadatos de la muestra 148A-148N. La informacion de temporizacion almacenada en las tablas de metadatos 148A-148N puede anular cualquier temporizacion proporcionada en los flujos de datos de video 146A-146N. Ademas, el archivo multimedia HEVC 142 puede configurarse de manera que la informacion de temporizacion proporcionada dentro de un flujo se ignore por un decodificador ya que puede contradecir la informacion de temporizacion proporcionada en otro archivo multimedia HEVC 142 y, ademas, en algunos casos, la informacion de temporizacion proporcionada dentro de un flujo puede no ser correcta o coherente dentro de si misma. Cabe destacar que las restricciones de informacion de temporizacion pueden imponerse debido al hecho de que la edicion de postcompresion, combinacion o retemporizacion de un flujo en el nivel de formato de archivo puede invalidar o hacer incoherente cualquier informacion de temporizacion incrustada presente dentro del flujo.
[0031] En algunos ejemplos, el archivo multimedia HEVC 142 puede configurarse de manera que las unidades de acceso 150A-150N se almacenen en orden de decodificacion. Por tanto, si no se usa el reordenamiento de la imagen
y el tiempo de decodificacion (DTS) y el tiempo de composicion (CTS) son los mismos, entonces la presentacion es igual que el orden de decodificacion y solo se necesita usar una tabla de tiempos de muestra 'stts'. Cabe destacar que cualquier tipo de imagen puede reordenarse en video HEVC, no solo en imagenes B. Si el tiempo de decodificacion 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 VCL en la unidad de acceso indican que la imagen codificada contenida en la unidad de acceso es una imagen de actualizacion de decodificacion instantanea (IDR).
[0032] En algunos casos, el archivo multimedia HEVC 142 puede configurarse de manera que se requiera que los flujos de datos de video 146A-146N no incluyan los codigos de inicio. Sin embargo, los sistemas que deseen suministrar un flujo para el archivo multimedia HEVC 142 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 velocidad de bits variable en el archivo multimedia HEVC 142 y pueden llenarse para la transmision si es necesario. Por tanto, el archivo multimedia HEVC 142 puede configurarse de manera que los flujos de datos de video 146A-146N no requieren incluir unidades NAL de datos de relleno y mensajes SEI de datos de relleno. Cabe destacar que si el archivo multimedia HEVC 142 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 caracteristicas de flujo de bits del archivo multimedia HEVC 142 pueden cambiar con respecto a la conformidad con el decodificador de referencia hipotetico (HRD) cuando se haga funcionar el HRD en modo de Velocidad Constante de Bits (CBR) como se especifica en ISO/IEC 23008-HEVC, Anexo C.
[0033] 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 tanto, algunas porciones del archivo multimedia HEVC 142 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.
[0034] Un aspecto del AVCFF es que, dado que los conjuntos de parametros pueden incluirse en la descripcion de muestra o en una pista de conjunto de parametros independiente, puede haber un aumento innecesario del numero de pistas o del numero de descripciones de muestra, donde cada una corresponde a un subconjunto del flujo de video completo en una pista de video. Cabe destacar que el HEVCFF actual no permite pistas de conjuntos de parametros independientes.
[0035] Otro aspecto del AVCFF es que se agrupan diferentes tipos de conjuntos de parametros, ya esten incluidos en la descripcion de muestra o en una pista de conjunto de parametros por separado. Por tanto, en los archivos AVC que no usen una pista de parametros independiente, no es posible incluir algunos tipos de conjuntos de parametros en una descripcion de muestra mientras se excluyen otros. Por tanto, en este caso, SPS y PPS se almacenan ambos en la descripcion de muestra, aunque PPS puede cambiar mas frecuentemente. De esta manera, PPS no se puede transmitir independientemente de SPS.
[0036] Otro aspecto del AVCFF es que una descripcion de muestra incluye una matriz para un SPS y otra matriz para PPS. En AVCFF, estas matrices tambien pueden contener unidades NAL SEI que contengan mensajes SEI declarativos. Por tanto, un analizador de archivos deberia verificar la cabecera de 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 SEI.
[0037] Otro aspecto del formato de archivo AVC es que las propiedades de transmision como la resolucion espacial y la velocidad de tramas que sean 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 muestra y por tanto no son convenientemente accesibles con el diseno AVCFF.
[0038] Otro aspecto del formato de archivo AVC es que las propiedades de escalabilidad temporal, tales 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.
[0039] 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 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 decodificar en un momento posterior. El dispositivo de origen 12 y el dispositivo de destino 14 pueden configurarse de manera que el archivo multimedia HEVC 142, descrito con respecto a la FIG. 1, pueda 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 de entre una amplia gama de dispositivos, incluidos ordenadores de escritorio, ordenadores plegables (es decir, portatiles), ordenadores de tablet, decodificadores, telefonos tales como los denominados telefonos «inteligentes», las denominadas almohadillas
«inteligentes», televisores, camaras, dispositivos de visualizacion, reproductores de medios digitales, consolas de videojuegos, un dispositivo de transmision de vfdeo en continuo o similares. En algunos casos, el dispositivo de origen 12 y el dispositivo de destino 14 pueden estar equipados para la comunicacion inalambrica.
[0040] En el ejemplo de la FIG. 3, el dispositivo de origen 12 incluye una fuente de vfdeo 18, un codificador de vfdeo 20, una unidad de encapsulacion 21 y una interfaz de salida 22. La fuente de vfdeo 18 puede incluir una fuente tal como un dispositivo de captura de vfdeo, por ejemplo, una videocamara, un archivo de vfdeo que contenga vfdeo previamente capturado, una interfaz de alimentacion de vfdeo para recibir vfdeo desde un proveedor de contenido de vfdeo y/o un sistema de graficos de ordenador para generar datos de graficos de ordenador como el vfdeo de origen, o una combinacion de dichas fuentes. El codificador de vfdeo 20 puede codificar el vfdeo capturado, capturado previamente o generado por ordenador. El codificador de vfdeo 20 puede funcionar de acuerdo con una norma de compresion de vfdeo, tal como HEVC, y puede conformarse al modelo de prueba HEVC (HM). Ademas, el codificador de vfdeo 20 puede funcionar de acuerdo con otras normas de vfdeo descritas en el presente documento.
[0041] Para la codificacion de vfdeo de acuerdo con el HEVC, una trama de vfdeo puede particionarse 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 vfdeo. Una CU tiene usualmente un componente de luminancia, indicado como Y, y dos componentes de croma, indicadas como U y V. En funcion del formato de muestreo de vfdeo, el tamano de las componentes U y V, en terminos del numero de muestras, puede ser el mismo o diferente al tamano del 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 vfdeo, 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 vfdeo, tales como los que se definen de acuerdo con AVC u otras normas o procesos de codificacion de vfdeo patentados. Los esfuerzos de normalizacion de la HEVC se basan en un modelo de un dispositivo de codificacion de vfdeo denominado Modelo de Prueba de HEVC (HM). El HM supone varias capacidades de los dispositivos de codificacion de vfdeo sobre los 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.
[0042] Una secuencia de vfdeo incluye tfpicamente una serie de tramas o imagenes de vfdeo. Un grupo de imagenes (GOP) comprende en general una serie de una o mas de las imagenes de vfdeo. 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 describa un numero de imagenes incluidas en el GOP. Cada segmento de una imagen puede incluir datos sintacticos de segmento que describan una modalidad de codificacion para el segmento respectivo. El codificador de vfdeo 20 actua tfpicamente sobre bloques de vfdeo dentro de segmentos de vfdeo individuales con el fin de codificar los datos de vfdeo. Un bloque de vfdeo puede incluir una o mas TU o PU que correspondan a un nodo de codificacion dentro de una CU. Los bloques de vfdeo pueden tener tamanos fijos o variables y pueden diferir de tamano de acuerdo con una norma de codificacion especificada.
[0043] 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 H.264, excepto en que una CU no tiene distincion de tamano. Por tanto, una CU puede dividirse en subCU. En general, las referencias de esta divulgacion a una CU pueden referirse a una unidad de codificacion mas grande de una imagen o a una subCU de una LCU. Una LCU puede dividirse en subCU y cada subCU puede dividirse ademas en subCU. Los datos sintacticos para un flujo de bits pueden definir un numero maximo de veces en que puede dividirse una LCU, lo que se denomina profundidad de CU. Por consiguiente, un flujo de bits tambien puede definir una unidad de codificacion mas pequena (SCU). Esta divulgacion tambien usa el termino "bloque" o "porcion" para referirse a cualquiera de entre una CU, una PU o una TU. En general, "porcion" puede referirse a cualquier subconjunto de una trama de vfdeo.
[0044] Una LCU puede asociarse a una estructura de datos de arbol cuaternario. En general, una estructura de datos de arbol cuaternario incluye un nodo por CU, donde un nodo rafz corresponde a la LCU. Si una CU se divide en cuatro subCU, el nodo correspondiente a la CU incluye cuatro nodos hoja, cada uno de los cuales corresponde a una de las subCU. Cada nodo de la estructura de datos en arbol cuadruple puede proporcionar datos sintacticos para la CU correspondiente. Por ejemplo, un nodo en el arbol cuadruple puede incluir un indicador de division, que indica si la CU correspondiente al nodo esta dividida en varias subCU. Los elementos sintacticos para una CU pueden definirse de manera recursiva y pueden depender de si la CU esta dividida en subCU. Si una CU no esta mas dividida, se denomina CU hoja. En esta divulgacion, 4 subCU 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 subCU de tamano 8x8 tambien se denominaran CU hoja aunque la CU de tamano 16x16 no se haya dividido nunca.
[0045] 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 cuadruple que indica como la CU hoja esta particionada en
TU. Esta divulgacion hace referenda al arbol cuaternario que indica como una LCU esta particionada como un arbol cuaternario de CU, e indicando el arbol cuaternario como una CU hoja esta particionada 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.
[0046] 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, un componente horizontal del vector de movimiento, un componente vertical del vector de movimiento, una resolucion para el vector de movimiento (por ejemplo, una precision de un cuarto de pixel o una precision de un octavo de pixel), una trama de referencia a la que apunta 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 particion de la CU en una o mas PU. Las modalidades de particion pueden diferir en funcion de si la CU esta sin codificar, si esta codificada en la modalidad de intraprediccion o si esta 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.
[0047] Como ejemplo, el HM soporta prediccion en diversos tamanos de PU. Si se supone que el tamano de una CU particular es 2Nx2N, el HM soporta intraprediccion en tamanos de PU de 2Nx2N o NxN e interprediccion en tamanos de PU simetricas de 2Nx2N, 2NxN, Nx2N o NxN. El HM tambien soporta la particion 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 particionada, mientras que la otra direccion esta particionada en un 25 % y un 75 %. La porcion de la CU correspondiente a la particion del 25 % esta indicada por una «n» seguida por una indicacion de «arriba», «abajo», «izquierda» o «derecha». Por tanto, por ejemplo, «2NxnU» se refiere a una CU 2Nx2N que esta particionada horizontalmente y tiene una PU 2Nx0,5N encima y una PU 2Nx1,5N debajo.
[0048] En esta divulgacion, «NxN» y «N por N» pueden usarse indistintamente para hacer referencia a las dimensiones de pixeles de un bloque de video en terminos de dimensiones verticales y horizontales, por ejemplo, 16x16 pixeles o 16 por 16 pixeles. En general, un bloque de 16x16 tendra 16 pixeles en una direccion vertical (y = 16) y 16 pixeles en una direccion horizontal (x = 16). Asimismo, un bloque de NxN tiene en general N pixeles en una direccion vertical y N pixeles en una direccion horizontal, donde N representa un valor entero no negativo. Los pixeles de un bloque se pueden disponer en filas y columnas. Ademas, no es necesario que los bloques tengan necesariamente el mismo numero de pixeles en la direccion horizontal y en la direccion vertical. Por ejemplo, los bloques pueden comprender NxM pixeles, donde M no es necesariamente igual a N.
[0049] 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 intracodificarse (I) usando prediccion espacial con respecto a las muestras de referencia en bloques de referencia contiguos en la misma trama (o segmento), y otras unidades de prediccion pueden intercodificarse unidireccionalmente (P) o intercodificarse bidireccionalmente (B) con respecto a bloques de muestras de referencia en otras tramas (o segmentos) previamente codificadas. En cada caso, las muestras de referencia se pueden usar para formar un bloque predictivo para un bloque que vaya a codificarse.
[0050] 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 pixeles entre los valores de pixel en el bloque que vaya a codificarse y los valores de pixel en el 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 numeros enteros, una transformada de Karhunen-Loeve (KL) u otra transformada.
[0051] Los datos residuales en un bloque de transformada, tales como una TU, pueden estar dispuestos en una matriz bidimensional (2D) de valores de diferencia de pixeles en el dominio espacial de pixeles. Una transformada convierte los valores de pixeles residuales en una matriz bidimensional de coeficientes de transformada en un dominio de transformada, tal como un dominio de frecuencia. Para una mayor compresion, los coeficientes de transformada pueden cuantizarse antes de la codificacion por entropia. Un codificador por entropia aplica entonces codificacion por entropia, tal como la Codificacion de Longitud Variable Adaptativa al Contexto (CAVLC), la Codificacion Aritmetica Binaria Adaptativa al Contexto (CABAC), la Codificacion por Entropia de Division de Intervalos de probabilidad (PIPE), o similares, a los coeficientes de transformada cuantizados.
[0052] Para codificar por entropia un bloque de coeficientes de transformada cuantizados, se realiza en general un proceso de escaneo para que se reordene la matriz bidimensional (2D) de coeficientes de transformada cuantizados en un bloque, de acuerdo con un orden de escaneo particular, en una matriz ordenada, unidimensional (1D), es decir, un vector, de coeficientes de transformada. A continuacion se aplica la codificacion por entropia al vector de
coeficientes de transformada. El escaneo de los coeficientes de transformada cuantizados en una unidad de transformada serializa la matriz bidimensional de coeficientes de transformada para el codificador por entropfa. Puede generarse una correlacion de significancia para indicar las posiciones de los coeficientes significativos (es decir, distintos de 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.
[0053] En HEVC, la informacion de posicion de la transformada significativa (por ejemplo, el mapa 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. El mapa 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.
[0054] Tras cualquier transformada para generar coeficientes de transformada, el codificador de vfdeo 20 puede realizar la cuantizacion de los coeficientes de transformada. La cuantizacion se refiere en general a un proceso en el que los coeficientes de transformada se cuantizan para reducir posiblemente la cantidad de datos usados para representar los coeficientes, proporcionando compresion adicional. El proceso de cuantizacion puede reducir la profundidad de bits asociada a algunos, o a la totalidad, de los coeficientes. Por ejemplo, un valor de bit n se puede redondear a un valor de bit m durante la cuantizacion, donde n es mayor que m. En algunos ejemplos, el codificador de vfdeo 20 puede utilizar un orden de escaneo predefinido para escanear los coeficientes de transformada cuantizados para producir un vector serializado que puede codificarse por entropfa. En otros ejemplos, el codificador de vfdeo 20 puede realizar un escaneo adaptativo.
[0055] La FIG. 4 es un diagrama de bloques que ilustra un codificador de vfdeo 20 de ejemplo que puede implementar las tecnicas descritas en esta divulgacion. El codificador de vfdeo 20 puede realizar intracodificacion e intercodificacion de bloques de vfdeo dentro de segmentos de vfdeo. La intracodificacion en basa en la prediccion espacial para reducir o eliminar la redundancia espacial en el vfdeo dentro de una trama o imagen de vfdeo determinada. La intercodificacion se basa en la prediccion temporal para reducir o eliminar la redundancia temporal en el vfdeo dentro de tramas o imagenes adyacentes de una secuencia de vfdeo. El intramodo (modo I) puede referirse a cualquiera de varios modos de compresion espacial. Los intermodos, tales como la prediccion unidireccional (modo P) o la prediccion bidireccional (modo B), pueden referirse a cualquiera de varios modos de compresion temporal.
[0056] En el ejemplo de la FIG. 4, el codificador de vfdeo 20 incluye un modulo de particion 35, un modulo de prediccion 41, una memoria de imagenes de referencia 64, un sumador 50, un modulo de transformada 52, un modulo de cuantizacion 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 particion 35. Para la reconstruccion de bloques de vfdeo, el codificador de vfdeo 20 incluye ademas un modulo de cuantizacion inversa 58, un modulo de transformada inversa 60 y un sumador 62. Tambien se puede incluir un filtro de desbloqueo (no mostrado en la FIG. 4) para filtrar lfmites de bloques y eliminar los problemas de bloqueo del vfdeo reconstruido. Si se desea, el filtro de desbloqueo filtrara tfpicamente la salida del sumador 62. Tambien se pueden usar filtros de bucle adicionales (en el bucle o tras el bucle), ademas del filtro de desbloqueo.
[0057] Como se muestra en la FIG. 4, el codificador de vfdeo 20 recibe datos de vfdeo, y el modulo de particion 35 puede particionar los datos en bloques de vfdeo. Esta particion tambien puede incluir la particion de datos de vfdeo en segmentos, mosaicos u otras unidades mas grandes, asf como particiones de bloques de vfdeo, por ejemplo, de acuerdo con una estructura de arbol cuaternario residual de LCU y CU para producir PU y TU. El modulo de particion 35 puede particionar bloques de datos de vfdeo tales como LCU en subbloques tales como CU, PU y TU. Por ejemplo, el modulo de particion 35 puede particionar bloques de datos de vfdeo basandose en la evaluacion de sistemas de particion previos en pasadas de codificacion previas. Por ejemplo, el modulo de particion 35 puede particionar inicialmente una trama o un segmento en LCU, y particionar cada una de las LCU en subCU 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 particion 35 se muestra en la FIG. 4 como un bloque independiente para fines ilustrativos, las funciones de particion realizadas por el modulo de particion 35 pueden integrarse con las funciones de seleccion y prediccion de modo del modulo de prediccion 41, particularmente cuando el analisis de velocidaddistorsion realizado por el modulo de prediccion 41 pueda usarse para determinar, al menos en parte, aspectos de la particion aplicada a una LCU para producir CU, subCU, PU y TU. En general, el modulo de prediccion 41, junto con el modulo de particion 35, puede producir una estructura de datos de arbol cuaternario indicativa de la particion de una LCU en subCU. Las CU de nodos hoja del arbol cuaternario pueden incluir una o mas PU y una o mas TU.
[0058] El modulo de prediccion 41, representado por el modulo de particion 35, puede proporcionar diversas tecnicas para definir un sistema de particion para una de la pluralidad de componentes de vfdeo independientemente de otros componentes de vfdeo, como se describe en esta divulgacion. En otro aspecto, el modulo de prediccion 41 puede determinar si se define un sistema de particion para al menos uno de la pluralidad de componentes de vfdeo de un bloque de vfdeo independientemente de los otros componentes de vfdeo basandose en una o mas propiedades del bloque de vfdeo. En algunos ejemplos, las propiedades pueden incluir al menos uno de tamano de bloque, tipo de imagen, particion de bloque o informacion de movimiento.
[0059] El codificador de video 20 ilustra en general los componentes que codifican bloques de video dentro de un segmento de video que se vaya a codificar. El segmento se puede dividir en multiples bloques de video (y posiblemente en conjuntos de bloques de video denominados mosaicos). El modulo de prediccion 41 puede seleccionar uno de entre una pluralidad de posibles modos de codificacion, tal como uno de entre una pluralidad de modos de intracodificacion, o uno de 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 bloque residual, y al sumador 62 para reconstruir el bloque codificado para su uso como imagen de referencia.
[0060] 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 vecinos de la misma trama o segmento que el bloque actual que se vaya a codificar 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.
[0061] Si se selecciona la interprediccion en lugar de la intraprediccion para un bloque de video actual, el modulo de estimacion de movimiento 42 puede configurarse para determinar el modo de interprediccion para un segmento de video de acuerdo con un patron predeterminado para una secuencia de video. El patron predeterminado puede designar segmentos de video en la secuencia como segmentos P, segmentos B o segmentos 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 por 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 en relacion con un bloque predictivo de una imagen de referencia.
[0062] En la intercodificacion, un bloque predictivo es un bloque del que se descubre que coincide estrechamente con la PU del bloque de video que se vaya a codificar en terminos de diferencia de pixeles, que puede determinarse mediante la suma de la diferencia absoluta (SAD), la suma de la diferencia al cuadrado (SSD) o de otras mediciones de diferencia. En algunos ejemplos, el codificador de video 20 puede calcular los valores para las posiciones de pixeles de numeros subenteros de las 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 fraccionarias 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 pixel completo y a las posiciones de pixel fraccionario, y emitir un vector de movimiento con una precision de pixel fraccionario.
[0063] El modulo de estimacion de movimiento 42 calcula un vector de movimiento para una PU de un bloque de video en un segmento 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 a partir 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 una memoria de imagenes de referencia 64. El modulo de estimacion de movimiento 42 envia el vector de movimiento calculado al modulo de codificacion por entropia 56 y al modulo de compensacion de movimiento 44, por ejemplo, junto con otros elementos sintacticos.
[0064] La compensacion de movimiento, realizada por el modulo de compensacion de movimiento 44, puede implicar buscar o generar el bloque predictivo basandose en el vector de movimiento determinado por la estimacion de movimiento, realizando posiblemente interpolaciones a la precision de subpixel. 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 pixel del bloque predictivo a los valores de pixel del bloque de video actual que se este codificando, formando valores de diferencia de pixel. Los valores de diferencia de pixel forman datos residuales para el bloque, y pueden incluir componentes de diferencia tanto de luma como de croma. 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 segmento de video para su uso por el decodificador de video 30 en la decodificacion de los bloques de video del segmento de video.
[0065] El modulo de intraprediccion 46 puede realizar la intraprediccion de un bloque actual, como alternativa a la interprediccion realizada por el modulo de estimacion de movimiento 42 y el modulo de compensacion de movimiento 44, descrita anteriormente. En particular, el modulo de intraprediccion 46 puede determinar un modo de intraprediccion que se vaya 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 diversos 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 que se vaya a usar a partir de los modos probados. Por ejemplo, el modulo de intraprediccion 46 puede calcular valores de velocidad-distorsion mediante un analisis de velocidad-distorsion para los diversos modos de intraprediccion probados, y seleccionar el modo de intraprediccion que tenga las mejores caracteristicas de velocidad-distorsion entre los modos probados. El analisis de velocidad-distorsion determina en general una cantidad de distorsion (o error) entre un bloque codificado y un bloque original no codificado que se codifico para generar el bloque codificado, asi como una velocidad de bits (es decir, un numero de bits) usada para generar el bloque codificado. El modulo de intraprediccion 46 puede calcular relaciones 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.
[0066] En cualquier caso, tras seleccionar un modo de intraprediccion para un bloque, el modulo de intraprediccion 46 puede proporcionar informacion que indique el modo de intraprediccion seleccionado para el bloque al modulo de codificacion por entropia 56. Por ejemplo, el modulo de intraprediccion 46 puede proporcionar senalizacion, tal como uno o mas elementos sintacticos, para indicar un intramodo seleccionado. El modulo de codificacion por entropia 56 puede codificar la informacion que indique 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 clave), definiciones de contextos de codificacion para diversos bloques e indicaciones de un modo de intraprediccion mas probable, una tabla de indices de modos de intraprediccion y una tabla de indices de modos de intraprediccion modificadas para su uso para cada uno de los contextos.
[0067] Despues de que el modulo de prediccion 41 genera 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 residuales del bloque residual pueden incluirse en una o mas TU y aplicarse al modulo de transformada 52. El modulo de transformada 52 transforma los datos de video residuales en coeficientes de transformada residuales mediante 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 residuales de un dominio de pixel en un dominio de transformada, tal como un dominio de frecuencia.
[0068] El modulo de transformada 52 puede enviar los coeficientes de transformada resultantes al modulo de cuantizacion 54. El modulo de cuantizacion 54 cuantiza los coeficientes de transformada para reducir mas la velocidad de bits. El proceso de cuantizacion puede reducir la profundidad de bits asociada a algunos, o a la totalidad, de los coeficientes. El grado de cuantizacion se puede modificar ajustando un parametro de cuantizacion. En algunos ejemplos, el modulo de cuantizacion 54 puede realizar, a continuacion, un escaneo de la matriz que incluya los coeficientes de transformada cuantizados. De forma alternativa, el modulo de codificacion por entropia 56 puede realizar el escaneo.
[0069] Tras la cuantizacion, el modulo de codificacion por entropia 56 realiza la codificacion por entropia de los coeficientes de transformada cuantizados. Por ejemplo, el modulo de codificacion por entropia 56 puede realizar una codificacion de longitud variable adaptativa segun el contexto (CAVLC), una codificacion aritmetica binaria adaptativa segun el contexto (CABAC), una codificacion aritmetica binaria adaptativa segun el contexto basada en la sintaxis (SBAC), una codificacion de entropia de particion de intervalo de probabilidad (PIPE) u otra metodologia o tecnica de codificacion por entropia. Tras la codificacion por entropia realizada por el modulo de codificacion por entropia 56, el flujo de bits codificado puede transmitirse al decodificador de video 30, o archivarse para su posterior transmision o recuperacion por el decodificador de video 30. El modulo de codificacion por entropia 56 tambien puede realizar la codificacion por entropia de los vectores de movimiento y de los otros elementos sintacticos para el segmento de video actual que se este codificando.
[0070] El modulo de cuantizacion inversa 58 y el modulo de transformada inversa 60 aplican una cuantizacion inversa y una transformada inversa, respectivamente, para reconstruir el bloque residual en el dominio del pixel, para su uso posterior como 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 pixel de subentero para su uso en la estimacion de movimiento. El sumador 62 anade el bloque residual reconstruido al bloque de prediccion con compensacion de movimiento producido 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 bloque de referencia para realizar la interprediccion de un bloque en una trama o imagen de video subsiguiente.
[0071] 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 multimedia HEVC 142 ilustrado en la FlG. 1, los tipos de conjuntos de parametros usados con la norma de codificacion de video HEVC incluyen SPS, PPS y APS. Cada conjunto de parametros tiene un identificador, y cada segmento codificado de
acuerdo con la norma HEVC, como se describio anteriormente, puede hacer referencia al conjunto de parametros con el que se codifico usando el identificador del conjunto de parametros.
[0072] 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 en la version actual del HEVCFF.
[0073] La FIG. 5 es un diagrama de bloques que ilustra componentes de un modulo de encapsulacion 21 de ejemplo. En el ejemplo de la FIG. 5, el modulo de encapsulacion 21 incluye la interfaz de entrada de video 70, el modulo de creacion de archivos de video 72 y la interfaz de salida de archivo de video 76. El modulo de creacion de archivos de video 70, en este ejemplo, incluye el constructor 74 de la unidad de la capa de abstraccion de red (NAL).
[0074] La interfaz de entrada de video 70 puede recibir contenido de video codificado. La interfaz de entrada de video 70 puede recibir contenido de video codificado desde el codificador de video 20 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 de entrada de video 70 puede enviar el contenido de video codificado al modulo de creacion de archivos de video 72 para montarlo en un archivo de video. En algunos casos, la interfaz de entrada de video 70 puede facilitar el montaje de un archivo de video organizando o almacenando en memoria intermedia contenido de video codificado antes de que se emita al modulo de creacion de archivos de video 72.
[0075] En general, el modulo de creacion de archivos de video 72 puede generar un archivo de video que incluya el contenido de video codificado recibido. En un ejemplo, el modulo de creacion de archivos de video 72 puede crear un archivo de video, tal como el archivo multimedia HEVC 142 descrito con respecto a la FIG. 1. El modulo de creacion de archivos de video 72 puede corresponder a una unidad de control que incluya hardware, software y/o firmware configurada para realizar las funciones y procedimientos atribuidos a los mismos. La unidad de control puede realizar ademas las funciones atribuidas al modulo de encapsulacion 21 en general. Para ejemplos en los que el modulo de creacion de archivos de video 72 esta incorporado en software y/o firmware, el modulo de encapsulacion 21 puede incluir un medio legible por ordenador que comprenda instrucciones para el modulo de creacion de archivos de video 72 y una unidad de procesamiento para ejecutar las instrucciones. Los submodulos del modulo de creacion de archivos de video 72 (constructor de unidades n Al 74 en este ejemplo) pueden implementarse como modulos de hardware y/o modulos de software individuales, y pueden integrarse funcionalmente o separarse adicionalmente en submodulos adicionales. El modulo de creacion de archivos de video 72 puede corresponder a cualquier unidad de procesamiento o circuitos de procesamiento adecuados, tales como, por ejemplo, uno o mas microprocesadores, circuitos integrados especificos de la aplicacion (ASIC), matrices de puertas programables por campo (FPGA), procesadores de senales digitales (DSP), o cualquier combinacion de los mismos. El modulo de creacion de archivos de video 72 puede incluir, ademas, instrucciones de almacenamiento de medios no transitorios legibles por ordenador para el constructor de unidades NAL 74, asi como tambien un procesador para ejecutar las instrucciones.
[0076] En un ejemplo, el modulo de creacion de archivos de video 72 puede configurarse para emitir datos de video codificados de acuerdo con un formato de archivo donde los conjuntos de parametros pueden incluirse en la descripcion de muestra o en las muestras o unidades de acceso del flujo al que se aplica la descripcion de muestra. En un ejemplo, si se incluye un tipo de conjunto de parametros en la descripcion de muestra, es posible que no se incluya tambien dentro de las propias muestras. Es decir, en este ejemplo en particular, para un flujo de video al que se aplica una descripcion de muestra en particular, un tipo en particular de conjunto de parametros, si esta presente, puede almacenarse en la descripcion de 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 muestra como en las muestras del flujo al que se aplica la descripcion de muestra. Cuando se permite la inclusion de conjuntos de parametros en la descripcion de muestra o en las propias muestras, se puede incluir una indicacion en la descripcion de muestra para indicar si existen conjuntos de parametros incluidos en las muestras ademas de los incluidos en la descripcion de muestra. En otro ejemplo, el modulo de creacion de archivos de video 72 puede configurarse para emitir datos de video codificados de acuerdo con un formato de archivo donde solo uno o mas de un tipo particular de conjunto de parametros puede incluirse tanto en la descripcion de muestra como en las muestras del flujo al que se aplica la descripcion de muestra. Por ejemplo, en algunos casos, un formato de archivo puede permitir que se incluya PPS tanto en la descripcion de muestra como en las muestras, mientras que SPS solo puede incluirse en la descripcion de 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 muestra para indicar si puede haber conjuntos de parametros del tipo particular incluido en las muestras ademas de los incluidos en la descripcion de muestra.
[0077] Ademas, el modulo de creacion de archivos de video 72 puede configurarse de manera que cada descripcion de muestra HEVC, que contenga la informacion especifica del decodificador de flujo de video HEVC, pueda incluir un grupo del tipo en 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 segmento
codificado puede hacer referenda 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 diferente de la muestra. 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 el HEVCFF recomienda tipicamente que, cuando se usen varios conjuntos de parametros y se desee actualizar el conjunto de parametros, los conjuntos de parametros se incluyan en las muestras del flujo. Tambien cabe destacar que los decodificadores que cumplen con el HEVCFF pueden ser necesarios para soportar conjuntos de parametros almacenados en las muestras asi como conjuntos de parametros almacenados en las entradas de descripcion de muestra, a menos que este restringido por otro formato de archivo basado en HEVCFF.
[0078] En un ejemplo, el modulo de creacion de archivos de video 72 puede configurarse para emitir 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 muestra o en las muestras del flujo al que se aplica la descripcion de muestra. En este ejemplo, la inclusion de un tipo de conjunto de parametros en la descripcion de muestra o en las muestras puede ser independiente de si se incluyen otros tipos de conjuntos de parametros en la descripcion de muestra o en las muestras. En otro ejemplo, el modulo de creacion de archivos de video puede configurarse para emitir 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 muestra. Por ejemplo, SPS y PPS pueden agruparse, mientras que la inclusion de APS en la descripcion de muestra o en las muestras puede ser independiente de la inclusion de SPS y PPS en la descripcion de muestra o en las muestras.
[0079] En un ejemplo, el modulo de creacion de archivos de video 72 puede configurarse para emitir datos de video codificados de acuerdo con un formato de archivo donde una descripcion de 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 n Al de conjunto de parametros de ese tipo en particular. Ademas, la descripcion de muestra tambien puede incluir una matriz para unidades NAL SEI que contengan mensajes SEI declarativos. Por tanto, en este caso, un analizador de archivos no tiene que 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 de creacion de archivos de video 72 puede configurarse para emitir datos de video codificados de acuerdo con un formato de archivo donde se incluya una matriz en la descripcion de muestra, y la matriz puede incluir cualquier tipo de conjuntos de parametros asi como unidades NAL SEI que contengan mensajes SEI declarativos.
[0080] En un ejemplo, el modulo de creacion de archivos de video 72 puede configurarse para emitir datos de video codificados de acuerdo con un formato de archivo donde las propiedades del flujo como la resolucion espacial y la velocidad de trama que sean importantes para la seleccion de pista o flujo (por ejemplo, en aplicaciones de transmision adaptativa basadas en archivos) esten incluidas en la descripcion de muestra. Ademas, en otro ejemplo, el modulo de creacion de archivos de video 72 puede configurarse para emitir datos de video codificados de acuerdo con un formato de archivo donde la descripcion de 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 sean importantes para la seleccion de la pista o flujo en la descripcion de muestra puede permitir el acceso conveniente a estas propiedades de flujo. En otro ejemplo, el modulo de creacion de archivos de video 72 puede configurarse para emitir datos de video codificados de acuerdo con un formato de archivo donde la descripcion de muestra incluye informacion sobre un conjunto de mosaicos (como se define en HEVC) que se puede decodificar independientemente de otros mosaicos en todo el flujo, por ejemplo, la region de geometria cubierta por el conjunto de mosaicos.
[0081] En un ejemplo, el modulo de creacion de archivos de video 72 puede configurarse para emitir datos de video codificados de acuerdo con un formato de archivo donde las propiedades de escalabilidad temporal tales como el perfil, el nivel y la velocidad de trama, que sean 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.
[0082] En un ejemplo, el modulo de creacion de archivos de video 72 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 almacene 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 tenga un temporal_id, denotado como tId, mayor que 0, e indicar la pista que contenga 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 en 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
de creacion de archivos de video 72 puede estar configurado para realizar cualquiera y todas las combinaciones de los ejemplos descritos anteriormente. Por ejemplo, el modulo de creacion de archivos de video 72 puede configurarse como salida de datos de video codificados de acuerdo con un formato de archivo que incluya cualquiera y todas las combinaciones de los formatos de archivo descritos en el presente documento.
[0083] El modulo de creacion de archivos de video 72 puede incluir informacion de configuracion del decodificador en un registro de configuracion de informacion del decodificador almacenado dentro de un archivo. La informacion del decodificador puede definirse mediante la norma HEVC y el registro de configuracion de decodificador puede basarse en el registro de configuracion de decodificador 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 de creacion de archivos de video 72 descrito anteriormente pueden implementarse de acuerdo con un formato de archivo que defina la informacion de configuracion del decodificador. La informacion de configuracion del decodificador puede incluirse en un registro de configuracion del decodificador como se describe adicionalmente a continuacion. Por tanto, en un ejemplo, una descripcion de muestra como se describio anteriormente puede incorporarse en un registro de configuracion del decodificador. Cabe destacar que, aunque metadatos, tales como conjuntos de parametros e indicaciones respectivas de los mismos, se describan como incluidos en un registro de configuracion de decodificador o en una descripcion de muestra, esto no debe interpretarse como limitacion y los metadatos descritos anteriormente con respectivas configuraciones de ejemplo del modulo de creacion de archivos de video 72 pueden almacenarse en otras porciones de un archivo generado por el modulo de creacion de archivos de video 72, donde las otras porciones de un archivo generado por el modulo de creacion de archivos de video 72 sean distintas de los flujos de video.
[0084] En un ejemplo, el modulo de creacion de archivos de video 72 puede generar un archivo que incluya un registro de configuracion del decodificador que puede contener el tamano del campo de longitud usado 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 decodificador generado por el modulo de creacion de archivos de video 72 tambien puede incluir informacion con respecto a conjuntos de parametros y unidades NAL SEI declarativas, tales como, por ejemplo: (1) una indicacion de si los conjuntos de parametros estan almacenados en la descripcion de muestra o dentro de las unidades de acceso; (2) el numero de conjuntos de parametros almacenados en una descripcion de 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 SEI declarativas; y/o (5) informacion de resolucion espacial.
[0085] Un registro de configuracion de decodificador de ejemplo puede generarse por el modulo de creacion de archivos de video 72 de acuerdo con la siguiente sintaxis de ejemplo. Cabe destacar que la sintaxis siguiente puede modificarse de acuerdo con las otras configuraciones del modulo de creacion de archivos de video 72 de ejemplo descritas anteriormente.
[0086] 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.
profileCom patib ility 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 decodificada en unidades de pixeles luma, para el flujo al que se aplica este registro de configuracion.
pictureHeightInLumaPixels puede indicar la altura de la imagen decodificada en unidades de pixeles 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 usan para decodificar el flujo al que se aplica este registro de configuracion. En un ejemplo, si el valor es mayor que 0, no habra ningun 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 SPS, como se define en ISO/IEC 23008-HEVC.
sequenceParameterSetNalUnit puede contener una unidad NAL SPS, como se especifica en ISO/IEC 23008-HEVC.
numOfPictureParameterSets puede indicar el numero de conjuntos de parametros de imagen que se usan para decodificar 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 PPS como se define en ISO/IEC 23008-HEVC.
pictureParameterSetNalUnit puede contener una unidad NAL PPS, como se especifica en ISO/IEC 23008-HEVC. numOfAdaptationParameterSets puede indicar el numero de conjuntos de parametros de adaptacion (APS) que se usan para decodificar 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.
adaptationParameterSetLength puede indicar la longitud en bytes de la unidad NAL APS como se define en ISO/IEC 23008-HEVC.
adaptationParameterSetNalUnit puede contener una unidad NAL APS, como se especifica en ISO/IEC 23008-HEVC.
numOfDeclarativeSeiNalUnits puede indicar el numero de unidades NAL SEI declarativas para el flujo al que se aplica este registro de configuracion. Una unidad NAL SEI declarativa puede contener mensajes SEI de naturaleza 'declarativa', es decir, aquellos que proporcionen 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 SEI declarativa.
declarativeSeiNalUnit puede contener una unidad NAL SEI declarativa.
numOfSequenceParameterSetExt puede indicar el numero de Ampliaciones de Conjunto de Parametros de Secuencia que se usan para decodificar el flujo elemental de AVC.
sequenceParameterSetExtLength puede indicar la longitud en bytes de la unidad NAL de extension SPS como se define en ISO/IEC 14496-10.
sequenceParameterSetExtNALUnit puede contener una unidad NAL de Extension SPS, como se especifica en ISO/IEC 14496-10.
[0087] Ademas del ejemplo de sintaxis y semantica descrito anteriormente, un formato de archivo usado por el modulo de creacion de video 72 puede incluir restricciones adicionales con respecto a un registro de configuracion de decodificador. 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 decodificador. 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 conforme 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 conforme todo el flujo, entonces el flujo completo debe dividirse en dos o mas subflujos con registros de configuracion separados en los que se pueden cumplir estas reglas.
[0088] Ademas, en algunos ejemplos, se puede proporcionar una indicacion explicita en el registro de configuracion del decodificador sobre el formato cromatico y la profundidad de bits, asi como otra informacion de formato importante usada 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 VUI, entonces tambien pueden requerirse dos registros de configuracion diferentes.
[0089] Ademas, el registro de configuracion del decodificador generado por el modulo de creacion de archivos de video 72 puede disponerse en tramas externamente. Cuando el registro de configuracion del decodificador se dispone en tramas externamente, su tamano puede suministrarse por la estructura que lo contenga. El registro de configuracion de decodificador tambien puede contener un campo de version. En algunos casos, las ampliaciones compatibles de este registro de configuracion del decodificador pueden extenderlo y no cambiaran el codigo de la version de configuracion. En algunos casos, los lectores de archivos deberian estar preparados para ignorar datos no reconocidos mas alla de la definicion de los datos que entienden.
[0090] Ademas de generar un registrador de configuracion de decodificador, el modulo de creacion de archivos de video 72 puede configurarse adicionalmente para montar unidades de acceso que incluyan todas las unidades NAL para una caso de tiempo en particular. Con referencia de nuevo a la FIG. 5, el constructor de unidad NAL 74 puede formar unidades NAL que incluyan datos de video codificados. Como se describio anteriormente con respecto al archivo multimedia HEVC 142 descrito en la FIG. 1, los tipos de unidades NAL pueden incluir: una unidad NAL delimitadora AU, una unidad NAL SEI y unidades NAL de segmento. Como se describe ademas con respecto a la sintaxis y a la semantica del registro del decodificador de ejemplo, los tipos adicionales de unidades NAL pueden incluir: unidades NAL SPS, unidades NAL PPS, unidades NAL APS y unidades NAL SEI declarativas.
[0091] En un ejemplo, el constructor de unidades NAL 74 puede configurarse para definir unidades NAL basandose en un registro de configuracion de decodificador de acuerdo con la siguiente sintaxis:
[0092] 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 propio campo de longitud. Ademas, NALUnit puede contener una unica 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.
[0093] Ademas, en algunos ejemplos, el modulo de creacion de archivos de video 72 puede configurarse ademas para montar unidades de acceso que incluyan unidades NAL de acuerdo con las restricciones definidas por un formato de archivo. Por ejemplo, en un caso, donde se permita almacenar un conjunto de parametros dentro de una muestra que se vaya a usar para una imagen codificada, debe enviarse antes de la muestra que contenga 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 que se vaya a usar con la unidad de acceso 150B, debe almacenarse en el cuadro de metadatos 144, la unidad de acceso 150A o la unidad de acceso 150B. Cabe destacar que el almacenamiento de conjuntos de parametros en las descripciones de 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 muestra, pero permite mas dinamismo en el caso de las actualizaciones del conjunto de parametros y en el caso de anadir conjuntos de parametros adicionales. Una actualizacion del conjunto de parametros se refiere al contenido de un conjunto de parametros en particular, pero la ID del conjunto de parametros permanece igual.
[0094] Ademas, un formato de archivo usado por el modulo de creacion de video 72 puede definir el formato de las unidades de acceso en un flujo elemental de video HEVC, que tambien pueden 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 especifica del decodificador para el flujo elemental de HEVC. Ademas, en un ejemplo, el nombre de la descripcion de muestra y el formato asociado con una o mas unidades de acceso se pueden definir de la siguiente manera: (1) los tipos de cuadros se pueden definir como 'hvc1' o 'hvcC'; (2) un contenedor puede definirse como Cuadro 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 un cuadro de configuracion HEVC, como se describe con mas detalle a continuacion. En algunos ejemplos, un Cuadro de Configuracion HEVC puede incluir un registro de configuracion de decodificador HEVC, como se describio anteriormente.
[0095] Un elemento de sintaxis opcional MPEG4BitRateBox puede estar presente en una entrada de muestra visual HEVC para senalar la informacion de velocidad de bits del flujo de video HEVC. Los descriptores de extension que deberian 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 muestra, segun lo permitido por la memoria descriptiva del Formato de Archivo Multimedia de Base ISO, para indicar secciones de video que usen configuraciones o conjuntos de parametros diferentes.
[0096] En algunos ejemplos, el nombre de la entrada de la muestra 'hvcl' solo se puede usar cuando el flujo al que se aplique esta entrada de la muestra sea un flujo HEVC docil y compatible visto por un decodificador HEVC que funcione bajo la configuracion (incluyendo perfil y nivel) dada en el HEVCConfigurationBox.
[0097] En un ejemplo, el modulo de creacion de archivos de video 72 puede configurarse para definir entradas de la muestras visuales HEVC de acuerdo con la siguiente sintaxis:
[0098] Ademas, en el ejemplo de sintaxis proporcionado anteriormente, Compressorname como se define en la clase de base, VisualSampleEntry puede indicar el nombre del compresor usado con el valor "\013HEVC Coding" que se recomienda (\012 es l0 , la longitud de la cadena en bytes). Los elementos sintacticos Compressorname se pueden definir de acuerdo con HEVCFF. El elemento sintactico config se puede definir de acuerdo con un registro de configuracion de decodificador.
[0099] El modulo de creacion de archivos de video 72 puede configurarse ademas para montar unidades de acceso, incluidas las unidades NAL, donde los campos de ancho y altura se incluyen en VisualSampleEntry. En un ejemplo, los campos de ancho 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 ancho y altura no reflejan ningun cambio en el tamano causado por los mensajes SEI como barrido horizontal. En algunos ejemplos, el manejo visual de los mensajes SEI tal como el barrido horizontal es opcional y dependiente del terminal. Ademas, en algunos casos, si el ancho y la altura de la secuencia cambian, entonces se necesita una nueva descripcion de muestra. En algunos ejemplos, los campos de ancho y altura de la cabecera de la pista pueden no ser los mismos que los campos de ancho y altura en una o mas de una VisualSampleEntry en la pista de video. 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 el ancho y la altura de la pista para la presentacion.
[0100] Despues de que la unidad de creacion de archivos de video 72 genere un archivo de video, la unidad de creacion de archivos de video 72 puede pasar el archivo de video a la interfaz de salida de archivos de video 76. La interfaz de salida de archivos de video 76 puede enviar el archivo de video, por ejemplo, a la interfaz de salida 22 del dispositivo de origen 20. En algunos ejemplos, la interfaz de salida de archivo de video 76 puede enviar el archivo de video a un medio de almacenamiento del dispositivo de origen 20 (no mostrado) o al dispositivo de almacenamiento 32.
[0101] 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 multimedia HEVC 242 representa un ejemplo de un texto de formato de archivo que usa las tecnicas de esta divulgacion donde (1) conjuntos de parametros pueden incluirse en la descripcion de muestra o en las muestras del flujo al que se aplica la descripcion de muestra; (2) los diferentes tipos de conjuntos de parametros no estan agrupados 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 muestra; (3) una descripcion de muestra incluye una matriz para cada tipo de conjunto de parametros, y la matriz para un tipo en particular de conjunto de parametros solo puede incluir unidades NAL de conjunto de parametros de ese tipo en particular y la descripcion de muestra tambien incluye una matriz para unidades n Al SEI que contengan mensajes SEI declarativos; (4) las propiedades del flujo se incluyen en la descripcion de muestra. Cabe destacar que el archivo multimedia HEVC 242 de ejemplo de la FIG. 6 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 multimedia HEVC 242. Sin embargo, el archivo multimedia HEVC 242 puede utilizar cuadros y estructuras de encapsulacion definidas de acuerdo con HEVCFF. El archivo multimedia HEVC puede generarse por la unidad de creacion de archivos de video 72 de acuerdo con la sintaxis y las restricciones de ejemplo descritas anteriormente.
[0102] En el ejemplo ilustrado en la FIG. 6, el archivo multimedia HEVC 242 incluye un cuadro de metadatos 244 y un flujo de datos de video 246. El cuadro de metadatos 244 puede ser similar a un cuadro 'moov' ISOBMFF y puede contener datos para los flujos de datos de video 266, tal como el registro de configuracion del decodificador 250. En un ejemplo, la tabla de metadatos puede ser un cuadro de tabla de muestras. Tanto el cuadro de metadatos 244 como el registro de configuracion de decodificador 250 pueden formar porciones de una descripcion de muestra. En un ejemplo, el registro de configuracion de decodificador 250 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 NAL SEI. Ademas, el registro de configuracion del decodificador incluye ELEMENTOS SINTACTICOS. Los ELEMENTOS SINTACTICOS pueden incluir informacion sobre las propiedades del flujo, tal como la resolucion espacial. En un ejemplo, el registro de configuracion de decodificador 252 puede incluir la matriz SPS 254 y la matriz SEI 258. La matriz SpS 254 puede incluir la unidad NAL SPS 255. La matriz SEI 258 puede incluir la unidad NAL SEI 259.
[0103] Los flujos de datos de video 246 pueden corresponder a una pista de video o visual descrita en HEVCFF. Por tanto, el flujo de datos de video 246 puede usar por lo tanto: (1) un handler_type de 'vide' en el HandlerBox; (2) una cabecera multimedia de video 'vmhd'; y (3) una derivada de la VisualSampleEntry. El flujo de datos de video 246 puede incluir una pluralidad de unidades de acceso 260A-260N. Las unidades de acceso 260A-260N pueden generarse por la unidad de creacion de archivos de video 72 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 PPS 256A y una unidad NAL VCL 256B y la unidad de acceso 260N incluye una unidad NAL APS 256C y NAL VCL 256D. En un ejemplo, el flujo de datos de video 246 puede incluir una o mas capas temporales y el cuadro de metadatos 244 puede incluir ademas una indicacion de si el flujo de datos de video 246 esta dividido en una o mas pistas.
[0104] De esta manera, el archivo HEVC 242 representa un archivo de ejemplo donde (1) los conjuntos de parametros se incluyen en la descripcion de muestra y en las muestras del flujo al que se aplica la descripcion de muestra; (2) los diferentes tipos de conjuntos de parametros no estan agrupados 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 muestra; (3) una descripcion de muestra incluye una matriz para cada tipo de conjunto de parametros y la descripcion de muestra tambien incluye una matriz para las unidades NAL SEI que contenga mensajes SEI declarativos; y (4) las propiedades del flujo estan incluidas en la descripcion de muestra.
[0105] 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 almacenarse tambien (o de forma alternativa) en el dispositivo de almacenamiento 32 para un acceso posterior por el dispositivo de destino 14 u otros dispositivos, para su decodificacion y/o reproduccion.
[0106] El dispositivo de destino 14 incluye una interfaz de entrada 28, un modulo de desencapsulacion 29, un decodificador 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 decodificador de video, tal como el decodificador de video 30, en la decodificacion de los datos de video. Dichos elementos sintacticos se pueden incluir con los datos de video codificados transmitidos en un medio de comunicacion, almacenados en un medio de almacenamiento o almacenados en un servidor de archivos. En algunos ejemplos, dichos elementos sintacticos pueden incluir elementos sintacticos que senalicen modos de intracodificacion como se describe en esta divulgacion.
[0107] El dispositivo de visualizacion 34 puede estar integrado en, 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 decodificados ante un usuario y puede comprender cualquiera de una variedad de dispositivos de visualizacion, tales como una pantalla de cristal liquido (LCD), una pantalla de plasma, una pantalla de diodos organicos emisores de luz (OLED) u otro tipo de dispositivo de visualizacion.
[0108] El dispositivo de destino 14 puede recibir los datos de video codificados que se vayan a decodificar mediante un enlace 16. El enlace 16 puede comprender cualquier tipo de medio o dispositivo capaz de mover los datos de video codificados desde el dispositivo de origen 12 hasta el dispositivo de destino 14. En un ejemplo, el enlace 16 puede comprender un medio de comunicacion para permitir que el dispositivo de origen 12 transmita datos de video codificados directamente al dispositivo de destino 14 en tiempo real. Los datos de video codificados se pueden modular de acuerdo con una norma de comunicacion, tal como un protocolo de comunicacion inalambrica, y transmitir al dispositivo de destino 14. El medio de comunicacion puede comprender cualquier medio de comunicacion inalambrica o cableada, tal como un espectro de radiofrecuencia (RF) o una o mas lineas de transmision fisica. El medio de comunicacion puede formar parte de una red basada en paquetes, tal como una red de area local, una red de area amplia o una red global tal como Internet. El medio de comunicacion puede incluir enrutadores, conmutadores, estaciones base o cualquier otro equipo que pueda ser util para facilitar la comunicacion desde el dispositivo de origen 12 hasta el dispositivo de destino 14. En algunos casos, la interfaz de salida 22 puede incluir un modulador/demodulador (modem) y/o un transmisor.
[0109] De forma alternativa, los datos codificados pueden facilitarse desde la interfaz de salida 22 hasta un dispositivo de almacenamiento 32. De manera 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 variedad de medios de almacenamiento de datos de acceso distribuido o local, tales como una unidad de disco duro, unos discos Blu-ray, unos DVD, unos CD-ROM, una memoria flash, una memoria volatil o no volatil o cualquier otro medio de almacenamiento digital adecuado para almacenar datos de video codificados. En otro ejemplo, el dispositivo de almacenamiento 32 puede corresponder a un servidor de archivos o a otro dispositivo de almacenamiento intermedio que pueda contener el video codificado generado por el dispositivo de origen 12. El dispositivo de destino 14 puede acceder a datos de video almacenados en el dispositivo de almacenamiento 32 por medio de transmision en continuo o de 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. Los servidores de archivos de ejemplo incluyen un servidor web (por ejemplo, para una pagina web), un servidor FTP,
dispositivos de almacenamiento conectados en red (NAS) o una unidad de disco local. El dispositivo de destino 14 puede acceder a los datos de vfdeo codificados a traves de cualquier conexion de datos estandar, incluyendo una conexion a Internet. Esto puede incluir un canal inalambrico (por ejemplo, una conexion WiFi), una conexion cableada (por ejemplo, DSL, modem de cable, etc.) o una combinacion de ambos que sea adecuada para acceder a datos de vfdeo codificados almacenados en un servidor de archivos. La transmision de datos de vfdeo codificados desde el dispositivo de almacenamiento 32 puede ser una transmision en continuo, una transmision de descarga o una combinacion de ambas.
[0110] Las tecnicas de esta divulgacion no estan limitadas necesariamente a aplicaciones o configuraciones inalambricas. Las tecnicas se pueden aplicar a la codificacion de vfdeo como apoyo a cualquiera de una variedad de aplicaciones multimedia, tales como radiodifusiones de television por aire, transmisiones de television por cable, transmisiones de television por satelite, transmisiones de vfdeo en continuo, por ejemplo, mediante Internet, codificacion de vfdeo digital para su almacenamiento en un medio de almacenamiento de datos, decodificacion de vfdeo digital almacenado en un medio de almacenamiento de datos, u otras aplicaciones. En algunos ejemplos, el sistema 10 se puede configurar para soportar la transmision de vfdeo unidireccional o bidireccional, para soportar aplicaciones tales como la transmision de vfdeo en continuo, la reproduccion de vfdeo, la radiodifusion de vfdeo y/o la videotelefoma.
[0111] Aunque no se muestra en la FIG. 3, en algunos aspectos, tanto el codificador de vfdeo 20 como el decodificador de vfdeo 30 pueden estar integrados en un codificador y en un decodificador de audio, y pueden incluir unidades MUX-DEMUX adecuadas, u otro tipo de hardware y software, para ocuparse de la codificacion tanto de audio como de vfdeo en un flujo de datos comun o en flujos de datos independientes. Si procede, en algunos ejemplos, las unidades MUX-DEMUX pueden ser conformes al protocolo de multiplexador ITU H.223 o a otros protocolos, tales como el protocolo de datagramas de usuario (UDP).
[0112] El codificador de vfdeo 20 y el decodificador de vfdeo 30 pueden implementarse cada uno como cualquiera entre una variedad de circuitos codificadores adecuados, tales como uno o mas microprocesadores, procesadores de senales digitales (DSP), circuitos integrados especfficos de la aplicacion (ASIC), matrices de puertas programables por campo (FPGA), logica discreta, software, hardware, firmware o cualquier combinacion de estos. 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 usando uno o mas procesadores para realizar las tecnicas de esta divulgacion. Cada uno entre el codificador de vfdeo 20 y el decodificador de vfdeo 30 se puede incluir en uno o mas codificadores o decodificadores, cualquiera de los cuales se puede integrar como parte de un codificador/decodificador (CODEC) combinado en un dispositivo respectivo.
[0113] El modulo de desencapsulacion 29 puede estar configurado para recibir un archivo de vfdeo que analice el archivo de vfdeo de manera que el decodificador de vfdeo 30 pueda emitir datos de vfdeo decodificados. En algunos ejemplos, el modulo de desencapsulacion 29 puede realizar procesos recfprocos del modulo de encapsulacion 72. En algunos ejemplos, el decodificador de vfdeo 30 puede realizar una pasada de decodificacion que en general sea recfproca a la pasada de codificacion descrita con respecto al codificador de vfdeo 20 de la FIG. 4.
[0114] La FIG. 7 es un diagrama de flujo que ilustra un ejemplo de generacion de un archivo de vfdeo que incluye contenido de vfdeo codificado de acuerdo con las tecnicas de esta divulgacion. El proceso descrito en la FIG. 7 puede realizarse mediante un dispositivo de codificacion de vfdeo que puede incluir cualquier combinacion de dispositivo de origen 20, modulo de encapsulacion 21 y modulo de creacion de vfdeo 72 descritos en el presente documento. Un dispositivo de codificacion de vfdeo puede obtener segmentos de contenido de vfdeo codificado (702). El contenido de vfdeo codificado puede incluir una pluralidad de segmentos codificados de acuerdo con HEVC. El dispositivo de codificacion de vfdeo puede obtener conjuntos de parametros asociados con los segmentos de contenido de vfdeo (704). Los conjuntos de parametros pueden incluir SPS, PPS y/o APS. El dispositivo de codificacion de vfdeo puede encapsular segmentos de contenido de vfdeo codificado dentro de las unidades de acceso (706). Las unidades de acceso se pueden definir como se describe en el presente documento. El dispositivo de codificacion de vfdeo puede encapsular conjuntos de parametros dentro de las unidades de acceso (708). Los 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 vfdeo puede encapsular conjuntos de parametros dentro de una descripcion de muestra (710). En un ejemplo, los PPS pueden estar encapsulados dentro de una o mas unidades de acceso mientras que los SPS estan encapsulados dentro de una descripcion de muestra. El dispositivo de codificacion de vfdeo emite el archivo de vfdeo (712). El archivo de vfdeo puede generarse ademas basandose en un formato de archivo en el que el formato de archivo se base en las tecnicas descritas en el presente documento.
[0115] En uno o mas ejemplos, las funciones descritas pueden implementarse en hardware, software, firmware o en cualquier combinacion de los mismos. Si se implementan en software, las funciones se pueden almacenar en, o transmitir a traves de, un medio legible por ordenador como una o mas instrucciones o codigo y ejecutarse mediante una unidad de procesamiento basada en hardware. Los medios legibles por ordenador pueden incluir medios de almacenamiento legibles por ordenador, que correspondan a un medio tangible tal como medios de almacenamiento de datos o medios de comunicacion que incluyan cualquier medio que facilite la transferencia de un programa informatico desde un lugar a otro, por ejemplo, de acuerdo con un protocolo de comunicacion. De esta manera, los
medios legibles por ordenador pueden corresponder en general a (1) medios de almacenamiento tangibles legibles por ordenador que sean no transitorios o a (2) un medio de comunicacion tal como una senal o una onda portadora. Los medios de almacenamiento de datos pueden ser cualquier medio disponible a los que se pueda acceder desde uno o mas ordenadores o uno o mas procesadores para recuperar instrucciones, codigo y/o estructuras de datos para la implementacion de las tecnicas descritas en esta divulgacion. Un producto de programa informatico puede incluir un medio legible por ordenador.
[0116] A modo de ejemplo, y no de manera limitativa, dichos 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 el codigo de programa deseado en forma de instrucciones o estructuras de datos y al que pueda accederse mediante un ordenador. Ademas, cualquier conexion recibe debidamente la denominacion de medio legible por ordenador. Por ejemplo, si las instrucciones se transmiten desde una pagina web, un servidor u otra fuente remota usando un cable coaxial, un cable de fibra optica, un par trenzado, una linea de abonado digital (DSL) o tecnologias inalambricas tales como infrarrojos, radio y microondas, entonces el cable coaxial, el cable de fibra optica, el par trenzado, la DSL o las tecnologias inalambricas tales como infrarrojos, radio y microondas se incluyen en la definicion de medio. Sin embargo, deberia entenderse que los medios de almacenamiento legibles por ordenador y los medios de almacenamiento de datos no incluyen conexiones, ondas portadoras, senales u otros medios transitorios, sino que, en cambio, se orientan a medios de almacenamiento tangibles no transitorios. El termino disco, como se usa en el presente documento, incluye un disco compacto (CD), un disco laser, un disco optico, un disco versatil digital (DVD), un disco flexible y un disco Blu-ray, donde algunos discos reproducen usualmente datos magneticamente, mientras que otros discos emiten datos opticamente con laseres. Las combinaciones de lo anterior tambien deberian incluirse dentro del alcance de los medios legibles por ordenador.
[0117] Las instrucciones pueden ejecutarse por uno o mas procesadores, tales como uno o mas procesadores de senales digitales (DSP), microprocesadores de uso general, circuitos integrados especificos de la aplicacion (ASIC), matrices de puertas programables por campo (FPGA) u otros circuitos logicos, integrados o discretos, equivalentes. Por consiguiente, el termino "procesador", como se usa en el presente documento, se puede referir a cualquiera de las estructuras anteriores o a cualquier otra estructura adecuada para la implementacion de las tecnicas descritas en el presente documento. Ademas, en algunos aspectos, la funcionalidad descrita en el presente documento se puede proporcionar dentro de modulos de hardware y/o software dedicados, configurados para la codificacion y la decodificacion, o incorporados en un codec combinado. Ademas, las tecnicas se podrian implementar totalmente en uno o mas circuitos o elementos logicos.
[0118] Las tecnicas de la presente divulgacion se pueden implementar en una amplia variedad de dispositivos o aparatos, incluidos un equipo manual inalambrico, un circuito integrado (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 se pueden combinar en una unidad de hardware de codec, o proporcionarse por un grupo de unidades de hardware interoperativas, incluyendo uno o mas procesadores, como se ha descrito anteriormente, conjuntamente con software y/o firmware adecuados.
[0119] Se han descrito diversos ejemplos. Estos y otros ejemplos estan dentro del alcance de las siguientes reivindicaciones.
Claims (6)
1. Un procedimiento para generar un archivo de video basado en el formato de archivo multimedia basado en ISO, ISOBMFF, incluido el contenido de video codificado de Codificacion de Video de Alta Eficiencia, HEVC, el procedimiento que comprende:
obtener una pluralidad de segmentos de contenido de video codificado;
encapsular la pluralidad de segmentos de contenido de video codificado dentro de una pluralidad de unidades de acceso de un flujo de video;
obtener una pluralidad de propiedades de flujo asociadas con el flujo de video; y
encapsular una o mas de la pluralidad de propiedades de flujo dentro de una descripcion de muestra de una pista de archivo;
caracterizado por que encapsular una o mas de la pluralidad de propiedades de flujo dentro de la descripcion de muestra de la pista de archivo comprende encapsular al menos uno de un elemento sintactico pictureWidthInLumaPixels, un elemento sintactico pictureHeightInLumaPixels, un elemento sintactico avgFrameRate y un elemento sintactico constantFrameRate dentro de un registro de configuracion de decodificador y no dentro de ningun conjunto de parametros de secuencia, conjunto de parametros de imagen y conjunto de parametros de adaptacion,
en el que, para el flujo al que se aplica el registro de configuracion de decodificador, pictureWidthInLumaPixels indica el ancho de la imagen decodificada, pictureHeightInLumaPixels indica el alto de la imagen decodificada, avgFrameRate indica la velocidad de tramas promedio, constantFrameRate indica si el flujo es de velocidad de tramas constante o no, o indica si la representacion de cada capa temporal en el flujo es de velocidad de trama constante o no.
2. El procedimiento segun la reivindicacion 1, en el que el registro de configuracion de decodificador incluye ademas informacion que indica una region de geometria cubierta por un conjunto de mosaicos.
3. El procedimiento segun la reivindicacion 1, en el que el registro de configuracion de decodificador incluye ademas un valor de profundidad de bits para los segmentos del contenido de video codificado.
4. Un procedimiento para procesar un archivo de video basado en el formato de archivo multimedia basado en ISO, ISOBMFF, incluido el contenido de video codificado de Codificacion de Video de Alta Eficiencia, HEVC, el procedimiento que comprende:
obtener una pista de archivo, en el que la pista de archivo incluye una pluralidad de segmentos de contenido de video codificado que incluyen un flujo de video; y
obtener una pluralidad de propiedades de flujo asociadas con el flujo de video a partir de una descripcion de muestra de la pista de archivo;
caracterizado por que obtener una pluralidad de propiedades de flujo asociadas con el flujo de video de la descripcion de muestra de la pista de archivo comprende obtener al menos uno de un elemento sintactico pictureWidthInLumaPixels, un elemento sintactico pictureHeightInLumaPixels, un elemento sintactico avgFrameRate y un elemento sintactico constantFrameRate de un registro de configuracion de decodificador y no de ninguno de un conjunto de parametros de secuencia, conjunto de parametros de imagen y conjunto de parametros de adaptacion,
en el que, para el flujo al que se aplica el registro de configuracion de decodificador, pictureWidthInLumaPixels indica el ancho de la imagen decodificada, pictureHeightInLumaPixels indica el alto de la imagen decodificada, avgFrameRate indica la velocidad de tramas promedio, constantFrameRate indica si el flujo es de velocidad de tramas constante o no, o indica si la representacion de cada capa temporal en el flujo es de velocidad de trama constante o no.
5. El procedimiento segun la reivindicacion 4, en el que el registro de configuracion de decodificador incluye ademas informacion que indica una region de geometria cubierta por un conjunto de mosaicos.
6. El procedimiento segun la reivindicacion 4, en el que el registro de configuracion de decodificador incluye ademas un valor de profundidad de bits para los segmentos del contenido de video codificado.
Un medio de almacenamiento no transitorio legible por ordenador que tiene instrucciones almacenadas en el mismo que, al ejecutarse, hace que uno o mas procesadores de un dispositivo de codificacion de video lleven a cabo el procedimiento segun cualquiera de las reivindicaciones 1 a 6.
Un aparato configurado para generar un archivo de video basado en el formato de archivo multimedia basado en ISO, ISOBMFF, incluido el contenido de video codificado de Codificacion de Video de Alta Eficiencia, HEVC, el aparato que comprende:
medios para obtener una pluralidad de segmentos de contenido de video codificado;
medios para encapsular la pluralidad de segmentos de contenido de video codificado dentro de una pluralidad de unidades de acceso de un flujo de video;
medios para obtener una pluralidad de propiedades de flujo asociadas con el flujo de video; y
medios para encapsular una o mas de la pluralidad de propiedades de flujo dentro de una descripcion de muestra de una pista de archivo;
caracterizado por los medios para encapsular una o mas de la pluralidad de propiedades de flujo dentro de una descripcion de muestra de una pista de archivo que se configura para encapsular al menos uno de un elemento sintactico pictureWidthInLumaPixels, un elemento sintactico pictureHeightInLumaPixels, un elemento sintactico avgFrameRate y un elemento sintactico constantFrameRate dentro de un registro de configuracion del decodificador y no dentro de ningun conjunto de parametros de secuencia, conjunto de parametros de imagen y conjunto de parametros de adaptacion,
en el que, para el flujo al que se aplica el registro de configuracion de decodificador, pictureWidthInLumaPixels indica el ancho de la imagen decodificada, pictureHeightInLumaPixels indica el alto de la imagen decodificada, avgFrameRate indica la velocidad de tramas promedio, constantFrameRate indica si el flujo es de velocidad de tramas constante o no, o indica si la representacion de cada capa temporal en el flujo es de velocidad de trama constante o no.
Un aparato configurado para procesar un archivo de video basado en el formato de archivo multimedia basado en ISO, ISOBMFF, incluido el contenido de video codificado de la Codificacion de Video de Alta Eficiencia, HEVC, el aparato que comprende:
medios para obtener una pista de archivo, en el que la pista de archivo incluye una pluralidad de segmentos de contenido de video codificado incluido un flujo de video; y
medios para obtener una pluralidad de propiedades de flujo asociadas con el flujo de video a partir de una descripcion de muestra de la pista de archivo;
caracterizado por que obtener una pluralidad de propiedades de flujo asociadas con el flujo de video a partir de una descripcion de muestra de la pista de archivo comprende obtener al menos uno de un elemento sintactico pictureWidthInLumaPixels, un elemento sintactico pictureHeightInLumaPixels, un elemento sintactico avgFrameRate y un elemento sintactico constantFrameRate de un registro de configuracion de decodificador y no de ninguno de un conjunto de parametros de secuencia, un conjunto de parametros de imagen y un conjunto de parametros de adaptacion,
en el que, para el flujo al que se aplica el registro de configuracion de decodificador, pictureWidthInLumaPixels indica el ancho de la imagen decodificada, pictureHeightInLumaPixels indica el alto de la imagen decodificada, avgFrameRate indica la velocidad de tramas promedio, constantFrameRate indica si el flujo es de velocidad de tramas constante o no, o indica si la representacion de cada capa temporal en el flujo es de velocidad de trama constante o no.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261592462P | 2012-01-30 | 2012-01-30 | |
US13/753,247 US9648317B2 (en) | 2012-01-30 | 2013-01-29 | Method of coding video and storing video content |
PCT/US2013/023872 WO2013116352A1 (en) | 2012-01-30 | 2013-01-30 | Method of coding video and storing video content |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2713087T3 true ES2713087T3 (es) | 2019-05-17 |
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 Before (1)
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 |
Country Status (9)
Country | Link |
---|---|
US (4) | US20130195171A1 (es) |
EP (4) | EP2810433B1 (es) |
JP (4) | JP2015511439A (es) |
KR (4) | KR102036939B1 (es) |
CN (4) | CN104205841A (es) |
BR (2) | BR112014018445B1 (es) |
ES (2) | ES2692190T3 (es) |
HU (2) | HUE039170T2 (es) |
WO (4) | WO2013116352A1 (es) |
Families Citing this family (62)
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 |
US10025787B2 (en) | 2011-08-17 | 2018-07-17 | Bevara Technologies, Llc | Systems and methods for selecting digital data for archival |
US10129556B2 (en) * | 2014-05-16 | 2018-11-13 | Bevara Technologies, Llc | Systems and methods for accessing digital data |
US20130195171A1 (en) | 2012-01-30 | 2013-08-01 | Qualcomm Incorporated | Method of coding video and storing video content |
WO2013137697A1 (ko) * | 2012-03-16 | 2013-09-19 | 엘지전자 주식회사 | 영상 정보 저장 방법 및 영상 정보 파싱 방법 그리고 이를 이용하는 장치 |
WO2013165215A1 (ko) * | 2012-05-04 | 2013-11-07 | 엘지전자 주식회사 | 영상 정보 저장 방법 및 영상 정보 파싱 방법 그리고 이를 이용하는 장치 |
ES2992450T3 (es) | 2012-06-25 | 2024-12-12 | Huawei Tech Co Ltd | Señalizar una imagen de acceso de capa temporal gradual en codificación de vídeo |
US20140098868A1 (en) | 2012-10-04 | 2014-04-10 | Qualcomm Incorporated | File format for video data |
BR112015007530A2 (pt) * | 2012-10-09 | 2017-07-04 | Sony Corp | dispositivo e método de processamento de imagem |
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 |
US9800934B2 (en) * | 2013-06-12 | 2017-10-24 | Lg Electronics Inc. | Apparatus for transmitting broadcast signals, apparatus for receiving broadcast signals, method for transmitting broadcast signals and method for receiving broadcast signals |
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 |
US9723341B2 (en) * | 2013-09-27 | 2017-08-01 | Lg Electronics Inc. | Apparatus for transmitting broadcast signals, apparatus for receiving broadcast signals, method for transmitting broadcast signals and method for receiving broadcast signals |
US9712843B2 (en) * | 2013-10-23 | 2017-07-18 | Qualcomm Incorporated | Multi-layer video file format designs |
JP6652320B2 (ja) * | 2013-12-16 | 2020-02-19 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America | 送信方法、受信方法、送信装置及び受信装置 |
WO2015093011A1 (ja) | 2013-12-16 | 2015-06-25 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 送信方法、受信方法、送信装置及び受信装置 |
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 |
CA3004793A1 (en) | 2015-11-09 | 2017-05-18 | Thomson Licensing | Method and device for adapting the video content decoded from elementary streams to the characteristics of a display |
CA3009777C (en) * | 2016-02-09 | 2024-04-16 | Sony Corporation | Transmission device, transmission method, reception device and reception method |
US10652630B2 (en) * | 2016-05-24 | 2020-05-12 | Qualcomm Incorporated | Sample entries and random access |
US20200322406A1 (en) * | 2016-05-24 | 2020-10-08 | Sharp Kabushiki Kaisha | Systems and methods for signaling scalable video in a media application format |
US10726604B2 (en) | 2016-06-03 | 2020-07-28 | Apple Inc. | Controlling display performance using display statistics and feedback |
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 | ソニー株式会社 | 送信装置、送信方法、受信装置および受信方法 |
EP3740882A1 (en) | 2018-01-18 | 2020-11-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 |
WO2020016891A1 (en) * | 2018-07-18 | 2020-01-23 | 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 | ソニー株式会社 | 送信装置、送信方法、受信装置および受信方法 |
KR20210135226A (ko) * | 2019-03-11 | 2021-11-12 | 소니그룹주식회사 | 정보 처리 장치, 재생 처리 장치, 정보 처리 방법 및 재생 처리 방법 |
US11228781B2 (en) | 2019-06-26 | 2022-01-18 | Gopro, Inc. | Methods and apparatus for maximizing codec bandwidth in video applications |
US11109067B2 (en) | 2019-06-26 | 2021-08-31 | 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 |
CN115211126B (zh) | 2020-02-14 | 2024-12-27 | 抖音视界有限公司 | 处理视频数据的方法、设备以及存储介质 |
EP3972273A1 (en) * | 2020-09-17 | 2022-03-23 | Lemon Inc. | Handling of non-vcl nal units in picture unit construction |
KR20220037380A (ko) * | 2020-09-17 | 2022-03-24 | 레몬 인크. | 코딩된 비디오에서의 크로마 포맷 및 비트 깊이 표시 |
US11750815B2 (en) | 2020-09-17 | 2023-09-05 | Lemon, Inc. | Versatile video coding track coding |
US12041246B2 (en) * | 2020-10-06 | 2024-07-16 | 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 |
CN115474053B (zh) * | 2021-06-11 | 2025-03-25 | 腾讯科技(深圳)有限公司 | 一种媒体数据的处理方法及相关设备 |
CN114567769A (zh) * | 2022-01-21 | 2022-05-31 | 杭州当虹科技股份有限公司 | 基于hls的实时流媒体的质量评估方法和装置 |
EP4500871A1 (en) | 2022-03-28 | 2025-02-05 | Bevara Technologies, LLC | Modular pipelines for accessing digital data |
WO2025037566A1 (ja) * | 2023-08-14 | 2025-02-20 | ソニーセミコンダクタソリューションズ株式会社 | 情報処理装置、固体撮像装置、表示装置及び送受信システム |
Family Cites Families (21)
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 |
US7613727B2 (en) | 2002-02-25 | 2009-11-03 | Sont Corporation | Method and apparatus for supporting advanced coding formats in media files |
JP2006507553A (ja) | 2002-02-25 | 2006-03-02 | ソニー エレクトロニクス インク | Mp4においてavcをサポートするための方法及び装置 |
US7724818B2 (en) | 2003-04-30 | 2010-05-25 | Nokia Corporation | Method for coding sequences of pictures |
JP3835801B2 (ja) * | 2003-06-11 | 2006-10-18 | ソニー株式会社 | 情報処理装置および方法、プログラム記録媒体、並びにプログラム |
US7756205B2 (en) | 2004-08-31 | 2010-07-13 | Panasonic Corporation | Moving image encoding method and apparatus |
EP1820090A2 (en) | 2004-10-21 | 2007-08-22 | Sony Electronics, Inc. | Supporting fidelity range extensions in advanced video codec file format |
US20070098083A1 (en) | 2005-10-20 | 2007-05-03 | Visharam Mohammed Z | Supporting fidelity range extensions in advanced video codec file format |
JP2006203662A (ja) | 2005-01-21 | 2006-08-03 | Toshiba Corp | 動画像符号化装置・復号化装置及び符号化ストリーム生成方法 |
US20060233247A1 (en) * | 2005-04-13 | 2006-10-19 | Visharam Mohammed Z | Storing SVC streams in the AVC file format |
WO2006108917A1 (en) | 2005-04-13 | 2006-10-19 | Nokia Corporation | Coding, storage and signalling of scalability information |
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 |
JP5296535B2 (ja) | 2006-05-24 | 2013-09-25 | パナソニック株式会社 | 画像復号装置 |
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 | 中国科学院深圳先进技术研究院 | 基于图像库的视频和图像的编码解码方法与系统 |
US20130195171A1 (en) | 2012-01-30 | 2013-08-01 | Qualcomm Incorporated | Method of coding video and storing video content |
-
2013
- 2013-01-29 US US13/753,250 patent/US20130195171A1/en not_active Abandoned
- 2013-01-29 US US13/753,260 patent/US20130195172A1/en not_active Abandoned
- 2013-01-29 US US13/753,247 patent/US9648317B2/en active Active
- 2013-01-29 US US13/753,278 patent/US10958915B2/en active Active
- 2013-01-30 CN CN201380007013.5A patent/CN104205841A/zh active Pending
- 2013-01-30 JP JP2014554965A patent/JP2015511439A/ja active Pending
- 2013-01-30 KR KR1020147024216A patent/KR102036939B1/ko active Active
- 2013-01-30 KR KR1020147024223A patent/KR20140119793A/ko not_active Withdrawn
- 2013-01-30 WO PCT/US2013/023872 patent/WO2013116352A1/en active Application Filing
- 2013-01-30 CN CN201380007023.9A patent/CN104221386A/zh active Pending
- 2013-01-30 HU HUE13705054A patent/HUE039170T2/hu unknown
- 2013-01-30 BR BR112014018445-3A patent/BR112014018445B1/pt active IP Right Grant
- 2013-01-30 EP EP13703702.4A patent/EP2810433B1/en active Active
- 2013-01-30 BR BR112014018444A patent/BR112014018444A8/pt not_active IP Right Cessation
- 2013-01-30 EP EP13703976.4A patent/EP2810435A1/en not_active Withdrawn
- 2013-01-30 WO PCT/US2013/023870 patent/WO2013116350A1/en active Application Filing
- 2013-01-30 CN CN201380007032.8A patent/CN104185995A/zh active Pending
- 2013-01-30 WO PCT/US2013/023867 patent/WO2013116348A1/en active Application Filing
- 2013-01-30 JP JP2014554961A patent/JP2015506650A/ja active Pending
- 2013-01-30 ES ES13705054.8T patent/ES2692190T3/es active Active
- 2013-01-30 EP EP13705054.8A patent/EP2810441B1/en active Active
- 2013-01-30 WO PCT/US2013/023882 patent/WO2013116360A1/en active Application Filing
- 2013-01-30 KR KR1020147024202A patent/KR20140117659A/ko not_active Withdrawn
- 2013-01-30 KR KR1020147024200A patent/KR102010613B1/ko active Active
- 2013-01-30 HU HUE13703702A patent/HUE041729T2/hu unknown
- 2013-01-30 EP EP13703703.2A patent/EP2810434A1/en not_active Withdrawn
- 2013-01-30 JP JP2014554962A patent/JP6117244B2/ja active Active
- 2013-01-30 CN CN201380006985.2A patent/CN104205840B/zh active Active
- 2013-01-30 ES ES13703702T patent/ES2713087T3/es active Active
- 2013-01-30 JP JP2014554960A patent/JP6208150B2/ja active Active
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2713087T3 (es) | Procedimiento de codificación de vídeo y de almacenamiento de contenido de vídeo | |
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 | |
ES2898452T3 (es) | Señalización de la resolución espacial de las vistas de profundidad en el formato de archivo de codificación de múltiples vistas | |
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 | |
ES2650729T3 (es) | Construcción de la lista de imágenes de referencia para codificación de vídeo de múltiples visualizaciones y tridimensional | |
ES2701786T3 (es) | Procesamiento de memoria intermedia de imágenes descodificadas para imágenes de punto de acceso aleatorio en secuencias de vídeo | |
ES2663444T3 (es) | Información de temporización de codificación para codificación de vídeo | |
ES2588314T3 (es) | Gestión de memoria intermedia de imágenes decodificadas de múltiple resolución para codificación de vídeo multi-capa |