ES2904350T3 - Almacenamiento de pistas separadas de vistas de textura y de profundidad para codificación de múltiples vistas más profundidad - Google Patents

Almacenamiento de pistas separadas de vistas de textura y de profundidad para codificación de múltiples vistas más profundidad Download PDF

Info

Publication number
ES2904350T3
ES2904350T3 ES13819176T ES13819176T ES2904350T3 ES 2904350 T3 ES2904350 T3 ES 2904350T3 ES 13819176 T ES13819176 T ES 13819176T ES 13819176 T ES13819176 T ES 13819176T ES 2904350 T3 ES2904350 T3 ES 2904350T3
Authority
ES
Spain
Prior art keywords
view
track
depth
video
texture
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES13819176T
Other languages
English (en)
Inventor
Ye-Kui Wang
Ying Chen
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Application granted granted Critical
Publication of ES2904350T3 publication Critical patent/ES2904350T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/161Encoding, multiplexing or demultiplexing different image signal components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/91Television signal processing therefor
    • H04N5/917Television signal processing therefor for bandwidth reduction
    • H04N5/919Television signal processing therefor for bandwidth reduction by dividing samples or signal segments, e.g. television lines, among a plurality of recording channels
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N9/804Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components
    • H04N9/8042Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components involving data reduction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N9/82Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only
    • H04N9/8205Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only involving the multiplexing of an additional signal and the colour video signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/765Interface circuits between an apparatus for recording and another apparatus

Landscapes

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

Abstract

Un método de procesamiento de datos de vídeo, comprendiendo el método: analizar (200) una pista de datos de vídeo de múltiples vistas, en donde la pista incluye una pluralidad de vistas; analizar (202) una caja de identificador de vista asociada con la pista, que indica las vistas presentes en la pista, para determinar, para cada vista presente la pista, si la vista comprende una vista de textura y/o una vista de profundidad, en donde analizar la caja de identificador de vista comprende, para cada vista presente en la pista, analizar un elemento de sintaxis texture_in_track[i], que indica si está presente una vista de textura para la vista con view_id[i] en la pista, y analizar un elemento de sintaxis depth_in_track[i], que indica si está presente una vista de profundidad para la vista con view_id[i] en la pista, en donde, para una vista particular de la pluralidad de vistas, la pista incluye únicamente una vista de profundidad; y analizar (262) una referencia de pista para determinar una dependencia de la pista a una pista referenciada indicada en la referencia de pista, en donde analizar la referencia de pista incluye analizar un tipo de referencia de pista 'deps' que indica que la pista incluye la vista de profundidad de la vista particular y la pista de referencia incluye la vista de textura de la vista particular.

Description

