ES2788901T3 - Procesamiento de contenido multiperiodo continuo - Google Patents

Procesamiento de contenido multiperiodo continuo Download PDF

Info

Publication number
ES2788901T3
ES2788901T3 ES15719323T ES15719323T ES2788901T3 ES 2788901 T3 ES2788901 T3 ES 2788901T3 ES 15719323 T ES15719323 T ES 15719323T ES 15719323 T ES15719323 T ES 15719323T ES 2788901 T3 ES2788901 T3 ES 2788901T3
Authority
ES
Spain
Prior art keywords
period
adaptation set
adaptation
media
representations
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
ES15719323T
Other languages
English (en)
Inventor
Thomas Stockhammer
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 ES2788901T3 publication Critical patent/ES2788901T3/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/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/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • 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/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/23439Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/762Media network packet handling at the source 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • 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/437Interfacing the upstream path of the transmission network, e.g. for transmitting client requests to a VOD server
    • 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/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44209Monitoring of downstream path of the transmission network originating from a server, e.g. bandwidth variations of a wireless network
    • 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/812Monomedia components thereof involving advertisement data
    • 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/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
    • 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/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26258Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists for generating a list of items to be played back in a given order, e.g. playlist, or scheduling item distribution according to such list
    • 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/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/85406Content authoring involving a specific file format, e.g. MP4 format

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Computer Security & Cryptography (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

Un procedimiento de recuperación de datos de medios, comprendiendo el procedimiento: determinar (370) a partir de un archivo de manifiesto para contenido de medios que el contenido de medios incluye un primer período y un segundo período, que los primer y segundo períodos son continuos, y que los datos de medios publicitarios están disponibles para la inserción entre los primer y segundo períodos; seleccionar (372) un primer conjunto de adaptación en el primer período de entre una pluralidad de conjuntos de adaptación en el primer período basado al menos en parte en las características de representación señalizadas en el archivo de manifiesto para el primer conjunto de adaptación, comprendiendo cada conjunto de adaptación una respectiva pluralidad de representaciones del primer período de contenido de medios, compartiendo cada una de la respectiva pluralidad de representaciones las mismas características de representación pero teniendo una tasa de bits diferente; recuperar (374) datos de medios del primer conjunto de adaptación basado en la selección del primer conjunto de adaptación; en base a la determinación de que los datos de medios publicitarios están disponibles para la inserción entre los primer y segundo períodos y en la selección del primer conjunto de adaptación, determinar que un segundo conjunto de adaptación en el segundo período está asociado con el primer conjunto de adaptación, en el que el segundo conjunto de adaptación es uno de una pluralidad de conjuntos de adaptación en el segundo período, comprendiendo cada conjunto de adaptación una respectiva pluralidad de representaciones del segundo período de contenido de medios, compartiendo cada una de la respectiva pluralidad de representaciones las mismas características de representación pero teniendo una tasa de bits diferente, en el que determinar que el segundo conjunto de adaptación está asociado con el primer conjunto de adaptación comprende determinar que el archivo de manifiesto señaliza el mismo valor para los identificadores de activos del primer conjunto de adaptación y el segundo conjunto de adaptación y el archivo de manifiesto indica que el primer conjunto de adaptación y el segundo el conjunto de adaptación tienen el mismo valor para los atributos "@id" respectivos; recuperar (376) datos de medios del segundo conjunto de adaptación; y en base al atributo @id de representaciones en el primer conjunto de adaptación que es el mismo que el @id de representaciones en el segundo conjunto de adaptación, usando un segmento de inicialización de una representación del primer conjunto de adaptación como un segmento de inicialización de una representación correspondiente del segundo conjunto de adaptación.

Description

DESCRIPCIÓN
Procesamiento de contenido multiperiodo continuo
CAMPO TÉCNICO
[0001] Esta divulgación se refiere al transporte de datos de medios, por ejemplo, transmisión en continuo de datos de medios a través de una red.
ANTECEDENTES
[0002] Las capacidades de vídeo digital se pueden incorporar a una amplia gama de dispositivos, incluyendo televisores digitales, sistemas de radiodifusión directa digital, sistemas de radiodifusión inalámbrica, asistentes digitales personales (PDA), ordenadores portátiles o de escritorio, cámaras digitales, dispositivos de grabación digitales, reproductores de medios digitales, dispositivos de videojuegos, consolas de videojuegos, teléfonos de radio celulares o por satélite, dispositivos de videoconferencia y similares. Los dispositivos de vídeo digital implementan técnicas de compresión de vídeo, tales como los descritos en las normas definidas por MPEG-2, MPEG-4, ITU-T H.263 o ITU-T H.264/MPEG-4, Parte 10, Codificación Avanzada de Vídeo (AVC), ITU-T H.265/MPEG-H, Parte 2, y ampliaciones de dichas normas, para transmitir y recibir información de vídeo digital más eficazmente.
[0003] Las técnicas de compresión de vídeo realizan predicción espacial y/o predicción temporal para reducir o eliminar la redundancia inherente a las secuencias de vídeo. Para la codificación de vídeo basada en bloques, una trama o un corte de vídeo se pueden dividir en macrobloques. Cada macrobloque se puede dividir aún más. Los macrobloques de una trama o un corte intracodificados (I) se codifican usando predicción espacial con respecto a macrobloques vecinos. Los macrobloques en una trama o un corte intercodificados (P o B) pueden usar predicción espacial con respecto a macrobloques vecinos de la misma trama o corte, o predicción temporal con respecto a otras tramas de referencia.
[0004] Después de que se hayan codificado los datos de vídeo (y/u otros datos de medios, como datos de audio y/o texto temporizado), los datos de medios se pueden empaquetar para su transmisión o almacenamiento. Los datos de medios empaquetados se pueden enviar usando un protocolo de unidifusión, tal como el protocolo de transferencia de hipertexto (HTTP), o un protocolo de difusión o multidifusión, tal como el Servicio de multidifusión de radiodifusión multimedia mejorada (eMBMS).
BREVE EXPLICACIÓN
[0005] En general, esta divulgación describe técnicas para preparar contenido de medios que se usa para la transmisión en continuo adaptativa, de modo que en el caso de reproducción y transmisión en continuo, los datos de medios adicionales (por ejemplo, datos de medios publicitarios) en un conjunto existente de datos de medios se pueden empalmar y añadir señalizando un delimitador de período, por ejemplo, por una decisión en el remitente que usa el contenido o por el receptor que recibe el contenido, pero al mismo tiempo cuando no se añade contenido de medios adicional, el receptor tiene información suficiente para que la descodificación y reproducción del contenido en el receptor sea continua a lo largo del delimitador del período, es decir, manteniendo la continuidad del período. El contenido de medios se puede separar en períodos distintos, donde cada período incluye uno o más conjuntos de adaptación, cada uno con una o más representaciones. En general, las representaciones dentro del mismo conjunto de adaptación se pueden considerar alternativas entre sí, de modo que un dispositivo cliente puede conmutar entre representaciones, por ejemplo, para adaptarse al ancho de banda de red cambiante. Los conjuntos de adaptación dentro de un período pueden incluir dichas representaciones conmutables, es decir, representaciones que comparten características comunes de codificación y representación pero difieren en las tasas de bits.
[0006] Esta divulgación describe técnicas para dividir un contenido ofrecido en un período en dos períodos continuos, de modo que se puedan insertar datos de medios adicionales entre los períodos continuos. De esta manera, las características para las representaciones de los períodos continuos no se necesitan volver a señalizar después de los datos de medios añadidos. En cambio, las mismas características señalizadas para los datos de las representaciones en un período se pueden usar para los datos de las representaciones en el siguiente período continuo (donde se pueden insertar datos de medios adicionales entre los períodos continuos). De esta manera, los datos de medios del contenido de medios y los datos de medios añadidos se pueden presentar de manera continua. Por ejemplo, un dispositivo cliente puede usar un conjunto de adaptación del segundo período que corresponde a un conjunto de adaptación del primer período, basado en la selección del conjunto de adaptación del primer período (por ejemplo, sin volver a analizar las características del conjunto de adaptación del segundo período y sin reinicializar la entidad de análisis y descodificación de medios en el cliente).
[0007] En un ejemplo, un procedimiento para recuperar datos de medios incluye determinar que un archivo de manifiesto para contenido de medios indica que el contenido de medios incluye un primer período y un segundo período, que el archivo de manifiesto indica que los primer y segundo períodos son continuos, y que los datos de medios publicitarios están disponibles para la inserción entre los primer y segundo períodos, seleccionando un primer conjunto de adaptación en el primer período basado, al menos en parte, en las características señalizadas para el primer conjunto de adaptación, recuperando datos de medios del primer conjunto de adaptación basado en la selección del primer conjunto de adaptación, recuperando los datos de medios publicitarios; y recuperar datos de medios de un segundo conjunto de adaptación en el segundo período que está asociado con el primer conjunto de adaptación basado en la selección del primer conjunto de adaptación.
[0008] En otro ejemplo, un dispositivo para recuperar datos de medios incluye una memoria configurada para almacenar datos de medios, y uno o más procesadores basados en hardware configurados para determinar que un archivo de manifiesto para contenido de medios indica que el contenido de medios incluye un primer período y un segundo período, que el archivo de manifiesto indica que los primer y segundo períodos son continuos, y que los datos de medios publicitarios están disponibles para la inserción entre los primer y segundo períodos, seleccionar un primer conjunto de adaptación en el primer período basado, al menos en parte, en las características señalizadas para el primer conjunto de adaptación, recuperar los datos de medios del primer conjunto de adaptación basado en la selección del primer conjunto de adaptación, recuperar los datos de medios publicitarios, y recuperar datos de medios de un segundo conjunto de adaptación en el segundo período que el archivo de manifiesto indica que está asociado con el primer conjunto de adaptación basado en la selección del primer conjunto de adaptación y almacenar los datos de medios recuperados en la memoria.
[0009] En otro ejemplo, un procedimiento para enviar datos de medios incluye dividir, por un servidor de medios, el contenido principal de los datos de medios en una pluralidad de períodos que incluyen un primer período y un segundo período, en el que el primer período y el segundo período son temporalmente secuenciales, insertar, por el servidor de medios, contenido de medios secundario entre el primer período y el segundo período, señalizando, por el servidor de medios, un indicador de tiempo para cada uno de la pluralidad de períodos, en el que el indicador de tiempo define una o más características de tiempo para cada uno de la pluralidad de períodos, y recibir, por el servidor de medios, una petición de un cliente de transmisión en continuo adaptativa dinámica sobre HTTP (DASH) para recuperar un flujo de medios que comprende la pluralidad de períodos, el contenido de medios secundario y los indicadores de tiempo.
[0010] En otro ejemplo, un dispositivo para enviar datos de medios incluye una memoria configurada para almacenar datos de medios, y uno o más procesadores basados en hardware configurados para dividir el contenido principal de los datos de medios en una pluralidad de períodos que incluyen un primer período y un segundo período que son temporalmente secuenciales, insertar contenido de medios secundario entre el primer período y el segundo período, señalizar un indicador de tiempo para cada uno de la pluralidad de períodos, en el que el indicador de tiempo define una o más características de tiempo para cada uno de la pluralidad de períodos, y recibir una petición de un cliente de transmisión en continuo adaptativa dinámica sobre HTTP (DASH) para recuperar un flujo de medios que comprende la pluralidad de períodos, el contenido de medios secundario y los indicadores de tiempo.
[0011] Los detalles de uno o más ejemplos se exponen en los dibujos adjuntos y en la descripción siguiente. Otros rasgos característicos, objetos y ventajas resultarán evidentes a partir de la descripción y de los dibujos, y a partir de las reivindicaciones.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
[0012]
La FIG. 1 es un diagrama de bloques que ilustra un sistema de ejemplo que implementa técnicas para transmitir en continuo datos de medios a través de una red.
La FIG. 2 es un diagrama conceptual que ilustra elementos de contenido de medios de ejemplo.
La FIG. 3 es un diagrama de bloques que ilustra otro sistema de ejemplo que puede implementar las técnicas de esta divulgación.
Las FIGS. 4-6 son diagramas de flujo que ilustran una o más técnicas de acuerdo con diversos aspectos de esta divulgación.
La FIG. 7 es un diagrama de flujo que ilustra un procedimiento de ejemplo para realizar determinadas técnicas de esta divulgación por un servidor de medios.
La FIG. 8 es un diagrama de flujo que ilustra un procedimiento de ejemplo para realizar determinadas técnicas de esta divulgación por un dispositivo cliente.
DESCRIPCIÓN DETALLADA
[0013] En general, esta divulgación describe técnicas para la inserción de publicidad en un flujo multiperiodo continuo. Estas técnicas se pueden usar cuando se transmiten en continuo datos de medios, por ejemplo, de acuerdo con un servicio de unidifusión (tal como HTTP), servicio de radiodifusión o multidifusión, tal como el Servicio de multidifusión de radiodifusión multimedia mejorada (eMBMS). Por ejemplo, las técnicas de esta divulgación se pueden usar junto con, o para aumentar las técnicas de, Mejoras de MBMS-Funcionamiento de MBMS mejorado (MI-EMO). MI-EMO se describe en, por ejemplo, Descripción general de 3GPP Edición 12 V0.1.1, diciembre de 2013, disponible en http://www.3gpp.org/ftp/Information/WORK_PLAN/Description_ Releases/Rel-12_description_20131224.zip.
[0014] Se debe entender que los datos publicitarios son datos de medios, es decir, datos presentados a un usuario durante uno o más intermedios breves de la presentación de los datos de medios primarios. Los datos de medios adicionales (por ejemplo, datos de medios publicitarios) se presentan en general sustancialmente de la misma manera que los datos de medios primarios. Por ejemplo, si los datos de medios primarios incluyen tanto datos de audio como vídeo, es probable que los datos de medios publicitarios también incluyan datos de audio y vídeo. Por tanto, los datos publicitarios no se deben confundir con una publicidad del servidor a un dispositivo cliente que en general no se presenta a un usuario.
[0015] Las técnicas de esta divulgación se pueden aplicar en el contexto de un protocolo de red de transmisión en continuo, tal como transmisión en continuo adaptativa dinámica sobre HTTP (DASH). En DASH, el contenido de medios se divide en un conjunto de representaciones, donde cada representación corresponde a una combinación particular de características, por ejemplo, características de codificación (tal como CODEC, perfil, nivel y similares), características de representación (por ejemplo, ángulo de visión, dimensiones de la imagen, tasa de tramas y similares) y velocidad de bits. El contenido de medios puede incluir además conjuntos de adaptación, donde cada conjunto de adaptación incluye una pluralidad de representaciones que actúan como alternativas conmutables entre sí, de modo que las representaciones comparten las mismas características de representación pero difieren en la tasa de bits, por ejemplo, con el propósito de adaptación del ancho de banda. Estas características de las representaciones, así como las indicaciones de los conjuntos de adaptación, típicamente se señalizan en un archivo de manifiesto. Además, cada conjunto de adaptación puede corresponder a un período particular del contenido de medios, donde cada período puede incluir uno o más conjuntos de adaptación. Un período en general corresponde a una sección del contenido de medios definido por un tiempo de reproducción de inicio para el período hasta el tiempo de reproducción de inicio para un período posterior. El contenido de medios puede incluir uno o más períodos.
[0016] Esta divulgación se refiere a la conversión de un archivo de manifiesto, tal como una Descripción de presentación de medios (MPD), y el contenido generado como contenido A demanda o en directo a una MPD (u otro archivo de manifiesto) con múltiples períodos proporcionando continuidad de períodos. El contenido con múltiples períodos se puede crear por diferentes motivos. Por ejemplo, se pueden crear múltiples períodos para permitir el empalme de contenido, por ejemplo, para la inserción de publicidad. En otro ejemplo, se pueden crear múltiples períodos para proporcionar un punto de sincronización para evitar la variación en la numeración de segmentos. En otro ejemplo, se pueden crear múltiples períodos para eliminar o añadir ciertas representaciones en un conjunto de adaptación. En otro ejemplo, se pueden crear múltiples períodos para eliminar o añadir determinados conjuntos de adaptación. En otro ejemplo, se pueden crear múltiples períodos para añadir o eliminar contenido ofrecido en determinadas redes de distribución de contenido (CDN). En otro ejemplo, se pueden crear múltiples períodos para permitir la señalización de segmentos más cortos, si los produce el codificador. Estas técnicas de ejemplo se pueden usar solas o en cualquier combinación.
[0017] Los períodos proporcionan oportunidades para la inserción de publicidad, también conocidos como señales. Pero la publicidad se puede añadir o no, en base a las decisiones tomadas por el remitente o el cliente. Por lo tanto, el contenido para el que no se inserta publicidad es típicamente continuo en términos de análisis y representación de medios. Si los períodos son continuos, se señaliza la reproducción continua para el cliente, de modo que el cliente no tenga que reinicializar y evitar cualquier posible resultado de un fallo en el delimitador del período. Para abordar la reproducción continua, esta divulgación describe diversas técnicas. En un ejemplo, un proveedor de contenido divide el contenido a demanda regular en múltiples períodos y proporciona señalización de continuidad de período. En otro ejemplo, un proveedor de contenido divide el contenido en directo regular en múltiples períodos y proporciona señalización de continuidad de período. En otro ejemplo, un proveedor de contenido señaliza el contenido para permitir la continuidad de período. En otro ejemplo, un proveedor de contenido señaliza múltiples períodos basados en información MPD solo sin modificar el contenido de medios, es decir, las representaciones.
[0018] En algunos ejemplos, cuando se recibe contenido de medios usando radiodifusión o multidifusión, un cliente MBMS o un cliente eMBMS puede recibir el contenido de medios y a continuación poner el contenido de medios a disposición de un cliente de transmisión en continuo, tal como un cliente DASH. El cliente DASH puede recuperar el contenido de medios del cliente MBMS usando, por ejemplo, funcionamientos de recuperación HTTP. En la transmisión en continuo HTTP, tal como DASH, funcionamientos usados con frecuencia incluyen HEAD, GET y GET parcial. El funcionamiento HEAD recupera una cabecera de un archivo asociado a un localizador de recursos uniforme (URL) o un nombre de recursos uniforme (URN) dado, sin recuperar una carga útil asociada al URL o al URN. El funcionamiento GET recupera un archivo entero asociado a un URL o URN dado. El funcionamiento GET parcial recibe un intervalo de bytes como parámetro de entrada y recupera un número continuo de bytes de un archivo, donde el número de bytes corresponde al intervalo de bytes recibido. Por tanto, se pueden proporcionar fragmentos de película para transmisión en continuo HTTP, porque un funcionamiento GET parcial puede obtener uno o más fragmentos de película individuales. En un fragmento de película, pueden existir varios fragmentos de pista de diferentes pistas. En la transmisión en continuo HTTP, una presentación de medios puede ser una colección de datos estructurada que puede ser accesible para el cliente. El cliente puede solicitar y descargar información de datos de medios para presentar un servicio de transmisión en continuo a un usuario.
[0019] En el ejemplo de transmisión en continuo de datos 3GPP usando transmisión en continuo HTTP, pueden existir múltiples representaciones para datos de vídeo y/o audio de contenido multimedia. Como se describe a continuación, diferentes representaciones pueden corresponder a diferentes características de codificación (por ejemplo, diferentes perfiles o niveles de una norma de codificación de vídeo), diferentes normas de codificación o ampliaciones de normas de codificación (tales como ampliaciones multivista y/o escalables), o diferentes tasas de bits. El manifiesto de dichas representaciones se puede definir en una estructura de datos de descripción de presentación de medios (MPD). Una presentación de medios puede corresponder a una colección de datos estructurada que puede ser accesible para un dispositivo cliente de transmisión en continuo HTTP. El dispositivo cliente de transmisión en continuo HTTP puede solicitar y descargar información de datos de medios para presentar un servicio de transmisión en continuo a un usuario del dispositivo cliente. Una presentación de medios se puede describir en la estructura de datos MPD, que puede incluir actualizaciones de la MPD.
[0020] Una presentación de medios puede contener una secuencia de uno o más períodos. Los períodos se pueden definir mediante un elemento de período en la MPD. La MPD puede incluir un atributo start y un atributo availableStartTime para cada período. Para servicios en directo, la suma del atributo de start del período y del atributo availableStartTime de la MPD puede especificar el tiempo de disponibilidad del periodo en formato de UTC, en particular, el primer segmento de medios de cada representación en el período correspondiente. Para servicios a 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 tiempo de inicio del período correspondiente con respecto al tiempo de inicio del primer periodo. Cada período se puede extender hasta el inicio del siguiente período, o hasta el final de la presentación de medios en el caso del último período. Los tiempos de inicio de período pueden ser precisos. Pueden reflejar la temporización real resultante de la reproducción de los medios de todos los periodos anteriores.
[0021] Cada período puede contener una o más representaciones para el mismo contenido de medios. Una representación puede ser una de un número de versiones codificadas alternativas de datos de audio o vídeo. Las representaciones pueden diferir según el tipo de codificación, por ejemplo, según la tasa de bits, la resolución y/o el códec para los datos de vídeo y la tasa de bits, el idioma y/o el 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 vídeo codificados correspondientes a un período en particular del contenido multimedia y codificados de una forma en particular.
[0022] Las representaciones de un período en particular se pueden asignar a un grupo indicado en la MPD por un atributo indicativo de un conjunto de adaptación al que pertenecen las representaciones. Las representaciones en el mismo conjunto de adaptación en general se consideran alternativas entre sí, en la medida en que un dispositivo cliente puede conmutar entre estas representaciones de manera dinámica y sin interrupciones, por ejemplo, para realizar una adaptación de ancho de banda. Por ejemplo, cada representación de datos de vídeo para un período particular se puede asignar al mismo conjunto de adaptación, de modo que cualquiera de las representaciones se puede seleccionar para descodificar a fin de presentar datos de medios, tales como datos de vídeo o datos de audio, del contenido multimedia para el período correspondiente. El contenido de medios dentro de un período se puede representar mediante una representación cualquiera del grupo 0, si está presente, o bien la combinación de como máximo una representación de cada grupo no cero, en algunos ejemplos. Los datos de temporización para cada representación de un período se pueden expresar con respecto al tiempo de inicio del período.
[0023] 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 ser autoinicializador. Cuando está presente, el segmento de inicialización puede contener información de inicialización para acceder a la representación. En general, el segmento de inicialización no contiene datos de medios. Un segmento se puede referenciar de forma única mediante 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 también puede proporcionar intervalos de bytes en forma de un atributo de gama, que puede corresponder a los datos para un segmento dentro de un archivo accesible por el URL, el URN o el URI.
[0024] Se pueden seleccionar diferentes representaciones para una recuperación sustancialmente simultánea para diferentes tipos de datos de medios. Por ejemplo, un dispositivo cliente puede seleccionar una representación de audio, una representación de vídeo y una representación de texto temporizado a partir de las cuales se pueden recuperar segmentos. En algunos ejemplos, el dispositivo cliente puede seleccionar conjuntos de adaptación particulares para realizar una adaptación de ancho de banda. Es decir, el dispositivo cliente puede seleccionar un conjunto de adaptación que incluye representaciones de vídeo, un conjunto de adaptación que incluye representaciones de audio y/o un conjunto de adaptación que incluye texto temporizado. De forma alternativa, el dispositivo cliente puede seleccionar conjuntos de adaptación para determinados tipos de medios (por ejemplo, vídeo) y seleccionar directamente representaciones para otros tipos de medios (por ejemplo, audio y/o texto temporizado).
[0025] Típicamente, no es necesaria la continuidad en un delimitador de período en términos de oferta de contenido. El contenido se puede ofrecer con diferentes códecs, atributos de idioma, protección de contenido, y así sucesivamente. Se espera que el cliente reproduzca el contenido de manera continua entre períodos, pero pueden existir implicaciones en términos de implementación para que la reproducción sea completamente continua y sin interrupciones.
[0026] En general, la conmutación de audio/vídeo entre delimitadores de período puede no ser sin interrupciones. De acuerdo con ISO/IEC 23009-1, sección 7.2.1, al inicio de un nuevo período, el procedimiento de reproducción de los componentes de contenido de medios puede necesitar ajustarse al final del período precedente para que coincida con el tiempo de inicio del período del nuevo período ya que puede haber pequeñas superposiciones o espacios con la representación al final del período precedente. Las superposiciones (espacios respectivamente) pueden resultar de segmentos de medios con una duración de presentación real del flujo de medios más larga (respectivamente más corta) que la indicada por la duración de período. También al inicio de un período, si el tiempo de presentación más temprano de cualquier unidad de acceso de una representación puede no ser igual al desplazamiento de tiempo de presentación indicado en @presentationTimeOffset, los procedimientos de reproducción se deben ajustar en consecuencia.
[0027] Sin embargo, bajo determinadas condiciones, se puede lograr una continuación sin interrupciones de la presentación entre períodos, especialmente si el contenido está debidamente condicionado. Esta sección proporciona una visión general sobre requisitos y recomendaciones de oferta de contenido entre períodos y el comportamiento del cliente al descargar y presentar contenido entre períodos.
[0028] Téngase en cuenta que el análisis a continuación se aplica tanto a las presentaciones de medios estáticas como dinámicas, y las técnicas descritas a continuación pueden ser independientes del uso de xlink. Las reglas descritas a continuación se pueden aplicar para el caso después de que los elementos remotos se desreferencian.
[0029] La duración de la presentación de una representación puede ser la diferencia entre el tiempo de presentación final de la representación y el tiempo de presentación más temprano de la representación. La duración del tiempo de presentación puede tener, por ejemplo, la misma unidad que el desplazamiento del tiempo de presentación, es decir, @timescale, y expresa la duración de presentación exacta de la representación.
[0030] La duración de la presentación se puede señalizar mediante una de las dos técnicas de ejemplo siguientes o técnicas similares. Una técnica de ejemplo implica un nuevo atributo opcional @presentationTimeDuration que especifica la duración de la presentación de la representación incluida en la escala de tiempo del atributo @timescale. Una segunda técnica de ejemplo implica un descriptor suplementario con @scheme_id_URI establecido en "urn:mpeg:dash:period_continuity:2014," que se puede proporcionar para un conjunto de adaptación con el @value del descriptor, PID, que coincida con el valor de un @id de un período que puede estar contenido en la MPD, siendo el valor del AdaptationSet@id AID y el valor del @presentationTimeOffset para estos conjuntos de adaptación se puede proporcionar y puede ser PTO.
[0031] Si esta señal está presente, para el período con el valor del period@id siendo PID y para el conjunto de adaptación con AdaptationSet@id siendo AID, la duración de presentación de cada representación en este conjunto de adaptación se puede obtener como la diferencia de PTO menos el valor del @presentationTimeOffset.
[0032] Si el contenido se puede ofrecer con múltiples períodos, el proveedor de contenido podría ofrecer el contenido de modo que el tiempo real de presentación de medios sea lo más cercano posible a la duración de período real. Se puede recomendar que la duración de período sea el máximo de la duración de presentación de todas las representaciones contenidas en el período.
[0033] En determinadas circunstancias, el proveedor de contenido ofrece contenido en el siguiente período que puede ser una continuación del contenido en el período previo, posiblemente en el período inmediatamente siguiente o en un período posterior. El último caso se aplica, por ejemplo, después de que se haya insertado un período de publicidad. El proveedor de contenido puede expresar que los componentes de medios contenidos en dos conjuntos de adaptación en dos períodos diferentes están asociados asignando identificadores de activos equivalentes a ambos períodos e identificando ambos conjuntos de adaptación con un valor idéntico para el atributo @id.
[0034] Si se asocian conjuntos de adaptación en dos períodos diferentes, cualquiera o todos los siguientes parámetros pueden ser idénticos para los dos conjuntos de adaptación: el idioma como se describe por el atributo @lang, el tipo de componente de medios descrito por el atributo @contentType, la proporción de aspecto de imagen como se describe por el atributo @par, cualquier propiedad de rol como se describe por los elementos de rol, cualquier propiedad de accesibilidad como se describe por los elementos de accesibilidad y cualquier propiedad de punto de vista como se describe por los elementos de punto de vista. En un ejemplo, la norma DASH se puede modificar de acuerdo con las técnicas de esta divulgación para requerir que, cuando se asocian conjuntos de adaptación en dos períodos diferentes, cada uno de los parámetros anteriores sea idéntico para los dos conjuntos de adaptación.
[0035] Además, se puede decir que dos conjuntos de adaptación en una MPD son de período continuo si cada una de las siguientes condiciones es verdadera para los dos conjuntos de adaptación:
• los conjuntos de adaptación se indican como asociados y/o determinados como asociados,
• el @presentationTimeOffset puede estar presente o se puede inferir como 0 para todas las representaciones en ambos conjuntos de adaptación,
• dentro de un conjunto de adaptación, el valor de @presentationTimeOffset puede ser idéntico para todas las representaciones,
• la suma del valor del @presentationTimeOffset y la duración de presentación de todas las representaciones en una adaptación es idéntica al valor del @presentationTimeOffset del otro conjunto de adaptación, y
• si las representaciones en ambos conjuntos de adaptación tienen el mismo valor para @id, tienen segmentos de inicialización funcionalmente equivalentes, es decir, el segmento de inicialización de una representación se puede usar para continuar la reproducción de la otra representación.
[0036] Los autores de contenido podrían señalizar conjuntos de adaptación de período continuo señalizando la duración de presentación usando una de las dos técnicas de ejemplo introducidas anteriormente (por ejemplo, usando la señalización de duración de presentación, tal como el atributo @presentationTimeDuration y/o el descriptor suplementario con @scheme_id_URI establecido en "urn:mpeg:dash:period_continuity:2014"). Los autores de contenido podrían ofrecer una MPD con conjuntos de adaptación de período continuo si la MPD contiene períodos con identificadores de activos idénticos. Además, si dos conjuntos de adaptación en una MPD son de período continuo y el segundo conjunto de adaptación ha asociado un descriptor suplementario con @schemeIDURI="urn:mpeg:dash:period-switchable," la concatenación de cualquier representación de la primera adaptación con cualquier representación del segundo conjunto de adaptación sin el segmento de inicialización da como resultado un formato de flujo de bits que se ajusta a los formatos de medios en uso como se señaliza en el primer conjunto de adaptación. Esta propiedad se puede denominar conjuntos de adaptación concatenables por períodos. Para el procesamiento simplificado en los clientes, los autores de contenido pueden ofrecer una MPD con conjuntos de adaptación concatenables por períodos si la MPD contiene períodos con identificadores de activos idénticos.
[0037] Típicamente, no se garantiza la continuidad en un delimitador de período, en términos de oferta de contenido. El contenido se puede ofrecer con diferentes códecs, atributos de idioma y diferente protección, entre otras cosas. El cliente podría reproducir el contenido de forma continua a lo largo de períodos, pero pueden existir implicaciones en términos de implementación para proporcionar una reproducción totalmente continua y sin interrupciones. Puede existir el caso de que en los delimitadores de período (por ejemplo, donde no existe continuidad), el motor de presentación se puede reinicializar, por ejemplo, debido a cambios en formatos, códecs u otras propiedades. Esto puede dar como resultado un retardo de reinicialización. Dicho retardo de reinicialización se podría reducir o minimizar.
[0038] Si la MPD es de tipo estático, la presentación de medios real se podría extender por los retardos de inicialización. Sin embargo, en el caso de servicios dinámicos, la adición del retardo de reinicialización a la reproducción puede dar como resultado una variación entre el codificador y el motor de presentación. Por lo tanto, la reproducción se podría ajustar al final de cada período para proporcionar una presentación continua sin añadir variación entre el tiempo documentado en la MPD y la reproducción real, es decir, la diferencia entre el tiempo de reproducción real y el tiempo de inicio de período podría permanecer constante.
[0039] Si el cliente presenta componentes de medios de un determinado conjunto de adaptación en un período, y si el siguiente período ha asignado un identificador de activos idéntico, el cliente podría identificar un período asociado y, en ausencia de otra información, continuar reproduciendo el contenido en el conjunto de adaptación asociado.
[0040] Si además los conjuntos de adaptación son de período continuo, es decir, los tiempos de presentación son continuos y esto se puede señalizar en la MPD, el cliente puede reproducir sin interrupciones el contenido a lo largo del delimitador de período. Más adecuadamente, el cliente puede continuar reproduciendo la representación en el conjunto de adaptación con el mismo @id, pero puede no haber garantía de que esta representación esté disponible. En este caso, el cliente conmutará sin interrupciones a cualquier otra representación en el conjunto de adaptación.
[0041] El formato de entrada puede ser una MPD que se ajuste al perfil a demanda. Los elementos y atributos pertinentes de la MPD se proporcionan en la tabla a continuación. En el ejemplo a continuación, la MPD contiene dos conjuntos de adaptación.
TABLA 1: Información pertinente para el perfil a demanda
Figure imgf000008_0001
[0042] Para cada representación, el índice de segmento se puede descargar con la URL de la representación proporcionada en BaseURL indicada como baseURL y el valor de SegmentBase@indexRange indicado como init como sigue:
GET baseURL HTTP/1.1
Range: bytes=0-(init-1)
[0043] A continuación, el intervalo de bytes recibido se puede analizar para el índice de segmento. Desde el primer cuadro de índice de segmento, se puede extraer información. La escala de tiempo de la pista se puede extraer de la escala de tiempo del índice de segmento y se puede indicar como escala de tiempo. El número total de subsegmentos Nsub se puede extraer del índice de segmento como el reference_count. El tiempo de presentación más temprano ept se puede extraer del índice de segmento como el earliest_presentation_time. El primer desplazamiento fo se puede extraer del índice de segmento como el first_offset. Para cada subsegmento de hoja i, la duración del subsegmento en el índice de segmento de cada subsegmento de hoja indicado como sdur[i], el tamaño del subsegmento size[i], y otra información relacionada con el subsegmento ssi[i].
[0044] En un ejemplo de un flujo a demanda, la presentación se puede dividir en dos períodos lo más temprano en el tiempo de presentación de medios tsplit expresado relativo al período tiempo de inicio. Pueden existir dos conjuntos de adaptación y cada conjunto de adaptación puede tener una representación. En algunos ejemplos, se puede aplicar una alineación de un delimitador de subsegmento de los conjuntos de adaptación.
[0045] Se puede suponer que la siguiente información está disponible para contenido de período único.
• period@start ps
• MPD@mediaPresentationDuration mpDUR
• BaseURL bu1, bu2
• SegmentBase@indexRange ir1, ir2
• SegmentBase@timecale ts1, ts2
• SegmentBase@presentationDuration pd1, pd2
• El índice de segmento de la representación
◦ Nsub1, Nsub2
◦ ept1, ept2
◦ fo1, fo2
◦ sdur1[i], sdur2[i]
◦ fo1 [i], fo2[i]
◦ ssi1[i], ssi2[i]
[0046] Para generar una nueva presentación de medios, se puede generar la siguiente información:
Actualización de atributos y elementos en el primer período para cada representación de cada conjunto de adaptación:
a. period@start ps1
b. add period@duration pdur1 = tsplit
c. BaseURL bu11, bu12
d. SegmentBase@indexRange ir11, ir12
e. SegmentBase@presentationTimeOffset pto11, pto12
f. SegmentBase@presentationDuration pd11, pd12
g. El índice de segmento de la representación
i. Nsub11, Nsub12
ii. ept11, ept12
iii. fo11, fo12
iv. sdur11 [i], sdur12[i]
v. ssi11 [i], ssi12[i]
h. La representación en sí misma se puede acortar
Actualización y adición de elementos y atributos en el nuevo segundo período para cada representación: a. add period@duration pdur2
b. BaseURL bu21, bu22
c. SegmentBase@indexRange ir21, ir22
d. SegmentBase@presentationTimeOffset pto21, pto22
e. SegmentBase@presentationDuration pd21, pd22
f. El índice de segmento de la representación
i. Nsub21, Nsub22
ii. ept21, ept22
iii. fo21, fo22
iv. sdur21[i], sdur22[i]
v. ssi21[i], ssi22[i]
La representación en sí misma se puede generar.
[0047] La nueva información se puede generar como sigue para la primera representación que se alinea con el delimitador de segmento. Primero se puede encontrar el Nsub11 que corresponde a tsplit, por ejemplo, de acuerdo con el siguiente algoritmo:
• time = ept1 - pto1
• Nsub11 = 0
• mientras (time < tsplit*ts1 && Nsub11 < Nsub1))
• hacer
◦ time = sdur[Nsub11]
◦ Nsub11++
• hecho
[0048] Mediante este algoritmo, se puede determinar Nsub11. Nsub11 puede ser más pequeño que Nsub1. Si Nsub11 no es más pequeño que Nsub1, no necesariamente se realiza una división de período.
[0049] El tiempo de división para la representación 1 puede ser tsplit1 = time/ts1 >= tsplit ya que puede que se desee una división en un delimitador de segmento exacto. Téngase en cuenta que la división anunciada puede ser tsplit, pero en un nivel de representación, solo se dividen los delimitadores del segmento. El nuevo tamaño del índice del segmento puede ser más pequeño que el previo, es decir, el nuevo tamaño del índice del segmento puede ser (Nsub1 - Nsub11)*12 bytes más pequeño. Esto se puede deducir del primer desplazamiento.
[0050] El tiempo puede ser la duración de la presentación pd11. Se puede mantener el period@start del período 1. Se puede establecer el period@duration en tsplit. El siguiente algoritmo es un ejemplo de cómo se puede generar la nueva información para la representación 1 en el período 1.
• bu11 = bu1_period1
• ir11 = ir1 -(Nsub1 - Nsub11)*12
• pto11 = pto1
• pd11 = time
• ept11 = ept1
• fo11 = fo1 -(Nsub1 - Nsub11)*12
• i = 0
• mientras (mientras (i < Nsub11)
• hacer
◦ ssi11 [i] = ssi1[i]
◦ i++
• hecho
[0051] A continuación se puede encontrar Nsub12 que corresponde a tsplit, por ejemplo, de acuerdo con el siguiente algoritmo:
• time = ept2 - pto2
• Nsub12=0
• mientras (time < tsplit*ts2 && Nsub12 < Nsub2))
• hacer
◦ time = sdur[Nsub12]
◦ Nsub12++
• hecho
[0052] El tiempo de división real para la representación 2 puede ser tsplit2 = time/ts2 >= tsplit, puede que se desee una división en un delimitador de subsegmento exacto. El nuevo tamaño del índice del segmento puede ser más pequeño que el previo, por ejemplo, puede ser (Nsub2 - Nsub12)*12 bytes más pequeño. Esto se puede deducir del primer desplazamiento.
[0053] El tiempo puede ser la duración de la presentación pd21. El algoritmo a continuación es un ejemplo de cómo se puede generar la nueva información para la representación 2 en el período 1.
• bu12 = bu2_period1
• ir12 = ir2 -(Nsub2 - Nsub12)*12
• pto12 = pto2
• pd12 = time
• ept12 = ept2
• fo12 = fo2 -(Nsub2 - Nsub12)*12
• i = 0
• mientras (mientras (i < Nsub12))
• hacer
◦ ssi12[i] = ssi2[i]
◦ i++
• hecho
[0054] Se puede generar un nuevo período 2. En particular, en un ejemplo, un dispositivo servidor puede generar el nuevo period2. En primer lugar, el dispositivo de servidor 60 puede copiar la información del período 1 (también el identificador de activos y los conjuntos de adaptación con identificadores, etc.). No es necesario proporcionar el period@start del nuevo período. El period@duration pdur2 del nuevo período puede ser mpDUR - tsplit. El siguiente algoritmo es un ejemplo de cómo se puede generar la nueva información para la representación 1 en el período 2.
Nsub12 = Nsub1 - Nsub11
bu21 = bu1_period2
ir21 = ir1 -(Nsub1 - Nsub12)*12
pto21 = (tsplit1 - tsplit)*ts1
pd21 =pd 1 -pd 11
ept21 = pd1 1
fo21 = fo1 -(Nsub1 - Nsub12)*12
i = 0
mientras (mientras (i < Nsub12))
hacer
◦ ssi21[i] = ssi1[i+Nsub11]
◦ i++
• hecho
[0055] El siguiente algoritmo es un ejemplo de cómo se puede generar la nueva información para la representación 2 en el período 2.
Nsub22 = Nsub2 - Nsub12
• bu22 = bu2_period2
ir22 = ir2 -(Nsub2 - Nsub22)*12
pto22 = (tsplit2 - tsplit)*ts2
pd22 = pd2 - pd12
ept22 = pd12
fo22 = fo2 -(Nsub2 - Nsub22)*12
i = 0
• mientras (mientras (i < Nsub22))
• hacer
◦ ssi22[i] = ssi2[i+Nsub12]
◦ i++
• hecho
[0056] En otros ejemplos, tsplit1 se puede usar como un tiempo dividido para que pto21 sea 0. Este puede ser el caso, ya que la división se puede hacer en la trama IDR.
[0057] La información anterior se puede mapear nuevamente en una MPD completa con la misma información, pero mediante el algoritmo analizado anteriormente, se puede generar un punto de empalme en el tiempo tsplit. Se puede insertar cualquier período en el punto de empalme. El esfuerzo anterior puede eliminar MPD@mediaPresentationDuration y añadir y reemplazar como se documenta anteriormente.
[0058] En otra técnica de ejemplo de esta divulgación, se puede usar un flujo en directo. Para una información de perfil en directo, la información puede estar disponible desde la MPD y los segmentos. La escala de tiempo de la pista se puede extraer de la escala de tiempo del índice de segmento y se puede indicar como escala de tiempo. El número total de segmentos Nseg se puede extraer de la información de segmento. El tiempo de presentación más temprano ept se puede extraer del índice de segmento como el earliest_presentation_time. El primer desplazamiento @startNumber se puede extraer de la MPD. Para cada segmento I, la duración de segmento en el índice de segmento de cada subsegmento hoja indicado como sdur[i] y otra información relacionada con el segmento si[i].
[0059] En una presentación de ejemplo, la presentación se puede dividir en dos períodos lo más temprano en el tiempo de presentación de medios tsplit expresado relativo al período tiempo de inicio. Es posible que esta división no se alinee con el delimitador del segmento del segundo conjunto de adaptación. Pueden existir dos conjuntos de adaptación y cada conjunto de adaptación puede tener una representación.
[0060] Se puede suponer que la siguiente información está disponible para el contenido de período único. • period@start ps
MPD@mediaPresentationDuration mpDUR
SegmentTemplate@media mt1, mt2
SegmentTemplate@timecale ts1, ts2
SegmentTemplate@presentationDuration pd1, pd2
• La información de segmento
◦ Nseg1, Nseg2
◦ ept1, ept2
◦ sn1,sn2
◦ sdur1[i], sdur2[i]
◦ si1 [i], si2[i]
[0061] Para generar una nueva presentación de medios, se puede generar la siguiente información:
• Un dispositivo de servidor puede actualizar atributos y elementos en el primer período para cada representación de cada conjunto de adaptación como sigue:
period@start ps1
◦ add period@duration pdur1 = tsplit
SegmentTemplate@media mt11, mt12
SegmentTemplate@presentationTimeOffset pto11, pto12
SegmentTemplate@presentationDuration pd11, pd12
◦ La información de segmento de la representación
■ Nseg11, Nseg12
■ ept11, ept12
■ sn11, sn12
■ sdur11 [i], sdur12[i]
■ si11 [i], si12[i]
◦ La representación en sí misma se puede acortar
• Un dispositivo de servidor puede actualizar y añadir elementos y atributos en el nuevo segundo período para cada representación, como sigue:
◦ add period@duration pdur2
SegmentTemplate@media mt21, mt22
SegmentTemplate@presentationTimeOffset pto21, pto22
SegmentTemplate@presentationDuration pd21, pd22
◦ La información de segmento de la representación
■ Nseg21, Nseg22
■ ept21, ept22
■ sn21,sn22
■ sdur21[i], sdur22[i]
■ si21 [i], si22[i]
◦ La representación en sí misma se puede generar
[0062] Un dispositivo servidor puede generar nueva información como sigue para la primera representación que se alinea con el delimitador de segmento. Primero se puede encontrar el Nseg11 que corresponde a tsplit, de acuerdo con el siguiente algoritmo:
• time = ept1 - pto1
• Nseg11 = 0
• mientras (time < tsplit*ts1 && Nseg11 < Nseg1))
• hacer
◦ time = sdur[Nseg11]
◦ Nseg11++
• hecho
[0063] Mediante este algoritmo, un dispositivo servidor puede determinar Nseg11. Nseg11 puede ser más pequeño que Nseg1. Si Nseg11 no es más pequeño que Nseg1, no se puede dividir el período. El tiempo puede ser la duración de la presentación pd11. El tiempo de división para la representación 1 puede ser tsplit1 = time/ts1 >= tsplit ya que puede que se desee una división en un delimitador de segmento exacto. Téngase en cuenta que la división anunciada puede ser tsplit, pero en un nivel de representación, solo se pueden dividir los delimitadores del segmento. Se puede mantener el period@start del período 1. Se puede establecer el period@duration en tsplit. El siguiente algoritmo es un ejemplo de cómo se puede generar la nueva información para la representación 1 en el período 1.
• mt11 = mt1
• pto11 = pto1
• pd11 = time
• ept11 = ept1
• sn11 = sn1
• i = 0
• mientras (mientras (i < Nseg11))
• hacer
◦ si11[i] = sil [i]
◦ i++
• hecho
[0064] A continuación se puede encontrar Nseg12 que corresponde a tsplit, por ejemplo, de acuerdo con el siguiente algoritmo de ejemplo:
• time = ept2 - pto2
• Nseg12=0
• mientras (time < tsplit*ts2 && Nseg12 < Nseg2))
• hacer
◦ time = sdur[Nseg12]
◦ Nseg12++
• hecho
[0065] El tiempo de división real para la representación 2 puede ser tsplit2 = time/ts2 >= tsplit, ya que puede que se desee una división en un delimitador de subsegmento exacto. El tiempo puede ser la duración de la presentación pd12. El siguiente algoritmo es un ejemplo de cómo se puede generar la nueva información para la representación 2 en el período 1.
mt12 = mt2
pto12 = pto2
pd12 = time
ept12 = ept2
sn12 = sn2
i = 0
mientras (mientras (i < Nseg12))
• hacer
◦ si12[i] = si2[i]
◦ i++
• hecho
[0066] Se puede generar un nuevo período 2. En primer lugar, la información del período 1 se puede copiar (también el identificador de activos y los conjuntos de adaptación con identificadores, y así sucesivamente). Es posible que no se proporcione el period@start del nuevo período. El period@duration pdur2 del nuevo período puede ser mpDUR - tsplit. El siguiente algoritmo es un ejemplo de cómo se puede generar la nueva información para la representación 1 en el período 2.
• Nseg12 = Nseg1 - Nseg11
• mt21 = mt1
• pto21 = (tsplit1 - tsplit)*ts1
• pd21 = pd1 - pd11
• ept21 = pd11
• sn21 = sn1 Nseg11
• i = 0
• mientras (mientras (i < Nseg12))
• hacer
◦ si21[i] = si1[i+Nseg11]
◦ i++
• hecho
[0067] El siguiente algoritmo es un ejemplo de cómo se puede generar la nueva información para la representación 2 en el período 2.
• Nseg22 = Nseg2 - Nseg12
• mt22 = mt2
• pto22 = (tspl it1 - tsplit)*ts2
• pd22 = pd2 - pd12
• ept22 = pd12
• sn22 = sn2 Nseg12
• i = 0
• mientras (mientras (i < Nseg22))
• hacer
◦ si22[i] = si2[i+Nseg12]
◦ i++
• hecho
[0068] En algunos ejemplos, tsplit1 se puede usar como tiempo dividido para que pto21 sea 0. Este puede ser el caso, ya que la división se puede hacer en la trama IDR.
[0069] La información anterior se puede mapear nuevamente en una MPD completa con la misma información, pero con esto, se puede generar un punto de empalme en el tiempo tsplit. Cualquier período se puede insertar aquí. El esfuerzo anterior puede eliminar MPD@mediaPresentationDuration y añadir y reemplazar la información que se documenta anteriormente.
[0070] Usando técnicas de la divulgación actual, se puede optimizar el perfil a demanda. El problema con la oferta de perfil A demanda puede ser que para realizar un período de construcción para la inserción de publicidad, uno tiene que modificar físicamente el archivo. Esto tiene dos consecuencias. Primero, las modificaciones requieren modificaciones a nivel de archivo y son relativamente complejas. Esto significa que para la inserción de publicidad, el contenido se puede cambiar. Segundo, si se consideran diferentes puntos de empalme de publicidad, se pueden usar diferentes contenidos y diferentes URL. Esto significa que para el mismo contenido, se puede reducir el almacenamiento y especialmente la eficacia del almacenamiento en caché. Por lo tanto, se puede proponer a continuación para hacer posible la inserción de períodos y de publicidad en base solo a información de nivel de MPD. Esto requiere algunas modificaciones en la MPD y estas herramientas se añadirán al perfil de inserción de publicidad recientemente desarrollado que incluye xlink.
[0071] En un ejemplo de un flujo a demanda, la presentación se puede dividir en dos períodos lo más temprano en el tiempo de presentación de medios tsplit expresado relativo al período tiempo de inicio. Pueden existir dos conjuntos de adaptación y cada conjunto de adaptación puede tener una representación. En algunos ejemplos, se puede aplicar una alineación de un delimitador de subsegmento de los conjuntos de adaptación. Se puede suponer que la siguiente información está disponible para el contenido de período único.
period@start ps
MPD@mediaPresentationDuration mpDUR
BaseURL bu1, bu2
SegmentBase@indexRange ir1, ir2
SegmentBase@timecale ts1, ts2
SegmentBase@presentationDuration pd1, pd2
El índice de segmento de la representación
◦ Nsub1, Nsub2
◦ ept1, ept2
◦ fo1, fo2
◦ sdur1[i], sdur2[i]
◦ fo1 [i], fo2[i]
◦ ssi1 [i], ssi2[i]
[0072] Para generar una nueva presentación de medios, se puede generar la siguiente información:
• Actualización de atributos y elementos en el primer período para cada representación de cada conjunto de adaptación:
period@start ps1
◦ add period@duration pdur1 = tsplit
SegmentBase@indexRange
SegmentBase@presentationTimeOffset pto11, pto12
SegmentBase@presentationDuration pd11, pd12
• Actualización y adición de elementos y atributos en el nuevo segundo período para cada representación:
◦ add period@duration pdur2
SegmentBase@indexRange
SegmentBase@presentationTimeOffset pto21, pto22
SegmentBase@presentationDuration pd21, pd22
[0073] La información anterior para pto y pd se puede generar de la misma manera que para el perfil a demanda. La única diferencia puede ser que se puede decir explícitamente en la representación, que solo se puede reproducir el tiempo entre pto y pd para esta representación, usando la información en el índice de segmento.
[0074] El siguiente ejemplo es en referencia a la FIG. 3. Puede existir una MPD disponible que señale contenido a demanda en la CDN que contenga una presentación de período único. La MPD, en base a señales (oportunidades de inserción de publicidad), se puede modificar para añadir múltiples períodos sin cambiar el contenido en el servidor. Para cada oportunidad, se puede proporcionar un xlink al servidor de decisión de publicidad. La MPD se puede proporcionar al cliente DASH. Para cada xlink en la MPD, se puede verificar si se añade publicidad, posiblemente dirigida al usuario. Si no es así, el período se puede resolver a 0. Si es así, se puede añadir otro contenido. El cliente DASH reproduce el contenido de forma continua y, si se resuelve a cero, el motor de medios no se puede inicializar nuevamente.
[0075] La FIG. 1 es un diagrama de bloques que ilustra un sistema 10 de ejemplo que implementa técnicas para transmitir en continuo datos de medios a través de una red. En este ejemplo, el sistema 10 incluye un dispositivo de preparación de contenido 20, un dispositivo servidor 60 y un dispositivo cliente 40. El dispositivo cliente 40 y el dispositivo servidor 60 están acoplados de forma comunicativa por una red 74, que puede comprender Internet. En algunos ejemplos, el dispositivo de preparación de contenido 20 y el dispositivo servidor 60 también pueden estar acoplados por la red 74 u otra red, o pueden estar directamente acoplados de forma comunicativa. En algunos ejemplos, el dispositivo de preparación de contenido 20 y el dispositivo servidor 60 pueden comprender el mismo dispositivo.
[0076] El dispositivo de preparación de contenido 20, en el ejemplo de la FIG. 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 datos de audio captado que el codificador de audio 26 va a codificar. De forma alternativa, la fuente de audio 22 puede comprender un medio de almacenamiento que almacena datos de audio previamente registrados, un generador de datos de audio tal como un sintetizador informatizado, o cualquier otra fuente de datos de audio. La fuente de vídeo 24 puede comprender una cámara de vídeo que produce datos de vídeo que el codificador de vídeo 28 va a codificar, un medio de almacenamiento codificado con datos de vídeo previamente registrados, una unidad de generación de datos de vídeo, tal como una fuente de gráficos de ordenador, o cualquier otra fuente de datos de vídeo. El dispositivo de preparación de contenido 20 no está necesariamente acoplado de forma comunicativa al dispositivo servidor 60 en todos los ejemplos, pero puede almacenar contenido multimedia en un medio separado que el dispositivo servidor 60 lee.
[0077] Los datos de audio y vídeo no procesados pueden comprender datos analógicos o digitales. Los datos analógicos se pueden digitalizar antes de que el codificador de audio 26 y/o el codificador de vídeo 28 los codifiquen. La fuente de audio 22 puede obtener datos de audio a partir de un participante que habla mientras el participante que habla está hablando, y la fuente de vídeo 24 puede obtener simultáneamente datos de vídeo del participante que habla. En otros ejemplos, la fuente de audio 22 puede comprender un medio de almacenamiento legible por ordenador que comprende datos de audio almacenados, y la fuente de vídeo 24 puede comprender un medio de almacenamiento legible por ordenador que comprende datos de vídeo almacenados. De esta manera, las técnicas descritas en esta divulgación se pueden aplicar a datos de audio y vídeo en tiempo real, de transmisión en directo y en continuo, o a datos de audio y vídeo archivados y prerregistrados.
[0078] Las tramas de audio que corresponden a tramas de vídeo son en general tramas de audio que contienen datos de audio que la fuente de audio 22 ha captado (o generado) al mismo tiempo que unos datos de vídeo, que la fuente de vídeo 24 ha captado (o generado), que están contenidos dentro de las tramas de vídeo. Por ejemplo, mientras un participante que habla en general produce, al hablar, datos de audio, la fuente de audio 22 capta los datos de audio, y la fuente de vídeo 24 capta los datos de vídeo del participante que habla al mismo tiempo, es decir, mientras la fuente de audio 22 está captando los datos de audio. Así pues, una trama de audio puede corresponder temporalmente a una o más tramas de vídeo en particular. En consecuencia, una trama de audio correspondiente a una trama de vídeo corresponde en general a una situación en la que se han captado datos de audio y datos de vídeo al mismo tiempo, y para la que una trama de audio y una trama de vídeo comprenden, respectivamente, los datos de audio y los datos de vídeo que se han captado al mismo tiempo.
[0079] En algunos ejemplos, el codificador de audio 26 puede codificar una marca temporal en cada trama de audio codificada, que representa un tiempo en el que se han registrado los datos de audio para la trama de audio codificada y, de forma similar, el codificador de vídeo 28 puede codificar una marca temporal en cada trama de vídeo codificada, que representa un tiempo en el que se han registrado los datos de vídeo para la trama de vídeo codificada. En dichos ejemplos, una trama de audio correspondiente a una trama de vídeo puede comprender una trama de audio que comprende una marca temporal y una trama de vídeo que comprende la misma marca temporal. El dispositivo de preparación de contenido 20 puede incluir un reloj interno a partir del cual el codificador de audio 26 y/o el codificador de vídeo 28 pueden generar las marcas temporales, o que la fuente de audio 22 y la fuente de vídeo 24 pueden usar para asociar datos de audio y vídeo, respectivamente, a una marca temporal.
[0080] En algunos ejemplos, la fuente de audio 22 puede enviar datos al codificador de audio 26, correspondientes a un tiempo en el que se han registrado los datos de audio, y la fuente de vídeo 24 puede enviar datos al codificador de vídeo 28, correspondientes a un tiempo en el que se han registrado los datos de vídeo. En algunos ejemplos, el codificador de audio 26 puede codificar un identificador de secuencia en unos datos de audio codificados para indicar un orden temporal relativo de los datos de audio codificados, pero sin indicar necesariamente un tiempo absoluto en el que se han registrado los datos de audio y, de forma similar, el codificador de vídeo 28 también puede usar identificadores de secuencia para indicar un orden temporal relativo de los datos de vídeo codificados. De forma similar, en algunos ejemplos, un identificador de secuencia se puede asociar a, o correlacionar de otro modo con, una marca temporal.
[0081] El codificador de audio 26 en general produce un flujo de datos de audio codificados, mientras que el codificador de vídeo 28 produce un flujo de datos de vídeo codificados. Cada flujo de datos individual (ya sea de audio o vídeo) se puede denominar flujo elemental. Un flujo elemental es un componente único codificado digitalmente (y posiblemente comprimido) de una representación. Por ejemplo, la parte de vídeo o audio codificado de la representación puede ser un flujo elemental. Un flujo elemental se puede convertir en un flujo elemental empaquetado (PES) antes de encapsularse dentro de un archivo de vídeo. Dentro de la misma representación, se puede usar un ID de flujo para distinguir los paquetes PES que pertenecen a un flujo elemental de los otros. La unidad básica de datos de un flujo elemental es un paquete de flujo elemental empaquetado (PES). Por tanto, los datos de vídeo codificados corresponden en general a flujos de vídeo elementales. De forma similar, los datos de audio corresponden a uno o más flujos elementales respectivos.
[0082] Muchas normas de codificación de vídeo, tales como ITU-T H.264/AVC y la inminente norma de codificación de vídeo de alta eficacia (HEVC), definen la sintaxis, la semántica y el proceso de descodificación para flujos de bits sin errores, cualquiera de los cuales se ajusta a un determinado perfil o nivel. Las normas de codificación de vídeo típicamente no especifican el codificador, pero el codificador se ocupa de garantizar que los flujos de bits generados cumplan las normas para un descodificador. En el contexto de las normas de codificación de vídeo, un "perfil" corresponde a un subconjunto de algoritmos, rasgos característicos o herramientas y restricciones que se les aplican. Según lo definido por la norma H.264, por ejemplo, un "perfil" es un subconjunto de toda la sintaxis del flujo de bits que está especificada por la norma H.264. Un "nivel" corresponde a las limitaciones del consumo de recursos del descodificador, tales como, por ejemplo, memoria de descodificador y cálculo, que están relacionados con la resolución de las imágenes, la velocidad de bits y la velocidad de procesamiento de bloques. Un perfil se puede señalizar con un valor de profile_idc (indicador de perfil), mientras que un nivel se puede señalizar con un valor de level_idc (indicador de nivel).
[0083] La norma H.264, por ejemplo, reconoce que, dentro de los límites impuestos por la sintaxis de un perfil dado, todavía es posible requerir una gran variación en el rendimiento de los codificadores y descodificadores, dependiendo de los valores adoptados por los elementos sintácticos en el flujo de bits, tales como el tamaño especificado de las imágenes descodificadas. La norma H.264 reconoce además que, en muchas aplicaciones, no es ni práctico ni económico implementar un descodificador capaz de tratar todos los usos hipotéticos de la sintaxis dentro de un perfil en particular. Por consiguiente, la norma H.264 define un "nivel" como un conjunto especificado de restricciones impuestas a los valores de los elementos sintácticos en el flujo de bits. Estas restricciones pueden ser simples limitaciones de valores. De forma alternativa, estas restricciones pueden adoptar la forma de restricciones sobre combinaciones aritméticas de valores (por ejemplo, la anchura de la imagen multiplicada por la altura de la imagen multiplicada por el número de imágenes descodificadas por segundo). La norma H.264 establece además que las implementaciones individuales pueden admitir un nivel diferente para cada perfil admitido.
[0084] Un descodificador que se ajusta a un perfil habitualmente admite todas los rasgos característicos definidos en el perfil. Por ejemplo, como característica de codificación, la codificación de imágenes B no está admitida en el perfil de línea de base de H.264/AVC, pero está admitida en otros perfiles de H.264/AVC. Un descodificador que se ajusta a un nivel podría ser capaz de descodificar cualquier flujo de bits que no requiere recursos fuera 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 nivel para una sesión de transmisión completa. Más específicamente, en H.264/AVC, un nivel puede definir limitaciones en el número de macrobloques que es necesario procesar, el tamaño de la memoria intermedia de imágenes descodificadas (DPB), el tamaño de la memoria intermedia de imágenes codificadas (CPB), el intervalo de vectores de movimiento vertical, el número máximo de vectores de movimiento para cada dos MB consecutivos y si un bloque B puede tener divisiones de submacrobloque inferiores a 8x8 píxeles. De esta manera, un descodificador puede determinar si el descodificador es capaz de descodificar apropiadamente el flujo de bits.
[0085] En el ejemplo de la FIG. 1, la unidad de encapsulación 30 del dispositivo de preparación de contenido 20 recibe flujos elementales que comprenden datos de vídeo codificados desde el codificador de vídeo 28 y flujos elementales que comprenden datos de audio codificados desde el 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 paquetes PES a partir de datos codificados. En otros ejemplos, el codificador de vídeo 28 y el codificador de audio 26 pueden interactuar, cada uno, con los empaquetadores respectivos para formar paquetes PES a partir de datos codificados. En otros ejemplos más, la unidad de encapsulación 30 puede incluir empaquetadores para formar paquetes PES a partir de datos de audio y de vídeo codificados.
[0086] El codificador de vídeo 28 puede codificar datos de vídeo de contenido multimedia en una variedad de formas, para producir diferentes representaciones del contenido multimedia a diversas tasas de bits y con diversas características, tales como resoluciones de píxeles, tasas de tramas, conformidad con diversas normas de codificación, conformidad con diversos perfiles y/o niveles de perfiles para diversas normas de codificación, representaciones que tienen una o múltiples vistas (por ejemplo, para reproducción bidimensional o tridimensional), u otras características de ese tipo. Una representación, como se usa en esta divulgación, puede comprender uno de datos de audio, datos de vídeo, datos de texto (por ejemplo, para subtítulos cerrados) u otros datos de este tipo. La representación puede incluir un flujo elemental, tal como un flujo elemental de audio o un flujo elemental de vídeo. Cada paquete PES puede incluir un identificador stream_id que identifica el flujo elemental al que pertenece el paquete PES. La unidad de encapsulación 30 es responsable de ensamblar flujos elementales en archivos de vídeo (por ejemplo, segmentos) de diversas representaciones.
[0087] La unidad de encapsulación 30 recibe paquetes PES para flujos elementales de una representación desde el codificador de audio 26 y el codificador de vídeo 28 y forma las correspondientes unidades de capa de abstracción de red (NAL) a partir de los paquetes PES. En el ejemplo de H.264/AVC (codificación de vídeo avanzada), los segmentos de vídeo codificados están organizados en unidades de NAL, que proporcionan una representación de vídeo "adaptada para redes" que aborda aplicaciones tales como la videotelefonía, el almacenamiento, la radiodifusión o la transmisión en continuo. Las unidades NAL se pueden clasificar en unidades NAL de capa de codificación de vídeo (VCL) y unidades NAL no VCL. Las unidades de VCL pueden contener el motor de compresión central y pueden incluir datos a nivel de bloque, macrobloque y/o corte. Otras unidades de NAL pueden ser unidades de NAL no de VCL. En algunos ejemplos, una imagen codificada en una instancia de tiempo, normalmente presentada como una imagen codificada primaria, puede estar contenida en una unidad de acceso, que puede incluir una o más unidades NAL.
[0088] Las unidades NAL no VCL pueden incluir unidades NAL de conjunto de parámetros y unidades NAL SEI, entre otras. Los conjuntos de parámetros contienen información de cabecera de nivel de secuencia (en conjuntos de parámetros de secuencia (SPS)) y la información de cabecera de nivel de imagen que cambia raramente (en conjuntos de parámetros de imagen (PPS)). Con los conjuntos de parámetros (por ejemplo, PPS y SPS), la información que cambia raramente no necesita ser repetida para cada secuencia o imagen, de ahí que la eficacia de codificación se pueda mejorar. Además, el uso de conjuntos de parámetros puede permitir la transmisión fuera de banda de la información de cabecera importante, evitando la necesidad de transmisiones redundantes para resistencia a los errores. En los ejemplos de transmisión fuera de banda, las unidades de NAL de conjunto de parámetros se pueden transmitir en un canal diferente al de otras unidades de NAL, tales como las unidades de NAL de SEI.
[0089] La información de mejora complementaria (SEI) puede contener información que no es necesaria para descodificar las muestras de imágenes codificadas a partir de las unidades NAL VCL, pero puede ayudar en los procesos relacionados con la descodificación, visualización, resistencia a errores y otros propósitos. Los mensajes SEI pueden estar contenidos en unidades de NAL no de VCL. Los mensajes SEI son la parte normativa de algunas especificaciones estándar y, por lo tanto, no siempre son obligatorios para la implementación de descodificadores que cumplen las normas. Los mensajes SEI pueden ser mensajes SEI de nivel de secuencia o mensajes SEI de nivel de imagen. Parte de la información de nivel de secuencia puede estar contenida en mensajes SEI, tales como mensajes SEI de información de escalabilidad en el ejemplo de SVC y mensajes SEI de información de escalabilidad de vistas en MVC. Estos ejemplos de mensajes SEI pueden transmitir información, por ejemplo, sobre extracción de puntos de funcionamiento y características de los puntos de funcionamiento. Además, la unidad de encapsulación 30 puede formar un archivo de manifiesto, tal como una descripción de presentación de medios (MPD) que describe características de las representaciones. La unidad de encapsulación 30 puede formatear la MPD de acuerdo con un lenguaje de marcado extensible (XML).
[0090] La unidad de encapsulación 30 puede proporcionar datos para una o más representaciones de contenido multimedia, junto con el archivo de manifiesto (por ejemplo, la MPD), a la interfaz de salida 32. La interfaz de salida 32 puede comprender una interfaz de red o una interfaz para escribir en un medio de almacenamiento, tal como una interfaz de bus serie universal (USB), un grabador o quemador de CD o DVD, una interfaz para medios de almacenamiento magnéticos o flash, u otras interfaces para almacenar o transmitir datos de medios. La unidad de encapsulación 30 puede proporcionar datos de cada una de las representaciones de contenido multimedia a la interfaz de salida 32, que puede enviar los datos al dispositivo servidor 60 por medio de transmisión por red o medios de almacenamiento. En el ejemplo de la FIG. 1, el dispositivo servidor 60 incluye un medio de almacenamiento 62 que almacena diversos contenidos multimedia 64, incluyendo cada uno un respectivo archivo de manifiesto 66 y una o más representaciones 68A-68N (representaciones 68). En algunos ejemplos, la interfaz de salida 32 también puede enviar datos directamente a la red 74.
[0091] En algunos ejemplos, las representaciones 68 se pueden separar en conjuntos de adaptación. Es decir, diversos subconjuntos de representaciones 68 pueden incluir respectivos conjuntos comunes de características, tales como códec, perfil y nivel, resolución, número de vistas, formato de archivo para segmentos, información de tipo de texto que puede identificar un idioma u otras características de un texto que se va a visualizar con la representación y/o datos de audio que se van a descodificar y presentar, por ejemplo, mediante altavoces, información de ángulo de cámara que puede describir un ángulo de cámara o una perspectiva de cámara real de una escena para representaciones del conjunto de adaptación, información de calificación que describe la idoneidad del contenido para audiencias en particular, o similares.
[0092] El archivo de manifiesto 66 puede incluir datos indicativos de los subconjuntos de representaciones 68 correspondientes a conjuntos de adaptación en particular, así como características comunes para los conjuntos de adaptación. El archivo de manifiesto 66 también puede incluir datos representativos de características individuales, tales como las tasas de bits, para representaciones individuales de conjuntos de adaptación. De esta manera, un conjunto de adaptación puede hacer posible una adaptación simplificada del ancho de banda de red. Las representaciones de un conjunto de adaptación se pueden indicar usando elementos hijo de un elemento del conjunto de adaptación del archivo de manifiesto 66. De acuerdo con las técnicas de esta divulgación, el dispositivo servidor 60 puede modificar el archivo de manifiesto 66 para indicar que el contenido multimedia 64 incluye dos o más períodos continuos, entre los cuales se puede insertar contenido publicitario.
[0093] En particular, el dispositivo servidor 60 puede construir el archivo de manifiesto 66 usando cualquiera de las diversas técnicas descritas anteriormente, o técnicas similares, para indicar que hay períodos continuos en el contenido multimedia 64, de modo que se puede insertar contenido adicional (tal como contenido publicitario) entre los períodos continuos. Por ejemplo, el dispositivo servidor 60 puede añadir un atributo Period@duration al archivo de manifiesto 66 para cada periodo que se divide en dos periodos continuos. Del mismo modo, el dispositivo servidor 60 puede añadir datos indicativos del nuevo período continuo al archivo de manifiesto 66, tal como un elemento Period@duration, elementos baseURL, elementos SegmentBase@indexRange, elementos SegmentBase@presentationTimeOffset, y elementos SegmentBase@presentationDuration. Además, el dispositivo de servidor 60 puede señalizar los diversos elementos de índice de segmento analizados anteriormente, y generar nuevas representaciones para el nuevo período a partir de las representaciones existentes.
[0094] En consecuencia, en algunos ejemplos, el dispositivo servidor 60 puede dividir el contenido principal de los datos de medios en una pluralidad de períodos que incluyen un primer período y un segundo período, donde el primer período y el segundo período son secuenciales temporalmente. Es decir, los primer y segundo períodos incluyen datos para contenido principal que se pretende reproducir de forma continua. El dispositivo servidor 60 puede insertar contenido de medios secundario (por ejemplo, contenido de medios publicitario) entre los primer y segundo períodos. Además, el dispositivo servidor 60 puede señalizar un indicador de tiempo para cada uno de la pluralidad de períodos que define una o más características de tiempo para cada uno de la pluralidad de períodos. El indicador de tiempo puede comprender, por ejemplo, los atributos Period@duration en el archivo de manifiesto 66 para los periodos. El dispositivo servidor 60 puede a continuación recibir una petición, por ejemplo, del dispositivo cliente 40 para recuperar un flujo de medios que comprende los períodos, el contenido de medios secundario y los indicadores de tiempo. La petición puede ser una de una pluralidad de peticiones para recuperar datos del flujo de medios desde el dispositivo cliente 40. Por ejemplo, la pluralidad de peticiones pueden ser peticiones HTTP GET o GET parciales.
[0095] Aunque las técnicas anteriores se describen con respecto al dispositivo de servidor 60, se debe entender que el dispositivo de preparación de contenido 20 también se puede (es decir, además o como alternativa) configurar para dividir un período en dos períodos continuos e insertar datos de medios publicitarios entre los períodos continuos.
[0096] El dispositivo servidor 60 incluye una unidad de procesamiento de peticiones 70 y una interfaz de red 72. En algunos ejemplos, el dispositivo servidor 60 puede incluir una pluralidad de interfaces de red. Además, una cualquiera o todas los rasgos característicos del dispositivo servidor 60 se pueden implementar en otros dispositivos de una red de entrega de contenido, tales como enrutadores, puentes, dispositivos proxy, conmutadores u otros dispositivos. En algunos ejemplos, los dispositivos intermedios de una red de entrega de contenido pueden almacenar en memoria caché datos de contenido multimedia 64, e incluir componentes que se ajustan sustancialmente a los del dispositivo servidor 60. En general, la interfaz de red 72 está configurada para enviar y recibir datos por medio de la red 74.
[0097] La unidad de procesamiento de peticiones 70 está configurada para recibir peticiones de red desde dispositivos cliente, tales como el dispositivo cliente 40, para datos del medio de almacenamiento 62. Por ejemplo, la unidad de procesamiento de peticiones 70 puede implementar el protocolo de transferencia de hipertexto (HTTP) versión 1,1, como se describe en RFC 2616, "Protocolo de transferencia de hipertexto -HTTP/1,1", por R. Fielding et al, Network Working Group, IETF, junio de 1999. Es decir, la unidad de procesamiento de peticiones 70 puede estar configurada para recibir peticiones GET o GET parciales HTTP y proporcionar datos de contenido multimedia 64 como respuesta a las peticiones. Las peticiones pueden especificar un segmento de una de las representaciones 68, por ejemplo, usando un URL del segmento. En algunos ejemplos, las peticiones también pueden especificar uno o más intervalos de bytes del segmento, comprendiendo por tanto peticiones GET parciales. La unidad de procesamiento de peticiones 70 puede estar configurada además para atender peticiones HEAD HTTP para proporcionar datos de cabecera de un segmento de una de las representaciones 68. En cualquier caso, la unidad de procesamiento de peticiones 70 puede estar configurada para procesar las peticiones para proporcionar los datos solicitados a un dispositivo solicitante, tal como el dispositivo cliente 40.
[0098] De forma adicional o alternativa, la unidad de procesamiento de peticiones 70 puede estar configurada para entregar datos de medios por medio de un protocolo de radiodifusión o multidifusión, tal como el eMBMS. El dispositivo de preparación de contenido 20 puede crear segmentos y/o subsegmentos DASH, sustancialmente de la misma manera que se ha descrito, pero el dispositivo servidor 60 puede entregar estos segmentos o subsegmentos usando el eMBMS u otro protocolo de transporte de red de radiodifusión o multidifusión. Por ejemplo, la unidad de procesamiento de peticiones 70 puede estar configurada para recibir una petición para unirse a un grupo de multidifusión desde el dispositivo cliente 40. Es decir, el dispositivo servidor 60 puede comunicar una dirección de protocolo de Internet (IP), asociada a un grupo de multidifusión a unos dispositivos cliente, que incluyen el dispositivo cliente 40, asociados a un contenido de medios en particular (por ejemplo, radiodifusión de un acontecimiento en directo). El dispositivo cliente 40, a su vez, puede presentar una petición para unirse al grupo de multidifusión. Esta petición se puede propagar por toda la red 74, por ejemplo, los enrutadores que componen la red 74, de modo que se hace que los enrutadores dirijan el tráfico destinado a la dirección IP asociada al grupo de multidifusión a los dispositivos cliente abonados, tales como el dispositivo cliente 40.
[0099] Como se ilustra en el ejemplo de la FIG. 1, el contenido multimedia 64 incluye el archivo de manifiesto 66, que puede corresponder a una descripción de presentación de medios (MPD). El archivo de manifiesto 66 puede contener descripciones de diferentes representaciones alternativas 68 (por ejemplo, servicios de vídeo con diferentes calidades) y la descripción puede incluir, por ejemplo, información de códec, un valor de perfil, un valor de nivel, una tasa de bits y otras características descriptivas de las representaciones 68. El dispositivo cliente 40 puede recuperar la MPD de una presentación de medios para determinar cómo acceder a segmentos de las representaciones 68.
[0100] En particular, la unidad de recuperación 52 (que puede implementar las técnicas de esta divulgación) puede recuperar datos de configuración (no mostrados) del dispositivo cliente 40 para determinar las capacidades de descodificación del descodificador de vídeo 48 y las capacidades de representación de la salida de vídeo 44. Los datos de configuración también pueden incluir cualquiera o todas las preferencias de idioma seleccionadas por un usuario del dispositivo cliente 40, una o más perspectivas de cámara correspondientes a las preferencias de profundidad establecidas por el usuario del dispositivo cliente 40 y/o una preferencia de calificación seleccionada por el usuario del dispositivo cliente 40. La unidad de recuperación 52 puede comprender, por ejemplo, un navegador web o un cliente de medios configurados para presentar peticiones GET y GET parcial HTTP. La unidad de recuperación 52 puede corresponder a unas instrucciones de programa informático ejecutadas por uno o más procesadores o unidades de procesamiento (no mostrados) del dispositivo cliente 40. En algunos ejemplos, la totalidad o unas partes de la funcionalidad descrita con respecto a la unidad de recuperación 52 se pueden implementar en hardware, o una combinación de hardware, programa informático y/o firmware, donde se puede proporcionar el hardware requerido para ejecutar instrucciones para programa informático o firmware.
[0101] La unidad de recuperación 52 puede comparar las capacidades de descodificación y representación del dispositivo cliente 40 con las características de las representaciones 68 indicadas por la información del archivo de manifiesto 66. La unidad de recuperación 52 puede recuperar inicialmente al menos una parte del archivo de manifiesto 66 para determinar las características de las representaciones 68. Por ejemplo, la unidad de recuperación 52 puede solicitar una parte del archivo de manifiesto 66 que describe las características de uno o más conjuntos de adaptación. La unidad de recuperación 52 puede seleccionar un subconjunto de representaciones 68 (por ejemplo, un conjunto de adaptación) que tiene características que se pueden satisfacer mediante las capacidades de codificación y representación del dispositivo cliente 40. La unidad de recuperación 52 puede determinar las tasas de bits para las representaciones del conjunto de adaptación, determinar una cantidad actualmente disponible de ancho de banda de red y recuperar segmentos de una de las representaciones que tiene una tasa de bits que se puede satisfacer mediante el ancho de banda de red.
[0102] En general, las representaciones de tasas de bits mayores pueden producir una reproducción de vídeo de mayor calidad, mientras que las representaciones de tasas de bits más bajas pueden proporcionar una reproducción de vídeo de calidad suficiente cuando el ancho de banda de red disponible se reduce. En consecuencia, cuando el ancho de banda de red disponible es relativamente alto, la unidad de recuperación 52 puede recuperar datos de representaciones de tasa de bits relativamente alta, mientras que cuando el ancho de banda de red disponible es bajo, la unidad de recuperación 52 puede recuperar datos de representaciones de tasa de bits relativamente baja. De esta manera, el dispositivo cliente 40 puede transmitir en continuo datos de medios a través de la red 74 mientras que también se adapta a la disponibilidad cambiante de ancho de banda de red de la red 74.
[0103] De forma adicional o alternativa, la unidad de recuperación 52 puede estar configurada para recibir datos de acuerdo con un protocolo de red de radiodifusión o multidifusión, tal como la multidifusión eMBMS o IP. En dichos ejemplos, la unidad de recuperación 52 puede presentar una petición para unirse a un grupo de red de multidifusión asociado a un contenido de medios en particular. Después de unirse al grupo de multidifusión, la unidad de recuperación 52 puede recibir datos del grupo de multidifusión sin peticiones adicionales emitidas al dispositivo servidor 60 o al dispositivo de preparación de contenido 20. La unidad de recuperación 52 puede presentar una petición para abandonar el grupo de multidifusión cuando ya no se necesitan datos del grupo de multidifusión, por ejemplo, para detener la reproducción o para cambiar canales a un grupo de multidifusión diferente.
[0104] Además, de acuerdo con las técnicas de esta divulgación, la unidad de recuperación 52 se puede configurar para determinar si el archivo de manifiesto 66 indica que dos o más períodos de contenido multimedia 64 son continuos. Por ejemplo, la unidad de recuperación 52 puede determinar que dos conjuntos de adaptación de dos períodos son de período continuo cuando los conjuntos de adaptación están asociados, el archivo de manifiesto 66 incluye un elemento @presentationTimeOffset, o se puede inferir como 0, para todas las representaciones en los conjuntos de adaptación, dentro de un conjunto de adaptación, el valor de @presentationTimeOffset es idéntico para todas las representaciones, la suma del valor de @presentationTimeOffset y la duración de presentación de todas las representaciones en un conjunto de adaptación son idénticos al valor de @presentationTimeOffset del otro conjunto de adaptación.
[0105] Además, la unidad de recuperación 52 puede usar el segmento de inicialización de una representación en un conjunto de adaptación de un período como un segmento de inicialización para una representación de otro conjunto de adaptación de otro período, donde los conjuntos de adaptación son de período continuo, si las representaciones tienen el mismo valor para @id. Del mismo modo, cuando dos conjuntos de adaptación son de período continuo y el conjunto de adaptación posterior tiene un descriptor suplementario asociado con @schemeIDURI="urn:mpeg:dash:period-switchable," la unidad de recuperación 52 puede determinar que las representaciones en uno de los conjuntos de adaptación se pueden concatenar con cualquier representación del otro conjunto de adaptación sin el segmento de inicialización del otro conjunto de adaptación. De esta manera, la unidad de recuperación 52 puede seleccionar un conjunto de adaptación del segundo período en base a una selección de un conjunto de adaptación del primer período (por ejemplo, sin analizar adicionalmente las características del conjunto de adaptación del segundo período), suponiendo que los primer y segundo períodos son continuos.
[0106] De esta manera, la unidad de recuperación 52 se puede configurar para determinar que un archivo de manifiesto para contenido de medios indica que el contenido de medios incluye un primer período y un segundo período, que el archivo de manifiesto indica que los primer y segundo períodos son continuos, y que datos de medios publicitarios están disponibles para la inserción entre los primer y segundo períodos. La unidad de recuperación 52 también se puede configurar para seleccionar un primer conjunto de adaptación en el primer período en base al menos en parte a las características señalizadas para el primer conjunto de adaptación. Dichas características pueden incluir, por ejemplo, características de codificación y representación, tales como códec, perfil, nivel, dimensiones de imagen, tasa de tramas, o similares. Para seleccionar el conjunto de adaptación, la unidad de recuperación 52 puede comparar las capacidades de codificación y representación del dispositivo cliente 40 con las características de los diversos conjuntos de adaptación disponibles, y seleccionar un conjunto de adaptación que el dispositivo cliente 40 pueda codificar y representar.
[0107] A continuación, la unidad de recuperación 52 puede recuperar datos de medios del primer conjunto de adaptación en base a la selección del primer conjunto de adaptación. Más en particular, la unidad de recuperación 52 puede seleccionar una representación del conjunto de adaptación (si más de una representación está disponible), por ejemplo, en base al ancho de banda de red disponible y las tasas de bits para las representaciones del conjunto de adaptación, de modo que la tasa de bits para la representación no exceda el ancho de banda de red disponible. La unidad de recuperación 52 también puede recuperar los datos de medios publicitarios. Además, la unidad de recuperación 52 puede recuperar datos de medios de un segundo conjunto de adaptación en el segundo período que está asociado con el primer conjunto de adaptación en base a la selección del primer conjunto de adaptación. Por tanto, la unidad de recuperación 52 puede simplemente determinar que el segundo conjunto de adaptación es de período continuo con el primer conjunto de adaptación, y simplemente seleccionar el segundo conjunto de adaptación porque es de período continuo con el primer conjunto de adaptación que ya se seleccionó, en lugar de analizar las características de conjuntos de adaptación del segundo período como se hizo para el primer conjunto de adaptación.
[0108] La interfaz de red 54 puede recibir y proporcionar datos de segmentos de una representación seleccionada a la unidad de recuperación 52, que a su vez puede proporcionar los segmentos a la unidad de desencapsulación 50. La unidad de desencapsulación 50 puede desencapsular elementos de un archivo de vídeo en flujos PES constituyentes, desempaquetar los flujos PES para recuperar datos codificados y enviar los datos codificados al descodificador de audio 46 o bien al descodificador de vídeo 48, dependiendo de si los datos codificados forman parte de un flujo de audio o vídeo, por ejemplo, como lo indican las cabeceras de paquetes PES del flujo. El descodificador de audio 46 descodifica datos de audio codificados y envía los datos de audio descodificados a la salida de audio 42, mientras que el descodificador de vídeo 48 descodifica datos de vídeo codificados y envía los datos de vídeo descodificados, que pueden incluir una pluralidad de vistas de un flujo, a la salida de vídeo 44.
[0109] El codificador de vídeo 28, el descodificador de vídeo 48, el codificador de audio 26, el descodificador de audio 46, la unidad de encapsulación 30, la unidad de recuperación 52 y la unidad de desencapsulación 50 se pueden implementar cada uno como cualquiera de una variedad de circuitos de procesamiento adecuados, según corresponda, tales como uno o más microprocesadores, procesadores de señales digitales (DSP), circuitos integrados específicos de la aplicación (ASIC), matrices de puertas programables in situ (FPGA), circuitos lógicos discretos, programa informático, hardware, firmware o cualquier combinación de los mismos. Tanto el codificador de vídeo 28 como el descodificador de vídeo 48 pueden estar incluidos en uno o más codificadores o descodificadores, ambos de los cuales pueden estar integrados como parte de un codificador/descodificador (CÓDEC) de vídeo combinado. Asimismo, tanto el codificador de audio 26 como el descodificador de audio 46 pueden estar incluidos en uno o más codificadores o descodificadores, ambos de los cuales puede estar integrado como parte de un CÓDEC combinado. Un aparato que incluya el codificador de vídeo 28, el descodificador de vídeo 48, el codificador de audio 26, el descodificador de audio 46, la unidad de encapsulación 30, la unidad de recuperación 52 y/o la unidad de desencapsulación 50 puede comprender un circuito integrado, un microprocesador y/o un dispositivo de comunicación inalámbrica, tal como un teléfono celular.
[0110] El dispositivo cliente 40, el dispositivo servidor 60 y/o el dispositivo de preparación de contenido 20 pueden estar configurados para funcionar de acuerdo con las técnicas de esta divulgación. Con propósitos de ejemplo, esta divulgación describe estas técnicas con respecto al dispositivo cliente 40 y al dispositivo servidor 60. Sin embargo, se podría entender que el dispositivo de preparación de contenido 20 puede estar configurado para realizar estas técnicas, en lugar (o además) del dispositivo servidor 60.
[0111] La unidad de encapsulación 30 puede formar unidades NAL que comprenden una cabecera que identifica un programa al cual pertenece la unidad NAL, así como una carga útil, por ejemplo, datos de audio, datos de vídeo o datos que describen el flujo de transporte o de programa al cual corresponde la unidad NAL. Por ejemplo, en H.264/AVC, una unidad NAL incluye una cabecera de 1 byte y una carga útil de tamaño variable. Una unidad NAL que incluye datos de vídeo en su carga útil puede comprender diversos niveles de granularidad de datos de vídeo. Por ejemplo, una unidad NAL puede comprender un bloque de datos de vídeo, una pluralidad de bloques, un corte de datos de vídeo o una imagen completa de datos de vídeo. La unidad de encapsulación 30 puede recibir datos de vídeo codificados desde el codificador de vídeo 28 en forma de paquetes PES de flujos elementales. La unidad de encapsulación 30 puede asociar cada flujo elemental a un programa correspondiente.
[0112] La unidad de encapsulación 30 también puede ensamblar unidades de acceso de una pluralidad de unidades NAL. En general, una unidad de acceso puede comprender una o más unidades NAL para representar una trama de datos de vídeo, así como datos de audio correspondientes a la trama cuando dichos datos de audio están disponibles. Una unidad de acceso incluye en general todas las unidades de NAL para una instancia de tiempo de salida, por ejemplo, todos los datos de audio y vídeo para una instancia de tiempo. Por ejemplo, si cada vista tiene una tasa de tramas de 20 tramas por segundo (fps), 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 representar simultáneamente. En un ejemplo, una unidad de acceso puede comprender una imagen codificada en una instancia de tiempo, que se puede presentar como una imagen codificada primaria.
[0113] Por consiguiente, 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 correspondientes al tiempo X. Esta divulgación también se refiere a una imagen codificada de una vista particular como un "componente de vista". Es decir, un componente de vista puede comprender una imagen (o trama) codificada para una vista en particular en un tiempo en particular. En consecuencia, se puede definir una unidad de acceso que comprende todos los componentes de vista de una instancia temporal común. El orden de descodificación de las unidades de acceso no necesita ser el mismo que el orden de salida o de visualización.
[0114] Una presentación de medios puede incluir una descripción de presentación de medios (MPD), que puede contener descripciones de diferentes representaciones alternativas (por ejemplo, servicios de vídeo con diferentes calidades) y la descripción puede incluir, por ejemplo, información de códec, un valor de perfil y un valor de nivel. Una MPD es un ejemplo de archivo de manifiesto, tal como el archivo de manifiesto 66. El dispositivo cliente 40 puede recuperar la MPD de una presentación de medios para determinar cómo acceder a fragmentos de película de diversas presentaciones. Los fragmentos de película pueden estar situados en cuadros de fragmento de película (cuadros moof) de archivos de vídeo.
[0115] El archivo de manifiesto 66 (que puede comprender, por ejemplo, una MPD) puede comunicar la disponibilidad de segmentos de representaciones 68. Es decir, la MPD puede incluir información que indica el tiempo de hora de reloj en el cual un primer segmento de una de las representaciones 68 queda disponible, así como información que indica las duraciones de los segmentos dentro de las representaciones 68. De esta manera, la unidad de recuperación 52 del dispositivo cliente 40 puede determinar cuándo está disponible cada segmento, en base al tiempo de inicio, así como de las duraciones de los segmentos que preceden a un segmento en particular.
[0116] Después de que la unidad de encapsulación 30 haya ensamblado las unidades de NAL y/o las unidades de acceso en un archivo de vídeo, en base a los datos recibidos, la unidad de encapsulación 30 pasa el archivo de vídeo a la interfaz de salida 32 para su salida. En algunos ejemplos, la unidad de encapsulación 30 puede almacenar el archivo de vídeo localmente o enviar el archivo de vídeo a un servidor remoto por medio de la interfaz de salida 32, en lugar de enviar el archivo de vídeo directamente al dispositivo cliente 40. La interfaz de salida 32 puede comprender, por ejemplo, un transmisor, un transceptor, un dispositivo para escribir 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 disquetes), 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.
[0117] La interfaz de red 54 puede recibir una unidad NAL o unidad de acceso por medio de la red 74 y proporcionar la unidad NAL o la unidad de acceso a la unidad de desencapsulación 50, por medio de la unidad de recuperación 52. La unidad de desencapsulación 50 puede desencapsular un elemento de un archivo de vídeo en flujos PES constituyentes, desempaquetar los flujos PES para recuperar datos codificados y enviar los datos codificados al descodificador de audio 46 o al descodificador de vídeo 48, dependiendo de si los datos codificados forman parte de un flujo de audio o vídeo, por ejemplo, como se indica en las cabeceras de paquetes PES del flujo. El descodificador de audio 46 descodifica datos de audio codificados y envía los datos de audio descodificados a la salida de audio 42, mientras que el descodificador de vídeo 48 descodifica datos de vídeo codificados y envía los datos de vídeo descodificados, que pueden incluir una pluralidad de vistas de un flujo, a la salida de vídeo 44.
[0118] En un ejemplo, se describe un procedimiento para recuperar datos de medios, comprendiendo el procedimiento dividir, por un servidor de medios, el contenido principal de los datos de medios en una pluralidad de períodos, insertar, por el servidor de medios, contenido de medios secundario entre un primer período y un segundo período, en el que el primer período y el segundo período son secuenciales temporalmente, señalizando, por el servidor de medios, un indicador de tiempo para cada uno de la pluralidad de períodos, en el que el indicador de tiempo define una o más características de tiempo para cada uno de la pluralidad de períodos, y recibir, por el servidor de medios, una petición para recuperar, desde un cliente de transmisión en continuo adaptativa dinámica sobre HTTP (DASH), un flujo de medios que comprende la pluralidad de períodos, el contenido de medios secundario y los indicadores de tiempo.
[0119] En un ejemplo, se describe un procedimiento para recuperar datos de medios que comprende determinar que un archivo de manifiesto para contenido de medios indica que el contenido de medios incluye un primer período y un segundo período, que el archivo de manifiesto indica que los primer y segundo períodos son continuos, y que los datos de medios publicitarios están disponibles para la inserción entre los primer y segundo períodos, seleccionando un primer conjunto de adaptación en el primer período basado, al menos en parte, en las características señalizadas para el primer conjunto de adaptación, recuperando datos de medios del primer conjunto de adaptación basado en la selección del primer conjunto de adaptación, recuperando los datos de medios publicitarios, y recuperar datos de medios de un segundo conjunto de adaptación en el segundo período que el archivo de manifiesto indica que está asociado con el primer conjunto de adaptación basado en la selección del primer conjunto de adaptación.
[0120] En otro ejemplo, se describe un procedimiento para recuperar datos de medios, comprendiendo el procedimiento determinar si el contenido de medios incluye un primer período y un segundo período, determinar si el primer período y el segundo período son continuos, determinar si los datos de medios publicitarios están disponibles para la inserción entre los primer y segundo períodos, y formar un archivo de manifiesto, en el que el archivo de manifiesto incluye indicaciones de si el contenido de medios incluye el primer período y el segundo período, si el primer período y el segundo período son continuos, y si los datos de los medios publicitarios están disponibles para la inserción entre los primer y segundo períodos.
[0121] La FIG. 2 es un diagrama conceptual que ilustra elementos del contenido multimedia 102 de ejemplo. El contenido multimedia 102 puede corresponder al contenido multimedia 64 (FIG. 1) u otro contenido multimedia almacenado en la memoria 62. En el ejemplo de la FIG. 2, el contenido multimedia 102 incluye una descripción de presentación de medios (MPD) 104 y una pluralidad de representaciones 110A-110N. La representación 110A incluye datos de cabecera 112 y segmentos 114A a 114N (segmentos 114) opcionales, mientras que la representación 110N incluye datos de cabecera 122 y segmentos 124A-124N (segmentos 124) opcionales. La letra N se usa para designar el último fragmento de película en cada una de las representaciones 110A, 110N por conveniencia. En algunos ejemplos, pueden existir diferentes números de fragmentos de película entre las representaciones 110A, 110N.
[0122] La MPD 104 puede comprender una estructura de datos separada de las representaciones 110A-110N. La MPD 104 puede corresponder al archivo de manifiesto 66 de la FIG. 1. Del mismo modo, las representaciones 110A-110N pueden corresponder a las representaciones 68 de la FIG. 1. En general, la MPD 104 puede incluir datos que en general describen características de las representaciones 110A-110N, tales como características de codificación y representación, conjuntos de adaptación, un perfil al que corresponde la MPD 104, información de tipo de texto, información de ángulo de cámara, información de calificación, la información de modo truco (por ejemplo, información indicativa de representaciones que incluyen subsecuencias temporales) y/o información para recuperar períodos remotos (por ejemplo, para inserción de publicidad dirigida en el contenido de medios durante la reproducción).
[0123] Los datos de cabecera 112, cuando están presentes, pueden describir características de los segmentos 114, por ejemplo, localizaciones temporales de puntos de acceso aleatorio (RAP, también denominados puntos de acceso de flujo (SAP)), cuáles de los segmentos 114 incluyen puntos de acceso aleatorio, desplazamientos de bytes a puntos de acceso aleatorio dentro de los segmentos 114, localizadores de recursos uniformes (URL) de los segmentos 114 u otros aspectos de los segmentos 114. Los datos de cabecera 122, cuando están presentes, pueden describir características similares para los segmentos 124. Adicionalmente o de forma alternativa, dichas características pueden estar incluidas por completo dentro de la MPD 104.
[0124] Los segmentos 114, 124 incluyen una o más muestras de vídeo codificadas, cada una de las cuales puede incluir tramas o cortes de datos de vídeo. Cada una de las muestras de vídeo codificadas de los segmentos 114 puede tener características similares, por ejemplo, requisitos de altura, anchura y ancho de banda. Dichas características se pueden describir mediante datos de la MPD 104, aunque dichos datos no se ilustran en el ejemplo de la FIG. 2. La MPD 104 puede incluir características como se describen en la especificación 3GPP, con la adición de cualquiera o toda la información señalizada descrita en esta divulgación.
[0125] Cada uno de los segmentos 114, 124 puede estar asociado a un único localizador de recursos uniforme (URL). Por tanto, cada uno de los segmentos 114, 124 puede ser independientemente recuperable usando un protocolo de red de transmisión en continuo, tal como DASH. De esta manera, un dispositivo de destino, tal como el dispositivo cliente 40, puede usar una petición GET HTTP para recuperar los segmentos 114 o 124. En algunos ejemplos, el dispositivo cliente 40 puede usar peticiones GET parciales HTTP para recuperar intervalos de bytes específicos de los segmentos 114 o 124.
[0126] La descripción de presentación de medios 104 puede, de acuerdo con las técnicas de esta descripción, indicar que un período al que corresponden las representaciones 110A-110N es continuo con otro período, a los que pueden corresponder representaciones posteriores (no mostradas). En consecuencia, un conjunto de adaptación que incluye representaciones 110A-110N puede estar asociado con un conjunto de adaptación del otro período. Por tanto, una o más características del conjunto de adaptación, incluyendo las representaciones 110A-110N, pueden ser las mismas que el otro conjunto de adaptación, en el que dichas características pueden incluir cualquiera o todos del idioma como se describe por un atributo @lang de la descripción de presentación de medios 104, tipo de componente de medios descrito por un atributo @contentType de la descripción de presentación de medios 104, proporción de aspecto de imagen como se describe por un atributo @par de la descripción de presentación de medios 104, cualquier propiedad de rol como se describe por elementos de rol de la descripción de presentación de medios 104, cualquier propiedad de accesibilidad como se describe por elementos de accesibilidad de la descripción de presentación de medios 104, y/o cualquier propiedad de punto de vista como se describe por elementos de punto de vista de la descripción de presentación de medios 104.
[0127] De esta manera, el dispositivo cliente 40 puede seleccionar el conjunto de adaptación que incluye representaciones 110A-110N en base a las características señalizadas en la descripción de presentación de medios 104, y a continuación recuperar los datos de medios del otro conjunto de adaptación (del período continuo posterior) en base a la selección del conjunto de adaptación que incluye representaciones 110A-110N. Es decir, el dispositivo cliente 40 no necesita evaluar las características del conjunto de adaptación asociado, porque dichas características son idénticas (en base a la indicación en la descripción de presentación de medios 104 de que el conjunto de adaptación del período posterior está asociado con el conjunto de adaptación que incluye las representaciones 110A-110N).
[0128] La FIG. 3 es un diagrama de bloques que ilustra otro sistema 200 de ejemplo que puede implementar las técnicas de esta divulgación. Los elementos del sistema 200 en la FIG. 4 puede corresponder en general a elementos de la FIG. 1. Por ejemplo, el sistema 200 incluye el servidor de decisión de publicidad 208, el sistema de distribución de contenido 212 y el dispositivo cliente 206. Los elementos del sistema de distribución de contenido 212 pueden corresponder en general al dispositivo de preparación de contenido 20 y/o al dispositivo de servidor 60 de la FIG. 1, mientras que los elementos del dispositivo cliente 206 pueden corresponder al dispositivo cliente 40 de la FIG. 1. En algunos ejemplos, los elementos del dispositivo cliente 206 pueden corresponder a la unidad de recuperación 52 de la FIG. 1.
[0129] En este ejemplo, el dispositivo cliente 206 incluye el motor de medios 202 y el cliente de acceso DASH 204. El sistema de distribución de contenido 212 incluye el generador de MPD 214, el empaquetador 216 y la red de distribución de contenido (CDN)/servidor de origen 218. El servidor de origen 218 almacena MPD 220, contenido principal 222A-222C y datos publicitarios 224A-224C.
[0130] El motor de medios 202, el cliente de acceso DASH 204, el generador de MPD 214 y el empaquetador 216 se pueden implementar en hardware o programa informático. Cuando se implementan en programa informático, se presume que también se proporciona el hardware necesario, tal como una o más unidades de procesamiento y uno o más medios de almacenamiento legibles por ordenador. Los medios de almacenamiento legibles por ordenador pueden almacenar instrucciones para el programa informático, y las unidades de procesamiento pueden ejecutar las instrucciones para realizar la funcionalidad descrita anteriormente.
[0131] Está disponible una MPD que señala contenido a demanda en la CDN que contiene una presentación de período único. La MPD, en base a señales (oportunidades de inserción de publicidad), se modifica para añadir múltiples períodos sin cambiar el contenido en el servidor. Para cada oportunidad, se proporciona un xlink al servidor de decisión de publicidad. La MPD se proporciona al cliente DASH. Para cada xlink en la MPD, se verifica si se añade publicidad, posiblemente dirigida al usuario. Si no es así, el período se resuelve a 0. Si es así, se añade otro contenido. El cliente DASH reproduce el contenido de forma continua y, si se resuelve a cero, el motor de medios no se inicializa nuevamente.
[0132] El generador de MPD 214 de la FIG. 3 se puede configurar para indicar que dos o más períodos son continuos. En consecuencia, el generador de MPD 214 puede indicar conjuntos de adaptación de los períodos que están asociados, como se analiza anteriormente, en una MPD (u otro archivo de manifiesto), de acuerdo con las técnicas de esta divulgación. Por tanto, el dispositivo cliente 206 puede seleccionar un conjunto de adaptación de un período y un conjunto de adaptación asociado de otro período continuo, en base a las características del conjunto de adaptación del primer período señalizado en la MPD generada por el generador de MPD 214.
[0133] De esta manera, el sistema de distribución de contenido 212 y CDN/servidor origen 218 representan ejemplos de un dispositivo para enviar datos de medios, incluyendo el dispositivo una memoria configurada para almacenar datos de medios, y uno o más procesadores basados en hardware configurados para dividir el contenido principal de los datos de medios en una pluralidad de períodos que incluyen un primer período y un segundo período que son temporalmente secuenciales, insertar contenido de medios secundario entre el primer período y el segundo período, señalizar un indicador de tiempo para cada uno de la pluralidad de períodos, en el que el indicador de tiempo define una o más características de tiempo para cada uno de la pluralidad de períodos, y recibir una petición de un cliente de transmisión en continuo adaptativa dinámica sobre HTTP (DASH) para recuperar un flujo de medios que comprende la pluralidad de períodos, el contenido de medios secundario y los indicadores de tiempo.
[0134] Asimismo, el dispositivo cliente 206 representa un ejemplo de un dispositivo para recuperar datos de medios, incluyendo el dispositivo una memoria configurada para almacenar datos de medios; y uno o más procesadores basados en hardware configurados para determinar que un archivo de manifiesto para contenido de medios indica que el contenido de medios incluye un primer período y un segundo período, que el archivo de manifiesto indica que los primer y segundo períodos son continuos, y que los datos de medios publicitarios están disponibles para la inserción entre los primer y segundo períodos, seleccionar un primer conjunto de adaptación en el primer período en base, al menos en parte, a las características señalizadas para el primer conjunto de adaptación, recuperar los datos de medios del primer conjunto de adaptación en base a la selección del primer conjunto de adaptación, recuperar los datos de medios publicitarios, y recuperar los datos de medios de un segundo conjunto de adaptación en el segundo período que el archivo de manifiesto indica que está asociado con el primer conjunto de adaptación basado en la selección del primer conjunto de adaptación y almacenar los datos de medios recuperados en la memoria.
[0135] La FIG. 4 es un diagrama de flujo que ilustra un procedimiento para enviar datos de medios de acuerdo con una o más técnicas de la divulgación actual. En este ejemplo, un servidor de medios puede dividir el contenido principal de los datos de medios en una pluralidad de períodos (300). El servidor de medios puede insertar contenido de medios secundario entre un primer período y un segundo período (302), en el que el primer período y el segundo período son temporalmente secuenciales. El contenido de medios secundario puede ser, por ejemplo, contenido de medios publicitarios, que se presentará sustancialmente de la misma manera que el contenido de medios principal. El servidor de medios puede señalizar un indicador de tiempo para cada uno de la pluralidad de períodos (304), en el que el indicador de tiempo define una o más características de tiempo para cada uno de la pluralidad de períodos. El servidor de medios puede recibir una petición para recuperar un flujo de medios (306), por ejemplo, de un cliente de transmisión en continuo adaptativa dinámica sobre HTTP (DASH). La petición para el flujo de medios puede corresponder a una petición para recuperar un flujo de medios que comprende la pluralidad de períodos, el contenido de medios secundario y los indicadores de tiempo.
[0136] La FIG. 5 es un diagrama de flujo que ilustra un procedimiento de recuperación de datos de medios de acuerdo con una o más técnicas de la divulgación actual. En este ejemplo, un dispositivo determina las características de un archivo de manifiesto (310). Por ejemplo, el dispositivo puede determinar que el archivo de manifiesto para contenido de medios indica que el contenido de medios incluye un primer período y un segundo período, que el archivo de manifiesto indica que los primer y segundo períodos son continuos y que los datos de medios publicitarios están disponibles para inserción entre los primer y segundo períodos. El dispositivo puede seleccionar un primer conjunto de adaptación (312). En un ejemplo, el primer conjunto de adaptación puede estar en el primer período, y la selección se puede basar al menos en parte en las características señalizadas para el primer conjunto de adaptación. El dispositivo puede a continuación recuperar datos de medios del primer conjunto de adaptación (314) en base a la selección del primer conjunto de adaptación. El dispositivo puede a continuación recuperar los datos de medios publicitarios (316). Además, el dispositivo puede recuperar datos de medios de un segundo conjunto de adaptación en base a la selección del primer conjunto de adaptación (318). El segundo conjunto de adaptación puede estar en el segundo período, y el archivo de manifiesto puede indicar que el segundo conjunto de adaptación está asociado con el primer conjunto de adaptación.
[0137] La FIG. 6 es un diagrama de flujo que ilustra un procedimiento para enviar datos de medios de acuerdo con una o más técnicas de la divulgación actual. En este ejemplo, un dispositivo puede determinar si el contenido de medios incluye un primer período y un segundo período (320). El dispositivo puede determinar si el primer período y el segundo período son continuos (322). El dispositivo puede determinar si los datos de medios publicitarios están disponibles para la inserción (324), por ejemplo, entre los primer y segundo períodos. El dispositivo puede formar un archivo de manifiesto (326), en el que el archivo de manifiesto incluye indicaciones de si el contenido de medios incluye el primer período y el segundo período, si el primer período y el segundo período son continuos, y si los datos de medios publicitarios están disponibles para inserción entre los primer y segundo períodos.
[0138] La FIG. 7 es un diagrama de flujo que ilustra un procedimiento de ejemplo para realizar determinadas técnicas de esta divulgación por un servidor de medios. Este procedimiento de ejemplo incluye la división, por un servidor de medios, del contenido principal de los datos de medios en una pluralidad de períodos que incluyen un primer período y un segundo período, en el que el primer período y el segundo período son temporalmente secuenciales (350). Este procedimiento de ejemplo también incluye la señalización, por el servidor de medios, de información que indica que el contenido de medios secundario está disponible para la inserción entre el primer período y el segundo período (352). Este procedimiento de ejemplo incluye además la señalización, por el servidor de medios, de un indicador de tiempo para cada uno de la pluralidad de períodos, en el que el indicador de tiempo define una o más características de tiempo para cada uno de la pluralidad de períodos (354).
[0139] La FIG. 8 es un diagrama de flujo que ilustra un procedimiento de ejemplo para realizar determinadas técnicas de esta divulgación por un dispositivo cliente. Este procedimiento de ejemplo incluye determinar que un archivo de manifiesto para contenido de medios indica que el contenido de medios incluye un primer período y un segundo período, que el archivo de manifiesto indica que los primer y segundo períodos son continuos, y que los datos de medios publicitarios están disponibles para la inserción entre los primer y segundo períodos (370). Este procedimiento de ejemplo también incluye seleccionar un primer conjunto de adaptación en el primer período basado, al menos en parte, en las características señalizadas para el primer conjunto de adaptación (372). Este procedimiento de ejemplo incluye además la recuperación de datos de medios del primer conjunto de adaptación en base a la selección del primer conjunto de adaptación (374). Finalmente, este procedimiento de ejemplo incluye la recuperación de datos de medios de un segundo conjunto de adaptación en el segundo período que está asociado con el primer conjunto de adaptación en base a la selección del primer conjunto de adaptación (376).
[0140] Se debe entender que en algunos ejemplos, un dispositivo cliente se puede configurar para realizar cualquiera o todas las técnicas del primer ejemplo, el segundo ejemplo y el tercer ejemplo que se describe anteriormente. Por ejemplo, diferentes redes de distribución de contenido pueden admitir diferentes mecanismos para la inserción de publicidad dirigida, y un dispositivo cliente puede implementar las técnicas de cualquiera o todos del primer ejemplo, el segundo ejemplo y/o el tercer ejemplo. Como otro ejemplo, una red de distribución de contenido puede admitir cualquiera o todas las técnicas del primer ejemplo, el segundo ejemplo y/o el tercer ejemplo que se describe anteriormente. Además, las técnicas del primer ejemplo, el segundo ejemplo y/o el tercer ejemplo que se describe anteriormente se pueden realizar juntas en cualquier combinación.
[0141] En uno o más ejemplos, las funciones descritas se pueden implementar en hardware, programa informático, firmware o cualquier combinación de los mismos. Si se implementan en programa informático, las funciones se pueden almacenar en, o transmitir por, un medio legible por ordenador, como una o más instrucciones o código, y ejecutar mediante una unidad de procesamiento basada en hardware. Los medios legibles por ordenador pueden incluir medios de almacenamiento legibles por ordenador, que corresponden a un medio tangible tal como unos medios de almacenamiento de datos, o medios de comunicación que incluyen cualquier medio que facilita la transferencia de un programa informático de un lugar a otro, por ejemplo, de acuerdo con un protocolo de comunicación. De esta manera, los medios legibles por ordenador pueden corresponder, en general, a (1) medios de almacenamiento tangibles legibles por ordenador que son no transitorios o (2) un medio de comunicación tal como una señal o una onda portadora. Los medios de almacenamiento de datos pueden ser medios disponibles cualesquiera a los que se puede acceder desde uno o más ordenadores o uno o más procesadores para recuperar instrucciones, código y/o estructuras de datos para la implementación de las técnicas descritas en esta divulgación. Un producto de programa informático puede incluir un medio legible por ordenador.
[0142] A modo de ejemplo, y no de limitación, dichos medios de almacenamiento legibles por ordenador pueden comprender RAM, ROM, EEPROM, CD-ROM u otro almacenamiento en disco óptico, almacenamiento en disco magnético u otros dispositivos de almacenamiento magnético, memoria flash o cualquier otro medio que se pueda usar para almacenar código de programa deseado en forma de instrucciones o estructuras de datos y al que se pueda acceder mediante un ordenador. Además, cualquier conexión recibe apropiadamente la denominación de medio legible por ordenador. Por ejemplo, si las instrucciones se transmiten desde un sitio web, un servidor u otro origen remoto usando un cable coaxial, un cable de fibra óptica, un par trenzado, una línea de abonado digital (DSL) o unas tecnologías inalámbricas tales como infrarrojos, radio y microondas, entonces el cable coaxial, el cable de fibra óptica, el par trenzado, la DSL o las tecnologías inalámbricas tales como infrarrojos, radio y microondas están incluidos en la definición de medio. Sin embargo, se deberá entender que los medios de almacenamiento legibles por ordenador y los medios de almacenamiento de datos no incluyen conexiones, ondas portadoras, señales u otros medios transitorios, sino que, en cambio, están dirigidos a medios de almacenamiento no transitorios, tangibles. Los discos, como se usan en el presente documento, incluyen el disco compacto (CD), el disco láser, el disco óptico, el disco versátil digital (DVD), el disco flexible y el disco Bluray, donde los discos reproducen normalmente los datos magnéticamente, mientras que otros discos reproducen los datos ópticamente con láseres. Las combinaciones de los anteriores también se podrían incluir dentro del alcance de los medios legibles por ordenador.
[0143] Uno o más procesadores, tales como uno o más procesadores de señales digitales (DSP), microprocesadores de propósito general, circuitos integrados específicos de la aplicación (ASIC), matrices lógicas programables in situ (FPGA) u otros circuitos lógicos integrados o discretos equivalentes pueden ejecutar las instrucciones. En consecuencia, el término «procesador», como se usa en el presente documento, se puede referir a cualquiera de las estructuras anteriores o a cualquier otra estructura adecuada para la implementación de las técnicas descritas en el presente documento. Además, en algunos aspectos, la funcionalidad descrita en el presente documento se puede proporcionar en módulos de hardware y/o de programa informático dedicados configurados para la codificación y la descodificación, o incorporarse en un códec combinado. Además, las técnicas se podrían implementar por completo en uno o más circuitos o elementos lógicos.
[0144] Las técnicas de esta divulgación se pueden implementar en una amplia variedad de dispositivos o aparatos, incluyendo un teléfono inalámbrico, un circuito integrado (IC) o un conjunto de IC (por ejemplo, un conjunto de chips). En esta divulgación se describen diversos componentes, módulos o unidades para destacar aspectos funcionales de dispositivos configurados para realizar las técnicas divulgadas, pero no se requiere necesariamente su realización por diferentes unidades de hardware. En su lugar, como se describe 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, incluyendo uno o más procesadores como se describe anteriormente, junto con programa informático y/o firmware adecuado.
[0145] Se han descrito diversos ejemplos. Estos y otros ejemplos están dentro del alcance de las siguientes reivindicaciones.

