ES2426714T3 - Reproducción de contenido suplementario de longitud variable en un reproductor multimedia de contenido de longitud fija - Google Patents

Reproducción de contenido suplementario de longitud variable en un reproductor multimedia de contenido de longitud fija Download PDF

Info

Publication number
ES2426714T3
ES2426714T3 ES09759522T ES09759522T ES2426714T3 ES 2426714 T3 ES2426714 T3 ES 2426714T3 ES 09759522 T ES09759522 T ES 09759522T ES 09759522 T ES09759522 T ES 09759522T ES 2426714 T3 ES2426714 T3 ES 2426714T3
Authority
ES
Spain
Prior art keywords
content
fragment
supplementary content
fragments
supplementary
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
ES09759522T
Other languages
English (en)
Inventor
Jeff Mcdermott
Bruce Randall
Sherry Kao
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.)
Deluxe Media Inc
Original Assignee
Deluxe Digital Studios 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 Deluxe Digital Studios Inc filed Critical Deluxe Digital Studios Inc
Application granted granted Critical
Publication of ES2426714T3 publication Critical patent/ES2426714T3/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/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/482End-user interface for program selection
    • H04N21/4825End-user interface for program selection using a list of items to be played back in a given order, e.g. playlists
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/02Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
    • G11B27/031Electronic editing of digitised analogue information signals, e.g. audio or video signals
    • G11B27/034Electronic editing of digitised analogue information signals, e.g. audio or video signals on discs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/02Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
    • G11B27/031Electronic editing of digitised analogue information signals, e.g. audio or video signals
    • G11B27/036Insert-editing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/19Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier
    • G11B27/28Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording
    • G11B27/30Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on the same track as the main recording
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/19Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier
    • G11B27/28Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording
    • G11B27/30Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on the same track as the main recording
    • G11B27/3027Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on the same track as the main recording used signal is digitally coded
    • 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/41Structure of client; Structure of client peripherals
    • H04N21/426Internal components of the client ; Characteristics thereof
    • H04N21/42646Internal components of the client ; Characteristics thereof for reading from or writing on a non-volatile solid state storage medium, e.g. DVD, CD-ROM
    • 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/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4622Retrieving content or additional data from different sources, e.g. from a broadcast channel and the Internet
    • 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/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/4722End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting additional data associated with the content
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/25Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
    • G11B2220/2537Optical discs

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Television Signal Processing For Recording (AREA)
  • Management Or Editing Of Information On Record Carriers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Indexing, Searching, Synchronizing, And The Amount Of Synchronization Travel Of Record Carriers (AREA)

Abstract

Un método para uso en el suministro de contenido suplementario a ser reproducido con un medio de almacenamiento portátil a través de un dispositivo de reproducción que se ajusta a una estructura de contenido de longitud fija, el método que comprende: recibir, sobre una red, una petición de contenido suplementario desde un dispositivo de reproducción; identificar el contenido suplementario; recuperar el contenido suplementario; acceder a una plantilla de fragmento predefinida definida anterior a recibir la petición, en donde la plantilla de fragmento define múltiples fragmentos, y en donde una primera pluralidad de fragmentos de los múltiples fragmentos están definidos para generar fragmentos del contenido suplementario que aumenta progresivamente en tamaño; procesar el contenido suplementario y generar una pluralidad de fragmentos de contenido suplementario según la plantilla de fragmento, de manera que la pluralidad de fragmentos de contenido suplementario tienen una longitud de reproducción que es una fracción de una longitud de reproducción del contenido suplementario; y reenviar la pluralidad de fragmentos de contenido suplementario al dispositivo de reproducción solicitante.

Description