DESCRIPCIÓN
Almacenamiento de pistas separadas de vistas de textura y de profundidad para codificación de múltiples vistas más profundidad
Reivindicación de prioridad
Esta solicitud revindica prioridad a la Solicitud Provisional de Estados Unidos N.° 61/749.089, presentada el 4 de enero de 2013.
Campo técnico
Esta divulgación se refiere a la codificación de vídeo y al almacenamiento de contenido de vídeo y, más particularmente, a técnicas para almacenar flujos de vídeo que contienen múltiples vistas codificadas.
Antecedentes
Las capacidades de vídeo digital se pueden incorporar en una amplia gama de dispositivos, que incluyen televisores digitales, sistemas de transmisión digital directa, sistemas de transmisión inalámbrica, asistentes digitales personales (PDA), ordenadores portátiles o de escritorio, tabletas, lectores de libros electrónicos, cámaras digitales, dispositivos de grabación digital, reproductores de medios digitales, dispositivos de videojuegos, consolas de videojuegos, radioteléfonos móviles o por satélite, los llamados "teléfonos inteligentes", dispositivos de vídeo teleconferencia, dispositivos de transmisión de vídeo, transcodificadores, encaminadores y otros dispositivos de red y similares. Los dispositivos de vídeo digital implementan técnicas de compresión de vídeo, como las descritas en las normas definidas por MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Parte 10, Codificación de Vídeo Avanzada (AVC), la norma de Codificación de Vídeo de Alta Eficacia (HEVC) actualmente en desarrollo, normas propietarias, formatos de compresión de vídeo abiertos tales como VP8 y extensiones de tales normas, técnicas o formatos. Los dispositivos de vídeo pueden transmitir, recibir, codificar, decodificar y/o almacenar información de vídeo digital de manera más eficiente implementando tales técnicas de compresión de vídeo.
Las técnicas de compresión de vídeo realizan predicción espacial (intra imagen) y/o predicción temporal (inter imagen) para reducir o eliminar la redundancia intrínseca en las secuencias de vídeo. Para la codificación de vídeo basada en bloques, un corte de vídeo (es decir, un fotograma de vídeo o una porción de un fotograma de vídeo) puede dividirse en bloques de vídeo, que pueden denominarse también macrobloques, bloques de árbol, unidades de codificación (CU) y/o nodos de codificación. Los bloques de vídeo pueden subdividirse por sí mismos, por ejemplo, en bloques o particiones de vídeo más pequeñas, y las particiones pueden subdividirse adicionalmente. Por ejemplo, los macrobloques pueden dividirse en bloques de vídeo más pequeños, a menudo denominados particiones, y algunas de las particiones pueden subdividirse en bloques de vídeo incluso más pequeños.
Los bloques de vídeo codificados en un modo intra (I) pueden codificarse usando predicción espacial con respecto a muestras de referencia en bloques vecinos en la misma imagen. Los bloques de vídeo codificados en un modo inter (por ejemplo, modo predictivo (P) o bipredictivo (B)) pueden usar predicción espacial con respecto a muestras de referencia en bloques vecinos en la misma imagen o predicción temporal con respecto a muestras de referencia en otras imágenes de referencia. La predicción espacial o temporal da como resultado un bloque predictivo para un bloque que va a codificarse. Los datos residuales representan diferencias de píxel entre el bloque original que va a codificarse y el bloque predictivo. Un bloque inter codificado se codifica de acuerdo con un vector de movimiento que apunta a un bloque de muestras de referencia que forma el bloque predictivo, y los datos residuales que indican la diferencia entre el bloque codificado y el bloque predictivo. Un bloque intra codificado se codifica de acuerdo con un modo de intra codificación y los datos residuales. Para una compresión adicional, los datos residuales pueden transformarse desde el dominio de los píxeles a un dominio de la transformada, dando como resultado coeficientes de transformada residuales, que pueden cuantificarse a continuación. Los coeficientes de transformada cuantificados, inicialmente dispuestos en una matriz bidimensional, pueden explorarse para producir un vector unidimensional de coeficientes de transformada, y puede aplicarse codificación por entropía para conseguir incluso más compresión.
Sumario
Esta divulgación se refiere a diversas técnicas para almacenar datos de vídeo. En particular, esta divulgación describe una técnica para almacenamiento de flujos de vídeo que contienen múltiples vistas codificadas.
La invención se define mediante las reivindicaciones independientes adjuntas. Se exponen características opcionales de la invención en las reivindicaciones dependientes.
Se usa el término "realización" para describir combinaciones de características que caen dentro del alcance de las reivindicaciones. Se usa el término "ejemplo" para hacer referencia a características que no caen dentro del alcance de las reivindicaciones, pero que son útiles para entender la invención. Se describe una primera realización que cae dentro del alcance de las reivindicaciones 1 y 2, y una segunda realización que cae dentro del alcance de las reivindicaciones 8 y 9.
Los detalles de uno o más ejemplos se exponen en los dibujos adjuntos y en la descripción posterior. Otras características, objetos y ventajas serán evidentes a partir de la descripción y los dibujos, y a partir de las reivindicaciones.
Breve descripción de los dibujos
La Figura 1 es un diagrama conceptual que ilustra la estructura de un fichero de medios MVC+D de ejemplo que puede generarse de acuerdo con las técnicas descritas en esta divulgación.
La Figura 2 ilustra un ejemplo de una unidad de acceso MVC+D que puede incluirse en un fichero de medios generado de acuerdo con las técnicas descritas en esta divulgación.
La Figura 3 es un diagrama de bloques que ilustra un sistema de codificación y decodificación de vídeo que puede utilizar las técnicas descritas en esta divulgación.
La Figura 4 es un diagrama de bloques que ilustra un codificador de vídeo que puede implementar las técnicas descritas en esta divulgación.
La Figura 5 es un diagrama de bloques que ilustra un decodificador de vídeo y un módulo de desencapsulación que pueden implementar las técnicas descritas en esta divulgación.
La Figura 6 es un diagrama de bloques que ilustra componentes de un módulo de encapsulación que puede implementar las técnicas descritas en esta divulgación.
La Figura 7 es un diagrama de bloques que ilustra un conjunto de dispositivos que forman parte de una red que puede implementar las técnicas descritas en esta divulgación.
La Figura 8 es un diagrama de flujo que ilustra un método de ejemplo de análisis de un fichero de medios que contiene contenido de vídeo de múltiples vistas que indica la presencia de vistas de textura y de profundidad de acuerdo con técnicas descritas en esta divulgación.
La Figura 9 es un diagrama de flujo que ilustra un método de ejemplo de composición de un fichero de medios que contiene contenido de vídeo de múltiples vistas para indicar la presencia de vistas de textura y de profundidad de acuerdo con técnicas descritas en esta divulgación.
La Figura 10 es un diagrama de flujo que ilustra un método de ejemplo de análisis de un fichero de medios que contiene vídeo de múltiples vistas que indica la dependencia de las vistas de acuerdo con técnicas descritas en esta divulgación.
La Figura 11 es un diagrama de flujo que ilustra un método de ejemplo de composición de un fichero de medios que contiene contenido de vídeo de múltiples vistas para indicar la dependencia de las vistas de acuerdo con técnicas descritas en esta divulgación.
La Figura 12 es un diagrama de flujo que ilustra un método de ejemplo de análisis de un fichero de medios que contiene vídeo de múltiples vistas para determinar una resolución espacial de una vista de profundidad de acuerdo con técnicas descritas en esta divulgación.
La Figura 13 es un diagrama de flujo que ilustra un método de ejemplo de composición de un fichero de medios que contiene contenido de vídeo de múltiples vistas para indicar una resolución espacial de una vista de profundidad de acuerdo con técnicas descritas en esta divulgación.
La Figura 14 es un diagrama de flujo que ilustra un método de ejemplo de análisis de un fichero de medios que contiene vídeo de múltiples vistas en donde se almacena una vista de textura y una de profundidad de una vista particular en pistas separadas de acuerdo con técnicas descritas en esta divulgación.
La Figura 15 es un diagrama de flujo que ilustra un método de ejemplo de composición de un fichero de medios que contiene contenido de vídeo de múltiples vistas en donde se almacena una vista de textura y una de profundidad de una vista particular en pistas separadas de acuerdo con técnicas descritas en esta divulgación.
Descripción detallada
En general, esta divulgación se refiere a encapsular y desencapsular contenido de vídeo y al almacenamiento del contenido de vídeo codificado en un fichero. Esta divulgación describe diversas técnicas para almacenar contenido de vídeo que incluyen, por ejemplo, almacenar contenido de vídeo codificado de acuerdo con la norma de vídeo de HEVC en un fichero basándose en el formato de fichero de medios (ISOBMFF) basado en la Organización Internacional para la Normalización (ISO). En particular, esta divulgación describe técnicas para encapsular flujos de vídeo que contienen múltiples vistas codificadas en un fichero de medios. A través de toda esta divulgación, puede usarse la expresión "fichero de medios" de manera intercambiable con "fichero de vídeo". Se desvelan diversos métodos en el presente documento para componer y analizar flujos de vídeo que contienen múltiples vistas codificadas, en donde cada vista puede contener una vista de textura únicamente, una vista de profundidad únicamente o tanto vistas de textura como de profundidad, en un fichero basado en ISOBMFF.
Ejemplos de las normas de codificación de vídeo 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 (también conocida como ISO/IEC MPEG-4 AVC), incluyendo sus extensiones Codificación de Vídeo Escalable (SVC) y Codificación de Vídeo de Múltiples Vistas (MVC). Además, existe una nueva norma de codificación de vídeo, en concreto la Codificación de Vídeo de Alta Eficiencia (HEVC), que se está desarrollando por el Equipo de Colaboración Mixto sobre Codificación de Vídeo (JCT-VC) del Grupo de Expertos en Codificación de Vídeo (VCEG) de la ITU-T y el Grupo de Expertos de Imágenes en Movimiento (MPEG) de la ISO/IEC. Un borrador de trabajo (WD) reciente de1HEVC se titula "High Efficiency Video Coding (HEVC) text specification draft 9", (denominado en el presente documento "HEVC Working Draft 9" o "HEVC WD9"), se describe en el documento JCTVC-K1003_v11, Bross et al., Joint Collaborative Team on Video Coding (JCT-VC) de la ITU-T SG16 WP3 y ISO/IEC TJC1/SC29/WG11, 11a reunión, Shanghai, China, 10-19 de octubre de 2012, está disponible en http://phenix.int-evry.fr/jct/doc_end_user/documents/11_Shanghai/wg11/JCTVC-K1003-v11.zip.
También están bajo desarrollo diversas extensiones de AVC y HEVC en JCT-3V y JCT-VC. En JCT-3V, se están desarrollando dos extensiones de HEVC, la extensión de múltiples vistas (MV-HEVC) y la extensión de vídeo en 3D (3D-HEVC). Además, se están desarrollando dos extensiones de AVC, MVC+D y 3D-AVC.
Las versiones recientes de las normas en curso son como sigue. El documento JCT3V-B1001, titulado "Study Text of ISO/IEC 14496-10: 2012/DAM2 MVC extension for inclusion of depth maps", por M. Hannuksela (Nokia), Y. Chen (Qualcomm), G. Sullivan (Microsoft), T. Suzuki, S. Hattori (Sony), con fecha de octubre de 2012 y disponible en http://phenix.it-sud-paris.eu/jct2/doc_end_user/documents/2_Shanghai/ wg11/JCT3V-B1001-v1.zip. Esto también se denomina MVC+D o codificación de vídeo tridimensional (3VC), y el vídeo codificado puede denominarse como vídeo tridimensional (3DV). La codificación de vídeo tridimensional puede denominarse también codificación de vídeo en tres dimensiones. El documento JCT3V-B1002, titulado "3D-AVC draft text 4", por M. M. Hannuksela, Y. Chen, T. Suzuki, J.-R. Ohm, G. J. Sullivan y disponible en http://phenix.itsudparis.eu/jct2/doc_end_user/documents/2_Shanghai/ wg11/JCT3V-B1002-vl.zip. El documento JCT3V-B1004, titulado "MV-HEVC Draft Text 2", por G. Tech, K. Wegner, Y. Chen, M. Hannuksela, y disponible en http://phenix.itsudparis.eu/jct2/doc_end_user/documents/2_Shanghai/wg11JCT3V-B1004-v1.zip. El documento JCT3V-B1005, titulado "3D-HEVC Test Model 2", por G. Tech, K. Wegner, Y. Chen, S. Yea, y disponible en http://phenix.itsudparis.eu/jct2/doc_end_user/documents/2_Shanghai/wg11/JCT3V-B1005-v1.zip.
Esta divulgación se refiere al almacenamiento de contenido de vídeo en un fichero de datos electrónico. Para almacenar contenido de vídeo codificado de acuerdo con una norma de vídeo particular, puede ser útil una especificación de formato de fichero que corresponde a la norma de vídeo particular. En particular, este documento desvela diversos métodos para el almacenamiento de flujos de vídeo que contienen múltiples vistas codificadas, en donde cada vista puede contener una vista de textura únicamente, una vista de profundidad únicamente, o ambas, en un fichero basado en un formato de fichero de medios de base de la ISO (ISOBMFF). En unas diversas de las normas de extensiones de codificación, pueden estar presentes múltiples vistas o capas. Adicionalmente, diferentes vistas de capas, de textura o de profundidad pueden tener diferentes resoluciones espaciales. Se describen las técnicas para la encapsulación de vídeo codificado en un fichero, y también se describen las técnicas para la desencapsulación del fichero para recuperar el contenido de vídeo codificado.
Las normas de formato de fichero incluyen el formato de fichero de medios de base de la ISO (ISOBMFF, ISO/IEC 14496-12) (véase, por ejemplo, "Text of ISO/IEC 14496-12 4° edición" 100. REUNIÓN DE MPEG; 30-4-2012 - 4-5­ 2012; GINEBRA; (MOTION PICTURE EXPERT GROUP o ISO/IEC JTC1/SC29/WG11), n.° N12640, 7 de junio de 2012) y otros formatos derivados del ISOBMFF, incluyendo el formato de fichero MPEG-4 (ISO/IEC 14496-14), el formato de fichero (3GPP TS 26.244) del Proyecto Asociación de 3a Generación (3GPP) y el formato de fichero AVC (ISO/IEC 14496-15). El ISOBMFF puede usarse como la base para muchos formatos de encapsulación de codificadordecodificador (códec), tales como el formato de fichero AVC, así como para muchos formatos de contenedor multimedia, tales como el formato de fichero MPEG-4, el formato de fichero 3GPP (3GP) y el formato de fichero DVB.
El formato de fichero HEVC usa el ISOBMFF como la base para su formato de encapsulación. Se define el último borrador del formato de fichero HEVC (denominado en el presente documento "HEVCFF") de acuerdo con ISO/IEC 14496-15: 2010/Amd.1: 2011(E) e incluye la siguiente referencia normativa: ISO/IEC 14496-15, Tecnología de la Información - Codificación de objetos audio-visuales - Parte 15: transporte de vídeo estructurado de unidad de NAL en el formato de fichero de medios basado en ISO (es decir, ISOBMFF).
Se usa el ISOBMFF como la base para muchos formatos de encapsulación de la norma de codificación de vídeo, así como para muchos formatos de contenedor multimedia. Ejemplos de otros formatos de fichero basados en el ISOBMFF incluyen, por ejemplo, el formato de fichero MPEG-4 (ISO/IEC 14496-14), el formato de fichero 3GPP (3GPP TS 26.244) y el formato de fichero AVC (ISO/IEC 14496-15) (es decir, AVCFF). Además, debería observarse que, aunque se describen las técnicas desveladas en el presente documento en algunos ejemplos con respecto a HEVC y pueden hacer referencia a formatos de fichero particulares, pueden ser igualmente aplicables a otras normas de codificación de vídeo y formatos de fichero.
Además de los medios continuos (tal como, por ejemplo, audio y vídeo), de los medios estáticos (tales como, por ejemplo, imágenes) y los metadatos pueden almacenarse en un fichero de conformidad con ISOBMFF. Los ficheros estructurados de acuerdo con el ISOBMFF pueden usarse para muchos propósitos, que incluyen la reproducción de fichero de medios local, descarga progresiva de un fichero remoto, segmentos para el Envío por Flujo Continuo Adaptativo Dinámico a través del Protocolo de Transferencia de Hipertexto (HTTP) (DASH), contenedores para que se envíe por flujo continuo el contenido y sus instrucciones de empaquetamiento y el registro de flujos de medios en tiempo real recibidos. En general, el ISOBMFF permite que se almacenen datos de medios continuos, tales como datos de audio y de vídeo independientemente de los metadatos. En un ejemplo, los datos de medios pueden incluir un grupo de imágenes codificadas de acuerdo con HEVC. Los metadatos típicamente incluyen información de presentación y de temporización de manera que las porciones de datos de medios son decodificables de manera independiente.
ISOBMFF usa un esquema orientado a objetos en el que se usan elementos de sintaxis elementales como bloques de construcción para formar un fichero de medios. En ISOBMFF, estos elementos de sintaxis elementales se denominan "cajas". Sin embargo, los formatos de fichero específicos en ISOBMFF pueden hacer referencia a cajas que usan diferente terminología, tales como "átomos". Además, debe observarse que, cuando se describen formatos de fichero específicos basados en ISOBMFF, puede usarse a menudo terminología específica de manera intercambiable con la terminología de HEVCFF de una manera no limitante. Por ejemplo, cuando se describe HEVCFF, la expresión "unidad de acceso" puede corresponder al término "muestra" en el ISOBMFF y puede describirse una unidad de acceso usando cualquier término o expresión.
En ISOBMFF, una caja, el elemento de sintaxis elemental, incluye un tipo de cuatro caracteres, el recuento de bytes de la caja y la carga útil. Un tipo de caja define la relación lógica entre una caja particular y otros tipos de cajas. El tipo de caja puede describir también cuáles datos son obligatorios y para el tipo de caja particular y cuáles datos son opcionales para el tipo de caja particular. una caja puede ser parte de una secuencia o grupo de cajas y puede contener otras cajas, que pueden denominarse subcajas.
En ISOBMFF, una caja de película ("moov") contiene metadatos para los flujos de medios continuos en el fichero. Los metadatos para los flujos de medios continuos presentes en el fichero pueden encerrarse adicionalmente dentro de cajas adicionales en la caja de la película, tal como una caja de pista ("trak"). Los flujos de medios continuos pueden representarse en un fichero ISOMBFF como una pista, donde una pista es una estructura lógica que referencia metadatos que pueden encerrarse dentro de la caja de la película y en donde el flujo de medios consiste en una secuencia de muestras. En ISOBMFF, un flujo de medios puede encerrarse dentro de cajas, tal como una caja de datos de medios ("mdat") y subcajas de la misma. Además, en algunos ejemplos, un flujo de medios puede almacenarse directamente en un fichero ISOBMFF. El contenido de medios para una pista consiste en una secuencia de muestras, tales como unidades de acceso de audio o de vídeo. Una secuencia de muestras puede denominarse un flujo. El ISOBMFF especifica una pista de medios que contiene un flujo de medio elemental. Los metadatos para cada pista incluyen una lista de entradas de descripción de muestra, proporcionando cada una el formato de codificación o de encapsulación usado en la pista y los datos de inicialización para procesar ese formato. Cada muestra está asociada con una de las entradas de descripción de muestra de la pista. Algunos tipos de fichero basados en ISOBMFF también incluyen pistas de sugerencia. Las pistas de sugerencia incluyen información que facilita la reconstrucción de contenido de medios de manera que se mejora la calidad y la fiabilidad cuando se envía por flujo continuo el contenido de medios a través de una red.
El ISOBMFF especifica los siguientes tipos de pistas: una pista de medios, que contiene un flujo de medios elemental, una pista de sugerencia, que incluye instrucciones de transmisión de medios o representa un flujo de paquetes recibido, y una pista de metadatos temporizados, que comprende metadatos sincronizados en el tiempo.
Aunque estaba diseñado originalmente para almacenamiento, el ISOBMFF ha probado ser muy ajustable para envío por flujo continuo, por ejemplo, para descarga progresiva o DASH. Para propósitos de envío por flujo continuo, pueden usarse los fragmentos de película definidos en ISOBMFF.
Los metadatos para cada pista incluyen una lista de entradas de descripción de muestra, proporcionando cada una el formato de codificación o de encapsulación usado en la pista y los datos de inicialización para procesar ese formato. Cada muestra está asociada con una de las entradas de descripción de muestra de la pista.
El ISOBMFF posibilita especificar metadatos específicos de muestra con diversos mecanismos. Se han normalizado las cajas específicas dentro de la caja de Tabla de Muestras ("stbl") para responder a necesidades comunes. Por ejemplo, se usa una caja de muestra de sincronización ("stss") para enumerar las muestras de acceso aleatorio de la pista. Una muestra de sincronización identifica la presencia de una unidad de acceso de refresco de decodificación imagen (IDR) del flujo de bits de MVC o 3VC para cualquier entrada de muestra que incluye un registro de configuración de MVC o 3VC, respectivamente. El mecanismo de agrupación de muestras posibilita el mapeo de muestras de acuerdo con un tipo de agrupación de cuatro caracteres en grupos de muestras que comparten la misma propiedad especificada que una entrada de descripción de grupo de muestras en el fichero. Se han especificado varios tipos de agrupación en el ISOBMFF.
Similar a un fichero almacenado de acuerdo con ISOBMFF, un fichero de HEVC puede incluir una serie de flujos elementales que hacen referencia a metadatos. En el HEVCFF, puede hacerse referencia a una muestra como una unidad de acceso como se define en ISO/IEC 23008-2. En el HEVCFF, pueden incluirse también los metadatos en entradas de descripción de muestra. El HEVCFF puede permitir sugerencias, pero, debería observarse que lo que las pistas de sugerencia denominan como "fotogramas B" en algunos formatos de fichero pueden ser realmente imágenes "desechables" o imágenes no de referencia como se define en ISO/IEC 23008-2. Además, un formato de fichero usado para el almacenamiento de contenido de vídeo de HEVC puede usar las capacidades existentes del ISOBMFF, pero puede definir también extensiones para soportar características de contenido de vídeo codificado de HEVC específicas tales como: conjuntos de parámetros, escalabilidad temporal y punto de recuperación de acceso aleatorio.
En la mayoría de los casos, para almacenar contenido de vídeo de un códec de vídeo particular basándose en el ISOBMFF, se usa una especificación de formato de fichero para ese códec de vídeo. En algunos casos, para el almacenamiento de flujos de vídeo que contienen múltiples vistas codificadas con profundidad que se codifica como una extensión a una norma, puede usarse un formato de fichero compatible con esa norma para las múltiples vistas codificadas con profundidad. Por ejemplo, puede reutilizarse el formato de fichero para MVC (que es parte del formato de fichero AVC) para el almacenamiento de flujos de vídeo que contienen múltiples vistas codificadas más profundidad (MVC+D). Es posible usar el formato de fichero para MVC para almacenar MVC+D puesto que el diseño de MVC+D está basado en MVC. Sin embargo, la aplicación directa del formato de fichero MVC para el almacenamiento de contenidos de MVC+D tiene al menos las siguientes desventajas. En primer lugar, no habría manera para indicar si una vista incluida en una pista contiene únicamente la vista de textura, únicamente la vista de profundidad o tanto los componentes de vista de textura como de profundidad. Además, no habría manera para indicar qué parte se requiere (la vista de textura, la vista de profundidad o ambas) de una primera vista de la que depende una segunda vista para decodificar la segunda vista. También, no habría manera de señalizar la resolución espacial de las vistas de profundidad sin analizar los conjuntos de parámetros de secuencia (SPS) a los que se hace referencia por los componentes de vista de profundidad.
Las técnicas de esta divulgación pueden resolver uno o más de los problemas anteriores, así como proporcionan otras mejoras, para posibilitar un almacenamiento eficaz y flexible de los flujos de vídeo que contienen múltiples vistas codificadas con profundidad. Aunque esta descripción es específica al almacenamiento de flujos de vídeo de MVC+D basados en el formato de fichero MVC, las técnicas descritas en el presente documento pueden aplicarse a cualquier formato de fichero para el almacenamiento de tal contenido de vídeo codificado por cualquier códec de vídeo. La cláusula 7 de ISO/IEC 14496-15 especifica el formato de fichero MVC. Las técnicas de esta divulgación pueden ampliar la cláusula 7 de ISO/IEC 14496-15 al almacenamiento de datos de codificación de vídeo en 3D (3VC) que contienen múltiples vistas con profundidad. Se definen varias nuevas cajas y tipos de entrada de muestra en esta divulgación.
Un único fichero de medios puede contener múltiples pistas (por ejemplo, pistas de película y de audio, tales como flujos de datos de vídeo 146 y flujos de datos de audio 148). Una entrada de muestra proporciona el almacenamiento de información de encabezado de nivel superior para una muestra o una pista (que, en algunos ejemplos, una pista puede consistir en una o más muestras). Una muestra puede ser, por ejemplo, una unidad de acceso, tal como la unidad de acceso 150-1, o parte de una unidad de acceso (por ejemplo, en una pista de MVC o una de 3VC). Una entrada de muestra proporciona un códec para una pista con información de codificación relevante para la pista o muestra, tal como información de perfil, nivel y etapa, así como otra información de alto nivel. En algunos ejemplos, están presentes una o más entradas de muestra en el fichero de medios de múltiples vistas con profundidad 142.
En la primera y segunda realizaciones, se cambia una caja de identificador de vista definida en el formato de fichero MVC. En la primera y segunda realizaciones, se cambia la caja de identificador de vista para indicar, para cada una de las vistas incluidas en una pista asociadas con la caja de identificador de vista, la presencia de vistas de textura y/o vistas de profundidad en la pista y en el flujo. En la primera y segunda realizaciones, la caja de identificador de vista puede cambiarse adicionalmente para indicar cómo se requiere una vista de textura y una vista de profundidad de una vista de referencia para decodificar una vista específica. Por ejemplo, puede requerirse únicamente la vista de textura, únicamente la vista de profundidad o ambas de la vista de referencia para decodificar la vista específica. La caja de identificador de vista puede incluirse en una entrada de muestra o una entrada de grupo de múltiples vistas.
La primera y segunda realizaciones pueden soportar también la señalización de resoluciones espaciales de vistas de profundidad. En la primera y segunda realizaciones, puede indicarse una resolución espacial de una vista de profundidad en una caja de resolución de profundidad de 3VC nuevamente definida. La caja de resolución de profundidad de 3VC puede incluirse en una caja de configuración de 3VC nuevamente definida. La caja de configuración de 3VC incluye un registro de configuración del decodificador de 3VC, 3VCDecoderConfigurationRecord, y está incluida en al menos una de una entrada de muestra del tipo '3vc1' o '3vc2'. La caja de configuración de 3VC puede estar incluida en otra entrada de muestra. El registro de configuración del decodificador de 3VC se define para tener la misma sintaxis que MVCDecoderConfigurationRecord, pero con diferente semántica para indicar características relacionadas con un flujo de vídeo de 3VC.
En la primera y segunda realizaciones, puede definirse una caja de mensaje de información de mejora complementaria (SEI) de la información de escalabilidad de 3VC (denominada en el presente documento "caja de mensaje de SEI"). En la primera y segunda realizaciones, la caja de mensaje de SEI contiene el mensaje de SEI de información de escalabilidad de 3DVC definido en la especificación del códec MVC+D. La caja de mensaje de SEI puede estar incluida en la entrada de muestra.
Además, la primera y segunda realizaciones proporcionan el almacenamiento de una vista de textura y una vista de profundidad de una vista particular en pistas separadas. En la primera y segunda realizaciones, se define un nuevo tipo de referencia de pista con valor de tipo 'deps', la presencia del que indica que la pista actual contiene la vista de profundidad que está asociada con una vista de textura en la pista referenciada.
En algunos ejemplos, se recomienda un nuevo valor de Compressorname para un fichero que contiene flujos de vídeo de 3VC. El nuevo nombre es "\ 0123VC Coding".
Las técnicas descritas en el presente documento introducen dos nuevos tipos de entrada de muestra, '3vc1' y '3vc2' para las pistas de 3VC con unidades de NAL de profundidad únicamente. Los extractores no están permitidos en '3vc1' y están permitidos en '3vc2'. Se definen adicionalmente algunos tipos de entrada de muestra existentes. Se define el tipo de entrada de muestra 'avc1' para contener las configuraciones de AVC, MVC y 3VC, para pistas de 3VC con unidades de NAL de AVC, MVC y de profundidad. Se define adicionalmente el tipo de entrada de muestra 'mvc1' para contener las configuraciones de MVC y 3VC, para las pistas de 3VC sin unidades de NAL de AVC, pero con unidades de NAL de MVC y de profundidad donde no están permitidos los extractores. Se define adicionalmente el tipo de entrada de muestra 'mvc2' para contener las configuraciones de MVC y 3VC, para las pistas de 3VC sin unidades de NAL de AVC, pero con unidades de NAL de MVC y de profundidad donde están permitidos los extractores. Debería observarse que, pueden usarse otros nombres de tipos de entrada de muestra con semántica similar anteriormente descrita.
La Figura 1 es un diagrama conceptual que ilustra la estructura de un fichero de medios de profundidad de múltiples vistas con profundidad 142 de ejemplo que puede generarse de acuerdo con las técnicas descritas en esta divulgación. El fichero de medios de múltiples vistas con profundidad 142 está basado en el ISOBMFF y en el formato de fichero de AVC actual. Debería observarse que, el fichero de medios de múltiples vistas con profundidad 142 de ejemplo en la Figura 1 se pretende que ilustre la relación lógica entre flujos de datos y metadatos. En otros ejemplos, el fichero de medios 142 puede estar basado en otros formatos de fichero. Pueden aplicarse técnicas similares a las descritas en el presente documento para el fichero de medios de múltiples vistas con profundidad 142 a otros formatos de fichero para alojar el vídeo tridimensional. Por motivos de brevedad, no se ha ilustrado la estructura de encapsulación completa del fichero de medios de múltiples vistas con profundidad 142. Sin embargo, el fichero de medios de múltiples vistas con profundidad 142 puede utilizar cajas y estructuras de encapsulación definidas de acuerdo con ISOBMFF y el formato de fichero de AVC.
El almacenamiento de flujos de MVC y 3VC puede soportarse por un número de estructuras, que incluyen la información en la entrada de muestra, la caja de información de medios y los grupos de muestras. La tabla 1 proporciona una vista general de las estructuras proporcionadas, sus nombres y una breve descripción de sus funciones. Más específicamente, la tabla 1 proporciona una caja de ejemplo, entrada de muestra y estructuras de grupo para los flujos de MVC y 3VC. Obsérvese que, cada grupo de filas que empiezan con una entrada en la columna izquierda (por ejemplo, 'minf y '?vc?') documenta una estructura de contención dentro de ese contenedor; sin embargo, no se muestra la contención de nivel superior.
Tabla 1
Figure imgf000007_0001
continuación
Figure imgf000008_0001
Las estructuras dentro de una entrada de muestra proporcionan información para la decodificación o uso de las muestras (por ejemplo, información de vídeo) que están asociadas con esa entrada de muestra. Los grupos de muestras proporcionan información variable en el tiempo acerca de la pista como una totalidad, ayudando, por ejemplo, con la extracción de subconjuntos de los medios dentro de una pista. La información en la caja de información de múltiples vistas (que aparece en la caja de información de medios) puede abarcar varias pistas y es descriptiva de las colecciones de las pistas, incluso cuando la caja de información de múltiples vistas reside en la pista que contiene la vista de base del flujo.
En algunos ejemplos, los flujos elementales de vídeo de MVC y 3VC contienen todas las unidades de NAL relacionadas con la codificación de vídeo (es decir, aquellas unidades de NAL que contienen datos de vídeo o que señalizan una estructura de vídeo) y pueden contener unidades de NAL no relacionadas con la codificación de vídeo tales como mensajes de SEI y unidades de NAL delimitadoras de la unidad de acceso. También, pueden estar presentes agregadores o extractores en flujos de vídeo de MVC y 3VC. Pueden estar presentes otras unidades de nAl que no están expresamente prohibidas, y, si no se reconocen, pueden ignorarse (por ejemplo, no colocarse en la memoria intermedia de salida mientras se accede al fichero). Los flujos de MVC y 3Vc pueden almacenarse también usando flujos de conjunto de parámetros asociados, cuando sea necesario. Puede haber unidades de NAL de VCL de AVC, unidades de NAL de VCL de MVC y unidades de NAL no de VCL, presentes en un flujo elemental de vídeo de MVC. Puede haber unidades de NAL de VCL de AVC, unidades de NAL de VCL de MVC, unidades de NAL de VCL de profundidad y unidades de NAL no de VCL, presentes en un flujo elemental de vídeo de 3VC. Adicionalmente, puede haber unidades de NAL de agregador o de extractor presentes en un flujo elemental de vídeo de MVC o uno de 3VC.
El fichero de medios de múltiples vistas con profundidad 142 puede almacenar medios continuos (por ejemplo, audio y vídeo), medios estáticos (por ejemplo, imágenes) y metadatos. La estructura de sintaxis elemental en el ISOBMFF es una caja, que incluye un tipo de caja codificada con cuatro caracteres, el recuento de bytes de la caja y la carga útil. El fichero de medios de múltiples vistas con profundidad 142 consiste en una secuencia de cajas. En el ejemplo ilustrado en la Figura 1, el fichero de medios de múltiples vistas con profundidad 142 incluye una caja de película 144, flujos de datos de vídeo 146-1 a 146-N (denominados colectivamente en el presente documento "flujos de datos de vídeo 146"), y flujos de datos de audio 148-1 a 148-N (denominados colectivamente en el presente documento "flujos de datos de audio 148"), en donde N puede ser cualquier número entero positivo, y puede ser el mismo o diferente número para las diferentes instancias de N en la Figura 1.
Los flujos de datos de vídeo 146 pueden corresponder a las pistas de vídeo o visuales descritas en ISOBMFF. Un flujo de vídeo puede representarse por una pista de vídeo en el fichero de medios de múltiples vistas con profundidad 142. Cada uno de los flujos de datos de vídeo 146-1 a 146-N puede incluir una o más unidades de acceso 150-1 a 150-N (denominadas colectivamente en el presente documento "unidades de acceso 150"). Las unidades de acceso 150 en el fichero de medios de múltiples vistas con profundidad 142 pueden definirse de acuerdo con ISOBMFF, o más específicamente, MVC o HEVCFF. Las unidades de acceso 150 pueden corresponder a una muestra en ISOBMFF. Las unidades de acceso 150 pueden estar enmarcadas externamente y tener un tamaño suministrado por ese marco externo. En algunos casos, la caja de metadatos 154 puede incluir información que define el tamaño de las unidades de acceso 150. Las unidades de acceso 150 pueden incluir un conjunto de unidades de NAL (es decir, capa de abstracción de red) 152-1 a 152-N (colectivamente denominadas en el presente documento "unidades de NAL 152"). Las unidades de NAL 152 pueden definirse de acuerdo con HEVCFF.
Cada unidad de NAL 152 puede incluir un campo de longitud que indica la longitud de la unidad de NAL, por ejemplo, en bytes u otras unidades de longitud o tamaño asociado con el almacenamiento de datos. En algunos ejemplos, el campo de longitud puede estar configurado para ser uno, dos o cuatro bytes. Los campos de longitud posibilitan una exploración fácil de las unidades de NAL dentro de una unidad de acceso 150. Las unidades de NAL 152 pueden contener datos de unidad de NAL como se especifican en ISO/IEC 23008-2. Además de otros tipos de unidades de NAL, HEVCFF define los siguientes tipos de unidades de NAL: unidades de NAL de datos de vídeo, que pueden denominarse como unidades de NAL de VCL, unidades de NAL de información de mejora complementaria (SEI), y unidades de NAL de delimitador de unidad de acceso (AU), así como otros tipos de unidades de NAL. Debería observarse que, los tipos de unidad de NAL que están reservados en ISO/IEC 23008-2 pueden obtener una definición en el futuro. Algunos lectores de ficheros pueden estar configurados para ignorar unidades de NAL con valores reservados del tipo de unidad de NAL cuando están presentes en estas matrices. Debería observarse que, este comportamiento 'tolerante' está diseñado de modo que no se produzcan errores, lo que permite la posibilidad de extensiones compatibles hacia atrás hasta estas matrices en especificaciones futuras. Las unidades de NAL de VLC pueden formatearse de manera que todas las unidades de NAL de corte codificado para una única imagen están contenidas dentro de la unidad de acceso cuyo tiempo de decodificación y tiempo de composición son aquellos de la imagen. Además, las unidades de acceso 150 puede requerirse que contengan al menos una unidad de NAL de datos de vídeo.
La caja de película 144 puede ser similar al caja de ISOBMFF 'moov'. Como se describe en el presente documento, 'moov' es un tipo de caja codificada con cuatro caracteres para la caja de película 144 definida en el ISOBMFF. Adicionalmente, las cajas pueden contener otras cajas. La caja de película 144 ("moov") contiene metadatos para cualquier flujo de medios continuo 146 y 148 presente en el fichero de medios de múltiples vistas con profundidad 142.
La caja de película 144 puede contener una o más cajas de metadatos 154. La caja de metadatos 154 puede ser similar a y puede contener metadatos para cada uno de los flujos de datos de vídeo 146 y/o flujos de datos de audio 148. En un ejemplo, pueden incluirse metadatos dentro de una o más tablas de metadatos 156 incluidas en una o más cajas de metadatos 154. Las tablas de metadatos 156 pueden incluir entradas de muestra que corresponden a flujos de datos de vídeo 146. Un ejemplo de una tabla de metadatos 156 es una caja de tabla de muestra. Cada uno de los flujos de datos de vídeo 146 puede hacer referencia a una o más de tablas de metadatos 156.
El ISOBMFF posibilita especificar metadatos específicos de muestra con diversos mecanismos. La caja de metadatos 154 puede incluir adicionalmente cajas específicas dentro de una caja de tabla de muestra 162 para contener otra información de metadatos tal como cajas de descripción de muestra que contienen adicionalmente entradas de muestra. Un tipo de caja codificada con cuatro caracteres para la caja de tabla de muestra 162 puede ser "stbl". Por ejemplo, puede usarse una caja de muestra de sincronización 164 para enumerar las muestras de acceso aleatorio de la pista. Un tipo de caja codificada con cuatro caracteres para la caja de muestra de sincronización 164 puede ser "stss". El mecanismo de agrupación de muestras posibilita el mapeo de muestras de acuerdo con un tipo de agrupación de cuatro caracteres en grupos de muestras que comparten la misma propiedad especificada que una entrada de descripción de grupo de muestras en el fichero de medios de múltiples vistas con profundidad 142. Se han especificado varios tipos de agrupación en el ISOBMFF.
En algunos ejemplos, no se usa una caja de sincronización de sombra para los datos de vídeo descritos por cualquiera de las entradas de muestra de MVC o 3VC.
En algunos ejemplos, puede usarse una caja de muestras independiente y desechable. Si se usa una caja de muestras independiente y desechable en una pista que es compatible tanto con AVC como con MVC, entonces la información indicada por la caja de muestras independiente y desechable es verdadera sin importar qué subconjunto válido de los datos de MVC (y posiblemente únicamente los datos de AVC) se use. Pueden usarse los valores 'desconocidos' (valor 0 de los campos muestra depende de, muestra es dependiente de y muestra tiene redundancia) si varía la información. Si se usa una caja de muestras independiente y desechable en una pista que es compatible para todos de AVC, MVC y 3VC, entonces debe tenerse cuidado que las declaraciones sean verdaderas sin importar cuál subconjunto válido de los datos de 3VC (posiblemente únicamente los datos de AVC o únicamente los datos de MVC) se use. Pueden usarse los valores 'desconocidos' (valor 0 de los campos muestra depende de, muestra es dependiente de y muestra tiene redundancia) si varía la información.
El fichero de medios de múltiples vistas con profundidad 142 puede incluir un grupo de muestras de recuperación de acceso aleatorio y un grupo de muestras de punto de acceso aleatorio. Para los datos de vídeo descritos por una entrada de muestra de tipo 'avc1' o 'avc2', el grupo de muestras de recuperación de acceso aleatorio y el grupo de muestras de punto de acceso aleatorio identifican puntos de recuperación de acceso aleatorio y puntos de acceso aleatorio, para todos de un decodificador de AVC, un decodificador de MVC y un decodificador de 3VC que operan en el flujo de bits completo. Para los datos de vídeo descritos por un tipo de entrada de muestra de MVC, el grupo de muestras de recuperación de acceso aleatorio identifica la recuperación de acceso aleatorio en el flujo de bits de MVC entero y el grupo de muestras de punto de acceso aleatorio identifica puntos de acceso aleatorio en el flujo de bits de MVC entero. Para los datos de vídeo descritos por un tipo de entrada de muestra de 3VC, el grupo de muestras de recuperación de acceso aleatorio identifica la recuperación de acceso aleatorio en el flujo de bits de 3VC entero y el grupo de muestras de punto de acceso aleatorio identifica puntos de acceso aleatorio en el flujo de bits de 3VC entero.
La caja de película 144 puede contener adicionalmente una o más cajas de pista 158 y una o más cajas de datos de medios 160. Los metadatos para una pista están encerrados en al menos una caja de pista 158. El tipo de caja codificada con cuatro caracteres para la caja de pista 158 puede ser "trak". El contenido de medios de una pista está encerrado en una caja de datos de medios 160 o directamente en un fichero separado. El tipo de caja codificada con cuatro caracteres para la caja de datos de medios 160 puede ser "mdat". El contenido de medios para las pistas consiste en una secuencia de muestras, tales como unidades de acceso de audio o de vídeo.
Los flujos de medios continuos presentes en el fichero de medios de múltiples vistas con profundidad 142 pueden representarse en una pista. El ISOBMFF especifica los siguientes tipos de pistas: una pista de medios, que contiene un flujo de medios elemental, una pista de sugerencia, que incluye instrucciones de transmisión de medios o representa un flujo de paquetes recibido, y una pista de metadatos temporizados, que comprende metadatos sincronizados en el tiempo.
Un flujo de MVC o uno de 3VC puede colocarse en pistas en un número de maneras, entre las que se encuentran las siguientes: todas las vistas en una pista, etiquetadas con grupos de muestras; cada vista, incluyendo tanto vistas de textura como vistas de profundidad cuando ambas están presentes, en su propia pista, etiquetada en las entradas de muestra; un híbrido, conteniendo una pista todas las vistas, y una o más pistas de vista única conteniendo cada una una vista que puede codificarse independientemente; los puntos de operación esperados cada uno en una pista (por ejemplo, la base de AVC, un par estéreo, una escena de múltiples vistas o una escena de 3VC); y, para 3VC únicamente, cada vista de textura o de profundidad en su propia pista, etiquetada en las entradas de muestra.
El formato de fichero de MVC y 3VC permite el almacenamiento de una o más vistas en una pista. Puede usarse el almacenamiento de múltiples vistas por pista, por ejemplo, cuando un proveedor de contenido desea proporcionar un flujo de bits de múltiples vistas que no se pretende para subconjuntos o cuando se ha creado el flujo de bits para unos pocos conjuntos predefinidos de vistas de salida (tal como 1, 2, 5 o 9 vistas) donde las pistas pueden crearse en consecuencia. Si se almacena más de una vista en una pista y hay varias pistas (más de una) que representan el flujo de bits de MVC o SVC, puede recomendarse el uso del mecanismo de agrupación de muestras. Puede usarse el mecanismo de agrupación de muestras para definir etapas que identifican las vistas presentes en la pista y para extraer unidades de NAL requeridas para ciertos puntos de operación convenientemente. El mecanismo de agrupación de muestras normalmente se usa con unidades de NAL de agregador para formar patrones de unidad de NAL normales dentro de las muestras. Por lo tanto, se especifica la agrupación de muestras similar a SVC, los agregadores y las definiciones de vista para los grupos de muestras para MVC y 3VC.
Se incluyen varias técnicas en esta divulgación para indicar si una vista incluida en una pista contiene únicamente vista de textura, únicamente vista de profundidad o tanto vistas de textura como de profundidad, indicar qué parte (la vista de textura, la vista de profundidad o ambas) de una primera vista de la que depende una segunda vista se requiere para decodificar la segunda vista, señalizar la resolución espacial de las vistas de profundidad de manera que no se requiere el análisis de los conjuntos de parámetros de secuencia (SPS) a los que se hace referencia por los componentes de vista de profundidad, y para mejorar la eficacia y flexibilidad del almacenamiento de flujos de vídeo que contienen múltiples vistas codificadas con profundidad.
Adicionalmente, se soporta el almacenamiento de la vista de textura y la vista de profundidad de una vista particular en pistas separadas en la primera y segunda realizaciones. Se define un nuevo tipo de referencia de pista con valor de tipo 'deps'. En la primera y segunda realizaciones, la presencia del nuevo tipo de referencia de pista 'deps' indica que una pista actual contiene la vista de profundidad que está asociada con una vista de textura en una pista referenciada. En la primera y segunda realizaciones, el fichero de medios de múltiples vistas con profundidad 142 contiene adicionalmente una o más cajas de identificador de vista 172, que pueden estar incluidas en una entrada de muestra o una entrada de grupo de múltiples vistas. En la primera y segunda realizaciones, la caja de identificador de vista 172 indica, para cada vista incluida en una pista, la presencia de vistas de textura y/o de profundidad en la pista y en el flujo de vídeo. En la primera y segunda realizaciones, la caja de identificador de vista 172 puede indicar adicionalmente cómo se requiere la vista de textura y la vista de profundidad de una vista de referencia para decodificar una vista específica. Es decir, en la primera y segunda realizaciones, la caja de identificador de vista 172 puede contener información de sintaxis adicional que indica si se requiere únicamente la vista de textura, si se requiere únicamente la vista de profundidad o se requiere tanto la vista de textura como la de profundidad para decodificar una vista específica. Como se usa en el presente documento, la codificación puede hacer referencia a componer o almacenar información de acuerdo con un formato de fichero especificado y la decodificación puede hacer referencia al análisis de información de acuerdo con el formato de fichero. En general, la codificación puede hacer referencia a cualquiera de componer o analizar.
El fichero de medios de múltiples vistas con profundidad 142 puede contener adicionalmente una o más cajas de configuración de 3VC 168. La caja de configuración de 3VC 168 puede incluir un registro de configuración del decodificador de 3VC. El registro de configuración del decodificador de 3VC puede llamarse 3VCDecoderConfigurationRecord. El registro de configuración del decodificador de 3VC puede incluir una sintaxis similar que MVC-DecoderConfigurationRecord, pero tener diferente semántica para indicar características relacionadas con un flujo de vídeo de 3DV. La caja de configuración de 3VC puede estar incluida en una entrada de muestra, en algunos ejemplos, debe incluirse en una entrada de muestra de tipo '3vcl' o '3vc2'.
La primera y segunda realizaciones también soportan señalización de la resolución espacial de vistas de profundidad. La caja de configuración de 3VC 168 puede incluir adicionalmente una caja de resolución de profundidad de 3VC 170. En la primera y segunda realizaciones, pueden señalizarse resoluciones espaciales de vistas de profundidad en la caja de resolución de profundidad de 3Vc 170, o puede señalizarse directamente la anchura y altura de vistas de profundidad en el registro de configuración del decodificador de 3VC.
En la primera y segunda realizaciones, el fichero de medios de múltiples vistas con profundidad 142 puede contener adicionalmente una o más cajas de mensaje de SEI de información de escalabilidad de 3VC 166. En la primera y segunda realizaciones, una caja de mensaje de SEI de información de escalabilidad de 3VC 166 puede contener un mensaje de información de mejora complementaria (SEI) de información de escalabilidad de 3DVC definido en la especificación del códec MVC+D. En algunos ejemplos, puede incluirse una caja de mensaje de SEI de información de escalabilidad de 3VC 166 en una entrada de muestra.
El fichero de medios de múltiples vistas con profundidad 142 puede contener adicionalmente una caja de grupo de múltiples vistas 174. La caja de grupo de múltiples vistas 174 puede indicar puntos de operación usados en la codificación de flujos de datos de vídeo 146, que incluyen puntos de operación de 3DV. En un ejemplo, la agrupación de múltiples vistas es una estructura y mecanismo de agrupación que indica la asociación de unidades de nAl con diferentes tipos y niveles de jerarquía de escalabilidad. Un tipo de caja codificada con cuatro caracteres para la caja de grupo de múltiples vistas 174 puede ser 'mvcg'. En algunos ejemplos, la caja de grupo de múltiples vistas 174 puede estar contenida en una caja de información de múltiples vistas ('mvci'). Puede haber cero o más cajas de grupo de múltiples vistas 174 presentes en el fichero de medios de múltiples vistas con profundidad 142.
La caja de grupo de múltiples vistas 174 puede especificar un grupo de múltiples vistas para las vistas del flujo de MVC o 3VC que se emiten. Pueden indicarse las vistas de salida objetivo basándose en track_id, tier_id o view_id. Cuando las vistas incluidas en una pista coinciden con un punto de operación, puede usarse track_id (es decir, entry_type igual a 0) dentro de la caja de grupo de múltiples vistas 174. Cuando está en uso la agrupación de muestras de múltiples vistas, y las etapas cubren más de una vista o algunas etapas contienen un subconjunto temporal del flujo de bits, puede usarse tier_id (es decir, entry_type igual a 1) dentro de la caja de grupo de múltiples vistas 174. De otra manera, puede usarse una de las indicaciones basadas en view_id (es decir, entry_type igual a 2 o 3).
Cuando entry_type es igual a 0 o 1, puede aplicarse lo siguiente. Cada vista en una pista o etapa que está incluida en la caja de grupo de múltiples vistas 174 es una vista de salida objetivo, y si una pista o etapa está incluida en esta caja contiene múltiples vistas, todas las vistas contenidas son vistas de salida objetivo.
La semántica para la caja de grupo de múltiples vistas 174 incluye un elemento de sintaxis num_entries, que puede indicar un número de pistas (tipo de entrada 0), etapas (tipo de entrada 1), vistas de salida objetivo (tipo de entrada 2), o conjuntos continuos de vistas de salida objetivo (tipo de entrada 3) incluidos en el grupo de múltiples vistas.
Una técnica adicional descrita en el presente documento incluye definir un atributo común y/o un atributo de diferenciación para indicar si están presentes los puntos de operación 3DV indicados en la caja de grupo de múltiples vistas 174. En otro ejemplo, puede incluirse información en la caja de grupo de múltiples vistas 174 para indicar si un punto de operación indicado en la caja de grupo de múltiples vistas 174 es un punto de operación de 3DC o un punto de operación de MVC. Un punto de operación puede ser un subconjunto decodificable independientemente de un flujo de bits escalable. Un subconjunto del flujo de bits de un punto de operación MVC o uno 3VC puede representar un conjunto particular de vistas de salida objetivo a una resolución temporal particular, y consiste en datos que pueden usarse para decodificar el subconjunto de flujo de bits particular. En 3VC, cada vista de salida objetivo en el subconjunto de flujo de bits de un punto de operación de 3VC puede contener una vista de textura, una vista de profundidad o ambas. Además, en algunos ejemplos, se introducen elementos de sintaxis, que pueden estar incluidos en la caja de grupo de múltiples vistas 174, para indicar si las vistas de salida indicadas en la caja de grupo de múltiples vistas 174 contienen vistas de textura únicamente, vistas de profundidad únicamente o tanto vistas de textura como de profundidad.
En técnicas adicionales de esta divulgación, se definen nuevos tipos de entrada de muestra. Por ejemplo, se definen '3vcl' y '3vc2' para las pistas 3VC con unidades de NAL de profundidad únicamente, donde los extractores no están permitidos y están permitidos, respectivamente. Un extractor es una estructura dentro del flujo (por ejemplo, una estructura que reside dentro de datos de muestra) para posibilitar la extracción eficiente de las unidades de NAL de las pistas distintas de las que contienen los datos de medios relevantes. Por ejemplo, un extractor puede contener instrucciones sobre cómo extraer datos de otras pistas.
El ejemplo de la Figura 1 ilustra solamente una manera posible de organizar el fichero de medios de múltiples vistas con profundidad 142. En algunos ejemplos, una o más de las cajas pueden ser subcajas de otras cajas. Es decir, en diferentes ejemplos, las diversas cajas pueden organizarse y configurarse de diferentes maneras que las mostradas en la Figura 1. Adicionalmente, puede usarse una o más de las técnicas descritas en el presente documento en cualquier combinación con una o más otras técnicas descritas en el presente documento.
La Figura 2 ilustra un ejemplo de una unidad de acceso MVC+D 150 que puede incluirse en un fichero de medios generado de acuerdo con las técnicas descritas en esta divulgación. La Figura 2 ilustra una estructura de ejemplo de una muestra, que, en este ejemplo, es una unidad de acceso 150 completa. Las muestras están enmarcadas externamente y tienen un tamaño suministrado por ese marco externo. La sintaxis de una muestra está configurada mediante la configuración específica del decodificador para el flujo elemental. Se representa un ejemplo de la estructura de una muestra de vídeo en la siguiente figura. Una muestra de 3VC puede incluir uno o más componentes de vista como se define en el anexo I de ISO/IEC 14496-10 y las unidades de NAL no de VCL asociadas, donde cada componente de vista puede contener un componente de vista de textura, un componente de vista de profundidad o ambos.
Como se ilustra en la Figura 2, la unidad de acceso 150 incluye un conjunto de unidades de NAL, que incluyen una unidad de NAL de delimitador de AU, una unidad de NAL de SEI y dos unidades de NAL de corte. Cada unidad de NAL se representa con una longitud, que indica una longitud en bytes de la unidad de NAL que la sigue en el orden del flujo de bits. El campo de longitud puede estar configurado para ser de 1, 2 o 4 bytes, por ejemplo. Una unidad de NAL contiene los datos de unidad de NAL como se especifica en la norma de codificación de vídeo aplicable.
En algunos ejemplos, se proporciona una extensión de corte codificado para unidades de NAL de corte codificado de profundidad. En algunos ejemplos, todas las unidades de NAL de corte codificado de profundidad para un único instante en el tiempo deben estar contenidas en una muestra cuyo tiempo de composición es de una imagen representada por la unidad de acceso. Una muestra de 3VC debe contener al menos una unidad de NAL de AVC, de MVC o de VCL de profundidad.
En algunos ejemplos, puede reconstruirse una unidad de acceso, tal como la unidad de acceso 150-1. Para reconstruir la unidad de acceso 150-1 a partir de muestras de una o más pistas de MVC o 3VC, puede ser necesario que se determinen las vistas de salida objetivo, examinando la caja de grupo de múltiples vistas 174 y una caja de relación de grupo de múltiples vistas. Una bandera explicit_au_track igual a 1 establece que esta pista es un punto de operación completo; sin embargo, la pista puede examinarse para determinar qué vistas entregadas por esta pista son las vistas de salida.
Si las vistas de salida objetivo no se representan exactamente por ninguna pista marcada con explicit_au_track igual a 1 en un registro de configuración del decodificador de MVC o 1 registro de configuración del decodificador de 3VC, la unidad de acceso 150-1 puede reconstruirse de la siguiente manera. Las vistas que se requieren para decodificar las vistas de salida objetivo determinadas pueden concluirse a partir de los identificadores de vista de referencia incluidos en la caja de identificador de vista, las referencias de pista de 'sello' o las cajas de dependencia de etapa.
Si varias pistas contienen datos para la unidad de acceso 150-1, la alineación de respectivas muestras en las pistas se realiza en el momento de la decodificación, por ejemplo, usando la tabla de tiempo a muestra únicamente sin considerar las listas de edición. La unidad de acceso 150-1 se reconstruye a partir de las respectivas muestras en las pistas y etapas requeridos disponiendo sus unidades de NAL en un orden conforme a ISO/IEC 14496-10. El siguiente orden proporciona un esquema del procedimiento para formar una unidad de acceso conforme: todas las unidades de NAL de conjunto de parámetros (a partir de las pistas de conjunto de parámetros asociadas y a partir de las pistas de sistema elementales asociadas); todas las unidades de NAL de SEI (a partir de las pistas de conjunto de parámetros asociados y a partir de las pistas de flujos elementales asociados); componentes de vista en orden ascendente de valor de índice de orden de vista; y dentro de un componente de vista, si están presentes tanto la textura como la profundidad, entonces el componente de vista de textura precede al componente de vista de profundidad. Las unidades de NAL dentro de un componente de vista de textura o de profundidad están en su orden de apariencia dentro de la muestra.
La Figura 3 es un diagrama de bloques que ilustra un sistema de codificación y decodificación de vídeo 10 que puede utilizar las técnicas descritas en esta divulgación. En un ejemplo, el sistema 10 puede estar configurado para componer o analizar un fichero de medios que contiene múltiples vistas codificadas más profundidad. Como se usa en el presente documento, los términos componer y encapsular pueden usarse de manera intercambiable. Análogamente, como se usa en el presente documento, los términos analizar y desencapsular pueden usarse de manera intercambiable. Además, en algunos ejemplos, se usa el término codificar de manera similar al término componer, y se usa el término decodificar de manera similar al término analizar.
Como se muestra en la Figura 3, el sistema 10 incluye un dispositivo de origen 12 que genera datos de vídeo codificados que van a decodificarse en un tiempo posterior por un dispositivo de destino 14. El dispositivo de origen 12 y el dispositivo de destino 14 pueden comprender cualquiera de una amplia gama de dispositivos, que incluyen ordenadores de sobremesa, ordenadores portátiles (es decir, portátiles), ordenadores de tableta, decodificadores de salón, microteléfonos telefónicos tales como los denominados teléfonos "inteligentes", los denominados mandos "inteligentes", televisiones, cámaras, dispositivos de visualización, reproductores de medios digitales, consolas de videojuegos, dispositivo de envío por flujo continuo de vídeo o similares. En algunos casos, el dispositivo de origen 12 y el dispositivo de destino 14 pueden equiparse para comunicación inalámbrica.
El dispositivo de destino 14 puede recibir los datos de vídeo codificados que van a decodificarse mediante un enlace 16. El enlace 16 puede comprender cualquier tipo de medio o dispositivo capaz de mover los datos de vídeo codificados desde el dispositivo de origen 12 al dispositivo de destino 14. En un ejemplo, el enlace 16 puede comprender un medio de comunicación para posibilitar que el dispositivo de origen 12 transmita datos de vídeo codificados directamente al dispositivo de destino 14 en tiempo real. Los datos de vídeo codificados pueden modularse de acuerdo con una norma de comunicación, tal como un protocolo de comunicación inalámbrica, y transmitirse al dispositivo de destino 14. El medio de comunicación puede comprender cualquier medio de comunicación inalámbrica o alámbrica, tal como un espectro de radiofrecuencia (RF) o una o más líneas de transmisión físicas. El medio de comunicación puede formar parte de una red basada en paquetes, tal como una red de área local, una red de área extensa o una red global, tal como internet. El medio de comunicación puede incluir encaminadores, conmutadores, estaciones base o cualquier otro equipo que pueda ser útil para facilitar la comunicación desde el dispositivo de origen 12 al dispositivo de destino 14.
Como alternativa, los datos codificados, tales como un fichero de medios MVC+D compuesto, pueden emitirse desde la interfaz de salida 22 a un dispositivo de almacenamiento 32. De manera similar, puede accederse a los datos codificados desde el dispositivo de almacenamiento 32 por la interfaz de entrada 28. El dispositivo de almacenamiento 32 puede incluir cualquiera de una diversidad de medios de almacenamiento de datos distribuidos o de acceso local, tales como un disco duro, discos Bluray, DVD, CD-ROM, memoria flash, memoria volátil o no volátil o cualquier otro medio de almacenamiento digital adecuado para almacenar datos de vídeo codificados. En un ejemplo adicional, el dispositivo de almacenamiento 32 puede corresponder a un servidor de archivos u otro dispositivo de almacenamiento intermedio que puede mantener el vídeo codificado generado por el dispositivo de origen 12. En algunos ejemplos, el dispositivo de almacenamiento 32 almacena contenido de vídeo codificado que un módulo de encapsulación 21 recupera más tarde para su encapsulación. El dispositivo de destino 14 puede acceder a datos de vídeo almacenados desde el dispositivo de almacenamiento 32 mediante envío por flujo continuo o descarga. El servidor de ficheros puede ser cualquier tipo de servidor que pueda almacenar datos de vídeo codificados y transmitir esos datos de vídeo codificados al dispositivo de destino 14. Servidores de ficheros ilustrativos incluyen, un servidor web (por ejemplo, para un sitio web), un servidor de FTP, dispositivos de almacenamiento de conexión de red (NAS) o una unidad de disco local. El dispositivo de destino 14 puede acceder a los datos de vídeo codificados a través de cualquier conexión de datos convencional, incluyendo una conexión a Internet. Esta puede incluir, un canal inalámbrico (por ejemplo, una conexión de Wi-Fi), una conexión cableada (por ejemplo, DSL, módem de cable, etc.), o una combinación de ambos que es adecuada para acceder a datos de vídeo codificados almacenados en un servidor de ficheros. La transmisión de datos de vídeo codificados desde el dispositivo de almacenamiento 32 puede ser una transmisión de envío por flujo continuo, una transmisión de descarga o una combinación de ambas.
Las técnicas de esta divulgación no están necesariamente limitadas a aplicaciones o ajustes inalámbricos. Las técnicas se pueden aplicar a la codificación de vídeo para soportar una diversidad de aplicaciones multimedia, tales como transmisiones de televisión por aire, transmisiones de televisión por cable, transmisiones de televisión por satélite, transmisiones de vídeo de envío por flujo continuo, por ejemplo, a través de Internet, codificación de vídeo digital para almacenamiento en un medio de almacenamiento de datos, decodificación de vídeo digital almacenado en un medio de almacenamiento de datos u otras aplicaciones. En algunos ejemplos, el sistema 10 puede configurarse para soportar una transmisión de vídeo unidireccional o bidireccional para soportar aplicaciones tales como envío por flujo continuo de vídeo, reproducción de vídeo, difusión de vídeo y/o telefonía de vídeo.
En la Figura 3, el dispositivo de origen 12 incluye una fuente de vídeo 18, el codificador de vídeo 20, el módulo de encapsulación 21 y una interfaz de salida 22. En algunos casos, la interfaz de salida 22 puede incluir un modulador/demodulador (módem) y/o un transmisor. En el dispositivo de origen 12, la fuente de vídeo 18 puede incluir una fuente tal como un dispositivo de captura de vídeo, por ejemplo, una cámara de vídeo, un archivo de vídeo que contiene un vídeo anteriormente capturado, una interfaz de alimentación de vídeo para recibir vídeo desde un proveedor de contenido de vídeo y/o un sistema de gráficos por ordenador para generar datos de gráficos por ordenador como el vídeo de origen o una combinación de tales fuentes. Como un ejemplo, si el origen de vídeo 18 es una cámara de vídeo, el dispositivo de origen 12 y el dispositivo de destino 14 pueden formar denominados teléfonos de cámara o videoteléfonos. Sin embargo, las técnicas descritas en esta divulgación pueden ser aplicables a codificación de vídeo en general, y pueden aplicarse a aplicaciones inalámbricas y/o por cable.
El vídeo capturado, pre-capturado o generado por ordenador puede codificarse por el codificador de vídeo 20. Los datos de vídeo codificados pueden transmitirse directamente al dispositivo de destino 14 mediante la interfaz de salida 22 del dispositivo de origen 12. Los datos de vídeo codificados también (o como alternativa) pueden almacenarse en el dispositivo de almacenamiento 32 para su posterior acceso por el dispositivo de destino 14 u otros dispositivos, para decodificar y/o reproducir.
El módulo de encapsulación 21 puede recibir contenido de vídeo codificado desde el codificador de vídeo 20 y generar un fichero de vídeo de acuerdo con las técnicas descritas en el presente documento. En un ejemplo, el módulo de encapsulación 21 puede recibir contenido de vídeo codificado de MVC o 3VC y generar un fichero de vídeo usando un formato de fichero basándose en el ISOBMFF y la versión actual del AVCFF. La Figura 3 muestra el dispositivo de origen 12 que incluye un codificador de vídeo 20. Sin embargo, en algunos ejemplos, el dispositivo de origen 12 puede no incluir ningún codificador de vídeo, pero incluye el módulo de encapsulación 21 que encapsula datos de vídeo codificados. En algunos ejemplos, los datos de vídeo codificados pueden almacenarse en una ubicación de almacenamiento remota, tal como el dispositivo de almacenamiento 32, por ejemplo. Como se describe en el presente documento, el módulo de encapsulación 21 puede ser un dispositivo de codificación de vídeo.
El dispositivo de destino 14 incluye una interfaz de entrada 28, un módulo de desencapsulación 29, un decodificador de vídeo 30 y un dispositivo de visualización 31. En algunos casos, la interfaz de entrada 28 puede incluir un receptor y/o un módem. La interfaz de entrada 28 del dispositivo de destino 14 recibe los datos de vídeo codificados a través del enlace 16. Los datos de vídeo codificados comunicados a través del enlace 16, o provistos en el dispositivo de almacenamiento 32, pueden incluir una diversidad de elementos de sintaxis generados por el codificador de vídeo 20 para su uso por un decodificador de vídeo, tal como el decodificador de vídeo 30, en la decodificación de los datos de vídeo. Tales elementos de sintaxis pueden incluirse con los datos de vídeo codificados transmitidos en un medio de comunicación, almacenados en un medio de almacenamiento o almacenados un servidor de archivos.
El módulo de desencapsulación 29 puede estar configurado para recibir un fichero de vídeo y analizar el fichero de vídeo y alimentar el flujo de bits desencapsulado al decodificador de vídeo 30 de manera que el decodificador de vídeo 30 puede emitir datos de vídeo decodificados. En algunos ejemplos, el módulo de desencapsulación 29 puede realizar procesos recíprocos del módulo de encapsulación 21. El decodificador de vídeo 30 puede realizar, en algunos ejemplos, una pasada de decodificación, generalmente recíproca a la pasada de codificación descrita con respecto al codificador de vídeo 20. En algunos ejemplos, el módulo de desencapsulación 29 está incluido en el decodificador de vídeo 30. En el resto de este documento, el decodificador de vídeo 30 que analiza un fichero puede hacer referencia a un módulo de desencapsulación, tal como el módulo de desencapsulación 29 incluido en el decodificador de vídeo 30, que analiza un fichero. Como se describe en el presente documento, el módulo de encapsulación 21 puede ser un dispositivo de codificación de vídeo.
El dispositivo de visualización 31 puede estar integrado con, o ser externo a, el dispositivo de destino 14. En algunos ejemplos, el dispositivo de destino 14 puede incluir un dispositivo de visualización integrado y también configurarse para interactuar con un dispositivo de visualización externo. En otros ejemplos, el dispositivo de destino 14 puede ser un dispositivo de visualización. En general, el dispositivo de visualización 31 visualiza los datos de vídeo decodificados a un usuario, y puede comprender cualquiera de una diversidad de dispositivos de visualización tal como una pantalla de cristal líquido (LCD), una pantalla de plasma, una pantalla de diodo orgánico emisor de luz (OLED) u otro tipo de dispositivo de visualización.
El codificador de vídeo 20 y el decodificador de vídeo 30 pueden operar de acuerdo con una norma de compresión de vídeo, tal como la norma de Codificación de Vídeo Avanzada o la norma de Codificación de Vídeo de Alta Eficacia (HEVC) y extensiones actualmente bajo desarrollo, y puede ajustare al modelo de prueba de HEVC (HM). En particular, el codificador de vídeo 20 y el decodificador de vídeo 30 pueden operar de acuerdo con la codificación de múltiples vistas más profundidad basada en AVC (MVC+D) y la norma de codificación de vídeo en 3D basada en AVC (3D-AVC) está actualmente bajo desarrollo por el JCT-3V, como se ha señalado anteriormente. Como alternativa o adicionalmente, el codificador de vídeo 20 y el decodificador de vídeo 30 pueden operar de acuerdo con otras normas propietarias o industriales, tales como la norma ITU-T H.264, como alternativa denominada como MPEG-4, Parte 10 o extensiones de tales normas. Sin embargo, las técnicas de esta divulgación no están limitadas a ninguna norma de codificación particular. Otros ejemplos de normas de compresión de vídeo incluyen MPEG-2 e ITU-T H.263, así como formatos abiertos tales como VP8.
En algunos aspectos, el codificador de vídeo 20 y el decodificador de vídeo 30 puede cada uno estar integrado con un codificador y decodificador de audio, y puede incluir unidades MUX-DEMUX apropiadas y otro hardware y software, para manejar la codificación tanto de audio como de vídeo en un flujo de datos común o en flujos de datos separados. Si es aplicable, en algunos ejemplos, las unidades MUX-DEMUX pueden ajustarse al protocolo multiplexor de la ITU H.223 u otros protocolos, tales como el protocolo de datagramas de usuario (UDP).
El codificador de vídeo 20 y el decodificador de vídeo 30 cada uno puede implementarse como cualquiera de una diversidad de circuitería de codificador adecuada, tal como uno o más microprocesadores, procesadores de señales digitales (DSP), circuitos integrados específicos de la aplicación (ASIC), campos de matrices de puertas programables (FPGA), lógica discreta, software, hardware, firmware o cualquier combinación de los mismos. Cuando las técnicas se implementan parcialmente en software, un dispositivo puede almacenar instrucciones para el software en un medio legible por ordenador no transitorio adecuado y ejecutar las instrucciones en hardware usando uno o más procesadores para realizar las técnicas de esta divulgación. Cada uno del codificador de vídeo 20 y el decodificador de vídeo 30 pueden estar incluidos en uno o más codificadores o decodificadores, cualquiera de los cuales puede estar integrado como parte de un codificador/decodificador combinado (CODEC) en un respectivo dispositivo.
El JCT-VC está trabajando en el desarrollo de extensiones a la norma de HVEC. Los esfuerzos de normalización de HVEC están basados en un modelo evolutivo de un dispositivo de codificación de vídeo denominado como el modelo de prueba de HEVC (HM). El HM supone varias capacidades adicionales de dispositivos de codificación de vídeo con relación a dispositivos existentes de acuerdo con, por ejemplo, ITU-T H.264/AVC.
Se describen algunos detalles de la codificación de vídeo en el presente documento en el contexto de HEVC. Sin embargo, las técnicas pueden aplicarse a ITU-T H.264/AVC, y, más específicamente, a codificación de vista de textura y/o vista de profundidad consistentes con un formato de fichero de medios de base de la ISO (ISOBMFF).
El modelo de trabajo del HM describe que un fotograma o imagen de vídeo puede dividirse en una secuencia de macrobloques, bloques de árbol o unidades de codificación más grandes (LCU) que incluyen tanto muestras de luma como de croma. Un bloque de árbol puede dar servicio a propósitos similares que un macrobloque de la norma H.264, aunque un bloque de árbol tiene muchas diferencias con relación a un macrobloque.
La Figura 4 es un diagrama de bloques que ilustra un codificador de vídeo 20 que puede implementar las técnicas descritas en esta divulgación. El codificador de vídeo 20 puede componer un fichero de medios que incluye datos de vídeo de múltiples vistas basándose en el formato de fichero de medios de base ISO, tal como el fichero de medios de múltiples vistas con profundidad 142 de la Figura 1. El codificador de vídeo 20 puede realizar intra- e inter­ codificación de bloques de vídeo dentro de cortes de vídeo. La intra codificación se basa en la predicción espacial para reducir o eliminar la redundancia espacial en vídeo dentro de un fotograma de vídeo o imagen dados. La inter codificación se basa en la predicción temporal para reducir o eliminar la redundancia temporal en el vídeo dentro de fotogramas o imágenes adyacentes de una secuencia de vídeo. El intra modo (modo I) puede hacer referencia a cualquiera de varios modos de compresión espacial. Los inter modos, tales como la predicción unidireccional (modo P) o la bipredicción (modo B), pueden hacer referencia a cualquiera de varios modos de compresión temporal.
En la Figura 4, el codificador de vídeo 20 incluye una unidad de subdivisión 35, unidad de procesamiento de predicción 41, unidad de filtro 63, memoria de imagen de referencia 64, sumador 50, unidad de procesamiento de transformada 52, unidad de cuantificación 54 y unidad de codificación por entropía 56. La unidad de procesamiento de predicción 41 incluye la unidad de estimación de movimiento 42, la unidad de compensación de movimiento 44 y la unidad de intra predicción 46. Para la reconstrucción del bloque de vídeo, el codificador de vídeo 20 también incluye la unidad de cuantificación inversa 58, la unidad de transformada inversa 60 y el sumador 62. La unidad de filtro 63 puede representar en general uno o más filtros de bucle, tales como un filtro de desbloqueo, un filtro de bucle adaptativo (ALF) y un filtro de desplazamiento adaptativo de muestra (SAO). Aunque se muestra la unidad de filtro 63 en la Figura 4 siendo un filtro en bucle, en otras configuraciones, la unidad de filtro 63 puede implementarse como un filtro postbucle, caso en el que pueden usarse los datos no filtrados en el bucle de codificación.
Como se muestra en la Figura 4, el codificador de vídeo 20 recibe datos de vídeo, y la unidad de subdivisión 35 subdivide los datos en bloques de vídeo. Esta subdivisión puede incluir también subdividir en cortes, piezas u otras unidades más grandes, así como subdivisión de bloque de vídeo, por ejemplo, de acuerdo con macrobloques y particiones de macrobloque, o posiblemente de acuerdo con una estructura de árbol cuádruple de las LCU y las CU. El codificador de vídeo 20 ilustra en general los componentes que codifican bloques de vídeo dentro de un corte de vídeo que va a codificarse. El corte puede dividirse en múltiples bloques de vídeo (y posiblemente en conjuntos de bloques de vídeo denominados piezas). La unidad de procesamiento de predicción 41 puede seleccionar uno de una pluralidad de posibles modos de codificación, tal como uno de una pluralidad de modos de intra codificación o uno de una pluralidad de modos de inter codificación, para el bloque de vídeo actual basándose en resultados de error (por ejemplo, tasa de codificación y el nivel de distorsión). La unidad de procesamiento de predicción 41 puede proporcionar el bloque intra- o inter-codificado resultante al sumador 50 para generar datos de bloque residuales y al sumador 62 para reconstruir el bloque codificado para su uso como una imagen de referencia.
La unidad de intra predicción 46 dentro de la unidad de procesamiento de predicción 41 puede realizar codificación intra predictiva del bloque de vídeo actual con relación a uno o más bloques vecinos en el mismo fotograma o corte que el bloque actual que va a codificarse para proporcionar compresión espacial. La unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44 dentro de la unidad de procesamiento de predicción 41 realizan codificación inter predictiva del bloque de vídeo actual con relación a uno o más bloques predictivos en una o más imágenes de referencia para proporcionar compresión temporal.
La unidad de estimación de movimiento 42 puede estar configurada para determinar el modo de inter-predicción para un corte de vídeo de acuerdo con un patrón predeterminado para una secuencia de vídeo. El patrón predeterminado puede designar cortes de vídeo en la secuencia como cortes P, cortes B o cortes GPB. La unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44 pueden estar altamente integradas, pero, se ilustran de manera separada para propósitos conceptuales. La estimación de movimiento, realizada por la unidad de estimación de movimiento 42, es el proceso de generación de vectores de movimiento, que estiman el movimiento para bloques de vídeo. Un vector de movimiento, por ejemplo, puede indicar el desplazamiento de una PU (o una macropartición de bloque o subbloque) de un bloque de vídeo dentro de un fotograma o imagen de vídeo actual con relación a un bloque predictivo dentro de una imagen de referencia.
Un bloque predictivo es un bloque que se encuentra que coincide estrechamente con la PU (o una partición de macrobloque o subbloque) del bloque de vídeo que va a codificarse, en términos de diferencia de píxel, que puede determinarse por una suma de diferencia absoluta (SAD), suma de diferencia de cuadrados (SSD) u otras métricas de diferencia. En algunos ejemplos, el codificador de vídeo 20 puede calcular valores para las posiciones de píxeles sub­ enteros de imágenes de referencia almacenadas en la memoria de imagen de referencia 64. Por ejemplo, el codificador de vídeo 20 puede interpolar valores de posiciones de un cuarto de píxel, posiciones de un octavo de píxel y otras posiciones de píxel fraccionales de la imagen de referencia. Por lo tanto, la unidad de estimación de movimiento 42 puede realizar una búsqueda de movimiento con relación a las posiciones de píxel completas y las posiciones de píxel fraccionales y emitir un vector de movimiento con precisión de píxel fraccional.
La unidad de estimación de movimiento 42 calcula un vector de movimiento para una PU (o una macropartición de bloque o subbloque) de un bloque de vídeo en un corte inter codificado comparando la posición de la PU (o una macropartición de bloque o subbloque) con la posición de un bloque predictivo de una imagen de referencia. La imagen de referencia puede seleccionarse de una primera lista de imágenes de referencia (Lista 0) o una segunda lista de imágenes de referencia (Lista 1), cada una de las cuales identifica una o más imágenes de referencia almacenadas en la memoria de imagen de referencia 64. La unidad de estimación de movimiento 42 envía el vector de movimiento calculado a la unidad de codificación por entropía 56 y a la unidad de compensación de movimiento 44.
La compensación de movimiento, realizada por la unidad de compensación de movimiento 44, puede implicar capturar o generar el bloque predictivo basándose en el vector de movimiento determinado por la estimación de movimiento, realizando posiblemente interpolaciones a precisión de subpíxel. Tras recibir el vector de movimiento para la PU (o una partición de macrobloque o subbloque) del bloque de vídeo actual, la unidad de compensación de movimiento 44 puede ubicar el bloque predictivo al que apunta el vector de movimiento en una de las listas de imágenes de referencia. El codificador de vídeo 20 forma un bloque de vídeo residual restando valores de píxel del bloque predictivo de los valores de píxel del bloque de vídeo actual que se está codificando, formando valores de diferencia de píxel. Los valores de diferencia de píxel 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 componentes que realizan esta operación de resta. La unidad de compensación de movimiento 44 puede generar también elementos de sintaxis asociados con los bloques de vídeo y el corte de vídeo para su uso por el decodificador de vídeo 30 al decodificar los bloques de vídeo del corte de vídeo.
La unidad de intra predicción 46 puede intra predecir un bloque actual, como una alternativa a la inter predicción realizada por la unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44, como se ha descrito anteriormente. En particular, la unidad de intra predicción 46 puede determinar un modo de intra predicción para usar para codificar un bloque actual. En algunos ejemplos, la unidad de intra predicción 46 puede codificar un bloque actual usando diversos modos de intra predicción, por ejemplo, durante pasadas de codificación separadas y la unidad de intra predicción 46 (o la unidad de selección de modo 40, en algunos ejemplos) puede seleccionar un modo de intra predicción apropiado para usar a partir de los modos probados. Por ejemplo, la unidad de intra predicción 46 puede calcular valores de tasa-distorsión usando un análisis de tasa-distorsión para los diversos modos de intra predicción probados, y seleccionar el modo de intra predicción que tiene las mejores características de tasa-distorsión entre los modos probados. El análisis de tasa-distorsión determina, en general, una cantidad de distorsión (o error) entre un bloque codificado y un bloque original no codificado, que se codificó para producir el bloque codificado, así como una tasa de bits (es decir, un número de bits) usada para producir el bloque codificado. La unidad de intra predicción 46 puede calcular relaciones a partir de las distorsiones y tasas para los diversos bloques codificados para determinar cuál modo de intra predicción muestra el mejor valor de tasa-distorsión para el bloque.
En cualquier caso, después de seleccionar un modo de intra predicción para un bloque, la unidad de intra predicción 46 puede proporcionar información indicativa del modo de intra predicción seleccionado para el bloque a la unidad de codificación por entropía 56. La unidad de codificación por entropía 56 puede codificar la información que indica el modo de intra predicción seleccionado de acuerdo con las técnicas de esta divulgación. El codificador de vídeo 20 puede incluir en el flujo de bits transmitido datos de configuración, que pueden incluir una pluralidad de tablas de índices de modo de intra predicción y una pluralidad de tablas de índices de modo de intra predicción modificado (también denominadas como tablas de mapeo de palabra de código), definiciones de codificación de contextos para diversos bloques e indicaciones de un modo de intra predicción más probable, una tabla de índices de modo de intra predicción y una tabla de índices de modo de intra predicción modificado para usar para cada uno de los contextos.
Después de que la unidad de procesamiento de predicción 41 genera el bloque predictivo para el bloque de vídeo actual mediante inter predicción o intra predicción, el codificador de vídeo 20 forma un bloque de vídeo residual restando el bloque predictivo del bloque de vídeo actual. Los datos de vídeo residuales en el bloque residual pueden aplicarse a la unidad de procesamiento de transformada 52. La unidad de procesamiento de transformada 52 transforma los datos de vídeo residuales en coeficientes de transformada residuales usando una transformada, tal como una transformada de coseno discreta (DCT) o una transformada conceptualmente similar. La unidad de procesamiento de transformada 52 puede convertir los datos de vídeo residuales de un dominio de los píxeles a un dominio de la transformada, tal como un dominio de frecuencia.
La unidad de procesamiento de transformada 52 puede enviar los coeficientes de transformada resultantes a la unidad de cuantificación 54. La unidad de cuantificación 54 cuantifica los coeficientes de transformada para reducir adicionalmente la tasa de bits. El proceso de cuantificación puede reducir la profundidad de bits asociada con alguno o todos los coeficientes. El grado de cuantificación puede modificarse ajustando un parámetro de cuantificación. En algunos ejemplos, la unidad de cuantificación 54 puede realizar a continuación una exploración de la matriz que incluye los coeficientes de transformada cuantificados. Como alternativa, la unidad de codificación por entropía 56 puede realizar la exploración.
Después de la cuantificación, la unidad de codificación por entropía 56 codifica por entropía los coeficientes de transformación cuantificados. Por ejemplo, la unidad de codificación por entropía 56 puede realizar codificación de longitud variable adaptativa según contexto (CAVLC), codificación binaria aritmética adaptativa según contexto (CABAC), codificación binaria aritmética adaptativa según contexto basada en sintaxis (SBAC), codificación por entropía de subdivisión de intervalo de probabilidad (PIPE) u otra metodología o técnica de codificación por entropía. Después de la codificación por entropía por la unidad de codificación por entropía 56, el flujo de bits codificado puede transmitirse al decodificador de vídeo 30, o archivarse para su posterior transmisión o recuperación por el decodificador de vídeo 30. La unidad de codificación por entropía 56 también puede codificar por entropía los vectores de movimiento y los otros elementos de sintaxis para el corte de vídeo actual que se está codificando.
La unidad de cuantificación inversa 58 y la unidad de transformada inversa 60 aplican cuantificación inversa y transformación inversa para reconstruir el bloque residual en el dominio de los píxeles para su uso posterior como un bloque de referencia de una imagen de referencia. La unidad de compensación de movimiento 44 puede calcular un bloque de referencia añadiendo el bloque residual a un bloque predictivo de una de las imágenes de referencia dentro de una de las listas de imágenes de referencia. La unidad de compensación de movimiento 44 puede aplicar también uno o más filtros de interpolación al bloque residual objetivo para calcular valores de píxel sub-enteros para su uso en la estimación de movimiento. El sumador 62 añade el bloque residual objetivo al bloque de predicción de movimiento compensado producido por la unidad de compensación de movimiento 44 para producir un bloque de referencia para su almacenamiento en la memoria de imagen de referencia 64. El bloque de referencia puede usarse por la unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44 como un bloque de referencia para inter predecir un bloque en un fotograma o imagen de vídeo posterior.
El codificador de vídeo 20 de la Figura 4 representa un codificador de vídeo configurado para implementar una o más de las técnicas descritas en el presente documento. Por ejemplo, el módulo de encapsulación 21 del codificador de vídeo 20 puede componer un formato de fichero de medios de flujos de vídeo que contienen múltiples vistas codificadas. Por ejemplo, el módulo de encapsulación 21 puede componer un fichero de medios que incluye una caja de identificador de vista, tal como la caja de identificador de vista 172 de la Figura 1, que indica, para cada una de la vista incluida en la pista, la presencia de textura y/o profundidad en la pista y en el flujo. El módulo de encapsulación 21 puede incluir la caja de identificador de vista 172 en una entrada de muestra o una entrada de grupo de múltiples vistas. En otro ejemplo, el módulo de encapsulación 21 puede componer un fichero de medios de manera que la caja de identificador de vista 172 índica cómo se requiere una vista de textura y una vista de profundidad de una vista de referencia para decodificar una vista específica: si se requiere únicamente la vista de textura, se requiere únicamente la vista de profundidad o se requiere ambas. Como se muestra en la Figura 4, el módulo de encapsulación 21 es parte del codificador de vídeo 20. Sin embargo, en otros ejemplos, el módulo de encapsulación 21 está separado del codificador de vídeo 20.
Adicionalmente, en la segunda realización, el codificador de vídeo 20 soporta el almacenamiento de una vista de textura y una vista de profundidad de una vista particular en pistas separadas. En la segunda realización, el codificador de vídeo 20 está configurado para usar e interpretar uno o más nuevos tipos de referencias de pista. En la segunda realización, el codificador de vídeo 20 utiliza un nuevo tipo de referencia de pista con valor de tipo 'deps', la presencia del cual indica que la pista actual contiene la vista de profundidad que está asociada con una vista de textura en la pista referenciada.
En la segunda realización, el codificador de vídeo 20 puede soportar la señalización de la resolución espacial de vistas de profundidad. En la segunda realización, el codificador de vídeo 20 puede señalizar la resolución espacial de vistas de profundidad en una caja de resolución de profundidad de 3VC nuevamente definida, que puede estar incluida en una caja de configuración de 3VC. En algunos ejemplos, la caja de configuración de 3VC incluye el registro de configuración del decodificador de 3VC, y puede estar incluida en una entrada de muestra (y debe estar incluida en una entrada de muestra de tipo '3vcl' o '3vc2'), o el codificador de vídeo 20 señaliza directamente una anchura y altura de vistas de profundidad en el registro de configuración del decodificador de 3VC. En la segunda realización, el codificador de vídeo 20 puede componer un fichero de medios, tal como el fichero de medios de múltiples vistas con profundidad 142 de la Figura 1, y añadir una caja de resolución de profundidad de 3VC, tal como la caja de resolución de profundidad de 3VC 170, en una entrada de muestra, o el codificador de vídeo 20 puede señalizar una anchura y altura de vistas de profundidad directamente en un registro de configuración del decodificador de 3VC, que puede estar incluido en una caja de configuración de 3VC 168.
El codificador de vídeo 20 puede usar también tipos de entrada de muestra nuevamente definidos, '3vc1' y '3vc2', para pistas de 3VC con unidades de NAL de profundidad únicamente, donde los extractores no están permitidos y están permitidos, respectivamente. En la segunda realización, el codificador de vídeo 20 puede incluir adicionalmente, en un fichero de medios codificado, una caja de mensaje de SEI de información de escalabilidad de 3VC para contener el mensaje de SEI de información de escalabilidad de 3DVC definido en la especificación de códec MVC+D.
En un ejemplo, el codificador de vídeo 20 incluye un atributo común y/o un atributo de diferenciación en un fichero de medios compuesto que indica si están presentes los puntos de operación 3VC indicados en una caja de grupo de múltiples vistas (tal como la caja de grupo de múltiples vistas 174), si un punto de operación indicado en una caja de grupo de múltiples vistas es 3Vc o MVC, o si las vistas de salida indicadas en una caja de grupo de múltiples vistas contienen textura únicamente, profundidad únicamente o ambas.
El codificador de vídeo 20 puede estar configurado para emplear una o más de las técnicas descritas en el presente documento para indicar si una vista incluida en una pista consiste en vistas de textura, vistas de profundidad o tanto en vistas de textura como de profundidad, indicar la dependencia de la vista, señalizar la resolución espacial de vistas de profundidad sin requerir analizar un SPS, y mejorar la eficacia y flexibilidad del almacenamiento de flujos de vídeo que contienen múltiples vistas codificadas con profundidad.
Haciendo referencia de nuevo a la Figura 3, el módulo de encapsulación 21 puede recibir contenido de vídeo codificado desde el codificador de vídeo 20 y generar un fichero de vídeo de acuerdo con las técnicas descritas en el presente documento. En un ejemplo, el módulo de encapsulación 21 recibe contenido de vídeo codificado con AVC o HEVC y genera un fichero de vídeo usando un formato de fichero basándose en el ISOBMFF y la versión actual del AVCFF o HEVCFF, respectivamente.
La Figura 5 es un diagrama de bloques que ilustra un decodificador de vídeo 30 y el módulo de desencapsulación 29 que pueden implementar las técnicas de esta divulgación. El módulo de desencapsulación 29 puede analizar un fichero de medios que incluye datos de vídeo de múltiples vistas basándose en el formato de fichero de medios de base ISO, tal como el fichero de medios de múltiples vistas con profundidad 142 de la Figura 1. El módulo de desencapsulación 29 puede proporcionar el fichero de medios analizado al decodificador de vídeo 30.
En la Figura 5, el decodificador de vídeo 30 incluye una unidad de codificación por entropía 80, unidad de procesamiento de predicción 81, unidad de cuantificación inversa 86, unidad de transformación inversa 88, sumador 90, unidad de filtro 91 y memoria de imagen de referencia 92. La unidad de procesamiento de predicción 81 incluye la unidad de compensación de movimiento 82 y la unidad de intra predicción 84. El decodificador de vídeo 30 puede realizar, en algunos ejemplos, una pasada de decodificación, generalmente recíproca a la pasada de codificación descrita con respecto al codificador de vídeo 20 de la Figura 3.
Durante el proceso de decodificación, el decodificador de vídeo 30 recibe un flujo de bits de vídeo codificado que representa bloques de vídeo de un corte de vídeo codificado y elementos de sintaxis asociados del codificador de vídeo 20. El decodificador de vídeo 30 puede recibir el flujo de bits de vídeo codificado de una entidad de red 29. La entidad de red 29 puede ser, por ejemplo, un servidor, un elemento de red al tanto de los medios (MANE), un editor/empalmador de vídeo u otro dispositivo de este tipo configurado para implementar una o más de las técnicas anteriormente descritas. Como se ha descrito anteriormente, algunas de las técnicas descritas en esta divulgación pueden implementarse por la entidad de red 29 antes de que la red 29 transmita el flujo de bits de vídeo codificado al decodificador de vídeo 30. En algunos sistemas de decodificación de vídeo, la entidad de red 29 y el decodificador de vídeo 30 pueden ser partes de dispositivos separados, mientras que, en otras instancias, la funcionalidad descrita con respecto a la entidad de red 29 puede realizarse por el mismo dispositivo que comprende decodificador de vídeo 30.
La unidad de codificación por entropía 80 del decodificador de vídeo 30 decodifica por entropía el flujo de bits para generar coeficientes cuantificados, vectores de movimiento y otros elementos de sintaxis. La unidad de codificación por entropía 80 reenvía los vectores de movimiento y otros elementos de sintaxis a la unidad de procesamiento de predicción 81. El decodificador de vídeo 30 puede recibir los elementos de sintaxis en el nivel de corte de vídeo y/o en el nivel de bloque de vídeo.
Cuando se codifica el corte de vídeo como un corte intra codificado (I), la unidad de intra predicción 84 de la unidad de procesamiento de predicción 81 puede generar datos de predicción para un bloque de vídeo del corte de vídeo actual basándose en un modo de intra predicción señalizado y datos de bloques previamente decodificados del fotograma o imagen actual. Cuando se codifica el fotograma de vídeo como un corte inter codificado (es decir, B, P o GPB), la unidad de compensación de movimiento 82 de la unidad de procesamiento de predicción 81 produce bloques predictivos para un bloque de vídeo del corte de vídeo actual basándose en los vectores de movimiento y otros elementos de sintaxis recibidos de la unidad de codificación por entropía 80. Los bloques predictivos pueden producirse de una de las imágenes de referencia dentro de una de las listas de imágenes de referencia. El decodificador de vídeo 30 puede reconstruir las listas de fotogramas de referencia, Lista 0 y Lista 1, usando técnicas de construcción por defecto basándose en imágenes de referencia almacenadas en la memoria de imagen de referencia 92.
La unidad de compensación de movimiento 82 determina información de predicción para un bloque de vídeo del corte de vídeo actual analizando los vectores de movimiento y otros elementos de sintaxis, y usa la información de predicción para producir los bloques predictivos para el bloque de vídeo actual que se está decodificando. Por ejemplo, la unidad de compensación de movimiento 82 usa alguno de los elementos de sintaxis recibidos para determinar un modo de predicción (por ejemplo, intra- o inter- predicción) usado para codificar los bloques de vídeo del corte de vídeo, un tipo de corte de inter predicción (por ejemplo, corte B o corte P o corte GPB), información de construcción para una o más de las listas de imágenes de referencia para el corte, vectores de movimiento para cada bloque de vídeo inter codificado del corte, estado de inter predicción para cada bloque de vídeo inter codificado del corte, y otra información para decodificar los bloques de vídeo en el corte de vídeo actual.
La unidad de compensación de movimiento 82 puede realizar también interpolación basándose en filtros de interpolación. La unidad de compensación de movimiento 82 puede usar filtros de interpolación como se usan por el codificador de vídeo 20 durante la codificación de los bloques de vídeo para calcular valores interpolados para píxeles sub-enteros de los bloques de referencia. En este caso, la unidad de compensación de movimiento 82 puede determinar los filtros de interpolación usados por el codificador de vídeo 20 de los elementos de sintaxis recibidos y usar los filtros de interpolación para producir bloques predictivos.
La unidad de cuantificación inversa 86 cuantifica a la inversa, es decir, descuantifica, los coeficientes de transformada cuantificados proporcionados en el flujo de bits y decodificados por la unidad de codificación por entropía 80. El proceso de cuantificación inversa puede incluir el uso de un parámetro de cuantificación calculado por el codificador de vídeo 20 para cada bloque de vídeo en el corte de vídeo para determinar un grado de cuantificación y, análogamente, un grado de cuantificación inversa que debe aplicarse. La unidad de transformada inversa 88 aplica una transformada inversa, por ejemplo, una DCT inversa, una transformada de entero inversa o un proceso de transformada inversa conceptualmente similar, a los coeficientes de transformada para producir bloques residuales en el dominio de los píxeles.
Después de que la unidad de compensación de movimiento 82 genera el bloque predictivo para el bloque de vídeo actual basándose en los vectores de movimiento y otros elementos de sintaxis, el decodificador de vídeo 30 forma un bloque de vídeo decodificado sumando los bloques residuales de la unidad 88 de transformada inversa con los correspondientes bloques predictivos generados por la unidad de compensación de movimiento 82. El sumador 90 representa el componente o componentes que realizan esta operación de suma. Si se desea, pueden usarse también filtros de bucle (en el bucle de codificación o después del bucle de codificación) para suavizar las transiciones de píxel, o mejorar de otra manera la calidad de vídeo. La unidad de filtro 91 puede representar uno o más filtros de bucle, tales como un filtro de desbloqueo, un filtro de bucle adaptativo (ALF) y un filtro de desplazamiento adaptativo de muestra (SAO). Aunque se muestra la unidad de filtro 91 en la Figura 5 siendo un filtro en bucle, en otras configuraciones, la unidad de filtro 91 puede implementarse como un filtro postbucle. Los bloques de vídeo decodificados en un fotograma o imagen dados se almacenan a continuación en la memoria de imagen de referencia 92, que almacena imágenes de referencia usadas para compensación de movimiento posterior. La memoria de imagen de referencia también 92 almacena vídeo decodificado para su presentación posterior en un dispositivo de visualización, tal como el dispositivo de visualización 31 de la Figura 1.
El decodificador de vídeo 30 de la Figura 5 representa un decodificador de vídeo que puede usarse con un módulo de desencapsulación 29 configurado para implementar una o más de las técnicas descritas en el presente documento. Por ejemplo, el módulo de desencapsulación 29 puede analizar un fichero de medios que incluye flujos de vídeo almacenados que contienen múltiples vistas codificadas y proporcionarlo al decodificador de vídeo 30. En la primera realización, el módulo de desencapsulación 29 analiza un fichero de medios que incluye la caja de identificador de vista de la primera realización, tal como la caja de identificador de vista 172 de la Figura 1. En la primera realización, la caja de identificador de vista indica, para cada una de la vista o vistas incluidas en la pista, la presencia de la textura y/o profundidad en la pista. En la primera realización, la caja de identificador de vista puede indicar adicionalmente, para cada una de la vista o vistas incluidas en la pista, la presencia de textura y/profundidad en el flujo. En la primera realización, el módulo de desencapsulación 29 puede decodificar la caja de identificador de vista 172 de una entrada de muestra o una entrada de grupo de múltiples vistas. En la primera realización, el decodificador de vídeo 30 puede analizar también la caja de identificador de vista 172 en un fichero de medios para determinar si se requiere una vista de textura y una vista de profundidad de una vista de referencia para decodificar una vista específica. Es decir, en la primera realización, el módulo de desencapsulación 29 puede determinar si únicamente se requiere la vista de textura, únicamente se requiere la vista de profundidad o se requieren ambas.
Adicionalmente, en la primera realización, el módulo de desencapsulación 29 analiza un fichero de medios que contiene una vista de textura y una vista de profundidad de una vista particular en pistas separadas. En la primera realización, el módulo de desencapsulación 29 está configurado para analizar e interpretar uno o más tipos de referencias de pista. En la primera realización, el módulo de desencapsulación 29 analiza un nuevo tipo de referencia de pista con valor de tipo 'deps', la presencia del cual indica que la pista actual contiene la vista de profundidad que está asociada con una vista de textura en una pista referenciada.
En la primera realización, el módulo de desencapsulación 29 puede determinar resoluciones espaciales de vistas de profundidad del análisis de un fichero de medios compuesto de acuerdo con las técnicas descritas en el presente documento. En la primera realización, el módulo de desencapsulación 29 puede determinar resoluciones espaciales de vistas de profundidad de la caja de resolución de profundidad de 3VC nuevamente definida, que puede estar incluida en una caja de configuración de 3VC o el módulo de desencapsulación 29 determina directamente una anchura y altura de vistas de profundidad del registro de configuración del decodificador de 3VC. En la primera realización, el módulo de desencapsulación 29 puede analizar un registro de configuración del decodificador de 3VC de un fichero de medios, tal como el fichero de medios de múltiples vistas con profundidad 142 de la Figura 1 para determinar la anchura y altura de vistas de profundidad asociadas con el fichero de medios.
El módulo de desencapsulación 29 puede analizar también tipos de entrada de muestra nuevamente definidos, '3vcl' y '3vc2', para pistas de 3VC con unidades de NAL de profundidad únicamente. El módulo de desencapsulación 29 puede decodificar adicionalmente, a partir de un fichero de medios codificado, una caja de mensaje de SEI de información de escalabilidad de 3VC para acceder al mensaje de SEI de información de escalabilidad de 3DVC definido en la especificación del códec MVC+D.
En un ejemplo, el módulo de desencapsulación 29 analiza un atributo común y/o un atributo de diferenciación del fichero de medios para determinar si están presentes los puntos de operación de 3VC indicados en una caja de grupo de múltiples vistas (tal como la caja de grupo de múltiples vistas 174), si un punto de operación indicado en la caja de grupo de múltiples vistas 174 es 3VC o MVC, o si las vistas de salida indicadas en la caja de grupo de múltiples vistas 174 contienen textura únicamente, profundidad únicamente o ambas.
El módulo de desencapsulación 29 puede estar configurado para emplear una o más de las técnicas descritas en el presente documento para determinar si una vista incluida en una pista consiste en vistas de textura, vistas de profundidad o tanto en vistas de textura como de profundidad, determinar la dependencia de la vista, determinar la resolución espacial de vistas de profundidad sin requerir analizar un SPS, y mejorar la eficacia y flexibilidad del almacenamiento de flujos de vídeo que contienen múltiples vistas codificadas con profundidad.
La Figura 6 es un diagrama de bloques que ilustra componentes de un módulo de encapsulación 21. En la Figura 6, el módulo de encapsulación 21 incluye la interfaz de entrada de vídeo 70, el módulo de creación de fichero de vídeo 72 y la interfaz de salida de fichero de vídeo 76. El módulo de creación de fichero de vídeo 70 incluye el constructor de unidad 74 de capa de abstracción de red (NAL).
La interfaz de entrada de vídeo 70 puede recibir contenido de vídeo codificado. La interfaz de entrada de vídeo 70 puede recibir contenido de vídeo codificado del codificador de vídeo 20 o puede recuperar contenido de vídeo codificado de un dispositivo de almacenamiento. El contenido de vídeo codificado puede codificarse de acuerdo con la norma AVC o HEVc y puede incluir muestras de contenido de vídeo, conjuntos de parámetros y mensajes de SEI. Después de recibir contenido de vídeo codificado, la interfaz de entrada de vídeo 70 puede emitir el contenido de vídeo codificado al módulo de creación de fichero de vídeo 72 para su ensamblaje en un fichero de medios. En algunos casos, la interfaz de entrada de vídeo 70 puede facilitar el ensamblaje de un fichero de medios organizando o almacenando en memoria intermedia contenido de vídeo codificado antes de que se emita al módulo de creación de fichero de vídeo 72.
En general, el módulo de creación de fichero de vídeo 72 puede generar un fichero de vídeo que incluye el contenido de vídeo codificado recibido. En un ejemplo, el módulo de creación de fichero de vídeo 72 puede crear un fichero de vídeo, tal como el fichero de medios de múltiples vistas con profundidad 142 descrito con respecto a la Figura 1. El módulo de creación de fichero de vídeo 72 puede corresponder a una unidad de control que incluye hardware, software y/o firmware configurado para realizar las funciones y procedimientos que se le atribuyen. La unidad de control puede realizar adicionalmente las funciones atribuidas al módulo de encapsulación 21 en general. Para ejemplos en los que el módulo de creación de fichero de vídeo 72 está incorporado en software y/o firmware, el módulo de encapsulación 21 puede incluir un medio legible por ordenador que comprende instrucciones para que el módulo de creación de fichero de vídeo 72 y una unidad de procesamiento ejecuten las instrucciones. Los submódulos del módulo de creación de fichero de vídeo 72 (el constructor de unidad de NAL 74 en este ejemplo) pueden implementarse como módulos de hardware y/o módulos de software individuales, y pueden estar funcionalmente integrados o separados adicionalmente en submódulos adicionales. El módulo de creación de fichero de vídeo 72 puede corresponder a cualquier unidad de procesamiento o circuitería de procesamiento adecuadas, tal como, por ejemplo, uno o más microprocesadores, circuitos integrados específicos de la aplicación (ASIC), campos de matrices de puertas programables (FPGA), procesadores de señales digitales (DSP) o cualquier combinación de los mismos. El módulo de creación de fichero de vídeo 72 puede incluir adicionalmente un medio legible por ordenador no transitorio que almacena instrucciones para que el constructor de unidad de NAL 74, así como un procesador, ejecute las instrucciones.
En un ejemplo, el módulo de creación de fichero de vídeo 72 puede estar configurado para emitir datos de vídeo codificados de acuerdo con un formato de fichero que puede almacenar flujos de vídeo que contienen múltiples vistas codificadas con profundidad, en donde pueden señalizarse las propiedades y relaciones de las vistas de profundidad en el fichero.
El módulo de creación de fichero de vídeo 72 puede estar configurado para implementar las técnicas descritas en esta divulgación. Por ejemplo, el módulo de creación de fichero de vídeo 72 puede componer un fichero de medios que tiene un nuevo valor del elemento de sintaxis Compressorname. Compressorname como se define en una clase de base VisualSampleEntry puede indicar el nombre del compresor usado con el valor "\0123VC Coding" que se recomienda para un fichero que contiene flujos de vídeo de 3DV (tales como MVC+D). El elemento de sintaxis Compressorname puede estar definido adicionalmente de acuerdo con AVCFF o HEVCFF.
Además de la sintaxis y semántica de ejemplo anteriormente descritas, un formato de fichero usado por el módulo de creación de fichero de vídeo 72 puede incluir restricciones adicionales con respecto a un registro de configuración del decodificador de 3VC. De acuerdo con las técnicas descritas en el presente documento, el elemento de sintaxis MVCDecoderConfigurationRecord puede ser estructuralmente idéntico a un elemento de sintaxis AVCDecoderConfigurationRecord. Sin embargo, se redefinen uno o más bits reservados que preceden y suceden al campo lengthSizeMinusOne. Una sintaxis de ejemplo es como sigue:
aligned(8) class MVCDecoderConfigurationRecord {
unsigned int(8) configuration Version = 1;
unsigned int(8) AVCProfileIndication;
unsigned int(8) profile compatibility;
unsigned int(8) AVCLevelIndication;
bit(1) complete representation;
bit(1) explicit au track; bit(4) reserved = '1111'b;
unsigned int(2) lengthSizeMinusOne; bit(1) reserved = '0'b;
unsigned int(7) numOfSequenceParameterSets;
for (i=0; i< numOfSequenceParameterSets; i++) {
unsigned int(16) sequenceParameterSetLength;
bit(8*sequenceParameterSetLength) sequenceParameterSetNALUnit;
} unsigned int(8) numOfPictureParameterSets;
for (i=0; i< numOfPictureParameterSets; i++) {
unsigned int(16) pictureParameterSetLength;
bit(8*pictureParameterSetLength) pictureParameterSetNALUnit;
} }
En algunos ejemplos, la estructura de sintaxis de 3VCDecoderConfigurationRecord puede ser exactamente la misma que MVCDecoderConfigurationRecord. Cuando se usa un registro de configuración de decodificador de AVC (como se define en la cláusula 5.3.3.1 de ISO/IEC 14496-15) para un flujo que puede interpretarse como un flujo de 3VC, el registro de configuración de decodificador de AVC puede reflejar las propiedades de la vista de base compatible con AVC. Por ejemplo, el registro de configuración de decodificador de AVC puede contener únicamente conjuntos de parámetros usados para decodificar la vista de base de AVC.
Cuando se usa el registro de configuración de decodificador de MVC (como se define en ISO/IEC 14496-15) para un flujo que puede interpretarse como un flujo de MVC o uno de 3VC, el registro de configuración de decodificador de MVC debe reflejar las propiedades de un subconjunto de flujo de bits compatible con MVC. Es decir, por ejemplo, el registro de configuración de decodificador de MVC puede contener únicamente conjuntos de parámetros usados para decodificar el subconjunto de flujo de bits compatible con MVC. Un subconjunto compatible con MVC puede ser, por ejemplo, un subconjunto de flujo de bits con únicamente las vistas de textura.
Puede usarse un flujo de conjunto de parámetros con flujos de 3VC, al igual que con flujos de AVC o MVC. En un ejemplo de este tipo, no deben incluirse los conjuntos de parámetros en la configuración del registro del decodificador. Los conjuntos de parámetros de secuencia (SPS), que incluyen conjuntos de parámetros de secuencia de subconjunto, pueden numerarse en orden de almacenamiento desde 1 hasta numOfSequenceParameterSets o numOfPictureParameterSets, respectivamente. Los SPS y los conjuntos de parámetros de imagen (PPS) almacenados en este registro en un fichero pueden hacerse referencia usando este índice basado en 1 por el InitialParameterSetBox.
La semántica de los campos AVCProfileIndication, profile_compatibility y AVCLevelIndication puede diferir de MVCDecoderConfigurationRecord como sigue. AVCProfileIndication, profil e_compatibility y AVCLevelIndication, si no son cero, deben tener valores de manera que un decodificador de 3VC conforme pueda decodificar los flujos de bits conforme al perfil, nivel y banderas de compatibilidad de perfil indicados en cualquiera de los SPS o SPS de subconjunto contenidos en este registro.
La semántica de otros campos puede ser como sigue, o, si no está presente, como se define para un MVCDecoderConfigurationRecord: numOfSequenceParameterSets indica el número de SPS y SPS de subconjunto que se usan para decodificar el flujo elemental de 3VC. El elemento de sintaxis SequenceParameterSetNALUnit puede contener un SPS o unidad de NAL de SPS de subconjunto como se especifica en el anexo I de ISO/IEC 14496-10. Los SPS deben ocurrir en orden del identificador de conjunto de parámetro ascendente estando permitidos huecos. Los SPS de subconjunto deben ocurrir en orden del identificador de conjunto de parámetro ascendente estando permitidos huecos. Cualquier SPS debe ocurrir antes de todos los SPS de subconjunto, si los hubiera.
El módulo de creación de fichero de vídeo 72 puede crear también un fichero de medios para pistas de 3VC con AVC, MVC y unidades de NAL de profundidad. Los dos tipos de entrada de muestra se definen como '3vcl' y '3vc2'. Se proporcionan definiciones de ejemplo para las entradas de muestra para MVC y 3VC como sigue. Los tipos de entrada de muestra 'avc1', 'avc2', 'mvc1', 'mvc2', '3vc1' y '3vc2' pueden estar contenidos dentro de una caja de tabla de muestras ('stbl'), tal como la caja de tabla de muestras 162 de la Figura 1. En algunos ejemplos, es obligatorio tener uno de los tipos de entrada de muestra avc1, avc2, mvc1, mvc2, 3vc1 y 3vc2 en un fichero de medios, tal como el fichero de medios de múltiples vistas con profundidad 142. En algunos ejemplos, puede estar presente una o más entradas de muestra en el fichero de medios de múltiples vistas con profundidad 142.
El módulo de creación de fichero de vídeo 72 puede incluir una de una caja de configuración de AVC, una caja de configuración de MVC y una caja de configuración de 3VC. Cuando está presente, una caja de configuración de AVC puede documentar el perfil, nivel e información de conjunto de parámetros que pertenece a la vista de base compatible con AVC como se define por un AVCDecoderConfigurationRecord. Cuando está presente, una caja de configuración de MVC puede documentar el perfil, nivel e información de conjunto de parámetros que pertenecen a todo el flujo de MVC como se define por el MVCDecoderConfigurationRecord. Cuando está presente, una caja de configuración de 3VC, tal como la caja de configuración de 3VC 168 de la Figura 1, puede documentar el perfil, nivel e información de conjunto de parámetros que pertenecen al flujo de 3VC entero como se define por el 3VCDecoderConfigurationRecord, almacenado en la caja de configuración de 3VC 168.
Para las entradas de muestra de AVC 'avc1' y 'avc2', los campos de anchura y altura en la entrada de muestra pueden documentar una capa de base de AVC. Para las entradas de muestra de MVC 'mvc1' y 'mvc2', así como las entradas de muestra de 3VC '3vc1' y '3vc2', la anchura y altura incluidas en la entrada de muestra pueden documentar la resolución conseguida decodificando cualquier vista de textura sencilla de todo el flujo de MVC o 3VC. Para entradas de muestra de 3VC, depth_width y depth_height en la caja de resolución de profundidad de 3VC 170 pueden documentar la resolución conseguida decodificando cualquier vista de profundidad sencilla de todo el flujo de 3VC.
En algunos ejemplos, un campo lengthSizeMinusOne en las configuraciones de AVC, MVC y 3VC en cualquier entrada de muestra dada debe tener el mismo valor.
Un identificador de recurso uniforme (URI) de asignación de prioridad proporciona un nombre (en el espacio de URI) de un método usado para asignar valores de priorityjd. Cuando ocurre en una entrada de muestra de AVC, una de MVC o una de 3VC, deberá estar presente exactamente un URI, que documenta las asignaciones de priorityjd en todo el flujo de AVC, MVC o 3VC. El URI se trata en este punto como un nombre únicamente; debe ser desreferenciable, aunque esto no se requiere. Los lectores de ficheros pueden reconocer algunos métodos y, de esta manera, saber qué harían las operaciones de extracción de flujo basándose en priorityjd.
También pueden aplicarse en este punto algunos requisitos para los tipos de entrada de muestra 'avc1' y 'avc2' como se documenta en iSo /IEC 14496-15, sección 6.5.31.1.
Cuando están presentes en una entrada de muestra de AVC, una de MVC o una de 3VC, ViewScalabilityInfoSEIBox, ViewIdentifierBox (tal como la caja de identificador de vista 172), IntrinsicCameraParametersBox, ExtrinsicCameraParametersBox, 3VCScalabilityInformationSEIBox (tal como la caja de SEI de información de escalabilidad de 3VC 166), se aplican MPEG4BitRateBox y MPEG4ExtensionDescriptorsBox a todo el flujo de AVC, MVC o 3VC. Los tipos de caja de ejemplo que pueden incluirse en una o ambas entradas de muestra '3vcl' y '3vc2' incluyen la caja de parámetros de cámara intrínsecos ('icam'), la caja de parámetros de cámara extrínsecos ('ecam') y una caja de identificador de vista ('vwid').
Para un flujo de MVC, el Compressorname en la clase de base VisualSampleEntry indica el nombre del compresor usado, con el valor "\012MVC Coding" (\012 es 10, la longitud de la cadena "codificación de MVC" en bytes). De manera similar, para un flujo de 3VC, el Compressorname en la clase de base VisualSampleEntry indica el nombre del compresor usado, con el valor "\0123VC Coding" (\012 es 10, la longitud de la cadena "codificación de 3VC" en bytes).
En algunos ejemplos, debe estar presente uno o más conjuntos de parámetros requeridos para decodificar una unidad de NAL que está presente en los datos de muestra de un flujo de vídeo, directamente o por referencia desde un extractor, en la configuración del decodificador de ese flujo de vídeo o en el flujo de conjunto de parámetros asociado (si se usa).
La tabla 2 proporciona un ejemplo de posibles usos de entradas de muestra para pistas de AVC, MVC y 3VC. Es decir, la tabla 2 muestra posibles usos de entradas de muestra cuando se almacena un flujo elemental de AVC, uno de MVC o uno de 3VC en una o más pistas, configuraciones y las herramientas de MVC que pueden también usarse (excluyendo metadatos temporizados, que se usan siempre en otra pista). La tabla 2 incluye el tipo de caja codificada con cuatro caracteres de entradas de muestra, una indicación de cuáles registros de configuración pertenecen a las entradas de muestra, y un significado de las entradas de muestra.
T l 2 - nr m r r i AV MV V
Figure imgf000023_0001
continuación
Figure imgf000024_0001
Lo siguiente proporciona una estructura de sintaxis de ejemplo para entradas de muestra de MVC y 3VC:
class MVCConfigurationBox extends Box('mvcC') { MVCDecoderConfigurationRecord() MVCConfig;
}
class ViewScalabilityInformationSEIBox extends Box('vsib', size)
{
unsigned int(8*size-64) viewscalinfosei;
}
class 3VCDepthResolutionBox extends Box('3dpr')
{
unsigned int(16) depth width;
unsigned int(16) depth height;
}
class 3VCConfigurationBox extends Box('3vcC') { 3VCDecoderConfigurationRecord 3VCConfig;
3VCDepthResolutionBox 3vcDepthRes; //opcional
}
class 3VCScalabilityInformationSEIBox extends Box('3sib', size)
{
unsigned int(8*size-64) 3vcscalinfosei;
}
class AVCMVCSampleEntry() extends AVCSampleEntry ('avc1' o 'avc2'){ ViewScalabilityInformationSEIBox mvcscalinfosei; // opcional ViewIdentifierBox view identifiers; // opcional
MVCConfigurationBox mvcconfig; // opcional
MVCViewPriorityAssignmentBox view priority method; // opcional IntrinsicCameraParametersBox intrinsic camera params; // opcional ExtrinsicCameraParametersBox extrinsic camera params; // opcional 3VCConfigurationBox 3vcconfig; // opcional 3VCScalabilityInformationSEIBox 3vcscalinfosei; // opcional
} class MVCSampleEntry() extends VisualSampleEntry ('mvc1' o 'mvc2'){ MVCConfigurationBox mvcconfig; // obligatorio ViewScalabilityInformationSEIBox mvcscalinfosei; // opcional ViewIdentifierBox view identifiers; //
obligatorio MPEG4BitRateBox bitrate; // opcional MPEG4ExtensionDescriptorsBox descr; // opcional MVCViewPriorityAssignmentBox view priority method; // opcional IntrinsicCameraParametersBox intrinsic camera params; // opcional ExtrinsicCameraParametersBox extrinsic camera params // opcional 3VCConfigurationBox 3vcconfig; // opcional 3VCScalabilityInformationSEIBox 3vcscalinfosei; // opcional
} class 3VCSampleEntry() extends VisualSampleEntry ('3vc1' o '3vc2'){ 3VCConfigurationBox 3vcconfig; // obligatorio 3VCScalabilityInformationSEIBox 3vcscalinfosei; // opcional ViewIdentifierBox view identifiers; // obligatorio
MPEG4BitRateBox bitrate; // opcional
MPEG4ExtensionDescriptorsBox descr; // opcional
MVCViewPriorityAssignmentBox view priority method; // opcional
IntrinsicCameraParametersBox intrinsic camera params; // opcional
ExtrinsicCameraParametersBox extrinsic camera params // opcional }
Lo siguiente proporciona elementos de sintaxis de ejemplo para entradas de muestra de MVC y 3VC. Un elemento de sintaxis depth_width y depth_height puede proporcionar, en píxeles, los valores de la anchura y altura, respectivamente, de los componentes de vista de profundidad codificados en el flujo al que se aplica la entrada de muestra que contiene 3VCDepthResolutionBox() (tal como la caja de resolución de profundidad de 3VC 170). Un elemento de sintaxis 3vcDepthRes puede contener los componentes de vista de anchura y altura de la profundidad codificada en el flujo al que se aplica la entrada de muestra. Cuando no están presentes, los componentes de vista de anchura y altura de la profundidad codificada pueden inferirse que son los mismos que la anchura y altura de los componentes de vista de textura codificados.
El elemento de sintaxis mvcscalinfosei puede contener una unidad de NAL de SEI que contiene únicamente un mensaje de SEI de información de escalabilidad de vista como se especifica en ISO/IEC 14496-10 anexo H. El campo de 'tamaño' de una caja de contenedor ViewScalabilityInformation-SEIBox no debe ser igual a 0 o 1.
Otro elemento de sintaxis, 3vcscalinfosei, puede contener una unidad de NAL de SEI que contiene únicamente un mensaje de SEI de información de escalabilidad de 3DVC como se especifica en ISO/IEC 14496-10 anexo I. El campo 'tamaño' de la caja de contenedor 3VCScalabilityInformationSEIBox no debe ser igual a 0 o 1.
Para flujos de vídeo MVC+D, el módulo de creación de fichero de vídeo 72 puede componer también una caja de mensaje de SEI de información de escalabilidad de 3VC, tal como una caja de mensaje de SEI de información de escalabilidad 3VC 166 de la Figura 1. La caja de mensaje de SEI de información de escalabilidad de 3VC 166 puede contener un mensaje de SEI de información de escalabilidad de 3DVC definido en la especificación del códec m Vc D.
En la segunda realización, el módulo de creación de fichero de vídeo 72 compone una caja de identificador de vista, tal como la caja de identificador de vista 172 de la Figura 1. En la segunda realización, el módulo de creación de fichero de vídeo 72 compone la caja de identificador de vista 172 para indicar, para cada vista incluida en la pista, la presencia de vistas de textura y de profundidad en la pista. En la segunda realización, la caja de identificador de vista 172 puede estar compuesta también para indicar, para cada vista incluida en la pista, la presencia de vistas de textura y de profundidad en el flujo. Además, en la segunda realización, el módulo de creación de fichero de vídeo 72 puede componer la caja de identificador de vista 172 para indicar cómo se requiere una vista de textura y vista de profundidad de una vista de referencia para decodificar una vista específica.
Los detalles adicionales para la caja de identificador de vista 172 son como sigue. El tipo de caja codificada con cuatro caracteres para la caja de identificador de vista 172 puede ser 'vwid'. La caja de identificador de vista 172 puede estar contenida en cualquier entrada de muestra (por ejemplo, 'avc1', 'avc2', 'mvc1', 'mvc2', '3vc1', y '3vc2') o en una entrada de múltiples grupos. En algunos ejemplos, la caja de identificador de vista tiene que incluirse exactamente una vez para cada una de las entradas de muestra 'mvc1', 'mvc2', '3vc1', '3vc2', y la definición de grupo primario en las entradas de grupo de múltiples vistas. En algunos ejemplos, no se incluye la caja de identificador de vista 172 para definiciones de grupo no primarios en entradas de grupo de múltiples vistas.
Cuando se incluye en una entrada de muestra, la caja de identificador de vista 172 indica las vistas incluidas en una pista. Cuando se incluye en una entrada de grupo de múltiples vistas, la caja de identificador de vista 172 indica las vistas incluidas en una respectiva etapa. La caja de identificador de vista 172 también indica un índice de orden de vista para cada vista enumerada. Adicionalmente, la caja de identificador de vista 172 incluye los valores mínimo y máximo de temporaljd incluidos en la pista o etapa cuando la caja de identificador de vista 172 está incluida en una entrada de muestra o entrada de grupo de múltiples vistas, respectivamente. Además, en la primera y segunda realizaciones, la caja de identificador de vista 172 puede indicar una o más vistas referenciadas requeridas para decodificar las vistas incluidas en la pista o etapa. Para flujos de 3VC, en la primera y segunda realizaciones, la caja de identificador de vista 172 indica, para cada una de la vista o vistas incluidas en la pista, la presencia de textura y/o profundidad en la pista. En la primera y segunda realizaciones, la caja de identificador de vista 172 puede indicar adicionalmente, para cada una de la vista o vistas incluidas en la pista, la presencia de textura y/o profundidad en el flujo.
Una sintaxis de ejemplo para la caja de identificador de vista 172 es como sigue: la clase ViewIdentifierBox se extiende FullBox ('vwid', version=0, flags)
{
unsigned int(2) reserved6 = 0;
unsigned int(3) min temporal id;
unsigned int(3) max temporal id;
unsigned int(16) num views;
for (i=0; i<num views; i++) {
unsigned int(6) reserved1 = 0;
unsigned int(10) view id[i];
unsigned int(6) reserved2 = 0;
unsigned int(10) view order index;
unsigned int(1) texture in stream[i]
unsigned int(1) texture in track[i];
unsigned int(1) depth in stream[i];
unsigned int(1) depth in track[i];
unsigned int(2) base view type;
unsigned int(10) num ref views;
for (j = 0; j < num ref views; j++) {
unsigned int(4) reserved6 = 0;
unsigned int(2) dependent component idc[i][j];
unsigned int(10) ref view id[i][j];
} } }
Se proporciona alguna semántica de ejemplo para la caja de identificador de vista 172 como sigue. Dos elementos de sintaxis min_temporal_id y max_temporal_id pueden tener un valor mínimo y máximo, respectivamente, de un elemento de sintaxis tem poraljd que está presente en una extensión de encabezado de unidad de NAL de unidades de NAL mapeadas a la pista o etapa cuando la caja de identificador de vista 172 está incluida en una entrada de muestra o entrada de grupo de múltiples vistas, respectivamente. Para flujos de AVC, min_temporal_id y max_temporal_id toman el valor que está, o estaría, en la unidad de NAL de prefijo.
Un elemento de sintaxis num_views, cuando está presente la caja de identificador de vista 172 en una entrada de muestra, puede indicar el número de vistas incluidas en la pista. Cuando está presente la caja de identificador de vista 172 en una entrada de grupo de múltiples vistas, num_views puede indicar el número de vistas incluidas en la respectiva etapa.
Otro elemento de sintaxis view_id[i] puede indicar el valor del elemento de sintaxis view_id en la extensión de encabezado de unidad de NAL de una vista incluida en la pista o etapa cuando la caja de identificador de vista 172 está incluida en una entrada de muestra o entrada de grupo de múltiples vistas, respectivamente.
El elemento de sintaxis view_order_index puede indicar el valor de una variable de valor de índice de orden (VOIdx), como se especifica en el anexo H de ISO/IEC 14496-10, para una vista incluida en la pista o etapa cuando la caja de identificador de vista 172 está incluida en una entrada de muestra o entrada de grupo de múltiples vistas, respectivamente.
Se introduce un elemento de sintaxis texture_in_stream[i], cuando texture_in_stream[i] igual a 1 puede indicar que la vista de textura para la vista con view_id[i] está presente en el flujo. El valor indica que la vista de textura para la vista con view_id[i] puede no estar presente en el flujo.
En la primera y segunda realizaciones, se introduce un elemento de sintaxis texture_in_track[i], cuando texture_in_track[i] igual a 1 puede indicar que la vista de textura para la vista con view_id[i] está presente en la pista. El valor puede indicar que la vista de textura para la vista con view_id[i] no está presente en la pista. En algunos ejemplos, cuando texture_in_stream[i] es igual a 0, el valor de texture_in_track[i] debe ser igual a 0.
Se introduce otro elemento de sintaxis depth_in_stream[i], cuando depth_in_stream[i] igual a 1 puede indicar que la vista de profundidad para la vista con view_id[i] está presente en el flujo. El valor puede indicar que la vista de profundidad para la vista con view_id[i] no está presente en el flujo. En algunos ejemplos, cuando texture_in_stream[i] es igual a 0, el valor de depth_in_stream[i] debe ser igual a 1.
En la primera y segunda realizaciones, se introduce un elemento de sintaxis depth_in_track[i], cuando depth_in_track[i] igual a 1 puede indicar que la vista de profundidad para la vista con view_id[i] está presente en la pista. El valor puede indicar que la vista de profundidad para la vista con view_id[i] no está presente en la pista. En algunos ejemplos, cuando depth_in_stream[i] es igual a 0, el valor de depth_in_track[i] debe ser igual a 0. En algunos ejemplos, cuando texture_in_track[i] es igual a 0, el valor de depth_in_track[i] debe ser igual a 1.
Otro elemento de sintaxis base_view_type puede indicar si la vista es una vista de base (virtual o no). El elemento de sintaxis base_view_type puede tomar los siguientes valores: 0 indica que la vista no es ni una vista de base ni una vista de base virtual; 1 debe usarse para etiquetar la vista de base no virtual del flujo de bits de MVC; 2 es un valor reservado y no debe usarse (aunque puede usarse en un momento posterior); y 3 indica que la vista con view_id[i] es una vista de base virtual. La respectiva vista no de base codificada independientemente con view_id[i] puede residir en otra pista. Cuando base_view_type es igual a 3, el posterior num_ref_views debe ser igual a 0.
Un elemento de sintaxis adicional num_ref_views puede indicar el número de vistas que puede hacerse referencia directa o indirectamente por la vista con view_id[i].
Se introduce otro elemento de sintaxis dependent_component_idc[i][j] que puede indicar cómo se requiere la vista de textura y la vista de profundidad de una vista de referencia de orden j para decodificar la vista con view_id[i]. Si el valor es igual a 0, únicamente puede requerirse la vista de textura de la vista de referencia. Si el valor es igual a 1, únicamente puede requerirse la vista de profundidad de la vista de referencia. Si el valor es igual a 2, puede requerirse tanto la vista de textura como la vista de profundidad de la vista de referencia. El valor de 3 está reservado.
Otro elemento de sintaxis ref_view_id[i][j] puede indicar el identificador de vista de una vista de orden j que puede hacerse referencia directa o indirectamente por la vista con view_id[i], es decir, que puede requerirse para la decodificación de la vista con view_id[i]. Si se requiere una vista para decodificar la vista con view_id[i], puede enumerarse como uno de ref_view_id[i][j]. Cuando la caja de identificador de vista 172 está incluida en una entrada de muestra, puede recomendarse para indicar las vistas referenciadas tanto para unidades de acceso de anclaje como no de anclaje en la misma entrada de muestra.
Además, en la segunda realización, el módulo de creación de fichero de vídeo 72 puede proporcionar una indicación explícita en una caja de resolución de profundidad de 3VC, tal como la caja de resolución de profundidad de 3VC 170 de la Figura 1, de las resoluciones espaciales de vistas de profundidad. En la segunda realización, la caja de resolución de profundidad de 3VC 170 puede estar incluida en una caja de configuración de 3VC, tal como la caja de configuración de 3VC 168 de la Figura 1. En algunos ejemplos, la caja de configuración de 3VC 168 tiene que incluir un registro de configuración del decodificador de 3VC, y puede estar incluida en una entrada de muestra, pero debe incluirse en una entrada de muestra de tipo '3vcl' o '3vc2'.
En la segunda realización, el módulo de creación de fichero de vídeo 72 compone adicionalmente ficheros de vídeo donde se almacenan vistas de textura y vistas de profundidad en pistas separadas. Puede representarse un flujo de MVC o uno de 3VC por una o más pistas de vídeo en un fichero (tal como los flujos de datos de vídeo 146 de la Figura 1). Cada pista puede representar una o más vistas del flujo. Para una pista en un fichero que almacena un flujo de vídeo de 3VC, tal como el fichero de medios de múltiples vistas con profundidad 142, la pista puede contener textura únicamente, profundidad únicamente o tanto textura como profundidad.
En algunos ejemplos, puede haber un conjunto mínimo de una o más pistas que, cuando se toman juntas, contienen el conjunto completo de información codificada. Todas estas pistas pueden tener una bandera, "complete_representation" establecida en todas de sus entradas de muestra. El grupo de pistas que forma la información codificada completa puede denominarse un "subconjunto completo". La pista que tiene la bandera "complete_representation" establecida y contiene unidades de NAL de una vista de base con temporal_id igual a 0 puede designarse como una 'pista de vista de base'. Todas las otras pistas que son parte del mismo flujo pueden vincularse a esta pista de vista de base por medio de una referencia de pista de tipo 'sbas' (base de vista). La información codificada completa puede mantenerse cuando se mantienen las pistas incluidas en el "subconjunto completo"; todas las otras pistas deben ser subconjuntos, copias o reordenaciones del subconjunto completo.
Todas las pistas que comparten la misma pista de vista de base pueden compartir también la misma escala de tiempo. Para algunos ejemplos con flujos de 3VC, todas las pistas que contienen la vista de textura y la vista de profundidad de una vista particular comparten la misma escala de tiempo. La vista de textura y la vista de profundidad de una vista particular pueden tener el mismo valor de view_id (por lo tanto, también el mismo valor de índice de orden de vista) y puede hacerse referencia como que están asociadas entre sí.
Si una vista representada por una pista usa otra vista representada por otra pista como una referencia de predicción de inter vista, debe incluirse una referencia de pista de tipo 'scal' en la pista que hace referencia a la pista de la fuente para predicción de inter vista.
En la primera y segunda realizaciones, para flujos de 3VC, se almacena una vista de profundidad en una pista diferente de la pista que contiene la vista de textura asociada con la vista de profundidad, y se incluye una referencia de pista de tipo 'deps' en la pista que contiene la vista de profundidad, haciendo referencia a la pista que contiene la vista de textura. La presencia de la referencia de pista 'deps' indica que la pista actual contiene la vista de profundidad que está asociada con una vista de textura en la pista referenciada.
En algunos ejemplos, después de que la unidad de creación de fichero de vídeo 72 genera un fichero de vídeo, la unidad de creación de fichero de vídeo 72 pasa el fichero de vídeo a la interfaz de salida de fichero de vídeo 76. La interfaz de salida de fichero de vídeo 76 emite el fichero de vídeo, por ejemplo, a la interfaz de salida 22 del dispositivo de origen 20. En algunos ejemplos, la interfaz de salida de fichero de vídeo 76 emite el fichero de vídeo a un medio de almacenamiento del dispositivo de origen 20 o del dispositivo de almacenamiento 32.
La Figura 7 es un diagrama de bloques que ilustra un conjunto de dispositivos que forman parte de una red 100 que puede implementar las técnicas descritas en esta divulgación. En este ejemplo, la red 100 incluye los dispositivos de encaminamiento 104A, 104B (dispositivos de encaminamiento 104) y el dispositivo de transcodificación 106. Los dispositivos de encaminamiento 104 y el dispositivo de transcodificación 106 se pretende que representen un pequeño número de dispositivo que pueden formar parte de la red 100. Otros dispositivos de red, tales como conmutadores, concentradores, pasarelas, cortafuegos, puentes y otros dispositivos de este tipo pueden incluirse también dentro de la red 100. Además, pueden proporcionarse dispositivos de red adicionales a lo largo de una ruta de red entre el dispositivo de servidor 102 y el dispositivo cliente 108. Cualquiera de tales dispositivos puede comprender un codificador o un decodificador que puede implementar una o más técnicas descritas en el presente documento. Además, los dispositivos de red pueden comprender un MANE que no incluye necesariamente las capacidades de codificación o de decodificación completas, y el MANE puede implementar también una o más técnicas descritas en el presente documento. El dispositivo de servidor 102 puede corresponder al dispositivo de origen 12 de la Figura 3, mientras que el dispositivo cliente 108 puede corresponder al dispositivo de destino 14 de la Figura 3, en algunos ejemplos.
En general, los dispositivos de encaminamiento 104 implementan uno o más protocolos de encaminamiento para intercambiar datos de red a través de la red 100. En algunos ejemplos, los dispositivos de encaminamiento 104 pueden estar configurados para realizar operaciones de intermediario o de caché. Por lo tanto, en algunos ejemplos, los dispositivos de encaminamiento 104 pueden denominarse como dispositivos de intermediario. En general, los dispositivos de encaminamiento 104 ejecutan protocolos de encaminamiento para descubrir rutas a través de la red 100. Ejecutando tales protocolos de encaminamiento, el dispositivo de encaminamiento 104B puede descubrir una ruta de red desde sí mismo al dispositivo de servidor 102 mediante el dispositivo de encaminamiento 104A.
A través de la red 100, el dispositivo de servidor 102 puede proporcionar al dispositivo cliente 108 con uno o más ficheros de medios compuestos de acuerdo con las técnicas descritas en el presente documento. En otros ejemplos, el dispositivo cliente 108 proporciona al dispositivo de servidor 102 uno o más ficheros de medios compuestos de acuerdo con las técnicas descritas en el presente documento a través de la red 100.
La Figura 8 es un diagrama de flujo que ilustra un método de ejemplo de análisis de un fichero de medios que contiene contenido de vídeo de múltiples vistas de acuerdo con técnicas descritas en esta divulgación. El proceso descrito en la Figura 8 puede realizarse por un dispositivo de codificación de vídeo que puede incluir cualquier combinación del dispositivo de destino 20 y del módulo de desencapsulación 29 descritos en el presente documento. En la primera realización, un dispositivo de codificación de vídeo analiza una pista de datos de vídeo, en donde la pista incluye una o más vistas (200). En la primera realización, el módulo de desencapsulación 29 puede obtener un fichero de medios que contiene múltiples vistas codificadas más profundidad, tal como el fichero de medios de múltiples vistas con profundidad 142 desde el dispositivo de origen 12. En la primera realización, el dispositivo de codificación de vídeo analiza información para determinar si la pista incluye únicamente vistas de textura, únicamente vistas de profundidad o tanto vistas de textura como de profundidad (202). En la primera realización, el módulo de desencapsulación 29 puede analizar información desde el fichero de medios de múltiples vistas con profundidad 142 para determinar si al menos una de las pistas incluida en el fichero de medios de múltiples vistas con profundidad 142 contiene vistas de textura, vistas de profundidad o tanto vistas de textura como de profundidad.
En la primera realización, analizar la información comprende adicionalmente analizar una caja de identificador de vista. La caja de identificador de vista puede analizarse desde al menos una de una entrada de muestra y una entrada de grupo de múltiples vistas, en donde la al menos una de la entrada de muestra y la entrada de grupo de múltiples vistas está asociada con la pista. En la primera realización, el módulo de desencapsulación 29 analiza información desde la caja de identificador de vista 172 para determinar, para cada vista incluida en la pista, si la vista es una vista de textura o una vista de profundidad. En la primera realización, el módulo de desencapsulación 29 puede analizar la caja de identificador de vista 172 para determinar adicionalmente si se requiere una vista de textura o una vista de profundidad de una vista de referencia para decodificar una vista específica en la pista.
El módulo de desencapsulación 29 puede analizar otro segundo conjunto de datos de vídeo basándose en los primeros datos de vídeo y analizar adicionalmente información para determinar si se usa la primera vista de textura, la primera vista de profundidad, o tanto la primera textura como la primera vista de profundidad de los primeros datos de vídeo para decodificar los segundos datos de vídeo.
En la primera realización, el proceso puede incluir adicionalmente analizar una caja de mensaje de información de mejora complementaria (SEI) para determinar un mensaje de SEI de información de escalabilidad tridimensional asociado con una o más de las vistas. Es decir, en la primera realización, el módulo de desencapsulación 29 puede analizar una caja de mensaje de SEI, tal como una caja de mensaje de SEI de información de escalabilidad de 3VC 166, para obtener información desde un mensaje de SEI de una o más de las vistas.
En la primera realización, cuando la pista contiene una o más vistas de profundidad, el proceso puede incluir adicionalmente analizar una caja de resolución de profundidad de 3VC para determinar una resolución espacial de la una o más vistas de profundidad. En la primera realización, el módulo de desencapsulación 29 analiza la caja de resolución de profundidad de 3VC 170 para determinar una resolución espacial de una vista de profundidad incluida en el fichero de medios de múltiples vistas con profundidad 142. En algunos ejemplos, el módulo de desencapsulación 29 analiza la caja de resolución de profundidad de 3VC 170 a partir de la caja de configuración de 3VC 168. En otros ejemplos, el módulo de desencapsulación 29 analiza la caja de resolución de profundidad de 3VC 170 directamente desde una entrada de muestra. El módulo de desencapsulación 29 puede analizar también un registro de configuración del decodificador de 3VC, 3VCDecoderConfigurationRecord que incluye semántica que indica características relacionadas con un flujo de vídeo de 3DV, tal como un flujo de vídeo de MVC+D. El proceso puede incluir también analizar un registro de configuración del decodificador de codificación de vídeo tridimensional (3VC) para determinar una anchura y una altura de una vista de profundidad incluidas en la pista.
En la primera realización, la pista es una primera pista, en donde la primera pista incluye una vista de profundidad de una vista, y el proceso puede incluir adicionalmente analizar una segunda pista de datos de vídeo, en donde la segunda pista incluye la vista de textura de la vista que no está incluida en la primera pista. En la primera realización, el proceso incluye adicionalmente analizar una referencia de pista para la primera pista que referencia la segunda pista, en donde la referencia de pista incluye al menos un tipo de referencia de pista que indica que la primera pista incluye la vista de profundidad que está asociada con la vista de textura almacenada en la segunda pista (el tipo de referencia de pista es 'deps').
En la primera realización, si la pista es una pista de codificación de vídeo tridimensional (3VC), el proceso puede incluir adicionalmente analizar un registro de configuración del decodificador de 3VC, en donde el registro de configuración del decodificador de 3VC indica un registro de configuración para una entrada de muestra coincidente de los datos de vídeo. En un ejemplo, donde la pista es una pista de 3VC que incluye una o más unidades de capa de abstracción de red (NAL) de profundidad, el proceso incluye analizar al menos uno de un tipo de entrada de muestra '3vcl' que permite los extractores y un tipo de entrada de muestra '3vc2' que no permite los extractores. En ejemplos adicionales, el proceso puede contener una o más de las técnicas descritas en esta divulgación.
La Figura 9 es un diagrama de flujo que ilustra un método de ejemplo de composición de un fichero de medios que contiene contenido de vídeo de múltiples vistas para indicar la presencia de vistas de textura y de profundidad de acuerdo con técnicas descritas en esta divulgación. El proceso descrito en la Figura 9 puede realizarse por un dispositivo de codificación de vídeo que incluye el módulo de encapsulación 21 descrito en el presente documento. En la segunda realización, un dispositivo de codificación de vídeo compone una pista de datos de vídeo, en donde la pista incluye una o más vistas (206). En la segunda realización, el módulo de encapsulación 21 puede obtener unos datos de vídeo desde el codificador de vídeo 21. En la segunda realización, el dispositivo de codificación de vídeo compone información que indica si la pista incluye únicamente vistas de textura, únicamente vistas de profundidad o tanto vistas de textura como de profundidad (208). En la segunda realización, el módulo de encapsulación 21 puede componer información en el fichero de medios de múltiples vistas con profundidad 142 para indicar si al menos una de las pistas incluida en el fichero de medios de múltiples vistas con profundidad 142 contiene vistas de textura, vistas de profundidad o tanto vistas de textura como de profundidad. El módulo de encapsulación 21 puede componer un fichero de medios que contiene múltiples vistas codificadas más profundidad, tal como el fichero de medios de múltiples vistas con profundidad 142, de acuerdo con las técnicas descritas en el presente documento.
En la segunda realización, componer información comprende adicionalmente componer una caja de identificador de vista. La caja de identificador de vista puede estar compuesta en al menos una de una entrada de muestra y una entrada de grupo de múltiples vistas, en donde la al menos una de la entrada de muestra y la entrada de grupo de múltiples vistas está asociada con la pista. En la segunda realización, el módulo de encapsulación 21 compone información en la caja de identificador de vista 172 para indicar, para cada vista incluida en la pista, si la vista es una vista de textura o una vista de profundidad. En la segunda realización, el módulo de encapsulación 21 puede componer la caja de identificador de vista 172 para indicar adicionalmente si se requiere una vista de textura o una vista de profundidad de una vista de referencia para decodificar una vista específica en la pista.
El módulo de encapsulación 21 puede componer otro segundo conjunto de datos de vídeo basándose en los primeros datos de vídeo y componer adicionalmente información para indicar si puede usarse la primera vista de textura, la primera vista de profundidad o tanto la primera textura como la primera vista de profundidad de los primeros datos de vídeo para decodificar o analizar los segundos datos de vídeo.
En la segunda realización, el proceso puede incluir adicionalmente componer una caja de mensaje de información de mejora complementaria (SEI) para indicar un mensaje de SEI de información de escalabilidad tridimensional asociado con una o más de las vistas. Es decir, en la segunda realización, el módulo de encapsulación 21 puede componer una caja de mensaje de SEI, tal como una caja de mensaje de SEI de información de escalabilidad de 3VC 166, para proporcionar información en un mensaje de SEI de una o más de las vistas.
En la segunda realización, cuando la pista contiene una o más vistas de profundidad, el proceso puede incluir adicionalmente componer una caja de resolución de profundidad de 3VC para indicar una resolución espacial de la una o más vistas de profundidad. En la segunda realización, el módulo de encapsulación 21 compone la caja de resolución de profundidad de 3VC 170 para indicar una resolución espacial de una vista de profundidad incluida en el fichero de medios de múltiples vistas con profundidad 142. En algunos ejemplos, el módulo de encapsulación 21 compone la caja de resolución de profundidad de 3VC 170 en la caja de configuración de 3VC 168. En otros ejemplos, el módulo de encapsulación 21 compone la caja de resolución de profundidad de 3VC 170 directamente en una entrada de muestra. El módulo de encapsulación 21 puede componer también un registro de configuración del decodificador de 3VC, 3VCDecoderConfigurationRecord que incluye semántica que indica características relacionadas con un flujo de vídeo de 3DV, tal como un flujo de vídeo de MVC+D. El proceso puede incluir también componer un registro de configuración del decodificador de codificación de vídeo tridimensional (3VC) para determinar una anchura y una altura de una vista de profundidad incluidas en la pista.
En la segunda realización, la pista es una primera pista, en donde la primera pista incluye una vista de profundidad de una vista, y el proceso puede incluir adicionalmente componer una segunda pista de datos de vídeo, en donde la segunda pista incluye la vista de textura de la vista que no está incluida en la primera pista. En la segunda realización, el proceso incluye adicionalmente componer una referencia de pista para la primera pista que referencia la segunda pista, en donde la referencia de pista incluye al menos un tipo de referencia de pista que indica que la primera pista incluye la vista de profundidad que está asociada con la vista de textura almacenada en la segunda pista (el tipo de referencia de pista es 'deps').
En la segunda realización, si la pista es una pista de codificación de vídeo tridimensional (3VC), el proceso puede incluir adicionalmente componer un registro de configuración del decodificador de 3VC, en donde el registro de configuración del decodificador de 3VC indica un registro de configuración para una entrada de muestra coincidente de los datos de vídeo. En un ejemplo, donde la pista es una pista de 3VC que incluye una o más unidades de capa de abstracción de red (NAL) de profundidad, el proceso incluye componer al menos uno de un tipo de entrada de muestra '3vcl' que permite los extractores y un tipo de entrada de muestra '3vc2' que no permite los extractores. En ejemplos adicionales, el proceso puede contener una o más de las técnicas descritas en esta divulgación.
La Figura 10 es un diagrama de flujo que ilustra un método de ejemplo de análisis de un fichero de medios que contiene vídeo de múltiples vistas que indica la dependencia de las vistas de acuerdo con técnicas descritas en esta divulgación. El proceso descrito en la Figura 10 puede realizarse por un dispositivo de codificación de vídeo que incluye el módulo de desencapsulación 29 descrito en el presente documento. En la primera realización, un dispositivo de codificación de vídeo analiza una pista de datos de vídeo, en donde la pista incluye una o más vistas (220). En la primera realización, el módulo de desencapsulación 29 puede obtener un fichero de medios que contiene múltiples vistas codificadas más profundidad, tal como el fichero de medios de múltiples vistas con profundidad 142 desde el dispositivo de origen 12. En la primera realización, el dispositivo de codificación de vídeo analiza información para determinar si se requiere una vista de textura o una vista de profundidad de una vista de referencia para decodificar una de la una o más vistas en la pista (202). En la primera realización, el módulo de desencapsulación 29 puede analizar información desde el fichero de medios de múltiples vistas con profundidad 142 para determinar si se requiere una vista de textura o una vista de profundidad de una vista de referencia para decodificar una de la una o más vistas en la pista incluida en el fichero de medios de múltiples vistas con profundidad 142.
En algunos ejemplos, el proceso puede incluir adicionalmente decodificar los segundos datos de vídeo basándose en los primeros datos de vídeo, en donde decodificar los segundos datos de vídeo incluye decodificar información que indica si se usa una vista de textura, una vista de profundidad o tanto una textura como una vista de profundidad de los primeros datos de vídeo para decodificar los segundos datos de vídeo.
En la primera realización, analizar la información comprende adicionalmente analizar una caja de identificador de vista. En la primera realización, la caja de identificador de vista puede analizarse desde al menos una de una entrada de muestra y una entrada de grupo de múltiples vistas, en donde la al menos una de la entrada de muestra y la entrada de grupo de múltiples vistas está asociada con la pista. En la primera realización, el decodificador de vídeo 30 puede analizar información desde la caja de identificador de vista 172 para determinar si se requiere una vista de textura o una vista de profundidad de una vista de referencia para decodificar una de la una o más vistas en la pista incluida en fichero de medios de múltiples vistas con profundidad 142. En la primera realización, el módulo de desencapsulación 29 analiza información desde la caja de identificador de vista 172 para determinar si la pista incluye únicamente vistas de textura, únicamente vistas de profundidad, o vistas de textura y de profundidad. En la realización, el módulo de desencapsulación 29 analiza información desde la caja de identificador de vista 172 para determinar, para cada vista incluida en la pista, si la vista es una vista de textura o una vista de profundidad. En la primera realización, el módulo de desencapsulación 29 puede analizar la caja de identificador de vista 172 para determinar adicionalmente si se requiere una vista de textura o una vista de profundidad de una vista de referencia para decodificar una vista específica en la pista.
El módulo de desencapsulación 29 puede analizar otro segundo conjunto de datos de vídeo basándose en los primeros datos de vídeo y analizar adicionalmente información para determinar si se usa la primera vista de textura, la primera vista de profundidad, o tanto la primera textura como la primera vista de profundidad de los primeros datos de vídeo para decodificar los segundos datos de vídeo.
En la primera realización, el proceso incluye analizar una caja de mensaje de información de mejora complementaria (SEI) para determinar un mensaje de SEI de información de escalabilidad tridimensional asociado con una o más de las vistas. Es decir, el módulo de desencapsulación 29 puede analizar una caja de mensaje de SEI, tal como una caja de mensaje de SEI de información de escalabilidad de 3VC 166, para obtener información desde un mensaje de SEI de una o más de las vistas.
En la primera realización, si la pista contiene una o más vistas de profundidad, el proceso puede incluir adicionalmente analizar una caja de resolución de profundidad de 3VC para determinar una resolución espacial de la una o más vistas de profundidad. Por ejemplo, el módulo de desencapsulación 29 analiza la caja de resolución de profundidad de 3VC 170 para determinar una resolución espacial de una vista de profundidad incluida en el fichero de medios de múltiples vistas con profundidad 142. En algunos ejemplos, el módulo de desencapsulación 29 analiza la caja de resolución de profundidad de 3VC 170 a partir de la caja de configuración de 3Vc 168. En otros ejemplos, el módulo de desencapsulación 29 analiza la caja de resolución de profundidad de 3VC 170 directamente desde una entrada de muestra. El módulo de desencapsulación 29 puede analizar también un registro de configuración del decodificador de 3VC, 3VCDecoderConfigurationRecord que incluye semántica que indica características relacionadas con un flujo de vídeo de 3DV, tal como un flujo de vídeo de MVC+D. El proceso puede incluir también analizar un registro de configuración del decodificador de codificación de vídeo tridimensional (3VC) para determinar una anchura y una altura de una vista de profundidad incluidas en la pista.
En la primera realización, la pista es una primera pista, en donde la primera pista incluye una vista de profundidad de una vista y una vista de textura de la vista, y el proceso puede incluir adicionalmente analizar una segunda pista de datos de vídeo, en donde la segunda pista incluye la vista de textura de la vista que no está incluida en la primera pista. En la primera realización, el proceso incluye adicionalmente analizar una referencia de pista para la primera pista que referencia la segunda pista, en donde la referencia de pista incluye al menos un tipo de referencia de pista que indica que la primera pista incluye la vista de profundidad que está asociada con la vista de textura almacenada en la segunda pista (el tipo de referencia de pista es 'deps').
En la primera realización, si la pista es una pista de codificación de vídeo tridimensional (3VC), el proceso puede incluir adicionalmente analizar un registro de configuración del decodificador de 3VC, en donde el registro de configuración del decodificador de 3VC indica un registro de configuración para una entrada de muestra coincidente de los datos de vídeo. En un ejemplo, donde la pista es una pista de 3VC que incluye una o más unidades de capa de abstracción de red (NAL) de profundidad, el proceso incluye analizar al menos uno de un tipo de entrada de muestra '3vcl' que permite los extractores y un tipo de entrada de muestra '3vc2' que no permite los extractores. En ejemplos adicionales, el proceso puede contener una o más de las técnicas descritas en esta divulgación.
La Figura 11 es un diagrama de flujo que ilustra un método de ejemplo de composición de un fichero de medios que contiene contenido de vídeo de múltiples vistas para indicar la dependencia de las vistas de acuerdo con técnicas descritas en esta divulgación. El proceso descrito en la Figura 11 puede realizarse por un dispositivo de codificación de vídeo que incluye el módulo de encapsulación 21 descrito en el presente documento. En la segunda realización, un dispositivo de codificación de vídeo compone una pista de datos de vídeo, en donde la pista incluye una o más vistas (226). En la segunda realización, el módulo de encapsulación 21 puede obtener unos datos de vídeo desde el codificador de vídeo 21. En la segunda realización, el dispositivo de codificación de vídeo puede componer adicionalmente información que indica si se requiere una vista de textura o una vista de profundidad de una vista de referencia para decodificar una de la una o más vistas en la pista (228). En la segunda realización, el módulo de encapsulación 21 puede componer información en el fichero de medios de múltiples vistas con profundidad 142 para indicar si se requiere una vista de textura o una vista de profundidad de una vista de referencia para decodificar una de las pistas incluidas en el fichero de medios de múltiples vistas con profundidad 142. El módulo de encapsulación 21 puede componer un fichero de medios que contiene múltiples vistas codificadas más profundidad, tal como el fichero de medios de múltiples vistas con profundidad 142, de acuerdo con las técnicas descritas en el presente documento.
En la segunda realización, componer información comprende adicionalmente componer una caja de identificador de vista. En la segunda realización, la caja de identificador de vista puede componerse en al menos una de una entrada de muestra y una entrada de grupo de múltiples vistas, en donde la al menos una de la entrada de muestra y la entrada de grupo de múltiples vistas está asociada con la pista. En la segunda realización, el módulo de encapsulación 21 compone información en la caja de identificador de vista 172 para indicar, para cada vista incluida en la pista, si la vista es una vista de textura o una vista de profundidad. En la segunda realización, el módulo de encapsulación 21 compone la caja de identificador de vista 172 para indicar adicionalmente si la pista incluye únicamente vistas de textura, únicamente vistas de profundidad, o vistas de textura y de profundidad. En la segunda realización, el módulo de encapsulación 21 compone la caja de identificador de vista 172 para indicar adicionalmente, para cada vista incluida en la pista, si la vista es una vista de textura o una vista de profundidad.
El módulo de encapsulación 21 puede componer otro segundo conjunto de datos de vídeo basándose en los primeros datos de vídeo y componer adicionalmente información para indicar si se usa la primera vista de textura, la primera vista de profundidad o tanto la primera textura como la primera vista de profundidad de los primeros datos de vídeo para decodificar o analizar los segundos datos de vídeo.
En la segunda realización, el proceso puede incluir componer una caja de mensaje de información de mejora complementaria (SEI) para indicar un mensaje de SEI de información de escalabilidad tridimensional asociado con una o más de las vistas. Es decir, el módulo de encapsulación 21 puede componer una caja de mensaje de SEI, tal como una caja de mensaje de SEI de información de escalabilidad de 3VC 166, para proporcionar información en un mensaje de SEI de una o más de las vistas.
En la segunda realización, si la pista contiene una o más vistas de profundidad, el proceso puede incluir adicionalmente componer una caja de resolución de profundidad de 3VC para indicar una resolución espacial de la una o más vistas de profundidad. Por ejemplo, el módulo de encapsulación 21 compone la caja de resolución de profundidad de 3VC 170 para indicar una resolución espacial de una vista de profundidad incluida en el fichero de medios de múltiples vistas con profundidad 142. En algunos ejemplos, el módulo de encapsulación 21 compone la caja de resolución de profundidad de 3VC 170 en la caja de configuración de 3VC 168. En otros ejemplos, el módulo de encapsulación 21 compone la caja de resolución de profundidad de 3VC 170 directamente en una entrada de muestra. El módulo de encapsulación 21 puede componer también un registro de configuración del decodificador de 3VC, 3VCDecoderConfigurationRecord que incluye semántica que indica características relacionadas con un flujo de vídeo de 3DV, tal como un flujo de vídeo de MVC+D. El proceso puede incluir también componer un registro de configuración del decodificador de codificación de vídeo tridimensional (3VC) para determinar una anchura y una altura de una vista de profundidad incluidas en la pista.
En la segunda realización, la pista es una primera pista, en donde la primera pista incluye una vista de profundidad de una vista, y el proceso incluye adicionalmente componer una segunda pista de datos de vídeo, en donde la segunda pista incluye la vista de textura de la vista que no está incluida en la primera pista. En la segunda realización, el proceso incluye adicionalmente componer una referencia de pista para la primera pista que referencia la segunda pista, en donde la referencia de pista incluye al menos un tipo de referencia de pista que indica que la primera pista incluye la vista de profundidad que está asociada con la vista de textura almacenada en la segunda pista (el tipo de referencia de pista es 'deps').
En la segunda realización, si la pista es una pista de codificación de vídeo tridimensional (3VC), el proceso puede incluir adicionalmente componer un registro de configuración del decodificador de 3VC, en donde el registro de configuración del decodificador de 3VC indica un registro de configuración para una entrada de muestra coincidente de los datos de vídeo. En un ejemplo, donde la pista es una pista de 3VC que incluye una o más unidades de capa de abstracción de red (NAL) de profundidad, el proceso incluye componer al menos uno de un tipo de entrada de muestra '3vcl' que permite los extractores y un tipo de entrada de muestra '3vc2' que no permite los extractores. En ejemplos adicionales, el proceso puede contener una o más de las técnicas descritas en esta divulgación.
Un proceso alternativo del procesamiento de datos de vídeo de acuerdo con las técnicas descritas en el presente documento incluye codificar primeros datos de vídeo, en donde los primeros datos de vídeo incluyen una vista de textura y una vista de profundidad. El proceso incluye adicionalmente codificar segundos datos de vídeo basándose en los primeros datos de vídeo, en donde codificar los segundos datos de vídeo incluye codificar información que indica si se usa la vista de textura, la vista de profundidad o tanto la vista de textura como la vista de profundidad de los primeros datos de vídeo para decodificar los segundos datos de vídeo.
La Figura 12 es un diagrama de flujo que ilustra un método de ejemplo de análisis de un fichero de medios que contiene vídeo de múltiples vistas para determinar una resolución espacial de una vista de profundidad de acuerdo con técnicas descritas en esta divulgación. El proceso descrito en la Figura 12 puede realizarse por un dispositivo de codificación de vídeo que incluye el módulo de desencapsulación 29 descrito en el presente documento. En la primera realización, un dispositivo de codificación de vídeo puede analizar una pista de datos de vídeo, en donde la pista incluye una o más vistas, que incluyen al menos una vista de profundidad (240). En la primera realización, el módulo de desencapsulación 29 puede obtener un fichero de medios que contiene múltiples vistas codificadas más profundidad, tal como el fichero de medios de múltiples vistas con profundidad 142 desde el dispositivo de origen 12. En la primera realización, el dispositivo de codificación de vídeo puede analizar información para determinar una resolución espacial asociada con la vista de profundidad, en donde la decodificación de la resolución espacial no requiere el análisis de un conjunto de parámetros de secuencia de la vista de profundidad (242). En la primera realización, el módulo de desencapsulación 29 puede analizar información desde el fichero de medios de múltiples vistas con profundidad 142 para determinar una resolución espacial de la vista de profundidad almacenada en el fichero de medios de profundidad 142.
En la primera realización, analizar información comprende adicionalmente analizar la resolución espacial desde una caja de resolución de profundidad de 3VC desde al menos una de una caja de configuración de 3VC y directamente desde una entrada de muestra. Es decir, en algunos ejemplos, se almacena una caja de resolución de profundidad de 3VC, tal como la caja de resolución de profundidad de 3VC 170, en una caja de configuración de 3VC, tal como la caja de configuración de 3VC 168, mientras que, en otros ejemplos, se almacena la caja de resolución de profundidad de 3VC 170 directamente en una entrada de muestra. El proceso puede comprender adicionalmente analizar un registro de configuración del decodificador de 3VC desde la caja de configuración de 3VC, en donde la caja de configuración de 3VC está incluida en al menos una de un tipo de entrada de muestra '3vcl' que permite los extractores y un tipo de entrada de muestra '3vc2' que no permite los extractores.
En la primera realización, el módulo de desencapsulación 29 puede también analizar un registro de configuración del decodificador de 3VC para determinar una anchura y una altura de la vista de profundidad.
3VCDecoderConfigurationRecord puede incluir semántica que indica características relacionadas con un flujo de vídeo 3DV, tal como un flujo de vídeo MVC+D. El proceso puede incluir también analizar un registro de configuración del decodificador de codificación de vídeo tridimensional (3VC) para determinar una anchura y una altura de una vista de profundidad incluidas en la pista.
En la primera realización, analizar información puede comprender adicionalmente analizar una caja de identificador de vista desde al menos una de una entrada de muestra y una entrada de grupo de múltiples vistas para determinar al menos una de si se requiere una vista de textura o una vista de profundidad de una vista de referencia para decodificar al menos una de la una o más vistas en la pista, si la pista incluye únicamente vistas de profundidad o vistas de textura y de profundidad, y, para cada vista incluida en la pista, si la vista es una vista de textura o una vista de profundidad, en donde la al menos una de la entrada de muestra y la entrada de grupo de múltiples vistas está asociada con la pista. En la primera realización, el módulo de desencapsulación 29 analiza información desde la caja de identificador de vista 172 para determinar, para cada vista incluida en la pista, si la vista es una vista de textura o una vista de profundidad. En la primera realización, el módulo de desencapsulación 29 puede analizar adicionalmente la caja de identificador de vista 172 para determinar si se requiere una vista de textura o una vista de profundidad de una vista de referencia para decodificar una vista específica en la pista.
Si los datos de vídeo son un primer conjunto de datos de vídeo, y en donde la pista incluye adicionalmente al menos una vista de textura, el módulo de desencapsulación 29 puede analizar adicionalmente un segundo conjunto de datos de vídeo basándose en el primer conjunto de datos de vídeo, en donde analizar información comprende analizar información para determinar si se usa la primera vista de textura, la primera vista de profundidad, o tanto la primera textura como la primera vista de profundidad del primer conjunto de datos de vídeo para decodificar el segundo conjunto de datos de vídeo.
En la primera realización, el proceso puede incluir adicionalmente analizar una caja de mensaje de información de mejora complementaria (SEI) para determinar un mensaje de SEI de información de escalabilidad tridimensional asociado con una o más de las vistas. Es decir, el módulo de desencapsulación 29 puede analizar una caja de mensaje de SEI, tal como una caja de mensaje de SEI de información de escalabilidad de 3VC 166, para obtener información desde un mensaje de SEI de una o más de las vistas.
En la primera realización, en donde la pista es una primera pista que contiene una vista de profundidad, el proceso puede incluir adicionalmente analizar una segunda pista de datos de vídeo, en donde la segunda pista incluye una vista de textura que corresponde a la vista de profundidad, en donde la vista de textura no está incluida en la primera pista. El proceso incluye adicionalmente analizar una referencia de pista para la primera pista que referencia la segunda pista, en donde la referencia de pista incluye al menos un tipo de referencia de pista que indica que la primera pista incluye la vista de profundidad que está asociada con la vista de textura almacenada en la segunda pista (el tipo de referencia de pista es 'deps').
Otros procesos de ejemplo del procesamiento de datos de vídeo pueden incluir decodificar una vista de profundidad y decodificar una resolución espacial asociada con la vista de profundidad, en donde la decodificación de la resolución espacial no requiere el análisis de un conjunto de parámetros de secuencia de la vista de profundidad. En la primera realización, un proceso de procesamiento de datos de vídeo puede incluir decodificar una caja de resolución de profundidad para indicar una resolución espacial de vistas de profundidad. En la primera realización, un proceso de procesamiento de datos de vídeo incluye decodificar una caja de configuración, en donde la caja de resolución de profundidad está incluida en la caja de configuración. Un proceso de ejemplo del procesamiento de datos de vídeo incluye decodificar un 3VCDepthResolutionBox directamente de una entrada de muestra. En la primera realización, un proceso de procesamiento de datos de vídeo puede incluir decodificar una anchura y una altura de vistas de profundidad desde un registro de configuración del decodificador de 3VC, en donde 3VC significa codificación de vídeo tridimensional. Cualquiera de estos procesos puede incluir cualquier subconjunto de las técnicas descritas en el presente documento.
La Figura 13 es un diagrama de flujo que ilustra un método de ejemplo de composición de un fichero de medios que contiene contenido de vídeo de múltiples vistas para indicar una resolución espacial de una vista de profundidad de acuerdo con técnicas descritas en esta divulgación. El proceso descrito en la Figura 13 puede realizarse por un dispositivo de codificación de vídeo que incluye el módulo de encapsulación 21 descrito en el presente documento. En la segunda realización, un dispositivo de codificación de vídeo puede componer una pista de datos de vídeo, en donde la pista incluye una o más vistas, que incluyen al menos una vista de profundidad (246). En la segunda realización, el módulo de encapsulación 21 puede obtener unos datos de vídeo desde el codificador de vídeo 21. En la segunda realización, el dispositivo de codificación de vídeo puede componer información para indicar una resolución espacial asociada con la vista de profundidad, en donde la decodificación de la resolución espacial no requiere el análisis de un conjunto de parámetros de secuencia de la vista de profundidad (248). En la segunda realización, el módulo de encapsulación 21 puede componer un fichero de medios que contiene múltiples vistas codificadas más profundidad, tal como el fichero de medios de múltiples vistas con profundidad 142, de acuerdo con las técnicas descritas en el presente documento. En la segunda realización, el módulo de encapsulación 21 puede componer información en el fichero de medios de múltiples vistas con profundidad 142 para indicar una resolución espacial de una vista de profundidad en la pista incluida en el fichero de medios de múltiples vistas con profundidad 142.
En la segunda realización, componer información comprende adicionalmente componer la resolución espacial en una caja de resolución de profundidad de 3VC en al menos uno de una caja de configuración de 3VC y directamente en una entrada de muestra. Es decir, en algunos ejemplos, se almacena una caja de resolución de profundidad de 3VC, tal como la caja de resolución de profundidad de 3Vc 170, en una caja de configuración de 3VC, tal como la caja de configuración de 3VC 168, mientras que, en otros ejemplos, se almacena la caja de resolución de profundidad de 3VC 170 directamente en una entrada de muestra. El proceso puede comprender adicionalmente componer un registro de configuración del decodificador de 3VC en la caja de configuración de 3VC, en donde la caja de configuración de 3VC está incluido en al menos una de un tipo de entrada de muestra '3vcl' que permite los extractores y un tipo de entrada de muestra '3vc2' que no permite los extractores.
En la segunda realización, el módulo de encapsulación 21 puede componer también un registro de configuración del decodificador de 3VC para indicar una anchura y una altura de la vista de profundidad.
3VCDecoderConfigurationRecord puede incluir semántica que indica características relacionadas con un flujo de vídeo 3DV, tal como un flujo de vídeo m Vc D.
En la segunda realización, componer información puede comprender adicionalmente componer una caja de identificador de vista desde al menos una de una entrada de muestra y una entrada de grupo de múltiples vistas para indicar al menos una de si se requiere una vista de textura o una vista de profundidad de una vista de referencia para decodificar al menos una de la una o más vistas en la pista, si la pista incluye únicamente vistas de profundidad o vistas de textura y de profundidad, y, para cada vista incluida en la pista, si la vista es una vista de textura o una vista de profundidad, en donde la al menos una de la entrada de muestra y la entrada de grupo de múltiples vistas está asociada con la pista. En la segunda realización, el módulo de encapsulación 21 compone información en la caja de identificador de vista 172 para indicar, para cada vista incluida en la pista, si la vista es una vista de textura o una vista de profundidad. En la segunda realización, el decodificador de vídeo 30 puede componer adicionalmente la caja de identificador de vista 172 para indicar si se requiere una vista de textura o una vista de profundidad de una vista de referencia para decodificar una vista específica en la pista.
Si los datos de vídeo son un primer conjunto de datos de vídeo, y en donde la pista incluye adicionalmente al menos una vista de textura, el módulo de encapsulación 21 puede componer adicionalmente un segundo conjunto de datos de vídeo basándose en el primer conjunto de datos de vídeo, en donde analizar información comprende componer información para indicar si se usa la primera vista de textura, la primera vista de profundidad, o tanto la primera textura como la primera vista de profundidad del primer conjunto de datos de vídeo para decodificar el segundo conjunto de datos de vídeo.
En la segunda realización, el proceso puede incluir adicionalmente componer una caja de mensaje de información de mejora complementaria (SEI) para indicar un mensaje de SEI de información de escalabilidad tridimensional asociado con una o más de las vistas. Es decir, el módulo de encapsulación 21 puede componer una caja de mensaje de SEI, tal como una caja de mensaje de SEI de información de escalabilidad de 3VC 166, para almacenar información desde un mensaje de SEI de una o más de las vistas.
En la segunda realización, en donde la pista es una primera pista, el proceso puede incluir adicionalmente componer una segunda pista de datos de vídeo, en donde la segunda pista incluye una vista de textura que corresponde la vista de profundidad, en donde la vista de textura no está incluida en la primera pista. El proceso incluye adicionalmente componer una referencia de pista para la primera pista que referencia la segunda pista, en donde la referencia de pista incluye al menos un tipo de referencia de pista que indica que la primera pista incluye la vista de profundidad que está asociada con la vista de textura almacenada en la segunda pista (el tipo de referencia de pista es 'deps').
Otros procesos de ejemplo del procesamiento de datos de vídeo pueden incluir codificar una vista de profundidad y codificar una resolución espacial asociada con la vista de profundidad, en donde la codificación de la resolución espacial tiene lugar de manera que no se usa el análisis de un conjunto de parámetros de secuencia de la vista de profundidad para determinar la resolución espacial. En la segunda realización, un proceso de procesamiento de datos de vídeo puede incluir codificar una caja de resolución de profundidad para indicar una resolución espacial de vistas de profundidad. En la segunda realización, un proceso de procesamiento de datos de vídeo incluye codificar una caja de configuración, en donde la caja de resolución de profundidad está incluida en la caja de configuración. Un proceso de ejemplo del procesamiento de datos de vídeo incluye codificar un 3VCDepthResolutionBox directamente en una entrada de muestra. En la segunda realización, un proceso de procesamiento de datos de vídeo puede incluir codificar una anchura y una altura de vistas de profundidad en un registro de configuración del decodificador de 3VC, en donde 3VC significa codificación de vídeo tridimensional. Cualquiera de estos procesos puede incluir cualquier subconjunto de las técnicas descritas en el presente documento.
La Figura 14 es un diagrama de flujo que ilustra un método de ejemplo de análisis de un fichero de medios que contiene vídeo de múltiples vistas en donde se almacena una vista de textura y una de profundidad de una vista particular en pistas separadas de acuerdo con técnicas descritas en esta divulgación. El proceso descrito en la Figura 14 puede realizarse por un dispositivo de codificación de vídeo que incluye el módulo de desencapsulación 29 descrito en el presente documento. En la primera realización, un dispositivo de codificación de vídeo analiza una pista de datos de vídeo, en donde la pista incluye una o más vistas, que incluyen únicamente una vista de profundidad de una vista particular (260). En la primera realización, el módulo de desencapsulación 29 puede analizar un fichero de medios, tal como el fichero de medios de múltiples vistas con profundidad 142 desde el dispositivo de origen 12, que incluye una vista de textura de una vista particular y una vista de profundidad de la vista particular almacenada en pistas separadas.
En la primera realización, el dispositivo de codificación de vídeo analiza una referencia de pista para determinar una dependencia de la pista a una pista referenciada indicada en la referencia de pista (262). En la primera realización, el módulo de desencapsulación 29 analiza un tipo de referencia de pista 'deps' que indica que la pista incluye la vista de profundidad de la vista particular y la pista de referencia incluye la vista de textura de la vista particular.
En la primera realización, el método puede incluir analizar la caja de identificador de vista desde al menos una de una entrada de muestra y una entrada de grupo de múltiples vistas para determinar, para cada vista en la pista, si la vista es una vista de textura o una vista de profundidad, en donde la al menos una de la entrada de muestra y la entrada de grupo de múltiples vistas está asociada con la pista. En la primera realización, puede analizarse también la caja de identificador de vista para determinar si se requiere una vista de textura o una vista de profundidad de una vista de referencia para decodificar una vista específica en la pista.
En la primera realización, el proceso puede incluir adicionalmente analizar una caja de mensaje de información de mejora complementaria (SEI) para determinar un mensaje de SEI de información de escalabilidad tridimensional asociado con una o más de las vistas. En la primera realización, cuando la pista contiene la vista de profundidad de una vista particular, el método puede incluir adicionalmente analizar una caja de resolución de profundidad de 3VC para determinar una resolución espacial de la vista de profundidad de la vista particular, o puede comprender analizar un registro de configuración del decodificador de codificación de vídeo tridimensional (3VC) para determinar una anchura y una altura de la vista de profundidad de la vista particular.
En la primera realización, si la pista es una pista de codificación de vídeo tridimensional (3VC), el método puede incluir adicionalmente analizar un registro de configuración del decodificador de 3VC, en donde el registro de configuración del decodificador de 3VC indica un registro de configuración para una entrada de muestra coincidente de los datos de vídeo.
En otro método de ejemplo del procesamiento de datos de vídeo, el método incluye decodificar un valor de tipo 'tref' para una pista para determinar que la pista depende de una vista de textura almacenada en una pista referenciada. En otro método de ejemplo del procesamiento de datos de vídeo, el método incluye decodificar un valor de tipo 'dref para una pista para determinar que la pista depende de una vista de profundidad almacenada en una pista referenciada. En ejemplos adicionales, cualquiera de los procesos descritos en el presente documento puede contener una o más de las técnicas descritas en esta divulgación.
La Figura 15 es un diagrama de flujo que ilustra un método de ejemplo de composición de un fichero de medios que contiene contenido de vídeo de múltiples vistas en donde se almacena una vista de textura y una de profundidad de una vista particular en pistas separadas de acuerdo con técnicas descritas en esta divulgación. El proceso descrito en la Figura 15 puede realizarse por un dispositivo de codificación de vídeo que incluye el módulo de encapsulación 21 descrito en el presente documento. En la primera realización, un dispositivo de codificación de vídeo analiza una pista de datos de vídeo, en donde la pista incluye una o más vistas, que incluyen una vista de profundidad de una vista particular (266). En la realización, el módulo de encapsulación 21 puede componer un fichero de medios, tal como el fichero de medios de múltiples vistas con profundidad 142, que incluye una vista de textura de una vista particular y una vista de profundidad de la vista particular almacenadas en pistas separadas.
En la segunda realización, el dispositivo de codificación de vídeo compone una referencia de pista para indicar una dependencia de la pista a una pista referenciada indicada en la referencia de pista (266). En la segunda realización, el módulo de encapsulación 21 compone un tipo de referencia de pista 'deps' que indica que la pista incluye la vista de profundidad de la vista particular y la pista de referencia incluye la vista de textura de la vista particular.
En la segunda realización, el método puede incluir componer una caja de identificador de vista desde al menos una de una entrada de muestra y una entrada de grupo de múltiples vistas en donde la al menos una de la entrada de muestra y la entrada de grupo de múltiples vistas está asociada con la pista, para indicar, para cada vista en la pista, si la vista es una vista de textura o una vista de profundidad, en donde la al menos una de la entrada de muestra y la entrada de grupo de múltiples vistas está asociada con la pista. En la segunda realización, la caja de identificador de vista puede también estar compuesta para indicar si se requiere una vista de textura o una vista de profundidad de una vista de referencia para decodificar una vista específica en la pista.
En la segunda realización, el proceso puede incluir adicionalmente componer una caja de mensaje de información de mejora complementaria (SEI) para indicar un mensaje de SEI de información de escalabilidad tridimensional asociado con una o más de las vistas. En la segunda realización, cuando la pista contiene la vista de profundidad de la vista particular, el método puede incluir adicionalmente componer una caja de resolución de profundidad de 3VC para indicar una resolución espacial de la vista de profundidad de la vista particular o puede incluir componer un registro de configuración del decodificador de codificación de vídeo tridimensional (3VC) para indicar una anchura y una altura de la vista de profundidad de la vista particular.
En la segunda realización, si la pista es una pista de codificación de vídeo tridimensional (3VC), el método puede incluir adicionalmente componer un registro de configuración del decodificador de 3VC, en donde el registro de configuración del decodificador de 3VC indica un registro de configuración para una entrada de muestra coincidente de los datos de vídeo.
En otro método de ejemplo del procesamiento de datos de vídeo, el método incluye almacenar una vista de textura y una de profundidad de una vista particular en pistas separadas. En otro método de ejemplo del procesamiento de datos de vídeo, el método incluye codificar un valor de tipo 'tref para una pista para indicar que la pista depende de una vista de textura almacenada en una pista referenciada. En otro método de ejemplo del procesamiento de datos de vídeo, el método incluye codificar un valor de tipo 'dref' para una pista para indicar que la pista depende de una vista de profundidad almacenada en una pista referenciada. En ejemplos adicionales, cualquiera de los procesos descritos en el presente documento puede contener una o más de las técnicas descritas en esta divulgación.
En la segunda realización, el método de procesamiento de datos de vídeo puede incluir adicionalmente decodificar un registro de configuración del decodificador, en donde la configuración del registro del decodificador se define como "3VCDecoderConfigurationRecord" que incluye una misma sintaxis que "MVCDecoderConfigurationRecord" y al menos alguna semántica diferente que el "MVCDecoderConfigurationRecord" para indicar características relacionadas con un flujo de vídeo de 3VC.
En otro ejemplo más, un método de procesamiento de datos de vídeo incluye decodificar un tipo de entrada de muestra para pistas de 3VC con unidades de NAL de profundidad únicamente, en donde se selecciona el tipo de entrada a partir de un grupo que incluye un primer tipo donde no están permitidos los extractores y un segundo tipo donde están permitidos los extractores.
En otro ejemplo, un método de procesamiento de datos de vídeo incluye decodificar un tipo de entrada de muestra desde un grupo de tipos de entrada de muestra que incluye: 1) el tipo de entrada de muestra 'avc1' que contiene configuraciones de a Vc , MVC y 3VC, para pistas de 3VC con unidades de NAL de AVC, MVC y de profundidad; 2) el tipo de entrada de muestra 'mvc1' que contiene configuraciones de MVC y 3VC, para pistas de 3VC sin unidades de NAL de AVC, pero con unidades de NAL de MVC y de profundidad donde no están permitidos los extractores; y 3) el tipo de entrada de muestra 'mvc2' que contiene las configuraciones de MVC y 3VC, para pistas de 3VC sin unidades de NAL de AVC, pero con unidades de NAL de MVC y de profundidad donde no están permitidos los extractores.
En otro ejemplo, un método de procesamiento de datos de vídeo incluye decodificar un atributo para indicar al menos uno de: si están presentes puntos de operación de 3VC indicados en una caja de grupo de múltiples vistas, si un punto de operación indicado en una caja de grupo de múltiples vistas es 3VC o MVC, y si las vistas de salida indicadas en una caja de grupo de múltiples vistas contienen textura únicamente, profundidad únicamente o ambas.
En la primera realización, el método de procesamiento de datos de vídeo puede incluir adicionalmente decodificar una caja de mensaje de SEI que contiene un mensaje de SEI de información de escalabilidad tridimensional definido en una especificación de códec de MVC+D. En otro ejemplo, un método de procesamiento de datos de vídeo incluye decodificar un valor de nombre de compresor de "/0123VC Coding" para un fichero que contiene un flujo de vídeo de codificación de vídeo tridimensional (3VC).
En la segunda realización, el método de procesamiento de datos de vídeo puede incluir adicionalmente codificar un registro de configuración del decodificador, en donde la configuración del registro del decodificador se define como 'MVCDecoderConfigurationRecord" que incluye una misma sintaxis que "MVCDecoderConfigurationRecord" y al menos alguna semántica diferente que el "MVCDecoderConfigurationRecord" para indicar características relacionadas con un flujo de vídeo de codificación de vídeo tridimensional (3VC). En otro ejemplo más, un método de procesamiento de datos de vídeo incluye codificar un tipo de entrada de muestra para pistas de 3VC con unidades de NAL de profundidad únicamente, en donde se selecciona el tipo de entrada a partir de un grupo que incluye un primer tipo donde no están permitidos los extractores y un segundo tipo donde están permitidos los extractores, en donde nA l significa capa de abstracción de red y 3VC significa codificación de vídeo tridimensional.
En otro ejemplo más, un método de procesamiento de datos de vídeo incluye codificar un tipo de entrada de muestra desde un grupo de tipos de entrada de muestra que incluye: 1) el tipo de entrada de muestra 'avcl' que contiene configuraciones de AVC, MVC y 3VC, para pistas de 3VC con unidades de NAL de AVC, MVC y de profundidad; 2) el tipo de entrada de muestra 'mvcl' que contiene configuraciones de MVC y 3VC, para pistas de 3VC sin unidades de NAL de AVC, pero con unidades de NAL de MVC y de profundidad donde no están permitidos los extractores; y 3) el tipo de entrada de muestra 'mvc2' que contiene las configuraciones de MVC y 3VC, para pistas de 3VC sin unidades de NAL de AVC, pero con unidades de NAL de MVC y de profundidad donde no están permitidos los extractores.
En otro ejemplo, un método de procesamiento de datos de vídeo incluye codificar un atributo para indicar al menos uno de: si están presentes los puntos de operación de 3VC indicados en una caja de grupo de múltiples vistas, si un punto de operación indicado en una caja de grupo de múltiples vistas es 3VC o MVC, y si las vistas de salida indicadas en una caja de grupo de múltiples vistas contienen textura únicamente, profundidad únicamente o ambas. En algunos ejemplos, el atributo es uno de un atributo común o un atributo de diferenciación.
En la segunda realización, un método de procesamiento de datos de vídeo puede incluir adicionalmente codificar una caja de mensaje de información de mejora complementaria (SEI) que contiene un mensaje de SEI de información de escalabilidad tridimensional definido en una especificación de códec de codificación de múltiples vistas más profundidad (MVC+D). En otro ejemplo, un método de procesamiento de datos de vídeo incluye codificar un valor de nombre de compresor de "/0123VC Coding" para un fichero que contiene un flujo de vídeo de codificación de vídeo tridimensional (3VC).
Esta divulgación hace referencia a la última especificación integrada de 14496-15 en el documento de salida del MPEG W13036. La especificación original de 14496-15 en el documento de salida de MPEG W13036 tiene derechos de autor por la ISO/IEC.
Las técnicas de esta divulgación pueden implementarse por dispositivos de red, tales como los dispositivos de encaminamiento 104 y el dispositivo de transcodificación 106, pero también pueden implementarse por el dispositivo cliente 108. De esta manera, los dispositivos de encaminamiento 104, el dispositivo de transcodificación 106 y el dispositivo cliente 108 representan dispositivos configurados para realizar las técnicas de esta divulgación, que incluyen técnicas indicadas en la porción de las reivindicaciones de esta divulgación. Además, los dispositivos de la Figura 1, y el codificador mostrado en la Figura 2 y el decodificador mostrado en la Figura 3 también son dispositivos que pueden configurarse para realizar las técnicas de esta divulgación, que incluyen técnicas indicadas en la porción de las reivindicaciones de esta divulgación.
Las funciones descritas pueden implementarse en hardware, software, firmware o cualquier combinación de los mismos. Si se implementan en software, las funciones pueden almacenarse en o transmitirse a través de, como una o más instrucciones o código, un medio legible por ordenador, y ejecutarse por una unidad de procesamiento basada en hardware. Medio legible por ordenador puede incluir medio de almacenamiento legible por ordenador, que corresponde a un medio de almacenamiento tal como un medio de almacenamiento de datos o medios de comunicación que incluyen cualquier medio que facilite la transferencia de un programa informático desde un lugar a otro, por ejemplo, de acuerdo con un protocolo de comunicación. De esta manera, los medios legibles por ordenador generalmente pueden corresponder a (1) medios de almacenamiento legibles por ordenador tangibles que son no transitorios o (2) un medio de comunicación tal como una señal u onda portadora. El medio de almacenamiento de datos puede ser cualquier medio disponible que pueda accederse por uno o más ordenadores o uno o más procesadores para recuperar instrucciones, código y/o estructuras de datos para la implementación de las técnicas descritas en esta divulgación. Un producto de programa informático puede incluir un medio legible por ordenador.
Esta divulgación contempla un medio legible por ordenador que comprende una estructura de datos almacenada en el mismo, en donde la estructura de datos incluye o comprende un flujo de bits codificado que está codificado consistente con esta divulgación.
A modo de ejemplo, y no de limitación, dichos medios de almacenamiento legibles por ordenador pueden comprender RAM, ROM, EEPROM, CD-ROM u otro almacenamiento en disco óptico, almacenamiento en disco magnético u otros dispositivos de almacenamiento magnético, memoria flash o cualquier otro medio que se pueda utilizar para almacenar el código de programa deseado en forma de instrucciones o estructuras de datos y al que se puede acceder mediante un ordenador. Además, cualquier conexión se denomina apropiadamente un medio legible por ordenador. Por ejemplo, si las instrucciones se transmiten desde un sitio web, servidor u otra fuente remota usando un cable coaxial, cable de fibra óptica, par trenzado, línea digital de abonado (DSL) o tecnologías inalámbricas tales como infrarrojos, radio y microondas, entonces el cable coaxial, cable de fibra óptica, par trenzado, DSL o tecnologías inalámbricas tales como infrarrojos, radio y microondas se incluyen en la definición de medio. Sin embargo, debería entenderse que medios de almacenamiento legibles por ordenador y medios de almacenamiento de datos no incluyen conexiones, ondas portadoras, señales u otros medios transitorios, sino que, en su lugar, se refieren a medios de almacenamiento tangibles no transitorios. Disco magnético y disco óptico, como se usan en este documento, incluyen disco compacto (CD), disco láser, disco óptico, disco versátil digital (DVD), disco flexible y disco Blu-ray donde los discos magnéticos normalmente reproducen datos magnéticamente, mientras que los discos ópticos reproducen datos ópticamente con láseres. Las combinaciones de los anteriores también deben incluirse dentro del alcance de los medios legibles por ordenador.
Las instrucciones pueden ejecutarse por uno o más procesadores, tal como uno o más procesadores de señales digitales (DSP), microprocesadores de propósito general, circuitos integrados específicos de la aplicación (ASIC), matrices lógicas programables en campo (FPGA) u otra circuitería integrada o de lógica discreta equivalente. Por consiguiente, el término "procesador", como se usa en el presente documento, puede hacer referencia a cualquiera de la estructura anterior o cualquier otra estructura adecuada para la implementación de las técnicas descritas en el presente documento. Además, en algunos aspectos, la funcionalidad descrita en el presente documento puede proporcionarse dentro de módulos de hardware y/o software especializados configurados para codificar y decodificar, o incorporarse en un códec combinado. También, las técnicas podrían implementarse totalmente en uno o más circuitos o elementos lógicos.
Las técnicas de esta divulgación pueden implementarse en una amplia diversidad de dispositivos o aparatos, incluyendo un microteléfono inalámbrico, un circuito integrado (CI) o un conjunto de CI (por ejemplo, un conjunto de chips). Se describen diversos componentes, módulos o unidades en esta divulgación para destacar aspectos funcionales de dispositivos configurados para realizar las técnicas divulgadas, pero no requieren necesariamente su realización por diferentes unidades de hardware. En su lugar, como se ha descrito anteriormente, diversas unidades pueden combinarse en una unidad de hardware de códec o proporcionarse mediante una recopilación de unidades de hardware inter operativas, que incluyen uno o más procesadores, como se ha descrito anteriormente, en conjunto con software y/o firmware adecuado.