Claims (10)

REIVINDICACIONES
1. Un procedimiento de recuperación de datos de medios, comprendiendo el procedimiento:
determinar (370) a partir de un archivo de manifiesto para contenido de medios que el contenido de medios incluye un primer período y un segundo período, que los primer y segundo períodos son continuos, y que los datos de medios publicitarios están disponibles para la inserción entre los primer y segundo períodos; seleccionar (372) un primer conjunto de adaptación en el primer período de entre una pluralidad de conjuntos de adaptación en el primer período basado al menos en parte en las características de representación señalizadas en el archivo de manifiesto para el primer conjunto de adaptación, comprendiendo cada conjunto de adaptación una respectiva pluralidad de representaciones del primer período de contenido de medios, compartiendo cada una de la respectiva pluralidad de representaciones las mismas características de representación pero teniendo una tasa de bits diferente;
recuperar (374) datos de medios del primer conjunto de adaptación basado en la selección del primer conjunto de adaptación;
en base a la determinación de que los datos de medios publicitarios están disponibles para la inserción entre los primer y segundo períodos y en la selección del primer conjunto de adaptación, determinar que un segundo conjunto de adaptación en el segundo período está asociado con el primer conjunto de adaptación, en el que el segundo conjunto de adaptación es uno de una pluralidad de conjuntos de adaptación en el segundo período, comprendiendo cada conjunto de adaptación una respectiva pluralidad de representaciones del segundo período de contenido de medios, compartiendo cada una de la respectiva pluralidad de representaciones las mismas características de representación pero teniendo una tasa de bits diferente,
en el que determinar que el segundo conjunto de adaptación está asociado con el primer conjunto de adaptación comprende determinar que el archivo de manifiesto señaliza el mismo valor para los identificadores de activos del primer conjunto de adaptación y el segundo conjunto de adaptación y el archivo de manifiesto indica que el primer conjunto de adaptación y el segundo el conjunto de adaptación tienen el mismo valor para los atributos "@id" respectivos;
recuperar (376) datos de medios del segundo conjunto de adaptación; y
en base al atributo @id de representaciones en el primer conjunto de adaptación que es el mismo que el @id de representaciones en el segundo conjunto de adaptación, usando un segmento de inicialización de una representación del primer conjunto de adaptación como un segmento de inicialización de una representación correspondiente del segundo conjunto de adaptación.
2. El procedimiento de la reivindicación 1, en el que el archivo de manifiesto comprende una descripción de presentación de medios, MPD.
3. El procedimiento de la reivindicación 1, que comprende además determinar, a partir del archivo de manifiesto, una duración de representación para una representación del primer conjunto de adaptación usando al menos uno de los datos que señalizan un valor para un elemento de sintaxis @presentationTimeDuration que especifica la duración de la presentación o los datos que señalizan un descriptor suplementario con un elemento @scheme_id_URI establecido en "um:mpeg:dash:period_continuity:2014" para el primer conjunto de adaptación.
4. El procedimiento de la reivindicación 3, en el que el primer conjunto de adaptación incluye además un elemento "@value" de un identificador de paquete, PID, que coincide con un valor de un elemento "@id" de un período que se describe en el archivo de manifiesto, un valor para un elemento "AdaptationSet@id" que representa un identificador de conjunto de adaptación, y un valor de un "@presentationTimeOffset" para el primer conjunto de adaptación.
5. El procedimiento de la reivindicación 1, que comprende además determinar que el segundo conjunto de adaptación tiene una o más características en común con el primer conjunto de adaptación, en el que las características en común incluyen uno o más de un idioma, un tipo de componente de medios, una proporción de aspecto de imagen, una propiedad de rol, una propiedad de accesibilidad o una propiedad de punto de vista.
6. El procedimiento de la reivindicación 1, que comprende además determinar que el segundo conjunto de adaptación es de período continuo con el primer conjunto de adaptación cuando:
los primer y segundo conjuntos de adaptación están asociados;
un "@presentationTimeOffset" está presente en el archivo de manifiesto o se puede inferir como 0 para todas las representaciones en ambos conjuntos de adaptación;
el archivo de manifiesto indica, al menos para uno del primer conjunto de adaptación y el segundo conjunto de adaptación, que el valor de "@presentationTimeOffset" es idéntico para todas las representaciones; y una suma del valor de "@presentationTimeOffset" y una duración de presentación de todas las representaciones en el primer conjunto de adaptación es idéntica al valor de "@presentationTimeOffset" del segundo conjunto de adaptación.
7. Un dispositivo para recuperar datos de medios, comprendiendo el dispositivo:
una memoria configurada para almacenar datos de medios; y
uno o más procesadores basados en hardware configurados para:
determinar (370) a partir de un archivo de manifiesto para contenido de medios que el contenido de medios incluye un primer período y un segundo período, que los primer y segundo períodos son continuos, y que los datos de medios publicitarios están disponibles para la inserción entre los primer y segundo períodos;
seleccionar (372) un primer conjunto de adaptación en el primer período de entre una pluralidad de conjuntos de adaptación en el primer período basado al menos en parte en las características de representación señalizadas en el archivo de manifiesto para el primer conjunto de adaptación, comprendiendo cada conjunto de adaptación una respectiva pluralidad de representaciones del primer período de contenido de medios, compartiendo cada una de la respectiva pluralidad de representaciones las mismas características de representación pero teniendo una tasa de bits diferente,
recuperar (374) datos de medios del primer conjunto de adaptación basado en la selección del primer conjunto de adaptación,
en base a la determinación de que los datos de medios publicitarios están disponibles para la inserción entre los primer y segundo períodos y en la selección del primer conjunto de adaptación, determinar que un segundo conjunto de adaptación en el segundo período está asociado con el primer conjunto de adaptación, en el que el segundo conjunto de adaptación es uno de una pluralidad de conjuntos de adaptación en el segundo período, comprendiendo cada conjunto de adaptación una respectiva pluralidad de representaciones del segundo período de contenido de medios, compartiendo cada una de la respectiva pluralidad de representaciones las mismas características de representación pero teniendo una tasa de bits diferente,
en el que determinar que el segundo conjunto de adaptación está asociado con el primer conjunto de adaptación comprende determinar que el archivo de manifiesto señaliza el mismo valor para los identificadores de activos del primer conjunto de adaptación y el segundo conjunto de adaptación y el archivo de manifiesto indica que el primer conjunto de adaptación y el segundo el conjunto de adaptación tienen el mismo valor para los atributos "@id" respectivos;
recuperar (376) datos de medios del segundo conjunto de adaptación y almacenar los datos de medios recuperados en la memoria; y en base al atributo @id de representaciones en el primer conjunto de adaptación que es el mismo que el @id de representaciones en el segundo conjunto de adaptación, usar un segmento de inicialización de una representación del primer conjunto de adaptación como un segmento de inicialización de una representación correspondiente del segundo conjunto de adaptación.
8. El dispositivo de la reivindicación 7, en el que el archivo de manifiesto comprende una descripción de presentación de medios, MPD.
9. El dispositivo de la reivindicación 7, en el que el uno o más procesadores basados en hardware están configurados para determinar, a partir del archivo de manifiesto, que el segundo conjunto de adaptación tiene una o más características en común con el primer conjunto de adaptación, en el que las características en común incluyen uno o más de un idioma, un tipo de componente de medios, una proporción de aspecto de imagen, una propiedad de rol, una propiedad de accesibilidad, o una propiedad de punto de vista.
10. El dispositivo de la reivindicación 7, en el que el uno o más procesadores basados en hardware están configurados para determinar que el segundo conjunto de adaptación es de período continuo con el primer conjunto de adaptación cuando:
los primer y segundo conjuntos de adaptación están asociados;
un "@presentationTimeOffset" está presente en el archivo de manifiesto o se puede inferir como 0 para todas las representaciones en ambos conjuntos de adaptación;
el archivo de manifiesto indica, al menos para uno del primer conjunto de adaptación y el segundo conjunto de adaptación, que el valor de "@presentationTimeOffset" es idéntico para todas las representaciones; y una suma del valor de "@presentationTimeOffset" y una duración de presentación de todas las representaciones en el primer conjunto de adaptación es idéntica al valor de "@presentationTimeOffset" del segundo conjunto de adaptación.
ES15719323T 2014-03-24 2015-03-24 Procesamiento de contenido multiperiodo continuo Active ES2788901T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201461969777P 2014-03-24 2014-03-24
US14/665,252 US9866608B2 (en) 2014-03-24 2015-03-23 Processing continuous multi-period content
PCT/US2015/022264 WO2015148519A1 (en) 2014-03-24 2015-03-24 Processing continuous multi-period content