Reproducción de contenido suplementario de longitud variable en un reproductor multimedia de contenido de longitud fija.
Campo de la invención
La presente invención se refiere de manera general a contenido grabado, y más particularmente a acomodar contenido de longitud variable asociado con un medio de grabación.
Antecedentes
La nueva generación de formatos de medios digitales, tales como Disco Blu-ray y Disco HD-DVD, requieren de manera general que los datos se preparen y almacenen en un disco de tal manera que describan un contenido que está almacenado en el disco. Típicamente, esta información está almacenada de una manera solamente de lectura que no soporta la modificación directa de tales datos descriptivos. Por lo tanto, el contenido reproducido desde el disco se fecha inmediatamente cuando se graba en el disco. Además, algunos datos o contenido almacenado en el disco puede llegar a estar desactualizado u obsoleto rápidamente.
El documento WO 2006/087676 define el suministro de contenido suplementario a un dispositivo de reproducción de DVD que se ajusta a un estándar de longitud fija.
Cada contenido suplementario posterior es de longitud aleatoria.
Compendio de la realización
La presente invención aborda ventajosamente las necesidades anteriores así como otras necesidades a través del suministro de métodos y sistemas para uso en el suministro de contenido suplementario a ser reproducido con un medio de almacenamiento portátil a través de un dispositivo de reproducción que se ajusta a una estructura de contenido de longitud fija. Algunos métodos reciben una petición de contenido suplementario desde un dispositivo de reproducción; identifican el contenido suplementario; recuperan el contenido suplementario; acceden a una plantilla de fragmento predefinida definida anterior a recibir la petición; procesan el contenido suplementario y generan una pluralidad de fragmentos de contenido suplementario que tienen una longitud de reproducción que es una fracción de una longitud de reproducción del contenido suplementario; y reenvían los fragmentos de contenido suplementario al dispositivo de reproducción solicitante.
Según un aspecto de la invención, un método para uso en el suministro de contenido suplementario a ser reproducido con un medio de almacenamiento portátil a través de un dispositivo de reproducción que se ajusta a una estructura de contenido de longitud fija comprende: recibir, sobre una red, una petición de contenido suplementario desde un dispositivo de reproducción; identificar el contenido suplementario; recuperar contenido suplementario; acceder a una plantilla de fragmento predefinida definida anterior a recibir la petición, en donde la plantilla de fragmento define múltiples fragmentos, y en donde una primera pluralidad de fragmentos de los múltiples fragmentos se define para generar fragmentos del contenido suplementario que aumentan progresivamente en tamaño; procesar el contenido suplementario y generar una pluralidad de fragmentos de contenido suplementario según la plantilla de fragmento, de manera que la pluralidad de fragmentos de contenido suplementario tengan una longitud de reproducción que es una fracción de una longitud de reproducción del contenido suplementario; y reenviar la pluralidad de fragmentos de contenido suplementario al dispositivo de reproducción solicitante.
El acceso a una plantilla predefinida puede comprender: recibir una identificación de información de fragmento grabada en el medio de almacenamiento portátil accedida por el dispositivo de reproducción; y seleccionar la plantilla de fragmento predefinida a partir de una pluralidad de plantillas de fragmento predefinidas, definidas anterior a recibir la petición, en base a la información de fragmento.
La plantilla de fragmento predefinida puede corresponder directamente con la información de fragmento grabada en el medio de almacenamiento portátil.
La generación de los fragmentos de contenido suplementario puede comprender incorporar datos nulos en una pluralidad de los fragmentos de contenido suplementario de manera que los fragmentos de contenido suplementario cumplen con la plantilla de fragmento seleccionada.
El método puede comprender además comprimir el contenido suplementario que comprende eliminar paquetes de datos nulos incorporados en los fragmentos de contenido suplementario anterior a reenviar la pluralidad de fragmentos de contenido suplementario al dispositivo de reproducción solicitante.
La generación de los fragmentos de contenido suplementario puede comprender incorporar datos de relleno en una pluralidad de los fragmentos de contenido suplementario de manera que los fragmentos de contenido suplementario cumplan con la información de fragmento grabada en el medio de almacenamiento portátil y asociada con el contenido suplementario.
Se obtendrá una mejor comprensión de los rasgos y ventajas de la presente invención por referencia a la siguiente descripción detallada de la invención y los dibujos anexos que exponen una realización ilustrativa en la que se utilizan los principios de la invención.
Breve descripción de los dibujos
Los anteriores y otros aspectos, rasgos y ventajas de la presente invención serán más evidentes a partir de la siguiente descripción más particular de los mismos, presentada en conjunto con los siguientes dibujos en donde:
La FIG. 1 representa un diagrama simplificado de una estructura de archivos según algunas realizaciones;
La FIG. 2 representa un diagrama de bloques simplificado de un dispositivo de reproducción según algunas realizaciones;
La FIG. 3 representa un diagrama de bloques simplificado de un sistema según algunas realizaciones que permite la acomodación de contenido de longitud variable en una estructura y/o estándar de longitud fija;
La FIG. 4 representa un diagrama de bloques simplificado de un servidor que distribuye contenido suplementario a un dispositivo de reproducción, o a dispositivos de almacenamiento en memoria remotos;
La FIG. 5 representa un diagrama de flujo simplificado de un proceso para uso en la reproducción de contenido suplementario que no tiene una duración fija en asociación con un medio de almacenamiento portátil a través de un dispositivo de reproducción que cumple con una estructura de longitud fija;
La FIG. 6 representa un diagrama de flujo simplificado de un proceso según algunas realizaciones que implementa pasos del proceso de la FIG. 5 en el inicio de la reproducción y detección de la expiración de la duración de reproducción real de contenido suplementario;
La FIG. 7 representa un diagrama de bloques simplificado de una representación gráfica de un proceso para la creación de un medio de almacenamiento y contenido suplementario que se puede obtener para reproducción en cooperación con el medio de almacenamiento creado;
La FIG. 8 representa un diagrama de bloques simplificado de una representación gráfica de un proceso para crear un medio de almacenamiento y contenido suplementario;
La FIG. 9 representa un diagrama de bloques simplificado de un conformador según algunas realizaciones;
La FIG. 10 representa un diagrama de bloques simplificado de una representación gráfica de un proceso de selección según la unidad de selección del conformador de la FIG. 9 según el archivo de información de fragmento de plantilla;
La FIG. 11 representa un diagrama de bloques simplificado de una representación gráfica de un proceso para segmentar un flujo de contenido suplementario según una plantilla de fragmento predefinida para generar fragmentos de contenido suplementario;
La FIG. 12 representa un diagrama de flujo simplificado de un proceso de segmentación de contenido suplementario en fragmentos de contenido suplementario;
La FIG. 13 representa un diagrama de flujo simplificado de un proceso implementado por una fuente o suministrador de contenido que puede formatear un contenido suplementario asociado con un medio de almacenamiento portátil;
La FIG. 14 representa un diagrama de flujo simplificado de un proceso de distribución de contenido suplementario desde fuentes remotas a un dispositivo de reproducción;
La FIG. 15 representa un diagrama de flujo simplificado de un proceso, implementado a través del dispositivo de reproducción, de generación de relleno en el dispositivo de reproducción;
La FIG. 16 representa un diagrama de flujo simplificado de un proceso para incorporar relleno en un flujo de contenido en el dispositivo de reproducción, según algunas implementaciones, con el uso de uno o más archivos de correlación de paquetes;
La FIG. 17 representa un diagrama de flujo simplificado de un proceso implementado por un proveedor fuente en la producción de un flujo de plantilla nulo que se puede utilizar por un dispositivo de reproducción en la incorporación de datos nulos en un flujo de contenido;
La FIG. 18 representa un diagrama de flujo simplificado implementado por un dispositivo de reproducción en la incorporación de paquetes nulos en un flujo de contenido según algunas realizaciones;
La FIG. 19 representa un diagrama de flujo simplificado de un proceso implementado por un dispositivo de reproducción para seleccionar un flujo de contenido según una tasa seleccionada y para conmutar a un flujo posterior que tiene una tasa diferente;
La FIG. 20 representa una representación gráfica simplificada de una plantilla de fragmento que se emplea en la definición de información de fragmento y segmentación de contenido suplementario a ser reenviada, por ejemplo desde un servidor sobre Internet a un dispositivo de reproducción;
La FIG. 21 representa una representación gráfica simplificada de una plantilla de fragmento que se puede emplear en la generación de una información de fragmento y segmentación de contenido suplementario a ser reenviado, por ejemplo desde un almacenamiento de datos remoto sobre Internet, a un dispositivo de reproducción;
La FIG. 22 representa un diagrama de bloques simplificado de un proceso según algunas realizaciones para generar una plantilla de fragmento que se puede usar en el procesamiento y/o generación de fragmentos de contenido suplementario según algunas realizaciones;
La FIG. 23 representa un diagrama de flujo simplificado de un proceso implementado por una fuente o proveedor de contenido en la generación de fragmentos de un flujo de contenido suplementario según algunas realizaciones;
La FIG. 24 representa un diagrama de flujo simplificado de un proceso implementado por un dispositivo de reproducción en la reproducción de contenido;
La FIG. 25 representa un diagrama de flujo de bloques simplificado de un proceso de captura y distribución del contenido con el tiempo según se captura el contenido, por ejemplo, durante una actuación o evento en directo a ser reproducido en cooperación con un medio, tal como un medio de almacenamiento portátil, en un dispositivo de reproducción;
La FIG. 26 representa un diagrama de flujo simplificado de un proceso según algunas realizaciones que se implementa por la unidad de procesamiento en el procesamiento de segmentos de contenido desde una o más fuentes;
La FIG. 27 es un diagrama de bloques simplificado de un proceso de flujo de datos para procesar contenido suplementario según algunas realizaciones en la generación de fragmentos de contenido e información de fragmento correspondiente a los fragmentos generados de contenido suplementario;
La FIG. 28 representa una representación de diagrama de bloques simplificado de un flujo de datos en la segmentación de contenido según algunas realizaciones;
La FIG. 29 representa un diagrama de bloques simplificado de un flujo de datos para generar segmentos de contenido a ser reenviados a un dispositivo de reproducción. En este flujo el contenido se segmenta según se captura; y
La FIG. 30 representa un diagrama de flujo simplificado de un proceso de configuración y grabación de contenido en un medio de almacenamiento portátil a ser utilizado con un dispositivo de reproducción que se ajusta a una estructura de contenido de longitud fija.
Los caracteres de referencia correspondientes indican componentes correspondientes a lo largo de las diversas vistas de los dibujos. Los expertos apreciarán que se ilustran elementos en las figuras por simplicidad y claridad y no han sido dibujados necesariamente a escala. Por ejemplo, las dimensiones de algunos de los elementos en las figuras pueden estar exageradas con respecto a otros elementos para ayudar a mejorar la comprensión de las diversas realizaciones de la presente invención. También, elementos comunes pero bien conocidos que son útiles o necesarios en una realización comercialmente factible no se representan a menudo a fin de facilitar una vista menos obstruida de estas diversas realizaciones de la presente invención.
Descripción detallada
Las presentes realizaciones proporcionan métodos, sistemas y aparatos para uso en el acomodo de la reproducción de contenido de longitud variable dentro de estructuras y/o estándares de longitud fija. Estas estructuras de longitud fija requieren de manera general que contenido, tal como un contenido multimedia, a ser reproducido a través de estas estructuras sea fijo en longitud, duración de reproducción y/o esté asociado con un índice, y que la longitud fija, duración o índice sean predefinidos anterior a iniciar la reproducción de contenido desde el medio o contenido reproducido en asociación con el contenido en el medio. Por ejemplo, algunas estructuras de longitud fija proporcionan la reproducción de contenido desde un medio de almacenamiento digital, portátil. El contenido a ser reproducido en asociación con el medio de almacenamiento portátil debe ser conocido y la longitud y típicamente el tamaño de datos del contenido generalmente tiene que ser conocido anterior a permitir que sea iniciada la reproducción de contenido desde el medio de almacenamiento portátil o reproducción del contenido asociado con el medio de almacenamiento portátil. Las presentes realizaciones, no obstante, proporcionan sistemas y métodos para acomodar y permitir la reproducción de contenido dentro de estas estructuras cuando la longitud y/o la duración de reproducción no está grabada en el medio, y no tiene que ser conocida en el momento que se inicia la reproducción de contenido en el medio o la reproducción de contenido asociado con el medio.
Se usan medios de grabación y/o almacenamiento digital portátiles para grabar contenido. En muchos casos, se graban medios de grabación digital portátiles con contenido multimedia que permite a los usuarios comprar los medios y tener acceso a contenido multimedia. A menudo el contenido multimedia está grabado según un estándar predefinido de manera que el contenido multimedia se puede reproducir con exactitud a través de múltiples tipos diferentes de reproductores que reconocen y se ajustan al estándar dado.
La grabación del contenido multimedia en el medio, no obstante, requiere que el contenido sea conocido en el momento que va a ser grabado contenido en el medio. Algunas estructuras, estándares y/o formatos avanzados o de nueva generación, tales como pero no limitados a Disco Blu-ray y Disco HD DVD, permiten que datos y/o contenido suplementario no grabado en el medio sea reproducido en cooperación con el contenido grabado en el medio (por ejemplo, accedido sobre una red de comunicación distribuida, tal como Internet). Para consumar esta cooperación de reproducción muchos de los estándares o formatos, tales como Disco Blu-ray y Disco HD DVD, requieren que el formato, datos descriptivos y/o información acerca del contenido esté preparada y grabada en un medio junto con el contenido multimedia, de manera que estos datos descriptivos definan o describan el contenido multimedia que está almacenado en el medio así como todo contenido que no está grabado en el medio pero que va a ser reproducido en cooperación con el medio. En algunos estándares los datos descriptivos se conocen, por ejemplo, como información de fragmento o porción. Para simplificar la descripción de las realizaciones de la invención descritas más adelante, los datos descriptivos se conocerán más adelante como información de fragmento. Se apreciará por los expertos en la técnica que la información de fragmento no está restringida a un único estándar o estructura, puede comprender sustancialmente cualquier información relevante acerca del contenido y no se debería interpretar que limita el alcance de las reivindicaciones.
La información de fragmento generalmente se requiere según muchos estándares y estructuras que se fijan en el momento que el contenido se graba en el medio, y además para definir específicamente los parámetros de contenido grabado en el medio y el contenido suplementario correspondiente no grabado en el medio en el momento que se graba contenido en el medio. Esta información de fragmento fija típicamente define un tamaño de datos (por ejemplo, número de octetos o bits de datos), una longitud o duración de reproducción y otras especificaciones de archivo. En algunos casos, la información de fragmento o índice puede definir duraciones de reproducción y puede además indexar o referenciar partes o puntos dentro de un flujo de contenido donde se puede iniciar la reproducción dentro de un fragmento particular, que se puede usar en algunos casos para implementar una búsqueda sobre el flujo de contenido, tal como una búsqueda de acceso aleatorio. La información de fragmento se almacena típicamente en el medio de una manera solamente de lectura que no soporta la modificación directa de tal información de fragmento. Además, un dispositivo de reproducción típicamente necesita tener y conocer toda la información de fragmento anterior a iniciar la reproducción de contenido desde el medio y/o contenido suplementario asociado con el medio.
Como resultado, el contenido suplementario que va a ser reproducido en cooperación con el medio tiene que ser conocido anterior a grabar y/o quemar el medio de manera que la información de fragmento acerca del contenido suplementario se pueda grabar en el medio. Además, esto fija el contenido suplementario de cambiar ya que la información de fragmento típicamente incluye información y parámetros específicos del contenido suplementario incluyendo el tamaño de datos (por ejemplo, en octetos) así como la longitud o duración de reproducción en el momento que se quema la información de fragmento y/o contenido en el medio.
Algunas realizaciones presentes, no obstante, permiten una variación de este contenido suplementario fijo suministrando información de fragmento nueva o revisada al dispositivo de reproducción anterior a comenzar la reproducción de contenido multimedia y contenido suplementario asociado con el medio. Como se describió anteriormente, no obstante, los dispositivos de reproducción que se ajustan a los estándares de longitud fija, no obstante, generalmente tienen que conocer toda la información de fragmento para todo el contenido, ya sea grabado en el medio o contenido suplementario recuperado de un almacenamiento secundario o remoto, anterior a comenzar la reproducción de contenido relativo al medio. Como resultado, tras recibir información de fragmento revisada, por ejemplo desde una fuente remota que suministra contenido suplementario a ser reproducido en cooperación con un medio en el dispositivo de reproducción, el dispositivo de reproducción típicamente tiene que implementar un apagado, reanudación, reinicio o cierre de una aplicación y su contexto de memoria asociado a fin de volver a cargar de manera efectiva el contenido y la información de fragmento y cualquier aplicación correspondiente. La recarga del contenido y la información de fragmento pone a disposición la información de fragmento para el contenido en el medio así como la información de fragmento revisada tras la iniciación de la reproducción relativa al medio. Adicionalmente, la recarga permite que la información de fragmento revisada sea asociada apropiadamente y aplicada con el contenido grabado en el medio anterior a la reproducción del contenido desde el medio o el contenido suplementario asociado. Esta recarga es a menudo lenta y afecta drásticamente el rendimiento y la experiencia del usuario. Por ejemplo con respecto al Estándar Blu-ray, un entorno de disco Blu-ray (BD) necesitaría recargar un sistema de archivos cuando se actualiza la información de fragmento lo cual respalda las aplicaciones de reproducción. Por lo tanto, estas aplicaciones típicamente también tienen que recargarse también. El sistema de archivos se recarga de manera similar debido a que la nueva información de fragmento tiene que ser correlacionada virtualmente de manera efectiva a un directorio de archivos y nombre de archivo específicos que son accesibles por la capa de motor de reproducción en el sistema de BD. Esta nueva correlación típicamente requiere también una recarga de sistema de archivos, algunas veces conocida como una actualización de sistema de archivos virtual (VFS).
Muchas estructuras o estándares no permiten que sea descargado contenido arbitrario sin tener conocimiento previo de la disposición y correlación del contenido. Además con muchas especificaciones de estándares, el contenido puesto a disposición para el usuario relativo a un medio está predefinido y se declara durante la puesta en marcha inicial y anterior a iniciar la reproducción del contenido relativo al medio de almacenamiento portátil. Esta es una desventaja significativa para los propietarios de contenido que distribuyen contenido así como para los consumidores en el intento de acceder y reproducir contenido suplementario no grabado en el medio que puede estar disponible y puede cooperar con el contenido grabado en el medio.
Por lo tanto, las estructuras de longitud fija tienen al menos tres desventajas en el suministro de contenido suplementario que no está predefinido en el medio o que no está fijado en longitud en el momento vez que se accede al contenido para ser reproducido. Primero, la información de fragmento del contenido multimedia y cualquier contenido suplementario para cooperar con el contenido multimedia tiene que ser conocido antes de comenzar la reproducción. Segundo, el dispositivo de reproducción tiene que ser reiniciado tras recibir la información de fragmento revisada y real en aquellos casos donde la información de fragmento no está grabada en el medio. Tercero, la información de fragmento del contenido multimedia y contenido suplementario tiene que permanecer estática después de que comience la reproducción. Esto puede limitar significativamente los beneficios de proporcionar contenido suplementario y puede afectar adversamente de manera significativa la experiencia de reproducción del usuario.
Algunas realizaciones, proporcionan métodos, dispositivos de reproducción, estructuras de datos, y sistemas para uso en proporcionar métodos alternativos de entregar contenido suplementario de longitud variable, por ejemplo sobre una conexión de red, a un dispositivo de reproducción que emplea una estructura o estándar de contenido de longitud fija que requiera una estructura predeterminística de información de fragmento. Además, algunas realizaciones ventajosamente proporcionan la reproducción cooperada de contenido grabado en un medio solamente de lectura con contenido suplementario, tal como contenido entregado dinámicamente, que tiene longitudes variables. Este contenido entregado dinámicamente no tiene que tener una longitud fija, se puede suministrar durante la reproducción de contenido desde el medio sin requerir un apagado del dispositivo de reproducción, y además en algunos casos puede incluir contenido generado por el usuario y/o contenido en directo
o sustancialmente en directo con una longitud desconocida a ser reproducido en cooperación con el medio de almacenamiento portátil.
Típicamente, el contenido suplementario cumple con uno o más estándares de formato compatibles con el dispositivo de reproducción, y a menudo tiene atributos de audio y/o vídeo similares (por ejemplo, vídeo VC-1, audio DD+, sub-imágenes RLE de 8 bits, y similares) que el(los) contenido(s) grabado(s) en el medio. Por ejemplo, contenido suplementario puede ser, pero no está limitado a, contenido creado dinámicamente (por ejemplo, vídeos generados por el usuario, grabaciones de audio, imágenes, comentarios de contenido reproducido desde un medio, etc.), fragmentos o porciones de audio/vídeo de longitud variable (por ejemplo, vídeos musicales, archivos mp3, películas, programas de televisión, etc.), tráiler teatrales, eventos alojados en directo, contenido secundario a ser visualizado con o en lugar de contenido desde el medio de almacenamiento (por ejemplo, contenido de audio/vídeo secundario entregado como contenido de “imagen en imagen”), contenido conforme con una longitud fija de un rasgo en un medio (por ejemplo, una película), y otro contenido de longitud variable tal, donde la longitud o duración de reproducción no se conoce en el momento que el contenido se quema o graba en el medio o incluso en el momento que se inicia la reproducción de contenido relativo al medio. Además en algunas realizaciones, el medio de almacenamiento portátil puede ser un contenedor o armazón que cumple con estándares de longitud fija, pero no incluye ningún contenido o solamente una mínima cantidad de contenido, y en su lugar se usa como una llave o acceso a otro contenido suplementario recuperado de un medio de almacenamiento separado (por ejemplo, recibido desde un dispositivo de almacenamiento remoto) que se reproduce a través del dispositivo de reproducción en cooperación con el medio.
En algunas implementaciones, un marcador de posición de designación de contenido se graba en el medio definiendo que se puede obtener contenido suplementario no grabado en el medio y puede cooperar para la reproducción. La información de fragmento del marcador de posición se graba además en el medio específicamente asociado con el marcador de posición de contenido. Esta información de fragmento de marcador de posición cuando se graba en un medio define un tamaño, longitud, duración de reproducción, temporización de duración, temporización de reproducción y/u otros parámetros para el contenido suplementario, donde el contenido suplementario no tiene que ser conocido en el momento que el marcador de posición de contenido y la información de fragmento de marcador de posición se graba en el medio. Además, la información de fragmento de marcador de posición se define con un tamaño de datos y/o una duración de reproducción que es mayor que un tamaño de datos, duración, longitud de duración, hora de reproducción o similares del contenido suplementario que puede ser proporcionado más tarde al dispositivo de reproducción a ser reproducido en cooperación con el contenido grabado y/o definido en el medio de almacenamiento portátil. Las presentes realizaciones, por lo tanto, permiten que contenido suplementario no grabado en un medio de almacenamiento portátil sea reproducido en cooperación con el medio de almacenamiento portátil sin conocer que contenido suplementario es anterior a quemar el medio y sin requerir que el dispositivo de reproducción sea reiniciado según estructuras de longitud fija después de que ha comenzado la reproducción de contenido asociado con el medio.
Por ejemplo, con algunas especificaciones de medio de grabación el medio ha grabado en el mismo una estructura de archivos que incluye un listado de directorios o lista de reproducción que define el contenido a ser reproducido relativo al medio. La FIG. 1 representa un diagrama simplificado de una estructura de archivos 120 según algunas realizaciones. La estructura de archivos 120 incluye uno o más listados de directorios o listas de reproducción 122 que incluyen archivos de designación de contenido o de lista de reproducción 124 y puede incluir opcionalmente marcadores de posición 128, uno o más directorios o listados 126 de información de fragmento que incluyen archivos de información de fragmento 130, y un directorio de flujos 132 con archivos de contenido 134 configurados para ser reproducidos y/o entregados a través de un dispositivo de reproducción (por ejemplo, contenido de vídeo, contenido de audio, contenido de audio/vídeo (A/V), texto, gráficos, imágenes, y otro contenido relevante tal). En algunos casos la estructura de archivos 120 puede incluir adicionalmente el directorio y/o archivos de menú 136; el directorio de datos auxiliares 138 que contiene, por ejemplo, archivos de datos de sonido, archivos de gráficos, archivos de fuentes y/u otros datos tales; el directorio de respaldo 140; código y/o ejecutables de programación 142; y otro contenido, código, ejecutables y/o datos relevantes.
Como se introdujo anteriormente, el listado de directorios o lista de reproducción 122 define el contenido a ser reproducido según el medio. La lista de reproducción 122 incluye designaciones de contenido, tales como archivos de lista de reproducción 124 que referencian contenido 134 en el directorio de flujo 132 a ser reproducido, y pueden incluir además marcadores de posición de contenido 128 que representan o designan una reproducción de contenido no grabada en un medio de almacenamiento portátil con la estructura de archivos 120 pero que se prevé sea reproducida en cooperación con respecto al medio. Los marcadores de posición de contenido 128, en algunos casos, desencadenan implementación de programación 142 definida en el medio para iniciar el acceso al contenido suplementario (por ejemplo, accesible desde un almacenamiento de memoria secundario). Además, el marcador de posición 128 o la información de fragmento correspondiente 130 puede designar un enlace o referencia para acceder al contenido suplementario no grabado en el medio de almacenamiento portátil. Por ejemplo, el marcador de posición 128 puede definir un enlace de Internet a un servidor remoto desde el que se puede recuperar contenido suplementario. El marcador de posición 128 y/o la información de fragmento 130, en algunas realizaciones, puede definir además los derechos de acceso o identificar dónde se pueden recuperar los derechos de acceso. Alternativamente, los derechos de acceso se pueden determinar por una fuente remota y no están relacionados con la información de fragmento.
El directorio o listado de información de fragmento 126 incluye la información de fragmento y/o archivos 130. Cada información de fragmento 130 corresponde a una de las designaciones de contenido 124 o uno de los marcadores de posición 128. La información de fragmento 130 define los índices, parámetros, atributos, características, información de temporización, ajustes y similares del contenido 134 referenciado por el archivo de lista de reproducción correspondiente 124, o el contenido suplementario potencial referenciado por los marcadores de posición correspondientes 128. Además, la información de fragmento 130 que corresponde a los marcadores de posición 128 puede, en algunos casos, incluir un enlace, correlación u otra designación de dónde y/o cómo se puede acceder al contenido suplementario.
El marcador de posición 128 y la información de fragmento correspondiente 130 asociada con el marcador de posición, en algunas realizaciones, define una duración, tamaño de datos, temporización de reproducción, número de tramas y/u otro parámetro relevante tal para el contenido suplementario correspondiente. Además, estas designaciones de temporización, duración, tamaño de datos y similares están definidas para estar en exceso sustancialmente de cualquier contenido suplementario esperado que se espera que esté asociado con el marcador de posición correspondiente 128, o se especifican para permitir una repetición o bucle según la información de fragmento como se describe completamente más adelante. Esto permite sustancialmente a cualquier contenido suplementario potencial tener una duración, longitud y/o similares que es menor o igual que la duración o longitud designada especificada en la información de fragmento de marcador de posición, o que se puede reproducir según la reproducción de repetición, a ser reproducida y/o utilizada con el marcador de posición asociado. Además, una duración, longitud o tamaño de datos real del contenido suplementario no necesita ser conocido anterior a comenzar la reproducción de contenido desde el medio o contenido suplementario que se reproduce en cooperación con el medio de almacenamiento portátil.
En algunas implementaciones, tales como con el BD-ROM Blu-ray y similares, se pueden definir uno o más de los marcadores de posición 128 mediante una combinación de archivos de información de fragmento 130, archivos de lista de reproducción 124, archivos del sistema de protección de contenidos (CPS) y títulos. El contenido suplementario que se adquiere son datos que se hacen coincidir con la información del marcador de posición. Además, la ubicación remota desde la que se puede recibir el contenido suplementario se puede determinar mediante software de aplicaciones 142 que se ejecuta desde los medios. Por ejemplo, este software de aplicaciones 142 puede consultar, desde una red de comunicación distribuida, el servicio de red proporcionado por el propietario del contenido para determinar una fuente desde la cual se puede recuperar y/o descargar el contenido suplementario. Los derechos de acceso se pueden definir en los archivos del CPS, y en algunos casos estos derechos de acceso se definen en la granularidad de los títulos. Los archivos del CPS puede o bien existir previamente en el medio (por ejemplo, un disco) o bien ser actualizados sobre la red. En algunos casos, actualizar los archivos del CPS puede iniciar una actualización del sistema de archivos virtuales (VFS) y/o implementar un apagado y reinicio de un título.
En algunas realizaciones, un programa o programación 142 grabado en el medio, como se describe además más adelante, está activado tras la terminación de la reproducción del contenido suplementario accedido en respuesta a un marcador de posición 128 para anular o terminar la duración designada mediante la información de fragmento de marcador de posición 130, y devuelve el control de reproducción al dispositivo de reproducción para continuar la reproducción como se define, en algunos casos, por el directorio de lista de reproducción 122. En algunos casos, la programación o código 142 está grabado en el medio, y esta programación se puede activar anterior a y/o tras acceder al contenido suplementario para reproducción designada por un marcador de posición 128. Esta programación incluye una función de programación de control de retorno, como se describió anteriormente y más adelante además, que anula o termina la duración del marcador de posición especificado por la información de fragmento del marcador de posición 130 que corresponde al marcador de posición activo 128 tras la terminación de la reproducción del contenido suplementario, y devuelve el control de la reproducción al dispositivo de reproducción y/o una interfaz de usuario tras la terminación de la reproducción del contenido suplementario. Esto termina de manera efectiva la reproducción del contenido suplementario y devuelve el control de vuelta a una interfaz de usuario y/o al dispositivo de reproducción.
La programación 142 se puede iniciar además, en algunas implementaciones, para implementar una comunicación con un servidor o dispositivo de almacenamiento remoto para determinar qué contenido suplementario está disponible. En algunos casos, el medio contiene información, metadatos, documentos XML o un conjunto de reglas o esquemas de comunicación predefinidos que permite al reproductor contactar, comunicar con y traer información desde un servidor. Se puede devolver contenido suplementario desde el servidor y el dispositivo de reproducción ayudado por la programación 142, inicia la reproducción del contenido suplementario. En algunas realizaciones, tras recibir información de vuelta desde el servidor, la programación 142 implementada por el dispositivo de reproducción controla una interfaz de usuario para visualizar un listado de contenido disponible a través del servidor y permite a un usuario interactuar con el dispositivo de reproducción seleccionando desde el listado.
La FIG. 2 representa un diagrama de bloques simplificado de un dispositivo de reproducción 220 según algunas realizaciones que pueden reproducir contenido desde un medio de almacenamiento portátil 222, tal como un Disco Blu-ray (BD), en cooperación con un contenido suplementario. El dispositivo de reproducción incluye uno o más procesadores o controladores 226, memoria y/o almacenamiento digital 228-229, uno o más controladores de medio 232 incluyendo un controlador medio de almacenamiento portátil para permitir acceso directo a un medio de almacenamiento portátil 222, uno o más puertos o interfaces de comunicación 234, una o más interfaces de usuario 236 y otros componentes relevantes tales como enlaces de comunicación internos y/o canales principales (no se muestran), y similares.
El dispositivo de reproducción de medios 220 puede ser sustancialmente cualquier dispositivo de reproducción relevante capaz de reproducir contenidos de vuelta desde un medio de almacenamiento y típicamente un medio de almacenamiento portátil. El(los) procesador(es) 226 puede(n) ser uno o más microprocesadores, mini ordenadores u otros dispositivos de procesamiento tales o combinaciones de dispositivos programados para proporcionar la funcionalidad descrita. En algunas realizaciones el procesador 226 incluye una funcionalidad de procesamiento de vídeo y/o audio, tal como decodificadores, codificadores y similares; no obstante, la funcionalidad de procesamiento de vídeo y/o audio se puede implementar a través de dispositivos separados dentro del dispositivo de reproducción cooperado con el procesador 226, y/o implementado a través de hardware, software o una combinación de los mismos.
La memoria 228 es una memoria interna al dispositivo de reproducción, está acoplada con el procesador 226 y típicamente incluye uno o más procesadores y/o medios legibles por ordenador accedidos por al menos el procesador 226. La memoria 228 puede incluir medios volátiles y/o no volátiles, tales como RAM, ROM, EEPROM, memoria de almacenamiento temporal, memoria instantánea u otra tecnología de memoria. Además, la memoria 228 puede almacenar microprogramas 240, software 242, controladores de red o comunicación 244, ejecutables 246, secuencias de comandos 248, contenido multimedia 250, datos 252, información de perfiles y/o cuentas 254, ID y/o dirección de dispositivo de red 256, contenido suplementario 260 y similares. De manera similar, la memoria 229 puede ser una memoria separada o externa acoplada con una interfaz de comunicación 234 para permitir la recuperación y/o grabación de datos, contenido, ejecutables, secuencias de comandos, contenido multimedia, información de perfiles y/o cuentas, contenido suplementario y similares. El controlador de memoria 232 es un controlador de memoria de almacenamiento portátil que recibe el medio de almacenamiento portátil 222 y permite que el contenido sea recuperado desde y/o grabado en el medio de almacenamiento portátil. El medio de almacenamiento portátil 222 puede ser sustancialmente cualquier medio legible por ordenador portátil, tal como un disco, memoria instantánea y otra memoria tal.
Las interfaces de comunicación 234 proporcionan interfaces, puertos, conexiones, antenas y similares a través de los cuales puede comunicar el dispositivo de reproducción 220 con otros dispositivos remotos y/o redes de comunicación. Estas interfaces de comunicación pueden incluir interfaces tales como, pero no limitadas a, un puerto paralelo, un puerto serie IEEE 1394, un puerto de juegos, un puerto USB, una interfaz de IR, interfaces de RF, antenas u otras interfaces tales. La una o más interfaces de usuario 236 permiten al usuario interactuar con el dispositivo de reproducción 220 y pueden incluir sustancialmente cualquier interfaz relevante, tal como un visualizador, teclado, ratón, botones físicos, una interfaz óptica o de radiocomunicación para comunicar con uno o más controles remotos, altavoces, y otras interfaces de usuario tales.
La FIG. 3 representa un diagrama de bloques simplificado de un sistema 320 según algunas realizaciones que permite la acomodación de contenido de longitud variable en una estructura y/o estándar de longitud fija. El sistema 320 incluye uno o más dispositivos de reproducción 322, una red de comunicación 324, uno o más servidores 326, y opcionalmente uno o más dispositivos de almacenamiento en memoria remotos 328.
En algunas realizaciones, los dispositivos de reproducción 322 pueden ser similares al dispositivo de reproducción 220 de la FIG. 2 y estar acoplados con la red de comunicación 324. Los servidores 326 se acoplan de manera similar con la red de comunicación para comunicar con uno o más de los dispositivos de reproducción 322, otros servidores 326, el almacenamiento de memoria remoto 328 u otros dispositivos acoplados de manera comunicativa con la red de comunicación 324. La red de comunicación 324 puede ser sustancialmente cualquier red de comunicación, tal como pero no limitada a Internet, una Intranet, una LAN y/u otras redes de comunicación relevantes.
El servidor 326, al menos en parte, recibe peticiones de y devuelve o autoriza el acceso a contenido suplementario a un dispositivo de reproducción 322 para ser reproducido. El contenido suplementario se puede suministrar directamente desde el servidor 326 o el dispositivo de reproducción se puede encaminar por el servidor 326 a un almacenamiento de memoria remoto 328. En algunos casos, el servidor 326 puede verificar adicionalmente la autorización para acceder al contenido suplementario, verificar un usuario, mantener un perfil de usuario y utilizar el perfil de usuario en algunos casos en la determinación de a qué contenido suplementario se puede proporcionar acceso a un usuario, mantener los registros y/o grabaciones de acceso a contenido, gestionar el almacenamiento de contenido suplementario y otras funciones tales. Además, en algunas realizaciones, el servidor puede formatear el contenido suplementario anterior a distribuir el contenido suplementario a un dispositivo de reproducción 322. Este formateado como se describe completamente más adelante puede incluir generar información de fragmento, segmentar contenido, cifrar contenido y otros formateados tales, además de empaquetar contenido a ser comunicado sobre la red de comunicación 324.
La FIG. 4 representa un diagrama de bloques simplificado de un servidor 326 que distribuye contenido suplementario a un dispositivo de reproducción 322, o a dispositivos de almacenamiento en memoria remotos 328. El servidor 326 incluye típicamente uno o más procesadores o controladores 422, memoria y/o almacenamiento digital 424, uno o más codificadores 426, uno o más multiplexores 428, una o más unidades de segmentación 430, el generador de información de fragmento 432 y uno o más puertos o interfaces de comunicación 434. El servidor 326 puede incluir también opcionalmente una o más interfaces de usuario 436 (por ejemplo, visualizador, teclado, ratón, botones físicos, interfaz de comunicación inalámbrica y otras interfaces de usuario tales).
El(los) procesador(es) 422 puede(n) ser uno o más microprocesadores, mini ordenadores u otros dispositivos de procesamiento o combinaciones de dispositivos tales. En algunas realizaciones el procesador 422 incluye una funcionalidad de procesamiento de vídeo y/o audio, tal como decodificadores, codificadores 426, multiplexor(es) 428 y similares. En algunas realizaciones, algunos o todos del codificador 426, multiplexor 428, unidad de segmentación 430 y generador de información de fragmento 432 se implementan por el procesador 422 a través de software para proporcionar una funcionalidad de procesamiento de vídeo y/o audio. Adicionalmente o alternativamente, esta funcionalidad de procesamiento multimedia se puede implementar a través de dispositivos separados dentro del servidor 326 o externo al servidor. Además, el procesamiento de vídeo y/o audio se puede implementar a través de hardware, software o una combinación de los mismos.
La memoria 424 puede ser sustancialmente cualquier tipo de memoria, incluyendo pero no limitado a medios volátiles y/o no volátiles, tales como RAM, ROM, EEPROM, memoria de almacenamiento temporal, memoria instantánea u otra tecnología de memoria. Además, la memoria 424 puede almacenar microprogramas 440, software 442, controladores de red y comunicación 444, programación y ejecutables 446, secuencias de comandos 448, contenido multimedia 450, contenido suplementario 452, datos 454, información de perfiles y/o cuentas 456, registros y/o datos de historial 458 y similares. Las interfaces de comunicación 434 proporcionan interfaces, puertos, conexiones, antenas y similares a través de los cuales el servidor 326 puede comunicar con otros dispositivos remotos y/o redes de comunicación 324.
Como se describió anteriormente, el dispositivo de reproducción, por ejemplo, el dispositivo de reproducción 220 de la FIG. 2, en el acceso y reproducción de contenido relevante en un medio de almacenamiento portátil detecta un marcador de posición 128 y recupera la información de fragmento de marcador de posición 130 asociada con ese marcador de posición. El dispositivo de reproducción 220 identifica una fuente para contenido suplementario (por ejemplo, la memoria local 228, memoria externa 229, y una fuente remota, tal como un servidor 326), y en algunos casos identifica el contenido suplementario, que en algunas implementaciones se puede designar relativo al marcador de posición 128 y la información de fragmento de marcador de posición 130. En muchos casos la identificación del contenido suplementario se desconoce hasta que se accede a una fuente para el contenido suplementario y la fuente para el contenido identifica el contenido suplementario o dota al usuario con un listado de contenido suplementario disponible. Esto permite que el contenido suplementario sea actualizado o cambiado en cualquier momento.
Tras identificar la fuente del contenido suplementario el dispositivo de reproducción 220 accede a la fuente y recupera información de fragmento real y contenido suplementario asociado con el medio. El dispositivo de reproducción puede iniciar la reproducción del contenido suplementario en cooperación con el medio de almacenamiento portátil 222. En algunos casos, la duración real del contenido suplementario extraído de la información de fragmento real actúa, al menos en parte, para anular la duración del marcador de posición designada en la información de fragmento de marcador de posición 130. En otros casos la duración designada en la información de fragmento de marcador de posición 130 se mantiene pero se anula tras la terminación de la reproducción del contenido suplementario. De nuevo como se describió anteriormente, la información de fragmento del marcador de posición 130 puede incluir una duración de reproducción hipotética o potencial (y/u otro parámetro relevante, tal como pero no limitado a temporización de reproducción, número de trama, número de tramas, u otros parámetros tales). Esta duración de reproducción potencial se especifica típicamente para ser mayor que las duraciones reales de uno o más contenido suplementario esperado, anticipado o potencial. Una vez que el contenido suplementario se reproduce la terminación de la duración real del contenido suplementario se detecta induciendo a una terminación de la duración de la reproducción (por ejemplo, a través de un comando de parada de medios) y devolviendo el control al dispositivo de reproducción 220.
La FIG. 5 representa un diagrama de flujo simplificado de un proceso 520 para uso en reproducción de contenido suplementario que no tiene una duración fija en asociación con un medio de almacenamiento portátil 222 a través de un dispositivo de reproducción que se ajusta a un estructura de longitud fija. Por lo tanto, el dispositivo de reproducción necesita tener toda la información de fragmento para el contenido anterior a iniciar la reproducción. En el paso 522, el proceso detecta acceso a un medio de almacenamiento portátil 222. Por ejemplo, esta detección puede incluir detectar la inserción del medio portátil 222 en el dispositivo de reproducción 220. En el paso 524, se identifican y/o determinan parámetros de reproducción del dispositivo de reproducción. Como se introdujo anteriormente y se describe además más adelante, los parámetros de reproducción definen capacidades relevantes del dispositivo de reproducción (por ejemplo, capacidades de procesamiento, tamaño del almacenador temporal, tasas de decodificación y similares), si el dispositivo de reproducción está acoplado de manera comunicativa con un almacenamiento de datos secundario o una red 324, los parámetros de conexión de red cuando el dispositivo de reproducción 220 está acoplado con la red 324 (por ejemplo, el ancho de banda de comunicación) y otros parámetros relevantes tales.
Se entra en el paso 526 para determinar si están definidas múltiples listas de reproducción en el medio de almacenamiento portátil. Cuando solamente está definida una única lista de reproducción el proceso salta al paso 532 para iniciar la reproducción. Alternativamente, el proceso continúa en el paso 530 para seleccionar una lista de reproducción apropiada en base a los parámetros de reproducción relevantes identificados. La selección además tiene en consideración si el dispositivo de reproducción está conectado con una red de comunicación 324. De nuevo, la lista de reproducción define la reproducción del contenido en el medio y en algunos casos el contenido suplementario que se puede reproducir en asociación con el medio 222. Además, la lista de reproducción incluye la información de fragmento designada 130 con respecto al contenido a ser reproducido en relación con el medio de almacenamiento portátil 222.
En el paso 532, la reproducción se inicia en base a la única lista de reproducción o la lista de reproducción seleccionada en el paso 530. En el paso 534 se determina si un marcador de posición 128 se detecta en el directorio de la lista de reproducción 122 indicando que el contenido suplementario no grabado en el medio de almacenamiento portátil 222 va a ser reproducido en cooperación con el medio de almacenamiento portátil. A menudo el dispositivo de reproducción detecta los marcadores de posición por adelantado de cuándo va a ser reproducido el contenido asociado con el marcador de posición 128. Además, se desea en algunas implementaciones que el marcador de posición se detecte con suficiente tiempo para acceder a la fuente adicional (por ejemplo, el servidor 326) y al menos comienza adquiriendo el contenido suplementario a ser reproducido de manera que la reproducción continúa con retardo limitado, y preferiblemente ninguno relativo a la reproducción de contenido grabado en el medio de almacenamiento portátil.
Cuando se detecta un marcador de posición 128 se entra en el paso 536 donde se identifica la fuente adicional para el contenido suplementario, ya sea la memoria local 228-229 del dispositivo de reproducción 220 o una fuente remota (por ejemplo, un servidor 326 o dispositivo de almacenamiento en memoria 328 accedido sobre la red 324), y un acceso a la fuente adicional se utiliza para acceder a la fuente adicional. En algunos casos, la información de fragmento de marcador de posición 130 que corresponde al marcador de posición identificado 128 define la fuente de contenido suplementario. En otras realizaciones, no obstante, el acceso a una fuente se puede definir con el marcador de posición 128, definido en el dispositivo de reproducción, indicado en alguna otra parte del medio u otra fuente. La ubicación del contenido suplementario se puede definir, en algunos casos, dentro de una aplicación programada (o bien directamente en código fuente o bien dentro de recursos asociados), obtenida consultando servicios de red para determinar dinámicamente la ubicación y similares. Además, la ubicación se podría o bien definir en una red (por ejemplo, URL), definir localmente (por ejemplo, almacenamiento local de dispositivo) y/o contenido potencialmente sintetizado. Por ejemplo, en algunas aplicaciones la aplicación programada puede ser capaz de crear dinámicamente algunos tipos de contenidos directamente (por ejemplo, imágenes, audio y similares) y escribirlos en un almacenamiento local para reproducción.
En el paso 540 se requieren detalles del contenido suplementario y la comunicación del contenido suplementario desde la fuente adicional. En algunos casos, la programación 142 en el medio de almacenamiento portátil se implementa para requerir detalles de empaquetamiento y/o el contenido suplementario a ser descargado, difundido de forma continua, reproducido progresivamente u obtenido de otro modo en el dispositivo de reproducción para reproducción. Además, la fuente adicional 326, en algunos casos evalúa algunos o todos los parámetros de reproducción y/o determina parámetros relevantes, y en base a esta evaluación identifica un contenido suplementario, formateado y/o una plantilla a ser usada en reenviar el contenido suplementario. El proceso 520 continúa en el paso 542 donde la información, datos y/o metadatos se reciben en el dispositivo de reproducción 220 desde la fuente adicional 326 definiendo parámetros del contenido suplementario y/o la comunicación del contenido suplementario. Por ejemplo, la información puede incluir metadatos para contenido suplementario de audio/vídeo incluyendo información para descargar el contenido suplementario (por ejemplo, datos XML que definen parámetros de contenido de audio/vídeo y paquete de audio/vídeo a ser descargado al dispositivo de reproducción), información para recibir contenido suplementario difundido de forma continua (por ejemplo, datos XML que definen parámetros de contenido de audio/vídeo y URL de red que describe la ubicación del contenido a ser difundido de forma continua), información para emplear reproducción progresiva (por ejemplo, datos que definen parámetros de contenido de audio/vídeo y URL de red que describe la ubicación del contenido a ser descargado), información que define la duración de reproducción real o temporización del contenido suplementario, comandos, y otra información relevante tal.
En el paso 544 se inicia la reproducción del contenido suplementario. Se señala que la reproducción del contenido suplementario se puede iniciar anterior a recibir todo el contenido suplementario, por ejemplo a través de difusión de forma continua y/o descargas progresivas según se describe además más adelante. En el paso 546 se determina si la reproducción del contenido suplementario se ha completado. Esta determinación se puede basar en una duración de reproducción real suministrada en metadatos, un comando (por ejemplo, comando de parada de medios) u otra determinación tal. En aquellos casos donde no se ha completado la reproducción el proceso vuelve al paso 544 para continuar la reproducción. Alternativamente, se entra en el paso 548 donde la duración de reproducción indicada en la lista de reproducción 122 y asociado con el marcador de posición relevante se anula para indicar una terminación de la reproducción relativa al marcador de posición 128.
En el paso 550, se devuelve el control de reproducción al dispositivo de reproducción relativo al directorio de lista de reproducción 122, por ejemplo, para proporcionar una interfaz de usuario gráfica, continuar la reproducción relativa a la lista de reproducción u otras acciones relevantes. En algunas realizaciones, la programación 142 se implementa desde el medio de almacenamiento portátil 222 que proporciona la funcionalidad para devolver el control de vuelta a la lista de reproducción, una interfaz gráfica de usuario o una interfaz de usuario (UI) después de una duración y reproducción del contenido suplementario. Tal funcionalidad puede incluir un temporizador fijado a una duración especificada en los metadatos pasados desde la fuente adicional (por ejemplo, el servidor 326) que describe una
duración real del contenido suplementario, un comando tal como “Parada de Medios” que se emite en la duración del
contenido suplementario (por ejemplo, como se especifica en los metadatos pasados desde el servidor), u otra funcionalidad tal. Una vez se excede la duración de tiempo transcurrido del contenido suplementario, se emite un comando de parada o se detecta otra indicación tal de terminación de reproducción del contenido suplementario, el control de reproducción se puede transferir de vuelta al dispositivo de reproducción o a una interfaz de usuario (por ejemplo, una UI de Título).
La FIG. 6 representa un diagrama de flujo simplificado de un proceso 620 según algunas realizaciones que implementa los pasos 544 y 546 del proceso 520 de la FIG. 5 en la iniciación de la reproducción y detectar la expiración de la duración de reproducción real que indica que el contenido suplementario ha completado su reproducción. En el paso 622, la información de fragmento de contenido suplementario real se recibe desde la fuente del contenido suplementario. En el paso 624, una duración real, la temporización de reproducción o similares del contenido suplementario se extrae desde la información de fragmento de contenido suplementario.
En el paso 626, se determina si la reproducción del contenido suplementario se va a implementar. En algunos casos, el contenido suplementario se recupera anterior a iniciar la reproducción de manera que el contenido suplementario está disponible en el momento que la reproducción va a comenzar para evitar retardos en la reproducción y proporcionar una reproducción continua de contenido. Cuando se determina que un desencadenador o temporización para iniciar la reproducción del contenido suplementario no se ha recibido, el proceso 620 continúa volviendo al paso 626 esperando un momento o instrucciones para iniciar la reproducción. En el paso 628, se inicia la reproducción del contenido suplementario. En el paso 630, se activa un contador o reloj o se hace el seguimiento de temporización de reproducción según la duración real, código de tiempo o temporización de reproducción del contenido suplementario.
El proceso 620 entonces continúa en el paso 632 para determinar si la reproducción del contenido suplementario se paraliza o detiene. En algún caso, un usuario o el dispositivo de reproducción 220 puede iniciar una acción alternativa. Por ejemplo, un usuario puede emitir un comando de pausa u otro comando, el dispositivo de reproducción puede detectar que aún otro contenido suplementario va a cooperar en la reproducción durante la reproducción del contenido suplementario actual, y otras condiciones o factores pueden provocar una pausa de la reproducción del contenido suplementario. En aquellos casos donde se detecta una pausa, se entra en el paso 634 donde el proceso paraliza la reproducción del contenido suplementario y paraliza el reloj o contador asociado con la duración real del contenido suplementario. La reproducción se continúa en el paso 636 cuando termina la pausa, el reloj o el contador se reactivan y el proceso vuelve al paso 632.
En el paso 640, se determina si el reloj o contador ha alcanzado la duración real definida del contenido suplementario, se alcanza una temporización de reproducción designada o se detecta un comando de parada que significa que el contenido suplementario ha completado su reproducción. Cuando se determina que la reproducción no se ha completado, el proceso 620 continúa en el paso 642 para determinar si otros comandos van a ser implementados (por ejemplo, saltar el reenvío, pausa, parada, visualizar un menú, cambiar flujos de contenido, y otros comandos tales que se pueden emitir por el dispositivo de reproducción, un servidor remoto, un usuario o similares). Cuando van a ser implementados otros comandos se implementan acciones apropiadas según el dispositivo de reproducción en el paso 644, que podrían incluir avanzar la temporización de reproducción, el reloj o contador de reproducción; conmutar los flujos de contenido; iniciar la reproducción de un flujo de contenido diferente; u otras acciones tales. En algunos casos, siguiendo la implementación del comando el proceso vuelve al paso 642. En otros casos, el proceso 620 puede volver opcionalmente al paso 628 para continuar la reproducción y/o iniciar la reproducción de un flujo de contenido diferente. Cuando no van a ser implementados otros comandos el proceso vuelve al paso 640 para determinar si la reproducción del contenido suplementario está completa. En aquellos casos donde la reproducción del contenido suplementario está completa el proceso 620 termina y vuelve al paso 548 del proceso 520 para desencadenar el dispositivo de reproducción para terminar la duración del marcador de posición de contenido designado en la información de fragmento de marcador de posición correspondiente 160.
En algunas realizaciones como se describió anteriormente y además más adelante, la duración del marcador de posición de contenido y/o temporización de reproducción especificado en la información de fragmento 130 del listado de información de fragmento 126 asociado con un(os) marcador(es) de posición identificados 128 designa una duración o reproducción que es más grande o más larga que una duración real de contenido suplementario esperado o potencial. Por ejemplo, el contenido suplementario asociado con un marcador de posición 128 puede ser un tráiler de película a ser reproducido en asociación con una película grabada en el medio 222. Designando el marcador de posición 128 en el medio en lugar de grabar un tráiler en el medio, un tráiler de película actualizado y actual de una película a ser estrenada pronto, por ejemplo que incluye un actor que está en la película grabada en el medio 222, se puede reproducir en lugar de un tráiler de una película antigua que fue relevante en el momento que los contenidos 162 (por ejemplo, la película) fueron grabados en el medio 222. Debido a que la duración del tráiler de la futura película es desconocido en el momento de grabar el contenido 134 en el medio, el marcador de posición permite al dispositivo de reproducción acceder al contenido suplementario, el cual se puede producir en una fecha mucho más tardes que cuando el contenido 134 se grabó en el medio 222. Además, la duración real del tráiler de la película actual se obtiene desde la fuente adicional (por ejemplo, el servidor 326) y usa para devolver el control al dispositivo de reproducción tras completar la reproducción del contenido suplementario, lo cual ocurre dentro de la duración del marcador de posición especificado en la información de fragmento de marcador de posición 130. Por ejemplo, la información de fragmento de marcador de posición 130 puede designar una duración para el contenido suplementario que sea del orden de una hora, mientras que la duración de la reproducción real del tráiler de la película puede ser de alrededor de 60 segundos. Por lo tanto, el tráiler de la película se puede reproducir dentro de la duración de una hora especificada y tras la terminación de la reproducción del tráiler de película de contenido suplementario, la duración especificada de la información de fragmento 130 se anula y el control se devuelve al dispositivo de reproducción.
En algunas implementaciones como se describió anteriormente y se describe además más adelante, el contenido suplementario a ser proporcionado al dispositivo de reproducción 220 se descompone o segmenta en una serie o secuencia de múltiples segmentos, porciones o fragmentos, y los segmentos, porciones o fragmentos de contenido se reenvían entonces, típicamente secuencialmente, al dispositivo de reproducción. Esto reduce la memoria y/o los requerimientos de almacenamiento temporal de los dispositivos de reproducción, permite la reproducción de contenido relativamente largo y permite una reproducción progresiva en que el dispositivo de reproducción puede iniciar la reproducción de un segmento mientras que se están recibiendo uno o más de otros segmentos.
Además, cada segmento de contenido suplementario tiene información de fragmento real correspondiente que, como se describió anteriormente, es información (por ejemplo, un archivo de información) que describe detalles del archivo de contenido del segmento de contenido suplementario. Muchos estándares y/o estructuras de longitud fija, no obstante, tienen que conocer o recibir todos los archivos de información de fragmento para todos los fragmentos
o segmentos para contenido en el medio así como cualquier contenido suplementario anterior a comenzar la reproducción del contenido relevante en el medio, ya sea el contenido grabado en el medio o accedido desde una fuente secundaria y asociado con el medio 222.
Algunas realizaciones emplean una plantilla de fragmento predefinida que se expresa o define anterior a segmentar el contenido suplementario en fragmentos o segmentos. Además en algunos casos, la plantilla de fragmento se puede definir en el medio de almacenamiento portátil 222 en el momento que el contenido 134 se graba en el medio. La plantilla de fragmento se puede usar para dictar cómo va a ser segmentado el contenido suplementario en fragmentos de contenido suplementario. El contenido suplementario, por lo tanto, se descompone hasta ajustarse a la pantalla de fragmento predefinida. Además, la plantilla de fragmento define la información de fragmento para cada fragmento anterior al contenido suplementario que se segmenta en fragmentos. Adicionalmente en algunos casos, la plantilla de fragmento se usa en la codificación y formateo del contenido suplementario. Aplicando la plantilla de fragmento, la información de fragmento para cada fragmento de contenido suplementario se conoce anterior a descomponer el contenido suplementario en fragmentos.
Utilizar una plantilla de fragmento permite a la información de fragmento para cada fragmento ser grabada en el medio de almacenamiento portátil 222 o reenviada a un dispositivo de reproducción 220 anterior a reproducir, y en algunos casos anterior a generar los fragmentos de contenido suplementario. Como resultado, el contenido suplementario no tiene que ser conocido o incluso existir en el momento que la información de fragmento se graba en el medio 222 o suministra al dispositivo de reproducción. Además, debido a que el contenido suplementario no tiene que existir en el momento que se graba la información de fragmento en el medio o proporciona al dispositivo de reproducción 220, se pueden distribuir eventos en directo a dispositivos de reproducción como el contenido suplementario, y/o el contenido suplementario con longitudes indefinidas se puede reproducir en un dispositivo de reproducción 220 mientras que el dispositivo de reproducción aún se ajusta con un estándar o estructura de longitud fija.
Adicionalmente o alternativamente, el número de fragmentos disponibles para contenido suplementario puede ser limitado. Por ejemplo, muchas especificaciones o estándares limitan el número de fragmentos que se pueden incluir en una lista de reproducción y/o en un medio. Como ejemplo específico, el Estándar Blu-ray, al menos en algunos casos, limita el número de fragmentos en una lista de reproducción a 999 fragmentos, mientras que además se limita el número de fragmentos en un disco compatible Blu-ray a 4000. Por lo tanto, un contenido suplementario con una longitud de contenido desconocida puede provocar un número de fragmentos que excedería el número de fragmentos dentro de una lista de reproducción y/o permitida en un medio. Como resultado, algunas realizaciones utilizan una repetición, bucle o reproducción de repetición de fragmentos. Específicamente, se puede especificar un número definido de fragmentos a ser reproducidos repetidamente hasta detenerse por un comando o terminación de contenido. Por lo tanto, se puede definir una lista de reproducción con un número limitado de fragmentos y el contenido suplementario se puede configurar según una repetición del número de fragmentos cuando el contenido suplementario tiene una duración que excede una única secuencia de reproducción del número limitado de fragmentos.
Aún además, debido a que las plantillas de fragmento predefinidas se pueden definir anterior al contenido suplementario que se crea o graba, algunas realizaciones están configuradas para incluir múltiples plantillas de fragmento definidas para acomodar capacidades que difieren del dispositivo de reproducción 220 y/o enlaces de comunicación, acomodar diferente contenido suplementario con cantidades de datos que varían, acomodar tasas de bit de codificación/decodificación diferentes otros factores tales. Por ejemplo, un medio de almacenamiento portátil 222 puede incluir múltiples listas de reproducción 122 y el listado de información de fragmento asociado 126, donde cada lista de reproducción corresponde a una plantilla de fragmento diferente para acomodar dispositivos de reproducción, parámetros y/o condiciones que difieren.
Adicionalmente, se puede configurar una plantilla de fragmento para contenido suplementario a una tasa de bit que está en exceso de cualquier tasa de bit esperada de contenido suplementario que va a ser segmentada en base a la plantilla de fragmento. Según se descompone el contenido suplementario en fragmentos como se define por la plantilla de fragmento el contenido suplementario no puede llenar u ocupar completamente el tamaño de datos disponible de algunos si no todos los fragmentos definidos por la plantilla de fragmento. Algunas realizaciones compensan el tamaño de datos más pequeño del contenido suplementario rellenando fragmentos de contenido suplementario generado según una plantilla de fragmento con datos nulos o datos que se ignoran por el dispositivo de reproducción 220. Además, el contenido suplementario tiene un perfil (por ejemplo, número de bits relativos a la temporización de reproducción), y el relleno se puede incorporar para cambiar o mover partes del perfil de manera que se alineen con la información de fragmento de marcador de posición predefinido. Por ejemplo una serie de bits cero, un patrón de bits predefinido, un paquete nulo u otra configuración tal se puede incorporar en los datos de fragmentos relevantes donde sea apropiado mantener la temporización.
Además, debido a que el contenido suplementario está siendo entregado en segmentos y/o porciones de datos que hacen coincidir la información de fragmento de marcador de posición los límites del segmento no pueden alinearse con una duración de reproducción real. Por lo tanto, en algunos casos, un segmento que contienen un extremo de reproducción se puede rellenar fuera para la longitud del segmento completa para permanecer en cumplimiento con la información de fragmento de marcador de posición y/o temporización. Por ejemplo, el relleno puede ser en forma de paquetes nulos de datos y/o relleno adicional siguiendo una serie de paquetes dentro de un fragmento. Como ejemplo, algunas implementaciones proporcionan que números enteros de paquetes vaya a ser incorporados en cada fragmento que va a recibir relleno, y en aquellos casos donde un número entero de paquetes no llena completamente un fragmento aún un paquete posterior excedería los límites del fragmento, se pueden incorporar datos de relleno para llenar el resto de un fragmento. Además como se describe completamente más adelante, los datos de relleno y nulos pueden estar definidos relativos al contenido suplementario pero no incorporados en el contenido. En su lugar, el dispositivo de reproducción, identificando desencadenadores o instrucciones y/o utilizando una correlación, incorpora los datos de relleno o nulos en el dispositivo de reproducción. Esto permite a un tamaño de datos reducido del contenido suplementario ser transmitido al dispositivo de reproducción.
La FIG. 7 representa un diagrama de bloques simplificado de una representación gráfica de un proceso para crear un medio de almacenamiento 222 y contenido suplementario 722 que se puede obtener para reproducir en cooperación con el medio de almacenamiento creado 222. En algunas realizaciones, la creación se implementa en dos fases, una fase de empaquetado del medio de almacenamiento 714, y una fase de paquete de red o contenido suplementario 716. Se emplea una aplicación de creación 724, tal como Sony Blu- PrintTM, para configurar una o más estructuras de archivos 120 (ver la FIG. 1) en un paquete de creación 726 que se graba en el medio de almacenamiento 222 en la fase de medio de almacenamiento 714.
En la fase de paquete de contenido suplementario 716, el contenido suplementario 730 a ser accedido (por ejemplo, por un dispositivo de reproducción 322 de más de una red distribuida 324) y reproducida en cooperación con el medio de almacenamiento 222 se configura además, en algunas realizaciones, a través de la aplicación de creación 724 u otra aplicación relevante para separar o trocear el contenido suplementario en porciones de contenido y generar un paquete de contenido suplementario creado 732 que comprende una serie de porciones de contenido 738 (.m2ts). En algunos casos, el contenido suplementario se divide o trocea según una programación de porción seleccionada 750. El paquete de contenido suplementario creado 732 incluye un archivo de lista de reproducción (.mpls) 734, archivos de información de fragmento (.clpi) 736 y fragmentos de flujo de transporte de contenido suplementario (.m2ts) 738, donde el único archivo de lista de reproducción 734 apunta a la pluralidad de archivos de información de fragmento 736 y los fragmentos de flujo de transporte asociados 738. El archivo de lista de reproducción 734 y los archivos de información de fragmento 736, en algunas implementaciones, se pueden reenviar al dispositivo de reproducción 220 anterior a iniciar la reproducción mientras que los fragmentos de contenido suplementario 738 se pueden descargar anterior a o en el momento de la reproducción a través del dispositivo de reproducción, por ejemplo, a través de difusión de forma continua, una descarga progresiva (que en algunos casos pueden emular la difusión de forma continua de contenido) u otros métodos tales.
Algunas aplicaciones de creación 724, no obstante, no pueden generar convenientemente y/o formatear contenido suplementario que se pueda descargar y/o descargar progresivamente fácilmente. De manera similar, algunas aplicaciones de creación 724 son incapaces de generar con exactitud el paquete de contenido suplementario creado que cumple con una plantilla de fragmento predefinida. En estos casos, se emplea una aplicación de ajuste (o serie de aplicaciones) para ajustarse a un paquete de contenido suplementario creado preliminar 742 generado desde la aplicación de creación.
El paquete de contenido suplementario creado preliminar 742 incluye un archivo de lista de reproducción 744, un archivo de información de fragmento 746 y un flujo de transporte de contenido suplementario 748. La aplicación de conversión 740 trocea o fragmenta el archivo de información de fragmento 746 y el flujo de transporte de contenido suplementario 748 según una programación de porción que produce el paquete de contenido suplementario creado 732 con el archivo de lista de reproducción 734 que apunta a la pluralidad de archivos de información de fragmento troceados 736 y fragmentos de flujo de transporte asociados 738. El archivo de lista de reproducción 734 y los archivos de información de fragmento 736, en algunos casos, se pueden configurar en una descarga completa que se utiliza durante una actualización en el dispositivo de reproducción 322, y cuando un usuario realmente va a reproducir el contenido los flujos de transporte de fragmentos de contenido suplementario 738 se pueden descargar.
La FIG. 8 representa un diagrama de bloques simplificado de una representación gráfica de un proceso para crear un medio de almacenamiento 222 y contenido suplementario 822 que se ajuste a una plantilla de fragmento predefinido. El ajuste con una plantilla de fragmento predefinida, en parte, permite que el contenido suplementario sea ajustado a una plantilla de fragmento que corresponde con una lista de reproducción en el medio de almacenamiento creado 222 o en el dispositivo de reproducción 220. Por lo tanto, el contenido suplementario no tiene que ser conocido o creado en el momento que el medio de almacenamiento creado 222 se crea o la lista de reproducción se suministra al dispositivo de reproducción. Además, el ajuste permite que el contenido suplementario sea reproducido en asociación con un medio de almacenamiento creado incluso cuando el contenido suplementario no tenga una longitud definida, tal como un contenido generado por el usuario (UGC), contenido en directo y similares, que se puede difundir de forma continua o descargar al dispositivo de reproducción 220 para reproducción en cooperación con el medio de almacenamiento creado 222. El proceso puede incluir tres fases, la fase de empaquetado del medio de almacenamiento 714, una fase de empaquetado de red 816 y una fase de formateo de contenido 818.
La fase de empaquetamiento de red 816 se usa para generar los marcadores de posición que van a ser suministrados al dispositivo de reproducción 322 para uso en reproducir el contenido suplementario 822. Durante la fase de empaquetamiento de red 816 la aplicación de creación 724 se usa para generar el paquete de contenido suplementario creado preliminar 842 que define de manera efectiva una plantilla que dicta el ajuste del contenido suplementario 822, y que puede incluir un archivo de lista de reproducción 844, un archivo de información de fragmento de plantilla 846 y un flujo de transporte de plantilla de contenido suplementario 848 que va a ser utilizado en la configuración del contenido suplementario 822. La aplicación de conversión 740 se usa para generar un archivo de lista de reproducción convertido 852 que incluye los marcadores de posición que apuntan a la pluralidad de archivos de información de fragmento de marcador de posición 854. Además, la aplicación de conversión 740 genera una correlación de fragmento o porción 856 que se usa también en la configuración del contenido suplementario 822.
La fase de formateo de contenido 818 transcodifica 860 el contenido suplementario (por ejemplo, contenido de vídeo y/o audio capturado cargado en algún servidor web) para poner el contenido suplementario 822 en un formato de vídeo o audio elemental correcto o deseado. Usando la información de fragmento de plantilla 846 y el flujo de transporte de plantilla 848 generado en la fase de empaquetado de red 816 el contenido suplementario transcodificado se ajusta a través de un conformador 862 de manera que el contenido suplementario se hace coincidir con los archivos de fragmento de marcador de posición 854 que ya están sobre el dispositivo de reproducción 220 o van a ser descargados sobre el dispositivo de reproducción 220. En algunos casos, el contenido suplementario 822 se incorpora en el flujo de transporte de plantilla 848 donde partes de sustitución, relevantes del contenido dentro del flujo de transporte de plantilla mientras que las partes no sustituidas se definen por datos nulos
o sustituyen por datos nulos según se describe completamente más adelante.
Una aplicación de conversión 864 entonces se implementa mientras que se aplica la correlación de porciones 856 generada en la fase de empaquetado de red 816 para conducir la fragmentación o troceado de flujo de transporte de contenido suplementario sobre la marcha a los puntos apropiados correctos para dividirlo en los fragmentos de contenido suplementario 870. Estos fragmentos o porciones 870 entonces se pueden reenviar inmediatamente sobre la red al dispositivo de reproducción 322, o se pueden almacenar para descargar más tarde.
La FIG. 9 representa un diagrama de bloques simplificado de un conformador 862 según algunas realizaciones. El conformador 862 incluye un primer analizador sintáctico 922, un primer almacenador temporal frontal 924, una unidad de comparación y selección 926, un segundo analizador sintáctico 930, un tercer analizador sintáctico 932, un segundo almacenador temporal frontal 934, un conmutador selector de flujo 936, y un sobre escritor de paquetes
940. Las entradas al conformador 862 pueden incluir el flujo de transporte transcodificado 942 según se transcodifica por el transcodificador 860, un parámetro identificador (ID) de flujo 944, la información de fragmento de plantilla 846 y el flujo de transporte de plantilla 848. Además, el conformador 862 genera el flujo de transporte de contenido suplementario conformado 964.
El flujo de transporte de contenido suplementario transcodificado entrante 942 y el flujo de transporte de plantilla 848 se aplican en paralelo al primer y segundo almacenadores temporales frontales 924, 934, respectivamente, para construir un mapa de navegación de los flujos entrantes. Estas correlaciones proporcionan mapas de los flujos y estas correlaciones se suministran a la unidad de selección 926 anterior a las partes correspondientes de los flujos de manera que las selecciones se pueden determinar anterior a implementar realmente las selecciones que se describen más adelante más completamente. Al menos en parte, estas correlaciones proporcionan flujo a través de modelos del flujo de transporte de plantilla 848 y el flujo de transporte de contenido suplementario transcodificado entrante 942.
Además, el flujo de transporte de contenido suplementario transcodificado entrante 942 y el flujo de transporte de plantilla 848 se aplican respectivamente al primer analizador sintáctico 922 y el tercer analizador sintáctico 956 para extraer metadatos y/o parámetros de los flujos y para generar mapas de paquetes fuente respectivos 952 y 956. Estos parámetros se incluyen en cada una de los flujos de transporte 942, 848, pero son a menudo difíciles de acceder y/o funcionar debido a que los flujos están generalmente altamente comprimidos. Como resultado, el flujo de transporte se analiza sintácticamente para extraer los parámetros necesarios. Los mapas de paquetes fuente pueden incluir una serie de parámetros que representan los paquetes individuales que se usan para construir el flujo real, y puede incluir parámetros tales como, pero no limitados a, los que están en las posiciones de octetos; los que están en las horas actuales de esas posiciones de octetos; las horas de presentación; las horas de codificación; para aquellos paquetes que incluyen carga útil si la carga útil es audio, vídeo y/u otro contenido; si el ID de flujo corresponde a un parámetro de ID de flujo 944 de interés; y otros parámetros relevantes.
Una vez que se generan los mapas de paquetes fuente 952, 956 (típicamente construidos sobre la marcha) se suministran a la unidad de selección 926 para ser utilizados, al menos en parte, como la base para determinar qué paquetes del flujo de transporte de plantilla 848 van a ser mantenidos y cuáles van a ser sustituidos. Como se describió anteriormente, anterior a implementar realmente una selección relativa a los flujos, los mapas de paquetes llegan a la unidad de selección 926 anterior a aplicar un algoritmo de selección a un paquete asociado. La unidad de selección 926 evalúa un ID de flujo para asegurar que un flujo que se evalúa es un flujo de interés (basado en el parámetro de ID de flujo recibido 944), una información en el archivo de información de fragmento de plantilla 846, los puntos de entrada 954 extraídos por el segundo analizador sintáctico 930 desde el archivo de información de fragmento de plantilla 846 que define los puntos que se pueden buscar que el reproductor puede buscar dentro del flujo particular como estos puntos de búsqueda se deberían respetar, y la temporización en el flujo según se recibe para mantener la temporización en un intento de mantener la temporización igual (por ejemplo, cualquier hora de presentación particular del mapa entre el flujo de transporte de plantilla 848 y el flujo de transporte de contenido suplementario entrante 942).
Según el flujo de transporte de contenido suplementario 942 fluye a través del conformador 862 y la unidad de selección 926, en base a las decisiones de selección tomadas, conduce el selector de flujo 936 a seleccionar entre un paquete de un flujo de transporte de plantilla 848, un paquete del flujo de transporte de contenido suplementario entrante 942, o insertar un paquete nulo a través del sobre escritor de paquetes 940. En algunos casos el conformador 862 además sobre escribe la presentación y los sellos de tiempo de decodificación que fueron especificados en el flujo de transporte de contenido suplementario entrante 942 con los sellos de tiempo que están alineados con la base de tiempo del flujo de transporte de plantilla 848. El flujo de transporte de contenido suplementario ajustado 964 se reenvía entonces para ser además troceado y descargado al dispositivo de reproducción 322 como se describió anteriormente y además más adelante.
En algunas implementaciones, el conformador usa el flujo de transporte de plantilla 848 para proporcionar temporización maestra. Los paquetes en el flujo de transporte de plantilla 848 con un ID de flujo especificado por la formación de parámetros de ID[] de flujos introducidos 944 se sustituyen o bien con paquetes con el mismo ID de flujo a partir del flujo de transporte de contenido suplementario entrante 942 o bien paquetes de relleno nulos. Las decisiones con respecto a cuándo sustituir un paquete a partir del flujo de transporte de plantilla 848 con un paquete del flujo de transporte de contenido suplementario entrante 942 frente a un paquete de relleno se basan, al menos en parte, en comparaciones temporales entre el flujo de transporte de plantilla 848 y el flujo de transporte de contenido suplementario entrante 942. En algunos formatos o estándares de contenido, tales como Blu-ray ROM, un formato de paquete se superpone en el formato de flujo de transporte MPEG-2 general, definiendo una forma especializada de un paquete de transporte que se incluye llamado un paquete fuente que contiene un sello temporal de llegada. Este paquete es efectivamente un paquete de flujo de transporte, que en algunos casos, tiene un extra de cuatro octetos en la parte delantera de él que contiene un estado de protección de copia de ese paquete y un sello de tiempo de llegada de ese paquete como llegó dentro del multiplexor (parámetro de Interés). Este sello de tiempo de llegada puede ayudar además en la comparación y selección de un paquete, y se puede usar tanto con flujos para alinear los flujos para asegurar que cuando la sustitución del paquete está siendo implementada que el paquete que es sustituido corresponda con un paquete similar que se inserta. El archivo de información de fragmento de plantilla 846 además especifica puntos de entrada de la hora de presentación 954 que van a ser respetados durante el proceso de sustitución de paquetes para mantener el cumplimiento con las marcadores de posición de información de fragmento en el dispositivo de reproducción 322.
La FIG. 10 representa un diagrama de bloques simplificado de una representación gráfica de un proceso de selección 1020 según la unidad de selección 926 del conformador 862 según el archivo de información de fragmento de plantilla 846. Se muestran una serie de paquetes 1022 de un flujo de transporte de plantilla 848, una serie de paquetes 1024 de un flujo de transporte de contenido suplementario entrante 942, y la serie de paquetes resultantes 1024, 1027-1028 del flujo de transporte de contenido suplementario ajustado 964. Basado en las selecciones implementadas por la unidad de selección 926, según la temporización, se seleccionan o rellenan paquetes o se incorporan paquetes nulos 1027 para producir el flujo de transporte de contenido suplementario ajustado 964. El flujo de transporte de contenido suplementario ajustado resultante incluye algunos paquetes 1022 a partir del flujo de transporte de plantilla 848 (que podría incluir uno o más paquetes de sistema 1028 y otros paquetes sobredimensionados tales), paquetes 1024 a partir del flujo de transporte de contenido suplementario entrante 942 y algunos paquetes nulos o de relleno insertados 1027. Los paquetes nulos proporcionan bits de relleno entre paquetes de contenido para, en parte compensar, la diferencia en contenido real frente a la plantilla, mantener temporización, satisfacer requerimientos de almacenamiento temporal y/o ajustarse con información de fragmento predefinida.
Cuando se incorporan los paquetes entrantes de flujo de transporte de contenido suplementario 942 en cumplimiento con la información de fragmento de plantilla 846, la temporización de sello de tiempo de decodificación (DTS) y de sello de tiempo de presentación (PTS) se pueden ajustar para coincidir con el flujo de transporte de plantilla 848. Además, en algunos casos, un sello de tiempo de llegada de paquete se toma a partir del flujo de transporte de plantilla 848.
En algunas realizaciones, cuando se codifica el flujo de transporte de contenido suplementario los parámetros de configuración del flujo de vídeo entrante se debería fijar para ser similar a o el mismo que los parámetros de configuración para el flujo de transporte de plantilla 848 con la excepción de al menos la tasa de bit. Adicionalmente, la colocación y/o las duraciones de GOP (Grupos de Imágenes) y/o grupo de vídeo de unidad de acceso vídeo (GOVU) del flujo de transporte de contenido suplementario 942 debería corresponder con, y en algún caso ser idéntico al GOP/GOVU del flujo de transporte de plantilla 848 para permitir a los sellos de tiempo de presentación entre el flujo de transporte de plantilla 848 y el flujo de transporte de contenido suplementario entrante 942 ser comparados apropiadamente.
Adicionalmente, el número total de bits entre horas de presentación de punto de entrada en el flujo de transporte de contenido suplementario entrante 942 es menor que el número total de bits entre horas de presentación de punto de entrada correspondientes en el flujo de transporte de plantilla 848. En caso negativo, el flujo de transporte de flujo de contenido suplementario entrante 942 no encajará en el flujo de transporte de plantilla 848 y/o tendrían que ser empleados probablemente ajustes al flujo de transporte de contenido suplementario 942 (por ejemplo, recodificar al menos una parte del flujo de transporte de contenido suplementario para cumplir con las restricciones de bits). Por ejemplo, algunas implementaciones pueden usar un factor de 1,5 en ajustar una tasa de bit promedio media entre el flujo de transporte de contenido suplementario 942 y el flujo de transporte de plantilla 848. Este factor puede, en algunos casos, ser ajustado o sintonizado, y también puede ser impactado por tasas de bit pico. Además, la granularidad de puntos de entrada se puede separar para mejorar las oportunidades de ajuste (por ejemplo, la granularidad de punto de entrada puede ser mayor que 1 segundo de distancia, o en algunos casos mayor que 2 segundos de distancia).
La unidad de selección 926 en la selección de paquetes se conduce por el flujo de transporte de plantilla 848. Para cada paquete del flujo de transporte de plantilla, se determina el tipo del paquete. En algunas implementaciones, los paquetes de tipo de sistema (que están sobredimensionados de manera general, describen el flujo o similares) se mantienen en el flujo de transporte ajustado 964 y seleccionan por la unidad de selección 926, los paquetes nulos se sustituyen de manera general con paquetes a partir del flujo de transporte de contenido suplementario 942 (por ejemplo, audio, vídeo, datos de estilo privado, etc.). Como se describió anteriormente, la hora se evalúa además, y en aquellos casos donde la temporización entre el flujo de transporte de plantilla 848 y el flujo de transporte de contenido suplementario 942 no encajan, se puede seleccionar e insertar un paquete nulo.
Antes de seleccionar un paquete se evalúa el ID de flujo designado en el paquete para confirmar que el ID del flujo corresponde con un parámetro de ID del flujo 944. Según fluye la información en la unidad de selección 926, se evalúa información adicional en el paquete, tal como un sello de tiempo. En algunos casos, el paquete se busca para un sello de tiempo de presentación, que es la temporización asociada con un paquete dado designado cuando se espera que sea presentado en un visualizador o a través de altavoces durante la reproducción. Se realiza una comparación en el sello de tiempo de presentación del flujo de transporte de plantilla 848 y el sello de tiempo de presentación del flujo de transporte de contenido suplementario 942. Por ejemplo, para un paquete del flujo de transporte de plantilla 848 la unidad de selección 926 determina si un paquete correspondiente, que corresponde en temporización de presentación y que tiene un ID de flujo de encaja con el parámetro ID de flujo 944 que se busca, se puede identificar en el flujo de transporte de contenido suplementario 942. Una vez que un paquete a partir del flujo de transporte de contenido suplementario 942 se identifica que tiene un ID de flujo de encaje a un parámetro de ID de flujo 944, el tiempo de presentación se evalúa para determinar si el paquete corresponde en el momento de presentación con el flujo de transporte de plantilla 848 y se debería incorporar en el flujo de transporte de contenido suplementario ajustado 964. En algunas realizaciones, se dicta la selección, al menos en parte, confirmando que los momentos de presentación coinciden, y si el momento de presentación se alinea, entonces emitir un comando de selección para permitir al paquete del flujo de transporte de contenido suplementario 942 fluir a través de la salida. Alternativamente cuando el momento de presentación no se alinea, se inserta un paquete nulo debido a que hay una tasa de bit insuficiente en el flujo de transporte de contenido suplementario entrante 942 para hacer coincidir el flujo de transporte de plantilla 848.
Con referencia de vuelta a la FIG. 8, una vez generado el flujo de transporte de contenido suplementario ajustado 964 se procesa además a través de la aplicación de conversión 864 que aplica la correlación de porciones 856 para generar fragmentos o porciones 870 de contenido suplementario. La lista de reproducción correspondiente convertida 852 contiene muchos elementos de reproducción que apuntan a un fragmento separado, y en algunas realizaciones, cada uno de esos fragmentos representan la granularidad de las descargas progresivas. En algunos casos, el troceado se realiza en línea. Según se entregan los paquetes desde el conformador 862 fluyen en la aplicación o componente de conversión 864 que convierte progresivamente el flujo según el mapa de porciones 856. La información de fragmento 854 se puede utilizar, en algunas implementaciones, para generar los fragmentos correspondientes 870 de contenido suplementario. Por ejemplo, la información de fragmento puede dictar cuántos paquetes están en cada fragmento, definida el momento de inicio y el momento de fin de cada fragmento. Como se introdujo anteriormente, se puede generar una correlación 856 para proporcionar un conjunto conveniente de datos con que trabajar, y se puede usar por la aplicación de conversión 864 cuando se generan los fragmentos 870 tomando el flujo de transporte de contenido suplementario de ajuste 964 y especificando qué paquete va en qué fragmento durante qué cantidad de tiempo y/o estos muchos octetos en el fragmento, designan una finalización del fragmento y cierran el fragmento.
Como se describió anteriormente, en algunas realizaciones, se incorporan números enteros de paquetes en fragmentos de contenido suplementario 870. En aquellos casos donde un número entero de paquetes no se puedan incorporar en un fragmento para llenar el fragmento, un número máximo de paquetes se incorporan sin exceder los límites del fragmento y el resto del fragmento se llena con datos nulos o de relleno, para mantener al menos en parte la temporización. Algunas realizaciones, cuando se generan los fragmentos respetan las restricciones de la unidad de alineación, y como tal tiene que incluir un número entero de paquetes en cada fragmento. En aquellos casos donde un número entero de paquetes no se pueden incorporar en un fragmento para llenar el fragmento, se incorporan un número de paquetes en el paquete relativo a una hora final y el resto del fragmento se rellena con datos nulos o de relleno para cumplir con el entero múltiplo de la unidad de alineación.
Por ejemplo, el BD-ROM proporciona que cada fragmento sea un entero divisible por 32 paquetes (6144 octetos). Así si un límite de fragmento segmentado no cumple ese parámetro, entonces se añaden paquetes de relleno nulos, típicamente, en el extremo del fragmento. Además, los paquetes nulos incorporan el sello de tiempo de llegada especializado del BD-ROM. Este sello de tiempo avanza a una tasa menor o igual a la tasa de bit de multiplexación de flujo de transporte citada de paquete nulo a paquete nulo. Esto pone una restricción adicional sobre la elección de límites de fragmento viables debido a que se debería proporcionar un lapso de tiempo lo bastante grande entre el sello de tiempo de llegada final del fragmento N y el sello de tiempo de llegada de comienzo del fragmento N+1 para insertar una serie de paquetes nulos donde el reloj de tiempo de llegada avanza a una tasa de la tasa de multiplexación de flujo de transporte de flujo citada.
La FIG. 11 representa un diagrama de bloques simplificado, según algunas realizaciones, de una representación gráfica de un proceso 1120 para segmentar un flujo de contenido suplementario 1122 según una plantilla de fragmento predefinida 1124 para generar fragmentos de contenido suplementario 1126 ajustados a la plantilla de fragmento 1124. El flujo de contenido de suplementario 1122 se divide en paquetes 1024 y puede ser sustancialmente cualquier contenido suplementario relevante, por ejemplo, datos de audio y vídeo (A/V). Como se describió anteriormente con referencia a las FIG. 7-10, los paquetes 1024 de contenido suplementario se transcodifican, cuando se necesita, y ajustan en base a un flujo de transporte de plantilla 848. Un conformador 862 genera un flujo de transporte de contenido suplementario ajustado 964 que puede incluir paquetes de flujo de transporte de plantilla 1022, paquetes de contenido suplementario 1024 y/o paquetes nulos 1027. En base a la plantilla de fragmento 1124, el flujo de transporte de contenido suplementario ajustado 964 entonces se segmenta descomponiendo el contenido suplementario en los fragmentos de contenido suplementario 1126. Cada fragmento de contenido suplementario 1126 incluye uno o más paquetes 1022, 1024, 1027. Además, se pueden incorporar bits, paquete(s) o datos de relleno 1132 en uno o más de los fragmentos de contenido suplementario 1126 cuando un número entero de paquetes 1022, 1024, 1027 no llena el fragmento. El perfil de la pluralidad resultante de fragmentos 1126 de contenido suplementario se ajusta a la plantilla de fragmento predefinida 1124. Por lo tanto los fragmentos de contenido suplementario se pueden correlacionar con la información de fragmento en el dispositivo de reproducción, y en algunos casos se proporciona para satisfacer requerimientos de almacenamiento temporal.
Un flujo de contenido ficticio o hipotético se puede usar en la generación de la plantilla de fragmento predefinida 1124 e información de fragmento relevante. Este flujo ficticio no se distribuye a dispositivos de reproducción, y en su lugar se usa para crear la plantilla de fragmento y el archivo de información de fragmento que tiene suficiente sobredimensionamiento o margen para permitir sustancialmente cualquier flujo de contenido suplementario esperado 1122 a ser segmentado según el perfil de la plantilla de fragmento. Un flujo ficticio se puede codificar, por ejemplo, a una tasa de bit en exceso de una tasa de bit de contenido suplementario anticipado para establecer fragmentos con datos en exceso de datos de contenido suplementario cuando se codifican a una tasa de bit compatible con dispositivos de reproducción. Esto establece al menos en parte el tamaño de datos en exceso en la plantilla de fragmento de manera que los fragmentos de contenido suplementario pueden corresponder con la plantilla de fragmento y de esta manera la información de fragmento asociada con la plantilla de fragmento.
Se pueden generar múltiples plantillas de fragmento diferentes y se puede seleccionar una de las múltiples plantillas de fragmento, por ejemplo, dependiendo de uno o más factores tales como, un dispositivo de reproducción esperado
o conocido, ancho de banda de enlace de comunicación y otros parámetros tales. Las diferentes plantillas de fragmento producen diferentes flujos de datos a diferentes tasas de bit, anchos de banda totales y similares que se pueden personalizar en base a diferentes anchos de banda y/o velocidades de enlace de comunicación, capacidades de procesamiento y ancho de banda del dispositivo de reproducción y otros factores tales. El medio de almacenamiento portátil 222 puede incluir múltiples listas de reproducción diferentes con cada lista de reproducción que está asociada con diferentes parámetros de reproducción, tales como anchos de banda y/o velocidad de enlaces de comunicación, capacidades de procesamiento del dispositivo de reproducción, otros parámetros o combinaciones de tales parámetros. En algunas realizaciones, la programación 142 en el medio 222 además incluye programación que puede hacer al dispositivo de reproducción 220 implementar una aplicación para determinar el ancho de banda de la red, las capacidades de procesamiento del dispositivo y/u otros parámetros tales, y seleccionar una lista de reproducción 122 e información de fragmento relevante grabada en el medio en base a los parámetros determinados. Esta selección se puede reenviar al servidor 326 u otro dispositivo remoto que puede identificar una plantilla de fragmento predefinida que corresponde con la lista de reproducción seleccionada 122 y reenviar contenido suplementario que se ajusta a la plantilla de fragmento predefinida identificada.
Además en algunos casos, el contenido suplementario se codifica y/o multiplexa (por ejemplo, intercalando contenido suplementario de vídeo y audio juntos) para cumplir un conjunto particular de requerimientos de modelo de almacenador temporal en el intento de asegurar que el flujo codificado de contenido suplementario se puede reproducir a través de uno o más dispositivos de reproducción particulares y/o dispositivos que cumplen con un estándar o estructura de reproducción particular tal como un reproductor Blu-ray, HD DVD u otro compatible tal. La codificación y/o multiplexación intercala contenido en el intento de asegurar que el dispositivo de reproducción no rebasará o faltarán datos en sus almacenadores temporales.
Se puede usar y codificar un flujo de contenido ficticio o hipotético, por ejemplo, en una especificación de tasa de bit relativamente muy alta. Esta tasa de bit muy alta se selecciona para ser mayor que una tasa de bit esperada para el contenido suplementario (por ejemplo, mayor que la tasa de bit para un contenido generado por el usuario). La plantilla de fragmento predefinida se genera en base a esta tasa de bit alta codificada de manera efectiva creando un contenedor en el cual se puede configurar contenido suplementario. Usando la plantilla de fragmento predefinida se conoce dónde están yendo a ser colocados los paquetes y similares a lo largo del flujo.
Un contenido suplementario real, tal como el contenido generado por el usuario, se genera a una tasa de bit más baja, y a menudo a una tasa de bit mucho más baja que el flujo de contenido hipotético usado en la generación de la plantilla de fragmento predefinida. Cuando el flujo de contenido suplementario codificado 1122 se descompone en los fragmentos 1126 la plantilla de fragmento 1124 proporciona libertad de acción y flexibilidad para ajustar el contenido 1130 dentro de los fragmentos 1126 debido a que la cantidad de datos del contenido suplementario 1130 que se incorporan en un fragmento como se define por la plantilla de fragmento 1124 es menor que (y en algunos casos significativamente menor que) el tamaño de datos adjudicado para el fragmento por la plantilla de fragmento 1124. El contenido suplementario dentro del fragmento 1124 se ajusta para alinear el contenido suplementario 1130 con la plantilla de fragmento, en algunas realizaciones, incorporando datos nulos o ficticios 1132 (por ejemplo, series preseleccionadas de bits, cadena de un (1) bit u otros datos nulos tales). La serie de datos nulos o ficticios 1132 se saltan o no reconocen por el dispositivo de reproducción 322 en la reproducción de los fragmentos 1126 del contenido suplementario (por ejemplo, los dispositivos de decodificación compatibles con MPEG típicamente saltan los paquetes nulos 13818-1 de MPEG-2).
Como se describió anteriormente, la plantilla de fragmento predefinida 1124 se puede usar para dictar, al menos en parte, la codificación y/o multiplexación para generar un flujo de fragmentos de contenido suplementario 1126 que se ajusta a la plantilla de fragmento predefinida 1124. Por lo tanto, el flujo de contenido suplementario codificado incluye relleno 1132 (por ejemplo, datos o bits ficticios o nulos) que alinea el contenido 1130 de manera que los fragmentos 1126 de contenido suplementario están en cumplimiento con la plantilla de fragmento predefinida y corresponden con la información de fragmento en un medio 222 o de otro modo proporcionado al dispositivo de reproducción.
El relleno 1132 de un flujo de contenido suplementario, en algunos casos, se puede implementar incorporando los bits o datos ficticios dentro del flujo de contenido en capas diferentes en una jerarquía de una especificación de flujo de transporte. Por ejemplo, se puede incorporar relleno en la capa elemental y/o en la capa de paquetes. Como ejemplo adicional, los flujos de transporte MPEG2 incluyen paquetes, y cada paquete se identifica para almacenar uno de vídeo, audio, sub imágenes, gráficos o similares. El relleno se puede incorporar insertando datos nulos, por ejemplo, en datos de sub imágenes cuando se conoce o determina que los paquetes necesitan ser realineados. Los paquetes nulos se pueden incorporar en puntos estratégicos de manera que el flujo se ajuste a la información de fragmento predefinida de la plantilla de fragmento. Por ejemplo, se podrían incorporar datos de sub imagen nulos en el flujo donde los datos nulos nunca son accedidos, están disponibles o son visualizados por el dispositivo de reproducción. Algunos flujos de contenido pueden incluir y/o permitir uno o más flujos secundarios a ser incluidos en la multiplexación. Por lo tanto, algunas realizaciones incorporan adicionalmente o alternativamente algo o todo el relleno, por ejemplo en la capa de paquetes, usando otro flujo secundario como el relleno.
En algunas realizaciones, se puede emplear una estrategia híbrida donde inicialmente el flujo de contenido suplementario se codifica y multiplexa intentando cumplir con una plantilla de fragmento predefinida mientras que se yerra en el lado de la precaución. El flujo de contenido codificado entonces se puede ajustar además incorporando relleno adicional para cumplir más exactamente y/o precisamente la plantilla de fragmento predefinida. Esta aplicación híbrida se puede utilizar en algunos casos donde se necesitan demandas de tasa de bit más estrictas, por ejemplo, cuando hay espacio de memoria limitado, intentando reducir un tamaño de descarga y otros casos tales.
Se señala que la incorporación de datos de relleno o ficticios 1132 provoca tamaños de datos aumentados de fragmentos de contenido suplementario y el transporte de datos redundantes adicionales. Se pueden emplear intentos, en algunos casos, para intentar y reducir además el tamaño de datos anterior a la transmisión de los fragmentos al dispositivo de reproducción. Según se pasa el contenido suplementario a través de un multiplexor típicamente está ya comprimido y la incorporación de relleno, como se describió anteriormente, se añade para satisfacer los requerimientos del almacenador temporal y correlacionar con la información de plantilla de fragmento predefinida. Se pueden obtener reducciones adicionales en el tamaño de datos, no obstante, pasando los fragmentos de contenido suplementario a través de un segundo nivel de compresión. Los fragmentos de contenido posterior se pueden descomprimir entonces en el dispositivo de reproducción antes de ser grabados en el almacenamiento local del dispositivo de reproducción o de otro modo utilizados por el dispositivo de reproducción. En algunas realizaciones, una aplicación de descompresión se puede ejecutar a partir de la programación 142 en el medio de almacenamiento portátil 222.
Adicionalmente o alternativamente, el relleno se puede excluir de los fragmentos de contenido suplementario. Los fragmentos sin relleno se pueden reenviar al dispositivo de reproducción 220 y el dispositivo de reproducción entonces puede implementar el procesamiento de los fragmentos para incorporar relleno en los fragmentos. El relleno en el dispositivo de reproducción se puede incorporar, por ejemplo, implementando, en el dispositivo de reproducción, la programación 142 (por ejemplo, código Java) desde el medio de almacenamiento portátil, almacenado en el dispositivo de reproducción y/o recibido desde una fuente separada (por ejemplo, a través de aplicaciones de BD-LiveTM). La programación 142 puede identificar dónde se va a incorporar el relleno en base a una correlación u otras indicaciones en el flujo de contenido o proporcionado separado del flujo de contenido, y usado para reconstruir el flujo de contenido en el dispositivo de reproducción 220 con el relleno apropiado que se necesite.
Algunas realizaciones pueden definir el relleno en el servidor 326 u otra instalación de procesamiento definiendo o añadiendo, a través de un formato comprimido de longitud de ejecución, códigos de inicio adicionales que definen datos de relleno que ejecutan una longitud especificada. El dispositivo de reproducción 220 cuando reproduce los fragmentos detecta los códigos de inicio y extiende el contenido según el código de inicio definido y la longitud especificada. Otro método de designar a un dispositivo de reproducción donde va a ser incorporado relleno es proporcionar una correlación de relleno o correlación de paquetes al dispositivo de reproducción. La correlación de relleno o paquetes puede definir el relleno para un contenido entero, o una correlación de paquetes puede definir el relleno para sólo una parte del contenido, tal como para un único fragmento, un grupo de fragmentos o alguna otra parte del contenido. En base a la correlación de paquetes el dispositivo de reproducción puede incorporar el relleno en el contenido anterior a la reproducción, y en muchos casos anterior a escribir el contenido en el almacenamiento local para uso en reproducir el contenido según la especificación Blu-ray. Esta correlación se puede reenviar como un archivo separado o conjunto de datos, por ejemplo, anterior a recibir el contenido sobre un canal separado o recibido con el contenido, tal como en una cabecera o de otro modo anterior a o con el contenido.
Permitir al dispositivo de reproducción incorporar el relleno en el flujo de contenido puede reducir extremadamente la cantidad de datos que tienen que ser comunicados al dispositivo de reproducción (por ejemplo, descargados), y puede reducir las redundancias que ocurren debido al relleno. Por ejemplo, debido a las variaciones en el contenido de vídeo, la tasa de bit de codificación instantánea puede variar drásticamente, cuando se codifica con una tasa de codificación variable. Un flujo de vídeo puede tener una tasa de bit promedio o nominal de 4 Mbits/seg, no obstante, en cualquier punto dado durante el flujo la tasa de codificación puede saltar, por ejemplo a 9 Mbits/seg debido a cambios de escena rápidos, y de manera similar puede caer a tan bajo como 1 Mbit/seg. A fin de permitir y compensar tales fluctuaciones, se seleccionaría una plantilla de fragmento que tuviera una capacidad adecuada para hacer frente al vídeo entrante que está siendo ajustando a la plantilla de fragmento. Por lo tanto, la plantilla de fragmento seleccionada tendría una tasa de bit alta, y de esta manera, provocaría una gran cantidad de relleno (por ejemplo, números grandes de paquetes de relleno) sobre una mayoría del flujo de contenido ajustado. Proporcionar una correlación de paquetes o definir dentro del flujo de contenido donde va a ser incorporado el relleno permitirá al flujo de contenido ser transmitido sin la transmisión y comunicación de grandes cantidades de datos redundantes y nulos. El dispositivo de reproducción, en su lugar, puede incorporar el relleno como se defina dentro del flujo (por ejemplo, a través de códigos de inicio y longitudes o números de paquetes de relleno definidos) o a través de la correlación de paquetes. Incorporar el relleno en el flujo de contenido en el dispositivo de reproducción permite adicionalmente a una plantilla de fragmento ser seleccionada que pueda acomodar un gran intervalo de tasas de bit de codificación.
La FIG. 12 representa un diagrama de flujo simplificado de un proceso 1220 de segmentar el contenido suplementario 1130 en fragmentos de contenido suplementario 1126. La segmentación puede darse anterior a recibir la petición (por ejemplo, contenido pregrabado segmentado según una o más plantillas y/o tasas de codificación), o segmentado en el momento de la petición y/o con el contenido en directo. En el paso opcional 1222, se recibe una petición para reproducir contenido suplementario sobre la red 324 desde un dispositivo de reproducción 322. En el paso 1224, se identifica y recupera el contenido suplementario. En algunos casos el contenido suplementario se recupera según se genera, por ejemplo, grabando una actuación, producción, evento en directo o similares. En el paso 1226, se determinan los parámetros y/o características relevantes del dispositivo de reproducción y/o enlace de comunicación o se identifica una plantilla de fragmento, por ejemplo una plantilla de fragmento especificada por el dispositivo de reproducción. Como se describió anteriormente, la programación 142 en algunos casos proporciona un código que induce al dispositivo de reproducción 322 a determinar sus capacidades de reproducción, procesamiento y/o almacenamiento temporal. Además, el dispositivo de reproducción 220 y/o programación 142 en el medio puede causar una selección de una lista de reproducción que corresponde con una plantilla de fragmento y/o información de fragmento predefinidas grabadas en el medio de almacenamiento portátil y asociadas con el marcador de posición 128. El enlace de comunicación puede afectar además el flujo de datos para el dispositivo de reproducción y se puede usar en el ajuste de la generación de los fragmentos de contenido suplementario 1126, seleccionando una tasa de codificación relativa a la plantilla de fragmento seleccionada, y/o seleccionando un contenido suplementario que ha sido segmentado y preparado por adelantado y almacenado.
En el paso 1228, se identifica y selecciona una plantilla de fragmento predefinida 1124 según los parámetros relevantes o la plantilla designada. En el paso 1230, se determina si ha sido preparado contenido suplementario por adelantado y está disponible. En aquellos casos donde el contenido suplementario ha sido preparado según la plantilla de fragmento y codificado según los parámetros relevantes, el proceso salta al paso 1234. El proceso continúa en el paso 1232, cuando el contenido suplementario no ha sido preparado, donde el flujo de contenido suplementario 1122 se codifica y/o multiplexa según la plantilla de fragmento seleccionada 1124 y los parámetros identificados (por ejemplo, tasas de bit, ancho de banda de comunicación, etc.) para generar los fragmentos de contenido suplementario 1126 que incluyen el contenido suplementario 1130 y en algunos casos incluye los datos de relleno 1132 donde sea apropiado. Alternativamente, los fragmentos de contenido suplementario 1126 se generan sin los datos de relleno 1132, pero en su lugar incluyen códigos de inicio u otros indicadores que, cuando se detectan por un dispositivo de reproducción, se usarán por el dispositivo de reproducción para generar los datos de relleno 1132 e incorporar los datos de relleno 1132 en el dispositivo de reproducción como se describió anteriormente y se describirá más adelante completamente. Aún en otras implementaciones, se genera una correlación de paquetes o correlación de datos nulos en cooperación con los fragmentos de contenido suplementario 1126, a ser usada por el dispositivo de reproducción en la generación de los datos de relleno 1132 e incorporar el relleno en el dispositivo de reproducción.
En el paso 1234, se selecciona un conjunto preparado de contenido suplementario en base a la plantilla identificada y otros parámetros relevantes, tales como el ancho de banda de la red y similares. En el paso 1240, los fragmentos de contenido suplementario 1126, y la correlación donde sea apropiada, se reenvían al dispositivo de reproducción
220. El proceso 1220 se puede implementar cualquier número de veces, y en algunos casos simultáneamente, para múltiples parámetros relevantes diferentes. Por ejemplo, múltiples dispositivos de reproducción 220 pueden estar accediendo a una fuente para contenido suplementario (por ejemplo, un evento en directo tal como un comentario del director) y se pueden generar múltiples flujos de fragmentos de contenido suplementario para diferentes dispositivos de reproducción que tienen diferentes parámetros. Además en algunos casos, los pasos 1222, 1224 y 1226 se saltan y múltiples plantillas de fragmento diferentes se seleccionan en el paso 1230 y usan en el paso 1232 para generar múltiples flujos diferentes de fragmentos de contenido. Cuando los dispositivos de reproducción requieren acceder al contenido se puede seleccionar uno de los múltiples flujos diferentes de fragmentos de contenido según los parámetros de reproducción y/o parámetros de comunicación.
La FIG. 13 representa un diagrama de flujo simplificado de un proceso 1320 implementado por una fuente o suministrador de contenido que puede formatear el contenido suplementario 452 asociado con un medio de almacenamiento portátil 222, y en algunos casos reenviar el contenido suplementario formateado a un dispositivo de reproducción solicitante 220. Por ejemplo, la fuente de contenido puede ser una memoria local o externa 228 de un dispositivo de reproducción 220, servidor remoto 326 o dispositivo de almacenamiento en memoria 328 acoplado con y que comunica con el dispositivo de reproducción sobre una red de comunicación distribuida 324, tal como Internet, u otra fuente tal. Además, el proceso 1320 se puede implementar por un suministrador de contenido que formatea el contenido y distribuye el contenido formateado a fuentes a ser accedidas por los dispositivos de reproducción 220. El formateado puede incluir, pero no está limitado a, formatear para comunicación apropiada cuando sea relevante, cifrar o aplicar otra protección al contenido suplementario, comprimir el contenido, segmentar el contenido suplementario según una o más plantillas de fragmento cuando el contenido aún no ha sido descompuesto en segmentos, volver a segmentar según otros parámetros, y otro formateado relevante. En algunas realizaciones, el proceso 1320 se puede utilizar en cooperación con el proceso 1220 de la FIG. 12.
En el paso 1322, la fuente de contenido (por ejemplo, el servidor 326) recibe una petición de contenido suplementario a ser reproducido en asociación con un medio 222 en un dispositivo de reproducción 220. En el paso 1324, se identifica el medio 222 en el dispositivo de reproducción, y en algunas realizaciones, se autentifica. La autentificación puede ser sustancialmente a través de cualquier proceso de autentificación como se conoce en la técnica. En el paso 1326, se determina si se necesita autorización para reenviar el contenido suplementario. En aquellos casos donde no se necesita autorización el proceso salta al paso 1334. Alternativamente, se entra en el paso 1330 para determinar si se recibe autorización. La autorización se puede basar en información proporcionada por el dispositivo de reproducción 220, un perfil de usuario, una verificación de pago recibida, una autorización desde un dispositivo de terceras partes (por ejemplo, un servidor de terceras partes asociado con un propietario de contenido del contenido suplementario y/o contenido grabado en el medio), una contraseña, y/u otras autorizaciones tales. En aquellos casos, donde no se verifica una autorización el proceso emite una notificación, en el paso 1332, al dispositivo de reproducción y termina.
En el paso 1334, se identifica el contenido suplementario requerido 452, típicamente en base a la identidad del medio 222 y/o el contenido grabado en el medio. Otros factores también pueden ser tenidos en cuenta en la identificación del contenido suplementario. Por ejemplo, la plantilla; parámetros de codificación, tales como cuando múltiples flujos están disponibles que se codifican a tasas diferentes; se puede considerar un perfil de usuario cuando se determina el contenido suplementario a suministrar, tal como, identificar un contenido suplementario apropiado para la edad del usuario, identificar anterior al contenido suplementario previamente recibido, un nivel de servicio por el que ha pagado un usuario (por ejemplo, un nivel básico frente a un servicio de alta calidad), y similares; se puede evaluar un nivel de autorización (por ejemplo, un usuario puede haber pagado una tarifa más baja para un primer contenido suplementario, mientras que podría haber sido pagada una tarifa más alta para obtener uno o más contenidos suplementarios alternativos o adicionales); se pueden considerar capacidades del dispositivo de reproducción (por ejemplo, si el dispositivo puede recibir contenido difundido de forma continua, proporcionando contenido de vídeo de alta definición cuando el dispositivo de reproducción es capaz de utilizar tal contenido, etc.); características de la red (por ejemplo, el ancho de banda de la red); y otros factores tales.
Una vez que se ha identificado el contenido suplementario, el proceso 1320 continúa en el paso 1336 para recuperar y/o generar metadatos y/o información de contenido suplementario real (por ejemplo, duración de reproducción real, temporización de reproducción real y otros metadatos relevantes tales), y reenviar los metadatos cuando estén disponibles al dispositivo de reproducción solicitante. En el paso opcional 1338, se realiza un procesamiento y/o formateado de contenido suplementario cuando se necesita procesamiento. El procesamiento puede incluir generar los fragmentos de contenido suplementario (por ejemplo, el proceso de implementación 1120 y/o 1220 descrito anteriormente con referencia a las FIG. 11 y 12), cifrar, formatear y/o empaquetar los fragmentos para comunicación en base a un protocolo de comunicación y otro procesamiento tal. Como se describió anteriormente, en algunos casos, los fragmentos de contenido suplementario se pueden preparar por adelantado según una o más plantillas y/o codificar según una o más tasas y/o esquemas de codificación diferentes. Cuando se ha procesado previamente el contenido suplementario, el paso 1338 se puede saltar o el procesamiento en el paso 1338 se puede limitar, por ejemplo limitar para formatear según un canal de comunicación específico, cifrar u otro procesamiento tal. En el paso 1340, se inicia una transferencia del contenido suplementario. En aquellos casos donde van a ser generados e incorporados datos de relleno en el contenido suplementario en el dispositivo de reproducción 220, la transferencia del contenido suplementario en el paso 1340 puede incluir reenviar una correlación de paquetes u otras indicaciones tales al dispositivo de reproducción, cuando la información de relleno no se incorpora directamente en el flujo de contenido, de manera que el relleno se puede generar en el dispositivo de reproducción en las ubicaciones apropiadas dentro del flujo de contenido.
En el paso 1342, la transferencia del contenido suplementario se monitoriza para determinar si van a ser hechos ajustes. Estos ajustes se pueden basar en cambios en el enlace de comunicación, instrucciones desde el dispositivo de reproducción u otros cambios tales. Cuando van a ser hechos ajustes se entra en el paso 1344 para implementar los ajustes apropiados, y el proceso 1320 vuelve al paso 1340 para continuar la transferencia como se ajustó según los ajustes apropiados determinados. Los ajustes pueden variar dependiendo de las condiciones del enlace de comunicación y/o ancho de banda, las acciones por el usuario, y/u otros factores tales. En algunos casos, el ajuste puede incluir una conmutación de flujo. Empleando una única plantilla y codificando el mismo contenido suplementario que usa la única plantilla mientras que se aplican dos o más tasas de codificación diferentes para producir una pluralidad de flujos diferentes del mismo contenido a tasas diferentes, se puede implementar una conmutación de flujo a una tasa de bit más baja o más alta sin alterar la reproducción o requerir al dispositivo de reproducción 220 reanudar, reiniciar, implementar una actualización (por ejemplo, una actualización al sistema de archivos virtual (VFS)) u otras actualizaciones tales; o se puede implementar una conmutación a un contenido suplementario completamente diferente donde el contenido suplementario diferente se ajusta a la única plantilla.
El proceso 1320 continúa en el paso 1346 para determinar si van a ser reenviados metadatos, comandos, información de contenido suplementario y/o información de fragmento real adicionales al dispositivo de reproducción. Por ejemplo, pueden ser conocidos metadatos adicionales en base a completar una codificación del contenido suplementario, se puede comunicar un comando de parada de medios, una correlación de paquetes que designa al menos ubicaciones de relleno y cantidades de relleno a ser insertadas por el dispositivo de reproducción y ser definidas, u otra información tal. Se entra en el paso 1350 cuando unos metadatos adicionales, otra información o comando(s) relevante(s) van a ser reenviados, y los metadatos adicionales, otra información o comando(s) relevante(s) se comunica(n) al dispositivo de reproducción. En el paso 1352, se determina si el contenido suplementario se ha transferido completamente. Cuando la transferencia no está completa, el proceso 1320 vuelve al paso 1340 para continuar la transferencia. Alternativamente, el proceso 1320 termina.
La FIG. 14 representa un diagrama de flujo simplificado de un proceso 1420 de distribución de contenido suplementario desde fuentes remotas (por ejemplo, un servidor 326 o almacenamiento digital remoto 328) a un dispositivo de reproducción 220. En algunas realizaciones el proceso 1420 se puede incorporar como parte del proceso 1320 descrito anteriormente. En el paso 1422, se determina si el contenido suplementario va a ser descargado o difundido de forma continua al dispositivo de reproducción. En aquellos casos donde el contenido suplementario identificado va a ser descargado al dispositivo de reproducción, se entra en el paso 1424 para determinar si uno o más fragmentos o segmentos del contenido suplementario van a ser generados. En algunos casos, el contenido suplementario puede haber sido ya descompuesto en una pluralidad de fragmentos o segmentos 1126 de contenido suplementario a ser reenviado. Se entra en el paso 1426 cuando van a ser generados fragmentos del contenido suplementario y en base a uno o más parámetros se procesa el contenido suplementario para iniciar la generación de fragmentos de contenido suplementario. Los parámetros pueden incluir el tamaño del almacenador temporal del dispositivo de reproducción 220, el ancho de banda de la red de comunicación, la velocidad de procesamiento y/o las capacidades del dispositivo de reproducción, las tasas de reproducción y/o tasas de bit del dispositivo de reproducción y el contenido que se reproduce, la cantidad de contenido suplementario a ser reenviado, la plantilla de fragmento predefinida identificada y otros parámetros relevantes tales. El proceso 1420 continúa en el paso 1430 a continuación del paso 1426 y cuando se determina en el paso 1424 que el contenido suplementario no tiene que ser descompuesto en fragmentos, dónde se inicia la transferencia de un fragmento o archivo de contenido suplementario. De manera similar, se entra en el paso 1432 cuando el contenido va a ser difundido de forma continua donde se inicia la difusión en forma continua del contenido.
En el paso 1434, el proceso determina si van a ser implementados ajustes para la transmisión (por ejemplo, tasas de transmisión) o retransmisión de un fragmento o una parte del contenido difundido de forma continua. Los ajustes y/o retransmisiones se pueden basar en la realimentación recibida desde el dispositivo de recepción o las condiciones de error detectadas. En el paso 1436, se inicia la retransmisión. En el paso 1440, se determina si van a ser transmitidos fragmentos adicionales. Cuando van a ser transferidos fragmentos adicionales el proceso 1420 vuelve al paso 1430 para iniciar la transferencia de un fragmento posterior del contenido suplementario. Alternativamente el proceso continúa en el paso 1442 donde se determina si todo el contenido suplementario se ha entregado al dispositivo de reproducción. En aquellos casos donde va a ser reenviado contenido suplementario adicional el proceso vuelve al paso 1432 para continuar la entrega del contenido suplementario. Cuando se determina que todo el contenido suplementario ha sido reenviado se entra en el paso 1444 para determinar si van a ser reenviados metadatos adicionales u otra información relevante al dispositivo de reproducción. Se entra en el paso 1446 para iniciar la transferencia de metadatos adicionales u otra información relevante en aquellos casos donde van a ser transferidos metadatos adicionales u otra información relevante.
Como se describió anteriormente, en algunas implementaciones los datos nulos o de relleno no se incorporan en el contenido suplementario en la fuente de contenido y no se comunican, por ejemplo sobre una red 324, a un dispositivo de reproducción. En su lugar, el contenido suplementario se ajusta a una plantilla seleccionada y datos que definen la colocación de dónde van a ser incorporados los paquetes de relleno 1027 y/o datos de relleno 1132 y se identifica una cantidad de relleno a ser incorporado. Se genera una correlación de relleno o paquetes separada o se incorporan designaciones de relleno en el flujo de contenido, de manera que la correlación de paquetes y/o designaciones de relleno identifican dónde va a ser incorporado el relleno y cuánto relleno va a ser incorporado. El dispositivo de reproducción utiliza esta correlación de paquete o designaciones de relleno para incorporar el relleno en el dispositivo de reproducción a ser almacenado en memoria local en el dispositivo de reproducción anterior a ser reproducido. No implementando el relleno en la fuente de contenido, se reduce la cantidad de datos para comunicar el contenido suplementario.
La generación de relleno en el dispositivo de reproducción 220 se puede implementar a través del software recuperado desde el medio de almacenamiento portátil 222, almacenamiento local 228 y/o recibido sobre la red 324 (por ejemplo, a través de BD-LiveTM). Esta aplicación software se puede implementar sustancialmente a través de cualquier programación relevante, tal como Java, o cualquier otra programación relevante que pueda ejecutarse en el entorno del dispositivo de reproducción y que interprete la correlación de paquetes y/o designaciones de relleno (por ejemplo, un código de inicio) dentro del flujo. Usando la correlación y/o designaciones de relleno el dispositivo de reproducción puede determinar dónde llenar el relleno (por ejemplo, en base a la temporización) y cuánto relleno incorporar. Un flujo de contenido resultante, después de la incorporación del relleno en el dispositivo de reproducción, está preparado para la reproducción, y en algunos casos, se puede escribir en el almacenamiento local preparado para la reproducción. En otras implementaciones, tales como en algunas implementaciones de difusión de forma continua, la información de relleno no se puede escribir realmente en el flujo de contenido por el dispositivo de reproducción, sino que en su lugar se utiliza como información de temporización. Alternativamente, no obstante, algunas implementaciones utilizan e incorporan el relleno dentro del flujo de contenido para cumplir con la información de fragmento en el dispositivo de reproducción y/o del medio, y conservar una integridad entre el flujo de contenido y un mapa de información de fragmento. Aún más, el relleno, puede en parte, ser incorporado en el flujo de contenido para mantener los niveles de almacenador temporal y mantener la temporización.
La FIG. 15 representa un diagrama de flujo simplificado de un proceso 1520, implementado a través del dispositivo de reproducción 220, de generación de relleno en el dispositivo de reproducción según algunas implementaciones. En el paso 1522, se establece comunicación con una fuente de contenido suplementario, tal como una fuente remota 326. En el paso 1524, el dispositivo de reproducción 220 autentifica y/o proporciona autorización de sí mismo y/o del medio de almacenamiento portátil 222 cuando se requiere por la fuente remota. En el paso 1526, se reenvía una petición del contenido suplementario a la fuente remota 326. Esta petición puede incluir proporcionar una identificación del medio de almacenamiento portátil 222, que identifica el contenido suplementario anterior, que identifica un usuario y otra información tal que se puede utilizar por la fuente de contenido en la identificación de contenido suplementario como se describió anteriormente y además más abajo. En el paso 1528, se determina si se recibe una confirmación de que está disponible y va a ser comunicado contenido suplementario. En aquellos casos donde no hay contenido suplementario el proceso 1520 termina.
En el paso 1530, se determina si se recibe una correlación de paquetes. Como se describió anteriormente, en algunos casos, la correlación de paquetes se puede reenviar sobre el mismo canal de comunicación o uno diferente. Además, la correlación de paquetes puede ser solamente una correlación parcial para un subconjunto del contenido suplementario. Cuando no se recibe una correlación de paquetes, el proceso continúa en el paso 1534. Alternativamente, se entra en el paso 1532 donde la correlación de paquetes se analiza sintácticamente y se identifica una ubicación inicial y cantidad de relleno.
En el paso 1534, se recibe contenido suplementario. En el paso 1536, se procesa inicialmente el contenido suplementario. Este procesamiento inicial puede incluir alguna descompresión inicial, decodificación, descifrado y/u otro procesamiento previo tal. En el paso 1538, se analiza sintácticamente el flujo de contenido. En el paso 1540 se determina si se detectan uno o más identificadores de relleno dentro del flujo que designan que va a ser incorporado relleno en el flujo de contenido. El identificador de relleno se puede definir, en algunos casos, como un código de inicio que especifica un relleno con una longitud, tiempo de ejecución, número de paquetes, número de octetos definidos o similares.
Cuando el flujo de contenido incluye un identificador de relleno, se entra en el paso 1542 para determinar la ubicación donde el relleno va a ser incorporado en el flujo de contenido y una cantidad de relleno a ser incorporada. En el paso 1544, el dispositivo de reproducción comienza a grabar localmente el flujo de contenido suplementario. En el paso 1546, el flujo de contenido se monitoriza mientras que se escribe el flujo de contenido suplementario y se determina si los paquetes o datos de relleno van a ser incorporados en una ubicación actual dentro del flujo de contenido suplementario como se define por la correlación de paquetes y/o identificador de relleno. En aquellos casos donde no va a ser incorporado relleno, el proceso continúa en el paso 1548 para determinar si se recibe y/o va a ser grabado localmente contenido suplementario adicional. En aquellos casos donde no está siendo recibido contenido suplementario adicional el proceso 1520 termina.
Cuando se recibe o va a ser grabado contenido adicional el proceso vuelve al paso 1544 para continuar grabando el flujo de contenido. Cuando se determina en el paso 1540 que el relleno va a ser incorporado en una ubicación identificada dentro del flujo de contenido suplementario, se entra en el paso 1550 donde el dispositivo de reproducción 220 genera el especificado o más paquetes de relleno y/o datos de relleno, e incorpora el relleno en el flujo de contenido suplementario. En el paso 1552 el relleno generado se graba dentro del flujo de contenido, incluyendo los paquetes y/o datos de relleno. El proceso entonces continúa en el paso 1554 para determinar si se recibe y/o va a ser grabado localmente contenido suplementario adicional. En aquellos casos donde no está siendo recibido contenido suplementario adicional el proceso 1520 termina. Alternativamente, el proceso vuelve al paso 1530 para evaluar de nuevo la correlación de paquetes cuando esté disponible, determinar si la correlación de paquetes adicional se recibe para partes del contenido no correlacionadas por correlación de paquetes previa, y/o continúa en el paso 1536 para ver si se especifican identificadores de relleno adicionales.
El flujo de contenido recibido en el dispositivo de reproducción, en algunos casos, es de manera efectiva un flujo reducido o comprimido debido a que algunos o todos los paquetes nulos se han eliminado. El dispositivo de reproducción entonces vuelve a insertar los paquetes nulos, y de esta manera, necesita conocer dónde insertar los paquetes nulos. En algunos casos, una correlación de paquetes identifica ubicaciones dentro del flujo donde van a ser incorporados los paquetes nulos. Adicionalmente, cuando el dispositivo de reproducción está insertando más de un paquete nulo, el dispositivo de reproducción en algunos casos identifica sellos de tiempo (por ejemplo, sellos de tiempo ATC) a ser usados para cada paquete nulo. Por ejemplo, cada paquete nulo se puede configurar como un paquete fuente, que puede ser una construcción de BD-ROM que tiene unos cuatro (4) octetos extra que contiene el sello de tiempo. Por lo tanto, el dispositivo de reproducción tiene que determinar o ser dotado con el sello de tiempo para incorporar el sello de tiempo en el paquete para reconstruir un flujo de contenido, por ejemplo, que cumple con la Especificación de BD.
La FIG. 16 representa un diagrama de flujo simplificado de un proceso 1620 para incorporar relleno en un flujo de contenido en el dispositivo de reproducción, según algunas implementaciones, con el uso de uno o más archivos de correlación de paquetes, donde un archivo de correlación de paquetes se puede asociar con un único fragmento o porción, múltiples porciones o un flujo de contenido entero. En el paso 1622, se determina que un fragmento particular de contenido va a ser recuperado. Por ejemplo, se puede determinar en el paso 1622 que el fragmento particular va a ser descargado según un archivo de información de fragmento durante una descarga progresiva. En el paso 1624, el dispositivo de reproducción 220 recupera o accede a un archivo de correlación de paquetes asociado. Este archivo de correlación de paquetes asociado se puede recibir desde una fuente remota anterior a implementar la reproducción o durante la descarga progresiva.
En el paso 1626, el archivo de correlación de paquetes se analiza sintácticamente para identificar las ubicaciones (por ejemplo, las zonas de octetos) donde el relleno va a ser insertado, y donde sea apropiado identificar un sello de tiempo de paquete fuente (por ejemplo, un sello de tiempo ATC). En el paso 1630, una aplicación de reproducción descarga los datos de flujo para el fragmento particular. En el paso 1632, la aplicación de reproducción procesa, analiza sintácticamente y/o evalúa el flujo de contenido relativo a la correlación de paquetes según se recibe y almacena temporalmente el flujo. En el paso 1634, se determina si uno o más paquetes nulos van a ser insertados en el flujo de contenido en base a la zona de octetos que se evalúa. En aquellos casos donde no van a ser incorporados paquetes nulos el proceso 1620 continúa en el paso 1636 para determinar si va a ser evaluado contenido adicional para el fragmento particular. En aquellos casos donde va a ser evaluado contenido adicional el proceso vuelve al paso 1632 para continuar procesando el contenido. Cuando se determina que el fragmento ha sido evaluado se entra en el paso 1640 para determinar si el flujo de contenido comprende fragmentos adicionales y que van a ser descargados y evaluados fragmentos adicionales. Cuando van a ser recuperados fragmentos adicionales el proceso vuelve al paso 1622 para recuperar fragmentos adicionales de contenido. Alternativamente, el proceso 1620 termina y/o vuelve a la lista de reproducción para continuar la lista de reproducción según el disco
222.
Cuando se determina en el paso 1634 que uno o más paquetes nulos van a ser incorporados en el flujo de contenido, se entra en el paso 1642 donde el archivo de correlación de paquetes asociado con el fragmento particular se evalúa para determinar un número de paquetes nulos a ser incorporados en el flujo de contenido relativo a una zona de octetos identificada y el número relevante de paquetes nulos se incorporan en el flujo de contenido. En algunos casos un sello de tiempo ATC se fija adicionalmente según el mapa de paquetes analizado sintácticamente que produce un flujo reconstruido para el fragmento particular. Adicionalmente o alternativamente, los datos nulos se pueden extraer a partir de un flujo de plantilla nulo e incorporar en el flujo de contenido como se describe más adelante. En el paso 1644, el flujo de contenido reconstruido se escribe en el almacenamiento local en el dispositivo de reproducción. El proceso 1620 entonces continúa en el paso 1636 para determinar si va a ser evaluado contenido adicional para el fragmento particular.
En algunos casos, el archivo de correlación de paquetes define zonas de octetos en los que va a ser incorporado relleno. Además, el archivo de correlación de paquetes define un número de paquetes nulos a ser incorporados dentro de la zona. Los datos de paquetes nulos pueden, en algunas implementaciones, ser constantes y mantenidos en memoria como una constante en el dispositivo de reproducción para ser copiados fácilmente e incorporados en el flujo de contenido. Más abajo está una muestra parcial de un archivo de correlación de paquetes ejemplo según algunas implementaciones.
En este ejemplo, el archivo de correlación de paquetes se define según un formato XML. Se señala, no obstante, que el archivo de correlación de paquetes se puede implementar sustancialmente en cualquier formato relevante que se pueda analizar sintácticamente por los dispositivos de reproducción para identificar de manera exacta dónde va a ser incorporado el paquete nulo y una cantidad de datos nulos a incorporar, tales como archivo de texto u otros formatos analizables sintácticamente. De manera similar, la adaptación, disposición u organización del archivo de correlación de paquetes se puede variar a partir del ejemplo anterior sustancialmente a cualquier adaptación que permite una extracción exacta de la información relevante para incorporar el relleno.
Adicionalmente, en este ejemplo, el parámetro “pos nula” define una posición dentro del flujo donde uno o más paquetes nulos van a ser incorporados. Este parámetro de ubicación o posición puede definir una posición de octeto, un número de octeto, códigos de tiempo u otro parámetro tal que puede identificar exactamente una ubicación dentro del flujo de contenido donde el uno o más paquetes nulos van a ser añadidos. Además, el parámetro de posición puede definir una posición relativa al fragmento, el flujo de contenido entero u otra relación tal, por ejemplo,
la posición puede definir una posición de octeto dentro del fragmento. Un parámetro de “cuenta” define el número de
paquetes nulos a incorporar en la ubicación identificada. En este ejemplo, la correlación adicionalmente incluye un
parámetro “atc” que define un sello de tiempo para un primer paquete nulo del uno o más paquetes nulos a ser
incorporados en la posición identificada. En algunos casos, un único sello de tiempo se identifica para el uno o más paquetes nulos y el sello de tiempo para cada paquete nulo sucesivo de la “cuenta” se incrementa según una temporización conocida, por ejemplo, en base a la temporización de un paquete. En algunos casos, se define esta temporización conocida. En el ejemplo de correlación de paquetes anterior, la temporización conocida se define por
el parámetro “atcDelta”, que en este ejemplo define una temporización de 846. Por lo tanto, en este ejemplo, cada
paquete sucesivo añadido tiene un sello de tiempo igual al anterior sello de tiempo más el periodo conocido (846 en este ejemplo). Como un ejemplo específico, la primera entrada del ejemplo de archivo de correlación de paquetes anterior define que 250 paquetes nulos van a ser añadidos en la posición de octeto 66432, y que el sello de tiempo para el primer paquete nulo de los 250 paquetes nulos es 314627436 (que en este ejemplo se basa en un ciclo de reloj de 27 MHz). Un segundo paquete nulo entonces tendría, en este ejemplo, un sello de tiempo de 314628282 (es decir, 314627436 + 846). El resultado de salida sería un flujo completamente reconstruido que entonces se podría escribir en un almacenamiento local.
Aún más, el relleno se puede incorporar mediante el dispositivo de reproducción sin el archivo de correlación de paquetes usando esquemas alternativos para definir dónde incorporar relleno y cuánto relleno incorporar. Por ejemplo, un esquema alternativo define un nuevo código de inicio de extensión privado en la capa de flujo de transporte para transportar los datos de correlación de paquetes, que en algunos casos es esencialmente el mismo que en el archivo de correlación de paquetes ejemplo anterior. Aún en otras implementaciones, se establece un convenio (protocolo) entre un servidor o fuente 326 y el dispositivo de reproducción 220 donde un conjunto predefinido del fragmento, tal como los octetos de apertura de un fragmento de flujo se define y conoce que son datos de correlación de paquetes. El dispositivo de reproducción analiza sintácticamente entonces estos octetos de apertura primero para extraer los datos de correlación de paquetes. Los datos que siguen a los datos de correlación de paquetes en los octetos de apertura son entonces los datos de flujo real con el relleno extraído. Aún otras realizaciones pueden implementar el esquema como un algoritmo de codificación de longitud de ejecución verdadera usando un esquema simbólico. Esto puede ser muy general y puede ser también intensivo de procesador en el lado del dispositivo de reproducción.
En algunas realizaciones, los datos nulos se agrupan en lugar de ser distribuidos sobre un fragmento. La colocación de los paquetes nulos se puede mover de manera que se agrupen juntos paquetes nulos, y en algunos casos agrupen juntos tanto como sea posible dentro de los confines del modelo de almacenador temporal y las restricciones de retardo T-STD del flujo de transporte. Este agrupamiento proporciona, en algunos casos, mejor compresión de datos para descarga.
Dentro de un flujo de transporte que utiliza códigos de inicio, algunas realizaciones utilizan un código de inicio definido o código de inicio de extensión recientemente definida en la capa de flujo de transporte que se detecta por el dispositivo de reproducción notificando al dispositivo de reproducción que los paquetes nulos van a ser incorporados. Un dispositivo de reproducción puede incluir algún procesamiento previo del flujo de contenido para detectar el código de inicio definido y entonces identificar la cantidad de datos nulos a ser incorporados. Unos datos pueden definir la cantidad de datos nulos o número de paquetes nulos a incorporar, que pueden incluir información similar como se especificó en el archivo de correlación ejemplo anterior. Alternativamente, un convenio o protocolo se puede definir entre una fuente de contenido 326 y un dispositivo de reproducción 220, donde uno o más octetos de apertura de un fragmento de flujo se conoce que son datos de correlación de paquetes. El dispositivo de reproducción analiza sintácticamente el uno o más octetos de apertura para extraer los datos de correlación de paquetes. Los datos que siguen los octetos de apertura son entonces los datos de flujo de contenido real con el relleno eliminado. Esto permite que el relleno sea incorporado por el dispositivo de reproducción para ser definido dentro del flujo de contenido. Adicionalmente o alternativamente, algunas realizaciones pueden emplear un algoritmo de codificación de longitud de ejecución que usa un esquema simbólico evaluando el contenido para identificar patrones repetidos de paquetes nulos, y codificar en base a los patrones repetidos identificados.
Algunas realizaciones adicionales agrupan relleno o paquetes para mejorar la compresión. Durante la codificación, se procesa el flujo de contenido para optimizar el agrupamiento de los paquetes nulos con restricciones definidas. Estas restricciones pueden incluir codificar el flujo de contenido para cumplir con un modelo de almacenador temporal de un dispositivo de reproducción previsto, restricciones de retardo objetivo estándar de transporte (T-STD) y otras restricciones y limitaciones tales del flujo de transporte y el dispositivo de reproducción que puede limitar la cantidad de agrupamiento de los paquetes nulos. Agrupando los paquetes nulos se puede obtener una mejor compresión de datos para descarga.
En muchos casos, el contenido recibido desde la fuente remota 326 se cifra o se aplica otra protección al contenido. Además, muchos estándares requieren que el contenido reproducido en asociación con un medio esté cifrado o protegido de otro modo. Esta protección a menudo debe ser mantenida adicionalmente para un contenido suplementario recibido desde una fuente remota y escrito en un almacenamiento local antes de reproducir, y de esta manera, el contenido suplementario está a menudo en un estado cifrado o protegido de otro modo cuando se recibe y graba en el dispositivo de reproducción. Como resultado, en algunas implementaciones la incorporación de los paquetes de relleno y/o datos de relleno en el flujo de contenido suplementario en el dispositivo de reproducción incluye paquetes nulos incorporados que están cifrados o protegidos de otro modo según el flujo de contenido y/o cifrado o de otro modo aplicando algún esquema de protección a los paquetes y/o datos de relleno para corresponder con el flujo de contenido suplementario. Un dispositivo de reproducción 220, no obstante, puede tener
o puede no tener acceso a las claves de cifrado. De manera similar, se pueden utilizar algunas técnicas de protección o cifrado variables, tales como sellos de tiempo, como parte de la clave de cifrado u otras protecciones. Por ejemplo, el Estándar Blu-ray dicta el uso del Sistema de Contenido de Acceso Avanzado (AACS).
De nuevo, la especificación de formato BD define un flujo donde los paquetes de 188 octetos del Flujo de Transporte 13818-1 del MPEG2 se aumentan con cabeceras de 4 octetos que contienen: dos bits indicadores de protección de copia, y sello de tiempo ATC de 32 bits. Los 192 octetos combinados se denominan por la especificación BD como un paquete fuente. Los paquetes entonces se organizan además en grupos de 32 para formar una unidad alineada. La protección de copia de AACS aplicada según BD prescribe que el cifrado se debería aplicar usando el algoritmo AES 128 con una opción de cifrado de bloque encadenado (CBC). El mecanismo de encadenamiento crea una dependencia del bloque de 128 bit de AES “n” sobre el bloque “n-1”. Como resultado, el bloque “n-1” necesita típicamente ser descifrado antes de que el bloque “n” se pueda descifrar.
Este algoritmo de cifrado va a ser aplicado a las unidades alineadas independientemente. Además, los primeros 16
octetos de la unidad alineada van a ser dejados sin cifrar. La clave de cifrado o clave de “bloque” se crea cifrando los
primeros 16 octetos de la unidad alineada usando AES 128 con una clave unidad (o clave de título) CPS. El resultado es que la clave de bloque para la cual los primeros 16 octetos de la unidad alineada actúan como una semilla. El bloques de 16 octetos (128 bits) restantes de la unidad alineada se cifran entonces con la clave de bloque.
Como tal, el resultado cifrado no se puede predecir debido a que cada paquete fuente contiene un sello de tiempo ATC que está cambiando de paquete en paquete. Incluso si cada bloque de la unidad alineada es de datos de relleno el resultado cifrado típicamente no se puede predecir (y por lo tanto la señal) debido a que cada paquete fuente contiene el sello de tiempo ATC, el cual de nuevo está cambiando de paquete en paquete (marcado de tiempo). El algoritmo de cifrado es fuerte así que casi no hay correlación discernible entre la unidad alineada no cifrada de relleno y la salida cifrada. Por lo tanto, el dispositivo de reproducción puede ser incapaz de incorporar de manera efectiva paquetes y/o datos de relleno en un flujo de contenido que podría ser reproducido de manera exacta.
Algunas realizaciones proporcionan contenido cifrado mientras que aún permiten que el relleno sea incorporado en el flujo de contenido en el dispositivo de reproducción 220 empleando un flujo de plantilla nulo. El flujo de plantilla nulo contiene datos nulos configurados según la lista de reproducción 120 que va a ser accedida por y utilizada en el dispositivo de reproducción 220 en la reproducción del contenido. Además, el flujo de plantilla nulo se puede ajustar, y trocear cuando sea apropiado, para corresponder y alinear directamente con un flujo de contenido. Por lo tanto, el dispositivo de reproducción puede extraer uno o más paquetes nulos y/o unidades alineadas a partir del flujo de plantilla nulo e insertar el uno o más paquetes nulos extraídos o unidades alineadas de vuelta en el flujo de contenido como se dicta, por ejemplo, por el archivo de correlación de paquetes u otras designaciones de relleno tales.
En la generación del flujo de plantilla nulo, las unidades alineadas corresponderían y alinearían con unidades alineadas de un flujo de contenido esperado cuando el flujo de plantilla nulo y el flujo de contenido se ajustan y/o trocean según la misma plantilla de fragmento y/o programación de porción. Por lo tanto, los paquetes nulos o unidades alineadas extraídas a partir del flujo de plantilla nulo e insertados en un flujo de contenido cumplen con el flujo de contenido y pueden provocar un flujo de contenido completamente compatible a ser reproducido por el dispositivo de reproducción.
En algunas realizaciones, el flujo de plantilla nulo se genera creando un flujo de contenido nulo que comprende paquetes nulos, y típicamente está lleno de paquetes nulos sin contenido sustancial (por ejemplo, sin contenido de vídeo o audio). El flujo de contenido nulo además se puede trocear y ajustar en unidades alineadas y cifrar o proteger de otro modo según un esquema de protección a ser utilizado en la protección del flujo de contenido real que va a ser suministrado a y reproducido por el dispositivo de reproducción según la lista de reproducción 120. El flujo de contenido nulo ajustado y troceado produce el flujo de plantilla nulo.
Por ejemplo, un flujo de contenido nulo se puede ajustar a través del conformador 862 en asociación con una plantilla (por ejemplo, el flujo de transporte de plantilla 848). De manera similar, el flujo de contenido nulo ajustado se puede trocear según una programación de porción que provoca al flujo de plantilla nulo que corresponderá con un flujo de contenido que se ajusta y convierte cuando se aplica la misma plantilla y mapa de porción. El flujo de plantilla nulo, no obstante, comprenderá una serie de paquetes nulos y/o unidades alineadas que se pueden extraer e insertar en un flujo de contenido mientras que se mantiene la temporización y cumpliendo con esquemas de protección aplicados al flujo de contenido.
De nuevo, anterior a reenviar el flujo de contenido al dispositivo de reproducción la fuente de contenido puede sacar las unidades o paquetes alineados nulos desde el flujo de contenido que reduce la cantidad de datos que van a ser transferidos. Unidades y/o paquetes alineados del flujo de plantilla nulo corresponderán con las unidades o paquetes alineados nulos sacados del flujo de contenido y se pueden volver a insertar por el dispositivo de reproducción según la correlación de paquetes en el flujo de contenido para reconstruir el flujo de contenido incluyendo los datos nulos. Este flujo de plantilla nulo conserva la integridad del flujo de contenido, tal como conservar valores de sello de tiempo ATC, las posiciones de paquetes del sistema y similares, proporcionando un flujo de contenido reconstruido que puede ser compatible con un estándar dado.
Se puede utilizar un flujo de plantilla nulo único para cualquier número de flujos de contenido cuando los flujos de contenido se procesan según la misma plantilla de fragmento y el flujo de plantilla nulo. Los flujos de contenido posteriores pueden reutilizar el flujo de plantilla nulo para incorporar paquetes nulos donde se necesiten.
En algunas implementaciones el flujo de plantilla nulo se repite según la lista de reproducción. Esto permite que el flujo de plantilla nulo sea mantenido en un tamaño que es más fácilmente descargado y/u ocupa menos memoria. En casos donde el contenido es relativamente largo un flujo de plantilla nulo correspondiente sería igualmente largo. Un flujo de plantilla nulo largo se puede inhibir, por ejemplo, suministrándolo a un dispositivo de reproducción debido a los tiempos de descarga. Repitiendo un único flujo de plantilla nulo el tamaño del flujo de plantilla nulo se puede limitar mientras que permite su uso con flujos de contenido sustancialmente de cualquier longitud. Además, en la repetición del uso del flujo de plantilla nulo en la misma lista de reproducción, la lista de reproducción puede continuar sustancialmente con cualquier longitud mientras que la lista de reproducción se ajusta según el flujo de plantilla nulo de repetición relativamente corto. Adicionalmente, un flujo de plantilla nulo relativamente corto se podría fundir fácilmente en un almacenamiento local o cargar en la memoria del dispositivo de reproducción 220.
Además, el uso repetido de un flujo de plantilla nulo dentro de una única lista de reproducción puede acomodar múltiples configuraciones diferentes para cooperar con el flujo de contenido. Por ejemplo, la repetición de un flujo de
plantilla nulo se puede utilizar tanto con el “estado de conexión 6” como el “estado de conexión 5” como se define
según el estándar Blu-ray. Ambos estados se entienden para conexiones sin discontinuidad entre Elementos de Reproducción, que en algún caso son unidades alineadas, donde el estado de conexión 5 define un flujo discontinuo reproducido de manera sin discontinuidad, mientras que con el estado de conexión 6 el flujo es continuo y tanto un reloj de hora de llegada como reloj de hora del sistema son continuos. Debido a que las unidades alineadas conectadas a través de un estado de conexión 5 son discontinuas, las dos unidades alineadas conectadas se pueden tratar como flujos independientes, donde la temporización se reinicia de manera efectiva entre unidades alineadas. En la utilización de un estado de conexión 5, un flujo de plantilla nulo relativamente corto que se reutiliza desde un límite de conexión al siguiente se puede usar continuamente sobre una base en curso. En algunos casos, la longitud de un flujo de plantilla nulo puede ser equivalente a un segmento de rotura limpia más largo a un segmento de rotura limpia de un flujo de contenido, que podría comprender una o más porciones.
En algunas implementaciones, el flujo de plantilla nulo se puede configurar para definir una porción única, o en algunos casos un GOP único. Repetir un flujo de plantilla nulo para cada porción puede reducir la sobrecarga de procesamiento debida a que el procesamiento no tendría que buscar qué parte del flujo de plantilla nulo está siendo usado debido a que se conocería ya que las posiciones de octeto serían la misma de porción en porción.
La FIG. 17 representa un diagrama de flujo simplificado de un proceso 1720, implementado por una fuente que produce el medio de almacenamiento portátil 222 o una fuente de contenido (por ejemplo, el servidor 326), en la producción de un flujo de plantilla nulo que se puede utilizar por un dispositivo de reproducción 220 en la incorporación de datos nulos en un flujo de contenido. En el paso 1722, se produce un flujo de plantilla de contenido del lado del servidor troceando y ajustando un flujo de contenido representativo. En algunas realizaciones, el contenido representativo puede incluir un contenido de audio, vídeo y/u otro relevante que es representativo del contenido a ser reenviado más tarde a un dispositivo de reproducción para ser reproducido en cooperación con el medio de almacenamiento portátil 222, mientras que en otras realizaciones, el contenido representativo puede ser el contenido real previsto para ser reenviado al dispositivo de reproducción. Aún en otras realizaciones, el contenido representativo puede ser sustancialmente cualquier contenido que es similar al contenido previsto a ser reenviado al dispositivo de reproducción. El flujo de plantilla de contenido del lado del servidor, en algunos casos, se produce con los intentos de optimizar la compresión mientras que cumple con los modelos de almacenador temporal y/u otras restricciones, en parte agrupando los paquetes de audio y vídeo juntos dentro de las restricciones de la especificación y los parámetros del dispositivo de reproducción esperados para aumentar la probabilidad de grandes números de paquetes nulos secuenciales.
De nuevo, en algunos casos, el flujo de plantilla de contenido del lado del servidor se puede generar como un flujo de contenido relativamente corto, y además se puede limitar a una única porción. En el paso 1724 se determina si el flujo de plantilla de contenido del lado del servidor es más corto que una lista de reproducción seleccionada (por ejemplo, una lista de reproducción en un medio de almacenamiento portátil asociado 222). En algunas realizaciones, el flujo de plantilla de contenido del lado del servidor se puede comparar adicionalmente o alternativamente con una longitud de un flujo de contenido que va a ser reenviado realmente a un dispositivo de reproducción o una longitud de un flujo de contenido anticipado. En aquellos casos donde el flujo de plantilla de contenido del lado servidor no es más corto el proceso 1720 avanza al paso 1730. Alternativamente, se entra en el paso 1726 donde el flujo de plantilla de contenido del lado del servidor se replica un número de veces y concatena produciendo un único flujo de plantilla de contenido del lado del servidor concatenado de manera que el flujo de plantilla de contenido del lado del servidor concatenado único tiene una longitud que al menos es igual o es más larga que la lista de reproducción (y/o flujo de contenido donde sea apropiado). En el paso 1730, el flujo de plantilla de contenido del lado del servidor o el flujo de plantilla de contenido del lado del servidor concatenado se procesa entonces para ajustar y trocear el flujo de plantilla de contenido del lado del servidor. En algunos casos, por ejemplo donde se aplican conexiones del estado de conexión 5, el conformador 862 puede compensar la temporización entre los modelos de contenido del lado del servidor repetidos, por ejemplo, reiniciando una temporización entre cada conexión. Desde la perspectiva del conformador 862, el modelo de contenido del lado del servidor concatenado parece un flujo de plantilla de contenido del lado del servidor largo único, pero el flujo de plantilla de contenido del lado del servidor largo se puede componer de una serie de flujos de plantilla de contenido del lado del servidor cortos.
En el paso 1732, se crea un flujo de plantilla nulo usando el flujo de plantilla de contenido del lado del servidor como base y sustituyendo los paquetes de vídeo y audio dentro del flujo de plantilla de contenido del servidor con paquetes nulos y reteniendo los paquetes del sistema (y/u otra cabecera, sobrecarga u otros paquetes tales). Como resultado, el flujo de plantilla nulo contiene paquetes de sistema en la colocación apropiada y unidades alineadas que contienen datos nulos. En el paso 1734, el flujo de plantilla nulo es protegido, tal como cifrado, cifrado AACS o protegido de otro modo usando el mismo esquema de protección que va a ser aplicado a un flujo de contenido real. En el paso 1736, el flujo de plantilla nulo es grabado en un medio de almacenamiento portátil 222, o reenviado de otro modo (por ejemplo, descargado, descargado progresivo o similares) al dispositivo de reproducción 220. Como resultado, el flujo de plantilla nulo cifrado reside en el dispositivo de reproducción 220, donde el flujo de plantilla nulo cifrado corresponde con un flujo de contenido a ser recibido en el dispositivo de reproducción, que permite al dispositivo de reproducción extraer paquetes y/o unidades alineadas de datos nulos a partir del flujo de plantilla nulo cifrado a ser insertado en las posiciones correspondientes dentro del flujo de contenido como se dicta mediante una correlación de paquetes nulos u otras designaciones como se describió anteriormente. Se pueden mantener y/o usar uno o más flujos de plantilla nulos por un dispositivo de reproducción. En algunos casos, no obstante, un flujo de plantilla nulo único se puede utilizar con múltiples flujos de contenido diferentes, donde los flujos de contenido diferentes a ser suministrados al dispositivo de reproducción se procesan para ajustarse al flujo de plantilla nulo disponible en el dispositivo de reproducción.
Aún con referencia a la FIG. 17, en el paso 1740, se identifica un flujo de plantilla nulo apropiado. De nuevo, un flujo de contenido va a ser ajustado de manera que corresponda con el flujo de plantilla nulo en el dispositivo de reproducción 220. Por ejemplo, el dispositivo de reproducción puede proporcionar la fuente de contenido con una identificación de un flujo de plantilla nulo retenido en el dispositivo de reproducción, la fuente de contenido puede seleccionar un flujo de plantilla nulo en base a uno o más parámetros (por ejemplo, el flujo de contenido a ser procesado) u otra identificación tal. En el paso 1742, la fuente de contenido se ajusta y trocea un flujo de contenido según el flujo de plantilla de contenido del lado del servidor, y de esta manera, el flujo de plantilla nulo.
En el paso 1744, el flujo de contenido ajustado se protege aplicando el mismo esquema de protección aplicado al flujo de plantilla nulo correspondiente. En el paso 1746, los paquetes nulos y/o unidades alineadas de paquetes nulos se eliminan del flujo de contenido, y se genera un archivo de correlación de paquetes nulos o se incorporan otras designaciones nulas en el flujo de contenido. En el paso 1750, el flujo de contenido comprimido es reenviado al dispositivo de reproducción (por ejemplo, descargado, descargado progresivo, difundido de forma continua o entregado de otra manera). El flujo de contenido resultante corresponde con el flujo de plantilla nulo en el dispositivo de reproducción de manera que los paquetes nulos o unidades alineadas eliminadas del flujo de contenido se pueden volver a insertar fácilmente a partir del flujo de plantilla nulo por el dispositivo de reproducción 220. Se señala que uno o más pasos del proceso 1720 se pueden realizar por fuentes diferentes. Por ejemplo una primera fuente de contenido puede producir el flujo de plantilla nulo (por ejemplo, una fuente que produce y distribuye medios de almacenamiento portátiles 222), mientras que una fuente alternativa puede realizar los pasos 1740-1750 en el ajuste, protección y distribución de un flujo de contenido que se ajusta con el modelo de contenido del lado del servidor.
La FIG. 18 representa un diagrama de flujo simplificado 1820, implementado por un dispositivo de reproducción 220, para incorporar paquetes nulos en un flujo de contenido según algunas realizaciones. En el paso 1822, el dispositivo de reproducción 220 detecta que un flujo de contenido va a ser recibido desde una fuente remota. En el paso 1824, el dispositivo de reproducción identifica un flujo de plantilla nulo a ser coordinado con un flujo de contenido. En algunos casos, la fuente de contenido proporciona un identificador de flujo de plantilla nulo. Alternativamente, el dispositivo de reproducción puede suministrar a una fuente de contenido una identificación de un flujo de plantilla nulo almacenado en y/o accesible por el dispositivo de reproducción. Aún en otros casos, el dispositivo de reproducción 220 recibe el flujo de plantilla nulo desde la fuente de contenido, que se recibe típicamente anterior a recibir algo o todo el flujo de contenido, pero se podría recibir después de recibir algo o todo el flujo de contenido.
En el paso 1826, el dispositivo de reproducción recibe al menos una parte del flujo de contenido. En el paso 1830, el dispositivo de reproducción determina si van a ser incorporados datos nulos en el flujo de contenido. De nuevo, esta determinación se puede basar en una correlación de paquetes, designaciones de datos nulos u otras indicaciones tales donde van a ser incorporados datos nulos. Cuando no van a ser incorporados datos nulos, el proceso avanza al paso 1834 donde se almacena la parte del flujo de contenido. Alternativamente, cuando van a ser incorporados datos nulos se entra en el paso 1832 donde una o más unidades alineadas y/o paquetes se extraen desde el flujo de plantilla nulo e incorporan en el flujo de contenido como se define por la correlación de paquetes y/u otra designación. El proceso entonces se mueve al paso 1834 para almacenar la parte del flujo de contenido incluyendo los datos nulos incorporados. En el paso 1836, se determina si se reciben partes adicionales del flujo de contenido. Cuando se reciben partes adicionales del flujo de contenido el proceso vuelve al paso 1826 para procesar la parte recibida del flujo de contenido. Alternativamente, el proceso termina.
Por lo tanto, el dispositivo de reproducción reconstruye el flujo completo insertando unidades alineadas o paquetes de datos nulos para posiciones apropiadas del flujo de plantilla nulo según la correlación de paquetes nulos u otras designaciones. Además, las unidades alineadas o paquetes insertados por el dispositivo de reproducción pueden ser cifradas AACS previamente (o se puede aplicar otra protección tal), y de esta manera, tienen sellos de tiempo ATC y paquetes de sistema correctos. El flujo construido resultante puede ser por lo tanto completamente compatible con un estándar y/o esquema de protección dado. Esto permite la integridad del esquema de protección a ser mantenido y mejorar la entropía asociada con la protección.
Alternativamente, se puede utilizar una clave de cifrado por defecto durante partes del flujo de contenido donde va a ser implementado relleno por el dispositivo de reproducción, donde el dispositivo de reproducción tiene o está dotado con la clave de cifrado por defecto para aquellas partes para permitir al dispositivo de reproducción cifrar e incorporar el relleno. En otras implementaciones uno o más paquetes (por ejemplo, grupos de 32 paquetes de transporte) se pueden cifrar previamente, por ejemplo con una clave de cifrado conocida o predefinida, y proporcionar al dispositivo de reproducción permitiendo al dispositivo de reproducción incorporar un número específico del uno o más paquetes cifrados previamente donde sea apropiado. Adicionalmente en esta implementación, la fuente de contenido puede identificar aquellas partes del flujo de contenido donde va a ser incorporado relleno por el dispositivo de reproducción y estas partes identificadas se pueden cifrar según el cifrado predefinido. Aún en otras implementaciones, la fuente de contenido inhabilita o no aplica protección a aquellas partes o paquetes del contenido suplementario donde van a ser incorporados paquetes y/o datos de relleno por el dispositivo de reproducción.
Se pueden emplear otros esquemas alternativos, no obstante, muchas de estas alternativas no pueden ser completamente compatibles con un estándar dado (por ejemplo, no usar cifrado para una parte del contenido y usar una clave por defecto no sería completamente compatible con el Estándar Blu-ray). Estos esquemas no compatibles, no obstante, pueden permitir al dispositivo de reproducción incorporar los paquetes y/o datos de relleno donde el contenido suplementario resultante escrito por el dispositivo de reproducción 220 en el almacenamiento local (por ejemplo, el almacenamiento 228 o 229) entonces se podría reproducir de manera efectiva por el dispositivo de reproducción sin inducir errores. Muchos dispositivos de reproducción a menudo no verifican que un flujo de contenido es completamente compatible con un estándar, especificación o protocolo dados.
Como se introdujo anteriormente, algunas realizaciones permiten adicionalmente conmutar flujos. El uso de plantillas de fragmento que se ajustan a la información de fragmento en el dispositivo de reproducción 220 (por ejemplo, definida en un medio de almacenamiento portátil 222 o comunicada al dispositivo de reproducción) adicionalmente permite a algunas realizaciones conmutar de un flujo de contenido a otro sin afectar adversamente la reproducción y sin requerir al dispositivo de reproducción reanudar, reiniciar, implementar una actualización (por ejemplo, una actualización del sistema de archivo virtual (VFS)) u otras actualizaciones tales. Por ejemplo, se utiliza una plantilla de fragmento única para codificar un único flujo de contenido a diferentes tasas de bit. Típicamente, un dispositivo de reproducción puede reproducir solamente un único flujo de contenido que está configurado exclusivamente según la información de fragmento definida en el medio de almacenamiento portátil. Además, un dispositivo de reproducción típicamente solamente tiene una oportunidad, anterior a reproducir el contenido, de configurar el flujo que va a ser reproducido según la información de fragmento definida en el medio de almacenamiento portátil o recibido de otro modo anterior a la configuración. A fin de conmutar desde un flujo a otro flujo, el dispositivo de reproducción tendría de manera ordinaria que tener que ir a través de una reanudación, reinicio y/o una actualización de sistema de archivo virtual adicional, que interferiría con la reproducción.
Utilizando un esquema de plantilla de fragmento único y modelo de ajuste, el flujo de contenido se puede codificar múltiples veces aplicando diferentes tasas o parámetros de codificación para cada codificación. El dispositivo de reproducción puede conmutar entonces entre estos diversos flujos de contenido sin la necesidad de una actualización de sistema de archivo virtual o un reinicio debido a que la información de fragmento es la misma para cada flujo de contenido. Como resultado, un dispositivo de reproducción 220 y/o un proveedor de contenido 326 puede seleccionar la mejor experiencia de reproducción posible para un dispositivo de reproducción, identificando la tasa de bit más alta posible para ese dispositivo de reproducción, que se puede limitar por ejemplo por el ancho de banda de la conexión al dispositivo de reproducción (por ejemplo, cable, DSL, módem, inalámbrico, etc.), y de esta manera, seleccionar una tasa de bit de codificación que corresponde a la tasa de bit máxima disponible para el dispositivo de reproducción. Esto permite al dispositivo de reproducción y/o proveedor fuente conmutar adaptativamente el flujo de vídeo de entrada adaptando a la misma plantilla de fragmento dependiendo de una conexión real. Adicionalmente, cuando se definen múltiples plantillas de fragmento en el medio de almacenamiento portátil, el dispositivo de reproducción y/o la fuente de contenido puede seleccionar la plantilla de fragmento que satisfará la tasa de bit más alta posible, y entonces permitir conmutar durante la reproducción entre los flujos de contenido que se han ajustado en esa plantilla de fragmento seleccionada adaptativamente dependiendo de condiciones que varían, tales como una conexión real y/o variaciones en la conexión.
Para permitir esta conmutación de flujo de contenido, un número de flujos están preparados por adelantado, cuando el contenido es pregrabado, o preparado simultáneamente o sustancialmente de manera simultánea si el contenido va a ser reproducido en directo o sustancialmente en directo. Estas pluralidades de flujos preparados todos se ajustan a la misma plantilla de fragmento, y entonces el dispositivo de reproducción y/o fuente de contenido puede conmutar entre los flujos para lograr una experiencia de reproducción deseada.
La conmutación entre flujos permite una transición entre un contenido único que ha sido codificado a dos o más tasas de bit diferentes, o conmutación entre diferente contenido. Por ejemplo, un ancho de banda de comunicación puede cambiar durante una transferencia del flujo de contenido suplementario a partir de una determinación de ancho de banda inicial. Como resultado, el dispositivo de reproducción puede ser incapaz de recibir y decodificar de manera efectiva el flujo de contenido o puede ser capaz de recibir un flujo de contenido de tasa de bit más alta. Codificando el flujo de contenido usando una única plantilla de fragmento pero a tasas de bit que varían y/o aplicando parámetros que varían, una fuente de contenido puede conmutar entre flujos de contenido sin afectar adversamente la reproducción.
De manera similar, codificando dos o más flujos de contenido diferentes según la misma plantilla de fragmento, la reproducción se puede conmutar entre estos flujos de contenido diferentes. Debido a que el dispositivo de reproducción ya está accediendo y utilizando la información de fragmento relevante que es aplicable a ambos flujos, los flujos se pueden conmutar sin un reinicio, reanudación, actualizar el VFS y similares. Esto puede proporcionar algo similar a una conmutación de canal en respuesta a una entrada desde un usuario, el dispositivo de reproducción y/o como se dicta por la fuente de contenido y/o proveedor de contenido. Adicionalmente, con contenido en directo, como se introdujo anteriormente, se pueden emplear múltiples codificadores para codificar a diferentes tasas. El dispositivo de reproducción, en algunos casos, puede dar instrucciones de manera adaptativa a la fuente de contenido para seleccionar un flujo codificado apropiadamente y/o tener el flujo ajustado a la plantilla de fragmento sobre la marcha.
En algunas implementaciones cuando se conmuta entre flujos, el dispositivo de reproducción puede identificar un archivo de fragmento en un punto a lo largo del flujo donde va a darse una conmutación y notificar a la fuente de contenido 326 que suministra el contenido suplementario del archivo de fragmento identificado permitiendo a la fuente de contenido recuperar las partes relevantes del nuevo flujo de contenido. Típicamente, este archivo de fragmento seleccionado e identificado va a ser reproducido en algún momento en el futuro de manera que hay tiempo suficiente para recibir el nuevo flujo de contenido desde la fuente de contenido y prepararlo para la reproducción. Otra temporización y condiciones se pueden comunicar también entre el dispositivo de reproducción y la fuente de contenido para coordinar la conmutación.
Alternativamente o adicionalmente, un dispositivo de reproducción 220 puede tener la funcionalidad y/o lógica, o bien almacenada localmente o bien recuperada desde el medio de almacenamiento portátil 222, para seleccionar, recuperar y/o conmutar entre flujos codificados a diferentes tasas. El dispositivo de reproducción 220 determina sus condiciones de rendimiento de descarga actual y se basa en que la determinación además determina si necesita seleccionar una tasa de bit menor o mayor o podría mejorar el rendimiento seleccionando una tasa de bit menor o mayor. Tras identificar un flujo o determinar que se debería implementar una conmutación a un flujo diferente, el dispositivo de reproducción 220 puede informar a la fuente de contenido requiriendo el flujo apropiado. En algunos casos, el dispositivo de reproducción construye una referencia apropiada (por ejemplo, URL) desde la cual iniciar la descarga del fragmento de flujo seleccionado. En algunos casos, el dispositivo de reproducción puede requerir un listado de flujos potenciales, sus tasas de codificación relevantes u otros parámetros, y la referencia correspondiente desde la cual recuperar el contenido. En algunas realizaciones, el dispositivo de reproducción 220 consulta una API de servicio web para recuperar una lista de recursos de flujo y los URL asociados. Algunas aplicaciones de descarga progresiva existentes proporcionan una lista de recursos, y por lo tanto la consulta del dispositivo de reproducción se puede mejorar para especificar qué tasa de flujo se desea. Adicionalmente o alternativamente, los resultados a la consulta se pueden mejorar especificando adicionalmente qué tasa de flujo está asociada con diferentes fuentes que permiten al dispositivo de reproducción seleccionar una referencia apropiada según una tasa deseada.
La FIG. 19 representa un diagrama de flujo simplificado de un proceso 1920 implementado por un dispositivo de reproducción 220 para seleccionar un flujo de contenido según una tasa seleccionada y conmutar a un flujo posterior que tiene una tasa diferente. En el paso 1922, un dispositivo de reproducción 220 requiere una lista de flujos disponibles y tasa asociada. En algunos casos, los flujos disponibles en este contexto son los flujos de longitud completa conceptuales que no se trocean sino que representan las diferentes tasas. En el paso 1924, el dispositivo de reproducción mide parámetros, tales como la velocidad de conexión o ancho de banda y rendimiento de descarga (o de difusión de forma continua) y otros parámetros tales. En el paso 1926, el dispositivo de reproducción evalúa la velocidad de conexión determinada junto con las capacidades del dispositivo de reproducción (por ejemplo, capacidades de almacenador temporal, capacidades de procesamiento y similares). En el paso 1930, el dispositivo de reproducción 220 selecciona, en base a la evaluación en el paso 1926 (o en los pasos 1940 o 1942 como se describe más adelante), una tasa de flujo apropiada. En el paso 1932, el dispositivo de reproducción requiere el recurso para un fragmento o porción del flujo de contenido seleccionado que tiene la tasa identificada.
En el paso 1934, se determina si van a ser recuperados fragmentos adicionales. En aquellos casos donde no van a ser recuperados fragmentos adicionales el proceso termina y/o vuelve a la lista de reproducción tras la descarga del fragmento actual. Cuando van a ser recuperados (por ejemplo, descargados o difundidos de forma continua) fragmentos adicionales, se entra en el paso 1936 donde el dispositivo de reproducción 220 continúa monitorizando la velocidad de conexión y rendimiento de descarga mientras se recibe el fragmento. En el paso 1940, se determina si las condiciones se degradan y/o el dispositivo de reproducción es incapaz de mantener el ritmo con el flujo de contenido seleccionado actualmente (por ejemplo, un almacenador temporal y/o memoria caché comienza a llenarse
o excede un nivel umbral). Cuando las condiciones no se han degradado cuando un fragmento posterior va a ser requerido, el proceso avanza al paso 1942. Alternativamente, en aquellos casos donde las condiciones se han degradado el proceso vuelve a 1930 para identificar un flujo de contenido que tiene una tasa menor que corresponde con las condiciones degradadas a seleccionar tras la selección de un fragmento posterior.
En el paso 1942, se determina si las condiciones mejoran y/o el dispositivo de reproducción es capaz de procesar contenido a una tasa mayor (por ejemplo, un almacenador temporal y/o memoria caché comienza a vaciar o caer por debajo de un nivel umbral). Cuando las condiciones no han mejorado, el proceso 1920 vuelve al paso 1932 para continuar requiriendo un fragmento posterior según la tasa seleccionada anterior. Alternativamente, cuando han mejorado las condiciones, el proceso vuelve al paso 1930 para identificar un flujo de contenido que tiene una tasa mayor que corresponde con las condiciones mejoradas para uno o más fragmentos posteriores. Como resultado, el dispositivo de reproducción 220 es capaz de monitorizar las condiciones de conexión y rendimientos de descarga, y usa estos resultados para controlar la selección de tasa para fragmentos futuros de contenido para proporcionar un sistema y funcionalidad de conmutación de flujo adaptativo.
Como se describió anteriormente, algunos dispositivos de reproducción son incapaces de recibir contenido difundido de forma continua real. Esto puede ser debido a limitaciones del dispositivo de reproducción (por ejemplo, tamaño de almacenador temporal limitado), limitaciones debidas al dispositivo de reproducción que se ajusta a un estándar o protocolo, u otros factores tales o combinaciones de factores. Por ejemplo, según algunos estándares, tales como el Estándar de Disco Blu-ray, el dispositivo de reproducción puede no aceptar contenido difundido de forma continua, y en su lugar, tiene que recibir todo el contenido suplementario o un fragmento entero del contenido suplementario anterior a iniciar la reproducción, y además típicamente tiene que tener toda la información de fragmento para el contenido suplementario (incluyendo información de fragmento para todos los fragmentos cuando el contenido suplementario se descompone en múltiples fragmentos) anterior a iniciar la reproducción de contenido desde el medio 222 y/o el contenido suplementario. De nuevo, algunas realizaciones presentes descomponen el contenido suplementario en fragmentos o segmentos 1126 y permiten que un fragmento o segmento sea recibido completamente de manera que el dispositivo de reproducción 220 pueda iniciar la reproducción del fragmento recibido mientras que uno o más fragmentos posteriores están siendo recibidos. En el suministro de fragmentos de contenido suplementario a un dispositivo de reproducción, algunas realizaciones intentan reducir y/o eliminar retardos en el inicio de la reproducción de contenido suplementario en el dispositivo de reproducción proporcionando fragmentos iniciales de contenido suplementario que son relativamente pequeños en tamaño de datos y/o cortos en duración de reproducción.
La FIG. 20 representa una representación gráfica simplificada de una parte de una plantilla de fragmento 2020 que se emplea en la definición de la información de fragmento y la segmentación de contenido suplementario 452 a ser reenviado, por ejemplo, desde un servidor 326 sobre Internet 324, a un dispositivo de reproducción 220. Un primer fragmento 2022 se define para generar un fragmento de contenido suplementario que tiene un primer tamaño de datos 2024 y una primera duración 2026. En algunos casos, el tamaño de datos 2024 es representativo del contenido suplementario de un fragmento así como otros datos de sobrecarga donde se necesiten (por ejemplo, empaquetamiento, protección, corrección de errores y similares). Un segundo fragmento secuencial 2032 se define siguiendo al primer fragmento 2022. Este segundo fragmento 2032 se define para generar un fragmento de contenido suplementario que tiene un segundo tamaño de datos 2036 que es mayor o igual que el primer tamaño de datos 2024 del primer fragmento 2022, y una segunda duración 2038 que es mayor o igual que la primera duración 2026 del primer fragmento 2022. De manera similar, un tercer fragmento secuencial 2042 se define con un tamaño de datos 2044 y una duración 2046 que son mayores o iguales que el tamaño de datos 2036 y duración 2038, respectivamente, del segundo fragmento 2032. Fragmentos posteriores pueden continuar este patrón de tamaño de datos y/o duraciones que aumentan progresivamente o equivalentes. Por ejemplo, un cuarto fragmento 2052 puede definir un tamaño de datos 2054 y duración 2056 que son iguales o mayores que el tamaño de datos 2044 y duración 2046 del tercer fragmento. Los fragmentos de contenido suplementario generados según la plantilla de fragmento 2020 se preparan de manera que el tamaño físico y duración (o tiempo de ejecución) de fragmentos sucesivos aumenta progresivamente sobre una base fragmento por fragmento.
El tamaño de datos y la duración pueden continuar siendo aumentados sustancialmente a cualquier número de fragmentos sucesivos. Típicamente, el tamaño de datos y/o la duración están limitados por el tamaño del almacenador temporal del dispositivo de reproducción 220 y/u otros factores tales. De manera similar, puede haber un tamaño de datos óptimo y/o una duración para proporcionar la reproducción continuada del contenido suplementario. Por lo tanto, el tamaño de datos y/o la duración de fragmentos posteriores puede llegar a ser constante. Por ejemplo, un quinto y sucesivos fragmentos pueden tener tamaños de datos y/o duraciones que son sustancialmente iguales. El número de fragmentos que continúa aumentando en tamaño de datos y/o duración puede depender de numerosos factores, tales como tasas de transmisión de datos, capacidades del dispositivo de reproducción (por ejemplo, decodificación, descifrado, tamaño del almacenador temporal, procesamiento y otras capacidades de procesamiento tales), cantidad de procesamiento de datos necesario en el dispositivo de reproducción, calidad de señal, preferencias de usuario, y otros factores tales. Por ejemplo, los tamaños y las duraciones de fragmentos se pueden basar en la velocidad y estabilidad de descargas de red típicas, proximidad en tiempo de presentación a puntos de búsqueda común, latencia aceptable en el inicio de la reproducción desde un punto de búsqueda dado, sobrecarga asociada con iniciar y manejar descargas, y otros factores relevantes. De manera similar, la cantidad de aumento en tamaño de datos y/o duración entre fragmentos sucesivos también puede depender de numerosos factores, tales como tasas de transmisión de datos, capacidades del dispositivo de reproducción, cantidad de procesamiento de datos necesario en el dispositivo de reproducción, calidad de señal, preferencias del usuario y otros factores tales.
Definiendo el primer fragmento 2022 con un tamaño de datos relativamente pequeño y una duración relativamente corta, un primer fragmento de contenido suplementario que se ajusta al primer fragmento 2022 de la plantilla 2020 se puede recibir completamente y procesar por el dispositivo de reproducción 220 (por ejemplo, descifrado cuando se necesite, decodificación, evaluación de la información del fragmento y representación) dentro de un tiempo relativamente corto. Este tiempo de respuesta relativamente corto permite al dispositivo de reproducción 220 comenzar la reproducción del primer fragmento de contenido suplementario con retardo limitado o no. Mientras que el primer fragmento de contenido suplementario está siendo reproducido, un segundo fragmento generado según el segundo fragmento 2032 de la plantilla 2020 está siendo recibido y procesado en el dispositivo de reproducción 220. En algunos casos, el segundo fragmento se recibe completamente y procesa anterior a la terminación de la reproducción del primer fragmento de contenido suplementario de manera que el dispositivo de reproducción puede inmediatamente y sin discontinuidad comenzar la reproducción del segundo fragmento tras reproducir completamente el primer fragmento. De manera similar, un tercer fragmento de contenido suplementario generado según el tercer fragmento 2042 de la plantilla 2020 se puede recibir y procesar por el dispositivo de reproducción 220 anterior a completar la reproducción del segundo fragmento, de nuevo permitiendo la transición sin discontinuidad y reproducción del tercer fragmento. Esto proporciona una apariencia de difusión de forma continua al contenido durante la reproducción, y en particular proporciona la apariencia de difusión de forma continua cuando el dispositivo de reproducción no es capaz (ya sea funcionalmente o debido a conformidad con un protocolo o estándar) de recibir contenido difundido de forma continua real.
La FIG. 21 representa una representación gráfica simplificada de una plantilla de fragmento 2120 según algunas realizaciones que se puede emplear en la generación de información de fragmento y segmentación de contenido suplementario a ser reenviada, por ejemplo desde un almacenamiento de datos remoto 328 sobre Internet 324, a un dispositivo de reproducción 220. Un primer fragmento 2122 de la plantilla de fragmento 2120 se genera y/o define inicialmente con un primer tamaño de datos 2124 y/o primera duración de reproducción 2126. Una pluralidad de fragmentos posteriores se define y/o genera con tamaños de datos que aumentan sucesivamente y/o duraciones de reproducción que aumentan progresivamente. Por ejemplo, el segundo, tercer y cuarto fragmentos, 2130, 2136 y 2142 cada uno se define y/o genera con tamaños de datos que aumentan sucesivamente 2132, 2138, 2144, respectivamente, con duraciones de reproducción que aumentan progresivamente 2134, 2140, 2146, respectivamente, como se describió con respecto a la FIG. 20. Sustancialmente se puede utilizar cualquier número de fragmentos secuenciales con tamaños de datos que aumentan progresivamente y/o duraciones de reproducción. En algunos casos, no obstante, el tamaño de datos y/o información de fragmento llega a ser constante.
Además mostrada en la FIG. 21 está la detección de un evento, marcador o desencadenador 2150. Este desencadenador 2150 puede ser sustancialmente cualquier desencadenador que indica un cambio de estado, cambio de ubicación de reproducción, una selección de uno de una pluralidad de rutas de reproducción, un selección de una opción de menú, error detectado en transmisión y/u otros desencadenadores tales. Por ejemplo, un desencadenador 2150 puede ser una acción por el usuario que requiere un cambio en la reproducción del contenido suplementario, tal como una petición para avanzar la reproducción del contenido suplementario a un punto de capítulo posterior, avanzar hacia delante una duración predefinida del tiempo de reproducción dentro del contenido suplementario u otras acciones de usuario tales.
El desencadenador 2150 define una transición o ajuste a la plantilla de fragmento 2120, según algunas realizaciones, de manera que un quinto fragmento posterior 2154 de la plantilla de fragmento 2120 que sigue a la detección del desencadenador 2150 tiene un tamaño de datos 2156 y/o una duración 2158 definida reducida o relativamente pequeña. Por ejemplo, el tamaño de datos 2156 y/o la duración 2158 puede ser menor que el tamaño de datos 2144 y/o la duración 2146, respectivamente, del cuarto fragmento 2142. En algunos casos, el tamaño de datos 2156 y/o la duración 2158 del quinto fragmento 2154 son aproximadamente iguales con el tamaño de datos 2124 y/o la duración 2126, respectivamente, del primer fragmento 2122.
Debido al cambio de estado, el quinto fragmento 2154 se genera con un tamaño de datos 2156 y/o una duración 2158 reducida de manera que el fragmento de contenido suplementario generado según el quinto fragmento 2154 de la plantilla de fragmento 2120 se recibe relativamente rápidamente a continuación del evento 2150 y procesa en el dispositivo de reproducción 220, permitiendo al dispositivo de reproducción 220 continuar la reproducción del contenido suplementario con retardos reducidos a continuación del evento 2150. Los fragmentos que siguen al quinto fragmento 2154 ajustado pueden continuar, en algunas implementaciones, aumentando sucesivamente en tamaño y duración como se describió anteriormente. Por ejemplo, un sexto fragmento 2160 puede definir un tamaño de datos 2162 y/o una duración 2164 que es mayor o igual que el tamaño de datos 2156 y la duración 2158 del quinto fragmento 2154; un séptimo fragmento 2166 puede definir un tamaño de datos 2168 y/o una duración 2170 que es mayor o igual que el tamaño de datos 2162 y la duración 2164 del sexto fragmento 2160; y un octavo fragmento 2172 puede definir un tamaño de datos 2174 y/o una duración 2176 que es mayor o igual que el tamaño de datos 2168 y la duración 2170 del séptimo fragmento 2166. Fragmentos posteriores que siguen al octavo fragmento 2172 pueden tener de manera similar tamaños de datos y/o duraciones que son mayores o iguales que aquéllos tamaños de datos y duraciones de fragmentos anteriores. De nuevo, los factores pueden ser tales que los tamaños de fragmento y/o las duraciones llegan a ser sustancialmente constantes para fragmentos posteriores.
La FIG. 22 representa un diagrama de bloques simplificado de un proceso 2220 según algunas realizaciones para generar una plantilla de fragmento, por ejemplo, la plantilla 1124, 2020, 2120, que se pueden usar en el procesamiento y/o generación de fragmentos de contenido suplementario según algunas realizaciones. En el paso 2222, se selecciona, identifica y/o determina una tasa de datos y/o tasa de transmisión. De nuevo como se describió anteriormente, las tasas pueden depender de cualquier factor incluyendo el ancho de banda del enlace de comunicación, las capacidades de procesamiento del dispositivo de reproducción y otros factores tales. En el paso 2224, un tamaño de almacenador temporal del dispositivo de reproducción se identifica (por ejemplo, extrae a partir de la petición del contenido adicional). En el paso 2226, un tamaño de datos y/o una duración de fragmento fijo deseado se determina para fragmentos que siguen a un número de fragmentos que tienen tamaños de datos y/o duraciones de reproducción aumentados progresivamente. Este tamaño fijo de nuevo puede depender de, pero no está limitado a, el tamaño del almacenador temporal, las capacidades de procesamiento del dispositivo de reproducción, el ancho de banda de la comunicación, y otros factores tales.
En el paso 2228, un número de fragmentos de contenido suplementario que tienen un tamaño de datos que aumenta progresivamente se determina basado al menos en las tasas de transmisión y/o datos y el tamaño del almacenador temporal del dispositivo de reproducción. Típicamente, el número de fragmentos con tamaño de datos y/o duraciones que aumentan progresivamente intenta proporcionar una reproducción inicial rápida del contenido suplementario y reproducción continuada del contenido suplementario sin retardos, pausas o tramas congeladas debido a almacenamiento temporal y/o procesamiento.
En el paso 2230, se determina un tamaño de datos o duración de reproducción para cada uno del número de fragmentos determinado en el paso 2228 para tener tamaño de datos y/o duraciones que aumentan progresivamente. De nuevo como se describió anteriormente, el tamaño de datos y/o la duración puede depender de uno o más factores tales como, pero no limitados a, las capacidades de procesamiento del dispositivo de reproducción, el ancho de banda de comunicación, y otros factores tales. En el paso 2232, se define un fragmento que tiene el tamaño de datos y/o la duración determinada en el paso 2230, y se genera información de fragmento para el primer fragmento. En algunos casos, un flujo de contenido ficticio o hipotético se codifica y/o multiplexa según el fragmento definido. Las estrategias de fragmentación o troceado de contenido se basan, en algunas realizaciones, en seleccionar un compromiso adecuado entre calidad de presentación de contenido y velocidades de descarga. Una vez que la estrategia de fragmentación se ha seleccionado es típicamente fijada por los marcadores de posición a menos que los marcadores de posición sean actualizados anterior a iniciar la descarga del contenido suplementario. Además, la alineación de contenido suplementario de descarga se puede mantener, en algunos casos, mediante una estrategia de nomenclatura de archivos, tal como aumentar el número de archivos. La numeración del nombre de archivo se puede definir de manera que coincida con la numeración del nombre de
archivo de la información de fragmento del marcador de posición (por ejemplo, 10000.clpi, 10001.clpi, 10002.clpi …, corresponden con 10000.m2ts, 10001.m2ts, 10002.m2ts …, respectivamente).
En el paso 2234, se determina si la información de fragmento se ha generado según cada fragmento que tiene tamaños de datos y/o duraciones aumentadas progresivamente. Cuando los fragmentos aumentados progresivamente no están todos definidos, el proceso vuelve al paso 2232. Alternativamente, cuando la información de fragmento se ha generado según cada fragmento que tiene tamaños de datos y/o duraciones aumentadas progresivamente el proceso continúa en el paso 2236.
En el paso 2236, uno o más fragmentos se definen que tienen el tamaño de datos y/o la duración de fragmento fijo y se genera la información de fragmento. En el paso 2238, se determina si va a ser incorporado un desencadenador 2150. En aquellos casos donde un desencadenador va a ser incorporado el proceso continúa en el paso 2240 identificando el desencadenador. El proceso entonces vuelve al paso 2228 para determinar un número de fragmentos para definir que tienen tamaño de datos y/o duraciones de reproducción aumentadas progresivamente teniendo en consideración los fragmentos previamente definidos así como un estado esperado de reproducción en el dispositivo de reproducción y el desencadenador detectado. Los fragmentos resultantes de contenido suplementario se corresponden con los marcadores de posición 128. Cuando un desencadenador no va a ser incorporado, el proceso 2220 continúa en el paso 2242 determinando si se han definido los fragmentos para el contenido suplementario potencial entero. En aquellos casos donde van a ser definidos fragmentos adicionales, el proceso 2220 vuelve al paso 2236 para definir un fragmento posterior y una información de fragmento. Alternativamente, el proceso 2220 termina.
Las presentes realizaciones permiten que contenido suplementario de longitud variable coopere con un medio que cumple con una estructura o estándar de longitud fija, y puede incluir la reproducción de contenido suplementario que no tiene una longitud conocida que incluye contenido suplementario que se genera sustancialmente en el momento de la distribución a uno o más dispositivos de reproducción 220 a ser reproducido en cooperación con contenido grabado en el medio 222. Adicionalmente como se describió anteriormente, el número de fragmentos disponible en la segmentación de contenido suplementario puede ser limitado, por ejemplo, mediante un número limitado de fragmentos en una lista de reproducción y/o definido para un medio dado. Por lo tanto, un contenido suplementario con una longitud de contenido desconocida puede provocar un número de fragmentos que excederían del número de fragmentos dentro de una lista de reproducción y/o en un medio.
Para acomodar contenido con longitudes desconocidas, algunas implementaciones intentan utilizar información de fragmento con una temporización que excede, y típicamente supera con creces, una longitud y/o temporización esperadas del flujo de contenido real a ser reproducido en el futuro en cooperación con el medio 222. Algunas realizaciones adicionalmente o alternativamente utilizan una nueva reproducción o repetición de reproducción de fragmentos. Específicamente, se puede especificar un número de fragmentos definido a ser reproducido repetidamente hasta detenerse por un comando o terminación del contenido suplementario. Por lo tanto, se puede definir una lista de reproducción con un número limitado de fragmentos y el contenido suplementario se puede ajustar a una plantilla según una repetición del número de fragmentos cuando el contenido suplementario tiene una duración que excede una secuencia de reproducción única del número limitado de fragmentos.
El bucle de la información de fragmento puede permitir la reproducción sustancialmente de cualquier contenido sustancialmente con cualquier longitud. Por ejemplo, se podría reproducir contenido que dura por encima de 12 o incluso 48 horas o más en cooperación con un medio de almacenamiento portátil 222 incluso aunque tal contenido excediese probablemente los fragmentos permisibles en una lista de reproducción y/o los fragmentos permitidos en el medio de almacenamiento portátil. Por lo tanto, se puede usar una lista de reproducción como un contexto circular con un número limitado y fijo de fragmentos, de manera que durante la reproducción cuando el dispositivo de reproducción alcanza el final de los archivos de fragmentos el dispositivo de reproducción simplemente vuelve al principio o archivo de fragmento definido y continúa reproduciendo. Este bucle esencialmente proporciona un suministro interminable de fragmentos. En tal implementación, el contenido suplementario se ajusta de manera similar según el número limitado de fragmentos. De nuevo, la lista de distribución se usa como un contexto circular en el ajuste del contenido suplementario a la plantilla de fragmento, y como el contenido está ajustado cuando el
5 dispositivo de ajuste alcanza el final de los fragmentos, el dispositivo de ajuste simplemente vuelve al comienzo o un fragmento definido para continuar ajustando el contenido suplementario. Por lo tanto, el contenido suplementario se puede reproducir continuamente según el número limitado de fragmentos definido en el medio de almacenamiento portátil 222.
La reproducción se monitoriza y basa en la reproducción del fragmento apropiado de contenido real que se
10 suministra según la información de fragmento que está siendo repetida o en bucle. En algunos casos, el dispositivo de reproducción reenvía la temporización de reproducción junto con la petición de un fragmento de contenido a la fuente de contenido, y la fuente de contenido entonces utiliza esta temporización de reproducción para identificar el fragmento correcto a ser asociado con el fragmento en bucle.
Algunas realizaciones emplean uno o más algoritmos para seleccionar el contenido correcto. Estos algoritmos se
15 pueden implementar en la fuente de contenido 326, por ejemplo, a través de una API de servicio web para determinar un próximo fragmento apropiado a ser reproducido. Un dispositivo de reproducción 220 puede reenviar una petición a la fuente de un próximo fragmento, pasa un ID de próximo fragmento, y en algunos casos adicionalmente reenvía información acerca de la reproducción, por ejemplo, una presentación transcurrida desde cero a ese punto. La fuente de contenido utiliza la información proporcionada para mirar y/o identificar un fragmento
20 real a ser reenviado. Por ejemplo, la fuente puede identificar un URL para el fragmento a partir de una tabla que contiene el tiempo de presentación para cada fragmento, ID de Fragmento de reproductor y URL. Como ejemplo adicional, una lista de reproducción corta contiene cuatro fragmentos (por ejemplo, los ID de fragmento: 00001, 00002, 00003, 00004). Se puede acceder entonces a una tabla para identificar un fragmento correspondiente. La Tabla 1 de más abajo muestra un ejemplo de una tabla de los datos asociados en una aplicación de repetición.
PTS ID de Fragmento Ruta del Recurso
0.0 00001 /titlename/00001.mts 20.0 00002 /titlename/00002.mts 40.0 00003 /titlename/00003.mts 60.0 00004 /titlename/00004.mts
80.0 00001 /titlename/00005.mts
100.0 00002 /titlename/00006.mts
120.0 00003 /titlename/00007.mts
140.0 00004 /titlename/00008.mts
160.0 00001 /titlename/00009.mts . . .
25 TABLA 1: Contenido Fuente Ejemplo
La información utilizada por la fuente de contenido (por ejemplo, una tabla) puede identificar adicionalmente un ID de fragmento de servidor u otra información para coordinar la reproducción en bucle. De manera similar, se puede proporcionar un índice y contando identificadores (por ejemplo, 0001, 0002, 0003, etc.) y buscándolo a través del índice, identificar un contenido apropiado por zona horaria u otra coordinación tal.
30 El servidor identificaría un fragmento correspondiente de contenido real según el tiempo trascurrido de la presentación que es mayor o igual que un sello de tiempo de presentación (PTS) de entrada actual y menor que un PTS de próxima entrada. La fuente puede entonces verificar que un ID de fragmento en la entrada es el mismo que aquél que se requiere por el dispositivo de reproducción 220. Si no, la fuente identifica que ha ocurrido un error (por ejemplo, la tabla es inconsistente, el cálculo del dispositivo de reproducción del tiempo de presentación trascurrido
35 es incorrecto u otros errores tales). La fuente puede entonces tomar las acciones apropiadas, tales como requerir la verificación desde el dispositivo de reproducción, emitir un error al dispositivo de reproducción, requerir información adicional desde un usuario en el dispositivo de reproducción u otras acciones tales.
En algunas implementaciones, es adicionalmente una ventaja usar un número limitado o menor de números de fragmentos. Por ejemplo, un número limitado de fragmentos puede provocar una reducción relativamente
40 significativa en el tiempo necesario para escribir esos fragmentos y/o información de fragmento en el almacenamiento local 228 en la configuración y/o durante el procesamiento del sistema de archivo virtual. Además, menos fragmentos supone gestionar menos fragmentos, lo cual en muchos casos puede reducir la sobrecarga, mejorar el rendimiento, y puede provocar una experiencia de usuario más sensible.
Además, algunas realizaciones siempre usan un número restringido de fragmentos con independencia de un contenido suplementario esperado, una cantidad de contenido suplementario y/o una longitud de reproducción del contenido suplementario. Por ejemplo, un número fijo de fragmentos, semejante a 64 fragmentos, se puede definir y la reproducción se fija para repetir o hacer un bucle sobre estos 64 fragmentos hasta terminar como se describió anteriormente. El contenido se ajusta de manera similar a estos 64 fragmentos en un patrón de bucle con independencia de la longitud del contenido suplementario. Esto evita la necesidad de anticipar la longitud de contenido, puede evitar exceder el número de restricciones de fragmentos, puede proporcionar gestión simplificada, rendimiento mejorado y otros resultados.
Para compensar los parámetros de temporización e intentar asegurar reproducción secuencial, incluyendo durante la búsqueda, rebobinado, avance rápido y similares, se emplea un contador y/o un algoritmo en algunas realizaciones. Por ejemplo, un contador puede hacer el seguimiento cada vuelta al fragmento del principio según se ajusta y/o reproduce el contenido. Una correlación puede proporcionarse por adelantado y/o según se entrega el contenido definiendo la cuenta (por ejemplo, se pueden proporcionar metadatos para prescribir la correlación entre flujos en el suministrador de contenido y las listas de reproducción en el reproductor). Esta cuenta permite que unos datos de flujo de fragmento correctos sean desplegados para el archivo de información de fragmento correcto durante el ajuste, reproducción y/o búsqueda. Por ejemplo, se pueden numerar los flujos de fragmentos, y modular aritmética basado en la numeración de los nombres de archivo que se realizaría durante la configuración y/o reproducción.
La FIG. 23 representa un diagrama de flujo simplificado de un proceso 2320 implementado por una fuente o proveedor de contenido, por ejemplo, la fuente 326, en la generación de fragmentos de un flujo de contenido suplementario según algunas realizaciones. El proceso 2320 se puede implementar, por ejemplo, como parte del paso 1232 del proceso 1220 y/o el paso 1426 del proceso 1420. Además, en algunas implementaciones algo o todo el proceso 2320 se realiza a través del conformador 862. En el paso 2322, se identifica contenido suplementario. En el paso 2324, se selecciona una plantilla de fragmento. Como se describió anteriormente, la plantilla de fragmento seleccionada corresponde con al menos una plantilla de fragmento definida en el dispositivo de reproducción, tal como grabada en un medio de almacenamiento portátil 222. En el paso 2326, un contador de fragmento de repetición se fija a cero. Como se describió anteriormente, en algunos casos se puede usar una plantilla de fragmento como un contexto circular para la segmentación del contenido suplementario cuando el contenido suplementario produciría un número total de fragmentos que excede el número de fragmentos dentro de la plantilla de fragmento y el contador de fragmento define el número de veces que el proceso ha hecho bucles a través de la lista de reproducción.
En el paso 2330, uno o más paquetes del contenido suplementario están asociados con un fragmento definido en la plantilla de fragmento, por ejemplo, la plantilla de fragmento 1124. En el paso 2332, se determina si los paquetes de relleno y/o datos de relleno se deberían incorporar en el fragmento. En aquellos casos donde se debería incorporar relleno se entra en el paso 2334 para determinar si el relleno va a ser incorporado realmente en el fragmento. Como se describió anteriormente, el relleno se puede dejar fuera de los fragmentos de manera que el relleno se genera realmente e incorpora en el fragmento por el dispositivo de reproducción. Cuando el relleno va a ser incorporado realmente dentro del fragmento se entra en el paso 2336 donde la cantidad de relleno y ubicación de relleno se identifica y el relleno se incorpora en el fragmento como se determine. Alternativamente, cuando no va a ser realmente incorporado relleno dentro del fragmento se entra en el paso 2340 para determinar si una designación de relleno va a ser incorporada en el flujo de contenido.
Cuando una designación de relleno va a ser incorporada en el flujo de contenido, tal como la incorporación de un código de inicio, se entra en el paso 2342 y se incorpora la designación de relleno. En aquellos casos donde la designación de relleno no va a ser incorporada en el flujo de contenido, se entra en el paso 2344 donde el relleno se define dentro de una correlación, tal como un archivo de correlación de paquetes. En algunas realizaciones, la inserción de relleno es modal y se fija anterior a procesar el flujo de contenido y la inserción de relleno o designación aplica al mismo esquema mientras que se formatea el flujo de contenido según la plantilla. Por lo tanto, algunos de los pasos del proceso 2320 se pueden eliminar u omitir. Por ejemplo, se puede incluir un paso que designa si va a ser incorporado relleno directamente en el flujo, definido en una correlación de paquetes o una designación va a ser incorporada en el flujo, y por lo tanto los pasos de determinación 2334 y 2340 se pueden omitir y el proceso puede pasar directamente al paso de relleno apropiado cuando va a ser incorporado relleno.
Cuando se determina en el paso 2332 que no van a ser incorporados datos de relleno, o a continuación de los pasos 2336, 2342 y 2344, el proceso 2320 continúa al paso opcional 2346 donde se da al fragmento un número o identificador de fragmento, donde el número o identificador de fragmento se asocia en parte con el valor actual de la cuenta de fragmento de repetición. En el paso 2350, se determina si va a ser incorporado contenido suplementario adicional en fragmentos adicionales según la plantilla de fragmento. En aquellos casos donde no va a ser fragmentado contenido suplementario el proceso 2320 termina. Alternativamente, se entra en el paso 2352 para determinar si se definen fragmentos adicionales dentro de la plantilla de fragmento. Cuando se definen fragmentos adicionales el proceso vuelve al paso 2330 para asociar otro segmento de contenido suplementario con un fragmento posterior definido en la plantilla de fragmento. Cuando no se definen fragmentos adicionales en la plantilla se determina en el paso 2354 si se autoriza un bucle o repetición. Se entra en el paso 2356 en aquellos casos donde un bucle o repetición no se autoriza y se genera un error y el proceso termina o requiere una acción alternativa, tal como seleccionar una plantilla de fragmento diferente, autorizar la repetición u otra acción tal. Cuando se autoriza la repetición, se entra en el paso 2360 donde el contador de fragmento de repetición se aumenta y el proceso vuelve al paso 2330.
La FIG. 24 representa un diagrama de flujo simplificado de un proceso 2420 implementado por un dispositivo de reproducción 220 en la reproducción de contenido. En el paso 2422, se recibe el contenido suplementario a ser reproducido, por ejemplo, el contenido suplementario correspondiente a un marcador de posición de contenido 128. En el paso 2424, un contador de repetición de fragmento se fija a cero. En el paso 2426, se accede a un fragmento de contenido suplementario según los archivos de información de fragmento. En el paso 2430 se determina si se proporciona una correlación de relleno o paquetes. Se entra en el paso 2432 cuando una correlación de paquetes se proporciona donde el dispositivo de reproducción determina si va a ser incorporado relleno en un fragmento accedido actualmente de contenido suplementario. Cuando va a ser incorporado relleno según la correlación se entra en el paso 2434 donde se añade el relleno según la correlación de paquetes.
Cuando se determina en el paso 2430 que no se proporciona mapa de relleno y cuando se determina en el paso 2432 que no va a ser incorporado relleno en un fragmento actual, el proceso 2420 continúa en el paso 2436 determinando si una designación de relleno es específica dentro del flujo de contenido suplementario. Cuando se define una designación de relleno dentro del flujo de contenido suplementario se entra en el paso 2440 donde se añade relleno según la designación de relleno. En el paso 2442 el fragmento de información de contenido suplementario se escribe en memoria local.
En el paso 2444, se determina si se recibe contenido suplementario adicional para reproducción según la información de fragmento 130. En aquellos casos donde no se recibe contenido suplementario adicional el proceso 2420 continúa en el paso 2446 determinando si se termina la reproducción, volver a la lista de reproducción o implementar otras acciones relevantes. Alternativamente, se entra en el paso 2448 para determinar si se definen fragmentos adicionales dentro de la información de fragmento 130 para la lista de reproducción actual. Cuando no se definen fragmentos adicionales en la información de fragmento, se entra en el paso 2450 para determinar si se autoriza un bucle o repetición. Se entra en el paso 2452 en aquellos casos donde no se autoriza un bucle o repetición y se genera un error y el proceso termina o solicita una acción alternativa. Cuando se autoriza el bucle o repetición, se entra en el paso 2454 donde el contador de fragmento de repetición se incrementa y el proceso vuelve al paso 2426.
Como se describió anteriormente, algunas realizaciones proporcionan la reproducción de contenido en directo en cooperación con un medio de almacenamiento portátil 222. Esto puede incluir contenido suplementario de eventos, actuaciones, producción capturados en directo o similares, y este contenido suplementario del evento en directo se puede distribuir a uno o más dispositivos de reproducción 220 para proporcionar sustancialmente una reproducción en directo del evento, con un retardo relativamente pequeño. Además, debido a que el contenido suplementario se puede distribuir a múltiples dispositivos de reproducción, algunas realizaciones proporcionan además una reproducción sincronizada en múltiples dispositivos de reproducción cada uno recibiendo el contenido suplementario y accediendo además a copias del mismo contenido grabado en medios en cada dispositivo de reproducción (por ejemplo, un medio de almacenamiento portátil).
En la captura y/o grabación de contenido, algunas realizaciones capturan el contenido suplementario en segmentos
o fragmentos. Por ejemplo, cuando se captura digitalmente un evento, tal como una actuación en directo o una presentación de un director, y se graba contenido multimedia del evento el contenido suplementario se puede capturar en segmentos relativamente cortos comparado con la longitud de reproducción del evento.
La FIG. 25 representa un diagrama de bloques simplificado de un proceso 2520 de captura y distribución del contenido con el tiempo según se captura el contenido, por ejemplo, durante una actuación o evento en directo a ser reproducida en cooperación con un medio, tal como un medio de almacenamiento portátil 222, en un dispositivo de reproducción 220. Un dispositivo de captura 2522 captura y graba contenido multimedia digital de un evento, tal como una actuación. El dispositivo de captura 2522 puede ser una cámara, una cámara de vídeo, un grabador de audio, otros dispositivos tales y/o combinaciones de tales dispositivos. Mientras que se captura el contenido, se extraen segmentos 2524 de contenido y reenvían a una unidad de procesamiento 2526. Cada segmento 2524 tiene una duración 2528 o longitud. La duración 2528 puede ser la misma para cada segmento 2524 o puede ser la misma para una serie de segmentos, o puede variar entre segmentos. Generalmente, las duraciones 2528 de fragmentos 2524 se configuran para hacer coincidir marcadores de posición definidos y existentes. Además, las duraciones para los marcadores de posición se basarían en velocidades de descarga de red anticipadas que implican una latencia de puesta en marcha.
En algunas realizaciones, el contenido se captura y la fragmentación o troceado se realiza anterior a grabar a una fuente de red y/o se realiza como parte de un elemento de procesamiento hacia abajo que fragmenta el contenido según una estrategia de fragmentación. En algunas realizaciones, no obstante, el contenido se puede segmentar a fragmentos en el tiempo de captura y/o mediante el dispositivo de captura 2522. En algunos casos, realizar la fragmentación en un tiempo posterior después de la captura, por ejemplo como parte de un proceso de descarga, puede liberar al codificador de intentar crear roturas limpias entre fragmentos que puede ser ineficiente. En algunos casos, no obstante, un dispositivo de captura 2522 puede crear fragmentos que representan partes contiguas de contenido en una línea de tiempo. Se configuran duraciones de fragmentos para hacer coincidir los marcadores de posición existentes. Las elecciones de duraciones para los marcadores de posición se podrían basar en velocidades de descarga de red anticipadas, que implican una latencia de puesta en marcha.
Debido a que el dispositivo de captura 2522 espera para capturar el segmento completo 2524 anterior a reenviar el segmento a la unidad de procesamiento 2526 hay un retardo 2530 entre un tiempo inicial 2532 de iniciar una captura de un segmento 2524 y un tiempo 2534 en que se recibe el segmento en la unidad de procesamiento 2526. Este retardo 2530 típicamente incluye la duración del segmento 2528 así como tiempo para que el dispositivo de captura 2522 capture el segmento, realice cualquier formateado relevante y el tiempo para reenviar el segmento a la unidad de procesamiento 2526.
La unidad de procesamiento 2526 recibe cada segmento 2524 y procesa los segmentos para producir segmentos procesados 2540 a ser reenviados a un dispositivo de reproducción 220. En algunas realizaciones, la unidad de procesamiento 2526 puede ser parte del dispositivo de captura 2522, mientras que en otras realizaciones algo o toda la unidad de procesamiento 2526 se separa del dispositivo de captura. La unidad de procesamiento 2526 puede realizar sustancialmente cualquier procesamiento relevante en la preparación del segmento a ser reenviado a y reproducido a través de un dispositivo de reproducción, que puede ser sustancialmente cualquier dispositivo de reproducción relevante, tal como el dispositivo de reproducción 220. Por ejemplo, el procesamiento realizado por la unidad de procesamiento 2526 puede incluir, codificar, multiplexar (por ejemplo, audio, datos y contenido de menú, funciones de control, programación, y otro contenido tal que se puede multiplexar con uno o más de los segmentos 2524), cifrar, añadir efectos especiales, añadir contenido suplementario y/o metadatos, u otro procesamiento tal o combinaciones de procesamiento. Además, la unidad de procesamiento 2526 puede emplear una plantilla de fragmento 1324 en la generación de los segmentos procesados 2540 que cumplen con la información de fragmento utilizada por el dispositivo de reproducción (por ejemplo, como se define en un medio de almacenamiento portátil 222). Tras completar el procesamiento los segmentos procesados 2540 están preparados para ser reenviados a uno
o más dispositivos de reproducción 220.
En algunos casos, los segmentos procesados 2540 se reenvían inmediatamente a uno o más dispositivos de reproducción 220, por ejemplo, cuando se proporciona reproducción de una actuación en directo, producción, actuación o similar. Debido al procesamiento en la unidad de procesamiento 2526 y la transferencia al dispositivo de reproducción hay un retardo adicional 2552 en el suministro de segmentos procesados 2540 al dispositivo de reproducción 220. Como resultado hay un retardo total 2554 entre el momento de captura (por ejemplo, el momento inicial de captura 2532) y un hora 2556 en que se recibe el segmento procesado 2540 en el dispositivo de reproducción 220 a ser reproducido.
Capturando los segmentos 2524 de la actuación o evento y procesando los segmentos 2524 mientras que el evento continúa ocurriendo, el retardo total en la reproducción de la actuación o evento en el dispositivo de reproducción 220 se puede reducir significativamente y en muchos casos proporciona sustancialmente una reproducción en directo con retardos mínimos de segundos. En algunos casos, la mayoría del retardo total 2554 es dependiente de la duración o longitud del segmento capturado 2524. Por ejemplo, cuando un evento es un evento de media hora, con segmentos que tienen duraciones de alrededor de 5-20 segundos, o minutos, el retardo resultante 2554 es fracciones de un porcentaje de la duración total del evento.
Además en algunos casos, las duraciones 2528 de los segmentos 2524 pueden ser dependientes de una plantilla de fragmento. Por ejemplo, cada segmento 2524 puede tener una duración que corresponde con duraciones de fragmento anticipadas en base a una plantilla de fragmento. En otros casos, no obstante, los segmentos 2124 se pueden descomponer además mediante la unidad de procesamiento 2526 para cumplir con una plantilla de fragmento seleccionada. La unidad de procesamiento 2526 puede incluir almacenar temporalmente en un almacenador temporal uno o más segmentos 2524. Este almacenamiento temporal se puede usar, por ejemplo, cuando el uno o más segmentos 2524 tienen duraciones 2528 más cortas que un retardo de procesamiento 2552.
Adicionalmente o alternativamente, algunas realizaciones incluyen múltiples unidades de procesamiento 2526 y/o se puede realizar procesamiento múltiple de manera que los segmentos 2524 pueden tener duraciones más cortas que el retardo de procesamiento 2552 mientras que limitan o evitan un atasco de segmentos capturados 2524 que esperan procesamiento. Se señala además, que el retardo de procesamiento 2552 puede variar de segmento a segmento. Como resultado, se puede emplear almacenamiento temporal permitiendo variaciones en el retardo de procesamiento 2552 y/o las duraciones de segmento 2528 se pueden variar de manera similar en el dispositivo de captura 2522.
En la determinación de las duraciones de segmentos, en algunas realizaciones, la aplicación que controla el dispositivo de captura tiene acceso a una programación de segmentos. Se señala que la duración del segmento puede variar y la selección de la duración puede depender de muchos factores, y además es típicamente un balance entre calidad e implementación. Se señala, por ejemplo, que los segmentos de duración más larga pueden ser algo más eficientes que las duraciones relativamente cortas desde un punto de vista de red. Adicionalmente, los segmentos de duración más larga proporcionarían mejor calidad de vídeo para una tasa de bit similar debido a que habría más oportunidad de aprovecharse de la compresión entre tramas a través de limites GOP(GOVU).
Duraciones más cortas, no obstante, también pueden tener la ventaja de reducir latencias y reducir un tiempo de pérdida de información potencial si hay un problema en la transmisión o conversión para un segmento o fragmento dado. Si un segmento de duración relativamente larga se pierde o falla entonces ocurre una pérdida de información grande que probablemente sería perceptible. Debería ocurrir una pérdida de información con segmentos de duración más corta, pueden ser avisos pero probablemente no sería catastrófico. Duraciones más cortas tendrían en consideración además los números aumentados de condiciones límite entre los números aumentados de segmentos. Además, cuando la duración está siendo gestionada en el extremo codificador, el codificador típicamente no es consciente de los problemas de cumplimiento de formato. Por lo tanto, el codificador puede realizar una codificación de rotura limpia entre segmentos, que puede incluir cerrar el flujo que sigue a la codificación del segmento. Además, el cierre del flujo puede interferir o impedir aprovecharse de la compresión entre tramas a través de un límite de fragmento, puede tener que ser incluido relleno extra, y/o el procesamiento puede tener que incluir evaluar el contenido de manera que el fragmento finalice con una unidad de audio completa.
Como se describió anteriormente, el dispositivo de captura 2522 de la FIG. 25 puede ser sustancialmente cualquier dispositivo capaz de capturar contenido a ser reenviado a un dispositivo de reproducción. De manera similar, el contenido capturado puede ser sustancialmente cualquier contenido, tal como imágenes, vídeo, audio, gráficos, texto, y otro contenido tal y/o combinaciones del contenido. En algunos casos, el contenido puede incluir múltiples tipos de contenido, tal como contenido de vídeo y audio. Aún más, la unidad de procesamiento 2526 puede recibir múltiples entradas de datos de segmento, y puede cooperar y/o multiplexar estas múltiples entradas de datos en los segmentos procesados 2540. Por ejemplo, la unidad de procesamiento 2526 puede recibir segmentos de vídeo desde una cámara de vídeo, mientras que recibe segmentos de audio desde un dispositivo de grabación de audio. La unidad de procesamiento puede entonces multiplexar los segmentos de vídeo con los segmentos de audio con información de temporización correspondiente y/u otra información tal para coordinar de manera exacta la reproducción del audio con el vídeo.
En la cooperación de contenido de múltiples fuentes la unidad de procesamiento 2526 monitorizará la temporización y sincronizará las múltiples fuentes, por ejemplo, mantendrá la sincronización entre el contenido de audio y el contenido de vídeo. Una pérdida de sincronización, por ejemplo debida a relojes maestros que proporcionan temporización a cada dispositivo fuente que son diferentes, podría provocar deriva. En algunos casos, esto se puede abordar utilizando fuentes que utilizan el mismo reloj maestro o aplican alguna conversión adaptativa. Además, la unidad de procesamiento en la multiplexación del contenido tiene que respetar los desplazamientos de puesta en marcha. Aún más, puede tener que ser proporcionada compensación en el caso de pérdida de información o muestras caídas desde una fuente o la otra.
La FIG. 26 representa un diagrama de flujo simplificado de un proceso 2620 según algunas realizaciones que se implementan mediante la unidad de procesamiento 2526 en el procesamiento de segmentos 2524 de contenido desde una o más fuentes (por ejemplo, el dispositivo de captura 2522). En el paso 2622, se recibe un segmento de contenido en la unidad de procesamiento 2526. Por ejemplo, se puede recibir un segmento de datos de vídeo. En el paso 2624, se determina si uno o más de otros segmentos de otro contenido van a cooperar y/o ser sincronizados con el segmento recibido. Esto puede incluir multiplexar contenido u otra cooperación de contenido tal. Además, el otro contenido puede incluir segmentos de contenido recibido previamente y/o segmentos de contenido recibido simultáneamente, y a menudo se reciben desde una fuente separada. Por ejemplo, se pueden recibir segmentos de audio separados desde un dispositivo de captura de audio mientras que se reciben segmentos de vídeo desde un dispositivo de captura de vídeo. En aquellos casos donde el segmento recibido no va a cooperar el proceso 2620 salta al paso 2636.
Alternativamente, en aquellos casos donde el segmento recibido va a cooperar con uno o más de otros segmentos de contenido se entra en el paso 2626 para identificar que uno o más segmentos adicionales de contenido cooperan. En el paso 2630, parámetros, tales como temporización, número de trama y/u otra información tal se extraen desde el segmento recibido y/o el uno o más de otros segmentos. En el paso 2632, una cooperación apropiada del segmento recibido y el uno o más de otros segmentos se determina, por ejemplo basada en parte en la temporización extraída. En el paso 2634, el segmento recibido y el uno o más de otros segmentos cooperan.
En el paso 2636, se determina si datos adicionales, tales como pero no limitados a menús, gráficos, efectos especiales, programación, texto, subtítulos, datos y similar van a cooperar con el segmento recibido. Cuando datos adicionales u otro contenido va a cooperar el proceso 2620 continúa en el paso 2640 identificando los datos adicionales a cooperar. En el paso 2642 se determina cómo van a cooperar los datos adicionales. En el paso 2644 el segmento recibido y los datos adicionales cooperan.
Se entra en el paso 2646 que sigue al paso 2644 y cuando se determina en el paso 2636 que no van a cooperar datos adicionales, donde el proceso 2620 inicia la codificación del segmento recibido, así como cualquier otro contenido y/o datos adicionales que cooperan con el contenido recibido. La codificación típicamente utiliza una plantilla de fragmento de manera que el contenido codificado se ajusta a una información de fragmento esperada en un medio de almacenamiento portátil. Como se describió anteriormente, el contenido se puede codificar múltiples veces aplicando diferentes plantillas de fragmento y/o aplicando diferentes tasas de codificación dependiendo de los dispositivos de reproducción solicitantes y/o dispositivos de reproducción esperados para requerir el contenido. Adicionalmente, la codificación puede incorporar paquetes y/o datos de relleno en el flujo de contenido como se describió anteriormente, y/o la codificación puede identificar dónde el relleno es posterior a ser incorporado por el dispositivo de reproducción y crear una correlación de paquetes de relleno y/o añadir identificadores de relleno que designan dónde van a ser incorporados paquetes y/o datos de relleno en el flujo y cuánto relleno va a ser añadido. En el paso 2650 se determina si el contenido codificado va a ser protegido (por ejemplo, cifrado) o procesado de otro modo. En aquellos casos donde va a darse procesamiento y/o protección adicional se entra en el paso 2652 para implementar el procesamiento. En el paso 2654, el segmento codificado se formatea para comunicación, tal como empaquetar, incorporar información de cabecera, dirigir paquetes y similares produciendo el segmento procesado 2540. En el paso 2656 el segmento procesado 2540 se comunica entonces al dispositivo de reproducción 220 y/o almacena para comunicación posterior.
La representación de cronología mostrada en la FIG. 25 y el proceso 2620 de la FIG. 26 se pueden aplicar en muchas situaciones, incluyendo presentaciones en directo, actuaciones y otros eventos en directo tales. De manera similar, se puede emplear segmentación del contenido en el dispositivo de captura 2522 sin una intención de reenviar inmediatamente los segmentos procesados 2540 y la información de fragmento. En su lugar, el segmento procesado 2540 se puede almacenar para ser reenviado a un dispositivo de reproducción solicitante en un momento posterior. Alternativamente, el contenido se puede capturar, y luego segmentar.
La FIG. 27 es un diagrama de bloques simplificado de un proceso de flujo de datos para procesar contenido suplementario 2720 y 2722 según algunas realizaciones en la generación de fragmentos de contenido e información de fragmento correspondiente a los fragmentos generados de contenido suplementario. El contenido 2720 y 2722 puede incluir, por ejemplo, contenido de vídeo 2720 y contenido de audio 2722. Típicamente, el contenido de vídeo 2720 se proporciona en un archivo de vídeo. En algunos casos, no obstante, el contenido de vídeo puede ser uno o más archivos de contenido de vídeo grabado. De manera similar, el contenido de audio 2722 puede incluir uno o más archivos de contenido de audio grabado. El contenido de vídeo 2720 y el contenido de audio 2722 se multiplexan juntos para crear contenido de A/V multiplexado 2724. En algunos casos, el contenido de vídeo 2720 y el contenido de audio 2722 se codifican anterior a la multiplexación, mientras que en otros casos el contenido de vídeo y audio se codifican después de la multiplexación. El contenido de A/V multiplexado 2724 se evalúa entonces y se genera información de fragmento 2726 correspondiente al contenido de A/V multiplexado 2724. En algunos casos, el contenido se configura de manera que los paquetes que contienen el inicio de un GOP(GOVU) tienen su primer octeto de datos de carga útil que comienza con la secuencia de código de inicio GOP(GOVU). Esto puede reducir la carga de análisis sintáctico en el flujo entrante. Los datos del punto de entrada se pueden invocar para identificar los límites de segmento apropiados y se simplifica la sustitución de paquetes en el conformador.
El contenido de A/V multiplexado 2724 es además procesado y segmentado en segmentos procesados de contenido de A/V 2730. Adicionalmente, la información de fragmento 2726 se segmenta y/o la información de fragmento que corresponde al segmento apropiado se genera para proporcionar información de fragmento segmentada 2732. Las decisiones de segmentación de información de fragmento se hacen antes de que el contenido de A/V se segmente. Esto se hace, en algunas realizaciones, sobre la base de una programación de segmentos y los datos de punto de entrada, y adicionalmente sobre requerimientos específicos de formato, tales como requerimientos de BD-ROM de cumplimiento de las reglas de relleno de unidades alineadas. Por ejemplo, cuando se define una lista de reproducción progresiva con el estado de conexión 6 (que implica que la secuencia de fragmentos se pretende que sea tratada como un flujo contiguo) un fragmento se puede definir para incluir un número entero de unidades alineadas de 6144 octetos que corresponden a paquetes fuente de 32 192 octetos, cada uno que contiene paquetes de transporte de 188 octetos. El sello de tiempo de llegada está integrado en los primeros 4 octetos del paquete de 232 octetos. Como otro ejemplo, el estado de conexión 5 se puede usar también pero sólo implica que se emplea codificación de rotura limpia, que puede ser ligeramente menos eficiente.
Cuando se introduce relleno de unidad alineada, el sello de tiempo aumenta de paquete en paquete a una tasa no mayor que la tasa de multiplexación del flujo de transporte señalada. Así cuando se seleccionan límites de fragmento, tiene que ser proporcionado espacio suficiente, desde un punto de vista de sello de tiempo de llegada, para insertar los paquetes de relleno para terminar un fragmento previo a una unidad alineada sin solapar el inicio del próximo fragmento. Si no hay bastante espacio, el procesamiento se desplaza al próximo punto de entrada y de nuevo determina si hay bastante espacio para insertar relleno.
Los segmentos procesados de contenido de A/V 2730 y la información de fragmento segmentada 2732 se pueden almacenar (por ejemplo, en un servidor o almacenamiento remoto 328, en la memoria externa 229 o memoria interna 228 de un dispositivo de reproducción 220 cuando el contenido es contenido generado por el usuario, u otro almacenamiento tal) para distribución posterior a un dispositivo de reproducción 220 o distribuido a uno o más dispositivos de reproducción 220.
En algunas realizaciones, el proceso se implementa múltiples veces con parámetros que varían y/o basado en plantillas de fragmento diferentes para crear conjuntos diferentes de segmentos 2730 e información de fragmento correspondiente 2732. Por ejemplo, un primer conjunto de segmentos de contenido e información de fragmento correspondiente se puede generar para ser usada con un dispositivo de reproducción con un enlace de comunicación rápido, y en algunos casos que tienen capacidades de procesamiento rápidas y complejas. Un segundo conjunto de segmentos de contenido e información de fragmento se pueden generar en base a un dispositivo de reproducción que tiene un enlace de comunicación de velocidad de medio. Un tercer conjunto de segmentos de contenido e información de fragmento se puede generar en base a un dispositivo de reproducción que tiene un enlace de comunicación relativamente lento.
La FIG. 28 representa una representación de diagrama de bloques simplificado de un flujo de datos en la segmentación del contenido 2820 y 2822 según algunas realizaciones. En algunos casos, el contenido de vídeo 2820 se codifica en un archivo único, y de manera similar el contenido de audio 2822 se codifica en un archivo único. En el flujo de datos de la FIG. 28, el contenido de vídeo 2820 se descompone inicialmente en una pluralidad de segmentos de contenido de vídeo 2824 que tienen duraciones de reproducción que son fracciones de las duraciones de una duración de reproducción del contenido de vídeo 2820. El tamaño o duración de los segmentos de vídeo 2824 se puede dictar por una plantilla de fragmento o basar en parámetros de enlace de comunicación y/o reproducción.
Además, el tamaño y/o las duraciones de reproducción pueden variar entre segmentos. Por ejemplo, los segmentos iniciales pueden ser menores en tamaño y/o tener duraciones de reproducción más cortas, tales como aquéllas descritas anteriormente con referencia a las FIG. 20 y 21. De manera similar, el contenido de audio 2822 se descompone en una pluralidad de segmentos de audio 2826. Típicamente, los segmentos de audio 2826 corresponden con los segmentos de vídeo 2824. El tamaño y/o la duración de reproducción de los segmentos de audio 2826 puede depender del tamaño y/o la duración de reproducción de un segmento de vídeo correspondiente 2824 (se señala, no obstante, que el contenido de vídeo se puede segmentar alternativamente en base al tamaño y/o la duración de reproducción de segmentos de audio 2826).
Los segmentos de vídeo 2824 y segmentos de audio 2826 son entonces multiplexados a través de un multiplexor 2830 para crear segmentos de contenido de A/V multiplexado 2832. Los segmentos de contenido de A/V multiplexados 2832 se evalúan además para generar información de fragmento segmentada 2836 que corresponde a cada segmento de contenido de A/V multiplexado 2832. Anterior a ser reenviado a un dispositivo de reproducción, los segmentos de contenido de A/V 2832 son típicamente empaquetados con su información de fragmento segmentada correspondiente 2836, formateados y/o envueltos para transmisión a un dispositivo de reproducción. En algunas realizaciones, los archivos de información de fragmento se pueden empaquetar juntos ventajosamente, ya que tienen típicamente sólo unos pocos cientos de octetos de largo. Un formato comprimido, concatenación simple o similares se podrían usar. Un campo único entonces se podría descomponer aparte en el reproductor. Además, un único archivo puede mejorar la eficiencia de la transferencia de red.
La FIG. 29 representa un diagrama de bloques simplificado de un flujo de datos para generar segmentos de contenido a ser reenviados a un dispositivo de reproducción. En este flujo el contenido se segmenta según se captura. Este flujo de datos se puede emplear en algunas realizaciones con los procesos descritos anteriormente con referencia a las FIG. 25 y 26. Una secuencia de segmentos de vídeo 2922 de un evento, presentación, actuación o similares se genera y saca mediante un dispositivo de captura de vídeo (por ejemplo, el dispositivo 2522) según el dispositivo de captura de vídeo captura el contenido. De manera similar, una secuencia de segmentos de audio 2924 puede adicionalmente o alternativamente ser generada según un dispositivo de captura de audio captura el contenido de audio. Típicamente, el contenido capturado se codifica de manera que cada segmento de contenido de vídeo 2922 y cada segmento de contenido de audio 2924 son segmentos codificados. Cada segmento de vídeo 2922 se multiplexa mediante un multiplexor 2926 con su segmento de audio correspondiente 2924 para producir segmentos de contenido de A/V 2930. Cada segmento de contenido de A/V 2930 es además analizado y/o evaluado para generar información de fragmento 2932 para cada segmento de contenido de A/V 2930. Como resultado, los segmentos de contenido de A/V 2930 y la información de fragmento correspondiente 2932 se generan según se captura el contenido. Esta solicitud, en algunos casos, puede ser útil al menos con la captura de eventos que un distribuidor quiere distribuir anterior a la terminación o finalización del evento que es capturado o grabado.
La FIG. 30 representa un diagrama de flujo simplificado de un proceso 3020 de configuración y grabación de contenido en un medio de almacenamiento portátil 222 a ser utilizado con un dispositivo de reproducción 220 que se ajusta a una estructura de contenido de longitud fija para reproducir un contenido desde el medio de almacenamiento portátil junto con contenido suplementario accedido desde un medio de almacenamiento secundario, donde el contenido suplementario es desconocido en el momento que se configura el medio de almacenamiento portátil 222. En el paso 3022, se identifica el contenido a ser grabado en el medio de almacenamiento portátil. Esto puede incluir sustancialmente cualquier contenido, tal como pero no limitado a, contenido multimedia, datos textuales y/u otro contenido tal. En el paso 3024, los elementos del menú y otros controles de interfaz de usuario relevantes se seleccionan para ser incorporados en el medio 222. En el paso opcional 3026, se identifican datos y contenido auxiliares 138 (por ejemplo, datos de sonido, gráficos y similares) a ser incorporados en el medio 222. En el paso 3030 se selecciona una programación a ser incluida en el medio.
En el paso 3032, se identifica que el contenido suplementario a no ser grabado en un medio de almacenamiento portátil 222 va a ser asociado con el medio de almacenamiento portátil. En el paso 3034, se determina un flujo de presentación para el contenido, menús y similares a ser grabados en el medio y contenido suplementario. Esto incluye definir la ordenación de la reproducción de los archivos de contenido y/o contenido suplementario, cuándo y/o cómo se activan los menús, reacciones a comandos emitidos por el usuario, y otra coordinación tal. El proceso 3020 entonces continúa en el paso 3036 donde una lista de reproducción 122 se genera incorporando los archivos de la lista de reproducción 124 y los marcadores de posición 128.
En el paso 3040 se determina si van a ser generados directorios de lista de distribución adicionales y/o directorios de información de fragmento. Como se describió anteriormente, en algunos casos un medio 222 puede incluir múltiples listas de reproducción en base a diferentes características y/o capacidades del dispositivo de reproducción. En aquellos casos donde van a ser generados directorios de lista de reproducción adicionales y/o directorios de información de fragmento el proceso vuelve al paso 3022. Alternativamente, el proceso continúa en el paso 3042 donde una o más estructuras de archivo se definen y graban en el medio de almacenamiento portátil 222. Esto incluye establecer el directorio de lista de reproducción 122, el listado o directorio de información de fragmento 126 y el directorio de flujo 132, y grabar los archivos de lista de reproducción 124, marcadores de posición de contenido 128, archivos de información de fragmento 130, archivos de contenido 134 que corresponden a archivos de lista de reproducción 124, menús 136, programación 142 y similares en el medio. En algunas realizaciones, se puede implementar al menos en parte definiendo una imagen de medios.
Las presentes realizaciones, proporcionan métodos, sistemas, código, aplicaciones, software y estructuras de datos almacenados en medios legibles por ordenador que permiten que contenido suplementario de longitud variable no grabado en un medio de almacenamiento portátil sea reproducido a través de un dispositivo de reproducción en cooperación con el medio de almacenamiento portátil accedido por el dispositivo de reproducción que cumple con una estructura de longitud fija. En parte algunas realizaciones proporcionan esta reproducción de longitud variable definiendo una duración de reproducción en el medio para contenido suplementario, donde la duración definida es mayor que una duración real esperada de contenido suplementario potencial que, en el momento que el medio se configura puede ser desconocido y/o incluso no estar generado. Tras la reproducción posterior del contenido suplementario, el dispositivo de reproducción detecta una terminación real de la reproducción del contenido suplementario accedido para anular la duración designada en el medio 222 para terminar la reproducción relativa a un marcador de posición seleccionado 128 y devolver el control a una interfaz de usuario o reproducción continua adicional relativa a la lista de reproducción 122. En algunos casos, el medio de almacenamiento portátil 222 puede no incluir realmente el contenido a ser reproducido. En su lugar, el medio 222 puede simplemente ser un contenedor con una lista de reproducción para designar la reproducción de contenido suplementario, y con la programación 142 para proporcionar la cooperación y/o acomodación de contenido de longitud variable.
Los creadores y/o distribuidores de contenido, tales como estudios de cine y similares, puede distribuir medios de almacenamiento portátil con contenido multimedia grabado en los medios, mientras que permite la reproducción de contenido suplementario actual o actualizado dinámico en el momento de la reproducción relativo al medio distribuido. Además, el contenido suplementario no está restringido al contenido conocido o incluso disponible en el momento de generar y distribuir los medios. En su lugar, el contenido suplementario se puede crear después de que se distribuyen los medios. Adicionalmente, el contenido suplementario puede ser contenido en directo capturado durante la reproducción relativa al medio. De manera similar, la capacidad de proporcionar una reproducción con contenido de longitud variable, dinámico permite medios, por ejemplo discos de películas, que permiten que contenido suplementario, incluyendo en algunos casos contenido generado por el usuario, coopere con la reproducción de la película. De manera similar, los usuarios pueden interactuar durante la reproducción con contenido grabado en un medio, tal como reproducir un contenido generado por el usuario (por ejemplo, entregado como una imagen en imagen) en sincronización con contenido el rasgo de contenido de A/V grabado en el medio. En algunos casos, un flujo de contenido generado por el usuario se puede grabar y entonces se implementa un proceso de selección seleccionando una plantilla apropiada a ser usada en la codificación del contenido de usuario (por ejemplo, contenido de vídeo). El contenido de usuario se correlaciona además para ser usado en cooperación con el medio de almacenamiento 222.
Además, el propietario o distribuidor del contenido puede poner a disposición una película o parte de una película sobre Internet, por ejemplo, se puede usar un disco relativamente en blanco (es decir, relativamente poco contenido multimedia grabado en el disco) como un punto de inicio para acceder y adquirir el contenido de un estudio, a través del sitio web del estudio u otro del distribuidor autorizado. De manera similar, el propietario o distribuidor del contenido puede poner a disposición mejoras, rasgos especiales, contenido añadido y similares a los usuarios que tiene un medio de almacenamiento portátil particular, y/o usuarios que haya pagado los derechos para obtener acceso a las mejoras, los rasgos especiales, el contenido añadido y similares. Esto puede dotar a los propietarios y distribuidores de contenido con caminos adicionales para ingresos y/o marketing.
El medio de almacenamiento portátil se puede generar y distribuir sin conocer qué contenido suplementario real va a ser reproducido en asociación con el medio. Además, la capacidad de reproducir contenido de longitud no fija a través de un dispositivo de reproducción que se ajusta con una estructura de longitud fija permite a los usuarios participar en eventos albergados en directo. Por ejemplo, un estudio de cine puede albergar una sesión, en asociación con uno o más medios específicos, permitiendo a los usuarios participar y sincronizar sus dispositivos de reproducción a través de una conexión de red, donde la conexión de red suministra contenido suplementario y controla y sincroniza la reproducción de contenido desde el medio y el contenido suplementario. Como ejemplo adicional, un director puede proporcionar a los usuarios acceder a un sitio o sitios web particulares en directo en una gira guiada a través de una película. Durante esta gira del director, el contenido de medios en los dispositivos de reproducción de los usuarios se pueden reproducir en respuesta a instrucciones del director así como proporcionar reproducción de contenido suplementario desde el director, tal como comentarios de audio, vídeo adicional distribuido sobre Internet durante la presentación en directo y otro contenido suplementario tal. En algunas realizaciones, la distribución de comandos de control emitidos por el director se pueden retardar, o los comandos puede incluir temporización de manera que la reproducción en los dispositivos de los usuarios (incluyendo la reproducción de contenido en directo, que se recibirá en el dispositivo de reproducción con al menos algún retardo menor, como se describió en algunas realizaciones anteriores) mantiene una sincronización con el director.
El contenido suplementario puesto a disposición del usuario puede ser sustancialmente cualquier contenido y se puede generar en cualquier momento anterior a y/o durante la reproducción. El medio de almacenamiento portátil replicado puede contener información que permite a los dispositivos de reproducción atraer información desde una fuente o servidor remoto y ser utilizada por el dispositivo de reproducción, por ejemplo mientras que se implementa la programación grabada en el medio, para controlar una interfaz de usuario. Por ejemplo, la programación puede hacer al dispositivo de reproducción sondear un servidor para contenido y generar un listado, que puede estar en forma de una interfaz de usuario, de contenido y/o tipos de contenido (datos de texto, datos gráficos) designados por el servidor que están disponibles, donde el control se devuelve al usuario para hacer una selección. Alternativamente, el dispositivo de reproducción puede generar una interfaz de usuario de listado de contenido y/o tipos de contenido disponibles y entonces devuelve el control al usuario para hacer una selección. Se señala que la comunicación entre el dispositivo de reproducción y la fuente remota puede ser sustancialmente a través de cualquier método y/o protocolo de comunicación relevante. Por ejemplo, algunas realizaciones pueden proporcionar comunicación a ser conducida fuera de un formato de metadatos, tal como documentos XML, conjunto de esquemas
o reglas predefinidas de cómo ocurre esta comunicación.
Además en algunas realizaciones, el medio de almacenamiento portátil 222 puede ser un contenedor o armazón que cumple con estándares de longitud fija, pero no incluye ningún contenido o solamente una cantidad mínima de contenido, y en su lugar se usa como una clave o acceso a otro contenido suplementario recuperado desde un medio de almacenamiento separado (por ejemplo, recibido desde un dispositivo de almacenamiento remoto) que se reproduce a través del dispositivo de reproducción.
En algunos casos, el medio 222 proporciona un marcador de posición que se puede utilizar para reproducir sustancialmente cualquier contenido relevante. Además, una o más plantillas de fragmento predefinidas se pueden definir en el medio 222 o proporcionar al dispositivo de reproducción 322 anterior a activar la reproducción. Como resultado, sustancialmente cualquier contenido puede cooperar con ese medio siempre y cuando se formatee según una de las plantillas de fragmento definidas y la información de fragmento correspondiente. Hay tanto contenido en el mundo, que sería imposible descargar todas las informaciones de fragmento posibles de manera que sería local y referenciado por un dispositivo de reproducción. Algunas realizaciones presentes, no obstante, definen contenedores generales o plantillas de fragmento en los cuales se puede definir contenido de manera que el contenido pueda ser descargado según los contenedores definidos, e información de contenido específica generalmente no tiene que ser descargada.
Además, debido a que el dispositivo de reproducción tiene acceso al contenedor o la una o más plantillas de fragmento definidas y/o información de fragmento, los usuarios pueden tener acceso a contenido suplementario que no está disponible incluso en el momento que el dispositivo de reproducción se inicia. Por ejemplo, cuando el contenido de reproducción relativo a un disco que se ajusta a una estructura de longitud fija, e incluso después de que un dispositivo de reproducción se actualiza con contenido suplementario actualizado, una tercera parte puede grabar contenido suplementario adicional (por ejemplo, un comentario) a ser transcodificado y descargado en directo. Este contenido suplementario adicional se puede recibir y reproducir a través del dispositivo de reproducción sin requerir al dispositivo de reproducción ser apagado o reanudado, y en su lugar se puede acceder al contenido suplementario adicional y reproducir cuando el contenido suplementario adicional se formatee según una plantilla de fragmento y/o información de fragmento disponible en el dispositivo de reproducción.
Adicionalmente, las realizaciones presentes reducen los requerimientos de almacenamiento local para los dispositivos de reproducción 322 y/o medios de almacenamiento 222. Si hubiera un millar de fragmentos diferentes, un usuario tendría que descargar cada una de la información de fragmento para un millar de fragmentos. En su lugar, algunas realizaciones proporcionan la información o plantilla de fragmento genérica de manera que sustancialmente cualquier contenido pueda ser hecho conforme con la una o más informaciones de fragmento o plantillas predefinidas. Además, las plantillas o estructuras se definen no solamente en el momento fijo cuando se graban en el medio, sino que pueden ser puestas a disposición en una actualización.
Las realizaciones presentes proporcionan métodos, sistemas, procesos, aplicaciones, medios de almacenamiento portátiles que permiten la reproducción de contenido suplementario. Además, al menos algunas de estas realizaciones permiten la reproducción de contenido suplementario en cooperación con contenido grabado en un medio de almacenamiento portátil, y en algunos casos donde el contenido en el medio de almacenamiento portátil es leído solamente y sustancialmente fijo. Algunas de estas realizaciones proporcionan métodos para uso en el suministro de contenido suplementario a ser reproducido con un medio de almacenamiento portátil a través de un dispositivo de reproducción que se ajusta a una estructura de contenido de longitud fija. Adicionalmente o alternativamente, algunas realizaciones proporcionan métodos para uso en la generación de fragmentos de contenido suplementario a ser reproducidos, a través de un dispositivo de reproducción que se ajusta a una estructura de contenido de longitud fija, según un medio de almacenamiento portátil directamente accedido por el dispositivo de reproducción. Además, algunas realizaciones proporcionan métodos de suministro de reproducción de contenido en asociación con un medio de almacenamiento portátil.
En algunas realizaciones, los métodos proporcionan contenido suplementario a ser reproducido con un medio de almacenamiento portátil a través de un dispositivo de reproducción que se ajusta a la estructura de contenido de longitud fija. Estos métodos reciben una petición de contenido suplementario de un dispositivo de reproducción, identifican el contenido suplementario, determinan parámetros con respecto a al menos una o más capacidades del dispositivo de reproducción, seleccionan una serie de fragmentos de contenido suplementario de una pluralidad de series de fragmentos de contenido suplementario generados anterior a recibir la petición, donde la seleccionada de las series de fragmentos de contenido suplementario corresponde con el uno o más de los parámetros determinados relativos a las capacidades del dispositivo de reproducción, y reenvían fragmentos de contenido suplementario al dispositivo de reproducción solicitante. En algunos casos, determinar los parámetros comprende recibir una identificación de una plantilla de fragmento que dicta información de fragmento grabada en el medio de almacenamiento portátil, y seleccionar la serie de fragmentos de contenido suplementario comprende seleccionar la serie de fragmentos de contenido suplementario de manera que la seleccionada en la serie corresponde con la plantilla de fragmento identificada.
Adicionalmente o alternativamente, alguna realización proporciona métodos de generación de una plantilla de fragmento adaptada para ser usada en la segmentación de contenido suplementario no grabada en un medio de almacenamiento portátil y para ser reproducida a través de un dispositivo de reproducción en cooperación con un medio de almacenamiento portátil directamente accedido por el dispositivo de reproducción. Al menos algunos de estos métodos identifican parámetros del dispositivo de reproducción; determinan un tamaño de datos de fragmentos fijo relativo a los parámetros del dispositivo de reproducción identificados; determinan, basado al menos en parte en los parámetros del dispositivo de reproducción identificados, que un número de fragmentos tengan tamaños de datos que aumentan progresivamente en tamaño de datos con cada fragmento sucesivo, secuencial relativo a la secuencia de reproducción, de manera que cada fragmento sucesivo, secuencial tiene un tamaño de datos mayor que un tamaño de datos de un fragmento inmediatamente posterior; y definen una serie de una pluralidad de fragmentos de manera que una primera pluralidad de fragmentos secuenciales, relativa a la secuencia de reproducción, tiene tamaños de datos que aumentan sucesivamente y una segunda pluralidad de fragmentos secuenciales que siguen a la primera pluralidad de fragmentos, relativa a la secuencia de reproducción, tienen tamaños de datos como mucho iguales al tamaño de datos de fragmento fijo. En algunos casos, un tamaño de datos de un primer fragmento de la primera pluralidad de fragmentos relativa a la secuencia de reproducción tiene un tamaño de datos que es menor que los tamaños de datos de los fragmentos restantes de la primera pluralidad de fragmentos y es menor que el tamaño de datos fijo. Además, los métodos pueden adicionalmente determinar que el evento desencadenador va a ser definido relativo al segundo fragmento; identificar una tercera pluralidad de fragmentos secuenciales incluyendo el segundo fragmento; y definir tamaños de datos de cada fragmento de la tercera pluralidad de fragmentos para ser progresivamente más grandes, donde un tamaño de datos del segundo fragmento es menor que un tamaño de datos de un fragmento inmediatamente posterior relativo a la secuencia de reproducción. En algunos casos, el evento desencadenador es un desencadenador para cambiar capítulos relativos al contenido configurado según la plantilla de fragmento definida. Adicionalmente, la identificación de los parámetros puede comprender identificar una tasa de datos; e identificar un tamaño de almacenador temporal anticipado de un dispositivo de reproducción, de manera que el tamaño de datos fijo y un tamaño de datos del primer fragmento de la primera pluralidad de fragmentos secuenciales son dependientes de la tasa de datos y del tamaño de almacenador temporal anticipado.
Algunas realizaciones adicionalmente o alternativamente proporcionan una o más estructuras de datos grabadas en un medio legible por ordenador que dicta el formateado de contenido multimedia según se formatea el contenido multimedia. La una o más estructuras de datos pueden incluir una pluralidad de fragmentos; un desencadenador de eventos designados asociado con un primer fragmento de la pluralidad de fragmentos; el primer fragmento asociado con el desencadenador de eventos que tiene un tamaño de datos que es menor que un fragmento inmediatamente precedente, relativo a una secuencia de reproducción; y una primera pluralidad de fragmentos secuenciales inmediatamente posteriores al primer fragmento, relativo a una secuencia de reproducción, que tienen tamaños de datos que son progresivamente más grandes. En algunos casos, puede incluir una segunda pluralidad de fragmentos secuenciales inmediatamente posteriores a la primera pluralidad de fragmentos secuenciales, relativa a una secuencia de reproducción, que tienen tamaños de datos que son sustancialmente constantes. Además, el tamaño de datos de la segunda pluralidad de fragmentos puede ser igual que un tamaño de datos de un segundo fragmento de la primera pluralidad de fragmentos, donde el segundo fragmento inmediatamente precede, relativo a una secuencia de reproducción, a la segunda pluralidad de fragmentos.
Adicionalmente, algunas realizaciones proporcionan métodos de reproducción de contenido en cooperación a través de un dispositivo de reproducción que cumple con una estructura de contenido de longitud fija. Estos métodos pueden detectar acceso al medio; acceder a una lista de reproducción grabada en un medio de almacenamiento portátil; iniciar la reproducción del contenido relativo al medio de almacenamiento portátil; detectar a un marcador de posición especificado en la lista de reproducción; identificar el acceso a una fuente distinta del medio de almacenamiento portátil para el contenido suplementario asociado con el marcador de posición detectado; acceder a la fuente; recibir contenido suplementario después del inicio de la reproducción, donde el contenido suplementario tiene una duración de reproducción que es menor que la duración de reproducción designada en la lista de reproducción y asociada con el marcador de posición identificado; iniciar la reproducción del contenido suplementario; detectar que la reproducción del contenido suplementario se ha completado; anular la duración de reproducción designada en la lista de reproducción y asociada con el marcador de posición; y devolver el control de la reproducción relativa a la lista de reproducción. En algunos casos, acceder a la lista de reproducción comprende: identificar parámetros de reproducción de al menos un dispositivo de reproducción accediendo directamente al medio de almacenamiento portátil; detectar que hay múltiples listas de reproducción que se definen en el medio de almacenamiento portátil; y seleccionar la lista de reproducción de la pluralidad de listas de reproducción en base a los parámetros de reproducción identificados. Además, algunas realizaciones requieren detalles del contenido suplementario desde la fuente; y reciben metadatos exclusivamente asociados con el contenido suplementario que en parte define una duración de reproducción real del contenido suplementario que es menor que la duración de reproducción designada en la lista de reproducción y asociada con el marcador de posición identificado. Adicionalmente, algunas realizaciones reciben metadatos exclusivamente asociados con el contenido suplementario; y detectan un comando dentro de los metadatos para parar la reproducción relativa al contenido suplementario que indica la terminación de la reproducción del contenido suplementario.
Los métodos de suministro de reproducción de contenido en asociación con un medio de almacenamiento portátil se proporcionan según algunas realizaciones. Estos métodos comprenden: acceder, mediante un dispositivo de reproducción configurado para cumplir con una estructura de contenido de longitud fija, una primera lista de reproducción de una estructura de archivo almacenada en un medio de almacenamiento portátil directamente accedido por el dispositivo de reproducción; iniciar la reproducción de contenido relativo al medio de almacenamiento portátil; detectar un marcador de posición definido dentro de la primera lista de reproducción relativa a acceder al contenido suplementario que no está almacenado en el medio de almacenamiento portátil que tiene una primera duración de reproducción; recuperar información de fragmento grabada en el medio de almacenamiento portátil para el marcador de posición y extraer una segunda duración de reproducción designada en la información de fragmento para el marcador de posición donde la segunda duración de reproducción es mayor que la primera duración de reproducción; recuperar al menos una parte del contenido suplementario después de la reproducción de inicio del contenido relativo al medio de almacenamiento portátil; iniciar la reproducción de al menos la parte de contenido suplementario; detectar la terminación de la reproducción del contenido suplementario; terminar la reproducción del contenido suplementario; y devolver el control de reproducción relativo a la primera reproducción. Estos métodos pueden, en algunos casos, adicionalmente recuperar metadatos exclusivamente asociados con el contenido suplementario, donde los metadatos definen la primera duración de reproducción del contenido suplementario; la detección de la terminación de la reproducción del contenido suplementario puede comprender detectar, durante la reproducción del contenido suplementario, que la primera duración de reproducción se ha alcanzado; y anular la segunda duración de reproducción en respuesta a detectar que la primera duración de reproducción se ha alcanzado. Además, algunas realizaciones acceden al medio de almacenamiento portátil, identificando que una pluralidad de listas de reproducción se definen en el medio de almacenamiento portátil; identificar al menos parámetros del dispositivo de reproducción; y seleccionar la primera lista de reproducción de la pluralidad de listas de reproducción donde la primera lista de reproducción corresponde con los parámetros de dispositivo de reproducción identificados, e implementar el acceso a la lista de reproducción en respuesta a la selección de lista de reproducción. En algunos casos, la reproducción de inicio de al menos la parte del contenido suplementario comprende la reproducción de inicio de al menos la parte del contenido suplementario según se recibe el contenido suplementario.
Adicionalmente, algunas realizaciones proporcionan métodos de distribución de medios de almacenamiento portátil que se configuran para ajustarse a una estructura de contenido de longitud fija. Estos métodos pueden comprender: generar una lista de reproducción; grabar la lista de reproducción en un medio de almacenamiento portátil; y grabar contenido en el medio de almacenamiento portátil asociado con la lista de reproducción; en donde la generación de la lista de reproducción comprende: incorporar uno o más indicadores de contenido a la lista de reproducción; identificar archivos de contenido de manera que cada indicador de contenido corresponde con uno de los archivos de contenido; incorporar uno o más marcadores de posición que indican contenido suplementario no grabado en el medio de almacenamiento portátil y accedido desde una fuente secundaria en el momento de reproducción, de manera que el contenido suplementario va a ser reproducido en relación al medio de almacenamiento portátil; e incorporar información de fragmento para cada archivo de contenido y el uno o más marcadores de posición, donde la información de fragmento para el uno o más marcadores de posición designa una duración de reproducción que es mayor que el contenido suplementario esperado a ser reproducido en cooperación con el medio de almacenamiento portátil.
Aún realizaciones adicionales proporcionan métodos de suministro de contenido suplementario a ser reproducido a través de un dispositivo de reproducción relativo al medio de almacenamiento portátil directamente accedido por el dispositivo de reproducción. Estos métodos pueden recibir, de más de una red de comunicación distribuida, una petición de contenido suplementario; identificar el contenido suplementario; determinar si el contenido suplementario va a ser difundido de forma continua sobre la red de comunicación distribuida al dispositivo de reproducción; identificar, en respuesta a determinar que el contenido suplementario no va a ser difundido de forma continua, una plantilla de fragmento predefinida definida anterior a la recepción de la petición; descomponer el contenido suplementario en fragmentos del contenido suplementario según la plantilla de fragmento predefinida identificada; y transferir sobre la red de comunicación distribuida los fragmentos de contenido suplementario que se ajustan a la plantilla de fragmento seleccionada. En algunos casos, la descomposición del contenido suplementario en fragmentos comprende incorporar datos nulos a uno o más de los fragmentos de contenido suplementario de
manera que el contenido suplementario dentro de los fragmentos cumpla con la colocación dentro de los respectivos fragmentos. Adicionalmente estos métodos pueden emitir un comando de parada de medios al dispositivo de reproducción de manera que el dispositivo de reproducción termina la reproducción relativa al contenido suplementario y devuelve el control al dispositivo de reproducción relativo a la lista de reproducción grabada en un 5 medio de almacenamiento portátil directamente accedido por el dispositivo de reproducción, donde la lista de reproducción da instrucciones al dispositivo de reproducción para obtener el contenido suplementario. Además, la lista de reproducción, grabada en el medio de almacenamiento portátil anterior a la recepción de la petición, puede adicionalmente comprender información de fragmento que designa una duración de reproducción relativa al contenido suplementario, y la emisión del comando de parada de medios comprende emitir el comando de parada
10 de medios anterior a la reproducción en el dispositivo de reproducción alcanzando la duración de reproducción especificada en la información de fragmento relativa al contenido suplementario.
Mientras que la invención descrita en la presente memoria se ha descrito por medio de realizaciones específicas y aplicaciones de la misma, se podrían hacer numerosas modificaciones y variaciones a la misma por aquellos expertos en la técnica sin apartarse del alcance de la invención expuesta en las reivindicaciones.