Claims (14)

REIVINDICACIONES
1. Un método de procesamiento de datos de vídeo, comprendiendo el método:
analizar (200) una pista de datos de vídeo de múltiples vistas, en donde la pista incluye una pluralidad de vistas; analizar (202) una caja de identificador de vista asociada con la pista, que indica las vistas presentes en la pista, para determinar, para cada vista presente la pista, si la vista comprende una vista de textura y/o una vista de profundidad, en donde analizar la caja de identificador de vista comprende, para cada vista presente en la pista, analizar un elemento de sintaxis texture_in_track[i], que indica si está presente una vista de textura para la vista con view_id[i] en la pista, y analizar un elemento de sintaxis depth_in_track[i], que indica si está presente una vista de profundidad para la vista con view_id[i] en la pista, en donde, para una vista particular de la pluralidad de vistas, la pista incluye únicamente una vista de profundidad; y
analizar (262) una referencia de pista para determinar una dependencia de la pista a una pista referenciada indicada en la referencia de pista, en donde analizar la referencia de pista incluye analizar un tipo de referencia de pista 'deps' que indica que la pista incluye la vista de profundidad de la vista particular y la pista de referencia incluye la vista de textura de la vista particular.
2. Un dispositivo para procesar datos de vídeo que comprende:
una memoria configurada para almacenar datos de vídeo; y
uno o más procesadores configurados para:
analizar (200) una pista de datos de vídeo de múltiples vistas, en donde la pista incluye una pluralidad de vistas; analizar (202) una caja de identificador de vista asociada con la pista, que indica las vistas presentes en la pista, para determinar, para cada vista presente la pista, si la vista comprende una vista de textura y/o una vista de profundidad, en donde analizar la caja de identificador de vista comprende, para cada vista presente en la pista, analizar un elemento de sintaxis texture_in_track[i], que indica si está presente una vista de textura para la vista con view_id[i] en la pista, y un elemento de sintaxis depth_in_track[i], que indica si está presente una vista de profundidad para la vista con view_id[i] en la pista, en donde, para una vista particular de la pluralidad de vistas, la pista incluye únicamente una vista de profundidad; y
analizar (262) una referencia de pista para determinar una dependencia de la pista a una pista referenciada indicada en la referencia de pista, en donde analizar la referencia de pista incluye analizar un tipo de referencia de pista 'deps' que indica que la pista incluye la vista de profundidad de la vista particular y la pista de referencia incluye la vista de textura de la vista particular.
3. El dispositivo de la reivindicación 2, el dispositivo configurado adicionalmente para:
analizar la caja de identificador de vista desde al menos una de una entrada de muestra y una entrada de grupo de múltiples vistas, en donde la al menos una de la entrada de muestra y la entrada de grupo de múltiples vistas están asociadas con la pista.
4. El dispositivo de la reivindicación 2, el dispositivo configurado adicionalmente para:
analizar la caja de identificador de vista para determinar si se requiere una vista de textura o una vista de profundidad de una vista de referencia para decodificar una vista específica en la pista; y/o
analizar una caja de mensaje de información de mejora complementaria (SEI) para determinar un mensaje de SEI de información de escalabilidad tridimensional asociado con una o más de las vistas.
5. El dispositivo de la reivindicación 2, configurado adicionalmente para:
analizar una caja de resolución de profundidad de 3VC para determinar una resolución espacial de la vista de profundidad de la vista particular.
6. El dispositivo de la reivindicación 2, configurado adicionalmente para:
analizar un registro de configuración del decodificador de codificación de vídeo tridimensional (3VC) para determinar una anchura y una altura de la vista de profundidad de la vista particular.
7. El dispositivo de la reivindicación 2, en donde la pista es una pista de codificación de vídeo tridimensional (3VC), el dispositivo configurado adicionalmente para:
analizar un registro de configuración del decodificador de 3VC, en donde el registro de configuración del decodificador de 3VC indica un registro de configuración para una entrada de muestra coincidente de los datos de vídeo de múltiples vistas.
8. Un método de procesamiento de datos de vídeo, comprendiendo el método:
componer (206) una pista de datos de vídeo de múltiples vistas, en donde la pista incluye una pluralidad de vistas; componer (208) una caja de identificador de vista asociada con la pista, que indica las vistas presentes en la pista, para determinar, para cada vista presente la pista, si la vista comprende una vista de textura y/o una vista de profundidad, en donde componer la caja de identificador de vista comprende, para cada vista presente en la pista, componer un elemento de sintaxis texture_in_track[i], que indica si está presente una vista de textura para la vista con view_id[i] en la pista, y componer un elemento de sintaxis depth_in_track[i], que indica si está presente una vista de profundidad para la vista con view_id[i] en la pista, en donde, para una vista particular de la pluralidad de vistas, la pista incluye únicamente una vista de profundidad; y
componer (268) una referencia de pista para indicar una dependencia de la pista a una pista referenciada indicada en la referencia de pista, en donde componer la referencia de pista incluye componer un tipo de referencia de pista 'deps' que indica que la pista incluye la vista de profundidad de la vista particular y la pista de referencia incluye la vista de textura de la vista particular.
9. Un dispositivo para procesar datos de vídeo que comprende:
una memoria configurada para almacenar datos de vídeo; y
uno o más procesadores configurados para:
componer (206) una pista de datos de vídeo de múltiples vistas, en donde la pista incluye una pluralidad de vistas;
componer (208) una caja de identificador de vista asociada con la pista, que indica las vistas presentes en la pista, para determinar, para cada vista presente la pista, si la vista comprende una vista de textura y/o una vista de profundidad, en donde componer la caja de identificador de vista comprende, para cada vista presente en la pista, componer un elemento de sintaxis texture_in_track[i], que indica si está presente una vista de textura para la vista con view_id[i] en la pista, y un elemento de sintaxis depth_in_track[i], que indica si está presente una vista de profundidad para la vista con view_id[i] en la pista, en donde, para una vista particular de la pluralidad de vistas, la pista incluye únicamente una vista de profundidad; y
componer (268) una referencia de pista para indicar una dependencia de la pista a una pista referenciada indicada en la referencia de pista, en donde componer la referencia de pista incluye componer un tipo de referencia de pista 'deps' que indica que la pista incluye la vista de profundidad de la vista particular y la pista de referencia incluye la vista de textura de la vista particular.
10. El dispositivo de la reivindicación 9, el uno o más procesadores configurados adicionalmente para:
componer la caja de identificador de vista desde al menos una de una entrada de muestra y una entrada de grupo de múltiples vistas, en donde la al menos una de la entrada de muestra y la entrada de grupo de múltiples vistas están asociadas con la pista.
11. El dispositivo de la reivindicación 9, el uno o más procesadores configurados adicionalmente para:
componer la caja de identificador de vista para indicar si se requiere una vista de textura o una vista de profundidad de una vista de referencia para decodificar una vista específica en la pista; y/o
componer una caja de mensaje de información de mejora complementaria (SEI) para indicar un mensaje de SEI de información de escalabilidad tridimensional asociado con una o más de las vistas.
12. El dispositivo de la reivindicación 9, en donde la pista contiene la vista de profundidad de la vista particular, el dispositivo configurado adicionalmente para:
componer una caja de resolución de profundidad de 3VC para indicar una resolución espacial de la vista de profundidad de la vista particular; y/o
componer un registro de configuración del decodificador de codificación de vídeo tridimensional (3VC) para indicar una anchura y una altura de la vista de profundidad de la vista particular.
13. El dispositivo de la reivindicación 9, en donde la pista es una pista de codificación de vídeo tridimensional (3VC), el dispositivo configurado adicionalmente para:
componer un registro de configuración del decodificador de 3VC, en donde el registro de configuración del decodificador de 3VC indica un registro de configuración para una entrada de muestra coincidente de los datos de vídeo de múltiples vistas.
14. Un medio de almacenamiento legible por ordenador no transitorio que tiene instrucciones almacenadas en el mismo que después de la ejecución hacen que uno o más procesadores de un dispositivo de codificación de vídeo realicen el método de acuerdo con la reivindicación 1 o la reivindicación 8.
ES13819176T 2013-01-04 2013-12-23 Almacenamiento de pistas separadas de vistas de textura y de profundidad para codificación de múltiples vistas más profundidad Active ES2904350T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201361749089P 2013-01-04 2013-01-04
US14/137,460 US9357199B2 (en) 2013-01-04 2013-12-20 Separate track storage of texture and depth views for multiview coding plus depth
PCT/US2013/077591 WO2014107378A2 (en) 2013-01-04 2013-12-23 Separate track storage of texture and depth views for multiview coding plus depth