Publications (1)

Publication Number Publication Date
ES2788901T3 true ES2788901T3 (es) 2020-10-23

Family

ID=54143215

Family Applications (1)

Application Number Title Priority Date Filing Date
ES15719323T Active ES2788901T3 (es) 2014-03-24 2015-03-24 Procesamiento de contenido multiperiodo continuo

Country Status (9)

Country Link
US (2) US9866608B2 (es)
EP (2) EP3654653A1 (es)
JP (1) JP6474830B2 (es)
KR (2) KR102145653B1 (es)
CN (2) CN110099288B (es)
CA (1) CA2939250C (es)
ES (1) ES2788901T3 (es)
HU (1) HUE048719T2 (es)
WO (1) WO2015148519A1 (es)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3018912B1 (en) 2013-07-02 2018-09-12 Sony Corporation Content provision device, content provision method, program, terminal device, and content provision system
EP3100464B1 (en) * 2014-01-29 2020-11-18 Koninklijke KPN N.V. Establishing a streaming presentation of an event
US9866608B2 (en) 2014-03-24 2018-01-09 Qualcomm Incorporated Processing continuous multi-period content
GB2528039A (en) * 2014-07-01 2016-01-13 Canon Kk Method for identifying objects across time periods and corresponding device
CN113037768A (zh) * 2014-09-12 2021-06-25 索尼公司 发送设备、发送方法、接收设备和接收方法
CN107079013B (zh) 2014-10-14 2020-07-10 皇家Kpn公司 管理媒体流的并发流式传输
US9800903B2 (en) * 2015-04-09 2017-10-24 Dejero Labs Inc. Systems, devices and methods for distributing data with multi-tiered encoding
US10389785B2 (en) * 2016-07-17 2019-08-20 Wei-Chung Chang Method for adaptively streaming an audio/visual material
US9872062B1 (en) * 2017-02-22 2018-01-16 Wyse Technology L.L.C. Enforcing synchronization by embedding audio within video frame data
US10652166B2 (en) * 2017-06-27 2020-05-12 Cisco Technology, Inc. Non-real time adaptive bitrate recording scheduler
EP3750303B1 (en) * 2018-02-05 2024-04-03 Telefonaktiebolaget LM Ericsson (publ) A method, a user equipment and a computer program product for enabling a dynamic adaptive streaming over http, dash, player to fetch media segments from a network
US11356715B2 (en) 2018-12-28 2022-06-07 Tencent America LLC Dynamic shortening of advertisement duration during live streaming
US11546402B2 (en) * 2019-01-04 2023-01-03 Tencent America LLC Flexible interoperability and capability signaling using initialization hierarchy
CN117834914A (zh) * 2019-03-08 2024-04-05 Vid拓展公司 用于点云的自适应流式传输的方法和装置
US11616822B2 (en) * 2019-09-30 2023-03-28 Tencent America LLC Session-based information for dynamic adaptive streaming over HTTP
CH716844A1 (fr) * 2019-11-27 2021-05-31 Ad Insertion Platform Sarl Procédé et système d'inclusion de blocs vidéo dans un flux vidéo en multicast.
CN111193936B (zh) * 2019-12-27 2021-11-12 腾讯科技(深圳)有限公司 视频流传输方法、装置、电子设备及计算机可读存储介质
US11683529B2 (en) 2020-09-17 2023-06-20 Lemon Inc. Operational point sample group in coded video
WO2023051757A1 (en) * 2021-09-30 2023-04-06 Beijing Bytedance Network Technology Co., Ltd. Methods, apparatuses, and medium for video streaming
US11973820B2 (en) * 2021-10-06 2024-04-30 Tencent America LLC Method and apparatus for mpeg dash to support preroll and midroll content during media playback
US20230336602A1 (en) * 2022-04-19 2023-10-19 Tencent America LLC Addressable resource index events for cmaf and dash multimedia streaming

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3563072B2 (ja) * 1993-08-31 2004-09-08 インテレッセンゲマインシャフト フュア ルントフンクシュッツレヒテ ゲゼルシャフト ミット ベシュレンクテル ハフツング シュッツレヒツフェルヴェルツング ウント コンパニー コマンディートゲゼルシャ 不所望なビデオシーンの検出方法及び装置
EP1716701A1 (en) * 2004-02-10 2006-11-02 LG Electronic Inc. Text subtitle decoder and method for decoding text subtitle streams
US8164557B2 (en) * 2004-10-29 2012-04-24 Semiconductor Energy Laboratory Co., Ltd. Liquid crystal display device and method for driving the same
CN101039404B (zh) * 2006-03-15 2010-06-09 中兴通讯股份有限公司 一种实现网络直播中无缝插播的系统及方法
US8407176B2 (en) 2006-05-05 2013-03-26 British Telecommunications Plc Data processing method for controlling a network
US20080071881A1 (en) 2006-09-15 2008-03-20 Curtis Duane Kronlund Advertising on Idle Web Browser Windows
CN101179739A (zh) * 2007-01-11 2008-05-14 腾讯科技(深圳)有限公司 一种插入广告的方法及装置
KR101213235B1 (ko) * 2007-07-24 2012-12-17 삼성전자주식회사 콘텐트 사용자 또는 콘텐트 제작자가 콘텐트에 삽입되는광고를 선택할 수 있는 콘텐트의 재생/제작 방법 및 장치
CN100558157C (zh) * 2007-07-31 2009-11-04 腾讯科技(深圳)有限公司 一种在网络电视轮播节目中插播广告的方法及系统
US8418197B2 (en) * 2008-10-29 2013-04-09 Goldspot Media Method and apparatus for browser based advertisement insertion
CN101534386B (zh) * 2008-12-29 2010-08-25 北大方正集团有限公司 一种视频替换方法、视频播放系统及装置
US20100278156A1 (en) 2009-05-04 2010-11-04 Shin Chang Sub Data communication method using body area network superframe
KR101900662B1 (ko) 2009-12-18 2018-11-08 가부시키가이샤 한도오따이 에네루기 켄큐쇼 액정 표시 장치 및 그 구동 방법
US10163135B2 (en) * 2010-03-09 2018-12-25 Sandisk Il Ltd. Combining user content with supplemental content at a data storage device
CN102130936B (zh) 2010-08-17 2013-10-09 华为技术有限公司 一种在动态http流传输方案中支持时移回看的方法和装置
CN102148851B (zh) * 2010-09-30 2014-09-17 华为技术有限公司 一种在动态http流传输中应用父母控制的方法和装置
KR101206698B1 (ko) * 2010-10-06 2012-11-30 한국항공대학교산학협력단 스트리밍 콘텐츠 제공 장치 및 방법
US9485486B2 (en) 2011-01-12 2016-11-01 Sharp Kabushiki Kaisha Playback device, control method for playback device, generating device, control method for generating device, recording medium, data structure, control program, and recording medium recording the program
MX2013010281A (es) * 2011-03-09 2014-07-11 Sirius Xm Radio Inc Sistema y metodo para incrementar la eficiencia del ancho de banda de transmision.
US9521434B2 (en) * 2011-06-09 2016-12-13 Qualcomm Incorporated Internal bit depth increase in video coding
US9591361B2 (en) * 2011-09-07 2017-03-07 Qualcomm Incorporated Streaming of multimedia data from multiple sources
KR101412198B1 (ko) 2011-09-09 2014-07-03 (주)재플 재핑 광고 서비스를 위한 방법 및 시스템
US8769556B2 (en) 2011-10-28 2014-07-01 Motorola Solutions, Inc. Targeted advertisement based on face clustering for time-varying video
KR101633769B1 (ko) * 2012-04-05 2016-06-27 후아웨이 테크놀러지 컴퍼니 리미티드 Iso 베이스 미디어 파일 형식에 기초한 적응형 스트리밍을 위한 안전한 비동기 이벤트 통지 시스템 및 방법
CN103581741B (zh) * 2012-07-26 2016-08-17 三星电子(中国)研发中心 特效播放设备和方法
CN105052159B (zh) * 2013-03-19 2019-03-22 索尼公司 内容提供设备、内容提供方法、程序、和内容提供系统
US20150019629A1 (en) 2013-07-15 2015-01-15 Futurewei Technologies, Inc. Just-in-Time Dereferencing of Remote Elements in Dynamic Adaptive Streaming over Hypertext Transfer Protocol
US9270721B2 (en) * 2013-10-08 2016-02-23 Qualcomm Incorporated Switching between adaptation sets during media streaming
US9866608B2 (en) 2014-03-24 2018-01-09 Qualcomm Incorporated Processing continuous multi-period content