Claims (10)

  1. REIVINDICACIONES
    1. Un método para uso en el suministro de contenido suplementario a ser reproducido con un medio de almacenamiento portátil a través de un dispositivo de reproducción que se ajusta a una estructura de contenido de longitud fija, el método que comprende:
    recibir, sobre una red, una petición de contenido suplementario desde un dispositivo de reproducción;
    identificar el contenido suplementario;
    recuperar el contenido suplementario;
    acceder a una plantilla de fragmento predefinida definida anterior a recibir la petición, en donde la plantilla de fragmento define múltiples fragmentos, y en donde una primera pluralidad de fragmentos de los múltiples fragmentos están definidos para generar fragmentos del contenido suplementario que aumenta progresivamente en tamaño;
    procesar el contenido suplementario y generar una pluralidad de fragmentos de contenido suplementario según la plantilla de fragmento, de manera que la pluralidad de fragmentos de contenido suplementario tienen una longitud de reproducción que es una fracción de una longitud de reproducción del contenido suplementario; y
    reenviar la pluralidad de fragmentos de contenido suplementario al dispositivo de reproducción solicitante.
  2. 2.
    El método como se relata en la reivindicación 1 en donde la recuperación del contenido suplementario comprende recuperar el contenido suplementario según se genera.
  3. 3.
    El método de la reivindicación 2, en donde la recuperación del contenido suplementario según se genera comprende recuperar contenido multimedia desde un dispositivo de captura según el dispositivo de captura captura y graba un evento en directo con una duración de reproducción desconocida.
  4. 4.
    El método de la reivindicación 1, en donde el acceso a una plantilla predefinida comprende: determinar parámetros con respecto a al menos una o más capacidades del dispositivo de reproducción; y seleccionar la plantilla de fragmento predefinida a partir de una pluralidad de plantillas de fragmento predefinidas
    definidas anterior a recibir la petición.
  5. 5.
    El método de la reivindicación 4, en donde la plantilla de fragmento predefinida se define anterior al contenido que se graba en el medio de almacenamiento portátil.
  6. 6.
    El método de la reivindicación 1, en donde el acceso de una plantilla predefinida comprende:
    recibir una identificación de información de fragmento grabada en el medio de almacenamiento portátil accedida por el dispositivo de reproducción; y
    seleccionar la plantilla de fragmento predefinida a partir de una pluralidad de plantillas de fragmento predefinidas, definidas anterior a recibir la petición, en base a la información de fragmento.
  7. 7.
    El método de la reivindicación 6, en donde la plantilla de fragmento predefinida corresponde directamente con la información de fragmento grabada en el medio de almacenamiento portátil.
  8. 8.
    El método de la reivindicación 1, en donde la generación de los fragmentos de contenido suplementario comprende incorporar datos nulos en una pluralidad de los fragmentos de contenido suplementario de manera que los fragmentos de contenido suplementario cumplan con la plantilla de fragmento seleccionada.
  9. 9.
    El método de la reivindicación 8, que además comprende:
    comprimir el contenido suplementario que comprende eliminar paquetes de datos nulos incorporados en los fragmentos de contenido suplementario anterior a reenviar la pluralidad de fragmentos de contenido suplementario al dispositivo de reproducción solicitante.
  10. 10.
    El método de la reivindicación 1, en donde la generación de los fragmentos de contenido suplementario comprende incorporar datos de relleno en una pluralidad de los fragmentos de contenido suplementario de manera que los fragmentos de contenido suplementario cumplan con la información de fragmento grabada en el medio de almacenamiento portátil y asociada con el contenido suplementario.