Publications (1)

Publication Number Publication Date
ES2904350T3 true ES2904350T3 (es) 2022-04-04

Family

ID=51060660

Family Applications (2)

Application Number Title Priority Date Filing Date
ES13826913T Active ES2898452T3 (es) 2013-01-04 2013-12-23 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
ES13819176T Active ES2904350T3 (es) 2013-01-04 2013-12-23 Almacenamiento de pistas separadas de vistas de textura y de profundidad para codificación de múltiples vistas más profundidad

Family Applications Before (1)

Application Number Title Priority Date Filing Date
ES13826913T Active ES2898452T3 (es) 2013-01-04 2013-12-23 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

Country Status (9)

Country Link
US (6) US9357199B2 (es)
EP (5) EP2941865A2 (es)
JP (4) JP6441233B2 (es)
KR (6) KR102184062B1 (es)
CN (5) CN104904204B (es)
BR (1) BR112015016052B1 (es)
ES (2) ES2898452T3 (es)
TW (4) TWI590643B (es)
WO (4) WO2014107376A2 (es)

Families Citing this family (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9357199B2 (en) 2013-01-04 2016-05-31 Qualcomm Incorporated Separate track storage of texture and depth views for multiview coding plus depth
WO2014166119A1 (en) * 2013-04-12 2014-10-16 Mediatek Inc. Stereo compatibility high level syntax
JP5774652B2 (ja) 2013-08-27 2015-09-09 ソニー株式会社 送信装置、送信方法、受信装置および受信方法
WO2015055143A1 (en) * 2013-10-17 2015-04-23 Mediatek Inc. Method of motion information prediction and inheritance in multi-view and three-dimensional video coding
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
US9922680B2 (en) * 2015-02-10 2018-03-20 Nokia Technologies Oy Method, an apparatus and a computer program product for processing image sequence tracks
US10148969B2 (en) 2015-02-11 2018-12-04 Qualcomm Incorporated Of sample entry and operation point signalling in a layered video file format
US10306253B2 (en) * 2015-10-14 2019-05-28 Qualcomm Incorporated Signaling of parameter sets in files of multi-layer bitstreams
JP6992511B2 (ja) * 2016-01-13 2022-01-13 ソニーグループ株式会社 情報処理装置および情報処理方法
EP3422731B1 (en) * 2016-02-22 2021-08-25 Sony Group Corporation File generation device, file generation method, reproduction device, and reproduction method
CN108702478B (zh) * 2016-02-22 2021-07-16 索尼公司 文件生成装置、文件生成方法、再现装置和再现方法
US10249019B2 (en) 2016-05-06 2019-04-02 Mediatek Inc. Method and apparatus for mapping omnidirectional image to a layout output format
US10410441B2 (en) * 2016-05-16 2019-09-10 Wi-Tronix, Llc Real-time data acquisition and recording system viewer
US10979691B2 (en) * 2016-05-20 2021-04-13 Qualcomm Incorporated Circular fisheye video in virtual reality
WO2017203098A1 (en) * 2016-05-24 2017-11-30 Nokia Technologies Oy Method and an apparatus and a computer program for encoding media content
US10699389B2 (en) * 2016-05-24 2020-06-30 Qualcomm Incorporated Fisheye rendering with lens distortion correction for 360-degree video
US10652630B2 (en) * 2016-05-24 2020-05-12 Qualcomm Incorporated Sample entries and random access
TWI637356B (zh) * 2016-06-30 2018-10-01 聯發科技股份有限公司 將全向圖像映射到佈局輸出格式的方法和裝置
CN109074678B (zh) * 2016-12-30 2021-02-05 华为技术有限公司 一种信息的处理方法及装置
CN110431847B (zh) * 2017-03-24 2022-07-22 联发科技股份有限公司 视频处理方法及装置
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
GB2563439B (en) * 2017-06-16 2022-02-16 Canon Kk Methods, devices, and computer programs for improving streaming of portions of media data
CN107395456B (zh) * 2017-07-18 2021-06-29 郑州云海信息技术有限公司 分布式文件系统流直存测试方法及平台
JP2019054417A (ja) 2017-09-15 2019-04-04 ソニー株式会社 画像処理装置およびファイル生成装置
JP7239029B2 (ja) * 2017-09-15 2023-03-14 ソニーグループ株式会社 画像処理装置およびファイル生成装置
CN107734321A (zh) * 2017-09-26 2018-02-23 韩世民 一种基于移动设备的3d成像方法
WO2020003274A1 (en) 2018-06-29 2020-01-02 Beijing Bytedance Network Technology Co., Ltd. Checking order of motion candidates in lut
GB2588006B (en) 2018-06-29 2023-03-22 Beijing Bytedance Network Tech Co Ltd Number of motion candidates in a look up table to be checked according to mode
KR20240007299A (ko) 2018-06-29 2024-01-16 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 룩업 테이블의 업데이트: fifo, 제약된 fifo
EP3791586A1 (en) 2018-06-29 2021-03-17 Beijing Bytedance Network Technology Co. Ltd. Concept of using one or multiple look up tables to store motion information of previously coded in order and use them to code following blocks
JP7460617B2 (ja) 2018-06-29 2024-04-02 北京字節跳動網絡技術有限公司 Lut更新条件
CN110662054B (zh) 2018-06-29 2023-01-06 北京字节跳动网络技术有限公司 用于视频处理的方法、装置、计算机可读存储介质
WO2020003261A1 (en) 2018-06-29 2020-01-02 Beijing Bytedance Network Technology Co., Ltd. Selection from multiple luts
EP4325861A3 (en) 2018-06-29 2024-03-06 Beijing Bytedance Network Technology Co., Ltd. Interaction between lut and amvp
WO2020008346A1 (en) 2018-07-02 2020-01-09 Beijing Bytedance Network Technology Co., Ltd. Rules on updating luts
JPWO2020032004A1 (ja) 2018-08-06 2021-08-10 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 三次元データ格納方法、三次元データ取得方法、三次元データ格納装置、及び三次元データ取得装置
WO2020053798A1 (en) 2018-09-12 2020-03-19 Beijing Bytedance Network Technology Co., Ltd. Conditions for starting checking hmvp candidates depend on total number minus k
JP7275286B2 (ja) 2019-01-10 2023-05-17 北京字節跳動網絡技術有限公司 Lut更新の起動
WO2020143824A1 (en) 2019-01-13 2020-07-16 Beijing Bytedance Network Technology Co., Ltd. Interaction between lut and shared merge list
CN113330739A (zh) 2019-01-16 2021-08-31 北京字节跳动网络技术有限公司 Lut中的运动候选的插入顺序
WO2020192611A1 (en) 2019-03-22 2020-10-01 Beijing Bytedance Network Technology Co., Ltd. Interaction between merge list construction and other tools
US11228781B2 (en) 2019-06-26 2022-01-18 Gopro, Inc. Methods and apparatus for maximizing codec bandwidth in video applications
WO2020261690A1 (ja) * 2019-06-28 2020-12-30 ソニー株式会社 情報処理装置、情報処理方法、再生処理装置及び再生処理方法
US11481863B2 (en) 2019-10-23 2022-10-25 Gopro, Inc. Methods and apparatus for hardware accelerated image processing for spherical projections
CN114556962B (zh) * 2019-11-29 2024-01-30 中兴通讯股份有限公司 多视点视频处理方法和装置
WO2021117859A1 (ja) * 2019-12-13 2021-06-17 ソニーグループ株式会社 画像処理装置および方法
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
KR102406846B1 (ko) * 2020-03-18 2022-06-10 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
CN113766271B (zh) * 2020-06-04 2022-07-12 腾讯科技(深圳)有限公司 一种沉浸媒体的数据处理方法、装置及设备
US11677979B2 (en) * 2020-08-24 2023-06-13 Tencent America LLC Freeview video coding
EP3965421A1 (en) 2020-09-02 2022-03-09 Lemon Inc. Association of operation point info properties to vvc image items
KR20220030192A (ko) 2020-09-02 2022-03-10 레몬 인크. 미디어 파일에서의 이미지 전환들을 위한 전환 기간
US11750815B2 (en) 2020-09-17 2023-09-05 Lemon, Inc. Versatile video coding track coding
US11831921B2 (en) * 2020-09-17 2023-11-28 Lemon Inc. Video operating points record syntax and semantics
US11611752B2 (en) 2020-10-07 2023-03-21 Lemon Inc. Adaptation parameter set storage in video coding
US11640647B2 (en) * 2021-03-03 2023-05-02 Qualcomm Incorporated Methods and apparatus for intra-wave texture looping
US20220337878A1 (en) * 2021-04-18 2022-10-20 Lemon Inc. Decoding Capability Information In Common Media Application Format
US11750843B2 (en) 2021-06-28 2023-09-05 Tencent America LLC Multiview-related supplementary enhancement information messages
CN113497943B (zh) * 2021-08-09 2024-06-11 杭州小影创新科技股份有限公司 一种深度信息的量化和编码方法
CN115914672A (zh) * 2021-08-10 2023-04-04 腾讯科技(深圳)有限公司 自由视角视频的文件封装方法、装置、设备及存储介质

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2333411B (en) 1998-01-14 2002-07-17 Ibm Document scanning system
AU2003231500A1 (en) * 2002-05-01 2003-11-17 Junichi Asoh Computer, display device setting method, and program
US7483488B1 (en) 2002-05-30 2009-01-27 Intervideo, Inc. Systems and methods for improving bit rate control of video encoding by correcting for the effects of scene changes and bit stuffing in a video buffer verifier (VBV) buffer model
JP3862620B2 (ja) * 2002-06-28 2006-12-27 キヤノン株式会社 画像処理装置、及び画像処理方法
EP1727352B1 (en) 2004-02-23 2014-05-07 Toa Corporation Image compression method, image compression device, image transmission system, data compression pre-processing device, and computer program
US7725593B2 (en) * 2005-07-15 2010-05-25 Sony Corporation Scalable video coding (SVC) file format
CN101292538B (zh) 2005-10-19 2012-11-28 汤姆森特许公司 使用可缩放的视频编码的多视图视频编码
JP4818373B2 (ja) * 2006-01-09 2011-11-16 韓國電子通信研究院 Svcファイルのデータ共有方法およびそのファイル
EP2130374A4 (en) 2007-03-23 2011-03-02 Lg Electronics Inc METHOD AND ARRANGEMENT FOR DECODING / CODING A VIDEO SIGNAL
KR100962696B1 (ko) 2007-06-07 2010-06-11 주식회사 이시티 부호화된 스테레오스코픽 영상 데이터 파일의 구성방법
KR101387212B1 (ko) 2007-06-12 2014-04-21 삼성전자주식회사 2d 영상 미디어 표준을 기반으로 3d 입체영상 파일을생성 및 재생하기 위한 시스템 및 방법
CN101803394A (zh) * 2007-06-19 2010-08-11 韩国电子通信研究院 存储和播放立体数据的元数据结构以及使用该元数据存储立体内容文件的方法
WO2009002115A2 (en) 2007-06-26 2008-12-31 Lg Electronics Inc. Media file format based on, method and apparatus for reproducing the same, and apparatus for generating the same
US8331663B2 (en) * 2007-06-28 2012-12-11 Qualcomm Incorporated Efficient image compression scheme to minimize storage and bus bandwidth requirements
EP2160899B1 (en) 2007-07-02 2019-05-08 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for storing and reading a file having a media data container and a metadata container
US20090199100A1 (en) 2008-02-05 2009-08-06 Samsung Electronics Co., Ltd. Apparatus and method for generating and displaying media files
KR101530713B1 (ko) 2008-02-05 2015-06-23 삼성전자주식회사 영상 파일을 생성하고 표시하기 위한 장치 및 방법
WO2010007513A1 (en) 2008-07-16 2010-01-21 Nokia Corporation Method and apparatus for track and track subset grouping
CN102257818B (zh) 2008-10-17 2014-10-29 诺基亚公司 3d视频编码中运动向量的共享
WO2010060442A1 (en) * 2008-11-26 2010-06-03 Telefonaktiebolaget Lm Ericsson (Publ) Technique for handling media content to be accessible via multiple media tracks
KR101940023B1 (ko) 2009-02-19 2019-01-21 톰슨 라이센싱 3d 비디오 포맷
JP5274359B2 (ja) 2009-04-27 2013-08-28 三菱電機株式会社 立体映像および音声記録方法、立体映像および音声再生方法、立体映像および音声記録装置、立体映像および音声再生装置、立体映像および音声記録媒体
WO2010126612A2 (en) 2009-05-01 2010-11-04 Thomson Licensing Reference picture lists for 3dv
WO2010151279A1 (en) 2009-06-25 2010-12-29 Thomson Licensing Depth map coding
US8976871B2 (en) 2009-09-16 2015-03-10 Qualcomm Incorporated Media extractor tracks for file format track selection
CN102714715B (zh) * 2009-09-22 2016-01-20 高通股份有限公司 用于文件格式轨迹选择的媒体提取器轨迹
KR101847072B1 (ko) 2010-04-05 2018-04-09 삼성전자주식회사 영상 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
US20110280311A1 (en) 2010-05-13 2011-11-17 Qualcomm Incorporated One-stream coding for asymmetric stereo video
US20110304618A1 (en) 2010-06-14 2011-12-15 Qualcomm Incorporated Calculating disparity for three-dimensional images
US9185439B2 (en) 2010-07-15 2015-11-10 Qualcomm Incorporated Signaling data for multiplexing video components
US8930562B2 (en) 2010-07-20 2015-01-06 Qualcomm Incorporated Arranging sub-track fragments for streaming video data
JP5855570B2 (ja) * 2010-09-30 2016-02-09 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America 画像復号方法、画像符号化方法、画像復号装置、画像符号化装置、プログラムおよび集積回路
WO2012090181A1 (en) 2010-12-29 2012-07-05 Nokia Corporation Depth map coding
US8570320B2 (en) 2011-01-31 2013-10-29 Microsoft Corporation Using a three-dimensional environment model in gameplay
US20120219069A1 (en) 2011-02-28 2012-08-30 Chong Soon Lim Methods and apparatuses for encoding and decoding images of a plurality of views using multiview video coding standard and mpeg-2 video standard
US9565449B2 (en) 2011-03-10 2017-02-07 Qualcomm Incorporated Coding multiview video plus depth content
KR20120118782A (ko) * 2011-04-19 2012-10-29 삼성전자주식회사 적응적 필터링을 이용한 영상의 부호화 방법 및 장치, 그 복호화 방법 및 장치
JP2014528190A (ja) 2011-08-12 2014-10-23 テレフオンアクチーボラゲット エル エム エリクソン(パブル) カメラおよび/または深度パラメータのシグナリング
US10244257B2 (en) * 2011-08-31 2019-03-26 Nokia Technologies Oy Video coding and decoding
US20130113882A1 (en) 2011-11-08 2013-05-09 Sony Corporation Video coding system and method of operation thereof
US9473752B2 (en) 2011-11-30 2016-10-18 Qualcomm Incorporated Activation of parameter sets for multiview video coding (MVC) compatible three-dimensional video coding (3DVC)
GB201202754D0 (en) 2012-02-17 2012-04-04 Qatar Foundation Multicasting multiview 3D videos
WO2013165215A1 (ko) * 2012-05-04 2013-11-07 엘지전자 주식회사 영상 정보 저장 방법 및 영상 정보 파싱 방법 그리고 이를 이용하는 장치
TWI594616B (zh) * 2012-06-14 2017-08-01 杜比實驗室特許公司 用於立體及自動立體顯示器之深度圖傳遞格式
KR101664758B1 (ko) 2012-09-21 2016-10-10 노키아 테크놀로지스 오와이 비디오 코딩 방법 및 장치
US9544612B2 (en) 2012-10-04 2017-01-10 Intel Corporation Prediction parameter inheritance for 3D video coding
WO2014056150A1 (en) * 2012-10-09 2014-04-17 Nokia Corporation Method and apparatus for video coding
US9357199B2 (en) 2013-01-04 2016-05-31 Qualcomm Incorporated Separate track storage of texture and depth views for multiview coding plus depth

Also Published As

Publication number Publication date
US9584792B2 (en) 2017-02-28
ES2898452T3 (es) 2022-03-07
KR102209478B1 (ko) 2021-01-28
EP2941889A2 (en) 2015-11-11
EP3866467A1 (en) 2021-08-18
CN104904204B (zh) 2019-05-14
TW201429257A (zh) 2014-07-16
US9648299B2 (en) 2017-05-09
US20140192153A1 (en) 2014-07-10
TW201440499A (zh) 2014-10-16
WO2014107374A2 (en) 2014-07-10
KR20150104130A (ko) 2015-09-14
CN104919800B (zh) 2019-03-01
CN104919801B (zh) 2018-06-05
CN110198451B (zh) 2023-04-07
KR20150104132A (ko) 2015-09-14
TWI554087B (zh) 2016-10-11
US20170134708A1 (en) 2017-05-11
WO2014107377A2 (en) 2014-07-10
BR112015016052B1 (pt) 2023-04-11
TWI590643B (zh) 2017-07-01
US20140193139A1 (en) 2014-07-10
KR102184062B1 (ko) 2020-11-27
KR101928136B1 (ko) 2018-12-11
JP6441233B2 (ja) 2018-12-19
US20140192151A1 (en) 2014-07-10
WO2014107378A2 (en) 2014-07-10
WO2014107377A3 (en) 2015-04-16
CN110198451A (zh) 2019-09-03
CN104919800A (zh) 2015-09-16
US9357199B2 (en) 2016-05-31
WO2014107376A3 (en) 2015-04-16
JP6333853B2 (ja) 2018-05-30
TW201444346A (zh) 2014-11-16
JP6279613B2 (ja) 2018-02-14
EP2941890A2 (en) 2015-11-11
EP2941884A2 (en) 2015-11-11
US11178378B2 (en) 2021-11-16
US20200336726A1 (en) 2020-10-22
JP6324996B2 (ja) 2018-05-16
EP2941890B1 (en) 2022-01-26
JP2016506693A (ja) 2016-03-03
US10873736B2 (en) 2020-12-22
KR20150103225A (ko) 2015-09-09
KR20180023071A (ko) 2018-03-06
JP2016509399A (ja) 2016-03-24
WO2014107374A3 (en) 2015-04-09
US10791315B2 (en) 2020-09-29
KR20150104131A (ko) 2015-09-14
TWI535271B (zh) 2016-05-21
WO2014107376A2 (en) 2014-07-10
EP2941884B1 (en) 2021-12-08
TW201440486A (zh) 2014-10-16
WO2014107378A3 (en) 2015-04-09
CN104904204A (zh) 2015-09-09
KR102113898B1 (ko) 2020-05-21
CN104904221B (zh) 2018-11-30
EP2941865A2 (en) 2015-11-11
EP2941889B1 (en) 2021-10-20
TWI603608B (zh) 2017-10-21
US20140192152A1 (en) 2014-07-10
JP2016507967A (ja) 2016-03-10
KR20210011508A (ko) 2021-02-01
KR102254608B1 (ko) 2021-05-20
BR112015016052A2 (pt) 2017-07-11
CN104904221A (zh) 2015-09-09
CN104919801A (zh) 2015-09-16
JP2016508335A (ja) 2016-03-17

Similar Documents

Publication Publication Date Title
ES2904350T3 (es) Almacenamiento de pistas separadas de vistas de textura y de profundidad para codificación de múltiples vistas más profundidad
ES2781307T3 (es) Mejora en la agrupación de mosaicos en formatos de archivo HEVC y L-HEVC
ES2765462T3 (es) Diseños de formato de archivo de vídeo multicapa
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