Also Published As

Publication number Publication date
EP3123731B1 (en) 2020-02-05
KR102315233B1 (ko) 2021-10-19
CA2939250C (en) 2019-09-10
US9866608B2 (en) 2018-01-09
KR20160136343A (ko) 2016-11-29
HUE048719T2 (hu) 2020-08-28
CN110099288A (zh) 2019-08-06
EP3654653A1 (en) 2020-05-20
CN110099288B (zh) 2021-12-03
KR20200097820A (ko) 2020-08-19
WO2015148519A1 (en) 2015-10-01
US10397295B2 (en) 2019-08-27
EP3123731A1 (en) 2017-02-01
US20150271237A1 (en) 2015-09-24
JP6474830B2 (ja) 2019-02-27
CN106134146A (zh) 2016-11-16
BR112016022245A2 (pt) 2017-08-15
JP2017516338A (ja) 2017-06-15
US20180084026A1 (en) 2018-03-22
KR102145653B1 (ko) 2020-08-18
CA2939250A1 (en) 2015-10-01
CN106134146B (zh) 2019-07-05
BR112016022245A8 (pt) 2021-07-13

Similar Documents

Publication Publication Date Title
ES2788901T3 (es) Procesamiento de contenido multiperiodo continuo
ES2848116T3 (es) Transmisión basada en formato de archivo con formatos DASH basados en LCT
ES2767288T3 (es) Transmisión en continuo de vídeo de baja latencia
ES2710702T3 (es) Temporización en vivo para la transmisión continua dinámica adaptativa sobre el HTTP (DASH)
ES2784605T3 (es) Entrega de middleware de métricas de QOE del cliente dash
ES2854936T3 (es) Recuperación y acceso a trozos de segmento para transmisión de medios
ES2864645T3 (es) Determinación de ubicaciones de eventos de entrega de medios para el transporte de medios
CN107925797B (zh) 用于获取音频数据的方法和设备
ES2764224T3 (es) Robusto funcionamiento en vivo de DASH
US11381867B2 (en) Multiple decoder interface for streamed media data
ES2818622T3 (es) Entradas de muestra y acceso aleatorio
BR112020015214A2 (pt) inserção dinâmica de anúncio condicional
US11438647B2 (en) Signaling missing sections of media data for network streaming in a manifest file
BR112013002692B1 (pt) Método e dispositivo para recuperar dados de multimídia, método e dispositivo para enviar informação para dados de multimídia, e memória legível por computador
ES2821382T3 (es) Entradas de muestra y acceso aleatorio
BR112016022245B1 (pt) Método e dispositivo de recuperar dados de mídia
BR112017027511B1 (pt) Distribuição de middleware de métricas de qoe de cliente dash
BR112016016434B1 (pt) Método de transmissão adaptativa dinâmica através de http, dispositivo para receber, a partir de um dispositivo de servidor, dados relacionados a dados de mídia de transmissão contínua dash, método e dispositivo de sinalização