ES09759522T 2008-06-06 2009-06-05 Reproducción de contenido suplementario de longitud variable en un reproductor multimedia de contenido de longitud fija Active ES2426714T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US5961308P 2008-06-06 2008-06-06
US59613P 2008-06-06
PCT/US2009/046433 WO2009149364A2 (en) 2008-06-06 2009-06-05 Methods and systems for use in providing playback of variable length content in a fixed length framework

Publications (1)

Publication Number Publication Date
ES2426714T3 true ES2426714T3 (es) 2013-10-24

Family

ID=41398898

Family Applications (1)

Application Number Title Priority Date Filing Date
ES09759522T Active ES2426714T3 (es) 2008-06-06 2009-06-05 Reproducción de contenido suplementario de longitud variable en un reproductor multimedia de contenido de longitud fija

Country Status (7)

Country Link
US (1) US8842967B2 (es)
EP (1) EP2294575B1 (es)
JP (1) JP5594673B2 (es)
AU (1) AU2009256066B2 (es)
CA (1) CA2727020C (es)
ES (1) ES2426714T3 (es)
WO (1) WO2009149364A2 (es)

Families Citing this family (74)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7519274B2 (en) 2003-12-08 2009-04-14 Divx, Inc. File format for multiple track digital data
US8472792B2 (en) 2003-12-08 2013-06-25 Divx, Llc Multimedia distribution system
WO2007106844A2 (en) 2006-03-14 2007-09-20 Divx, Inc. Federated digital rights management scheme including trusted systems
ES2709208T3 (es) 2007-01-05 2019-04-15 Sonic Ip Inc Sistema de distribución de vídeo que incluye reproducción progresiva
EP2140651B1 (fr) * 2007-03-30 2018-10-24 Orange Procede de gestion d'une pluralite de sessions audiovisuelles dans un reseau ip et systeme de commande associe
JP5513400B2 (ja) 2007-11-16 2014-06-04 ソニック アイピー, インコーポレイテッド マルチメディアファイルのための階層的で簡略なインデックス構造体
AU2009256066B2 (en) 2008-06-06 2012-05-17 Deluxe Media Inc. Methods and systems for use in providing playback of variable length content in a fixed length framework
US8644675B2 (en) 2008-06-06 2014-02-04 Deluxe Digital Studios, Inc. Methods and systems for use in providing playback of variable length content in a fixed length framework
US9009337B2 (en) * 2008-12-22 2015-04-14 Netflix, Inc. On-device multiplexing of streaming media content
US20100246666A1 (en) * 2008-12-30 2010-09-30 Mozaik Multimedia, Inc. Bluflex: flexible, true, live video streaming on blu-ray platforms
US9324375B1 (en) * 2009-03-13 2016-04-26 Tata Communications (America) Inc. Dynamically adjusting stream quality level
US8302143B2 (en) 2009-04-09 2012-10-30 At&T Intellectual Property I, L.P. Watermarked media content in IPTV or iTV networks
US20100260020A1 (en) * 2009-04-14 2010-10-14 Sony Corporation Information processing apparatus, information processing system, information processing method, and program
EP2507995A4 (en) 2009-12-04 2014-07-09 Sonic Ip Inc SYSTEMS AND METHODS FOR TRANSPORTING ELEMENTARY BIT TRAIN CRYPTOGRAPHIC MATERIAL
US8914603B2 (en) * 2010-07-30 2014-12-16 Motorola Mobility Llc System and method for synching Portable Media Player content with storage space optimization
WO2012094539A2 (en) * 2011-01-05 2012-07-12 Related Content Databases, Inc. System and method for streaming content to blu-ray devices
US9247312B2 (en) 2011-01-05 2016-01-26 Sonic Ip, Inc. Systems and methods for encoding source media in matroska container files for adaptive bitrate streaming using hypertext transfer protocol
US8943514B2 (en) * 2011-04-30 2015-01-27 Samsung Electronics Co., Ltd. Middle partners
US8491384B2 (en) 2011-04-30 2013-07-23 Samsung Electronics Co., Ltd. Multi-user discovery
US9762967B2 (en) 2011-06-14 2017-09-12 Comcast Cable Communications, Llc System and method for presenting content with time based metadata
US8812662B2 (en) 2011-06-29 2014-08-19 Sonic Ip, Inc. Systems and methods for estimating available bandwidth and performing initial stream selection when streaming content
EP2718815A1 (en) * 2011-08-19 2014-04-16 Hitachi, Ltd. Storage apparatus and duplicate data detection method
WO2013033458A2 (en) 2011-08-30 2013-03-07 Divx, Llc Systems and methods for encoding and streaming video encoded using a plurality of maximum bitrate levels
US9467708B2 (en) 2011-08-30 2016-10-11 Sonic Ip, Inc. Selection of resolutions for seamless resolution switching of multimedia content
US8799647B2 (en) 2011-08-31 2014-08-05 Sonic Ip, Inc. Systems and methods for application identification
US8787570B2 (en) 2011-08-31 2014-07-22 Sonic Ip, Inc. Systems and methods for automatically genenrating top level index files
US8909922B2 (en) 2011-09-01 2014-12-09 Sonic Ip, Inc. Systems and methods for playing back alternative streams of protected content protected using common cryptographic information
US8964977B2 (en) 2011-09-01 2015-02-24 Sonic Ip, Inc. Systems and methods for saving encoded media streamed using adaptive bitrate streaming
DE102011088502B3 (de) * 2011-12-14 2013-05-08 Siemens Aktiengesellschaft Verfahren und Vorrichtung zur Absicherung von Blockchiffren gegen Template-Attacken
US8918908B2 (en) 2012-01-06 2014-12-23 Sonic Ip, Inc. Systems and methods for accessing digital content using electronic tickets and ticket tokens
US20130262693A1 (en) * 2012-04-02 2013-10-03 Chris Phillips Methods and apparatus for segmenting, distributing, and resegmenting adaptive rate content streams
US9118425B2 (en) * 2012-05-31 2015-08-25 Magnum Semiconductor, Inc. Transport stream multiplexers and methods for providing packets on a transport stream
US9936267B2 (en) 2012-08-31 2018-04-03 Divx Cf Holdings Llc System and method for decreasing an initial buffering period of an adaptive streaming system
KR102023582B1 (ko) * 2012-10-11 2019-11-04 삼성전자주식회사 무선 통신 시스템에서 청크 기반 스케줄링 방법 및 장치
US9124672B2 (en) * 2012-11-08 2015-09-01 Morega Systems, Inc Adaptive video server with data rate control and methods for use therewith
US9313510B2 (en) 2012-12-31 2016-04-12 Sonic Ip, Inc. Use of objective quality measures of streamed content to reduce streaming bandwidth
US9191457B2 (en) 2012-12-31 2015-11-17 Sonic Ip, Inc. Systems, methods, and media for controlling delivery of content
US10360139B2 (en) * 2013-03-12 2019-07-23 Entit Software Llc Identifying transport-level encoded payloads
US9906785B2 (en) 2013-03-15 2018-02-27 Sonic Ip, Inc. Systems, methods, and media for transcoding video data according to encoding parameters indicated by received metadata
US10397292B2 (en) 2013-03-15 2019-08-27 Divx, Llc Systems, methods, and media for delivery of content
US9094737B2 (en) 2013-05-30 2015-07-28 Sonic Ip, Inc. Network video streaming with trick play based on separate trick play files
US9380099B2 (en) 2013-05-31 2016-06-28 Sonic Ip, Inc. Synchronizing multiple over the top streaming clients
US9100687B2 (en) 2013-05-31 2015-08-04 Sonic Ip, Inc. Playback synchronization across playback devices
US20150172347A1 (en) * 2013-12-18 2015-06-18 Johannes P. Schmidt Presentation of content based on playlists
US9386067B2 (en) 2013-12-30 2016-07-05 Sonic Ip, Inc. Systems and methods for playing adaptive bitrate streaming content by multicast
US9866878B2 (en) 2014-04-05 2018-01-09 Sonic Ip, Inc. Systems and methods for encoding and playing back video at different frame rates using enhancement layers
US9866884B2 (en) * 2014-04-10 2018-01-09 Verizon Patent And Licensing Inc. Social television system
KR20170030490A (ko) * 2014-07-07 2017-03-17 소니 주식회사 수신 장치, 수신 방법, 송신 장치, 및 송신 방법
US9762937B2 (en) 2014-08-07 2017-09-12 Sonic Ip, Inc. Systems and methods for protecting elementary bitstreams incorporating independently encoded tiles
WO2016049566A1 (en) * 2014-09-25 2016-03-31 Audience, Inc. Latency reduction
US9270563B1 (en) 2014-11-24 2016-02-23 Roku, Inc. Apparatus and method for content playback utilizing crowd sourced statistics
EP3243130B1 (en) 2015-01-06 2019-08-14 Sonic IP, Inc. Systems and methods for encoding and sharing content between devices
US10804958B2 (en) * 2015-02-24 2020-10-13 Comcast Cable Communications, Llc Multi-bitrate video with dynamic blocks
CN107251008B (zh) 2015-02-27 2020-11-13 帝威视有限公司 在实况视频编码和流传输中进行帧复制和帧扩展的***和方法
US9788026B2 (en) 2015-08-25 2017-10-10 Imagine Communications Corp. Converting adaptive bitrate chunks to a streaming format
US9973785B1 (en) * 2015-12-28 2018-05-15 Amazon Technologies, Inc. Automatic failover for live video streaming
US10063422B1 (en) * 2015-12-29 2018-08-28 Amazon Technologies, Inc. Controlled bandwidth expansion in compressed disaggregated storage systems
US10075292B2 (en) 2016-03-30 2018-09-11 Divx, Llc Systems and methods for quick start-up of playback
US10231001B2 (en) 2016-05-24 2019-03-12 Divx, Llc Systems and methods for providing audio content during trick-play playback
US10129574B2 (en) 2016-05-24 2018-11-13 Divx, Llc Systems and methods for providing variable speeds in a trick-play mode
US10148989B2 (en) 2016-06-15 2018-12-04 Divx, Llc Systems and methods for encoding video content
US10826876B1 (en) * 2016-12-22 2020-11-03 Amazon Technologies, Inc. Obscuring network traffic characteristics
US10498795B2 (en) 2017-02-17 2019-12-03 Divx, Llc Systems and methods for adaptive switching between multiple content delivery networks during adaptive bitrate streaming
US10015549B1 (en) * 2017-05-24 2018-07-03 Hulu, LLC Real-time generation of manifest list of links for video segments in linear video communication
US10652166B2 (en) * 2017-06-27 2020-05-12 Cisco Technology, Inc. Non-real time adaptive bitrate recording scheduler
JP2019041182A (ja) * 2017-08-23 2019-03-14 株式会社東芝 無線通信装置および無線通信方法
US10733225B1 (en) * 2017-09-06 2020-08-04 Snap Inc. Scaled delivery of media content
CN108391171B (zh) * 2018-02-27 2022-06-24 京东方科技集团股份有限公司 视频播放的控制方法及装置、终端
EP3942437B1 (en) 2019-03-21 2024-01-10 DivX, LLC Systems and methods for multimedia swarms
US11153642B2 (en) 2019-05-28 2021-10-19 Rovi Guides, Inc. Systems and methods for generating a playback timeline
US10863242B1 (en) * 2019-05-28 2020-12-08 Rovi Guides, Inc. Systems and methods for generating a playback timeline
US11367466B2 (en) * 2019-10-04 2022-06-21 Udo, LLC Non-intrusive digital content editing and analytics system
US11657095B1 (en) * 2020-03-31 2023-05-23 Amazon Technologies, Inc. Supplemental content placement for natural language interfaces
US11812084B2 (en) * 2020-03-31 2023-11-07 Northwest Instrument Inc. Method and device for content recording and streaming

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010013123A1 (en) 1991-11-25 2001-08-09 Freeman Michael J. Customized program creation by splicing server based video, audio, or graphical segments
JP3901298B2 (ja) * 1997-09-19 2007-04-04 株式会社日立製作所 複数メディアのデータ同期再生装置
KR100910972B1 (ko) * 2002-12-07 2009-08-05 엘지전자 주식회사 대화형 광디스크 장치에서의 재생 제어방법
ES2488096T3 (es) * 2000-10-11 2014-08-26 United Video Properties, Inc. Sistemas y métodos para complementar multimedia a la carta
US7310353B1 (en) * 2000-10-30 2007-12-18 Yair Bourlas Compression of overhead in layered data communication links
JP2002342218A (ja) * 2001-05-16 2002-11-29 Nippon Telegr & Teleph Corp <Ntt> コンテンツ提供方法及びシステム
US8504652B2 (en) 2006-04-10 2013-08-06 Portulim Foundation Llc Method and system for selectively supplying media content to a user and media storage device for use therein
US7171402B1 (en) * 2002-10-02 2007-01-30 Sony Computer Entertainment America Inc. Dynamic interactive content system
CN1871589A (zh) * 2003-10-03 2006-11-29 杰出网络公司 多内容下载
CN1957609B (zh) * 2005-02-18 2010-06-23 松下电器产业株式会社 数据处理方法
CN101120590B (zh) * 2005-02-18 2010-10-13 皇家飞利浦电子股份有限公司 现场提交数字信号的方法
US20080092164A1 (en) * 2006-09-27 2008-04-17 Anjana Agarwal Providing a supplemental content service for communication networks
KR101125286B1 (ko) * 2007-03-27 2012-03-21 삼성전자주식회사 부가 데이터 업데이트 방법 및 재생 장치
US20080274687A1 (en) * 2007-05-02 2008-11-06 Roberts Dale T Dynamic mixed media package
AU2009256066B2 (en) 2008-06-06 2012-05-17 Deluxe Media Inc. Methods and systems for use in providing playback of variable length content in a fixed length framework
US8644675B2 (en) 2008-06-06 2014-02-04 Deluxe Digital Studios, Inc. Methods and systems for use in providing playback of variable length content in a fixed length framework
WO2011070734A1 (ja) * 2009-12-07 2011-06-16 パナソニック株式会社 フォーマット変換サーバー、再生装置及び情報再生システム

