ES2905128T3 - Atributos de señalización para datos de vídeo transmitidos por red - Google Patents

Atributos de señalización para datos de vídeo transmitidos por red Download PDF

Info

Publication number
ES2905128T3
ES2905128T3 ES11741737T ES11741737T ES2905128T3 ES 2905128 T3 ES2905128 T3 ES 2905128T3 ES 11741737 T ES11741737 T ES 11741737T ES 11741737 T ES11741737 T ES 11741737T ES 2905128 T3 ES2905128 T3 ES 2905128T3
Authority
ES
Spain
Prior art keywords
view
views
representation
cameras
video
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
ES11741737T
Other languages
English (en)
Inventor
Ying Chen
Peisong Chen
Marta Karczewicz
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 ES2905128T3 publication Critical patent/ES2905128T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/816Monomedia components thereof involving special video data, e.g 3D video
    • 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
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/21805Source of audio or video content, e.g. local disk arrays enabling multiple viewpoints, e.g. using a plurality of cameras
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/2365Multiplexing of several video streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/61Network physical structure; Signal processing
    • H04N21/6106Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
    • H04N21/6125Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving transmission via Internet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6581Reference data, e.g. a movie identifier for ordering a movie or a product identifier in a home shopping application
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/84Generation or processing of descriptive data, e.g. content descriptors

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Transfer Between Computers (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

Un procedimiento de señalizar un manifiesto de una pluralidad de representaciones de contenido multimedia desde un dispositivo fuente a un dispositivo de destino y de transmitir en directo una o más de la pluralidad de representaciones a través de una red, comprendiendo el procedimiento: recibir, mediante un dispositivo fuente, los datos de vídeo para una primera pluralidad de vistas de una escena, cada vista capturada por una cámara de una serie horizontal de una primera pluralidad de cámaras; recibir (152), mediante el dispositivo fuente, la información de la ubicación que determina las ubicaciones horizontales relativas, en la serie horizontal, de la primera pluralidad de cámaras; asignar (154), mediante el dispositivo fuente, un identificador de vista a cada vista en base a la ubicación horizontal de la cámara que capturó la vista respecto a las otras cámaras dentro de la serie horizontal, en el que los identificadores de vista aumentan de manera monótona o disminuyen de manera monótona para las vistas capturadas por las cámaras sucesivas de izquierda a derecha de la serie y una diferencia entre los identificadores de vista para las vistas capturadas por las respectivas cámaras de la primera pluralidad de cámaras representa la distancia entre las ubicaciones de las respectivas cámaras; formar (156), mediante el dispositivo fuente, una pluralidad de representaciones del contenido multimedia, comprendiendo cada representación un subconjunto de al menos dos vistas, siendo al menos una vista diferente entre al menos dos de las representaciones; determinar, por el dispositivo fuente, para cada representación, un identificador de vista máximo correspondiente al identificador de vista con el valor máximo de las vistas destinadas para salida incluidas en la representación y un identificador de vista mínimo correspondiente al identificador de vista con el valor mínimo de las vistas destinadas para salida incluidas en la representación, representando la diferencia entre los identificadores de vista máximo y mínimo la cantidad relativa de profundidad proporcionada por las respectivas vistas incluidas en la representación; formar, mediante el dispositivo fuente, un manifiesto del contenido multimedia, el manifiesto que incluye la información de orden de visualización que especifica si los identificadores de visualización aumentan de manera monótona o disminuyen de manera monótona para las vistas capturadas por las cámaras sucesivas de izquierda a derecha de la serie y, para cada representación, los datos indicativos del identificador de vista máximo y el identificador de vista mínimo; enviar (160), por el dispositivo fuente tras recibir una solicitud de un dispositivo de destino con una pantalla estéreo, el manifiesto para permitir que el dispositivo de destino determine una representación que se adapte a una solicitud recibida por el dispositivo de destino para aumentar o disminuir la cantidad relativa de profundidad de las vistas que se muestran usando el identificador de vista máximo y el identificador de vista mínimo señalados en el manifiesto para cada representación, y para solicitar la representación determinada; y transmitir en directo (168), por el dispositivo fuente en respuesta a una solicitud de un dispositivo de destino, la representación seleccionada para permitir que el dispositivo de destino decodifique y muestre un vídeo estéreo con la cantidad relativa de profundidad decodificando y mostrando las vistas asociadas con los identificadores máximo y mínimo.

Description

DESCRIPCIÓN
Atributos de señalización para datos de vídeo transmitidos por red
Campo técnico
Esta divulgación se refiere al almacenamiento y transporte de datos de vídeo codificados.
Antecedentes
Las capacidades de vídeo digital se pueden incorporar en un amplio rango de dispositivos, incluidos televisores digitales, sistemas de difusión digital directa, sistemas de difusión inalámbrica, asistentes digitales personales (PDA), ordenadores portátiles o de escritorio, cámaras digitales, dispositivos de grabación digital, reproductores de medios digitales, dispositivos de videojuegos, consolas de videojuegos, teléfonos celulares o satelitales, dispositivos de videoconferencia y similares. Los dispositivos de vídeo implementan técnicas de compresión de vídeo, tales como las descritas en los estándares definidos por MPEG-2, MPEG-4, ITU-T H.263 o ITU-T H.264/MPEG-4, Parte 10, Codificación de Vídeo Avanzada (AVC) y en las extensiones de tales estándares, para transmitir y recibir información de vídeo digital de manera más eficiente.
Las técnicas de compresión de vídeo realizan predicciones espaciales y/o predicciones temporales para reducir o eliminar la redundancia inherente en las secuencias de vídeo. Para la codificación de vídeo en base a bloques, una trama o segmento de vídeo se puede particionar en macrobloques. Cada macrobloque se puede particionar aún más. Los macrobloques de una trama o segmento intra-codificado (I) se codifican usando la predicción espacial con respecto a los macrobloques vecinos. Los macrobloques en una trama o segmento inter-codificado (P o B) pueden usar la predicción espacial con respecto a los macrobloques vecinos en la misma trama o segmento o la predicción temporal con respecto a otras tramas de referencia.
Después de que los datos de vídeo se han codificado, los datos de vídeo pueden empaquetar para su transmisión o almacenamiento. Los datos de vídeo se pueden montar en un archivo de vídeo de conformidad con cualquiera de una variedad de estándares, tal como el formato de archivos multimedia base de la Organización Internacional de Normalización (ISO) y extensiones de los mismos, tal como AVC.
Se han realizado esfuerzos para desarrollar nuevos estándares de codificación de vídeo en base a H.264/AVC. Uno de tales estándares es el estándar de codificación de vídeo escalable (SVC), el cual es la extensión escalable de H.264/AVC. Otro estándar es la codificación de vídeo multivista (MVC), que ha convertido la extensión multivista a H.264/AVC. Un borrador conjunto de MVC se describe en el documento JVT-AB204, "Joint Draft 8.0 on Multiview Video Coding," 28va reunión de JVT, Hannover, Alemania, julio de 2008, disponible en http://wftp3.itu.int/av-arch/jvtsite/2008_07_Hannover/JVT-AB204.zip. Una versión del estándar de AVC se describe en el documento JVT-AD007, "Editors' draft revision to ITU-T Rec. H.264 | ISO/IEC 14496-10 Advanced Video Coding - in preparation for ITU-T SG 16 AAP Consent (in integrated form),", 30ma reunión de JVT, Ginebra, Suiza, febrero de 2009", disponible en http://wftp3.itu.int/av-arch/jvt-site/2009_01_Geneva/JVT-AD007.zip. Este documento integra la SVC y la MVC en la memoria descriptiva de la AVC.
Un artículo de Xun Cao, Yebin Liu, Qionghai Dai publicado en EURASIP Journal on Advances in Signal Processing, vol 2008 describe "Un sistema de televisión 3d flexible impulsado por el cliente para la adquisición, transmisión y visualización en tiempo real de escenas dinámicas".
Un artículo de Ilkwon Park y otros en las páginas 1-4 de la Conferencia 3DTV, 1 de mayo de 2007 describe "Vídeo interactivo de múltiples vistas y audio dependiente de la vista bajo DIA (Adaptación de elementos digitales) del MPEG-21".
Sumario
La invención se define en las reivindicaciones independientes. Las características preferidas de la invención se definen en las reivindicaciones dependientes.
Breve descripción de los dibujos
La Figura 1 es un diagrama de bloques que ilustra un sistema de ejemplo en el que un dispositivo fuente de audio/vídeo (A/V) transfiere datos de audio y vídeo a un dispositivo de destino A/V.
La Figura 2 es un diagrama de bloques que ilustra los componentes de una unidad de encapsulación de ejemplo. La Figura 3 es un diagrama conceptual que ilustra una serie de cámaras para capturar los datos de imagen para vistas de una escena desde diversas ubicaciones.
La Figura 4 es un diagrama conceptual de una descripción de la presentación multimedia (MPD) que proporciona los atributos para diversas representaciones del contenido multimedia.
La Figura 5 es un diagrama conceptual que ilustra un patrón de predicción de MVC de ejemplo.
La Figura 6 es un diagrama de flujo que ilustra un procedimiento de ejemplo de señalizar la información para los datos de vídeo por un dispositivo fuente y recibir la información por un dispositivo de destino.
La Figura 7 es un diagrama de flujo que ilustra un procedimiento de ejemplo para asignar identificadores de vista a las vistas del contenido multimedia y presentar un número de vistas para salida de una representación como puntos de operación.
La Figura 8 es un diagrama de flujo que ilustra un ejemplo de un procedimiento de recibir la información para los datos de vídeo que incluyen identificadores de vista para las vistas del contenido multimedia y un número de vistas para salida de una representación como puntos de operación.
Descripción detallada
En general, esta divulgación describe técnicas para almacenar y transportar datos de vídeo. Más particularmente, esta divulgación proporciona técnicas para señalizar atributos para datos de vídeo codificados que se ajustan a la codificación de vídeo multivista (MVC) y para transmitir en directo los datos de vídeo codificados a través de una red, por ejemplo, de acuerdo con la transmisión en directo de protocolo de transporte de hipertexto (HTTP). En algunos ejemplos, la transmisión en directo de datos de red se puede ajustar a la transmisión en directo Dinámica Adaptativa sobre HTTP (DASH). Los atributos pueden describir un número máximo de vistas en una representación que se pueden destinar para salida en algunos ejemplos.
De acuerdo con las técnicas de esta divulgación, los identificadores de vista para las vistas del contenido multimedia corresponden a ubicaciones horizontales de las perspectivas de cámara para las vistas de datos de vídeo codificados. Por ejemplo, los identificadores de vista (view_id) se asignan de acuerdo con las ubicaciones horizontales de las perspectivas de cámara. Las ubicaciones horizontales de las perspectivas de cámara se determinan de acuerdo con una función (por ejemplo, función monótona creciente o decreciente) de los identificadores de vista. De esta manera, se determina que la perspectiva de cámara para una primera vista está horizontalmente a la izquierda u horizontalmente a la derecha de la perspectiva de la cámara de una vista separada en base a los identificadores de vista para la primera y la segunda vista. Además, las ubicaciones horizontales de las perspectivas de cámara para cada una de las vistas se disponen en orden (por ejemplo, mediante un dispositivo de destino) en base a los identificadores de vista para las vistas.
Los atributos incluyen un identificador de vista mínimo y uno máximo para todas las vistas de una representación. De esta manera, los atributos señalan un rango de identificadores de vista para una representación del contenido multimedia. Debido a que los identificadores de vista corresponden a las ubicaciones horizontales de las perspectivas de cámara para las vistas, un dispositivo de destino determina una cantidad relativa de profundidad para cada representación. Los atributos proporcionan además una indicación de cómo se asignan los identificadores de vista, por ejemplo, si un identificador de vista más grande corresponde a una vista que tiene una ubicación horizontal de una perspectiva de cámara que está a la izquierda o a la derecha de una ubicación horizontal de una perspectiva de cámara para una vista con una perspectiva de cámara más pequeña. En general, un rango más alto entre los identificadores de vista máximo y mínimo corresponde a un rango mayor de profundidad para los datos de vídeo tridimensionales de la representación. En algunos ejemplos, los atributos pueden incluir un número máximo de vistas para salida para la representación. El número máximo de vistas para salida se puede presentar como los puntos de operación, en algunos ejemplos.
El dispositivo de destino se configura para seleccionar una representación en base a la cantidad relativa de profundidad para la representación. Por ejemplo, si el dispositivo de destino se acopla a una pantalla relativamente grande (por ejemplo, un televisor con capacidad tridimensional), el dispositivo de destino puede seleccionar una representación que tenga un rango de profundidad mayor, mientras que si el dispositivo de destino se acopla a una pantalla relativamente pequeña (por ejemplo, un dispositivo móvil tal como un teléfono celular, una tableta o un ordenador portátil), el dispositivo de destino puede seleccionar una representación que tenga un rango de profundidad más pequeño. Los dispositivos de destino también pueden variar en términos del número de vistas que se pueden visualizar y, por lo tanto, el dispositivo de destino puede seleccionar una representación en base a una cantidad de vistas destinadas para salida para la representación, usando el número de vistas destinadas para salida como se señala en los atributos.
Usando la información que describe las representaciones, por ejemplo, en la estructura de datos de MPD, un dispositivo cliente selecciona una de las representaciones para recuperar. Por ejemplo, un dispositivo fuente puede proporcionar una variedad de representaciones diferentes para adaptarse a dispositivos cliente con capacidades de decodificación y renderización que varían. Los mismos datos de vídeo de entrada sin procesar se pueden codificar en una variedad de formas diferentes, por ejemplo, con diferentes números de vistas, diferentes vistas seleccionadas, diferentes tasas de bits, diferentes tasas de tramas, diferentes resoluciones, diferentes estándares de codificación u otras diferencias entre las representaciones. El dispositivo fuente describe los atributos de cada representación en una estructura de datos, tal como un descriptor de la presentación multimedia (MPD), que los dispositivos cliente pueden recuperar. Los dispositivos cliente recuperan luego la MPD para seleccionar una representación.
Por ejemplo, el dispositivo cliente se configura para seleccionar una representación (o punto de operación de la misma) en base a una cantidad deseada de profundidad (por ejemplo, que corresponde a la diferencia entre el identificador de vista máximo y el identificador de vista mínimo, cuando los identificadores de vista se asignan tales como que representan las ubicaciones relativas de las perspectivas de cámara para las vistas). Como otro ejemplo, el dispositivo cliente se puede configurar para seleccionar una representación (o punto de operación de la misma) en base a un número máximo de vistas que se pueden destinar para salida, así como también un número máximo de vistas que puede visualizar el dispositivo cliente. De esta manera, el cliente puede intentar utilizar completamente sus capacidades de visualización, mientras que también intenta minimizar o eliminar cualquier decodificación de más datos de vídeo de los que se pueden usar (es decir, visualizar).
Las técnicas de esta divulgación se pueden aplicar a archivos de vídeo de conformidad con los datos de vídeo encapsulados de acuerdo con cualquiera del formato base de archivos multimedia de la ISO, el formato de archivo de Codificación de Vídeo Escalable (SVC), el formato de archivo de Codificación de Vídeo Avanzada (AVC), el formato de archivo de Proyecto de Asociación de Tercera Generación (3GPP) y/o el formato de archivo de Codificación de Vídeo Multivista (MVC) o con otros formatos de archivo de vídeo similares.
El Formato Base de Archivos Multimedia de la ISO se diseña para contener la información multimedia cronometrada para una presentación en un formato flexible y extensible que facilita el intercambio, la gestión, la edición y la presentación multimedia. El formato Base de Archivos Multimedia de la ISO (ISO/IEC 14496-12:2004) se especifica en el MPEG-4 Parte-12, que define una estructura general para los archivos multimedia basados en el tiempo. Se usa como la base para otros formatos de archivo de la familia tales como el formato de archivo de AVC (ISO/IEC 14496-15), el soporte definido para la compresión de vídeo de AVC del H.264/MPEG-4, el formato de archivo del 3GPP, el formato de archivo de SVC y el formato de archivo de MVC. El formato de archivo del 3GPP y el formato de archivo de MVC son extensiones del formato de archivo de AVC. El formato base de archivos multimedia de la ISO contiene el tiempo, la estructura y la información multimedia para las secuencias cronometradas de datos multimedia, tal como las presentaciones audiovisuales. La estructura de archivo puede estar orientada a objetos. Un archivo se puede descomponer en objetos básicos de manera muy simple y la estructura de los objetos está implícita a partir de su tipo.
Cuando la multimedia se entregan sobre un protocolo de transmisión en directo, la multimedia puede necesitar que se transforme la manera en la que se representan en el archivo. Un ejemplo de esto es cuando la multimedia se transmite sobre el Protocolo de Transporte en Tiempo real (RTP). En el archivo, por ejemplo, cada trama de vídeo se almacena de forma contigua como una muestra de formato de archivo. En el rTp , se deben obedecer las reglas de paquetización específicas del códec usado para colocar estas tramas en paquetes de RTP. Se puede configurar un servidor de transmisión en directo para calcular tal paquetización en tiempo de ejecución. Sin embargo, existe soporte para la asistencia de los servidores de transmisión en directo.
Las técnicas de esta divulgación pueden ser aplicables a los protocolos de transmisión en directo por red, tales como transmisión en directo sobre HTTP, por ejemplo, de acuerdo con la transmisión en directo dinámica adaptativa sobre HTTP (DASH). El estándar MPEG, por ejemplo, soporta la transmisión en directo sobre HTTP en base a la transmisión en directo sobre HTTP del 3GPp . En la transmisión en directo sobre HTTP, las operaciones usadas con frecuencia incluyen GET y GET parcial. La operación GET recupera un archivo completo asociado a un localizador de recursos uniforme (URL) o un nombre de recursos uniforme (URN) dado. La operación GET parcial recibe un rango de bytes como un parámetro de entrada y recupera un número continuo de bytes de un archivo que corresponde al rango de bytes recibido. Por tanto, los fragmentos de película se pueden proporcionar para la transmisión en directo sobre HTTP, porque una operación GET parcial puede obtener uno o más fragmentos de película individuales. Tenga en cuenta que, en un fragmento de película, puede haber varios fragmentos de pista de diferentes pistas. En la transmisión en directo sobre HTTP, una presentación multimedia puede ser una colección estructurada de datos a la que puede acceder el cliente. El cliente puede solicitar y descargar la información de los datos multimedia para presentar un servicio de transmisión en directo a un usuario.
En el ejemplo de transmisión en directo de datos del 3GPP usando la transmisión en directo sobre HTTP, puede haber múltiples representaciones para los datos de vídeo y/o audio del contenido multimedia. El manifiesto de tales representaciones se puede definir en una estructura de datos de Descripción de Presentación Multimedia (MPD). Una presentación multimedia puede corresponder a una colección estructurada de datos a la que puede acceder un dispositivo cliente de transmisión en directo sobre HTTP. El dispositivo cliente de transmisión en directo sobre HTTP puede solicitar y descargar la información de datos multimedia para presentar un servicio de transmisión en directo a un usuario del dispositivo cliente. Una presentación multimedia se puede describir en la estructura de datos de la MPD, la cual puede incluir las actualizaciones de la MPD.
Una presentación multimedia puede contener una secuencia de uno o más períodos. Los períodos se pueden definir por un elemento de Period en la MPD. Cada período puede tener un atributo de start en la MPD. La MPD puede incluir un atributo de start y un atributo AvailableStartTime para cada período. Para los servicios en vivo, la suma del atributo start del período y el atributo de la MPD AvailableStartTime podrá especificar el tiempo de disponibilidad del período en formato de UTC, en particular, el primer Segmento Multimedia de cada representación en el período correspondiente. Para los servicios bajo demanda, el atributo start del primer período puede ser 0. Para cualquier otro período, el atributo start puede especificar un desplazamiento de tiempo entre el momento de inicio del Período correspondiente en relación con el momento de inicio del primer Período. Cada período se puede extender hasta el inicio del siguiente Período o hasta el final de la presentación multimedia en el caso del último período. Los momentos de inicio del período pueden ser precisos. Pueden reflejar la hora real que resulta de reproducir la multimedia de todos los períodos anteriores.
Cada período puede contener una o más representaciones para el mismo contenido multimedia. Una representación puede ser una de un número de versiones codificadas alternativas de datos de audio o de vídeo. Las representaciones pueden diferir por los tipos de codificación, por ejemplo, por la tasa de bits, resolución y/o códec para los datos de vídeo, y por la tasa de bits, idioma y/o códec para los datos de audio. El término representación se puede usar para referirse a una sección de datos de audio o de vídeo codificados que corresponden a un período particular del contenido multimedia y codificados de una manera particular.
Las representaciones de un período particular se pueden asignar a un grupo indicado por un atributo de grupo en la MPD. Las representaciones en el mismo grupo generalmente se consideran alternativas entre sí. Por ejemplo, cada representación de datos de vídeo para un período particular se puede asignar al mismo grupo, de manera que cualquiera de las representaciones se puede seleccionar para la decodificación para visualizar los datos multimedia del contenido multimedia para el período correspondiente. El contenido multimedia dentro de un período se puede representar bien por una representación del grupo 0, si está presente, o bien por la combinación de como máximo una representación de cada grupo distinto de cero, en algunos ejemplos. Los datos de tiempo para cada representación de un período se pueden expresar en relación con el momento de inicio del período.
Una representación puede incluir uno o más segmentos. Cada representación puede incluir un segmento de inicialización o cada segmento de una representación puede tener autoinicialización. Cuando está presente, el segmento de inicialización puede contener la información de inicialización para acceder a la representación. En general, el segmento de inicialización no contiene los datos multimedia. Un segmento se puede referenciar únicamente por un identificador, tal como un localizador de recursos uniforme (URL), un nombre de recursos uniforme (URN) o un identificador de recursos uniforme (URI). La MPD puede proporcionar los identificadores para cada segmento. En algunos ejemplos, la MPD puede proporcionar además los rangos de bytes en forma de atributo de rango, el cual puede corresponder a los datos para un segmento dentro de un archivo accesible por la URL, URN o URI.
Cada representación también puede incluir uno o más componentes multimedia, donde cada componente multimedia puede corresponder a una versión codificada de un tipo de multimedia individual, tal como audio, vídeo o texto cronometrado (por ejemplo, para subtítulos). Los componentes multimedia pueden ser continuos en el tiempo a través de los límites de los segmentos multimedia consecutivos dentro de una representación.
Los atributos de una representación se proporcionan en un manifiesto para la representación. El manifiesto (o archivo de manifiesto) se envía desde un dispositivo servidor a un dispositivo de destino antes de enviar los datos de vídeo que comprenden muestras de vídeo codificadas desde el dispositivo servidor al dispositivo de destino. El dispositivo de destino usa el manifiesto para seleccionar una representación y recuperar las muestras codificadas de la representación. El manifiesto incluye la información indicativa de un identificador de vista máximo para una representación, un identificador de vista mínimo para la representación, una indicación de una relación entre los identificadores de vista y las ubicaciones horizontales de las perspectivas de cámara para las vistas y puede incluir una indicación de un número máximo de vistas destinadas para salida en la representación. Una MPD, como se usa en esta divulgación, es un ejemplo de un manifiesto, por ejemplo, en el contexto de transmisión en directo sobre HTTP.
Como varios ejemplos, el manifiesto puede corresponder a un archivo con formato de lenguaje de marcado extensible (XML) de Archivo de Manifiesto Multimedia Flash (FMF), un archivo de lista de reproducción M3U, un archivo de manifiesto de servidor tal como un documento de lenguaje de integración multimedia sincronizado (SMIL) y un archivo de manifiesto cliente, aunque en otros ejemplos, se pueden usar estructuras de datos similares. Aunque las técnicas de esta divulgación generalmente se describen con respecto al uso de una MPD para señalar los atributos de una representación (o representaciones múltiples para contenido multimedia) con fines de ejemplo, las técnicas se pueden aplicar generalmente a otros ejemplos de manifiestos, por ejemplo, estructuras o elementos de datos equivalentes o similares.
La Figura 1 es un diagrama de bloques que ilustra un sistema 10 de ejemplo en el cual el dispositivo fuente de audio/vídeo (A/V) 20 transporta los datos de audio y vídeo al dispositivo de destino de A/V 40. El sistema 10 de la Figura 1 puede corresponder a un sistema de videoconferencia, un sistema de servidor/cliente, un sistema de radiodifusor/receptor o cualquier otro sistema en el cual se envíen los datos de vídeo desde un dispositivo fuente, tal como el dispositivo fuente de A/V 20, a un dispositivo de destino, tal como el dispositivo de destino de A/V 40. En algunos ejemplos, el dispositivo fuente de A/V 20 y el dispositivo de destino de A/V 40 pueden realizar un intercambio de información bidireccional. Es decir, el dispositivo fuente de A/V 20 y el dispositivo de destino de A/V 40 pueden ser capaces de codificar y decodificar (y transmitir y recibir) los datos de audio y vídeo. En algunos ejemplos, el codificador de audio 26 puede comprender un codificador de voz, también denominado vocodificador.
El dispositivo fuente de A/V 20, en el ejemplo de la Figura 1, comprende la fuente de audio 22 y la fuente de vídeo 24. La fuente de audio 22 puede comprender, por ejemplo, un micrófono que produce señales eléctricas representativas de los datos de audio capturados a codificar por el codificador de audio 26. Alternativamente, la fuente de audio 22 puede comprender un medio de almacenamiento que almacena los datos de audio previamente grabados, un generador de datos de audio tal como un sintetizador computarizado o cualquier otra fuente de datos de audio. La fuente de vídeo 24 puede comprender una cámara de vídeo que produce los datos de vídeo a codificar por el codificador de vídeo 28, un medio de almacenamiento codificado con los datos de vídeo previamente grabados, una unidad de generación de datos de vídeo o cualquier otra fuente de datos de vídeo.
Los datos de audio y vídeo sin procesar pueden comprender datos analógicos o digitales. Los datos analógicos se pueden digitalizar antes de que se codifiquen por el codificador de audio 26 y/o por el codificador de vídeo 28. La fuente de audio 22 puede obtener los datos de audio de un participante que habla mientras el participante que habla está hablando y la fuente de vídeo 24 puede obtener simultáneamente los datos de vídeo del participante que habla. En otros ejemplos, la fuente de audio 22 puede comprender un medio de almacenamiento legible por ordenador que comprende los datos de audio almacenados y la fuente de vídeo 24 puede comprender un medio de almacenamiento legible por ordenador que comprende los datos de vídeo almacenados. De esta manera, las técnicas descritas en esta divulgación se pueden aplicar a los datos de audio y vídeo en tiempo real, en transmisión en directo y en vivo o a los datos de audio y vídeo pregrabados y archivados.
La fuente de vídeo 24 proporciona múltiples vistas simultáneas de una escena. La fuente de vídeo 24 corresponde a una serie de cámaras, por ejemplo, dos o más cámaras separadas cada una por una cierta cantidad de distancia, de manera que cada una de las cámaras en la serie se dirigen a un punto focal aproximadamente común. De esta manera, cada una de las cámaras puede proporcionar una perspectiva ligeramente diferente de la escena. La unidad de encapsulación 30 puede recibir la información indicativa de las ubicaciones relativas de las cámaras en la serie y asignar identificadores de vista a las vistas capturadas por las cámaras, de manera que los identificadores de vista correspondan a las ubicaciones de las cámaras y a las perspectivas de cámara. La unidad de encapsulación 30 asigna los identificadores de vista de acuerdo con una función monótona creciente o con una función monótona decreciente de las ubicaciones de las perspectivas de cámara.
En ejemplos no cubiertos por el ámbito de la invención según se reivindica, la fuente de vídeo 24 también puede proporcionar múltiples vistas simultáneas usando otras técnicas. Por ejemplo, la fuente de vídeo 24 puede proporcionar una vista e información de la profundidad para los objetos en una escena. La información de la profundidad se puede usar para generar una segunda vista desde una segunda perspectiva de cámara virtual. La fuente de vídeo 24 puede incluir un procesador para generar la segunda vista o una unidad de preprocesamiento para el codificador de vídeo 28 puede generar la segunda vista. En algunos ejemplos, la fuente de vídeo 24 puede comprender un ordenador que genera gráficos por ordenador usando dos o más perspectivas de cámara.
Las tramas de audio que corresponden a las tramas de vídeo son generalmente tramas de audio que contienen los datos de audio que se capturaron por la fuente de audio 22 contemporáneamente con los datos de vídeo capturados por la fuente de vídeo 24 que se contienen dentro de las tramas de vídeo. Por ejemplo, mientras un participante que habla generalmente produce al hablar datos de audio, la fuente de audio 22 captura los datos de audio y la fuente de vídeo 24 captura los datos de vídeo del participante que habla al mismo tiempo, es decir, mientras que la fuente de audio 22 está capturando los datos de audio. Por lo tanto, una trama de audio puede corresponder temporalmente a una o más tramas de vídeo particulares. En consecuencia, una trama de audio que corresponde a una trama de vídeo generalmente corresponde a una situación en la cual los datos de audio y los datos de vídeo se capturaron al mismo tiempo y para la cual una trama de audio y una trama de vídeo comprenden, respectivamente, los datos de audio y los datos de vídeo que se capturaron al mismo tiempo.
En algunos ejemplos, el codificador de audio 26 puede codificar una marca de tiempo en cada trama de audio codificada que representa un momento en el cual se grabaron los datos de audio para la trama de audio codificada y de manera similar, el codificador de vídeo 28 puede codificar una marca de tiempo en cada trama de vídeo codificada que representa un momento en el cual se grabaron los datos de vídeo para la trama de vídeo codificada. En tales ejemplos, una trama de audio que corresponde a una trama de vídeo puede comprender una trama de audio que comprende una marca de tiempo y una trama de vídeo que comprende la misma marca de tiempo. El dispositivo fuente de A/V 20 puede incluir un reloj interno desde el cual el codificador de audio 26 y/o el codificador de vídeo 28 pueden generar las marcas de tiempo o que la fuente de audio 22 y la fuente de vídeo 24 pueden usar para asociar los datos de audio y vídeo, respectivamente, con una marca de tiempo.
En algunos ejemplos, la fuente de audio 22 puede enviar los datos al codificador de audio 26 que corresponden a un momento en el cual se grabaron los datos de audio y la fuente de vídeo 24 puede enviar los datos al codificador de vídeo 28 que corresponden a un momento en el cual se grabaron los datos de vídeo. En algunos ejemplos, el codificador de audio 26 puede codificar un identificador de secuencia en los datos de audio codificados para indicar un orden temporal relativo de los datos de audio codificados pero sin indicar necesariamente un momento absoluto en el cual se grabaron los datos de audio y, de manera similar, el codificador de vídeo 28 también puede usar los identificadores de secuencia para indicar un orden temporal relativo de los datos de vídeo codificados. De manera similar, en algunos ejemplos, un identificador de secuencia se puede asignar o correlacionar de otro modo con una marca de tiempo.
Las técnicas de esta divulgación generalmente se dirigen al almacenamiento y transporte de datos multimedia codificados (por ejemplo, audio y vídeo) y la recepción y posterior interpretación y decodificación de los datos multimedia transportados. Como se muestra en el ejemplo de la Figura 1, la fuente de vídeo 24 puede proporcionar una pluralidad de vistas de una escena al codificador de vídeo 28. Como se discutió anteriormente, la fuente de vídeo 24 también puede proporcionar información indicativa de las ubicaciones de las perspectivas de cámara para las vistas. La fuente de vídeo 24 puede proporcionar esta información al codificador de vídeo 28 o puede proporcionar la información directamente a la unidad de encapsulación 30.
La unidad de encapsulación 30 usa la información indicativa de las ubicaciones relativas de las perspectivas de cámara para que las vistas asignen identificadores de vistas a las vistas de contenido multimedia. La unidad de encapsulación 30 forma una o más representaciones del contenido multimedia, donde cada una de las representaciones incluye dos o más vistas. En algunos ejemplos, el codificador de vídeo 28 puede codificar cada vista de diferentes maneras, por ejemplo, con diferentes tasas de trama, diferentes tasas de bits, diferentes resoluciones u otras diferencias de este tipo. Por tanto, la unidad de encapsulación 30 puede formar diversas representaciones que tienen diversas características, por ejemplo, velocidad de bits, velocidad de cuadros, resolución y similares. Cada una de las representaciones puede corresponder a respectivos flujos de bits que se pueden recuperar por el dispositivo de destino 40. La unidad de encapsulación 30 proporciona una indicación de un rango de identificadores de vista (view_id) para las vistas incluidas en cada representación, por ejemplo, dentro de una estructura de datos de descripción de presentación multimedia (MPD) para el contenido multimedia. Por ejemplo, la unidad de encapsulación 30 proporciona una indicación de un identificador de vista máximo y un identificador de vista mínimo para las vistas de una representación. La MPD puede proporcionar además indicaciones del número máximo de vistas destinadas para salida para cada una de una pluralidad de representaciones del contenido multimedia. La MPD o los datos de la misma se pueden, en algunos ejemplos, almacenar en un manifiesto para la(s) representación(es).
De acuerdo con las técnicas de esta divulgación, los identificadores de vista asignados a las vistas corresponden a las ubicaciones horizontales de las perspectivas de cámara para las vistas. Por ejemplo, la unidad de encapsulación 30 puede asignar los identificadores de vista a las vistas de acuerdo con una función monótona creciente de las ubicaciones horizontales de las perspectivas de cámara para las vistas. De esta manera, cuando la ubicación horizontal de la cámara en coordenadas del mundo real para una primera vista está a la izquierda de la ubicación horizontal de la cámara en coordenadas del mundo real para una segunda vista, el valor del identificador de vista para la primera vista es menor que el valor del identificador de vista para la segunda vista. La función monótona creciente puede ser una función estrictamente monótona creciente.
Como otro ejemplo, la unidad de encapsulación 30 asigna los identificadores de vista a las vistas de acuerdo con una función monótona decreciente de las ubicaciones horizontales de las perspectivas de cámara para las vistas. De esta manera, cuando la ubicación horizontal de la cámara en coordenadas del mundo real para una primera vista está a la izquierda de la ubicación horizontal de la cámara en coordenadas del mundo real para una segunda vista, el valor del identificador de vista para la primera vista es mayor que el valor del identificador de vista para la segunda vista. La función monótona decreciente puede ser una función estrictamente monótona decreciente.
Cada transmisión individual de datos (ya sea de audio o de vídeo) se puede denominar transmisión elemental. Una transmisión elemental es un único componente codificado digitalmente (posiblemente comprimido) de una representación. Por ejemplo, la parte de vídeo o audio codificada de la representación puede ser una transmisión elemental. Una transmisión elemental se puede convertir en una transmisión elemental empaquetada (PES) antes de encapsularse dentro de un archivo de vídeo. Dentro de la misma representación, se puede usar un ID de transmisión para distinguir los paquetes de PES que pertenecen a una transmisión elemental del otro. La unidad básica de datos de una transmisión elemental es un paquete de transmisión elemental empaquetada (PES). Por tanto, cada vista de datos de vídeo de MVC corresponde a transmisiones elementales respectivas. De manera similar, los datos de audio corresponden a una o más transmisiones elementales respectivas.
Una secuencia de vídeo codificada con MVC se puede separar en varios subflujos de bits, cada uno correspondiente a una transmisión elemental de datos de vídeo. Una secuencia de vídeo codificada con MVC también se puede separar en subflujos de bits que incluyen más de una transmisión elemental de datos de vídeo (por ejemplo, más de una vista). Cada subflujo de bits se puede identificar usando un subconjunto del view_id de MVC. En base al concepto de cada subconjunto del view_id de MVC, se define un subflujo de bits de vídeo de MVC. Es decir, puede haber información que indique los view_id de las vistas incluidas en el subflujo de bits. Un subflujo de bits de vídeo de MVC contiene las unidades de NAL de las vistas enumeradas en el subconjunto del view_id de MVC. Una transmisión de programa generalmente contiene sólo las unidades de NAL que son de las transmisiones elementales. También se diseña para que dos transmisiones elementales cualesquiera no puedan contener una vista idéntica, sino que en su lugar puedan contener vistas separadas, por ejemplo, diferentes perspectivas de una escena para crear un efecto tridimensional.
Es posible extraer una o más vistas de una transmisión de bits de MVC para producir un subflujo de bits. Un subflujo de bits con un conjunto razonable dado de vistas de salida objetivo se denomina punto de operación. Debido a las dependencias de las vistas, el conjunto de vistas de salida objetivo puede ser un subconjunto de las vistas contenidas en un subflujo de bits. Las vistas de salida objetivo también pueden ser idénticas a las vistas contenidas en el subflujo de bits. Sin embargo, si un proveedor de servicios no tiene la intención de soportar un punto de operación con un gran número de vistas, el número de vistas para salida puede ser un subconjunto de las vistas contenidas. Tenga en cuenta que las vistas contenidas son las vistas a decodificar.
La unidad de encapsulación 30 puede proporcionar además una indicación de un número máximo de vistas que se pueden destinar para salida de cada una de las representaciones. En un ejemplo, la unidad de encapsulación 30 puede formar puntos de operación para una representación, donde cada punto de operación corresponde a un subconjunto de las vistas de la representación. En algunos ejemplos, el número máximo de vistas que se pueden destinar para salida puede corresponder al punto de operación que tiene el mayor número de vistas para la representación. La unidad de encapsulación 30 también proporciona información indicativa de un identificador de vista máximo y uno mínimo de todos los puntos de operación contenidos en una representación.
En el ejemplo de la Figura 1, la unidad de encapsulación 30 recibe las transmisiones elementales que comprenden los datos de vídeo del codificador de vídeo 28 y las transmisiones elementales que comprenden los datos de audio del codificador de audio 26. En algunos ejemplos, el codificador de vídeo 28 y el codificador de audio 26 pueden incluir cada uno empaquetadores para formar los paquetes de PES de los datos codificados. En otros ejemplos, el codificador de vídeo 28 y el codificador de audio 26 pueden interactuar cada uno con los respectivos empaquetadores para formar los paquetes de PES a partir de los datos codificados. En otros ejemplos más, la unidad de encapsulación 30 puede incluir empaquetadores para formar paquetes de PES de los datos de audio y vídeo codificados.
Una "representación", como se usa en esta divulgación, puede comprender una combinación de datos de audio y datos de vídeo, por ejemplo, una transmisión elemental de audio y un subconjunto de vistas disponibles entregadas por un servicio del dispositivo fuente de A/V 20. Cada paquete de PES puede incluir un stream_id que identifica la transmisión elemental a la cual pertenece el paquete de PES. La unidad de encapsulación 30 es responsable de montar las transmisiones elementales en un archivo de vídeo o en otra estructura de datos encapsulados.
La unidad de encapsulación 30 recibe los paquetes de PES para las transmisiones elementales de una representación del codificador de audio 26 y el codificador de vídeo 28 y forma las correspondientes unidades de capa de abstracción de red (NAL) de los paquetes de PES. En el ejemplo de H.264/AVC (Codificación de Vídeo Avanzada), los segmentos de vídeo codificados se organizan en unidades de NAL, las cuales proporcionan una representación de vídeo "amigable con la red" que aborda las aplicaciones tales como la telefonía, el almacenamiento, la difusión o la transmisión en directo de vídeo. Las unidades de NAL se pueden categorizar en unidades de NAL de Capa de Codificación de Vídeo (VCL) y unidades de NAL no VCL. Las unidades de VCL pueden contener el motor de compresión central y pueden incluir los datos a nivel de bloque, macrobloque y/o segmento. Otras unidades de NAL pueden ser unidades de NAL no VCL. En algunos ejemplos, una imagen codificada en una instancia de tiempo, normalmente presentada como una imagen codificada primaria, se puede contener en una unidad de acceso, la cual puede incluir una o más unidades de NAL.
Las unidades de NAL no VCL pueden incluir unidades de NAL del conjunto de parámetros y unidades de NAL de SEI, entre otras. Los conjuntos de parámetros pueden contener la información de encabezado a nivel de secuencia (en los conjuntos de parámetros de secuencia (SPS)) y la información de encabezado a nivel de imagen que cambia con poca frecuencia (en los conjuntos de parámetros de imagen (PPS)). Con los conjuntos de parámetros (por ejemplo, PPS y SPS), no es necesario repetir la información que cambia con poca frecuencia para cada secuencia o imagen, por lo tanto, se puede mejorar la eficiencia de codificación. Además, el uso de los conjuntos de parámetros puede permitir la transmisión fuera de banda de la información importante de encabezado, evitando la necesidad de las transmisiones redundantes para la resistencia a errores. En los ejemplos de transmisión fuera de banda, las unidades de NAL del conjunto de parámetros se pueden transmitir en un canal diferente al de otras unidades de NAL, tal como las unidades de NAL de SEI.
La Información Complementaria de Mejora (SEI) puede contener la información que no es necesaria para decodificar las muestras de imágenes codificadas de las unidades de NAL VCL, pero puede ayudar en los procesos relacionados con la decodificación, visualización, resistencia a errores y otros propósitos. Los mensajes con SEI se pueden contener en las unidades de NAL no VCL. Los mensajes con SEI son la parte normativa de algunas especificaciones de estándar y, por tanto, no siempre son obligatorios para la implementación de los decodificadores que cumplen con los estándares. Los mensajes con SEI pueden ser mensajes con SEI del nivel de secuencia o mensajes con SEI del nivel de imagen. Alguna información del nivel de secuencia se puede contener en mensajes con s Ei, tales como los mensajes con SEI de información de escalabilidad en el ejemplo de SVC y los mensajes con SEI de información de escalabilidad de vista en la MVC. Estos mensajes con SEI de ejemplo pueden transportar la información sobre, por ejemplo, la extracción de puntos de operación y las características de los puntos de operación. Para admitir la MVC y la SVC, es posible señalar dependencias de representaciones, por lo que diferentes vistas o capas de MVC o SVC se pueden colocar en diferentes representaciones y solicitar conjuntamente en base a las dependencias durante la transmisión en directo sobre HTTP.
La unidad de encapsulación 30 puede formar las unidades de NAL que comprenden un encabezado que identifica un programa al que pertenece la unidad de NAL, así como también una carga útil, por ejemplo, los datos de audio, los datos de vídeo o los datos que describen la transmisión de transporte o de programa a la que corresponde la unidad de NAL. Por ejemplo, en H.264/AVC, una unidad de NAL incluye un encabezado de 1 byte y una carga útil de tamaño variable. En un ejemplo, un encabezado de unidad de NAL comprende un elemento priority_id, un elemento temporaljd, un elemento anchor_pic_flag, un elemento view_id, un elemento non_idr_flag y un elemento inter_view_flag. En la MVC convencional, se retiene la unidad de NAL definida por H.264, excepto para las unidades de NAL de prefijo y las unidades de NAL de segmento codificado con MVC, que incluyen un encabezado de unidad de NAL de MVC de 4 bytes y la carga útil de la unidad de NAL.
El elemento priority_id de un encabezado de NAL se puede usar para un procedimiento de adaptación del flujo de bits simple de una ruta. El elemento temporaljd se puede usar para especificar el nivel temporal de la unidad de NAL correspondiente, donde diferentes niveles temporales corresponden a diferentes tasas de trama.
El elemento anchor_pic_flag puede indicar si una imagen es una imagen ancla o una imagen no ancla. Las imágenes ancla y todas las imágenes que le siguen en el orden de salida (es decir, el orden de visualización) se pueden decodificar correctamente sin decodificar las imágenes anteriores en el orden de decodificación (es decir, el orden del flujo de bits) y, por tanto, se pueden usar como puntos de acceso aleatorio. Las imágenes ancla y las imágenes no ancla pueden tener diferentes dependencias, las cuales se señalan en el conjunto de parámetros de secuencia. Otras etiquetas se analizarán y se usarán en las siguientes secciones de este capítulo. Una imagen ancla de este tipo también se puede denominar punto de acceso del GOP (Grupo De Imágenes) abierto, mientras que un punto de acceso del GOP cercano también se soporta cuando el elemento non_idr_flag es igual a cero. El elemento non_idr_flag indica si una imagen es una imagen de actualización instantánea del decodificador (IDR) o IDR de vista (V-IDR). En general, una imagen de IDR y todas las imágenes que le siguen en el orden de salida o en el orden del flujo de bits, se pueden decodificar correctamente sin decodificar las imágenes anteriores en el orden de decodificación o en el orden de visualización.
El elemento view_id puede comprender la información de sintaxis que se puede usar para identificar una vista, que se puede usar para la interactividad de los datos dentro de un decodificador de MVC, por ejemplo, para predicción inter-vista, y fuera de un decodificador, por ejemplo, para la renderización. El elemento inter_view_flag puede especificar si la unidad de NAL correspondiente se usa por otras vistas para la predicción inter-vista. Para transportar la información del encabezado de la unidad de NAL de 4 bytes para una vista base, la cual puede ser compatible con la AVC, se define una unidad de NAL de prefijo en la MVC. En el contexto de la MVC, la unidad de acceso a la vista base incluye las unidades de NAL de VCL de la instancia de tiempo actual de la vista, así como también su unidad de NAL de prefijo, que contiene sólo el encabezado de la unidad de NAL. Un decodificador de H.264/AVC puede ignorar la unidad de NAL de prefijo. De acuerdo con las técnicas de esta divulgación, el elemento de view_id puede proporcionar una indicación de la perspectiva de cámara horizontal relativa para una cámara que capturó la vista correspondiente.
La predicción inter-vista es una técnica para codificar datos de vídeo con MVC de una trama con referencia a una o más tramas en una ubicación temporal común como la trama codificado de diferentes vistas. La Figura 5, la cual se analiza con mayor detalle a continuación, proporciona un esquema de codificación de ejemplo para la predicción inter-vista. En general, una trama codificada de datos de vídeo de MVC se puede codificar de manera predictiva espacialmente, temporalmente y/o con referencia a tramas de otras vistas en una ubicación temporal común. En consecuencia, las vistas de referencia, a partir de las cuales se predicen otras vistas, generalmente se decodifican antes que las vistas para las que las vistas de referencia actúan como referencia, de modo que estas vistas decodificadas se pueden usar como referencia cuando se decodifican las vistas de referencia. El orden de decodificación no se corresponde necesariamente con el orden de los view_id. Por lo tanto, el orden de decodificación de las vistas se describe usando los índices de orden de vista. Los índices de orden de vista son índices que indican el orden de decodificación de los componentes de la vista correspondientes en una unidad de acceso.
Una unidad de NAL que incluye los datos de vídeo en su carga útil puede comprender diversos niveles de granularidad de los datos de vídeo. Por ejemplo, una unidad de NAL puede comprender un bloque de datos de vídeo, un macrobloque, una pluralidad de macrobloques, un segmento de datos de vídeo o una trama completa de datos de vídeo. La unidad de encapsulación 30 puede recibir los datos de vídeo codificados del codificador de vídeo 28 en forma de paquetes de PES de transmisiones elementales. La unidad de encapsulación 30 puede asociar cada transmisión elemental con un programa correspondiente.
La unidad de encapsulación 30 también puede montar las unidades de acceso desde una pluralidad de unidades de NAL. En general, una unidad de acceso puede comprender una o más unidades de NAL para representar una trama de datos de vídeo, así como los datos de audio que corresponden a la trama cuando tales datos de audio están disponibles. Una unidad de acceso generalmente incluye todas las unidades de NAL para una instancia de tiempo de salida, por ejemplo, todos los datos de audio y vídeo para una instancia de tiempo. Por ejemplo, si cada vista tiene una velocidad de trama de 20 tramas por segundo (fps), entonces cada instancia de tiempo puede corresponder a un intervalo de tiempo de 0,05 segundos. Durante este intervalo de tiempo, las tramas específicas para todas las vistas de la misma unidad de acceso (la misma instancia de tiempo) se pueden renderizar simultáneamente. En un ejemplo que corresponde a H.264/AVC, una unidad de acceso puede comprender una imagen codificada en una instancia de tiempo, la cual se puede presentar como una imagen codificada primaria. En consecuencia, una unidad de acceso puede comprender todas las tramas de audio y vídeo de una instancia temporal común, por ejemplo, todas las vistas que corresponden al tiempo X. Esta divulgación también se refiere a una imagen codificada de una vista particular como una "componente de vista." Es decir, una componente de vista puede comprender una imagen (o trama) codificada para una vista particular en un momento particular. En consecuencia, una unidad de acceso se puede definir como que comprende todos las componentes de vista de una instancia temporal común. El orden de decodificación de las unidades de acceso no tiene que ser necesariamente el mismo que el orden de salida o de visualización.
Como con la mayoría de estándares de codificación de vídeo, H.264/AVC define la sintaxis, la semántica y el procedimiento de decodificación para los flujos de bits sin errores, cualquiera de los cuales conforme a un determinado perfil o nivel. H.264/AVC no especifica el codificador, pero el codificador se encarga de garantizar que los flujos de bits generados sean compatibles con el estándar para un decodificador. En el contexto del estándar de codificación de vídeo, un "perfil" corresponde a un subconjunto de algoritmos, características o herramientas y restricciones que se le aplican. Como se define por el estándar H.264, por ejemplo, un "perfil" es un subconjunto de la sintaxis del flujo de bits completa que se especifica por el estándar H.264. Un "nivel" corresponde a las limitaciones del consumo de recursos del decodificador, tales como, por ejemplo, la memoria y el cálculo del decodificador, las cuales se relacionan con la resolución de las imágenes, la velocidad de bits y la velocidad de procesamiento de los macrobloques (MB). Un perfil se puede señalar con un valor de profile_idc (indicador de perfil), mientras que un nivel se puede señalar con un valor de level_idc (indicador de nivel).
El estándar H.264, por ejemplo, reconoce que, dentro de los límites impuestos por la sintaxis de un perfil dado, aún es posible requerir una gran variación en el rendimiento de los codificadores y decodificadores que depende de los valores tomados por los elementos de sintaxis en el flujo de bits tal como el tamaño especificado de las imágenes decodificadas. El estándar H.264 reconoce además que, en muchas aplicaciones, no es práctico ni económico implementar un decodificador capaz de tratar con todos los usos hipotéticos de la sintaxis dentro de un perfil particular. En consecuencia, el estándar H.264 define un "nivel" como un conjunto específico de restricciones impuestas a los valores de los elementos de sintaxis en el flujo de bits. Estas restricciones pueden ser simples límites de valores. Alternativamente, estas restricciones pueden tomar la forma de restricciones sobre combinaciones aritméticas de valores (por ejemplo, el ancho de la imagen multiplicado por el alto de la imagen multiplicado por el número de imágenes decodificadas por segundo). El estándar H.264 proporciona además que las implementaciones individuales pueden soportar un nivel diferente para cada perfil soportado.
Un decodificador conforme a un perfil normalmente soporta todas las características definidas en el perfil. Por ejemplo, como una característica de codificación, la codificación de imagen B no se soporta en el perfil básico de H.264/AVC, pero sí se soporta en otros perfiles de H.264/AVC. Un decodificador conforme a un nivel debería ser capaz de decodificar cualquier flujo de bits que no requiera recursos más allá de las limitaciones definidas en el nivel. Las definiciones de perfiles y niveles pueden ser útiles para la interpretabilidad. Por ejemplo, durante la transmisión de vídeo, se pueden negociar y acordar un par de definiciones de perfil y de nivel para una sesión de transmisión completa. Más específicamente, en el H.264/AVC, un nivel puede definir, por ejemplo, las limitaciones en el número de macrobloques que necesitan procesamiento, el tamaño de búfer de imágenes decodificadas (DPB), el tamaño de búfer de imágenes codificadas (CPB), el rango del vector de movimiento vertical, el número máximo de vectores de movimiento por dos MB consecutivos y si un bloque B puede tener particiones en submacrobloques de menos de 8x8 píxeles. De esta manera, un decodificador puede determinar si el decodificador es capaz de decodificar correctamente el flujo de bits.
Los conjuntos de parámetros generalmente contienen la información de encabezado a nivel de secuencia en los conjuntos de parámetros de secuencia (SPS) y la información de encabezado a nivel de imagen que cambia con poca frecuencia en los conjuntos de parámetros de imagen (PPS). Con los conjuntos de parámetros, esta información que cambia con poca frecuencia no es necesario repetirla para cada secuencia o imagen, por lo tanto, se puede mejorar la eficiencia de codificación. Además, el uso de los conjuntos de parámetros puede permitir la transmisión fuera de banda de la información de encabezado, evitando la necesidad de las transmisiones redundantes para lograr resistencia a los errores. En la transmisión fuera de banda, las unidades de NAL del conjunto de parámetros se pueden transmitir en un canal diferente al de otras unidades de NAL.
Los ejemplos de SVC y MVC proporcionan extensiones de conjunto de parámetros de secuencia (SPS) para vídeo escalable o vídeo multivista. La información de extensión del SPS se puede contener en unidades de nAl de sub-SPS, que pueden tener un tipo de unidad de NAL diferente al de otras unidades de NAL. La información de perfil y de nivel para los puntos de operación soportados se puede incluir en las unidades de NAL, que incluyen la información de extensión del SPS.
Una presentación multimedia puede incluir una descripción de presentación multimedia (MPD), que puede contener las descripciones de diferentes representaciones alternativas (por ejemplo, servicios de vídeo con diferentes calidades) y la descripción puede incluir, por ejemplo, la información del códec, un valor de perfil y un valor de nivel. Un manifiesto para la presentación multimedia puede incluir datos para la MPD. El dispositivo de destino 40 puede recuperar la MPD de una presentación multimedia (por ejemplo, puede recuperar el manifiesto) para determinar cómo acceder a los fragmentos de película de varias presentaciones. Los fragmentos de película se pueden ubicar en cuadros de fragmentos de película (cuadros moof) de archivos de vídeo.
Los estándares de compresión de vídeo tales como ITU-T H.261, H.262, H.263, MPEG-1, MPEG-2 y H.264/MPEG-4 parte 10 hacen uso de la predicción temporal con compensación de movimiento para reducir la redundancia temporal. El codificador usa una predicción con compensación de movimiento a partir de algunas imágenes codificadas previamente (también denominadas en la presente memoria tramas) para predecir las imágenes codificadas actuales de acuerdo con los vectores de movimiento. Existen tres tipos principales de imágenes en la codificación de vídeo típica. Existen imágenes intra-codificadas ("imágenes-I" o "tramas-I"), imágenes predichas ("imágenes-P" o "tramas-P") e imágenes predichas bidireccionales ("imágenes-B" o "tramas-B"). Las imágenes-P usan sólo la imagen de referencia antes de la imagen actual en el orden temporal. En una imagen-B, cada bloque de la imagen-B se puede predecir a partir de una o dos imágenes de referencia. Estas imágenes de referencia se podrían ubicar antes o después de la imagen actual en el orden temporal.
De acuerdo con el estándar de codificación H.264, como ejemplo, las imágenes-B usan dos listas de imágenes de referencia codificadas previamente, lista 0 y lista 1. Cada una de estas dos listas puede contener imágenes codificadas pasadas y/o futuras en el orden temporal. Los bloques en una imagen-B se pueden predecir de varias maneras: predicción con compensación de movimiento a partir de una imagen de referencia de la lista 0, predicción con compensación de movimiento a partir de una imagen de referencia de la lista 1 o predicción con compensación de movimiento a partir de la combinación de imágenes de referencia de la lista 0 y de la lista 1. Para obtener la combinación de las imágenes de referencia de la lista 0 y la lista 1, se obtienen dos áreas de referencia con compensación de movimiento de la imagen de referencia de la lista 0 y la lista 1, respectivamente. Su combinación se puede usar para predecir el bloque actual.
El estándar ITU-T H.264 soporta la intra-predicción en diversos tamaños de bloque, tales como 16 por 16, 8 por 8 o 4 por 4 para componentes de luminancia y 8x8 para componentes de crominancia, así como también inter­ predicción en diversos tamaños de bloque, tales como 16x16, 16x8, 8x16, 8x8, 8x4, 4x8 y 4x4 para componentes de luminancia y tamaños escalados correspondientes para componentes de crominancia. En esta divulgación, "NxN" y "N por N" se pueden usar indistintamente para referirse a las dimensiones de los píxeles del bloque en términos de dimensiones verticales y horizontales, por ejemplo, 16x16 píxeles o 16 por 16 píxeles. En general, un bloque de 16x16 tendrá 16 píxeles en una dirección vertical (y = 16) y 16 píxeles en una dirección horizontal (x = 16). Del mismo modo, un bloque NxN de manera general tiene N píxeles en una dirección vertical y N píxeles en una dirección horizontal, donde N representa un valor entero no negativo. Los píxeles de un bloque se pueden organizar en filas y columnas. Los bloques pueden tener diferentes números de píxeles en las dimensiones horizontal y vertical. Es decir, los bloques pueden incluir NxM píxeles, donde N no es necesariamente igual a M.
Los tamaños de bloque inferiores a 16 por 16 se pueden denominar particiones de un macrobloque de 16 por 16. Los bloques de vídeo pueden comprender bloques de datos de píxeles en el dominio de píxeles, o bloques de coeficientes de transformación en el dominio de transformación, por ejemplo, después de la aplicación de una transformada tal como una transformada de coseno discreta (DCT), una transformada entera, una transformada de ondículas o una transformada conceptualmente similar a los datos de bloques de vídeo residuales que representan diferencias de píxeles entre los bloques de vídeo codificados y los bloques de vídeo predictivos. En algunos casos, un bloque de vídeo puede comprender bloques de coeficientes de transformación cuantificados en el dominio de transformación.
Los bloques de vídeo más pequeños pueden proporcionar una mejor resolución y se pueden usar para las ubicaciones de una trama de vídeo que incluyen altos niveles de detalle. En general, los macrobloques y las diversas particiones, a veces denominadas subbloques, se pueden considerar bloques de vídeo. Además, se puede considerar que un segmento es una pluralidad de bloques de vídeo, tales como macrobloques y/o subbloques. Cada segmento puede ser una unidad decodificable de manera independiente de una trama de vídeo. Alternativamente, las tramas en sí mismas pueden ser unidades decodificables, u otras porciones de una trama se pueden definir como unidades decodificables. El término "unidad codificada" o "unidad de codificación" se puede referir a cualquier unidad decodificable independientemente de una trama de vídeo, tal como una trama completa, un segmento de una trama, un grupo de imágenes (GOP) también denominado secuencia, u otra unidad decodificable de manera independiente definida de acuerdo con las técnicas de codificación aplicables.
El término macrobloque se refiere a una estructura de datos para codificar datos de imagen y/o de vídeo de acuerdo con una matriz de píxeles bidimensionales que comprende 16x16 píxeles. Cada píxel comprende una componente de crominancia y una componente de luminancia. En consecuencia, el macrobloque puede definir cuatro bloques de luminancia, comprendiendo cada uno una matriz bidimensional de 8x8 píxeles, dos bloques de crominancia, comprendiendo cada uno una matriz bidimensional de 16x16 píxeles y un encabezado que comprende la información de sintaxis, tal como un patrón de bloque codificado (CBP), un modo de codificación (por ejemplo, modos de intra-(I) o inter-(P o B) codificación), un tamaño de partición para las particiones de un bloque intracodificado (por ejemplo, 16x16, 16x8, 8x16, 8x8, 8x4, 4x8 o 4x4) o uno o más vectores de movimiento para un macrobloque intercodificado.
Cada uno del codificador de vídeo 28, el decodificador de vídeo 48, el codificador de audio 26, el decodificador de audio 46, la unidad de encapsulación 30 y la unidad de desencapsulación 38 se pueden implementar como cualquiera de una variedad de circuitos de procesamiento adecuados, según corresponda, tal como uno o más microprocesadores, procesadores de señal digital (DSP), circuitos integrados específicos de aplicaciones (ASIC), matrices de puertas programables en campo (FPGA), circuitos lógicos discretos, software, hardware, microprograma o cualquier combinación de los mismos. Cada uno del codificador de vídeo 28 y el decodificador de vídeo 48 se puede incluir en uno o más codificadores o decodificadores, cualquiera de los cuales se puede integrar como parte de un codificador/decodificador de vídeo (CODEC) combinado. Del mismo modo, cada uno del codificador de audio 26 y el decodificador de audio 46 se puede incluir en uno o más codificadores o decodificadores, cualquiera de los cuales se puede integrar como parte de un CODEC combinado. Un aparato que incluye el codificador de vídeo 28, el decodificador de vídeo 48, el codificador de audio 26, el decodificador de audio 46, la unidad de encapsulación 30 y/o la unidad de desencapsulación 38 puede comprender un circuito integrado, un microprocesador y/o un dispositivo de comunicación inalámbrica, tal como un teléfono celular.
Después de que la unidad de encapsulación 30 ha montado las unidades de NAL y/o las unidades de acceso en un archivo de vídeo en base a los datos recibidos, la unidad de encapsulación 30 pasa el archivo de vídeo a la interfaz de salida 32 para su salida. En algunos ejemplos, la unidad de encapsulación 30 puede almacenar el archivo de vídeo localmente o enviar el archivo de vídeo a un servidor remoto a través de la interfaz de salida 32, en lugar de enviar el archivo de vídeo directamente al dispositivo de destino 40. La interfaz de salida 32 puede comprender, por ejemplo, un transmisor, un transceptor, un dispositivo para escribir los datos en un medio legible por ordenador tal como, por ejemplo, una unidad óptica, una unidad de medios magnéticos (por ejemplo, una unidad de disquete), un puerto de bus serie universal (USB), una interfaz de red u otra interfaz de salida. La interfaz de salida 32 envía el archivo de vídeo a un medio legible por ordenador 34, tal como, por ejemplo, una señal de transmisión, un medio magnético, un medio óptico, una memoria, una unidad flash u otro medio legible por ordenador.
En algunos ejemplos, la interfaz de salida 32 puede implementar uno o más protocolos de transmisión en directo por red, tal como transmisión en directo sobre HTTP. La interfaz de salida 32, u otra unidad del dispositivo fuente 20, puede esperar una solicitud de transmisión en directo sobre HTTP, por ejemplo, una solicitud PRINCIPAL, desde el dispositivo de destino 40. En respuesta a la solicitud principal, la interfaz de salida 32 puede proporcionar la MPD para el contenido multimedia solicitado. El dispositivo de destino 40 puede determinar una representación para solicitar en base a los datos contenidos en la MPD, que puede incluir el número máximo de vistas para salida para cada representación y un rango de identificadores de vista para las vistas en la representación, donde los identificadores de vista se asignan de manera que describen las ubicaciones horizontales relativas de las perspectivas de cámara para las vistas de las representaciones. La MPD también puede proporcionar una indicación de cómo se asignan los identificadores de vista, por ejemplo, si un identificador de vista más grande corresponde a una vista que tiene una ubicación horizontal de la perspectiva de cámara que está a la izquierda o a la derecha de una ubicación horizontal de una perspectiva de cámara para una vista con una perspectiva de cámara más pequeña.
En última instancia, la interfaz de entrada 36 del dispositivo de destino 40 recupera los datos del medio legible por ordenador 34. La interfaz de entrada 36 puede comprender, por ejemplo, una unidad óptica, una unidad multimedia magnéticos, un puerto USB, un receptor, un transceptor u otra interfaz de medio legible por ordenador. La interfaz de entrada 36 puede proporcionar la unidad de NAL o la unidad de acceso a la unidad de desencapsulación 38. La unidad de desencapsulación 38 puede desencapsular un elemento de un archivo de vídeo en las transmisiones de PES constituyentes, desempaquetar las transmisiones de PES para recuperar los datos codificados y enviar los datos codificados al decodificador de audio 46 o al decodificador de vídeo 48, en función de si los datos codificados son parte de una transmisión de audio o de vídeo, por ejemplo, como se indica por los encabezados de paquete de PES de la transmisión. El decodificador de audio 46 decodifica los datos de audio codificados y envía los datos de audio decodificados a la salida de audio 42, mientras que el decodificador de vídeo 48 decodifica los datos de vídeo codificados y envía los datos de vídeo decodificados, los cuales pueden incluir una pluralidad de vistas de una transmisión, a la salida de vídeo 44.
De esta manera, el dispositivo fuente 20 representa un ejemplo de un aparato para señalizar la información para los datos de vídeo, el aparato comprende un procesador configurado para recibir, para el contenido multimedia, los datos de vídeo para dos o más vistas de una escena, determinar las ubicaciones horizontales de las perspectivas de cámara para cada una de las dos o más vistas, asignar identificadores de vista a las dos o más vistas de manera que los identificadores de vista correspondan a las ubicaciones horizontales relativas de las perspectivas de cámara, formar una representación del contenido multimedia, comprendiendo la representación un subconjunto de las dos o más vistas, y enviar la información, como parte de un manifiesto para la representación del contenido multimedia, indicativo de un identificador de vista máximo y un identificador de vista mínimo para la representación al dispositivo cliente.
Del mismo modo, el dispositivo de destino 40 representa un ejemplo de un aparato para recibir la información para los datos de vídeo, comprendiendo el aparato un procesador configurado para recibir la información indicativa de un identificador de vista máximo para una representación y un identificador de vista mínimo para la representación, en el que el identificador de vista máximo comprende un identificador de vista para una primera vista de una escena, en el que el identificador de vista mínimo comprende un identificador de vista para una segunda vista de la escena, y en el que la representación comprende los datos de vídeo para dos o más vistas, la primera vista y la segunda vista que incluyen, determinar una ubicación horizontal máxima de una perspectiva de cámara para las dos o más vistas de la representación y una ubicación horizontal mínima de una perspectiva de cámara para las dos o más vistas de la representación en base al identificador de vista máximo y al identificador de vista mínimo, en el que los identificadores de vista para las dos o más vistas se asignan de manera que los identificadores de vista correspondan a las ubicaciones horizontales relativas de las perspectivas de cámara para las dos o más vistas, y solicitar al menos una porción de los datos de vídeo de la representación en base, al menos en parte, a las ubicaciones horizontales máxima y mínima determinadas de las perspectivas de cámara para las dos o más vistas de la representación.
El dispositivo fuente 20 también representa un ejemplo de un aparato para señalizar la información para los datos de vídeo que incluye un procesador configurado para recibir, para el contenido multimedia, los datos de vídeo para dos o más vistas de una escena, formar una representación del contenido multimedia, comprendiendo la representación un subconjunto de las dos o más vistas, y enviar, a un dispositivo cliente, como parte de un manifiesto para la representación del contenido multimedia, la información indicativa de un número máximo de vistas en la representación que se pueden destinar para salida.
Además, el dispositivo de destino 40 representa un ejemplo de un aparato de destino para recibir la información para los datos de vídeo que incluye un procesador configurado para recibir la información indicativa de un número máximo de vistas en una representación que se pueden destinar para salida, en el que la representación comprende datos de vídeo para una o más vistas de una escena, determinar un número máximo de vistas que se pueden emitir por el aparato de destino, y solicitar al menos una porción de los datos de vídeo de la representación en base, al menos en parte, al número máximo determinado de vistas que pueden ser salida por el aparato de destino y la información indicativa del número máximo de vistas en la representación que se puede dirigir para la salida.
La Figura 2 es un diagrama de bloques que ilustra los componentes de una unidad de encapsulación 30 de ejemplo. En el ejemplo de la Figura 2, la unidad de encapsulación 30 incluye la interfaz de entrada de vídeo 80, la interfaz de entrada de audio 82, la unidad de creación de archivos de vídeo 60 y la interfaz de salida de archivos de vídeo 84. La unidad de creación de archivos de vídeo 60, en este ejemplo, incluye la unidad de determinación de ubicación de la vista 62, la unidad de asignación del identificador (ID) de la vista 64, la unidad de creación de representaciones 66 y la unidad de creación de puntos de operación 68.
La interfaz de entrada de vídeo 80 y la interfaz de entrada de audio 82 reciben los datos de vídeo y de audio codificados, respectivamente. La interfaz de entrada de vídeo 80 y la interfaz de entrada de audio 82 pueden recibir los datos de vídeo y de audio codificados a medida que se codifican los datos o pueden recuperar los datos de vídeo y de audio codificados de un medio legible por ordenador. Al recibir datos de audio y de vídeo codificados, la interfaz de entrada de vídeo 80 y la interfaz de entrada de audio 82 pasan los datos de audio y de vídeo codificados a la unidad de creación de archivos de vídeo 60 para montarlos en un archivo de vídeo.
La unidad de creación de archivos de vídeo 60 puede corresponder a una unidad de control que incluye hardware, software y/o microprograma configurado para realizar las funciones y procedimientos atribuidos a la misma. La unidad de control puede realizar además las funciones atribuidas generalmente a la unidad de encapsulación 30. Para ejemplos en los que la unidad de creación de archivos de vídeo 60 se incorpora en software y/o microprograma, la unidad de encapsulación 30 puede incluir un medio legible por ordenador que comprende las instrucciones para la unidad de creación de archivos de vídeo 60 y una unidad de procesamiento para ejecutar las instrucciones. Cada una de las subunidades de la unidad de creación de archivos de vídeo 60 (unidad de determinación de ubicación de la vista 62, unidad de asignación del ID de vista 64, unidad de creación de representaciones 66 y unidad de creación de puntos de operación 68, en este ejemplo) se puede implementar como unidades de hardware individuales y/o módulos de software y se puede integrar funcionalmente o separar adicionalmente en subunidades adicionales.
La unidad de creación de archivos de vídeo 60 puede corresponder a cualquier unidad de procesamiento o circuitos de procesamiento adecuados, tales como, por ejemplo, uno o más microprocesadores, circuitos integrados específicos de la aplicación (ASIC), matrices de puertas programables de campo (FPGA), procesadores de señales digitales (DSP) o cualquier combinación de los mismos. La unidad de creación de archivos de vídeo 60 puede incluir además un medio legible por ordenador no transitorio que almacene las instrucciones para cualquiera o todas las unidades de determinación de ubicación de la vista 62, la unidad de asignación del ID de vista 64, la unidad de creación de representaciones 66 y la unidad de creación de puntos de operación 68, así como también un procesador para ejecutar las instrucciones.
En general, la unidad de creación de archivos de vídeo 60 puede crear uno o más archivos de vídeo que incluyen los datos de audio y de vídeo recibidos. De acuerdo con las técnicas de esta divulgación, la unidad de creación de archivos de vídeo 60 puede asignar identificadores de vista a las vistas del contenido multimedia de manera que los identificadores de vista correspondan a las ubicaciones horizontales de las perspectivas de cámara para las vistas en las representaciones. En particular, los identificadores de vista corresponden a las ubicaciones de las cámaras que capturaron los datos de vídeo sin procesar para las vistas. De esta manera, los identificadores de vista corresponden a las ubicaciones horizontales de las perspectivas de cámara para las vistas correspondientes. En consecuencia, la diferencia entre los identificadores de vista para una primera vista y una segunda vista puede indicar la ubicación de la perspectiva de cámara de la segunda vista en relación con la ubicación de la perspectiva de cámara de la primera vista.
La interfaz de entrada de vídeo 80 puede recibir una o más vistas codificadas para el contenido multimedia. La unidad de determinación de ubicación de la vista 62 puede recibir información que indique las ubicaciones de las cámaras que capturaron una o más vistas del contenido multimedia. En algunos ejemplos, la unidad de determinación de ubicación de la vista 62 puede recibir la información que indica las ubicaciones a través de la interfaz de entrada de vídeo 80. En algunos ejemplos, la unidad de determinación de ubicación de la vista 62 puede recibir información lateral que incluye la información que indica las ubicaciones. Por ejemplo, la unidad de determinación de ubicación de la vista 62 puede recibir la información directamente desde la fuente de vídeo 24. Algunos estándares de vídeo, por ejemplo, la MVC, proporcionan valores de view_id en el conjunto de parámetros de secuencia y en el encabezado de la unidad de NAL. En tales ejemplos, el dispositivo de destino puede verificar la fuente de vídeo para generar la información del manifiesto de las ubicaciones de las vistas, el número máximo de vistas y los rangos de vistas para cada representación.
La unidad de asignación del ID de vista 64 asigna los identificadores de vista a las vistas en base a las ubicaciones de las perspectivas de cámara para las vistas según lo determinado por la unidad de determinación de ubicación de la vista 62. La unidad de asignación del ID de vista 64 asigna identificadores de vista a las vistas en función de las ubicaciones de las perspectivas de cámara para las vistas. La función puede ser estrictamente monótona creciente o estrictamente monótona decreciente. Por tanto, en algunos ejemplos, a medida que las ubicaciones de las perspectivas de cámara para las vistas avanzan horizontalmente de izquierda a derecha, los identificadores de vistas para las vistas pueden aumentar de acuerdo con una función monótona creciente. En otros ejemplos, a medida que las ubicaciones de las perspectivas de cámara para las vistas avanzan horizontalmente de izquierda a derecha, los identificadores de vista para las vistas pueden disminuir de acuerdo con una función monótona decreciente.
La unidad de creación de archivos de vídeo 60 puede construir una descripción de presentación multimedia (MPD) para el contenido multimedia que incluya dos o más vistas. En otros ejemplos, la unidad de creación de archivos de vídeo 60 puede crear un manifiesto que almacene los datos similares a los de la MPD para el contenido multimedia. La unidad de asignación del ID de vista 64 puede asignar identificadores de vista a cada una de las vistas del contenido multimedia de manera que los identificadores de vista correspondan a las ubicaciones horizontales de las perspectivas de cámara para las vistas. La unidad de creación de las representaciones 66 puede construir una o más representaciones para el contenido multimedia, cada una de las cuales puede incluir una o más de las vistas para el contenido multimedia. En algunos ejemplos, la unidad de asignación del ID de vista 64 puede incluir los datos en la MPD y/o las representaciones (por ejemplo, datos de encabezado para las representaciones) que indican un máximo y un mínimo de los identificadores de vista para las vistas incluidas en las representaciones. Además, la unidad de creación de representaciones 66 puede proporcionar información en la MPD que indica si los ID de vista más grandes corresponden a las vistas que tienen perspectivas de cámara a la derecha o a la izquierda de las perspectivas de cámara para las vistas que tienen los ID de vista más pequeñas.
En algunos ejemplos, la misma vista se puede codificar usando diversas características de codificación, tales como diferentes tasas de tramas, diferentes tasas de bits, diferentes esquemas de codificación u otras diferencias. La unidad de creación de las representaciones 66 puede asegurar que cada vista incluida en una representación común se codifique de acuerdo con las mismas características de codificación. De esta manera, la MPD y/o los datos de encabezado para la representación pueden señalar un conjunto de características (o atributos) para la representación que se aplica a todas las vistas en la representación. Además, la unidad de creación de representaciones 66 puede crear múltiples representaciones que incluyen las mismas vistas, aunque con características de codificación potencialmente diferentes.
En algunos ejemplos, la unidad de creación de las representaciones 66 puede encapsular cada vista de contenido multimedia en representaciones individuales. En tales ejemplos, para emitir más de una vista, el dispositivo de destino 40 puede solicitar dos o más representaciones del contenido multimedia. La unidad de asignación del ID de vista 64 asigna identificadores de vista virtual a las representaciones, de manera que los identificadores de vista virtual corresponden a las ubicaciones horizontales de las perspectivas de cámara para las vistas encapsuladas por las representaciones. De esta manera, para recuperar las vistas que tienen las perspectivas de cámara deseadas, el dispositivo de destino 40 solicita las representaciones identificadas por los identificadores de vista virtual correspondientes a las perspectivas de cámara deseadas.
Como ejemplo, el dispositivo de destino 40 puede calcular la diferencia entre los identificadores de vista para determinar un desplazamiento relativo entre las ubicaciones horizontales de las perspectivas de cámara para las vistas. Por tanto, en algunos ejemplos, el dispositivo de destino 40 puede solicitar dos vistas que tengan una mayor diferencia entre sus identificadores de vista para aumentar la cantidad de profundidad relativa visualizada. De manera similar, el dispositivo de destino 40 puede solicitar dos vistas que tengan una diferencia menor entre sus identificadores de vista para disminuir la cantidad de profundidad visualizada. El dispositivo de destino 40 se puede configurar con una cantidad predeterminada de profundidad para visualizar y, en algunos ejemplos, puede recibir retroalimentación de un usuario durante la reproducción indicativa del deseo del usuario de aumentar o disminuir la cantidad de profundidad mostrada.
Por ejemplo, cuando el dispositivo de destino 40 incluye o se acopla a una pantalla relativamente grande, tal como la televisión de un usuario, la cantidad predeterminada de profundidad puede ser relativamente grande, mientras que cuando el dispositivo de destino incluye o se acopla a una pantalla relativamente pequeña, tal como un dispositivo móvil, la profundidad predeterminada puede ser relativamente pequeña. Durante la reproducción, un usuario puede proporcionar información al dispositivo de destino 40 para aumentar o disminuir la cantidad de profundidad que se visualiza. El dispositivo de destino 40 puede usar los identificadores de vista señalados por la unidad de asignación del ID de vista 64 para seleccionar diferentes vistas, por ejemplo, desde el mismo punto de operación, la misma representación, o incluso desde una representación diferente del mismo contenido multimedia, para adaptarse a la solicitud del usuario.
La unidad de creación de puntos de operación 68 puede crear puntos de operación para una o más representaciones del contenido multimedia. En general, un punto de operación corresponde a un subconjunto de vistas en una representación que se destinan para salida, donde cada una de las vistas comparte un nivel temporal común. Según lo definido por la memoria descriptiva H.264/AVC:
Un punto de operación se identifica por un valor de temporaljd que representa el nivel temporal objetivo y un conjunto de valores de view_id que representan las vistas de salida objetivo. Un punto de operación se asocia con un subconjunto del flujo de bits, que consiste en el vistas de salida objetivo y todas las otras vistas de las que dependen las vistas de salida objetivo, que se derivan usando el procedimiento de extracción del subflujo de bits como se especifica en la subcláusula H.8.5.3 con tIdTarget igual al valor de temporaljd y viewIdTargetList que consta del conjunto de valores de view_id como entradas. Más de un punto de operación se puede asociar con el mismo subconjunto del flujo de bits. Cuando la memoria descriptiva establece "un punto de operación se decodifica "se refiere a la decodificación de un subconjunto del flujo de bits correspondiente al punto de operación y posterior salida de las vistas de salida objetivo.
De acuerdo con las técnicas de esta divulgación, más de una de las representaciones creadas por la unidad de creación de las representaciones 66 puede corresponder a una representación de MVC. De esta manera, las técnicas de esta divulgación pueden soportar la adaptación en base a la tasa de bits y otras características de una representación. Por ejemplo, durante la reproducción, el dispositivo de destino 40 puede determinar que ha cambiado una cantidad de ancho de banda de red que estaba disponible en un momento anterior de reproducción y, por lo tanto, solicitar datos de una representación de MVC diferente en base a la nueva cantidad de ancho de banda. El dispositivo de destino 40 puede haber seleccionado la representación de MVC anterior en base a número de vistas para salida.
La unidad de creación de puntos de operación 68 puede designar uno o más puntos de operación para cada representación de MVC del contenido multimedia. Además, la unidad de creación de puntos de operación 68 puede señalar varias vistas para salida para cada punto de operación de una representación de MVC, por ejemplo, en un encabezado de la representación o en la MPD. Alternativamente, la unidad de creación de puntos de operación 68 puede señalar el número máximo de vistas para salida para la representación de MVC como puntos de operación de la representación. En lugar de señalar sólo un valor para el número de vistas de salida objetivo para una representación, un dispositivo de acuerdo con las técnicas de esta divulgación puede señalar vistas de salida objetivo para cada punto de operación de la representación.
La unidad de creación de archivos de vídeo 60 puede pasar los archivos de vídeo creados a la interfaz de salida de archivos de vídeo 84. En algunos ejemplos, un único archivo de vídeo puede incluir una o más representaciones y datos de señalización para las representaciones, por ejemplo, una estructura de datos de la MPD. En otros ejemplos, la estructura de datos de la MPD se puede separar de las representaciones descritas por la MPD en uno o más archivos, y los datos para cada una de las representaciones se pueden almacenar en uno o más archivos. La interfaz de salida de archivos de vídeo 84 puede pasar los archivos de vídeo creados a un medio legible por ordenador, tal como un medio de transmisión o un medio de almacenamiento.
La Figura 3 es un diagrama conceptual que ilustra una serie de cámaras 92A-92H (cámaras 92) que capturan datos de imagen para las vistas de la escena 90 desde diversas ubicaciones. En general, cada una de las cámaras 92 puede capturar imágenes en momentos sustancialmente similares. Las cámaras 92 pueden apuntar a un punto focal común de la escena 90. Las cámaras 92 se colocan a lo largo del eje 94 en diversas ubicaciones horizontales 96A-96H (ubicaciones 96). En consecuencia, las vistas capturadas por las cámaras 92 tienen perspectivas ligeramente diferentes de la escena 90.
De acuerdo con las técnicas de esta divulgación, el dispositivo fuente 20 (Figura 1) asigna los identificadores de vista a las vistas capturadas por las cámaras 92 en base a las ubicaciones 96 de las cámaras 92. En algunos ejemplos, los identificadores de vista asignados a las vistas capturadas por las cámaras 92 pueden aumentar de acuerdo con una función monótona creciente de las ubicaciones 96 de las cámaras 92. Por tanto, el identificador de vista asignado a la vista capturada por la cámara 92A puede ser el identificador de vista de menor valor, el identificador de vista asignado a la vista capturada por la cámara 92H puede ser el identificador de vista de mayor valor y los identificadores de vista asignados a las vistas capturadas por las cámaras 92 restantes pueden proceder de acuerdo con las ubicaciones 96 de las cámaras 92. Por ejemplo, el identificador de vista asignado a la vista capturada por la cámara 92E puede ser mayor que los identificadores de vista para las vistas capturadas por las cámaras 92A-92D, pero menor que los identificadores de vista para las vistas capturadas por las cámaras 92F-92H.
En algunos ejemplos, los identificadores de vista asignados a las vistas capturadas por las cámaras 92 pueden disminuir de acuerdo con una función monótona decreciente de las ubicaciones 96 de las cámaras 92. Por tanto, el identificador de vista asignado a la vista capturada por la cámara 92A puede ser el identificador de vista de mayor valor, el identificador de vista asignado a la vista capturada por la cámara 92H puede ser el identificador de vista de menor valor y los identificadores de vista asignados a las vistas capturadas por las cámaras 92 restantes pueden proceder de acuerdo con las ubicaciones 96 de las cámaras 92. Por ejemplo, el identificador de vista asignado a la vista capturada por la cámara 92E puede ser menor que los identificadores de vista para las vistas capturadas por las cámaras 92A-92D, pero mayor que los identificadores de vista para las vistas capturadas por las cámaras 92f-92H.
De esta manera, una diferencia entre los identificadores de vista para las vistas capturadas por las cámaras 92 puede corresponder aproximadamente a la diferencia en las ubicaciones 96 para las cámaras 92. Por ejemplo, la diferencia entre el identificador de vista para la vista capturada por la cámara 92E y el identificador de vista para la vista capturada por la cámara 92A puede representar aproximadamente la distancia entre la ubicación 96e y la ubicación 96A. Por tanto, si los identificadores de vista se asignan de acuerdo con una función monótona creciente de las ubicaciones 96, el dispositivo de destino 40 puede determinar que la ubicación de la perspectiva de cámara para la vista capturada por la cámara 92E está horizontalmente a la derecha de la ubicación de la perspectiva de cámara para las vistas capturadas por las cámaras 92A-92D cuando el identificador de vista para la vista capturada por la cámara 92E es mayor que los identificadores de vista para las vistas capturadas por las cámaras 92A-92D.
De manera similar, si los identificadores de vista se asignan de acuerdo con una función monótona decreciente de las ubicaciones 96, el dispositivo de destino 40 puede determinar que la ubicación de la perspectiva de cámara para la vista capturada por la cámara 92E está horizontalmente a la derecha de la ubicación de la perspectiva de cámara para las vistas capturadas por las cámaras 92A-92D cuando el identificador de vista para la vista capturada por la cámara 92E es menor que los identificadores de vista para las vistas capturadas por las cámaras 92A-92D.
La Figura 4 es un diagrama conceptual de una descripción de presentación multimedia (MPD) 112 que proporciona los atributos para diversas representaciones 120, 130 del contenido multimedia 110. En este ejemplo, la m Pd 112 y las representaciones 120-130 corresponden al mismo contenido multimedia, es decir, contenido multimedia 110 en este ejemplo. La MPD 112 incluye los datos de señalización 140A que describen los atributos de la representación 120 y los datos de señalización 140N que describen los atributos de la representación 130. Los datos de señalización 140A incluyen el rango del identificador de vista (ID) 114A y el valor máximo de vistas de salida objetivo 118A. Los datos de señalización 140N incluyen el rango del ID de vista 114N y el valor máximo de vistas de salida objetivo 118N. La MPD 112 también incluye la información de orden de visualización 116 que describe el orden de las ubicaciones horizontales de las perspectivas de cámara para las vistas del contenido multimedia 110. La descripción a continuación se centra en los datos de señalización 140A, pero se debe entender que los datos de señalización 140N se ajustan sustancialmente a los datos de señalización 140A, pero con respecto a la representación 130 en lugar de la representación 120, en este ejemplo. La MPD 112 representa un ejemplo de un manifiesto de las representaciones 120-130. En otros ejemplos, otros manifiestos pueden almacenar datos similares a los de la MPD 112.
El rango del ID de vista 114A incluye un máximo y un mínimo de los identificadores de vista para las vistas incluidas en la representación 120. Además, de acuerdo con las técnicas de esta divulgación, los identificadores de vista para las vistas de la representación 120 corresponden a las ubicaciones horizontales de las perspectivas de cámara para las vistas correspondientes. Por tanto, la diferencia entre los identificadores de vista máximo y mínimo del rango del ID de vista 114a representa la cantidad relativa de profundidad proporcionada por las vistas incluidas en la representación 120.
La información de orden de visualización 116 proporciona una indicación del orden de las ubicaciones horizontales de las perspectivas de cámara para las vistas del contenido multimedia 110. Por ejemplo, la información de orden de vista 116 puede proporcionar una indicación de si el aumento de los identificadores de vista para las vistas del contenido multimedia 110 indica que las ubicaciones horizontales de las perspectivas de cámara para las vistas se desplazan de izquierda a derecha o de derecha a izquierda. De esta manera, la información de orden de vista 116 puede proporcionar una indicación de cómo se asignan los identificadores de vista, por ejemplo, si un identificador de vista más grande corresponde a una vista que tiene una ubicación horizontal de una perspectiva de cámara que está a la izquierda o a la derecha de una ubicación horizontal de la perspectiva de una cámara para una vista con una perspectiva de cámara más pequeña. Debido a que los identificadores de vista se asignan a las vistas del contenido multimedia 110 generalmente, la MPD 112 sólo necesita proporcionar una única indicación de cómo se ordenan las ubicaciones horizontales de las perspectivas de cámara para las vistas en relación con los identificadores de vista para las vistas. Sin embargo, en algunos ejemplos, la información de orden de visualización 116 se puede proporcionaren cada conjunto de información de señalización 140.
El objetivo máximo para el valor de salida 118A describe un número máximo de vistas de salida objetivo para la representación 120. En general, el objetivo máximo para el valor de salida 118A describe el mayor número de vistas que se pueden destinar para salida desde cualquiera de los puntos de operación de representación 120. En algunos ejemplos, cuando sólo se incluye una vista dentro de una representación, el objetivo máximo para el valor de salida 118A puede tener un valor de 1. En este caso, el rango del ID de vista 114A puede incluir sólo un valor de identificador de vista.
La representación 120 incluye los datos de encabezado 122 y los fragmentos de película 124A-124N (fragmentos de película 124). El uso de la letra 'N' en los fragmentos de película 124N, 134N y en los datos de señalización 140N se debe entender simplemente como una variable, y no pretende implicar que existe un número igual de fragmentos de película 124 y de fragmentos de película 134 o que no existe un número igual de fragmentos de película 124 y de conjuntos de datos de señalización 140. Por el contrario, puede haber diferentes números de fragmentos de película 124, de fragmentos de película 134 y de conjuntos de datos de señalización 140.
Los datos de encabezado 122 no siempre se incluyen en las representaciones y, por lo tanto, se ilustran como opcionales con un contorno de puntos. Cuando están presentes, los datos de encabezado 122 pueden incluir datos descriptivos para la representación 120. Por ejemplo, los datos de encabezado 122 pueden incluir datos del conjunto de parámetros de secuencia (SPS) para los fragmentos de película 124 y/o datos del conjunto de parámetros de imagen (PPS) para los fragmentos de película 124. Los datos de encabezado 132 se pueden ajustar sustancialmente a los datos de encabezado 122, con respecto a la representación 130.
Cada uno de los fragmentos de película 124 puede incluir una o más muestras de vídeo codificadas, por ejemplo, unidades de capa de abstracción de red (NAL). Cada uno de los fragmentos de película 124 se puede recuperar de manera independiente y, en algunos ejemplos, ser unidades de datos de vídeo decodificables de manera independiente. De esta manera, los fragmentos de película 124 se pueden recuperar secuencialmente usando, por ejemplo, un protocolo de transmisión en directo por red, tal como transmisión en directo sobre HTTP. Por ejemplo, el dispositivo de destino 40 puede presentar una solicitud GET HTTP dirigida a una URL asociada con uno de los fragmentos de película 124. En algunos ejemplos, el dispositivo de destino 40 puede recuperar una porción de uno de los fragmentos de película 124 enviando una solicitud GET HTTP parcial a la URL, de manera que la solicitud especifica un rango de bytes deseado del fragmento de película. El dispositivo de origen 20 puede responder enviando el rango de bytes solicitado al dispositivo de destino 40.
En algunos ejemplos, cada uno de los fragmentos de película 124 puede incluir un punto de acceso aleatorio. En algunos ejemplos, la MPD 112 y/o los datos de encabezado 122 pueden indicar cuál de los fragmentos de película 124 incluye un punto de acceso aleatorio y si el punto de acceso aleatorio es un punto de acceso aleatorio de actualización de decodificador abierta (ODR) o un punto de acceso aleatorio de actualización de decodificador instantánea (IDR). Los fragmentos de película 134 se pueden ajustar sustancialmente a los fragmentos de película 124, en el sentido de que los fragmentos de película 134 pueden ser unidades de datos recuperables de manera independiente.
La Figura 5 es un diagrama conceptual que ilustra un patrón de predicción de MVC de ejemplo. En el ejemplo de la Figura 5, se ilustran ocho vistas (que tienen ID de vista "S0" a "S7"), y se ilustran doce ubicaciones temporales ("T0" a "T11") para cada vista. Es decir, cada fila de la Figura 5 corresponde a una vista, mientras que cada columna indica una ubicación temporal.
Aunque la MVC tiene una llamada vista base que es decodificable por los decodificadores de1H.264/AVC y el par de vista estéreo también podría ser compatible con la MVC, la ventaja de la MVC es que podría soportar un ejemplo que usa más de dos vistas como entradas de vídeo 3D y decodificar este vídeo 3D representado por las múltiples vistas. Un renderizador de un cliente que tiene un decodificador de MVC puede esperar el contenido de vídeo 3D con múltiples vistas.
Las tramas de la Figura 5 se indican en la intersección de cada fila y cada columna en la Figura 5 usando un bloque sombreado que incluye una letra, indicando si la trama correspondiente se intra-codifica (es decir, una trama-I) o se inter-codifica en una dirección (es decir, como una trama-P) o en múltiples direcciones (es decir, como una trama-B). En general, las predicciones se indican mediante flechas, donde la trama a la que apunta usa el objeto desde el que apunta como referencia de predicción. Por ejemplo, la trama-P de la vista S2 en la ubicación temporal T0 se predice a partir de la trama-I de la vista S0 en la ubicación temporal T0.
Al igual que con la codificación de vídeo de vista única, las tramas de una secuencia de vídeo de codificación de vídeo multivista se pueden codificar de manera predictiva con respecto a las tramas en diferentes ubicaciones temporales. Por ejemplo, la trama-B de la vista S0 en la ubicación temporal T1 tiene una flecha apuntándole desde la trama-I de la vista S0 en la ubicación temporal T0, indicando que la trama-B se predice a partir de la trama-I. Sin embargo, además, en el contexto de la codificación de vídeo multivista, las tramas se pueden predecir inter-vista. Es decir, una componente de vista puede usar las componentes de vista en otras vistas para referencia. En la MVC, por ejemplo, la predicción inter-vista se realiza como si la componente de vista en otra vista fuera una referencia de inter-predicción. Las referencias potenciales de inter-vista se señalan en la extensión de la MVC del Conjunto de Parámetros de Secuencia (SPS) y se pueden modificar mediante el procedimiento de construcción de la lista de imágenes de referencia, que permite el ordenamiento flexible de las referencias de inter-predicción o predicción inter-vista.
La Figura 5 proporciona varios ejemplos de predicción inter-vista. Las tramas de la vista S1 en el ejemplo de la Figura 5, se ilustran como que se predicen a partir de tramas en diferentes ubicaciones temporales de la vista S1, así como también se predicen inter-vista a partir de las tramas de las vistas S0 y S2 en las mismas ubicaciones temporales. Por ejemplo, la trama-b de la vista S1 en la ubicación temporal T1 se predice a partir de cada una de las tramas-B de la vista S1 en las ubicaciones temporales T0 y T2, así como la trama-b de las vistas S0 y S2 en la ubicación temporal T1.
En el ejemplo de la Figura 5, la "B" mayúscula y la "b" minúscula se destinan a indicar diferentes relaciones jerárquicas entre las tramas, en lugar de diferentes metodologías de codificación. En general, las tramas con "B" mayúscula son relativamente más altas en la jerarquía de predicción que las tramas con "b" minúscula. La Figura 5 también ilustra variaciones en la jerarquía de predicción usando diferentes niveles de sombreado, donde una mayor cantidad de tramas sombreadas (es decir, relativamente más oscuras) están más altas en la jerarquía de predicción que aquellas tramas que tienen menos sombreado (es decir, relativamente más claros). Por ejemplo, todas las tramas-I de la Figura 5 se ilustran con sombreado completo, mientras que las tramas-P tienen un sombreado algo más claro y las tramas-B (y las tramas-b minúsculas) tienen varios niveles de sombreado entre sí, pero siempre más claros que el sombreado de las tramas-P y las tramas-I.
En general, la jerarquía de predicción se relaciona con los índices de orden de vista, en el sentido de que las tramas relativamente más altas en la jerarquía de predicción se deben decodificar antes de decodificar las tramas que son relativamente más bajas en la jerarquía, de manera que aquellas tramas relativamente más altas en la jerarquía se puedan usar como tramas de referencia durante la decodificación de las tramas relativamente más bajas en la jerarquía. Un índice de orden de vista es un índice que indica el orden de decodificación de las componentes de vista en una unidad de acceso. Los índices de orden de visualización están implícitos en la extensión MVC del SPS, como se especifica en el Anexo H de H.264/AVC (la enmienda de MVC). En el SPS, para cada índice i, se señala el correspondiente view_id. La decodificación de las componentes de la vista seguirá el orden ascendente del índice de orden de vista. Si se presentan todas las vistas, entonces los índices de orden de vista están en un orden consecutivo de 0 a num_views_minus_1.
De esta manera, las tramas utilizadas como tramas de referencia se pueden decodificar antes de decodificar las tramas que se codifican con referencia a las tramas de referencia. Un índice de orden de vista es un índice que indica el orden de decodificación de las componentes de vista en una unidad de acceso. Para cada índice de orden de vista i, se señala el correspondiente view_id. La decodificación de las componentes de vista sigue el orden ascendente de los índices de orden de vista. Si se presentan todas las vistas, entonces el conjunto de índices de orden de vista puede comprender un conjunto ordenado consecutivamente de cero a uno menos que el número total de vistas.
Para ciertas tramas en niveles iguales de la jerarquía, el orden de decodificación puede no importar entre sí. Por ejemplo, la trama-I de la vista S0 en la ubicación temporal T0 se usa como trama de referencia para la trama-P de la vista S2 en la ubicación temporal T0, que a su vez se usa como un trama de referencia para la trama-P de la vista S4 en la ubicación temporal T0. En consecuencia, la trama-I de la vista S0 en la ubicación temporal T0 se debe decodificar antes que la trama-P de vista S2 en la ubicación temporal T0, que se debería decodificar antes que la trama-P de la vista S4 en la ubicación temporal T0. Sin embargo, entre las vistas S1 y S3, el orden de decodificación no importa, porque las vistas S1 y S3 no se basan entre sí para la predicción, sino que se predicen sólo a partir de vistas que están más arriba en la jerarquía de predicción. Además, la vista S1 se puede decodificar antes que la vista S4, siempre que la vista S1 se decodifique después de las vistas S0 y S2.
De esta manera, se puede usar un orden jerárquico para describir las vistas S0 a S7. Dejemos que la notación SA > SB signifique que la vista SA se debe codificar antes que la vista SB. Usando esta notación, S0 > S2 > S4 > S6 > S7, en el ejemplo de la Figura 5. Además, con respecto al ejemplo de la Figura 5, S0 > S1, S2 > S1, S2 > S3, S4 > S3, S4 > S5 y S6 > S5. Cualquier orden de decodificación para las vistas que no infrinja estos requisitos es posible. En consecuencia, son posibles muchos órdenes de decodificación diferentes, con sólo ciertas limitaciones.
De acuerdo con las técnicas de esta divulgación, los identificadores de vista para las vistas S0-S7 se pueden asignar de manera que los identificadores de vista correspondan generalmente a las ubicaciones de las perspectivas de cámara para las vistas. Por ejemplo, con respecto al ejemplo de la Figura 3, la cámara 92A puede haber capturado los datos para la vista S0, la cámara 92B puede haber capturado los datos para la vista S1 y así sucesivamente. En consecuencia, los identificadores de vista para las vistas S0-S7 pueden aumentar de acuerdo con una función monótona creciente de las ubicaciones 96, o pueden disminuir de acuerdo con una función monótona decreciente de las ubicaciones 96. De acuerdo con las técnicas de esta divulgación, la MPD señala un identificador de vista máximo y mínimo para cada representación. Por tanto, si una representación incluye cada una de las vistas S0-S7, la MPD puede señalar el identificador de vista máximo como el identificador de vista para la vista S7 y el identificador de vista mínimo como el identificador de vista para la vista S0.
Un punto de operación, como se indicó, generalmente puede corresponder a un subconjunto de vistas disponibles. Si cada una de las vistas S0-S7 se incluye en una representación, un punto de operación puede corresponder a cualquier subconjunto de las vistas S0-S7. Normalmente, un punto de operación incluye un conjunto de vistas destinadas para salida, así como también vistas intermedias necesarias para la decodificación. Por tanto, si las vistas S0 y S1 se incluyen en un punto de operación y se destinan para salida, el punto de operación también puede incluir la vista S2, de manera que la vista S1 se puede decodificar correctamente (en relación con las tramas de la vista S2). Por tanto, aunque un punto de operación puede incluir un número particular de vistas, el número de vistas de salida objetivo puede diferir del número de vistas realmente incluidas para el punto de operación.
La Figura 6 es un diagrama de flujo que ilustra un procedimiento de señalizar la información para los datos de vídeo por un dispositivo fuente y recibir la información por un dispositivo de destino. Aunque se describe con respecto al dispositivo de origen 20 y al dispositivo de destino 40 de la Figura 1, se debe entender que algunos o todos los elementos de la Figura 6 se pueden realizar mediante dispositivos adicionales o alternativos. Por ejemplo, los dispositivos separados pueden asignar identificadores de vista a las vistas, formar representaciones que incluyen diversas selecciones de las vistas y/o proporcionar la información a los dispositivos de destino de acuerdo con un protocolo de transmisión en directo por red. Además, se pueden realizar etapas adicionales y ciertas etapas se pueden realizar en un orden diferentes, sin apartarse de las técnicas de esta divulgación.
En la Figura 6, el dispositivo fuente 20 recibe primero las muestras de vídeo codificadas de las múltiples vistas de una escena (150). Por ejemplo, el dispositivo fuente 20 puede recibir los datos de vídeo capturados por una serie de cámaras que apunta a una escena común, tal como la serie de cámaras 92 ilustrada en la Figura 3. Como otro ejemplo, el dispositivo fuente 20 puede recuperar los datos de vídeo para dos o más vistas de una escena desde un medio legible por ordenador. Como otro ejemplo más, el dispositivo fuente 20 puede generar, o recibir desde otro dispositivo que generó, los datos de vídeo para dos o más vistas de una escena.
En cualquier caso, el dispositivo fuente 20 determina entonces las ubicaciones de las perspectivas de cámara para cada una de las vistas (152). Por ejemplo, el dispositivo fuente 20 puede recibir esta información de ubicación de las cámaras que capturaron las vistas, de un operador humano, de un dispositivo informático separado o de otras fuentes que determinan las ubicaciones relativas de las cámaras que capturaron los datos de vídeo para las vistas. El dispositivo fuente 20 asigna entonces identificadores de vista a las vistas en base a las ubicaciones de las cámaras que capturaron los datos de vídeo para las vistas (154). Es decir, el dispositivo fuente 20 asigna identificadores de vista a las vistas de manera que los identificadores de vista corresponden a las ubicaciones de las cámaras que capturaron los datos de vídeo para las vistas. El dispositivo fuente 20 asigna los identificadores de vista a las vistas como una función, por ejemplo, una función monótona creciente o monótona decreciente, de las ubicaciones horizontales de las cámaras que capturaron los datos de vídeo para las vistas. De esta manera, para cualesquiera dos de las vistas, la diferencia entre un primer identificador para una primera vista capturada por una primera cámara y un segundo identificador para una segunda vista capturada por una segunda cámara indica la ubicación de la segunda perspectiva de cámara para la segunda vista relativa a la ubicación de la primera perspectiva de cámara para la primera vista.
El dispositivo fuente 20 forma entonces las representaciones que incluyen diversos conjuntos de las vistas (156). Cada una de las representaciones puede incluir una o más de las vistas. En algunos ejemplos, una vista se puede codificar múltiples veces en una variedad de maneras diferentes, por lo que el dispositivo fuente 20 puede incluir diversas versiones codificadas de cualquiera o de todas las vistas en diferentes representaciones. El dispositivo fuente 20 genera una estructura de datos que describe un rango del identificador de vista para las vistas que se incluyen en cada una de las representaciones, tal como una estructura de datos de descriptor de la presentación multimedia (MPD), que se puede parecer a la MPD 112 (Figura 4). La estructura de datos, por ejemplo, la estructura de datos de la MPD incluye una indicación de un máximo y un mínimo de los identificadores de vista para cada una de las representaciones. La MPD proporciona una indicación de un orden relativo de las ubicaciones horizontales de las perspectivas de cámara para las vistas del contenido multimedia en relación con el valor de los identificadores de vistas para las vistas. De esta manera, la MPD proporciona una indicación de cómo se asignan los identificadores de vista, por ejemplo, si un identificador de vista más grande corresponde a una vista que tiene una ubicación horizontal de una perspectiva de cámara que está a la izquierda o a la derecha de una ubicación horizontal de una perspectiva de cámara para una vista con una perspectiva de cámara más pequeña. La MPD también puede proporcionar una indicación de una serie de vistas destinadas para salida para cada una de las representaciones.
El dispositivo de destino 40 solicita los datos de representación que describen una o más de las representaciones (158). Por ejemplo, el dispositivo de destino 40 puede enviar una solicitud HEAD de transmisión en directo sobre HTTP a una URL asociada con el contenido multimedia que incluye las representaciones. En respuesta a la solicitud, el dispositivo de origen 20 envía los rangos de los identificadores de vista para las vistas incluidas en las representaciones al dispositivo de destino 40 (160). El dispositivo fuente 20 también puede enviar la información que indica el número de vistas objetivo para salida de cada una de las representaciones. Por ejemplo, el dispositivo fuente 20 puede enviar datos de encabezado (como los datos de encabezado 122, 132 de la figura 4) al dispositivo de destino 40. Como otro ejemplo, el dispositivo fuente 20 puede enviar una MPD (tal como la MPD 112 de la figura 4) al dispositivo de destino 40. Aunque se describe principalmente con respecto a la señalización de los rangos de los identificadores de vista, se debe entender que, además o como alternativa, el dispositivo fuente 20 puede señalar un valor para un número máximo de vistas que se pueden destinar para salida de la representación, en otros ejemplos.
Usando los datos recibidos del dispositivo fuente 20, que incluye los rangos de los identificadores de vista para cada una de las representaciones (por ejemplo, un identificador de vista máximo y un identificador de vista mínimo para cada una de las representaciones), el dispositivo de destino 40 determina la profundidad relativa para cada una de las representaciones de los rangos de los identificadores de vista (162). El dispositivo de destino 40 selecciona entonces una representación en base a la información de profundidad relativa (164). En particular, el dispositivo de destino 40 selecciona una de las representaciones que incluye una cantidad de profundidad que corresponde a una cantidad de profundidad deseada para ser visualizada por un dispositivo de visualización del dispositivo de destino 40. El dispositivo de destino 40 envía entonces una solicitud de los datos de vídeo de la representación seleccionada (166). Por ejemplo, el dispositivo de destino 40 puede enviar una o más solicitudes GET o GET parcial de HTTP al dispositivo fuente 20, donde las solicitudes se construyen para recuperar los datos de la representación seleccionada.
La selección de una representación hecha por el dispositivo de destino 40 también puede tener en cuenta otros factores. Por ejemplo, el dispositivo de destino 40 puede seleccionar una representación en base a los requisitos de decodificación y/o renderización de la representación, de manera que el dispositivo de destino 40 pueda decodificar y renderizar correctamente la representación seleccionada. El dispositivo de destino 40 también puede tener en cuenta una cantidad determinada del ancho de banda de red disponible al seleccionar la representación. Los datos de encabezado o de la MPD pueden describir los requisitos de decodificación y renderización de las representaciones, así como también las tasas de bits para las representaciones, además de la información de los puntos de operación y de los identificadores de vista. Por lo tanto, el dispositivo de destino 40 también puede usar esta información adicional al seleccionar una de las representaciones para solicitar al dispositivo fuente 20. Si la cantidad de ancho de banda de red disponible cambia durante la reproducción, el dispositivo de destino 40 puede cambiar de manera adaptativa a una representación diferente, en base a la cantidad de ancho de banda de red recién determinada.
En cualquier caso, en respuesta a una solicitud de datos de una representación, el dispositivo fuente 20 envía los datos de vídeo solicitados al dispositivo de destino 40 (168). A continuación, el dispositivo de destino 40 decodifica y muestra los datos de vídeo recibidos (170). El dispositivo de destino 40 puede continuar solicitando datos secuenciales de la representación seleccionada hasta que el dispositivo de destino 40 haya decodificado y mostrado todos los datos para la representación o hasta el final de la reproducción. En algunos ejemplos, la reproducción se puede terminar prematuramente, por ejemplo, cuando un usuario decide no ver una porción restante de un vídeo.
De esta manera, la Figura 6 representa un procedimiento de señalización de la información para los datos de vídeo, que incluye recepcionar, para el contenido multimedia, los datos de vídeo para dos o más vistas de una escena, determinar las ubicaciones horizontales de las perspectivas de cámara para cada una de las dos o más vistas, asignar identificadores de vista a las dos o más vistas de manera que los identificadores de vista correspondan a las ubicaciones horizontales relativas de las perspectivas de cámara, formar una representación del contenido multimedia, comprendiendo la representación un subconjunto de las dos o más vistas y, en respuesta a una solicitud de un dispositivo cliente, enviar la información, como parte de un manifiesto de la representación del contenido multimedia, indicativa de un identificador de vista máximo y un identificador de vista mínimo para la representación al dispositivo cliente.
La Figura 6 también representa un procedimiento para recibir la información para los datos de vídeo, que incluye recibir la información indicativa de un identificador de vista máximo para una representación y un identificador de vista mínimo para la representación, en el que el identificador de vista máximo comprende un identificador de vista para una primera vista de una escena, en el que el identificador de vista mínima comprende un identificador de vista para una segunda vista de la escena y en el que la representación comprende los datos de vídeo para dos o más vistas, la primera vista y la segunda vista que incluyen, determinar una ubicación horizontal máxima de una perspectiva de cámara para las dos o más vistas de la representación y una ubicación horizontal mínima de una perspectiva de cámara para las dos o más vistas de la representación en base al identificador de vista máximo y al identificador de vista mínimo, en el que los identificadores de vista para las dos o más vistas se asignan de manera que los identificadores de vista correspondan a las ubicaciones horizontales relativas de las perspectivas de cámara para los dos o m más vistas, y solicitar al menos una porción de los datos de vídeo de la representación en base, al menos en parte, a las ubicaciones horizontales máxima y mínima determinadas de las perspectivas de cámara para las dos o más vistas de la representación.
La Figura 7 es un diagrama de flujo que ilustra un procedimiento de ejemplo para asignar los identificadores de vista a las vistas del contenido multimedia y presentar un número máximo de vistas de salida objetivo de una representación como puntos de operación. Aunque se describe con respecto al dispositivo fuente 20 de la Figura 1, se debe entender que algunos o todos los elementos de la Figura 7 se pueden realizar mediante dispositivos adicionales o alternativos. Por ejemplo, los dispositivos separados pueden asignar los identificadores de vista a las vistas, formar las representaciones que incluyen las vistas y/o proporcionar información a los dispositivos de destino de acuerdo con un protocolo de transmisión en directo por red. Además, se pueden realizar etapas adicionales y ciertas etapas se pueden realizar en un orden diferente, sin apartarse de las técnicas de esta divulgación.
Inicialmente, el codificador de vídeo 28 (Figura 1) puede recibir los datos de vídeo sin procesar para dos o más vistas de una escena (200). El codificador de vídeo 28 puede codificar vistas separadas de los datos de vídeo como flujos de vídeo elementales independientes (202). En algunos ejemplos, el codificador de vídeo 28 puede codificar una o más vistas múltiples veces, por ejemplo, con diferentes características de codificación, tales como diferentes tasas de trama, tasas de bits, resoluciones u otras características diferentes.
El codificador de vídeo 28 puede pasar las vistas codificadas a la unidad de encapsulación 30. La unidad de encapsulación 30 también puede recibir información que describe las ubicaciones horizontales de las cámaras que capturaron las vistas recibidas del codificador de vídeo 28. La unidad de encapsulación 30 puede determinar las ubicaciones horizontales de las perspectivas de cámara para las vistas en base a la información recibida (204). La unidad de encapsulación 30 asigna además identificadores de vista a las vistas en base a las ubicaciones de las perspectivas de cámara para las vistas (206). De esta manera, asumiendo que se conocen la ubicación de la perspectiva de una cámara y el identificador de vista de una primera vista y que se conoce el identificador de vista de una segunda vista, se puede determinar una ubicación de una perspectiva de cámara para la segunda vista con respecto a la ubicación de la perspectiva de cámara de la primera vista, en base a la diferencia entre los identificadores de vista para la primera vista y la segunda vista.
La unidad de encapsulación 30 forma una o más representaciones que incluyen cualquiera o todas las vistas codificadas (208). Además, la unidad de encapsulación 30 puede determinar un número de vistas destinadas para salida para cada una de las representaciones (210) y formar puntos de operación para las representaciones que no tienen más que el número determinado de vistas para las representaciones correspondientes (212). La unidad de encapsulación 30 puede entonces formar una estructura de datos de MPD que incluye una indicación de un rango de los identificadores de vista, una indicación del orden de las ubicaciones horizontales en base a los identificadores de vista y un valor indicativo del número máximo de vistas destinadas para salida para cada una de las representaciones (214). La indicación del rango de los identificadores de vista comprende un identificador de vista máximo y un identificador de vista mínimo para la representación, de manera que cada una de las representaciones incluye un identificador de vista máximo y un identificador de vista mínimo correspondientes en la MPD. La indicación del orden puede comprender una indicación de si el aumento de los identificadores de vista corresponde a un desplazamiento de izquierda a derecha o de derecha a izquierda para las ubicaciones horizontales de las perspectivas de cámara para las vistas correspondientes.
El dispositivo fuente 20 puede recibir solicitudes de diversos dispositivos cliente, tales como el dispositivo de destino 40, para la MPD y/o datos de vídeo codificados de las representaciones. En respuesta a tales solicitudes, el dispositivo fuente 20 puede proporcionar la MPD o datos de vídeo a los dispositivos cliente solicitantes (216). Por ejemplo, el dispositivo fuente 20 puede recibir solicitudes de transmisión en directo sobre HTTP y responder a las solicitudes de acuerdo con la transmisión en directo sobre HTTP.
De esta manera, la Figura 7 representa un ejemplo de un procedimiento de señalización de la información para los datos de vídeo, que incluye recibir, para el contenido multimedia, los datos de vídeo para dos o más vistas de una escena, determinar las ubicaciones horizontales de las perspectivas de cámara para cada una de las dos o más vistas, asignar identificadores de vista a las dos o más vistas de manera que los identificadores de vista correspondan a las ubicaciones horizontales relativas de las perspectivas de cámara, formar una representación del contenido multimedia, comprendiendo la representación un subconjunto de las dos o más vistas y, en respuesta a una solicitud de un dispositivo cliente, enviar la información, como parte de un manifiesto de la representación del contenido multimedia, indicativa de un identificador de vista máximo y un identificador de vista mínimo para la representación al dispositivo cliente.
La Figura 7 también representa un ejemplo de un procedimiento que incluye recibir, para el contenido multimedia, los datos de vídeo para dos o más vistas de una escena, formar una representación del contenido multimedia, comprendiendo la representación un subconjunto de las dos o más vistas, y enviar, a un dispositivo cliente, como parte de un manifiesto de la representación del contenido multimedia, la información indicativa de un número máximo de vistas en la representación que se pueden destinar para salida.
La Figura 8 es un diagrama de flujo que ilustra un ejemplo de un procedimiento de recepción de la información para los datos de vídeo que incluye los identificadores de vista para las vistas del contenido multimedia y un número máximo de vistas de salida objetivo de una representación como puntos de operación. Aunque se describe con respecto al dispositivo de destino 40 de la Figura 1, se debe entender que algunos o todos los elementos de la Figura 8 se pueden realizar mediante dispositivos adicionales o alternativos. Por ejemplo, los dispositivos separados pueden recuperar los datos de acuerdo con un protocolo de transmisión en directo por red, decodificar los datos recuperados y renderizar/visualizar los datos decodificados. Además, se pueden realizar etapas adicionales y ciertas etapas se pueden realizar en un orden diferentes, sin apartarse de las técnicas de esta divulgación.
En el ejemplo de la Figura 8, el dispositivo de destino 40 solicita inicialmente una MPD para el contenido multimedia (250). Por ejemplo, el dispositivo de destino 40 puede enviar una solicitud de transmisión en directo por red, tal como una solicitud de transmisión en directo sobre HTTP al dispositivo fuente 20. La solicitud puede especificar una URL del contenido multimedia. En algunos ejemplos, la solicitud se puede ajustar a una solicitud HEAD de HTTP dirigida a la URL del contenido multimedia.
Después de enviar la solicitud, el dispositivo de destino 40 puede recibir la MPD, la cual describe los atributos de las representaciones del contenido multimedia (252). Por ejemplo, la MPD puede incluir una indicación de un rango de los identificadores de vistas de las vistas incluidas en cada representación del contenido multimedia. El rango puede comprender, por ejemplo, para cada representación, una indicación del identificador de vista máximo y el identificador de vista mínimo para la representación. La MPD también puede indicar si un primer identificador de vista que es más grande que un segundo identificador de vista indica que la ubicación horizontal de la perspectiva de cámara para la vista correspondiente al primer identificador de vista está a la izquierda o a la derecha de la ubicación horizontal de la perspectiva de cámara para la vista correspondiente al segundo identificador de vista. La MPD puede describir además los requisitos de decodificación y renderización, que pueden ser especificaciones de las capacidades mínimas de decodificación y renderización soportadas de un dispositivo de destino. Además, la MPD puede proporcionar una indicación de tasas de bits para las representaciones. La MPD también puede incluir la información de puntos de operación que describen los puntos de operación de las representaciones, así como también el número máximo de vistas destinadas para salida para cada una de las representaciones. En otros ejemplos, el dispositivo de destino 40 puede enviar una solicitud y recibir después de solicitar los datos de encabezado para una representación del contenido multimedia o de otra estructura de datos que incluya datos de señalización para el contenido multimedia, tales como los rangos de los identificadores de vista para las vistas de una representación del contenido multimedia y/o un número máximo de vistas destinadas para salida para la representación del contenido multimedia.
Usando la MPD, en el ejemplo de la Figura 8, el dispositivo de destino 40 puede determinar el número de vistas de salida objetivo (por ejemplo, el número máximo de vistas de salida objetivo) para cada una de las representaciones (254). En algunos ejemplos, el número de vistas de salida objetivo puede corresponder a los puntos de operación de las representaciones. El dispositivo de destino 40 recupera los rangos de los identificadores de vista de la MPD (256). De acuerdo con las técnicas de esta divulgación, los identificadores de vista describen las ubicaciones relativas de las perspectivas de cámara para las vistas correspondientes. Por lo tanto, usando los rangos de los identificadores de vista, el dispositivo de destino 40 puede determinar una cantidad relativa de profundidad para cada una de las representaciones (258). Por ejemplo, la cantidad relativa de profundidad para una representación corresponde a la diferencia entre el identificador de vista máximo y el identificador de vista mínimo para la representación.
El dispositivo de destino 40 también puede determinar una ubicación de una primera perspectiva de cámara para una primera vista con relación a una ubicación de una segunda perspectiva de cámara para una segunda vista en base a una diferencia entre un primer identificador de vista para la primera vista y un segundo identificador de vista para la segunda vista. Como ejemplo, los identificadores de vista se pueden asignar de acuerdo con una función monótona creciente de las ubicaciones de las perspectivas de cámara. Por lo tanto, el dispositivo de destino 40 usa los identificadores de vista para determinar un orden de las perspectivas de cámara para las vistas. En el ejemplo de una función monótona creciente, al ordenar los identificadores de vista de menor a mayor, el dispositivo de destino 40 ordenará las ubicaciones de las perspectivas de cámara para las vistas de izquierda a derecha. En otro ejemplo, donde los identificadores de vista se asignan de acuerdo con una función monótona decreciente, al ordenar los identificadores de vista de mayor a menor, el dispositivo de destino 40 ordenará las ubicaciones de las perspectivas de cámara para las vistas de izquierda a derecha. La MPD proporciona una indicación de si los identificadores de vista se asignan a una función monótona creciente o monótona decreciente de las ubicaciones de las perspectivas de cámara para las vistas.
Usando las cantidades relativas determinadas de profundidad para las representaciones y el número máximo de vistas destinadas para salida de las representaciones, el dispositivo de destino 40 selecciona una de las representaciones del contenido multimedia a solicitar (260). El dispositivo de destino 40 selecciona la representación en base a esta y a otra información señalada por la MPD, tal como los requisitos de decodificación y renderización y la tasa de bits. Por ejemplo, el dispositivo de destino 40 puede determinar cuántas vistas es capaz de mostrar la salida de vídeo 44 y seleccionar una representación que tenga al menos esa cantidad de vistas de salida objetivo. El dispositivo de destino 40 puede seleccionar una representación que incluya un punto de operación que tiene esas tantas vistas. El dispositivo de destino 40 también puede incluir los datos de configuración indicativos de las capacidades de decodificación del decodificador de vídeo 48 y las capacidades de renderización de la salida de vídeo 44, y seleccionar una representación que tenga los requisitos de decodificación y renderización que las capacidades de decodificación y renderización puedan satisfacer.
El dispositivo de destino 40 puede determinar además una cantidad de ancho de banda de la red disponible y seleccionar una representación que tenga una tasa de bits que no exceda la cantidad de ancho de banda de la red. Además, el dispositivo de destino 40 puede incluir los datos de configuración que describen una cantidad deseada de profundidad para una representación, que puede ser en base a, por ejemplo, el tamaño de un dispositivo de visualización para el dispositivo de destino 40. En general, cuando el dispositivo de visualización es relativamente pequeño (por ejemplo, para un dispositivo móvil tal como un teléfono celular, ordenador portátil, tableta y similares), se puede desear menos profundidad, mientras que cuando el dispositivo de visualización es relativamente grande (por ejemplo, para un televisor de pantalla grande) se puede desear más profundidad.
Después de seleccionar una representación, el dispositivo de destino 40 puede enviar una solicitud para recuperar los datos de la representación seleccionada (262). Por ejemplo, el dispositivo de destino 40 puede enviar una solicitud de GET HTTP para un fragmento multimedia de la representación. En algunos ejemplos, el dispositivo de destino 40 puede enviar una solicitud GET HTTP parcial, para recuperar sólo una porción de un fragmento multimedia de la representación. Por ejemplo, el dispositivo de destino 40 puede usar solicitudes GET HTTP parcial para extraer un subflujo de bits de la representación, por ejemplo, para recuperar un punto de operación particular de la representación.
Después de recibir los datos, el dispositivo de destino 40 puede decodificar, renderizar y visualizar los datos recibidos (264). El dispositivo de destino 40 puede entonces determinar si se han recuperado (266) todos los datos de la representación seleccionada. Si no se han recuperado todos los datos (rama "NO" de 266), el dispositivo de destino 40 puede finalizar una solicitud posterior para un siguiente fragmento multimedia de la representación seleccionada. Después de que se hayan recuperado todos los datos (rama "SÍ" de 266), el dispositivo de destino 40 puede finalizar el procedimiento.
En algunos ejemplos, el dispositivo de destino 40 puede reevaluar la cantidad de ancho de banda de la red disponible y, si la cantidad de ancho de banda ha cambiado, cambiar de manera adaptativa a una representación diferente que tenga atributos similares, excepto por una tasa de bits que se pueda adaptar a la cantidad de ancho de banda de la red recién determinada. El dispositivo de destino 40 puede recuperar los datos de la representación recién seleccionada que tiene un tiempo de renderización inmediatamente después del tiempo de renderización del fragmento multimedia recibido más recientemente de la representación seleccionada previamente.
De esta manera, la Figura 8 representa un ejemplo de un procedimiento para recibir la información para los datos de vídeo, que incluye recibir la información indicativa de un identificador de vista máximo para una representación y un identificador de vista mínimo para la representación, en el que el identificador de vista máximo comprende un identificador de vista para una primera vista de un escena, en el que el identificador de vista mínimo comprende un identificador de vista para una segunda vista de la escena y en el que la representación comprende los datos de vídeo para dos o más vistas, incluidas la primera vista y la segunda vista, determinar una ubicación horizontal máxima de una perspectiva de cámara para las dos o más vistas de la representación y una ubicación horizontal mínima de una perspectiva de cámara para las dos o más vistas de la representación en base al identificador de vista máximo y el identificador de vista mínimo, en el que los identificadores de vista para las dos o más vistas se asignan de manera que los identificadores de vista correspondan a las ubicaciones horizontales relativas de las perspectivas de cámara para las dos o más vistas, y solicitar al menos una porción de los datos de vídeo de la representación en base, al menos en parte, a las ubicaciones horizontales máxima y mínima determinadas de las perspectivas de cámara para las dos o más vistas de la representación.
La Figura 8 también representa un ejemplo de un procedimiento para recibir la información para los datos de vídeo, que incluye recepcionar la información indicativa de un número máximo de vistas en una representación que se pueden destinar para salida, en el que la representación comprende los datos de vídeo para una o más vistas de una escena, determinar un número máximo de vistas que puede emitir un dispositivo de destino, y solicitar al menos una porción de los datos de vídeo de la representación en base, al menos en parte, al número máximo determinado de vistas que puede emitir el dispositivo de destino y a la información indicativa del número máximo de vistas en la representación que se pueden destinar para salida.
En uno o más ejemplos, las funciones, procedimientos y técnicas descritos en esta divulgación se pueden implementar en hardware, software, microprograma o cualquiera de sus combinaciones. Si se implementan en software, las funciones se pueden almacenar en o transmitirse como una o más instrucciones o código en un medio legible por ordenador y que se ejecutan mediante una unidad de procesamiento basada en hardware. Los medios legibles por ordenador pueden incluir medios de almacenamiento legibles por ordenador, que corresponden a un medio tangible, tal como los medios de almacenamiento de datos o los medios de comunicación, que incluyen cualquier medio que facilite transferir un programa informático de un lugar a otro, por ejemplo, de acuerdo con un protocolo de comunicación. De esta manera, los medios legibles por ordenador generalmente pueden corresponder a (1) medios de almacenamiento legibles por ordenador tangibles que no son transitorios o (2) un medio de comunicación tal como una señal u onda portadora. Los medios de almacenamiento de datos pueden ser cualquier medio disponible al que se pueda acceder mediante 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.
A modo de ejemplo y no de limitación, tales 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 puede usar para almacenar el código del 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 califica correctamente como 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, un cable de fibra óptica, un par trenzado, una línea de suscriptor digital (DSL) o tecnologías inalámbricas tales como infrarrojos, radio y microondas, entonces el cable coaxial, el cable de fibra óptica, el par trenzado, la DSL o las tecnologías inalámbricas tales como infrarrojos, radio y microondas se incluyen en la definición de medio. Sin embargo, se debe entender que los medios de almacenamiento legibles por ordenador y los medios de almacenamiento de datos no incluyen las conexiones, ondas portadoras, señales u otros medios transitorios, sino que se dirigen a medios de almacenamiento tangibles no transitorios. Disco, como se usa en la presente memoria, incluye el disco compacto (CD), el disco de láser, el disco óptico, el disco digital versátil (DVD), el disquete y el disco blu-ray donde existen los discos que usualmente reproducen los datos de manera magnética, mientras que otros discos reproducen los datos de manera óptica con láseres. Las combinaciones de los anteriores también se deben incluir dentro del ámbito de los medios legibles por ordenador.
Las instrucciones se pueden ejecutar por uno o más procesadores, tales como uno o más procesadores de señales digitales (DSP), microprocesadores de propósito general, circuitos integrados para aplicaciones específicas (ASIC), matrices de puertas lógicas programable en campo (FPGA) u otro circuito integrado lógico o discreto equivalente. En consecuencia, el término "procesador", como se usa en la presente memoria se puede referir a cualquiera de las estructuras anteriores o a cualquier otra estructura adecuada para la implementación de las técnicas descritas en la presente memoria. Además, en algunos aspectos, la funcionalidad descrita en la presente memoria se puede proporcionar dentro de módulos de hardware y/o software dedicados configurados para codificar y decodificar o incorporarse en un códec combinado. Además, las técnicas se podrían implementar completamente en uno o más circuitos o elementos lógicos.
Las técnicas de esta divulgación se pueden implementar en una amplia variedad de dispositivos o aparatos, que incluyen un teléfono inalámbrico, un circuito integrado (IC) o un conjunto de IC (por ejemplo, un conjunto de chips). En esta divulgación se describen varios componentes, módulos o unidades para enfatizar los aspectos funcionales de los dispositivos que se configuran para realizar las técnicas divulgadas, pero no necesariamente requieren la realización por diferentes unidades de hardware. En su lugar, como se describió anteriormente, diversas unidades se pueden combinar en una unidad de hardware de códec o proporcionar mediante una colección de unidades de hardware interoperativas, que incluye uno o más procesadores como se describió anteriormente, conjuntamente con los software y/o microprograma adecuados.

Claims (10)

REIVINDICACIONES
1. Un procedimiento de señalizar un manifiesto de una pluralidad de representaciones de contenido multimedia desde un dispositivo fuente a un dispositivo de destino y de transmitir en directo una o más de la pluralidad de representaciones a través de una red, comprendiendo el procedimiento:
recibir, mediante un dispositivo fuente, los datos de vídeo para una primera pluralidad de vistas de una escena, cada vista capturada por una cámara de una serie horizontal de una primera pluralidad de cámaras;
recibir (152), mediante el dispositivo fuente, la información de la ubicación que determina las ubicaciones horizontales relativas, en la serie horizontal, de la primera pluralidad de cámaras;
asignar (154), mediante el dispositivo fuente, un identificador de vista a cada vista en base a la ubicación horizontal de la cámara que capturó la vista respecto a las otras cámaras dentro de la serie horizontal, en el que los identificadores de vista aumentan de manera monótona o disminuyen de manera monótona para las vistas capturadas por las cámaras sucesivas de izquierda a derecha de la serie y una diferencia entre los identificadores de vista para las vistas capturadas por las respectivas cámaras de la primera pluralidad de cámaras representa la distancia entre las ubicaciones de las respectivas cámaras;
formar (156), mediante el dispositivo fuente, una pluralidad de representaciones del contenido multimedia, comprendiendo cada representación un subconjunto de al menos dos vistas, siendo al menos una vista diferente entre al menos dos de las representaciones;
determinar, por el dispositivo fuente, para cada representación, un identificador de vista máximo correspondiente al identificador de vista con el valor máximo de las vistas destinadas para salida incluidas en la representación y un identificador de vista mínimo correspondiente al identificador de vista con el valor mínimo de las vistas destinadas para salida incluidas en la representación, representando la diferencia entre los identificadores de vista máximo y mínimo la cantidad relativa de profundidad proporcionada por las respectivas vistas incluidas en la representación; formar, mediante el dispositivo fuente, un manifiesto del contenido multimedia, el manifiesto que incluye la información de orden de visualización que especifica si los identificadores de visualización aumentan de manera monótona o disminuyen de manera monótona para las vistas capturadas por las cámaras sucesivas de izquierda a derecha de la serie y, para cada representación, los datos indicativos del identificador de vista máximo y el identificador de vista mínimo;
enviar (160), por el dispositivo fuente tras recibir una solicitud de un dispositivo de destino con una pantalla estéreo, el manifiesto para permitir que el dispositivo de destino determine una representación que se adapte a una solicitud recibida por el dispositivo de destino para aumentar o disminuir la cantidad relativa de profundidad de las vistas que se muestran usando el identificador de vista máximo y el identificador de vista mínimo señalados en el manifiesto para cada representación, y para solicitar la representación determinada;
y
transmitir en directo (168), por el dispositivo fuente en respuesta a una solicitud de un dispositivo de destino, la representación seleccionada para permitir que el dispositivo de destino decodifique y muestre un vídeo estéreo con la cantidad relativa de profundidad decodificando y mostrando las vistas asociadas con los identificadores máximo y mínimo.
2. Un procedimiento para recibir la información para los datos de vídeo, comprendiendo el procedimiento:
recibir, por un dispositivo de destino desde un dispositivo fuente, un manifiesto del contenido multimedia, incluyendo el manifiesto la información de orden de vista que especifica si los identificadores de vista aumentan de manera monótona o disminuyen de manera monótona para las vistas capturadas por las cámaras sucesivas de una serie horizontal de cámaras de izquierda a derecha de la serie horizontal y, para cada una de una pluralidad de representaciones del contenido multimedia, la información indicativa de un identificador de vista máximo correspondiente al identificador de vista con el valor máximo de las vistas destinadas para salida incluidas en la representación y un identificador de vista mínimo correspondiente al identificador de vista con el valor mínimo de las vistas destinadas para salida incluidas en la representación, en el que una diferencia entre los identificadores de vista para las vistas capturadas por las respectivas cámaras de la serie horizontal de cámaras representa la distancia entre las ubicaciones de las respectivas cámaras y en el que la diferencia entre el identificador máximo y el mínimo representa la cantidad relativa de profundidad proporcionada por las respectivas vistas incluidas en la representación, comprendiendo cada representación un subconjunto de al menos dos vistas, siendo al menos una vista diferente entre al menos dos de las representaciones;
recibir, por parte del dispositivo de destino, una solicitud para aumentar o disminuir la cantidad relativa de profundidad de las vistas que se visualizan en estéreo;
seleccionar una representación de la pluralidad de representaciones para que coincida con la solicitud de aumentar o disminuir la cantidad relativa de profundidad usando los identificadores de vista máximo y mínimo de las representaciones y la información de orden de vista;
solicitar (166), desde el dispositivo fuente, que al menos una porción de los datos de vídeo de la representación seleccionada se transmita a través de una red al dispositivo de destino; y
decodificar y mostrar el vídeo en estéreo con la cantidad de profundidad solicitada decodificando y mostrando las vistas asociadas con los identificadores de vista máximo y mínimo de la representación seleccionada.
3. El procedimiento de la reivindicación 1 o la reivindicación 2, en el que enviar o recibir el manifiesto comprende enviar o recibir el manifiesto en al menos uno del nivel de período y el nivel de representación de acuerdo con un protocolo de transmisión en directo por red.
4. El procedimiento de la reivindicación 1, en el que enviar, por el dispositivo fuente en respuesta a una solicitud de un dispositivo de destino, una representación seleccionada comprende enviar los datos de vídeo de la representación seleccionada de acuerdo con la transmisión en directo sobre el protocolo de transferencia de hipertexto, HTTP.
5. El procedimiento de la reivindicación 2, que comprende además, en respuesta a la solicitud de al menos una porción de los datos de vídeo de la representación seleccionada, recibir los datos de vídeo de la representación de acuerdo con la transmisión en directo sobre el protocolo de transferencia de hipertexto, HTTP.
6. Un producto de programa informático que comprende un medio de almacenamiento legible por ordenador que tiene almacenadas en el mismo instrucciones que, cuando se ejecutan, hacen que un procesador de un dispositivo realice el procedimiento de acuerdo con cualquiera de las reivindicaciones anteriores.
7. Un aparato fuente para señalizar un manifiesto de una pluralidad de representaciones de contenido multimedia a un aparato de destino y para transmitir en directo una o más de la pluralidad de representaciones a través de una red, comprendiendo el aparato fuente:
los medios para recibir los datos de vídeo para una primera pluralidad de vistas de una escena, cada vista capturada por una cámara de una serie horizontal de una primera pluralidad de cámaras;
los medios para recibir las ubicaciones horizontales de las perspectivas de cámara para cada una de las vistas; los medios para asignar un identificador de vista a cada vista, en el que los identificadores de vista se asignan en base a la ubicación horizontal de la cámara que capturó la vista respecto a las otras cámaras dentro de la serie horizontal y en el que los identificadores de vista aumentan de manera monótona o disminuyen de manera monótona para las vistas capturadas por las cámaras sucesivas de izquierda a derecha de la serie y una diferencia entre los identificadores de vista para las vistas capturadas por las respectivas cámaras de la primera pluralidad de cámaras representa la distancia entre las ubicaciones de las respectivas cámaras;
los medios para formar una pluralidad de representaciones del contenido multimedia, comprendiendo cada representación un subconjunto de al menos dos de las vistas, siendo al menos una vista diferente entre al menos dos de las representaciones;
los medios para determinar, para cada representación, un identificador de vista máximo correspondiente al identificador de vista con el valor máximo de las vistas destinadas para salida incluidas en la representación y un identificador de vista mínimo correspondiente al identificador de vista con el valor mínimo de las vistas destinadas para salida incluidas en la representación, representando la diferencia entre los identificadores de vista máximo y mínimo la cantidad relativa de profundidad proporcionada por las respectivas vistas incluidas en la representación; los medios para formar un manifiesto del contenido multimedia, incluyendo el manifiesto la información del orden de visualización que especifica si los identificadores de visualización aumentan de manera monótona o disminuyen de manera monótona para las vistas capturadas por las cámaras sucesivas de izquierda a derecha de la serie y, para cada representación, los datos indicativos del identificador de vista máximo y el identificador de vista mínimo; los medios para enviar, en respuesta a la recepción de una solicitud de un aparato de destino con una pantalla estéreo, el manifiesto para permitir que el dispositivo de destino determine una representación que se adapte a una solicitud recibida por el dispositivo de destino para aumentar o disminuir la cantidad relativa de profundidad de las vistas que se visualizan usando el identificador de vista máximo y el identificador de vista mínimo señalados en el manifiesto para cada representación, y para solicitar la representación determinada; y
los medios para transmitir en directo, en respuesta a una solicitud de un dispositivo de destino, la representación solicitada para permitir que el dispositivo de destino decodifique y muestre un vídeo en estéreo con la cantidad relativa de profundidad al decodificar y mostrar las vistas asociadas con los identificadores de vista máximo y mínimo.
8. Un aparato de destino para recibir la información para los datos de vídeo, comprendiendo el aparato de destino:
los medios para recibir, desde un aparato fuente, un manifiesto de contenido multimedia, incluyendo el manifiesto la información del orden de visualización que especifica si los identificadores de visualización aumentan de manera monótona o disminuyen de manera monótona para las vistas capturadas por las cámaras sucesivas de una serie horizontal de cámaras de izquierda a derecha de la serie horizontal y, para cada una de una pluralidad de representaciones del contenido multimedia, la información indicativa de un identificador de vista máximo correspondiente al identificador de vista con el valor máximo de las vistas destinadas para salida incluidas en una representación y un identificador de vista mínimo correspondiente al identificador de vista con el valor mínimo de las vistas destinadas para salida incluidas en la representación, en el que una diferencia entre los identificadores de vista para las vistas capturadas por las respectivas cámaras de la serie horizontal de cámaras representa la distancia entre las ubicaciones de las respectivas cámaras y en el que la diferencia entre los identificadores de vista máximo y mínimo que representan la cantidad relativa de profundidad proporcionada por las respectivas vistas incluidas en la representación, comprendiendo cada representación un subconjunto de al menos dos vistas, siendo al menos una vista diferente entre al menos dos de las representaciones;
los medios para recibir, por parte del dispositivo de destino, una solicitud para aumentar o disminuir la cantidad relativa de profundidad de las vistas que se muestran en estéreo; los medios para seleccionar una representación de la pluralidad de representaciones para que coincida con la solicitud de aumentar o disminuir la cantidad relativa de profundidad usando los identificadores de vista máximo y mínimo de las representaciones y la información del orden de vista;
los medios para solicitar, desde el aparato fuente, que al menos una porción de los datos de vídeo de la representación seleccionada se transmita a través de una red al dispositivo de destino; y
los medios para decodificar y visualizar el vídeo en estéreo con la cantidad de profundidad solicitada al decodificar y visualizar las vistas asociadas con los identificadores de visualización máximo y mínimo de la representación seleccionada.
9. El aparato de la reivindicación 7, que comprende además los medios para transmitir en directo, en respuesta a una selección de la representación por el dispositivo de destino de los datos de vídeo de la representación seleccionada de acuerdo con la transmisión en directo sobre el protocolo de transferencia de hipertexto (streaming HTTP).
10. El aparato de la reivindicación 8, que comprende además los medios para recibir datos de vídeo de la representación seleccionada de acuerdo con la transmisión en directo sobre el protocolo de transferencia de hipertexto (streaming HTTP).
ES11741737T 2010-08-05 2011-08-03 Atributos de señalización para datos de vídeo transmitidos por red Active ES2905128T3 (es)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US37112510P 2010-08-05 2010-08-05
US13/154,285 US9226045B2 (en) 2010-08-05 2011-06-06 Signaling attributes for network-streamed video data
US13/154,247 US9716920B2 (en) 2010-08-05 2011-06-06 Signaling attributes for network-streamed video data
PCT/US2011/046481 WO2012018953A1 (en) 2010-08-05 2011-08-03 Signaling attributes for network-streamed video data

Publications (1)

Publication Number Publication Date
ES2905128T3 true ES2905128T3 (es) 2022-04-07

Family

ID=44629988

Family Applications (2)

Application Number Title Priority Date Filing Date
ES11741737T Active ES2905128T3 (es) 2010-08-05 2011-08-03 Atributos de señalización para datos de vídeo transmitidos por red
ES11741736T Active ES2903112T3 (es) 2010-08-05 2011-08-03 Atributos de señalización para datos de vídeo transmitidos por red

Family Applications After (1)

Application Number Title Priority Date Filing Date
ES11741736T Active ES2903112T3 (es) 2010-08-05 2011-08-03 Atributos de señalización para datos de vídeo transmitidos por red

Country Status (8)

Country Link
US (2) US9716920B2 (es)
EP (2) EP2601790B1 (es)
JP (3) JP5866359B2 (es)
KR (3) KR101645780B1 (es)
CN (2) CN103081464B (es)
BR (1) BR112013002693B1 (es)
ES (2) ES2905128T3 (es)
WO (2) WO2012018951A1 (es)

Families Citing this family (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007106844A2 (en) 2006-03-14 2007-09-20 Divx, Inc. Federated digital rights management scheme including trusted systems
US9432433B2 (en) 2006-06-09 2016-08-30 Qualcomm Incorporated Enhanced block-request streaming system using signaling or block creation
JP5681641B2 (ja) 2009-01-07 2015-03-11 ソニック アイピー, インコーポレイテッド オンラインコンテンツのためのメディアガイドの特異的、収集的および自動的な生成
KR101648455B1 (ko) 2009-04-07 2016-08-16 엘지전자 주식회사 방송 송신기, 방송 수신기 및 3d 비디오 데이터 처리 방법
US9917874B2 (en) 2009-09-22 2018-03-13 Qualcomm Incorporated Enhanced block-request streaming using block partitioning or request controls for improved client-side handling
US8914835B2 (en) * 2009-10-28 2014-12-16 Qualcomm Incorporated Streaming encoded video data
CA2782825C (en) 2009-12-04 2016-04-26 Divx, Llc Elementary bitstream cryptographic material transport systems and methods
US9716920B2 (en) 2010-08-05 2017-07-25 Qualcomm Incorporated Signaling attributes for network-streamed video data
KR20120020627A (ko) * 2010-08-30 2012-03-08 삼성전자주식회사 3d 영상 포맷을 이용한 영상 처리 장치 및 방법
US8914534B2 (en) 2011-01-05 2014-12-16 Sonic Ip, Inc. Systems and methods for adaptive bitrate streaming of media stored in matroska container files using hypertext transfer protocol
US9118928B2 (en) * 2011-03-04 2015-08-25 Ati Technologies Ulc Method and system for providing single view video signal based on a multiview video coding (MVC) signal stream
US9860293B2 (en) 2011-03-16 2018-01-02 Electronics And Telecommunications Research Institute Apparatus and method for providing streaming content using representations
US8988512B2 (en) * 2011-04-14 2015-03-24 Mediatek Inc. Method for adjusting playback of multimedia content according to detection result of user status and related apparatus thereof
MX2013014857A (es) * 2011-06-30 2014-03-26 Ericsson Telefon Ab L M Señalizacion de imagenes de referencia.
CN102860836B (zh) * 2011-07-04 2015-01-07 株式会社东芝 图像处理装置、图像处理方法以及医用图像诊断装置
US20130042013A1 (en) * 2011-08-10 2013-02-14 Nokia Corporation Methods, apparatuses and computer program products for enabling live sharing of data
US9467708B2 (en) 2011-08-30 2016-10-11 Sonic Ip, Inc. Selection of resolutions for seamless resolution switching of multimedia content
US8909922B2 (en) 2011-09-01 2014-12-09 Sonic Ip, Inc. Systems and methods for playing back alternative streams of protected content protected using common cryptographic information
US8964977B2 (en) 2011-09-01 2015-02-24 Sonic Ip, Inc. Systems and methods for saving encoded media streamed using adaptive bitrate streaming
US9906594B2 (en) * 2012-02-21 2018-02-27 Prysm, Inc. Techniques for shaping real-time content between multiple endpoints
US9584793B2 (en) * 2012-04-09 2017-02-28 Intel Corporation Signaling three-dimensional video information in communication networks
CN111182311A (zh) * 2012-04-25 2020-05-19 浙江大学 三维视频序列辅助信息的解码方法、编码方法及装置
JP6175749B2 (ja) * 2012-09-19 2017-08-09 沖電気工業株式会社 コンテンツ送信装置、プログラム及びコンテンツ送信方法
US9479779B2 (en) 2012-10-01 2016-10-25 Qualcomm Incorporated Sub-bitstream extraction for multiview, three-dimensional (3D) and scalable media bitstreams
US9781413B2 (en) 2012-10-02 2017-10-03 Qualcomm Incorporated Signaling of layer identifiers for operation points
US9154785B2 (en) * 2012-10-08 2015-10-06 Qualcomm Incorporated Sub-bitstream applicability to nested SEI messages in video coding
WO2014063026A1 (en) 2012-10-18 2014-04-24 Interdigital Patent Holdings, Inc. Decoding complexity for mobile multimedia streaming
US9313510B2 (en) 2012-12-31 2016-04-12 Sonic Ip, Inc. Use of objective quality measures of streamed content to reduce streaming bandwidth
US9191457B2 (en) 2012-12-31 2015-11-17 Sonic Ip, Inc. Systems, methods, and media for controlling delivery of content
US9906785B2 (en) 2013-03-15 2018-02-27 Sonic Ip, Inc. Systems, methods, and media for transcoding video data according to encoding parameters indicated by received metadata
US10397292B2 (en) 2013-03-15 2019-08-27 Divx, Llc Systems, methods, and media for delivery of content
US20140297804A1 (en) * 2013-03-28 2014-10-02 Sonic IP. Inc. Control of multimedia content streaming through client-server interactions
SG11201508375VA (en) * 2013-04-19 2015-11-27 Sony Corp Information processing apparatus, content requesting method, and computer program
US9094737B2 (en) 2013-05-30 2015-07-28 Sonic Ip, Inc. Network video streaming with trick play based on separate trick play files
US9967305B2 (en) 2013-06-28 2018-05-08 Divx, Llc Systems, methods, and media for streaming media content
US10595031B2 (en) * 2013-07-12 2020-03-17 Qualcomm Incorporated Selection of target output layers in high efficiency video coding extensions
US9270721B2 (en) * 2013-10-08 2016-02-23 Qualcomm Incorporated Switching between adaptation sets during media streaming
CN112887735B (zh) * 2014-01-03 2024-04-02 康普英国有限公司 用于hevc扩展处理的条件解析扩展语法
JP2015136060A (ja) * 2014-01-17 2015-07-27 ソニー株式会社 通信装置、通信データ生成方法、および通信データ処理方法
JP2015136057A (ja) * 2014-01-17 2015-07-27 ソニー株式会社 通信装置、通信データ生成方法、および通信データ処理方法
KR20160110442A (ko) 2014-01-29 2016-09-21 코닌클리즈케 케이피엔 엔.브이. 이벤트 스트리밍 프레젠테이션 확립
GB2524726B (en) * 2014-03-25 2018-05-23 Canon Kk Image data encapsulation with tile support
US10659502B2 (en) * 2014-03-31 2020-05-19 British Telecommunications Public Limited Company Multicast streaming
US9866878B2 (en) 2014-04-05 2018-01-09 Sonic Ip, Inc. Systems and methods for encoding and playing back video at different frame rates using enhancement layers
US20170188062A1 (en) * 2014-04-09 2017-06-29 Lg Electronics Inc. Method and apparatus for transmitting/receiving broadcast signal
WO2016059060A1 (en) 2014-10-14 2016-04-21 Koninklijke Kpn N.V. Managing concurrent streaming of media streams
US9667885B2 (en) * 2014-12-12 2017-05-30 Futurewei Technologies, Inc. Systems and methods to achieve interactive special effects
KR102473346B1 (ko) * 2015-06-23 2022-12-05 삼성전자주식회사 디지털 방송 서비스 방법 및 장치
TWI574547B (zh) * 2015-11-18 2017-03-11 緯創資通股份有限公司 立體影像的無線傳輸系統、方法及其裝置
CA3013111C (en) * 2016-02-02 2022-08-30 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Scene section and region of interest handling in video streaming
JP6669403B2 (ja) * 2016-06-03 2020-03-18 キヤノン株式会社 通信装置、通信制御方法および通信システム
US10193944B2 (en) * 2016-06-17 2019-01-29 Q Technologies Inc. Systems and methods for multi-device media broadcasting or recording with active control
CN107634930B (zh) * 2016-07-18 2020-04-03 华为技术有限公司 一种媒体数据的获取方法和装置
US10743003B1 (en) * 2016-09-01 2020-08-11 Amazon Technologies, Inc. Scalable video coding techniques
US10743004B1 (en) 2016-09-01 2020-08-11 Amazon Technologies, Inc. Scalable video coding techniques
US10498795B2 (en) 2017-02-17 2019-12-03 Divx, Llc Systems and methods for adaptive switching between multiple content delivery networks during adaptive bitrate streaming
US9872062B1 (en) * 2017-02-22 2018-01-16 Wyse Technology L.L.C. Enforcing synchronization by embedding audio within video frame data
GB2560921B (en) 2017-03-27 2020-04-08 Canon Kk Method and apparatus for encoding media data comprising generated content
CN110035316B (zh) * 2018-01-11 2022-01-14 华为技术有限公司 处理媒体数据的方法和装置
WO2020261689A1 (ja) 2019-06-25 2020-12-30 ソニー株式会社 情報処理装置、情報処理方法、再生処理装置及び再生処理方法
US11310303B2 (en) * 2019-10-01 2022-04-19 Tencent America LLC Methods and apparatuses for dynamic adaptive streaming over HTTP
CN111726647B (zh) * 2020-06-17 2023-05-26 京东方科技集团股份有限公司 数据分流设备和数据处理系统

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8711923B2 (en) 2002-12-10 2014-04-29 Ol2, Inc. System and method for selecting a video encoding format based on feedback data
US7447331B2 (en) 2004-02-24 2008-11-04 International Business Machines Corporation System and method for generating a viewable video index for low bandwidth applications
MX2008011652A (es) 2006-03-29 2008-09-22 Thomson Licensing Metodos y aparatos para usarse en un sistema de codificacion de video de multiples vistas.
US20080095228A1 (en) 2006-10-20 2008-04-24 Nokia Corporation System and method for providing picture output indications in video coding
WO2008140190A1 (en) 2007-05-14 2008-11-20 Samsung Electronics Co, . Ltd. Method and apparatus for encoding and decoding multi-view image
RU2504917C2 (ru) 2008-10-07 2014-01-20 Телефонактиеболагет Лм Эрикссон (Пабл) Файл медиаконтейнера
KR20100040640A (ko) 2008-10-10 2010-04-20 엘지전자 주식회사 수신 시스템 및 데이터 처리 방법
RU2689191C2 (ru) 2009-01-26 2019-05-24 Томсон Лайсенсинг Упаковка кадров для кодирования видео
US20100259595A1 (en) 2009-04-10 2010-10-14 Nokia Corporation Methods and Apparatuses for Efficient Streaming of Free View Point Video
US9674502B2 (en) 2010-06-09 2017-06-06 Samsung Electronics Co., Ltd. Method for providing fragment-based multimedia streaming service and device for same, and method for receiving fragment-based multimedia streaming service and device for same
US9716920B2 (en) 2010-08-05 2017-07-25 Qualcomm Incorporated Signaling attributes for network-streamed video data

Also Published As

Publication number Publication date
BR112013002693B1 (pt) 2021-10-26
BR112013002693A2 (pt) 2016-05-31
EP2601789B1 (en) 2021-12-22
KR20130056296A (ko) 2013-05-29
EP2601790A1 (en) 2013-06-12
JP5607251B2 (ja) 2014-10-15
JP2013537762A (ja) 2013-10-03
US9226045B2 (en) 2015-12-29
ES2903112T3 (es) 2022-03-31
CN103053159B (zh) 2016-10-26
JP2015111897A (ja) 2015-06-18
CN103081464A (zh) 2013-05-01
JP5866359B2 (ja) 2016-02-17
KR20130056297A (ko) 2013-05-29
KR101645780B1 (ko) 2016-08-04
KR20150013938A (ko) 2015-02-05
US9716920B2 (en) 2017-07-25
US20120033037A1 (en) 2012-02-09
WO2012018953A1 (en) 2012-02-09
CN103081464B (zh) 2016-10-12
CN103053159A (zh) 2013-04-17
WO2012018951A1 (en) 2012-02-09
EP2601790B1 (en) 2021-12-22
EP2601789A1 (en) 2013-06-12
KR101442996B1 (ko) 2014-09-24
JP2013537763A (ja) 2013-10-03
US20120036544A1 (en) 2012-02-09

Similar Documents

Publication Publication Date Title
ES2905128T3 (es) Atributos de señalización para datos de vídeo transmitidos por red
ES2896687T3 (es) Región más interesada en una imagen
ES2796535T3 (es) Proporcionar conjuntos de datos de secuencia para la transmisión continua de datos de vídeo
JP5551315B2 (ja) ビデオデータをストリーミングするためのサブトラックフラグメントの配列
JP5378599B2 (ja) Mpeg−2システムにおけるマルチビュービデオコーディング
US8780999B2 (en) Assembling multiview video coding sub-BITSTREAMS in MPEG-2 systems
ES2650220T3 (es) Señalización de las características de un punto de operación de MVC
US20120013746A1 (en) Signaling data for multiplexing video components
KR101436267B1 (ko) 비디오 구성요소들을 멀티플렉싱하기 위한 데이터의 시그널링
ES2494541T3 (es) Procedimientos de codificación de video multi-pista y aparato que usa un extractor que referencia dos o más unidades NAL no consecutivas