Also Published As

Publication number Publication date
US20100142915A1 (en) 2010-06-10
AU2009256066A1 (en) 2009-12-10
US8842967B2 (en) 2014-09-23
EP2294575A4 (en) 2011-09-21
CA2727020C (en) 2013-02-19
JP2011523756A (ja) 2011-08-18
WO2009149364A3 (en) 2010-03-11
EP2294575B1 (en) 2013-08-07
AU2009256066B2 (en) 2012-05-17
EP2294575A2 (en) 2011-03-16
JP5594673B2 (ja) 2014-09-24
CA2727020A1 (en) 2009-12-10
WO2009149364A2 (en) 2009-12-10

Similar Documents

Publication Publication Date Title
ES2426714T3 (es) Reproducción de contenido suplementario de longitud variable en un reproductor multimedia de contenido de longitud fija
US8644675B2 (en) Methods and systems for use in providing playback of variable length content in a fixed length framework
US11647071B2 (en) Method and apparatus for transmitting and receiving content
JP2011523756A5 (es)
US11683542B2 (en) Systems and methods for distributing content using a common set of encryption keys
KR101920439B1 (ko) 공용 인터페이스를 통해 수신 제한 모듈로 암호화된 데이터를 전송하기 위한 데이터 전송 장치 및 그에 적용되는 방법, 수신 제한 모듈 그리고 시스템.
US20140075582A1 (en) Method for playing digital contents protected with a drm (digital rights management) scheme and corresponding system
EP2705457A2 (en) Method for playing digital contents protected with a drm (digital right management) scheme and corresponding system
US10284529B2 (en) Information processing apparatus and information processing method
WO2015105037A1 (ja) ファイル生成方法、ファイル生成装置および記録媒体
CA2798533C (en) Methods and systems for use in providing playback of variable length content in a fixed length framework
CA2798530C (en) Methods and systems for use in providing playback of variable length content in a fixed length framework
TW200534719A (en) Method and circuit for encrypting a data stream