ES2392461T3 - Gestión de archivo contenedor de medios - Google Patents
Gestión de archivo contenedor de medios Download PDFInfo
- Publication number
- ES2392461T3 ES2392461T3 ES07701090T ES07701090T ES2392461T3 ES 2392461 T3 ES2392461 T3 ES 2392461T3 ES 07701090 T ES07701090 T ES 07701090T ES 07701090 T ES07701090 T ES 07701090T ES 2392461 T3 ES2392461 T3 ES 2392461T3
- Authority
- ES
- Spain
- Prior art keywords
- media
- fec
- file
- data
- source block
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1812—Hybrid protocols; Hybrid automatic repeat request [HARQ]
- H04L1/1819—Hybrid protocols; Hybrid automatic repeat request [HARQ] with retransmission of additional or different redundancy
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0078—Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location
- H04L1/0084—Formats for payload data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/70—Media network packetisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/65—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience
- H04N19/66—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience involving data partitioning, i.e. separation of data into packets or partitions according to importance
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/65—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience
- H04N19/67—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience involving unequal error protection [UEP], i.e. providing protection according to the importance of the data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/238—Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
- H04N21/2381—Adapting the multiplex stream to a specific network, e.g. an Internet Protocol [IP] network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/254—Management at additional data server, e.g. shopping server, rights management server
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/262—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
- H04N21/26208—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
- H04N21/26216—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints involving the channel capacity, e.g. network bandwidth
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/61—Network physical structure; Signal processing
- H04N21/6106—Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
- H04N21/6131—Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving transmission via a mobile phone network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/61—Network physical structure; Signal processing
- H04N21/6156—Network physical structure; Signal processing specially adapted to the upstream path of the transmission network
- H04N21/6181—Network physical structure; Signal processing specially adapted to the upstream path of the transmission network involving transmission via a mobile phone network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/637—Control signals issued by the client directed to the server or network components
- H04N21/6375—Control signals issued by the client directed to the server or network components for requesting retransmission, e.g. of data packets lost or corrupted during transmission from server
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/637—Control signals issued by the client directed to the server or network components
- H04N21/6377—Control signals issued by the client directed to the server or network components directed to server
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/64—Addressing
- H04N21/6405—Multicasting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/643—Communication protocols
- H04N21/64315—DVB-H
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/65—Transmission of management data between client and server
- H04N21/658—Transmission by the client directed to the server
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/854—Content authoring
- H04N21/85406—Content authoring involving a specific file format, e.g. MP4 format
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1863—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast comprising mechanisms for improved reliability, e.g. status reports
- H04L12/1877—Measures taken prior to transmission
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Automatic Tape Cassette Changers (AREA)
- Retry When Errors Occur (AREA)
- Television Signal Processing For Recording (AREA)
Abstract
Un método para generar un archivo contenedor de medios (1), dicho método comprende los pasos de:proporcionar al menos un bloque fuente de medios (20; 22; 24) que comprende datos de medios;organizar dicho al menos un bloque fuente de medios (20; 22; 24) en dicho archivo contenedor de medios (1);organizar la información de partición calculada previamente (30; 32; 34) en dicho archivo contenedor de medios(1), en el que la información de partición es descriptiva de la partición calculada previamente para cada uno dedicho al menos un bloque fuente de medios (20; 22; 24) en un número de símbolos fuente en base a la informaciónde un algoritmo de Corrección de Errores sin canal de retorno, FEC, a ser aplicado al bloque fuente respectivo (20;22; 24) yorganizar, en dicho archivo contenedor de medios (1), los metadatos (40) que proporcionan una asociación entredicho al menos un bloque fuente de medios (20; 22; 24) y dicha información de partición (30; 32; 34),caracterizado por:organizar instrucciones de cálculo FEC calculadas previamente (50; 52; 54) en dicho archivo contenedor demedios (1), en el que las instrucciones de cálculo FEC calculadas previamente definen el cálculo de datos deredundancia FEC (70) en base a dichos metadatos (40), dicho al menos un bloque fuente de medios (20; 22; 24)y dicha información de partición (30; 32; 34) para el bloque fuente de medios respectivo (20; 22; 24);generar a una primera pista de sugerencia un primer conjunto de instrucciones de compilación (50) que definenla compilación de datos de medios de cada uno de dicho al menos un bloque fuente de medios (20; 22; 24) ydichos datos de redundancia FEC (70) para formar una primera secuencia de medios (80) de paquetes de datos(81, 82, 83, 84) que tienen un primer nivel de sobrecarga de redundancia FEC;generar a una segunda pista de sugerencia la cual es diferente de la primera pista de sugerencia un segundoconjunto de instrucciones de compilación (52), el cual es diferente del primer conjunto de instrucciones decompilación (50) que define la compilación de datos de medios de cada uno de dicho al menos un bloque fuentede medios y datos de redundancia FEC (70) para formar una segunda secuencia de medios (90) de paquetes dedatos (91, 92, 93, 94) que tiene un segundo nivel de sobrecarga de redundancia FEC, la cual es diferente delprimer nivel de sobrecarga de redundancia FEC; yorganizar dicha primera pista de sugerencia y segunda pista de sugerencia en dicho archivo contenedor demedios (1).
Description
Gestión de archivo contenedor de medios.
La presente invención se refiere de manera general a gestión de medios y multimedia, y en particular a la creación y uso de archivos contenedores de medios que contienen tal contenido de medios y multimedia.
El suministro de medios y multimedia a un cliente sobre diferentes redes ha aumentado tremendamente los últimos años. Hoy en día, Internet se emplea por numerosos usuarios para acceder y descargar medios, por ejemplo, en forma de secuencias o archivos de vídeo y audio, a partir de servidores de medios. Este suministro de medios también ha emergido en redes de comunicaciones móviles basadas en radio. Hay actualmente un interés muy grande en usar redes móviles para contenido multimedia o de TV. Esto a menudo se conoce como TV Móvil en la técnica. Este suministro de medios en las redes móviles está disponible hoy en día principalmente a través de transporte unidifusión. No obstante, por el momento, los métodos de entrega de radiodifusión/multidifusión para TV Móvil están bajo desarrollo. Ejemplos de tales esfuerzos de estandarización son los Servicios de Radiodifusión/Multidifusión Multimedia del 3GPP (MBMS) y Radiodifusión de Vídeo Digital-De Mano (DVB-H) del Instituto de Estándares de Telecomunicaciones (ETSI).
En línea con esta demanda creciente de suministro de medios en diferentes redes de comunicaciones cableadas e inalámbricas, hay trabajo en curso en el desarrollo de servidores de difusión en forma continua y descarga disponibles en redes inalámbricas para proporcionar contenido de medios para clientes que lo requieran. Hay una tendencia general hacia servidores de difusión en forma continua/descarga transparente y flexible, que implica que los servidores deberían constar básicamente de una multitud de módulos o programas “estándar” que realizan diferentes funciones de gestión de medios. El contenido de medios de entrada para estas funciones entonces se proporciona junto con instrucciones de cómo los módulos/programas deberían procesar el contenido. Esto proporcionará un suministro de medios más flexible comparado con el uso de procesamiento de medios fijo, predefinido en los servidores.
De esta manera hay una necesidad de un formato de contenedor de medios que se puede usar en línea con la tendencia de tener servidores de difusión en forma continua/descarga transparente y flexible.
El documento “VM de la Enmienda 2 a la 14496-12:2005 de pistas de sugerencia de FLUTE de la ISO/IEC en el formato de archivo de medios de base ISO” propone la introducción de casillas relacionadas con las pistas de sugerencia de FLUTE a ser añadidas en el formato archivos de medios de base ISO como una enmienda. En tal caso, FLUTE se puede usar para la transmisión de partes estáticas de medios sobre conexiones multidifusión/radiodifusión, mientras que RTP se usa para la transmisión de medios en tiempo real.
El documento “FLUTE para descargar MBMS,” borrador del 3GPP, S4-030772 de la Reunión de TSG-SA4#29 del 3GPP el 24-28 de noviembre de 2003, Tampere, Finlandia proporciona una introducción a FLUTE que es adecuada para el transporte de anuncios de servicio MBMS y descarga de medios.
El documento WO 2004/036760 A1 trata con el cálculo previo de datos FEC para soportar protección adaptativa de soporte que usa múltiples pistas de sugerencia.
La presente invención supera estas y otras desventajas de las adaptaciones de la técnica anterior.
Es un objeto general de la presente invención proporcionar un archivo contenedor de medios que se puede usar en sesiones multimedia.
Este y otros objetos se cumplen por la invención como se define por las reivindicaciones de patente anexas.
Brevemente, la presente invención implica la generación y uso de un archivo contenedor de medios y a dispositivos para generar y usar tal archivo contenedor.
La generación de un archivo contenedor de medios implica proporcionar al menos un archivo fuente de medios que comprende datos de medios y multimedia a ser transmitidos a clientes que los requieren y presentados a los clientes. Este archivo contenedor se considera como que consta de uno o más bloques fuente de medios, dependiendo del tamaño del archivo contenedor. Al menos uno de tal bloque fuente de medios se procesa de acuerdo con la presente invención dividiendo el bloque fuente en símbolos fuente o partes que tienen un tamaño que las permiten ser procesadas por un códec FEC para el propósito de calcular datos o símbolos de redundancia FEC basados en el bloque fuente. La información de una partición de bloque seleccionado para usar el bloque fuente de medios se genera y almacena en el archivo contenedor junto con el contenido de medios real del bloque fuente. Los metadatos se proporcionan e incluyen en el archivo contenedor para proporcionar una asociación entre un bloque fuente de medios y su información de partición.
El archivo contenedor resultante se puede emplear por un servidor de medios durante una sesión de medios para calcular, usando la información de partición en el archivo contenedor, datos FEC y para compilar paquetes de datos que comprenden datos de medios a partir del archivo y los datos FEC calculados. El procesamiento previo del bloque fuente de medios en términos de dividirlos en base a diferentes algoritmos FEC y generar información FEC incluida en el archivo contenedor de la invención permite al servidor de medios, de una manera barata computacionalmente simple, calcular los datos FEC e insertar los datos de medios y los datos FEC en paquetes de datos transmitidos a clientes que los solicitan sin procesamiento de datos extensivo y particiones de bloques demandantes computacionalmente.
En una realización preferente, el archivo contenedor también comprende instrucciones que se usan y se siguen por el servidor de medios cuando se calculan los datos FEC y cuando se compilan paquetes de datos que contienen datos FEC y de medios a partir del archivo contenedor. En tal caso, el archivo contenedor comprende todo el contenido de medios e instrucciones requeridas para ser capaz con éxito de reenviar los datos de medios de una manera fiable a los clientes.
La invención junto con otros objetos y ventajas de la misma, se pueden entender mejor haciendo referencia a la siguiente descripción tomada junto con los dibujos anexos, en los cuales:
La Fig. 1 es un diagrama de flujo que ilustra un método para generar un archivo contenedor de medios de acuerdo con un aspecto de la presente invención;
La Fig. 2 es un diagrama de flujo que ilustra el bloque de medios que proporciona el paso de la Fig. 1 en más detalle;
La Fig. 3 es un diagrama de flujo que ilustra pasos adicionales del método de generación de archivos de la Fig. 1;
La Fig. 4 es una vista general esquemática de un archivo contenedor de medios de acuerdo con otro aspecto de la presente invención;
La Fig. 5 es un diagrama de flujo que ilustra un método de gestión de sesiones de medios de acuerdo con un aspecto adicional de la presente invención;
La Fig. 6 es un diagrama de flujo que ilustra pasos adicionales del método de gestión de sesiones de la Fig. 5;
La Fig. 7 es un diagrama de flujo que ilustra pasos adicionales del método de gestión de sesiones de la Fig. 5;
La Fig. 8 es una ilustración esquemática que muestra la compilación de diferentes secuencias de medios que emplean un archivo contenedor de medios de acuerdo con la presente invención;
La Fig. 9 es un vista general de una red de comunicaciones y que incluye un servidor de medios que maneja un archivo contenedor de medios de acuerdo con la presente invención;
La Fig. 10 es un diagrama de bloques esquemático de un servidor de contenidos de acuerdo aún con otro aspecto de la presente invención;
La Fig. 11 es un diagrama de bloques esquemático que ilustra una realización del proveedor de bloques de medios de la Fig. 10 en más detalle;
La Fig. 12 es un diagrama de bloques esquemático que ilustra una realización del creador de archivos contenedores de la Fig. 10 en más detalle; y
La Fig. 13 es un diagrama de bloques esquemático de un servidor de sesiones de medios de acuerdo aún con otro aspecto de la presente invención.
Descripción detallada
En todos los dibujos, los mismos caracteres de referencia se usarán para elementos correspondientes o similares. La presente invención se refiere de manera general a una gestión de datos de medios y multimedia y en particular a la creación y utilización de archivos contenedores en conexión con servidores de medios, tales como servidores de difusión en forma continua o descarga, en una red de comunicaciones basada en radio. Estos archivos contenedores de medios de la invención comprenden el contenido de medios para transmitir al(a los) cliente(s) que lo solicitan y las instrucciones usadas para realizar el procesamiento de medios y la transmisión en los servidores de medios. De acuerdo con la invención, el contenido de medios se ha procesado previamente y está presente en una forma que permite la gestión eficiente por un servidor de medios durante una sesión de medios. En un aspecto particular de la invención, el contenido de medios original se ha procesado previamente para simplificar, en el servidor de medios, el suministro de protección de fiabilidad a la sesión de medios. De esta manera, el contenido esta en un formato que permite el cálculo de los datos de protección de fiabilidad del contenido de medios que se pueden usar en la sesión de medios para aumentar las oportunidades de entrega con éxito a los clientes solicitantes.
De acuerdo con una realización preferente de la invención, el procesamiento previo del contenido de medios se realiza y adapta para el cálculo, en el servidor de medios, de los datos de redundancia de corrección de errores sin canal de retorno (FEC) a ser incluidos en la secuencia de medios transmitida.
Como se conoce en la técnica, la FEC implica añadir datos redundantes a los datos de carga útil transmitidos, lo cual permite a un receptor detectar y corregir errores sin la necesidad de solicitar al remitente datos adicionales. La ventaja de la FEC es que la retransmisión de datos a menudo puede ser ignorada, aunque a costa de mayores requisitos de ancho de banda de media. De esta manera, la FEC ventajosamente se puede usar en conexión con entrega de contenido de medios basado en multidifusión/radiodifusión, donde las retransmisiones serán difíciles de implementar.
La FEC se consuma añadiendo redundancia a la información a ser transmitida usando un algoritmo o esquema seleccionado, típicamente designado códec FEC en la técnica. Cada tal bit redundante es invariablemente una función compleja de mucha información original o bits de carga útil. Un códec FEC que incluye la entrada sin modificar en la salida es designado como un códec sistemático. En otras palabras un códec FEC sistemático (N,K) preserva la fuente K o símbolos de carga útil y adjunta (N-K) símbolos FEC. De la misma manera, un código FEC (N,K) no sistemático crea N símbolos (FEC o fuente) a partir de K símbolos fuente sin preservar necesariamente todos ellos.
Hay dos categorías principales de códec FEC: códec bloque y códec convolucionales. Los códec bloque FEC trabajan en bloques de tamaño fijo (paquetes) de bits o símbolos de tamaño predeterminado, mientras los códec convolucionales trabajan en secuencias de bits o símbolos de longitud arbitraria. El código Raptor de Digital Fountains es un códec de bloque FEC que es capaz de crear un número arbitrario de símbolos de redundancia FEC de un único bloque fuente. Esta es una propiedad ventajosa de este códec FEC dado que esta significa que diferentes configuraciones de sobrecarga de protección no requieren un cambio en la construcción del bloque fuente. Reed-Solomon es otro códec de bloque FEC que, no obstante, requiere un cambio en la partición de bloque fuente para diferentes tamaños de sobrecarga de protección. Otros ejemplos de códec bloque FEC incluyen Golay, BCH (Bose, Ray-Chaudhuri, Hocquenghem) y Hamming. Un códec FEC preferente a usar en conexión con la presente invención es el código Raptor de Digital.
De acuerdo con la invención actual, datos o contenido de medios o multimedia se refiere a cualquier dato que puede ser proporcionado por un proveedor o servidor de contenidos a un cliente para la reproducción de los datos. Ejemplos típicos preferentes incluyen datos de vídeo y datos de audio. Los datos pueden estar en forma de una versión de contenido vídeo o audio de tasa fija, pre-codificado o en forma de un contenido audio o vídeo escalable. Otros ejemplos de medios incluyen imágenes fijas (JPEG), gráficos de asignación de bits (GIF y PNG), gráficos vectoriales (SVG), y audio sintético (SP-MIDI) y texto (XHTML y SMIL).
La Fig. 1 es un diagrama de flujo de un método para generar un archivo contenedor de medios de acuerdo con la presente invención. Este archivo contenedor de medios se puede considerar como un paquete de entrada completo que se usa por un servidor de medios durante una sesión de medios para proporcionar un contenido de medios y formar datos de medios en paquetes de datos transmisibles. De esta manera, el archivo contenedor comprende preferentemente, además del contenido de medios por sí mismo, información e instrucciones requeridas por el servidor de medios para realizar el procesamiento y permitir la transmisión del contenido de medios durante una sesión de medios.
El método empieza en el paso S1 donde se proporciona al menos un bloque fuente de medios. El al menos único bloque fuente de medios comprende los datos o símbolos de medios que se pretende que sean enviados a un cliente, donde son reproducidos para presentar contenido de medios a un usuario. Los bloques de medios pueden ser de un tamaño fijo, igual o al menos una parte del mismo, si hay más de uno, pueden ser de diferentes tamaños de bit/símbolo. Si se proporcionan más de dos bloques fuente de medios en el paso S1, se pueden considerar como bloques de medios separados de un mismo archivo o secuencia de contenido de medios, por ejemplo una secuencia de vídeo, y/o de diferentes archivos o secuencias de medios, por ejemplo unos pocos bloques fuente de medios de una secuencia de vídeo y unos pocos bloques de medios de una secuencia de audio asociada correspondiente.
En este paso S1, se puede proporcionar contenido de medios asociado. Por ejemplo, si el contenido de medios incluye un vídeo musical, al menos un bloque de medios proporcionado preferentemente comprende los datos de vídeo y al menos un bloque de medios contiende los datos de audio correspondientes. No obstante se anticipa mediante la presente invención que uno y el mismo contenido de medios se puede proporcionar en múltiples versiones de medios potenciales. Por ejemplo, la parte vídeo del vídeo musical se puede proporcionar en múltiples versiones de vídeo codificadas previamente, donde cada una de tal versión de vídeo se adapta para uso en conexión con un ancho de banda dado o nivel o intervalo de tasa de bit. Múltiples versiones de un contenido de medios dado se puede proporcionar por lo tanto en el paso S1. En tal caso, cada una de tal versión de medios se puede considerar como que consta de uno o más bloques de fuente de medios. Aunque múltiples versiones de medios se pueden proporcionar y organizar en el archivo contenedor, típicamente solamente se usa una de tales versiones en un momento dado durante la sesión de medios, aunque puede haber una conmutación entre las versiones de medios durante la sesión en base a, por ejemplo, cambios en niveles de ancho de banda disponibles.
En un siguiente paso S2, el bloque fuente de medios proporcionado es parte en símbolos fuente o llamados trozos. Estos símbolos generalmente constan de un número de cientos de octetos. Esta partición de bloque se realiza al menos parcialmente en base a información del códec/algoritmo FEC a ser usado, por un servidor de medios, para calcular símbolos FEC para el bloque fuente de medios actual. Como fue mencionado anteriormente, los códec FEC basados en Reed-Solomon requieren un cambio en la partición de bloque fuente en base al tamaño de sobrecarga de protección deseado, es decir el número de símbolo FEC de redundancia. De esta manera, el códec o algoritmo FEC real y/o la sobrecarga de protección FEC podría afectar a la partición de la fuente de medios y los tamaños de símbolo de medios. También otros parámetros tales como el tamaño de los paquetes de datos, tales como los paquetes de Protocolo de Datagramas de Usuario (UDP), usados por un servidor de medios para transmitir el contenido de medios se pueden usar en esta partición de bloque fuente del paso S2. En tal caso, el tamaño de los símbolos de fuente podría estar limitado de manera que al menos un símbolo de fuente completo se pueda ajustar dentro de un paquete UDP.
Este paso S2 de partición no implica necesariamente que el bloque fuente de medios esté físicamente dividido en símbolos fuente separados que se almacenan en ubicaciones separadas en el archivo contenedor. En claro contraste, en las implementaciones más prácticas, el archivo fuente multimedia se almacena como una secuencia de datos continua en el archivo contenedor pero se considera como o virtualmente divide en bloques fuente de medios, a su vez virtualmente particionados en símbolos fuente.
En un siguiente paso S3, se genera la información de la partición. Esta información básicamente especifica qué partes de la secuencia de datos pertenecen a qué símbolo fuente del bloque fuente de medios. La información de partición se puede organizar en una tabla que especifica que el bit X al bit Y del bloque fuente de medios Z constituye un símbolo fuente. Alternativamente, la información puede incluir el tamaño en octetos de cada símbolo fuente. Entonces, sabiendo la posición inicial de un bloque fuente de medios en un archivo de medios, es posible determinar qué partes de datos pertenecen a los diferentes símbolos fuente.
Se anticipa por la presente invención que un bloque fuente de medios dado se puede dividir de acuerdo a al menos dos operaciones de partición diferentes. Por ejemplo, un primer bloque de partición tal se podría adaptar a un primer algoritmo FEC, mientras una segunda partición se emplea adaptada a un segundo algoritmo FEC. Adicionalmente, la partición del bloque también puede ser dependiente de la sobrecarga FEC deseado real en el servidor de medios. En tal caso, diferentes particiones de bloques diseñadas para diferentes sobrecargas FEC se podrían determinar en la creación del archivo. La información de partición entonces comprende información de estas alternativas de partición aplicables a un bloque fuente de medios dado.
El bloque de medios divididos y la información de partición generada están organizados en el archivo contenedor de medios en el paso S4. De esta manera, el contenido de medios y la información se insertan como partes del archivo contenedor. Adicionalmente, el al menos un bloque de medios organizado en el archivo contenedor preferentemente comprende colectivamente todos los datos de contenido de medios que van a ser transmitidos a un cliente durante una sesión de medios. En otras palabras, el archivo contenedor contiene los datos de medios para una presentación multimedia entera.
Un siguiente paso S5 proporciona metadatos a ser incluidos en el archivo contenedor. Estos metadatos proporcionan una asociación entre el bloque fuente de medios añadido al archivo contenedor en el paso S4 y la partición almacenada en el archivo en el paso S4. Esta asociación puede ser en forma de un puntero desde la posición de almacenamiento del bloque fuente de medios dentro del archivo y a la posición de almacenamiento de la información de partición, o viceversa. Estos metadatos por lo tanto permiten, dado el bloque fuente de medios particular o su posición dentro del archivo contenedor, la identificación de la información de posicionamiento asociada o la posición de almacenamiento de esta información dentro del archivo. En lugar de emplear un puntero, los metadatos pueden incluir un identificador del bloque fuente de medios y/o la información asociada, en el caso de que éstos estén almacenados en posiciones predefinidas, “estándar” o “por defecto” en el archivo contenedor. Los metadatos entonces se usan para identificar uno del bloque fuente de medios y la partición en el archivo y se basan en esta posición identificada distinta del bloque fuente de medios y se puede identificar la información.
En una implementación típica de la invención, se proporcionan bloques fuente de medios múltiples en el paso S1. En tal caso, los pasos S2 a S5 preferentemente se repiten para cada bloque fuente de medios tal o al menos para múltiples grupos de bloques fuente de medios, lo cual se ilustra esquemáticamente por la línea L1. De esta manera, si N bloques fuente de medios se organizan en el archivo contenedor en el paso S1, los pasos S2 a S5 preferentemente se repiten N veces, implicando también organizar N versiones de información de partición y metadatos en el archivo contenedor junto a los bloques fuente.
El método entonces termina.
Como fue mencionado en lo anterior, un objetivo de la presente invención es proporcionar un archivo contenedor de medios que, además de los datos de medios reales, también comprenda información de partición dependiente de la FEC a ser usada cuando se calculan datos FEC. Esto significa que la división archivo a bloque fuente y la partición de bloques se hacen “fuera de línea” e independiente del proceso de transmisión de medios real en un servidor de medios. Este procesamiento previo simplifica las tareas del servidor y reduce los requisitos de rendimiento y complejidad del servidor. Además, el archivo contenedor también comprende preferentemente información e instrucciones requeridas por un servidor de medios para identificar y componer datos de medios y datos FEC calculados en una secuencia de medios que se pueden transmitir a clientes que los requieran. De esta manera, el archivo contenedor se puede considerar por lo tanto como un paquete de datos completo, información e instrucción que se pueden usar por servidores transparentes y flexibles para compilación de datos y transmisión.
La generación del archivo contenedor descrita anteriormente en conexión con la Fig. 1 es preferentemente conducida a un creador o servidor de contenidos que tiene acceso a fuentes de contenido de medios internas o externas. El archivo contenedor generado entonces se puede representar en un medio de almacenamiento tal como una memoria de ordenador, o en una señal física tal como una señal eléctrica o una señal radio, por ejemplo, para transferir dentro de un sistema local o para transmisión sobre una red local o global. En una realización típica, el archivo contenedor se proporciona como una señal radio a un servidor de medios para uso en una sesión de medios con diferentes clientes.
A continuación, el término archivo contenedor de medios se usará en toda la revelación con un significado que incluye tanto archivos de datos para almacenamiento en un medio de almacenamiento como señales para transferencia o distribución.
La Fig. 2 es un diagrama de flujo que ilustra pasos adicionales del método de generación del archivo contenedor de la Fig.1. El método comienza en el paso S10 en que se proporciona al menos un archivo fuente de medios. En esta realización ilustrativa, el contenido de medios está disponible en el creador de archivo contenedor en forma de archivos o secuencias fuente que contienen los datos de medios. En este paso S10, uno o más archivos fuente de medios se pueden proporcionar para inclusión dentro de un archivo contenedor. Por ejemplo, un primer archivo de medios puede contener datos vídeo, mientras que un segundo archivo asociado contiene datos audio. Para permitir el cálculo eficiente de datos de redundancia FEC en el servidor de medios y, más tarde, el uso de tales datos FEC, el(los) archivo(s) fuente de medios proporcionado(s) en el paso S10 se divide(n) en un número de bloques de medios en un siguiente paso S11. Este bloque fuente de medios entonces se puede considerar como un segmento del archivo fuente de medios, al cual se puede aplicar u operar un código FEC. El tamaño de los bloques de medios en términos de símbolos fuente de bits de datos se puede predefinir o seleccionar en conexión con la división. En el primer caso, el tamaño se podría definir por el esquema o código FEC pretendido a ser empleado para el cálculo de datos de redundancia FEC. De esta manera, el códec o algoritmo FEC real y/o la sobrecarga de protección FEC requerido podría afectar la división de archivo de medios y los tamaños del bloque de medios.
En el caso de que el archivo fuente de medios de entrada tenga un tamaño de bit o símbolo que sea más pequeño que el tamaño máximo que se puede manejar eficazmente por un códec FEC, ninguna división de ese archivo fuente en bloques fuente de medios es motivo necesario y el paso S11 se puede omitir. El archivo fuente de medios de entrada entonces se considera como un bloque fuente de medios de acuerdo a la invención.
Se tiene que señalar que incluso aunque hay un tamaño de bloque preferente, no todos los bloques fuente de medios generados a partir de un archivo fuente de medios necesitan ser de ese tamaño preferente. Por ejemplo, el último bloque fuente de medios podría ser de un tamaño más pequeño comparado con los otros bloques equidimensionados dado que la parte restante del archivo de medios no contiene datos de medios suficientes para alcanzar el tamaño de bloque preferente.
El paso de división S11 no implica necesariamente que el archivo fuente de medios esté dividido físicamente en bloques fuente de medios separados que se almacenan en posiciones separadas en el archivo contenedor. En claro contraste, en la mayoría de las implementaciones prácticas, el archivo fuente de medios se almacena como una secuencia de datos continua en el archivo contenedor pero se considera como o divide virtualmente en bloques fuente de medios. Por ejemplo, un archivo fuente de medios que contiene 2N símbolos fuente se puede dividir de manera que el símbolo fuente [0, N-1] pertenece al primer bloque fuente y el símbolo [N, 2N-1] pertenece al segundo bloque fuente.
En un siguiente paso S12, se proporciona información del archivo fuente de medios particular. Esta información puede ser de relevancia para el servidor de medios, cuando va a proporcionar secuencias de paquetes de datos de medios y/o calcular datos FEC.
El método entonces continúa al paso S2 de la Fig. 1, donde el(los) bloque(s) fuente de medios está(n) divididos en bloques fuente de medios.
La Fig. 3 es un diagrama de flujo que ilustra pasos adicionales del método de generación del archivo contenedor de la Fig. 1. El método continúa desde el paso S5 de la Fig. 1. En un siguiente paso S20, se proporciona información del algoritmo FEC del esquema, en base a la cual fue calculada la partición de bloque. Esta información puede estar en forma del nombre del algoritmo particular o alguna otra información descriptiva. En un planteamiento alternativo, cada algoritmo FEC disponible tiene un identificador predefinido. De esta manera, solamente este identificador FEC entonces se puede proporcionar en el paso S20. En una implementación típica, se ha empleado información de un códec FEC único para dividir todos los bloques fuente de medios de un archivo fuente de medios. No obstante, realmente podría ser posible usar diferente información de códec FEC cuando se dividen para diferentes bloques fuente de medios de un archivo fuente de medios dado o para bloques fuente de medios de diferentes archivos fuente. La información FEC por lo tanto podría especificar que todos los bloques en el archivo contenedor se han dividido para permitir el cálculo de símbolos FEC con un códec FEC único o identificar qué bloque fuente o grupo de bloques fuente para los cuales se han usado diferentes códec FEC. En este contexto, es posible realmente dividir un bloque fuente dado en base a diferentes códec FEC objetivo potenciales y/o sobrecargas FEC. En tal caso, la información de estos diferentes códec FEC se proporciona preferentemente en el paso S20.
En un siguiente paso S21, se proporciona preferentemente una tabla de propiedades. Esta tabla de propiedades es útil en particular si se incluye más de un/una archivo/secuencia fuente de medios en el archivo contenedor pero también se puede usar ventajosamente cuando solamente contiene un archivo fuente de medios único. La tabla de propiedades de archivo típicamente contiene información del tipo de medios de los archivos fuente de medios, preferentemente el tipo de Extensiones de Correo de Internet Multipropósito (MIME) del medio. De esta manera, esta información MIME podría especificar que los medios son medios de audio, medios de video o algún otro tipo de medios, incluyendo Lenguaje de Integración de Medios Sincronizado (SMIL). Este tipo MIME proporciona información al servidor de medios de qué tipo de datos están incluidos realmente en el archivo contenedor. La tabla de propiedades también puede incluir información de cualquier esquema de codificación empleado en los datos de medios, incluyendo gzip. También se puede incluir información de tamaño en la tabla de propiedades. Esta información de tamaño podría expresar el tamaño total de cada archivo fuente de medios en términos de número de octetos o símbolos, los respectivos tamaños de los bloques fuente de medios del(de los) archivo(s) fuente (básicamente correspondientes a la información de división proporcionada en el paso S12 de la Fig. 2), el tamaño de la carga útil máximo u objetivo para paquetes de datos a ser usado cuando se transmiten datos, el tamaño (en octetos) de un símbolo fuente de medios (básicamente correspondiente a la información de partición generada en el paso S3 de la Fig. 1) y/o símbolo FEC, etc. Un nombre de archivo o identificador de archivo se incluye preferentemente en la tabla de propiedades para cada archivo fuente de medios incluido en el archivo contenedor.
La información de la ubicación de almacenamiento real de cada archivo fuente de medios en el archivo contenedor se encuentra preferentemente en la tabla de propiedades. Esta información de ubicación podría especificar la posición de comienzo del primer bloque fuente de medios de ese archivo fuente y después los bloques de medios restantes se encuentran a continuación a esta posición en el archivo contenedor. Los metadatos generados en el paso S5 de la Fig. 1 y que proporcionan un asociado entre bloques fuente de medios e información de partición en el archivo contenedor también se puede incluir en la tabla de propiedades. De la misma manera, la información de la partición del bloque empleado y el códec FEC previsto para el cálculo de datos de redundancia se incluye preferentemente en la tabla.
La tabla de propiedades del archivo contenedor se podría usar por lo tanto como una fuente de información única para que una fuente de medios localice un archivo/bloque fuente de medios relevante y otra información útil en la compilación de paquetes de medios durante una sesión de medios.
Las instrucciones de cálculo FEC se generan en un paso siguiente S22. Estas instrucciones se usan por un servidor de medios para calcular los datos FEC para los bloques fuente de medios en base a los metadatos y los datos de partición de aquellos bloques fuente. De esta manera, estas instrucciones podrían ser consideradas como sugerencias o metadatos que proporcionan instrucciones de cómo símbolos fuente de medios de bloques fuente diferentes se introducen a un códec FEC, preferentemente definidas en base a la información FEC, para generar símbolos FEC a ser usados junto con el contenido de medios en una sesión de medios para proporcionar protección de fiabilidad. Las instrucciones se usan preferentemente junto con la información de partición y los metadatos (que permiten la identificación de la información de partición) para calcular un depósito de símbolos FEC para al menos uno de los bloques fuente de medios.
En una implementación preferente, la instrucción de cálculo FEC define el cálculo de un conjunto de símbolos de redundancia FEC para el al menos un bloque fuente de medios. Este conjunto de símbolos FEC podría incluir uno pero preferentemente múltiples símbolos FEC calculados en base a los símbolos fuente del bloque fuente de medios.
Las instrucciones de cálculo FEC podrían incluir múltiples instrucciones alternativas para un bloque fuente de medios dado. Por ejemplo, una primera instrucción FEC alternativa se emplea cuando un primer códec FEC va a ser usado para el cálculo de datos FEC como se determina en base a la información de algoritmo FEC. De la misma manera, una segunda instrucción FEC alternativa define el cálculo de datos FEC con un segundo códec FEC. Alternativamente, o además, las instrucciones FEC alternativas se podrían adaptar a diferentes sobrecargas FEC y por ello básicamente especificar el cálculo de diferente número de símbolos FEC dependiendo de la máxima (o mínima) sobrecarga FEC permitida.
Un siguiente paso S23 genera la compilación de instrucciones para uso por un servidor de medios. Estas instrucciones se usan para definir la compilación de datos de medios desde los bloques fuente de medios y los datos de redundancia FEC calculados en base a la(s) instrucción(es) de cálculo FEC para formar una secuencia de medios de paquetes de datos. De esta manera, estas instrucciones se podrían considerar como sugerencias o metadatos que proporcionan instrucciones de cómo usar los datos incluidos en el archivo contenedor y calculados de allí para componer una secuencia de paquetes de medios transmisible que tiene protección de fiabilidad. Estas instrucciones se usan por lo tanto para compilar datos de medios y datos FEC juntos en paquetes adecuados para transmisión a clientes que los requieran durante una sesión de medios. Las instrucciones por lo tanto describirán el orden de transmisión en el lado del servidor de los datos fuente de medios y datos FEC.
Señalar sin embargo que las instrucciones típicamente no incluyen información de planificación de tiempo, información de direcciones objetivo/fuente o puertos u otra información de sesión específica. Esto significa que el archivo contenedor y las instrucciones de compilación allí dentro son transparentes a la sesión particular y realmente se pueden usar por un servidor de medios para sesiones diferentes múltiples con diferentes clientes de recepción pero también mediante servidores de medios diferentes.
Las instrucciones de compilación podrían aplicarse a un subconjunto de bloques fuente de medios, que implican que múltiples de tales instrucciones tienen que ser leídas y usadas por un servidor de medios durante una sesión. Alternativamente, una instrucción de compilación comprende toda la información requerida para un archivo fuente de medios único o verdaderamente para todos los archivos fuente de medios en el archivo contenedor.
Más de un conjunto de instrucciones de compilación se pueden generar realmente en el paso S23. En tal caso, diferentes instrucciones alternativas se podrían proporcionar, de manera que un servidor de medios tenga una opción para determinar qué conjunto de instrucciones particulares emplear para una sesión de medios particular. Por ejemplo, una primera instrucción de compilación se podría usar para describir el orden de transmisión de los bloques fuente de medios y datos FEC cuando se emplea un único canal de transmisión para la transmisión de datos. Una segunda instrucción se podría aplicar a los mismos bloques fuente de medios y datos FEC pero proporciona información de orden de compilación y transmisión si están disponibles múltiples canales, que implica que los datos se pueden transmitir en paralelo en lugar de secuencialmente. De esta manera, las diversas instrucciones de compilación se pueden usar para proporcionar sesiones de transmisión alternativas previstas para diferentes condiciones de canal de transporte.
De una manera similar, se pueden incluir instrucciones de compilación alternativas para diferentes sobrecargas de protección de fiabilidad. Por ejemplo, una primera instrucción de compilación se usa para describir el orden de compilación y transmisión de bloques fuente de medios y datos FEC para un primer nivel de sobrecarga de protección máximo, mientras que una segunda instrucción se usa por los mismos bloques fuente de medios pero con un segundo nivel de sobrecarga FEC diferente. Si este segundo nivel de sobrecarga FEC es mayor (menor) que el primer nivel, se pueden añadir más símbolos FEC o símbolos de paridad como también son denotados en la técnica a una cantidad dada de símbolos fuente de medios.
Un siguiente paso S24 organiza la información, tabla e instrucciones proporcionadas y generadas en los pasos previos S20 a S23 y preferentemente el paso S12 de la Fig. 2 en el archivo contenedor. El archivo contenedor entonces contendrá el conjunto completo de datos de medios, información, instrucciones y metadatos “brutos” requeridos por un servidor de medios para identificar, calcular y componer datos para transmisión a cliente(s) que los requieren. El método entonces termina.
La Fig. 4 es una vista general esquemática de un archivo contenedor de medios 1 de acuerdo con la presente
invención. Como se ha descrito anteriormente, el archivo contenedor 1 contiene datos de medios de un número de archivos fuente de medios 10, 12, 14, M de tales archivos se ilustran en la figura, donde M : 1. Los datos de medios de cada archivo se consideran como divididos en un número de bloques fuente de medios 20, 22, 24. En la figura Q1 de tales bloques 20, 22, 24 se han ilustrado por el primer archivo fuente de medios 10, donde Q1 : 1. Cada uno de tales bloques fuente de medios 20, 22, 24 es a su vez considerado como que está dividido en símbolos fuente.
Además de los bloques fuente de medios 20, 22, 24 con datos de medios, el archivo contenedor 1 comprende conjuntos de información de partición 30, 32, 34 que contienen información generada previamente de las particiones de símbolos fuente que se han aplicado a los bloques fuente de medios 20, 22, 24 con el propósito de facilitar el cálculo de datos de redundancia FEC a ser usados en conexión con los datos de medios para proporcionar protección de fiabilidad. En una implementación preferente, cada bloque fuente de medios comprende un conjunto de información de partición dedicada 30, 32, 34. En tal caso, el número N de conjuntos de información 30, 32, 34 en
M
la figura M es: N =LQi .
i=1
Los metadatos de asociación 40 de la invención que proporciona una asociación entre la información de partición 30, 32, 34 y el(los) bloque(s) fuente de medios 20, 22, 24 al cual la información de partición 30, 32, 34 es aplicable también se proporciona en el archivo contenedor 1. La Fig. 4 ilustra múltiples localizaciones posibles diferentes de estos metadatos 40 en el archivo 1. En una primera realización, los metadatos se almacenan en conexión con el(los) bloque(s) fuente de medios asociados 20, 22, 24. De esta manera, la identificación de un bloque fuente de medios 20, 22, 24 en el archivo también permite identificación de los metadatos 40 respectivos de ese bloque fuente 20, 22, 24. Alternativamente, o además, los metadatos 40 se almacenan junto con la información de partición respectiva 30, 32, 34. De esta manera, cada conjunto de información 30, 32, 34 tiene unos metadatos 40 de asociación conectados que permiten la identificación del(de los) bloque(s) fuente de medios relevantes 20, 22, 24 para el que aplica la información de partición particular 30, 32, 34. Si el archivo contenedor 1 comprende una tabla de propiedades de archivo preferente 60, los metadatos de asociación 40 se podrían proporcionar allí dentro. En tal caso, un servidor de medios podría sólo investigar la tabla de propiedades de archivo 60 para identificar la posición de los datos de medios relevantes y dividir datos para uso durante una sesión de medios. En una implementación posible adicional, los metadatos de asociación 40 se almacenan en conexión con las diferentes pistas de sugerencia 50, 52, 54 del archivo contenedor 1. Estas pistas de sugerencia comprenden el cálculo FEC y/o instrucciones de compilación para uso mediante un servidor de medios en conexión con una sesión de medios. En tal caso, cada pista de sugerencia 50, 52, 54 necesita sólo contener los metadatos 40 que se requieren para la sesión de medios implementable por las instrucciones en esa pista de sugerencia 50, 52, 54. Una combinación de múltiples de estas posibles localizaciones de almacenamiento también es posible y están dentro del alcance de la presente invención.
De acuerdo a una realización específica de la presente invención, el archivo contenedor de medios 1 es una unidad entrelazada, la cual está optimizada para descarga o difusión en forma continua progresiva. Por ello; una presentación multimedia entera se puede transmitir y descargar mediante las llamadas descarga o difusión en forma continua progresiva para clientes que lo solicitan.
El formato de archivo de medios de base ISO [1,2,3] se puede emplear ventajosamente como formato de archivo para el archivo contenedor de medios de la presente invención. Los formatos de archivo contenedor alternativos incluyen, el formato de archivo MP4, el formato de archivo 3GP y el formato QuickTime.
La Codificación de Capas Asíncrona (ALC) es un protocolo de entrega de contenido fiable escalable masivamente. Es un protocolo base para entrega multidifusión fiable de objetos binarios arbitrarios y ha sido adoptado como el protocolo obligatorio para entrega de archivos de radiodifusión/multidifusión en el grupo de trabajo de Radiodifusión (BCAST) de Navegador y Contenido (BAC) de la Alianza Móvil Abierta (OMA) y BCMCS (Servicio de Radiodifusión/Multidifusión) del 3GPP.
La FLUTE (Entrega de Archivos sobre Transporte Unidireccional) se construye en la parte superior de ALC y define un protocolo para entrega unidireccional de archivos y ha sido adoptado recientemente en el MBMS y Asignación de Datos DVB-H IP (IPDC) del 3GPP como el protocolo obligatorio para entrega de archivos de radiodifusión/multidifusión. Tanto FLUTE como ALC se definen por el Grupo de Trabajo de Ingeniería de Internet (IETF).
La FLUTE define una Tabla de Entrega de Archivos (FDT), la cual transporta metadatos asociados con los archivos entregados en la sesión ALC, y proporciona mecanismos para entrega en banda y actualizaciones de FDT. En contraste, ALC se basa en otros medios para entrega fuera de banda de los metadatos de archivo. OMA BCAST define una Guía de Servicio Electrónica (ESG) que normalmente se entrega a clientes con bastante antelación a la sesión ALC. Si los metadatos de archivo necesitan ser actualizados durante la sesión ALC, entonces los fragmentos de la ESG se pueden actualizar usando los canales entrega/actualización de la ESG.
Los archivos a ser entregados sobre ALC o FLUTE se pueden almacenar como elementos en un archivo contenedor ISO. La casilla Meta y sus casillas hijas permiten el almacenamiento de una variedad de elementos de datos, tales como medios estáticos (imágenes) y presentaciones SMIL, en un archivo de medios de base ISO. Ellas también permiten asociar nombres de archivo y trayectos a elementos y señalización de la estructura del directorio del archivo en el archivo de medios de base ISO.
Generalmente, el primer paso antes de que los archivos se puedan enviar sobre ALC/FLUTE es dividirlos en bloques fuente y símbolos fuente de acuerdo con la presente invención. La partición puede depender del esquema FEC, el tamaño del paquete objetivo, y la sobrecarga FEC deseada. Para cada bloque fuente de una codificación FEC, la información de partición se calculan previamente y se almacenan en el archivo de medios de base ISO junto con información sobre el esquema FEC y la información de división de archivos.
El siguiente paso para facilitar la transmisión de archivos es permitir que el archivo de medios de base ISO también contenga instrucciones que definen el cálculo de símbolos FEC a partir de los bloques fuente de medios usando la información de partición. Adicionalmente, el archivo de medios de base ISO preferentemente también comprende instrucciones para un servidor de multidifusión/radiodifusión que describe las sesiones ALC/FLUTE (con Protocolo de Descripción de Sesiones) y cómo encapsular elementos en paquetes ALC o FLUTE.
La partición de archivos, por una parte, y las pistas de sugerencia para entrega de archivos, por la otra, se pueden usar independientemente una de la otra. La primera ayuda al diseño de pistas de sugerencia y permite pistas de sugerencia alternativas, con, por ejemplo, diferentes sobrecargas FEC, para reutilizar los mismos símbolos FEC. Ellas también proporcionan medios para acceder a símbolos fuente. Para reducir la complejidad cuando un servidor sigue las instrucciones de pista de sugerencia, no obstante, las pistas de sugerencia se refieren directamente a gamas de datos de elementos o datos copiados en muestras de sugerencia.
A continuación se da un ejemplo de implementación de mayor detalle de un archivo contenedor en forma del formato de archivo de medios de base ISO y adaptado para transmisión sobre ALC/FLUTE. Esto, no obstante, se debería ver meramente como un ejemplo ilustrativo útil para entender la presente invención.
Los archivos previstos para transmisión sobre ALC/FLUTE se almacenan como elementos en una casilla Meta de
5 nivel superior (‘meta’) de un archivo de medios de base ISO que actúa como un archivo contenedor. La casilla de Localización de Elementos (‘iloc’) especifica la localización de almacenamiento real de cada elemento (archivo fuente de medios) dentro del archivo contenedor así como el tamaño de archivo de cada elemento. El nombre de archivo, el tipo de contenido (tipo MIME), etc., de cada elemento se proporcionan por la casilla de Información de Elemento (‘iinf’).
Los detalles en la partición de los archivos fuente se proporcionan en la casilla de Información de Elementos FD (‘fiin’). La casilla se usa preferentemente para archivos que emplean pistas de sugerencia FD y preferentemente de manera exacta una se localiza en la casilla Meta (‘meta’). Se define como sigue:
15 Cada PartitionEntry en la casilla de información de elementos FD proporciona detalles en una partición de archivos particular y metadatos para un archivo fuente de medios particular. Es posible proporcionar múltiples entradas para un archivo fuente si se usan particiones alternativas en el archivo ISO. Todas las entradas de partición se puede numerar implícitamente y la primera entrada tiene típicamente el número 1.
Entrada de partición
20 La Entrada de Partición (‘paen’) de una fuente se define como sigue:
Puede contener una casilla que define la partición fuente de medios.
La casilla de Partición de Archivos (‘fpar’) identifica el archivo fuente y proporciona una partición de ese archivo en 25 bloques y símbolos fuente. Definición:
Semántica: item_ID indica el item_ID del archivo fuente. Es posible proporcionar particiones alternativas de un archivo fuente usando el mismo item_ID en la casilla de Partición de Archivos de más de una entrada de Información de Archivos.
packet_payload_size da el tamaño de la carga útil de paquetes FLUTE o ALC objetivo del algoritmo de partición. Señalar que las cargas útiles de paquetes UDP son mayores, ya que también contienen cabeceras FLUTE o ALC.
5 FEC_encoding_ID identifica el esquema de codificación FEC. Un valor cero podría corresponder a un esquema por defecto, tal como el “esquema FEC sin Código Compacto” también conocido como “FEC Nulo” [4]. Un valor de uno corresponde preferentemente al “MBMS FEC” [5].
FEC_instance_ID proporciona una identificación más específica del codificador FEC que se usa para un esquema FEC Insuficientemente Especificado. Este valor típicamente no se usa para esquemas FEC Completamente
10 Especificados. Ver el documento [4] para más detalles de los esquemas FEC Insuficientemente Especificados.
max_source_block_length da el número máximo de símbolos fuente por bloque fuente de medios.
encoding_symbol_length da el tamaño (en octetos) de un símbolo de codificación (símbolo fuente y símbolo de paridad FEC). Todos los símbolos de codificación de un elemento preferentemente tienen la misma longitud, excepto el último símbolo que puede ser más corto.
15 max_number_of_encoding_symbols da el número máximo de símbolos de codificación que se pueden generar para un bloque fuente para el ID de codificación FEC 129 definido en el documento [4].
scheme_specific_info es una cadena terminada nula codificada en base 64 de la información de transferencia de objeto de esquema específico (información de esquema específico FEC-OTI) en “FLUTEbis”. La definición de la información depende del ID de codificación FEC.
20 entry_count da el número de entradas en la lista de parejas (block_count, block_size) que proporciona una partición del archivo fuente. Comenzando desde el principio del archivo, cada entrada indica cómo el siguiente segmento del archivo se divide en bloques fuente y símbolos fuente.
block_count indica el número de bloques fuente consecutivo del tamaño de block_size (en octetos). Un block_size que no es un múltiplo del tamaño del símbolo (proporcionado en la Casilla de Información FEC) indica
25 que el último símbolo fuente incluye relleno no almacenado en el elemento del archivo.
Para transmitir internamente medios discretos integrados que usan protocolo de descarga de archivos de radiodifusión/multidifusión (ALC/FLUTE), es preferente para el servidor transmitir también algunos metadatos correspondientes a los medios discretos. Los metadatos se envían como parte de la FDT, si FLUTE se usa como un
30 protocolo de radiodifusión, y como parte de OMA BCAST ESG, si ALC se usa en conjunto con OMA BCAST ESG.
Como alguna de la información de Metadatos se podría crear sobre la marcha, una estructura de plantilla para la parte de los metadatos que es estática y común tanto para FLUTE como ALC se define como una segunda versión de la entrada de información de elementos. Esta versión de la entrada de información de elemento se usa en la casilla de información de elemento para elementos que tienen una partición de archivos fuente.
Semántica: item_id contiene o bien 0 para el recurso primario (por ejemplo el Lenguaje de Marcado Extensible (XML) contenido en una casilla ‘xml’) o bien el ID del elemento para el cual se define la siguiente información.
item_protection_index contiene o bien 0 para un elemento no protegido, o bien el índice basado en uno en la casilla de protección del elemento que define la protección aplicada a este elemento (la primera casilla en la casilla de protección de elemento tiene el índice 1).
content_length da la longitud total (en octetos) del archivo (no codificado).
transfer_length da la longitud total (en octetos) del archivo (codificado). Señalar que la longitud de transferencia es igual a la longitud de contenido si no se aplica codificación de contenidos (ver más adelante).
item_name es una cadena terminada nula en caracteres UTF 8 que contienen un nombre simbólico del elemento, es decir el nombre de archivo del elemento (archivo fuente).
content_type es una cadena terminada nula en caracteres UTF 8 con el tipo MIME del elemento. Si el elemento tiene codificados los contenidos (ver más abajo), entonces el tipo MIME se refiere al elemento después de la descodificación de contenidos.
content_location es una cadena terminada nula en caracteres UTF 8 que contiene el URI del archivo como se define en HTTP/1.1 [6].
content_encoding es una cadena terminada nula en caracteres UTF 8 usada para indicar que el archivo binario está codificado y necesita ser descodificado antes de interpretado. Los valores son como se define para Codificación de Contenidos para HTTP/1.1. Algunos valores posibles son “gzip”, “comprimir” y “desinflar”. Una cadena vacía indica ninguna codificación de contenidos. Señalar que el elemento se almacena después de que la codificación de contenidos se ha aplicado.
content_MD5 es una cadena terminada nula en caracteres UTF 8 que contiene un digesto MD5 del archivo [6, 7].
entry_count da el número de entradas en la lista siguiente.
group_ID indica un grupo de archivos al cual pertenece el elemento de archivo.
Todos los campos se emplean preferentemente. No obstante, es posible que una cadena terminada nula solamente contenga un nulo para indicar que el valor correspondiente del campo no se proporciona. Extensiones futuras a la casilla pueden añadir campos adicionales al final.
Considerando la información proporcionada en la casilla de Información de Archivos para cada elemento de la lista de elementos usados por una pista de sugerencias, se pueden construir las entradas de archivo necesarias para una FDT o una ESG.
La content_location de los recursos de medios integrados se pueden referir usando formas de Localización Universal de Recursos (URL) definidas en la Sección 8.44.7 del formato de archivos de medios de base ISO [1, 2]
Casilla de Grupo de Sesiones
Una sesión FD puede enviar simultáneamente sobre varios canales FD, cada uno de los cuales se describe por una pista de sugerencia FD. La casilla de grupo de Sesiones contiene una lista de sesiones así como todos los grupos de archivos de medios y pistas de sugerencia que pertenecen a cada sesión. Si hay más de una pista de sugerencia FD en el archivo contenedor, entonces una casilla de grupo de sesiones se presenta preferentemente en la casilla de información de elemento FD.
Solamente se debería procesar un grupo de sesiones en cualquier momento. La primera pista de sugerencia enumerada en un grupo de sesiones especifica el canal base. Si el servidor de medios no tiene preferencia entre los grupos de sesiones, la elección por defecto es típicamente el primer grupo de sesiones. Los ID de grupo de todos los grupos de archivos que contienen los archivos referenciados por las pistas de sugerencia se incluyen en la lista de grupos de archivos. Los ID de grupo de archivos a su vez se puede traducir en nombres de grupos de archivos (usando el ID del Grupo a la casilla de Nombre) que se puede incluir por el servidor en las FDT.
Semántica:
num_session_groups especifica el número de grupos de sesión.
entry_count da el número de entradas en la lista siguiente que comprende todos los grupos de archivos con los
5 que cumple el grupo de sesión. El grupo de sesión contiene todos los archivos incluidos en los grupos de archivos enumerados como se especifica por la entrada de información de elemento de cada archivo fuente. La FDT para el grupo de sesión preferentemente debería contener solamente aquellos grupos que se enumeran en esta estructura.
group_ID indica un grupo de archivos con el cual cumple el grupo de sesión.
10 num_channels_in_session_groups especifica el número de canales en el grupo de sesión. El valor de num_channels_in_session_groups es un número entero positivo.
hint_track_ID especifica el ID de pista de la pista de sugerencia FD que pertenece a un grupo de sesión particular. Una pista de sugerencia FD corresponde a un canal de Transporte de Codificación en Capas (LCT).
ID de Grupo a casilla de nombre
15 El ID de Grupo A casilla de Nombre asocia los nombres de grupos de archivos a ID de grupos de archivos usados en las entradas de información de elemento,
Semántica: entry_count da el número de entradas en la lista siguiente. 20 group_ID indica un grupo de archivos group_name es una cadena terminada nula en caracteres UTF 8 que contiene el nombre del grupo de archivos correspondiente.
Formato de Pista de Sugerencia
La estructura de pista de sugerencia está generalizada para soportar muestras de sugerencias en múltiples formatos
25 de datos. La muestra de pista de sugerencia contiene cualquier dato necesario para construir la cabecera del paquete del tipo correcto, y también contiene un puntero al bloque fuente de medios de los datos a los que pertenece en el paquete.
Las pistas de sugerencia FD son pistas de sugerencia (‘sugerencia’ de manejador de medios con un formato de entrada en la descripción de la muestra de ‘fdp’, corto para el Protocolo de Entrega de Archivos. El FDHintSampleEntry está contenido en la SampleDescriptionBox (‘stsd’) y tiene la siguiente sintaxis:
Semántica:
partition_entry_ID indica la entrada de partición en la casilla de información de elemento FD. Un valor cero indica que ninguna entrada de partición está asociada con esta entrada de muestra, por ejemplo, para la FDT.
FEC_overhead es un valor 8.8 fijo que indica el porcentaje de sobrecarga de protección usado por la(s)
10 muestra(s) de sugerencia. La intención de proporcionar FEC_overhead es proporcionar características para ayudar a un servidor de medios a seleccionar un grupo de sesión (y las pistas de sugerencia FD correspondientes).
Los campos, “hinttrackversion” y “highestcompatibleversion” tienen la misma interpretación como en la “RtpHintSampleEntry”, descrita en la sección 10.2 del formato de archivos de medios de base ISO [1, 2]. Como datos adicionales se puede proporcionar una casilla time_scale_entry. Si no se proporciona, no hay indicación dada
15 sobre temporización de paquetes.
Las entradas de archivos necesarias para una FDT o una ESG se pueden crear observando todas las entradas de muestra de una pista de sugerencia y las casillas de información de Metadatos de Archivos correspondientes de los elementos referenciados por los item_IDs anteriores. No se incluirán entradas de muestra en la pista de sugerencia si no están referenciadas por ninguna muestra.
Cada muestra FD en la pista de sugerencia generará uno o más paquetes FD. Cada muestra contiene dos áreas: las instrucciones para componer los paquetes, y cualquier dato adicional necesario cuando se envían esos paquetes (por ejemplo los símbolos de codificación que se copian en la muestra en lugar de residir en elementos para archivos fuente o FEC). Señalar que el tamaño de la muestra es conocido a partir de la tabla de tamaño de
25 muestras.
Los números de muestra de muestras FD definen el orden en que serán procesados por el servidor de medios. Del mismo modo, las casillas de Paquete FD en cada muestra FD aparecen en el orden que serán procesadas. Si la casilla de Entrada de Escala de Tiempo está presente en la Entrada de Muestra de Sugerencia FD, los tiempos de
30 muestra se definen y proporcionan tiempos de envío relativos de paquetes para una tasa de bits por defecto. Dependiendo de la tasa de bit de transmisión real, un servidor puede aplicar escalado de tiempo lineal. Los tiempos de muestra pueden simplificar el proceso de planificación, pero es hasta que el servidor de medios envía paquetes de una manera oportuna.
Formato de entrada de paquete
35 Cada paquete en la muestra FD tiene la siguiente estructura [8-10]:
LCT_header_info contiene plantillas de cabecera LCT para el paquete FD actual.
entry_count1: cuenta los siguientes constructores.
header extension_constructors: estructuras que se usan para construir las extensiones de cabecera LCT.
entry_count2: cuenta los siguientes constructores.
packet_constructors: estructuras que se usan para construir el ID de la carga útil FEC y los símbolos fuente en
un paquete FD.
Formato de plantilla de cabecera LCT
10 La plantilla de cabecera LCT se puede usar por un servidor de medios para formar una cabecera LCT para un paquete. Señalar que algunas partes de la cabecera dependen de la política del servidor y no están incluidas en la plantilla. Algunas longitudes de campo también dependen de los bits de cabecera LCT asignados por el servidor. El servidor también puede necesitar cambiar el valor de la TOI.
15 Señalar que un servidor de medios puede identificar paquetes que incluyen la FDT observando si está presente la EXT_FDT.
header_extension_length se expresa en múltiplos de palabras de 32 bits. Un valor cero significa que la cabecera
se genera por el servidor.
header-extension_content es el número de elementos igual a la header_extension_length.
Formato de Constructor de Paquete
Hay varias formas del constructor. Cada constructor es de 16 octetos para hacer más fácil la iteración. El primer octeto es un discriminador de unión. Esta estructura está basada en la sección 10.3.2 del formato de archivos de medios de base ISO [1, 2].
Cada muestra de una pista de sugerencia FD puede incluir datos adicionales en una casilla de Datos Adicionales:
La Fig. 5 es un diagrama de flujo que ilustra un método de gestión de sesiones de medios de acuerdo con la presente invención. Esta gestión de sesiones de medios se dirige en un servidor de medios, tal como un servidor de difusión en forma continua o de descarga, y usa el archivo contenedor de medios de la presente invención. El método comienza en el paso S30, donde se proporciona un archivo contenedor de medios. Este suministro de
10 archivos se puede realizar trayendo el archivo contenedor desde una ubicación de memoria del servidor de medios, que implica que el servidor ha recibido previamente el archivo desde un proveedor o creador de contenidos. Alternativamente, el servidor de medios puede, en conexión con una petición de datos de medios, ordenar o recibir el archivo contenedor desde un proveedor de contenidos.
En un siguiente paso S41, los datos de redundancia FEC se calculan usando al menos un bloque fuente de medios
15 y en base a los metadatos y la información de partición asociada con el al menos un bloque fuente. En este paso de cálculo S41, un códec de bloque FEC, tal como un códec raptor de Digital Fountain, se emplea preferentemente para operar en forma de bloque de medios. No obstante, un códec FEC de convolución también se podría emplear y está dentro del alcance de la presente invención. En una implementación preferente, un conjunto de símbolos de redundancia FEC se generan para el al menos un bloque fuente de medios. Este conjunto de símbolos FEC podría
20 incluir uno pero preferentemente múltiples símbolos FEC calculados en base a los símbolos fuente del bloque fuente de medios. El número de símbolos FEC a calcular para un bloque fuente de medios se podría definir mediante limitaciones en el códec FEC empleado, ser una función del número de símbolos fuente de medios en el bloque fuente de medios o limitar por algunos otros criterios, por ejemplo sobrecarga FEC. Adicionalmente, la información incluida en el archivo contenedor de medios podría especificar la cantidad de datos de redundancia FEC a calcular.
En una implementación preferente, el archivo contenedor de medios también comprende instrucciones de cálculo FEC usada en este paso S31. Estas instrucciones se emplean entonces junto con la información de partición (y la meta información usada para identificar la información de partición) cuando se seleccionan símbolos fuente a ser introducidos al códec FEC para generación de símbolos FEC.
Si el archivo contenedor también comprende información de la división del(de los) archivo(s) fuente de medios en los bloques fuente de medios, esta información de división se puede usar para identificar símbolos de fuente correctos a ser usados para el cálculo de datos FEC.
El número de símbolos FEC calculado en el paso S31 se podría determinar por el servidor de medios en base a algún criterio local, tal como la sobrecarga FEC máxima/mínima actualmente permisible durante la sesión de medios. Alternativamente, como se mencionó anteriormente, la información proporcionada en el archivo contenedor, tal como las instrucciones de cálculo FEC, especifica la cantidad de datos de redundancia FEC a ser calculados para un bloque fuente de medios dado.
El cálculo de datos FEC en el paso S31 se puede realizar sobre la marcha durante la sesión de medios en curso. Alternativamente, el servidor de medios podría generar un depósito de datos FEC antes de la sesión real y entonces almacenar el depósito FEC en el archivo contenedor o en una memoria. Los datos FEC calculados previamente entonces se pueden usar con el contenido de medios en el archivo contenedor en una sesión de medios siguiente.
En un siguiente paso S32, los paquetes de datos de medios se compilan extrayendo datos multimedia desde el(los) bloque(s) fuente de medios del archivo contenedor y proporcionar datos de redundancia FEC como se calculó en el paso S31. El servidor de medios preferentemente recibe un identificador de los datos de medios a transmitir durante la sesión de medios. Alternativamente, el archivo contenedor solamente podría contener datos de medios de un único archivo de datos de medios de manera que no es necesaria ninguna selección de fuente de medios. En cualquiera de los dos casos, la información descrita previamente incluida en el archivo contenedor, tal como en la tabla de propiedades de archivo, se puede usar para identificar el comienzo del archivo de medios, es decir el primer bloque fuente de medios desde el cual la transmisión se debería iniciar. Adicionalmente, se podría usar información adicional incluida en el archivo contenedor como instrucciones de cómo los datos de medios y los datos FEC se deberían combinar e incluir en paquetes de datos adoptados para la transmisión inalámbrica sobre un canal o múltiples canales basados en radio a diferentes clientes.
En un siguiente paso S33, los paquetes de datos de medios compilados con protección de seguridad FEC se transmiten, preferentemente a través de técnicas de radiodifusión o multidifusión, a clientes, donde los datos de medios se pueden reproducir. La transmisión de paquetes típicamente se inicia una vez que el almacenador temporal de transmisión en el servidor de medios ha alcanzado un nivel dado. No obstante, durante la sesión de medios, nuevos paquetes de datos son compilados e introducidos en el almacenador temporal de transmisión, mientras que otros paquetes están siendo transmitidos, lo cual se ilustra esquemáticamente por la línea L2.
El archivo contenedor generado y la organización de datos de medios y el suministro de datos de partición calculados previamente allí dentro, reducen las necesidades de procesamiento del servidor de medios durante una sesión de medios. Esto por lo tanto conduce a una complejidad del servidor reducida y permite flexibilidad del servidor ya que el servidor no necesita realizar la construcción de bloque fuente y la partición sobre la marcha.
El método entonces termina.
La Fig. 6 es un diagrama de flujo ilustrando un paso adicional del método de gestión de sesiones de medios de la Fig. 5. El método continúa desde el paso S30 de la Fig. 5. En un siguiente paso S40, el servidor de medios selecciona un algoritmo o códec FEC a emplear para el cálculo de datos FEC. Este algoritmo FEC es preferentemente el algoritmo FEC usado cuando se divide un bloque fuente de medios, en base a qué dato FEC va a ser calculado. El archivo contenedor de medios por lo tanto comprende preferentemente información de este algoritmo/códec FEC, cuya información se emplea por el servidor multimedia en el paso de selección S40.
Si la información FEC comprende identificadores de múltiples algoritmos FEC disponibles y un bloque de fuente de medios dado está disponible en múltiples particiones diferentes alternativas, el servidor de medios preferentemente usa otra información de entrada, que incluye la capacidad de sobrecarga FEC y/o las instrucciones de cálculo FEC, para seleccionar qué algoritmo FEC y qué información de partición de bloques usar cuando se calculan los datos FEC.
El método entonces pasa al paso S31 de la Fig. 5, donde el algoritmo FEC seleccionado se usa para calcular los datos FEC.
La Fig. 7 es un diagrama de flujo que ilustra pasos adicionales del método de gestión de sesiones de la Fig. 4. El método continúa desde el paso S31 de la Fig. 5. En un siguiente paso S50 se determina una capacidad de sobrecarga FEC que se puede emplear realmente para la transmisión de datos en la sesión de medios. Esta capacidad se puede determinar o al menos estimar en base a los niveles de ancho de banda asignables al servidor para la transmisión de medios, los niveles mínimo y máximo de tasa de bits para la(las) portadora(s) radio empleada(s) para esta transmisión de medios, etc. Realmente cualquier técnica para determinar tal capacidad de sobrecarga en conexión con la transmisión de datos conocida en la técnica se puede emplear en este paso S50.
Una vez que la capacidad de sobrecarga FEC se ha determinado, un siguiente paso S51 selecciona un conjunto de instrucciones de compilación en base a la capacidad de sobrecarga determinada. De esta manera, el archivo contenedor de medios entonces contiene múltiples conjuntos alternativos de instrucciones compiladoras que se pueden usar para un contenido de medios dado pero proporciona diferentes niveles de sobrecarga FEC. En otras palabras, estas instrucciones de compilación alternativas básicamente definen la cantidad de datos de redundancia FEC para añadir a los datos de medios cuando se compilan paquetes de datos de medios. Cuanto mayor sea la sobrecarga FEC aceptable, más datos FEC son añadidos. Teniendo diferentes instrucciones de compilación alternativas, el servidor de medios puede usar aquellas instrucciones que permiten una protección FEC permisible más alta dadas las limitaciones de sobrecarga actuales y por ello aumenta las oportunidades de recepción exitosa y la descodificación de los datos de medios en diferentes clientes comparado con el uso de un único conjunto de instrucciones de compilación.
El método entonces pasa al paso S32 de la Fig. 5, donde los paquetes de datos de medios se compilan desde los datos de contenido de medios y los datos FEC asociados en base a las instrucciones de compilación seleccionadas en el paso S51.
Si el archivo contenedor multimedia también comprende información adicional, tal como información de la división archivo a bloque, información de un algoritmo FEC y/o tabla de propiedades de archivo, el servidor de medios puede usar esta información adicional en la generación y transmisión de paquetes de datos.
Por ejemplo, los datos adicionales y preferentemente la información de tipo MIME, cualquier información de codificación, información de tamaño, etc. útil para el servidor de medios se puede incluir o al menos anunciar en la tabla de propiedades de archivo. En una implementación preferente, esta tabla de propiedades constituye una información única o fuente de búsqueda a la que se puede acceder por el servidor de medios para obtener información requerida o ventajosa en conexión con la extracción de medios, compilación de paquetes de datos y transmisión.
La Fig. 8 es una ilustración esquemática de un archivo contenedor de medios 1 de acuerdo con la invención que se usa para mostrar el uso de instrucciones de compilación alternativas de acuerdo con una realización de la invención. El archivo contenedor 1 comprende un archivo fuente de medios 10 que comprende preferentemente múltiples bloques fuente de medios. En esta realización, cada bloque fuente de medios del archivo fuente 10 ha asociado información de partición 30. El archivo contenedor 1 también comprende, en este ejemplo ilustrativo, tres pistas de sugerencia 50, 52, 54 que contienen instrucciones de compilación para diferentes sobrecargas FEC. Por ejemplo, la primera pista de sugerencia 50 se podría usar cuando se desea un 10% de sobrecarga de redundancia, la segunda pista de sugerencia 52 da una sobrecarga FEC de alrededor del 12% y la tercera pista de sugerencia 54 da un 14% de sobrecarga FEC. En la figura, se ha empleado el algoritmo de construcción de bloque fuente sugerido en el Anexo B del documento [5]. La información de partición 10 se emplea por un códec FEC para calcular los datos FEC 70 en base a los bloques fuente de medios en el archivo fuente 10. Si el archivo fuente 10 comprende múltiples bloques fuente de medios, se calculan múltiples conjuntos de datos FEC o depósitos 70, es decir preferentemente un conjunto de datos FEC por bloque fuente de medios.
Si la primera pista de sugerencia 50 se selecciona, se genera una primera secuencia de paquetes de datos 81, 82, 83, 84 (solamente un paquete de datos por bloque fuente de medios y bloque FEC se ha indicado en la figura). No obstante, si en su lugar se usa la segunda pista de sugerencia 52, se genera una segunda secuencia de paquetes de datos 91, 92, 93, 94. Comparada a la primera secuencia 80, la segunda secuencia 90 comprende bloques FEC mayores, es decir más datos de redundancia FEC, por bloque fuente de medios. No obstante, el bloque fuente respectivo contiene la misma cantidad de datos de medios en las dos secuencias 80, 90.
La Fig. 9 es una vista general esquemática de una red de comunicaciones que ilustra las partes que generan o usan el archivo de contenedor de medios 1 de la presente invención. Un servidor de contenido 100 representa el proveedor o creador de contenidos que recibe o tiene acceso a los datos fuente de medios y construye un archivo contenedor de medios 1. Una copia de este archivo contenedor 1 se envía a un servidor de medios 200 que usa el archivo contenedor 1 en una sesión de medios para compilar paquetes de datos que contienen datos de medios y FEC que se transmiten (multidifusión) a diferentes clientes 300, 310, 320 representados por terminales móviles en la figura.
La Fig. 10 es un diagrama de bloques esquemático de un servidor de contenidos de medios 100 de acuerdo con la presente invención. El servidor de contenidos 100 comprende una unidad de entrada y salida general (I/O) 110 dispuesta y que comprende una funcionalidad (transmisor/receptor, modulador/demodulador, codificador/descodificador) para comunicarse con unidades externas. Esta unidad I/O 110 en particular se dispone para recibir contenido de medios de entrada y para recibir peticiones de archivos contenedores de medios. La unidad I/O 110 también se emplea por el servidor 100 cuando se transmiten tales archivos contenedores a otros servidores en la red de comunicaciones.
El servidor de contenidos 100 también comprende un creador de archivo contenedor 160 dispuesto para crear archivos contenedores de medios de la invención. El servidor 100 también comprende un proveedor de bloques de medios 130 dispuestos para proporcionar al menos un bloque fuente de medios a ser introducido en el archivo contenedor de medios por un gestor de bloques de medios 161 del creador de archivo 160. El proveedor de bloques de medios 130 proporciona al menos un bloque fuente de entrada desde un almacenamiento de datos interno 120 o desde la unidad I/O 110 que recibe el contenido de medios desde fuentes de medios externas 400, 410.
El(los) bloque(s) fuente de medios entonces se reenvía(n) a un divisor de bloques 140 del servidor de contenidos
100. Este divisor 140 divide el(los) bloque(s) fuente de medios en un número de símbolos fuente, típicamente múltiples de tales símbolos fuente, en base al menos parcialmente a la información de un algoritmo FEC a ser aplicado al bloque fuente para el propósito de cálculo de datos FEC. La operación de partición no tiene necesariamente que dividir físicamente el bloque fuente en símbolos fuente. En claro contraste, la partición podría ser una división virtual asignando diferentes partes del bloque fuente a diferentes símbolos fuente.
El algoritmo FEC a ser aplicado al bloque fuente y el cual podría afectar a la partición de bloque, podría ser un algoritmo FEC estándar predefinido que se emplea consistentemente para bloques fuente de medios. Alternativamente, el divisor de bloque 140 o alguna otra unidad del servidor de contenidos 100 selecciona, a partir de múltiples de tales algoritmos disponibles, un algoritmo FEC particular para usar. En esta selección, diferentes datos de entrada se podrían usar, tales como la sobrecarga FEC máximo esperada máxima. En una realización adicional, el bloque divisor 140 realiza múltiples particiones alternativas de un bloque fuente de medios dado en base a la información de diferentes algoritmos FEC disponibles alternativos. Por ejemplo, si el servidor de contenido s100 tiene conocimiento de los posibles algoritmos FEC disponibles en el servidor de medios, el divisor de bloque 140 puede realizar una partición de bloque separada para cada uno de los algoritmos FEC.
Además de realizar el partición de bloques en base al algoritmo o esquema FEC particular a ser aplicado al bloque fuente de medios, el divisor de bloque 140 podría también operar para realizar la partición adaptada para encajar los símbolos fuente en paquetes de datos que serán empleados mediante un servidor de medios durante una sesión de medios. De esta manera, información del tamaño de paquete, tal como el tamaño de paquete UDP, se podría emplear por el divisor 140.
La información de la partición de bloque fuente particular realizada por el divisor 140 se genera por el generador de información 150. Esta información puede, como ha sido previamente descrito, especificar qué bits de los bloques fuente de medios pertenecen a qué símbolos fuente o definir un tamaño de símbolo que se aplica a todos los símbolos fuente de un bloque fuente posiblemente con la excepción del último símbolo fuente que podría ser de un tamaño más pequeño.
En el caso, el divisor de bloque 140 realiza múltiples particiones alternativas de un bloque fuente de medios, la información generada por el generador 150 incluye datos que conciernen a estas particiones de bloques alternativas.
La información de partición se reenvía desde el generador a un gestor de información 162 del creador de archivo contenedor 160 que inserta la información en el archivo contenedor de medios.
Un gestor de metadatos 163 del creador de archivo 160 proporciona metadatos dentro del archivo contenedor. Estos metadatos proporcionan una asociación entre los bloques fuente de medios organizados mediante el gestor de bloques 161 y la información de partición organizada por el gestor de información de partición 162.
El archivo contenedor de medios resultante entonces se puede almacenar, por lo menos temporalmente, en el almacenamiento de datos 120 o ser transmitido por la unidad I/O 110 a un servidor de medios.
Las unidades 110, 130, 140, 150, 160, 161, 162 y 163 del servidor de contenidos 100 se pueden implementar o proporcionar como programas de ordenador, componentes físicos o una combinación de los mismos. Las unidades 110 a 163 se pueden implementar todas en el servidor de contenidos 100 en un nodo de red único en un sistema de comunicaciones. Alternativamente, una implementación distribuida también es posible y dentro del alcance de la invención. En tal caso, las diferentes unidades 110 a 163 del servidor de contenidos 100 se pueden disponer en diferentes nodos de red pero a pesar de ello realizarán sus operaciones previstas como se describió anteriormente.
La Fig. 11 es un diagrama de bloques esquemático que ilustra una realización del proveedor de bloque de medios 130 de la Fig. 10 en más detalle. En una implementación preferente, el contenido de medios de entrada está en forma de un archivo fuente de medios que se proporciona por un divisor de archivos de medios 132, por ejemplo del almacenamiento de datos o unidad I/O del servidor de contenidos. El archivo fuente de medios se reenvía por el proveedor de archivos 132 a un divisor de archivos multimedia 134. Este divisor 134 divide el archivo fuente en uno
o más bloques fuente. El divisor 134 podría basar esta división de archivo en base a información o parámetros diferentes. Por ejemplo, la división de archivo se podría determinar al menos parcialmente en base al algoritmo FEC a ser aplicado para el cálculo de datos de redundancia FEC. En tal caso, la división de archivo 134 preferentemente tiene acceso a información de tal algoritmo FEC. El divisor 134 entonces podría dividir un archivo fuente de medios en N-1 bloques fuente de medios dimensionados igualmente y un bloque fuente de medios que podría tener un tamaño más pequeño que los otros N-1 bloques.
Un generador de información de división 136 está dispuesto conectado al divisor de archivos 134. El generador 136 genera información de la división de archivo determinada y posiblemente realizada por el divisor de archivo 134. En una primera implementación, la información generada podría especificar qué bits de un archivo fuente de medios que pertenece a diferentes bloques de fuente de medios. En una segunda implementación, la información especifica el tamaño (de bit o de símbolo) de bloques fuente de medios, posiblemente con excepción de un último bloque fuente que podría tener un tamaño más pequeño. En tal caso, conociendo la localización inicial del archivo fuente de medios, los diferentes bloques fuente de medios se pueden identificar usando esta información de división (de tamaño).
Un gestor de información de división 138 se implementa en el proveedor de bloques 130 para organizar la información de división del generador de información 136 en el archivo contenedor de medios.
Las unidades 132 a 138 del proveedor de bloque de medios 130 se pueden implementar o proporcionar como programa de ordenador, componentes físicos o una combinación de los mismos. Las unidades 132 a 138 se pueden implementar todas en el proveedor de bloque de medios 130. Alternativamente, una implementación distribuida también es posible y está dentro del alcance de la invención. En tal caso, diferentes unidades 132 a 138 del proveedor de bloques de medios 130 se pueden disponer en otra parte en el servidor de contenidos.
La Fig. 12 es un diagrama de bloques esquemático que ilustra una realización del creador de archivo contenedor 160 de la Fig. 10 en más detalle. Este creador de archivo 160 comprende, además del gestor de bloque de medios 161 descrito previamente, gestor de información de partición 162 y gestor de metadatos 163, un gestor de información FEC 164. Este gestor de información FEC 164 genera y organiza, en el archivo contenedor, información del(de los) algoritmo(s) FEC a ser aplicados al(los) bloque(s) fuente de medios del archivo contenedor. La partición de bloque realizada por el divisor de bloque del servidor de contenido también usó tal información de algoritmo FEC cuando se realiza la partición de bloque. De esta manera, la información de(de los) algoritmo(s) FEC, en base a la cual se ha realizado la partición de bloque, se genera preferentemente por el gestor 164 e incluye en el archivo contenedor.
Un gestor de tablas 165 se puede incluir en el creador de archivos 160 para generar e incluir una tabla de propiedades dentro del archivo contenedor. Esta tabla de propiedades entonces podría incluir información del(de los) archivo(s) fuente de medios en el archivo contenedor, tal como el tipo de archivo, tamaño de archivo, localización de almacenamiento de archivo, encriptado de archivo, identificadores/nombre de archivo, etc. También la información de partición, la información de división de archivo y los metadatos de la invención se podrían incluir en la tabla de propiedades generada por el gestor de tablas 165.
Un gestor de instrucciones FEC 166 se incluye en el creador de archivo 160 para generar instrucciones FEC a ser seguidas por un servidor de medios cuando se generan datos FEC en base a los bloques fuente de medios del archivo contenedor. Estas instrucciones entonces especificarán, junto con la información de partición asociada con el bloque fuente de medios particular, qué símbolos fuente que podrían ser introducidos a un códec FEC para cálculo de símbolos FEC. Se podrían proporcionar diferentes instrucciones FEC alternativas por el gestor 166 para un bloque de fuente dado, donde las instrucciones FEC se adaptan para uso en conexión con diferentes códec FEC y/o sobrecargas FEC.
Un gestor de instrucción de compilación 167 del creador de archivo 160 genera e inserta instrucciones de compilación en el archivo contenedor. Estas instrucciones incluyen información usada por servidores de medios para compilar datos multimedia desde los bloques fuente de medios y datos FEC calculados usando los bloques fuente y la información de partición. El gestor 167 podría generar una instrucción única o conjunto de instrucciones por contenido de medios en el archivo. Alternativamente, tales instrucciones diferentes adaptadas para diferentes sobrecargas FEC, diferentes tipos de datos FEC y/o diferente número de canal de comunicaciones basado en radio empleado en la sesión de medios se podrían proporcionar por el gestor 167 y organizar en el archivo contenedor.
Las unidades 161 a 167 del creador de archivo contenedor 160 se pueden implementar o proporcionar como un programa de ordenador, componentes físicos o una combinación de los mismos. Las unidades 161 a 167 se pueden implementar todas en el creador de archivo contenedor 160. Alternativamente, una implementación distribuida también es posible y está dentro del alcance de la invención. En tal caso, las diferentes unidades 161 a 167 del creador de archivo contenedor 160 se pueden disponer en otra parte en el servidor de contenidos.
La Fig. 13 es un diagrama de bloques esquemático de un servidor de sesión de medios 200 de acuerdo con la presente invención. Este servidor de medios 200 comprende una unidad de I/O 210 para conducir la comunicación con unidades externas. Esta unidad I/O 210 se dispone en particular para solicitar y recibir contenedores de archivo de medios desde un servidor de contenidos. La unidad de I/O 210 también recibe petición de contenido de medios que se originan desde diferentes clientes de usuario o al menos información a la que se debería transmitir el contenido de medios de los clientes. Los paquetes de datos compilados por el servidor de medios 200 también se transmiten por la unidad de I/O 210 a estos clientes.
El servidor 200 comprende un proveedor de archivos de medios 220 que proporciona un archivo de contenido de medios para usar en la sesión actual. El proveedor de archivos 220 puede generar una petición para un archivo contenedor particular que se transmite a un creador de contenidos por la unidad I/O 210. Alternativamente, el proveedor 220 trae un archivo contenedor recibido previamente desde un almacenamiento de datos 250 proporcionado en el servidor de medios 200.
Una calculadora o códec FEC 240 del servidor de medios 200 calcula datos de redundancia FEC para al menos un bloque fuente de medios almacenado en el archivo contenedor. Esta calculadora FEC 240 podría usar cualquiera de los algoritmos FEC previamente mencionados en este procedimiento de cálculo. En una implementación preferente, el archivo contenedor da instrucciones a la calculadora 240 de qué algoritmo FEC emplear si hay una elección. La calculadora FEC 240 primero identifica la información de partición relevante para un bloque de fuente previamente mencionados de entrada. En este procedimiento de identificación, los metadatos asociados con el bloque fuente y proporcionados en el archivo contenedor se usan por la calculadora 240. La calculadora 240 entonces usa la información de partición para identificar aquellas partes del bloque fuente de medios, a las cuales el algoritmo FEC (seleccionado en base a la información FEC en el archivo contenedor) se debería aplicar para generar datos FEC.
En una realización preferente, el archivo contenedor de medios también comprende instrucciones de cálculo FEC que son usadas por la calculadora 240 además de la información de partición cuando se identifican símbolos fuente de entrada correctos y que realizan el cálculo de datos FEC real. Información de entrada adicional podría ser la previamente descrita información de algoritmo FEC (permite la selección del algoritmo FEC correcto a usar) y la información de división de archivo (permite identificación de bloque fuente de medios correcto).
Un compilador de paquete de datos 230 preferentemente usa instrucciones de compilación incluidas en el archivo contenedor desde el proveedor 220 para extraer datos de medios desde el archivo y datos FEC desde la calculadora FEC para generar paquetes de datos que contienen estos datos extraídos. Los paquetes de datos así generados entonces se transmiten por (secuenciados o descargados de) la unidad de I/O 210.
Diferentes instrucciones de compilación se podrían incluir en el archivo para un contenido de medios dado. Por ejemplo, las instrucciones podrían ser dependientes del canal o dependientes de la capacidad. En el primer caso, el número de canales radio disponibles y el número de secuencias de medios paralelas que se deberían transmitir determina las instrucciones de compilación reales a usar por el compilador 230. En este último caso, un estimador de capacidad FEC 260 se incluye preferentemente en el servidor 200 para estimar una cantidad máxima de sobrecarga FEC que se podría emplear durante la sesión. La estimación de cabecera realizada por el estimador 260 preferentemente se actualiza dinámicamente durante la sesión, ya que la capacidad de sobrecarga se podría cambiar a través de la sesión. Un selector de conjunto 270 usa las estimaciones de capacidad del estimador 260 para seleccionar qué instrucción o conjunto de instrucciones de compilación particular de aquellas disponibles en el archivo usar. El paquete compilador 230 entonces usa esta instrucción (conjunto) para compilar los datos de medios y los datos FEC en paquetes de datos.
Las unidades 210, 220, 230, 240, 260, y 270 del servidor de medios 200 se pueden implementar o proporcionar como programa de ordenador, componentes físicos o una combinación de los mismos. Las unidades 210 a 270 se pueden implementar todas en el servidor de medios 200 en un nodo de red único en un sistema de comunicaciones. Alternativamente, una implementación distribuida también es posible y está dentro del alcance de la invención. En tal caso, las unidades diferentes 210 a 270 del servidor de medios 200 se pueden disponer en diferentes nodos de red pero a pesar de ello realizarán sus operaciones previstas como se describió anteriormente.
Se entenderá por una persona experta en la técnica que se puede realizar diversas modificaciones y cambios a la presente invención sin salirse del alcance de la misma, el cual se define por las reivindicaciones adjuntas.
REFERENCIAS
[1] ISO/IEC 14496-12:2005: "Formato de archivo de medios de base ISO"
[2] ISO/IEC 15444-12:2005: "Formato de archivo de medios de base ISO”
[3] Solicitud internacional WO 2005/039131
[4] RFC 3695; Esquemas de Corrección de Errores sin canal de retorno (FEC) Compactos, febrero de 2004
[5] TS 26.346 V7.0.0 del 3GPP, Proyecto de Cooperación de 3ª Generación; Servicios y Sistema de Grupo de Especificación Técnica y Aspectos del Sistema; Servicio de Radiodifusión/Multidifusión Multimedia (MBMS); Protocolos y códec, junio de 2006.
[6] RFC 2616; Protocolo de Transferencia Hipertexto -HTTP/1.1, junio de 1999
[7] RFC 1864; El Campo de Cabecera de Contenido-MDS, octubre de 1995
[8] RFC 3926; FLUTE – Entrega de Archivos sobre Transporte Unidireccional, octubre de 2004
[9] RFC 3450; Instanciación del Protocolo de Codificación de Capas Asíncrono (ALC), diciembre de 2002.
[10] RFC 3451; Bloque de Construcción de Transporte de Codificación de Capas (LCT), diciembre de 2002
Claims (15)
- REIVINDICACIONES1. Un método para generar un archivo contenedor de medios (1), dicho método comprende los pasos de:proporcionar al menos un bloque fuente de medios (20; 22; 24) que comprende datos de medios;organizar dicho al menos un bloque fuente de medios (20; 22; 24) en dicho archivo contenedor de medios (1);organizar la información de partición calculada previamente (30; 32; 34) en dicho archivo contenedor de medios (1), en el que la información de partición es descriptiva de la partición calculada previamente para cada uno de dicho al menos un bloque fuente de medios (20; 22; 24) en un número de símbolos fuente en base a la información de un algoritmo de Corrección de Errores sin canal de retorno, FEC, a ser aplicado al bloque fuente respectivo (20; 22; 24) yorganizar, en dicho archivo contenedor de medios (1), los metadatos (40) que proporcionan una asociación entre dicho al menos un bloque fuente de medios (20; 22; 24) y dicha información de partición (30; 32; 34), caracterizado por:organizar instrucciones de cálculo FEC calculadas previamente (50; 52; 54) en dicho archivo contenedor de medios (1), en el que las instrucciones de cálculo FEC calculadas previamente definen el cálculo de datos de redundancia FEC (70) en base a dichos metadatos (40), dicho al menos un bloque fuente de medios (20; 22; 24) y dicha información de partición (30; 32; 34) para el bloque fuente de medios respectivo (20; 22; 24);generar a una primera pista de sugerencia un primer conjunto de instrucciones de compilación (50) que definen la compilación de datos de medios de cada uno de dicho al menos un bloque fuente de medios (20; 22; 24) y dichos datos de redundancia FEC (70) para formar una primera secuencia de medios (80) de paquetes de datos (81, 82, 83, 84) que tienen un primer nivel de sobrecarga de redundancia FEC;generar a una segunda pista de sugerencia la cual es diferente de la primera pista de sugerencia un segundo conjunto de instrucciones de compilación (52), el cual es diferente del primer conjunto de instrucciones de compilación (50) que define la compilación de datos de medios de cada uno de dicho al menos un bloque fuente de medios y datos de redundancia FEC (70) para formar una segunda secuencia de medios (90) de paquetes de datos (91, 92, 93, 94) que tiene un segundo nivel de sobrecarga de redundancia FEC, la cual es diferente del primer nivel de sobrecarga de redundancia FEC; yorganizar dicha primera pista de sugerencia y segunda pista de sugerencia en dicho archivo contenedor de medios (1).
- 2. El método de acuerdo con la reivindicación 1, en el que dicho paso de proporcionar dicho al menos un bloque fuente de medios (20; 22; 24) comprende los pasos de:proporcionar un archivo fuente de medios (10);dividir dicho archivo fuente de medios (10) en dicho al menos un bloque fuente de medios (20; 22; 24);generar información de división descriptiva de dicha división; yorganizar dicha información de división en dicho archivo contenedor de medios (1).
-
- 3.
- El .método de acuerdo con la reivindicación 2, en el que dicho paso de división comprende dividir dicho archivo fuente de medios (10) en dicho al menos un bloque fuente de medios (20; 22; 24) en base a la información de dicho algoritmo FEC.
-
- 4.
- El método de acuerdo con cualquiera de las reivindicaciones 1 a 3, que además comprende proporcionar, en dicho archivo contendor de medios (1), información de dicho algoritmo FEC.
-
- 5.
- El método de acuerdo con cualquiera de las reivindicaciones 1 a 4, que además comprende proporcionar, en dicho archivo contendor de medios (1), una tabla de propiedades (60) que comprende información de localización de almacenamiento de dicho al menos un bloque fuente de medios (20; 22; 24) dentro de dicho archivo contenedor de medios (1).
-
- 6.
- El método de acuerdo con cualquiera de las reivindicaciones 1 a 5, en el que dicho primer conjunto de instrucciones de compilación (50) define la compilación de dichos datos de medios desde dicho al menos un bloque fuente de medios (20; 22; 24) y dichos datos de redundancia FEC (70) para formar una primera secuencia de medios (80) de paquetes de datos FLUTE (81, 82, 83, 84) que tienen dicho primer nivel de sobrecarga de redundancia FEC y dicho segundo conjunto de instrucciones de compilación (52) define la compilación de dichos datos de medios desde dicho al menos un bloque fuente de medios (20; 22; 24) y dichos datos de redundancia FEC
(70) para formar una segunda secuencia de medios (90) de paquetes de datos FLUTE (91, 92, 93, 94) que tienen dicho segundo nivel de sobrecarga de redundancia FEC. - 7. Un servidor de contenidos de medios (100) que comprende:un proveedor de bloques de medios (130) dispuesto para proporcionar al menos un bloque fuente de medios (20; 22; 24) que comprende datos de medios;un gestor de bloque de medios (161) dispuesto para organizar dicho al menos un bloque fuente de medios (20; 22; 24) en dicho archivo contenedor de medios (1);un gestor de información de partición (612) dispuesto para organizar información de partición calculada previamente (30; 32; 34) en dicho archivo contenedor de medios (1), en el que la información de partición es descriptiva de la partición calculada previamente para cada uno de dicho al menos un bloque fuente de medios (20; 22; 24) en un número de símbolos fuente en base a la información de un algoritmo de corrección de errores sin canal de retorno, FEC, a ser aplicado al bloque fuente respectivo (20; 22; 24); yun gestor de metadatos (163) dispuesto para organizar, en dicho archivo contenedor de medios (1), los metadatos(40) que proporcionan una asociación entre dicho al menos un bloque fuente de medios (20; 22; 24) y dicha información de partición (30; 32; 34), caracterizado por:un gestor de instrucciones FEC (166) dispuesto para organizar las instrucciones de cálculo FEC calculadas previamente (50; 52; 54) en dicho archivo contenedor de medios (1), en el que las instrucciones de cálculo FEC calculadas previamente definen el cálculo de los datos de redundancia FEC (70) en base a dichos metadatos (40), dicho al menos un bloque fuente de medios (20; 22; 24) y dicha información de partición (30; 32; 34) para el bloque fuente de medios respectivo (20; 22; 24); yun gestor de instrucciones de compilación (167) dispuesto para i) generar a una primera pista de sugerencia un primer conjunto de instrucciones de compilación (50) que definen la compilación de datos de medios desde cada uno de dicho al menos un bloque fuente de medios (20; 22; 24) y ii) generar a una segunda pista de sugerencia la cuál es diferente de la primera pista de sugerencia un segundo conjunto de instrucciones de compilación (52), el cual es diferente del primer conjunto de instrucciones de compilación (50) que define la compilación de datos de medios para cada uno de dicho al menos un bloque fuente de medios y dichos datos de redundancia FEC(70) para formar una segunda secuencia de medios (90) de paquetes de datos (91; 92; 93; 94) que tiene un segundo nivel de sobrecarga de redundancia FEC, el cual es diferente del primer nivel de sobrecarga de redundancia FEC y iii) organizar dicha primera pista de sugerencias y segunda pista de sugerencia en dicho archivo contenedor de medios (1).
- 8. El servidor de contenidos de medios de acuerdo con la reivindicación 7, en el que dicho proveedor de bloque de medios (130) comprende:un proveedor de archivo de medios (132) dispuesto para proporcionar un archivo fuente de medios (10);un divisor de archivo de medios (134) dispuesto para dividir dicho archivo fuente de medios (10) en dicho al menos un bloque fuente de medios (20; 22; 24);un generador de información de división (136) dispuesto para generar información de división descriptiva de dicha división;un gestor de información de división (138) dispuesto para organizar dicha información de división en dicho archivo contenedor de medios (1).
-
- 9.
- El servidor de contenidos de medios de acuerdo con la reivindicación 8, en el que dicho divisor de archivo de medios (134) está dispuesto para dividir, dicho archivo fuente de medios (10) en dicho al menos un bloque fuente de medios (20; 22; 24) en base a la información de dicho algoritmo FEC.
-
- 10.
- El servidor de contenidos de medios de acuerdo con cualquiera de las reivindicaciones 7 a 9, que además comprende un gestor de información FEC (164) dispuesto para proporcionar, en dicho archivo contenedor de medios (1), información de dicho algoritmo FEC.
-
- 11.
- El servidor de contenidos de medios de acuerdo con cualquiera de las reivindicaciones 7 a 10, que además comprende un gestor de tabla (165) dispuesto para proporcionar, en dicho archivo contenedor de medios (1), una tabla de propiedades (60) que comprende información de localización de almacenamiento de dicho al menos un bloque fuente de medios (20; 22; 24) dentro de dicho archivo contenedor de medios (1).
-
- 12.
- Un archivo contenedor de medios (1) que comprende:
al menos un bloque fuente de medios (20; 22; 24);información de partición calculada previamente (30; 32; 34), en el que la información de partición es descriptiva de la partición calculada previamente para cada uno de dicho al menos un bloque fuente de medios (20; 22; 24) en un número de símbolos fuente en base a la información de un algoritmo de corrección de errores sin canal de retorno, FEC, a ser aplicado al bloque fuente respectivo (20; 22; 24); ymetadatos (40) que proporcionan una asociación entre dicho al menos un bloque fuente de medios (20; 22; 24) y dicha información de partición (30; 32; 34), caracterizado por:instrucciones de cálculo FEC calculadas previamente (50; 52; 54), en el que las instrucciones de cálculo FEC calculadas previamente definen el cálculo de los datos de redundancia FEC (70) en base a dichos metadatos (40), dicho al menos un bloque fuente de medios (20; 22; 24) y dicha información de partición (30; 32; 34) para el bloque fuente de medios respectivo (20; 22; 24); einstrucciones de compilación (50; 52; 54) que comprenden un primer conjunto de instrucciones de compilación(50) en una primera pista de sugerencias que definen la compilación de datos de medios de cada uno de dicho al menos un bloque fuente de medios (20; 22; 24) y dichos datos de redundancia FEC (70) para formar una primera secuencia de medios (80) de paquetes de datos (81, 82, 83, 84) que tienen un primer nivel de sobrecarga de redundancia FEC; y un segundo conjunto de instrucciones de compilación (52) en una segunda pista de sugerencias la cual es diferente de la primera pista de sugerencias que define la compilación de datos de medios de cada uno de dicho al menos un bloque fuente de medios y dichos datos de redundancia FEC (70) para formar una segunda secuencia de medios (90) de paquetes de datos (91, 92, 93, 94) que tienen un segundo nivel de sobrecarga de redundancia FEC, que es diferente del primer nivel de sobrecarga de redundancia FEC. -
- 13.
- El archivo contenedor de medios de acuerdo con la reivindicación 12, que además comprende información de división descriptiva de una división de un archivo fuente de medios (10) en dicho al menos un bloque fuente de medios (20; 22; 24).
-
- 14.
- El archivo contenedor de medios de acuerdo con la reivindicación 12 o 13, que además comprende información de dicho algoritmo FEC.
-
- 15.
- El archivo contenedor de medios de acuerdo con cualquiera de las reivindicaciones 12 o 14, que además comprende una tabla de propiedades (60) que comprende información de localización de almacenamiento de dicho al menos un bloque fuente de medios (20; 22; 24) dentro de dicho archivo contenedor de medios (1).
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US74309506P | 2006-01-05 | 2006-01-05 | |
| US743095P | 2006-01-05 | ||
| PCT/SE2007/000004 WO2007078252A2 (en) | 2006-01-05 | 2007-01-04 | Media container file management |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2392461T3 true ES2392461T3 (es) | 2012-12-10 |
Family
ID=38228633
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES07701091T Active ES2383230T3 (es) | 2006-01-05 | 2007-01-04 | Gestión de archivos contenedores de medios |
| ES07701090T Active ES2392461T3 (es) | 2006-01-05 | 2007-01-04 | Gestión de archivo contenedor de medios |
Family Applications Before (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES07701091T Active ES2383230T3 (es) | 2006-01-05 | 2007-01-04 | Gestión de archivos contenedores de medios |
Country Status (10)
| Country | Link |
|---|---|
| US (2) | US8185794B2 (es) |
| EP (3) | EP2421265B1 (es) |
| JP (3) | JP5112333B2 (es) |
| KR (2) | KR101274422B1 (es) |
| CN (2) | CN101366287B (es) |
| AT (1) | ATE551787T1 (es) |
| DK (1) | DK1969857T3 (es) |
| ES (2) | ES2383230T3 (es) |
| PL (2) | PL1969856T3 (es) |
| WO (2) | WO2007078252A2 (es) |
Families Citing this family (131)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7068729B2 (en) | 2001-12-21 | 2006-06-27 | Digital Fountain, Inc. | Multi-stage code generator and decoder for communication systems |
| US6307487B1 (en) | 1998-09-23 | 2001-10-23 | Digital Fountain, Inc. | Information additive code generator and decoder for communication systems |
| US9240810B2 (en) | 2002-06-11 | 2016-01-19 | Digital Fountain, Inc. | Systems and processes for decoding chain reaction codes through inactivation |
| EP2355360B1 (en) | 2002-10-05 | 2020-08-05 | QUALCOMM Incorporated | Systematic encoding and decoding of chain reaction codes |
| WO2005036753A2 (en) | 2003-10-06 | 2005-04-21 | Digital Fountain, Inc. | Error-correcting multi-stage code generator and decoder for communication systems having single transmitters or multiple transmitters |
| WO2005112250A2 (en) | 2004-05-07 | 2005-11-24 | Digital Fountain, Inc. | File download and streaming system |
| WO2006020826A2 (en) * | 2004-08-11 | 2006-02-23 | Digital Fountain, Inc. | Method and apparatus for fast encoding of data symbols according to half-weight codes |
| US8185794B2 (en) * | 2006-01-05 | 2012-05-22 | Telefonaktiebolaget L M Ericsson (Publ) | Media container file management |
| JP5550834B2 (ja) | 2006-02-13 | 2014-07-16 | デジタル ファウンテン, インコーポレイテッド | 可変fecオーバヘッド及び保護期間を利用したストリーミング及びバッファリング |
| US9270414B2 (en) | 2006-02-21 | 2016-02-23 | Digital Fountain, Inc. | Multiple-field based code generator and decoder for communications systems |
| WO2007134196A2 (en) | 2006-05-10 | 2007-11-22 | Digital Fountain, Inc. | Code generator and decoder using hybrid codes |
| EP2033128A4 (en) | 2006-05-31 | 2012-08-15 | Ibm | METHOD AND SYSTEM FOR DATA TRANSFORMATION OF LOGIC OBJECTS FOR STORAGE PURPOSES |
| US8868930B2 (en) | 2006-05-31 | 2014-10-21 | International Business Machines Corporation | Systems and methods for transformation of logical data objects for storage |
| US9380096B2 (en) | 2006-06-09 | 2016-06-28 | Qualcomm Incorporated | Enhanced block-request streaming system for handling low-latency streaming |
| US9386064B2 (en) | 2006-06-09 | 2016-07-05 | Qualcomm Incorporated | Enhanced block-request streaming using URL templates and construction rules |
| US9432433B2 (en) | 2006-06-09 | 2016-08-30 | Qualcomm Incorporated | Enhanced block-request streaming system using signaling or block creation |
| US20100211690A1 (en) * | 2009-02-13 | 2010-08-19 | Digital Fountain, Inc. | Block partitioning for a data stream |
| US9178535B2 (en) | 2006-06-09 | 2015-11-03 | Digital Fountain, Inc. | Dynamic stream interleaving and sub-stream based delivery |
| US9209934B2 (en) | 2006-06-09 | 2015-12-08 | Qualcomm Incorporated | Enhanced block-request streaming using cooperative parallel HTTP and forward error correction |
| US9419749B2 (en) | 2009-08-19 | 2016-08-16 | Qualcomm Incorporated | Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes |
| US8006160B2 (en) * | 2006-06-29 | 2011-08-23 | Digital Fountain, Inc. | Efficient encoding and decoding methods for representing schedules and processing forward error correction codes |
| US8010863B2 (en) * | 2006-07-28 | 2011-08-30 | Thomson Licensing | Method and apparatus for synchronizing multiple multimedia streams |
| KR100819302B1 (ko) * | 2006-12-01 | 2008-04-02 | 삼성전자주식회사 | 광대역 무선 접속 시스템의 멀티캐스트 및 브로드캐스트서비스를 위한 데이터 송수신 방법 |
| US8209605B2 (en) * | 2006-12-13 | 2012-06-26 | Pado Metaware Ab | Method and system for facilitating the examination of documents |
| US20080177782A1 (en) * | 2007-01-10 | 2008-07-24 | Pado Metaware Ab | Method and system for facilitating the production of documents |
| AP2923A (en) * | 2007-05-04 | 2014-05-31 | Nokia Corp | Media stream recording into a reception hint trackof a multimedia container file |
| US8010507B2 (en) * | 2007-05-24 | 2011-08-30 | Pado Metaware Ab | Method and system for harmonization of variants of a sequential file |
| CN101359996B (zh) | 2007-08-02 | 2012-04-04 | 华为技术有限公司 | 媒体业务呈现方法及通讯系统以及相关设备 |
| US8085767B2 (en) * | 2007-08-30 | 2011-12-27 | General Dynamics C4 Systems, Inc. | Systems and methods for reliable message delivery over digital networks |
| CA2697764A1 (en) | 2007-09-12 | 2009-03-19 | Steve Chen | Generating and communicating source identification information to enable reliable communications |
| US8849183B2 (en) | 2007-10-05 | 2014-09-30 | Qualcomm Incorporated | Location and time based filtering of broadcast information |
| WO2009070770A1 (en) * | 2007-11-28 | 2009-06-04 | Divx Inc. | System and method for playback of partially available multimedia content |
| JP5147950B2 (ja) | 2007-12-14 | 2013-02-20 | トムソン ライセンシング | 可変帯域幅のチャンネルを介してサイマル放送を行う装置および方法 |
| US9369771B2 (en) | 2007-12-18 | 2016-06-14 | Thomson Licensing | Apparatus and method for file size estimation over broadcast networks |
| TW200943975A (en) * | 2008-01-09 | 2009-10-16 | Nokia Corp | Systems and methods for media container file generation |
| US20090228716A1 (en) * | 2008-02-08 | 2009-09-10 | Pado Metawsre Ab | Method and system for distributed coordination of access to digital files |
| US8335259B2 (en) * | 2008-03-12 | 2012-12-18 | Packetvideo Corp. | System and method for reformatting digital broadcast multimedia for a mobile device |
| JP5169362B2 (ja) * | 2008-03-24 | 2013-03-27 | 富士通株式会社 | セッション情報複製方法、前記方法を実行する呼制御サーバ及び前記方法のプログラム |
| EP2109293A1 (en) * | 2008-04-11 | 2009-10-14 | Thomson Licensing | System and method for improving the file transmission reliability |
| TW201014366A (en) * | 2008-05-07 | 2010-04-01 | Digital Fountain Inc | Fast channel zapping and high quality streaming protection over a broadcast channel |
| US20100023842A1 (en) * | 2008-07-25 | 2010-01-28 | Nortel Networks Limited | Multisegment loss protection |
| US8726382B2 (en) * | 2008-08-20 | 2014-05-13 | The Boeing Company | Methods and systems for automated detection and tracking of network attacks |
| US8813220B2 (en) * | 2008-08-20 | 2014-08-19 | The Boeing Company | Methods and systems for internet protocol (IP) packet header collection and storage |
| US8762515B2 (en) * | 2008-08-20 | 2014-06-24 | The Boeing Company | Methods and systems for collection, tracking, and display of near real time multicast data |
| WO2010021525A2 (en) * | 2008-08-22 | 2010-02-25 | Lg Electronics Inc. | A method for processing a web service in an nrt service and a broadcast receiver |
| US8582902B2 (en) * | 2008-09-23 | 2013-11-12 | Telefonaktiebolaget Lm Ericsson (Publ) | Pixel block processing |
| US20100094995A1 (en) * | 2008-10-14 | 2010-04-15 | Entropic Communications, Inc. | Silent Probes in a Communication Network |
| US8418036B2 (en) * | 2008-10-16 | 2013-04-09 | Entropic Communications, Inc. | Method and apparatus for performing forward error correction in an orthogonal frequency division multiplexed communication network |
| US8359370B2 (en) * | 2008-10-31 | 2013-01-22 | Disney Enterprises, Inc. | System and method for managing digital media content |
| US9280778B2 (en) * | 2008-12-15 | 2016-03-08 | Qualcomm Incorporated | Location logging and location and time based filtering |
| US9281847B2 (en) | 2009-02-27 | 2016-03-08 | Qualcomm Incorporated | Mobile reception of digital video broadcasting—terrestrial services |
| JP2010213150A (ja) * | 2009-03-12 | 2010-09-24 | Nec Corp | 送信装置、大容量ファイル配信システム、同システムにおけるファィル再送制御方法、再送制御プログラム |
| RU2534936C2 (ru) | 2009-04-09 | 2014-12-10 | Телефонактиеболагет Лм Эрикссон (Пабл) | Управление мультимедийными контейнерными файлами |
| US9298722B2 (en) * | 2009-07-16 | 2016-03-29 | Novell, Inc. | Optimal sequential (de)compression of digital data |
| US9288010B2 (en) | 2009-08-19 | 2016-03-15 | Qualcomm Incorporated | Universal file delivery methods for providing unequal error protection and bundled file delivery services |
| US9917874B2 (en) | 2009-09-22 | 2018-03-13 | Qualcomm Incorporated | Enhanced block-request streaming using block partitioning or request controls for improved client-side handling |
| US20110096828A1 (en) * | 2009-09-22 | 2011-04-28 | Qualcomm Incorporated | Enhanced block-request streaming using scalable encoding |
| WO2011045816A1 (en) * | 2009-10-15 | 2011-04-21 | Vishal Borker | Method and apparatus for content delivery over internet |
| US8351600B2 (en) * | 2009-10-30 | 2013-01-08 | Cleversafe, Inc. | Distributed storage network and method for encrypting and decrypting data using hash functions |
| KR101750048B1 (ko) * | 2009-11-13 | 2017-07-03 | 삼성전자주식회사 | 변속 재생 서비스 제공 방법 및 장치 |
| KR101786051B1 (ko) | 2009-11-13 | 2017-10-16 | 삼성전자 주식회사 | 데이터 제공 방법 및 장치와 데이터 수신 방법 및 장치 |
| KR101777347B1 (ko) * | 2009-11-13 | 2017-09-11 | 삼성전자주식회사 | 부분화에 기초한 적응적인 스트리밍 방법 및 장치 |
| KR101750049B1 (ko) | 2009-11-13 | 2017-06-22 | 삼성전자주식회사 | 적응적인 스트리밍 방법 및 장치 |
| KR101786050B1 (ko) * | 2009-11-13 | 2017-10-16 | 삼성전자 주식회사 | 데이터 전송 방법 및 장치 |
| KR101737084B1 (ko) * | 2009-12-07 | 2017-05-17 | 삼성전자주식회사 | 메인 콘텐트에 다른 콘텐트를 삽입하여 스트리밍하는 방법 및 장치 |
| US8743178B2 (en) * | 2010-01-05 | 2014-06-03 | Dolby Laboratories Licensing Corporation | Multi-view video format control |
| KR101777348B1 (ko) * | 2010-02-23 | 2017-09-11 | 삼성전자주식회사 | 데이터 전송 방법 및 장치와 데이터 수신 방법 및 장치 |
| US11429486B1 (en) | 2010-02-27 | 2022-08-30 | Pure Storage, Inc. | Rebuilding data via locally decodable redundancy in a vast storage network |
| US9136981B2 (en) * | 2010-03-03 | 2015-09-15 | Qualcomm Incorporated | Block aggregation of objects in a communication system |
| KR20110105710A (ko) * | 2010-03-19 | 2011-09-27 | 삼성전자주식회사 | 복수의 챕터를 포함하는 콘텐트를 적응적으로 스트리밍하는 방법 및 장치 |
| JP5174076B2 (ja) * | 2010-03-30 | 2013-04-03 | 株式会社東芝 | 計算処理装置、受信処理装置、受信処理方法及び受信処理プログラム |
| KR101837687B1 (ko) | 2010-06-04 | 2018-03-12 | 삼성전자주식회사 | 콘텐트의 품질을 결정하는 복수의 인자에 기초한 적응적인 스트리밍 방법 및 장치 |
| US9049497B2 (en) | 2010-06-29 | 2015-06-02 | Qualcomm Incorporated | Signaling random access points for streaming video data |
| US8918533B2 (en) | 2010-07-13 | 2014-12-23 | Qualcomm Incorporated | Video switching for streaming video data |
| US9185439B2 (en) | 2010-07-15 | 2015-11-10 | Qualcomm Incorporated | Signaling data for multiplexing video components |
| US9596447B2 (en) | 2010-07-21 | 2017-03-14 | Qualcomm Incorporated | Providing frame packing type information for video coding |
| US9319448B2 (en) | 2010-08-10 | 2016-04-19 | Qualcomm Incorporated | Trick modes for network streaming of coded multimedia data |
| US9274977B2 (en) * | 2010-11-01 | 2016-03-01 | International Business Machines Corporation | Storing data integrity information utilizing dispersed storage |
| TW201222284A (en) * | 2010-11-16 | 2012-06-01 | Hon Hai Prec Ind Co Ltd | Method for generating media file list |
| US9270299B2 (en) | 2011-02-11 | 2016-02-23 | Qualcomm Incorporated | Encoding and decoding using elastic codes with flexible source block mapping |
| US8958375B2 (en) | 2011-02-11 | 2015-02-17 | Qualcomm Incorporated | Framing for an improved radio link protocol including FEC |
| US9485108B2 (en) | 2011-03-14 | 2016-11-01 | Qualcomm Incorporated | System and apparatus for using multichannel file delivery over unidirectional transport (“FLUTE”) protocol for delivering different classes of files in a broadcast network |
| CN102739417B (zh) * | 2011-04-01 | 2014-08-20 | 华为技术有限公司 | 流媒体业务处理系统及故障检测方法 |
| WO2012148388A1 (en) * | 2011-04-26 | 2012-11-01 | Research In Motion Limited | Representation grouping for http streaming |
| US9451401B2 (en) | 2011-05-27 | 2016-09-20 | Qualcomm Incorporated | Application transport level location filtering of internet protocol multicast content delivery |
| US9087048B2 (en) | 2011-06-10 | 2015-07-21 | Linkedin Corporation | Method of and system for validating a fact checking system |
| US8768782B1 (en) | 2011-06-10 | 2014-07-01 | Linkedin Corporation | Optimized cloud computing fact checking |
| KR20120138604A (ko) * | 2011-06-14 | 2012-12-26 | 삼성전자주식회사 | 멀티미디어 시스템에서 복합 미디어 컨텐츠를 송수신하는 방법 및 장치 |
| US9590814B2 (en) * | 2011-08-01 | 2017-03-07 | Qualcomm Incorporated | Method and apparatus for transport of dynamic adaptive streaming over HTTP (DASH) initialization segment description fragments as user service description fragments |
| US9253233B2 (en) | 2011-08-31 | 2016-02-02 | Qualcomm Incorporated | Switch signaling methods providing improved switching between representations for adaptive HTTP streaming |
| US9843844B2 (en) | 2011-10-05 | 2017-12-12 | Qualcomm Incorporated | Network streaming of media data |
| US9294226B2 (en) | 2012-03-26 | 2016-03-22 | Qualcomm Incorporated | Universal object delivery and template-based file delivery |
| KR101967884B1 (ko) * | 2012-07-12 | 2019-04-12 | 삼성전자주식회사 | 방송 및 통신 시스템에서 패킷 송/수신 장치 및 방법 |
| WO2014028255A1 (en) * | 2012-08-15 | 2014-02-20 | Sony Corporation | Broadband delivery of personalization information for advanced tv services |
| US8880527B2 (en) * | 2012-10-31 | 2014-11-04 | Nokia Corporation | Method and apparatus for generating a media compilation based on criteria based sampling |
| US9483159B2 (en) | 2012-12-12 | 2016-11-01 | Linkedin Corporation | Fact checking graphical user interface including fact checking icons |
| KR102127685B1 (ko) | 2013-04-17 | 2020-06-29 | 삼성전자주식회사 | 순방향 오류 정정 패킷 송수신 장치 및 방법 |
| US9781181B2 (en) * | 2013-06-17 | 2017-10-03 | Qualcomm Incorporated | Multiple file delivery over unidirectional transport protocol sessions for a service |
| KR102269311B1 (ko) * | 2013-07-05 | 2021-06-28 | 소니그룹주식회사 | 송신 장치, 송신 방법, 수신 장치 및 수신 방법 |
| US20150095320A1 (en) | 2013-09-27 | 2015-04-02 | Trooclick France | Apparatus, systems and methods for scoring the reliability of online information |
| US10169424B2 (en) | 2013-09-27 | 2019-01-01 | Lucas J. Myslinski | Apparatus, systems and methods for scoring and distributing the reliability of online information |
| KR101880467B1 (ko) * | 2014-02-24 | 2018-07-20 | 엘지전자 주식회사 | 방송 신호 송신 장치, 방송 신호 수신 장치, 방송 신호 송신 방법, 및 방송 신호 수신 방법 |
| US12271955B2 (en) | 2014-02-28 | 2025-04-08 | Lucas J. Myslinski | Drone device |
| US8990234B1 (en) | 2014-02-28 | 2015-03-24 | Lucas J. Myslinski | Efficient fact checking method and system |
| US9972055B2 (en) | 2014-02-28 | 2018-05-15 | Lucas J. Myslinski | Fact checking method and system utilizing social networking information |
| US9643722B1 (en) | 2014-02-28 | 2017-05-09 | Lucas J. Myslinski | Drone device security system |
| DE102014102898A1 (de) | 2014-03-05 | 2015-09-10 | Technische Universität München | Vorrichtung und Verfahren zur Datenübertragung |
| CN106133717B (zh) * | 2014-06-25 | 2018-06-01 | 深圳市大疆创新科技有限公司 | 管理多媒体信息的方法、设备、系统及相关可读存储介质 |
| US9455750B2 (en) | 2014-07-28 | 2016-09-27 | Qualcomm Incorporated | Source block size selection |
| US9189514B1 (en) | 2014-09-04 | 2015-11-17 | Lucas J. Myslinski | Optimized fact checking method and system |
| WO2016097482A1 (en) * | 2014-12-19 | 2016-06-23 | Nokia Technologies Oy | Media encapsulating and decapsulating |
| US10129308B2 (en) * | 2015-01-08 | 2018-11-13 | Qualcomm Incorporated | Session description information for over-the-air broadcast media data |
| US10136153B2 (en) * | 2015-02-04 | 2018-11-20 | Telefonaktiebolaget Lm Ericsson (Publ) | DRAP identification and decoding |
| US9787430B2 (en) * | 2015-05-01 | 2017-10-10 | Qualcomm Incorporated | Dynamic setting of FEC in eMBMS video streaming |
| US20160323063A1 (en) * | 2015-05-01 | 2016-11-03 | Qualcomm Incorporated | Bundled Forward Error Correction (FEC) for Multiple Sequenced Flows |
| EP3306937A1 (en) | 2016-10-05 | 2018-04-11 | Thomson Licensing | Method and apparatus for encoding and decoding a video |
| US11785094B2 (en) | 2016-11-08 | 2023-10-10 | Pearson Education, Inc. | Secure content delivery computer system |
| US10785311B2 (en) * | 2016-11-08 | 2020-09-22 | Pearson Education, Inc. | Secure cloud-managed content delivery computer ecosystem |
| US11983253B2 (en) | 2017-02-13 | 2024-05-14 | Tunego, Inc. | Non-fungible token (NFT) content identifier with split tracking |
| US12008086B2 (en) | 2017-02-13 | 2024-06-11 | Tunego, Inc. | Media composition using non-fungible token (NFT) configurable pieces |
| US11250111B2 (en) | 2017-02-13 | 2022-02-15 | Tunego, Inc. | Tokenized media content management |
| US11604858B2 (en) | 2017-02-13 | 2023-03-14 | Tunego, Inc. | Media content management |
| US11687628B2 (en) | 2017-02-13 | 2023-06-27 | Tunego, Inc. | Non-fungible token (NFT) authenticity protocol with fraud deterrent |
| US10860694B2 (en) | 2017-02-13 | 2020-12-08 | Tunego, Inc. | Systems and methods for content metadata management |
| US11256788B2 (en) | 2017-02-13 | 2022-02-22 | Tunego, Inc. | Tokenized media content management |
| CN107967837A (zh) * | 2017-05-31 | 2018-04-27 | 常州信息职业技术学院 | 一种基于容器的实训平台及其实施方法 |
| US11392637B2 (en) | 2019-07-10 | 2022-07-19 | Tunego, Inc. | Systems and methods for content metadata management |
| US11385923B2 (en) * | 2019-07-16 | 2022-07-12 | International Business Machines Corporation | Container-based virtualization system extending kernel functionality using kernel modules compiled by a compiling container and loaded by an application container |
| AU2021329831A1 (en) * | 2020-08-20 | 2023-03-09 | Pearson Education, Inc. | Secure content delivery computer system |
| CN114499993B (zh) * | 2021-12-30 | 2022-11-29 | 郑州大学 | 一种基于单向光闸的高可靠性安全传输与控制系统及方法 |
| WO2024206380A1 (en) * | 2023-03-30 | 2024-10-03 | Triveni Digital, Inc. | Forward error correction block partitioning |
Family Cites Families (37)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP3571918B2 (ja) * | 1997-06-04 | 2004-09-29 | 株式会社東芝 | 符号伝送方法、送信装置、受信装置および通信システム |
| US6516435B1 (en) | 1997-06-04 | 2003-02-04 | Kabushiki Kaisha Toshiba | Code transmission scheme for communication system using error correcting codes |
| JPH11196072A (ja) * | 1997-12-30 | 1999-07-21 | Sony Corp | 誤り訂正符号化方法及びその装置並びにデータ伝送方法 |
| US6134243A (en) * | 1998-01-15 | 2000-10-17 | Apple Computer, Inc. | Method and apparatus for media data transmission |
| JP2000078197A (ja) * | 1998-09-03 | 2000-03-14 | Toshiba Corp | 通信ノード及びパケット転送方法 |
| US6754277B1 (en) * | 1998-10-06 | 2004-06-22 | Texas Instruments Incorporated | Error protection for compressed video |
| JP2000267699A (ja) * | 1999-03-19 | 2000-09-29 | Nippon Telegr & Teleph Corp <Ntt> | 音響信号符号化方法および装置、そのプログラム記録媒体、および音響信号復号装置 |
| JP2001086153A (ja) * | 1999-09-09 | 2001-03-30 | Canon Inc | データ通信装置、データ通信システム、データ通信方法及び記憶媒体 |
| US6732314B1 (en) * | 2000-05-26 | 2004-05-04 | 3Com Corporation | Method and apparatus for L2TP forward error correction |
| US6876705B2 (en) * | 2001-03-05 | 2005-04-05 | Intervideo, Inc. | Systems and methods for decoding of partially corrupted reversible variable length code (RVLC) intra-coded macroblocks and partial block decoding of corrupted macroblocks in a video decoder |
| US7111221B2 (en) * | 2001-04-02 | 2006-09-19 | Koninklijke Philips Electronics N.V. | Digital transmission system for an enhanced ATSC 8-VSB system |
| KR100469721B1 (ko) * | 2001-06-16 | 2005-02-02 | 삼성전자주식회사 | 고속순방향패킷전송 방식의 이동통신시스템에서의 사용자데이터 전송방법 및 장치 |
| JP2003152752A (ja) * | 2001-08-29 | 2003-05-23 | Matsushita Electric Ind Co Ltd | データ送受信方法 |
| JP2004005934A (ja) | 2002-04-05 | 2004-01-08 | Matsushita Electric Ind Co Ltd | 記録媒体、記録装置、再生装置、記録方法、再生方法、及びプログラム |
| CN1468002A (zh) * | 2002-06-27 | 2004-01-14 | 上海汉唐科技有限公司 | 基于因特网的流媒体压缩、传输与存贮系统 |
| JP2004088766A (ja) | 2002-07-22 | 2004-03-18 | Matsushita Electric Ind Co Ltd | データ管理装置及びデータ管理システム |
| EP2355360B1 (en) | 2002-10-05 | 2020-08-05 | QUALCOMM Incorporated | Systematic encoding and decoding of chain reaction codes |
| JP2006503516A (ja) * | 2002-10-15 | 2006-01-26 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | Ipネットワークでfgs符号化映像をストリーミングするための誤り回復を備えるシステム及び方法 |
| JP4250477B2 (ja) | 2003-07-15 | 2009-04-08 | キヤノン株式会社 | メディアデータ記録方法、メディアデータ記録装置、コンピュータプログラム及びコンピュータ読み取り可能な記録媒体 |
| GB2406483A (en) * | 2003-09-29 | 2005-03-30 | Nokia Corp | Burst transmission |
| GB2406488A (en) * | 2003-09-29 | 2005-03-30 | Nokia Corp | Sigalling in a communications network |
| SE0302778D0 (sv) | 2003-10-17 | 2003-10-17 | Ericsson Telefon Ab L M | Container format for multimedia presentations |
| US20050102371A1 (en) * | 2003-11-07 | 2005-05-12 | Emre Aksu | Streaming from a server to a client |
| WO2005048517A1 (en) * | 2003-11-12 | 2005-05-26 | Philips Intellectual Property & Standards Gmbh | Data packet transmission |
| WO2005074291A1 (ja) * | 2004-01-28 | 2005-08-11 | Nec Corporation | コンテンツの符号化、配信及び受信方法と装置とシステムならびにプログラム |
| US7599294B2 (en) * | 2004-02-13 | 2009-10-06 | Nokia Corporation | Identification and re-transmission of missing parts |
| US8296436B2 (en) * | 2004-03-22 | 2012-10-23 | Nokia Corporation | Conveying parameters for broadcast/multicast sessions via a communication protocol |
| US20050216472A1 (en) * | 2004-03-29 | 2005-09-29 | David Leon | Efficient multicast/broadcast distribution of formatted data |
| GB2415873A (en) * | 2004-06-30 | 2006-01-04 | Nokia Corp | Erasure information generation in Forward Error Correction decoding |
| EP1832115A1 (en) * | 2004-12-20 | 2007-09-12 | Freescale Semiconductor Inc. | Broadcasting of textual and multimedia information |
| US20060291475A1 (en) * | 2005-06-28 | 2006-12-28 | Noam Cohen | Selective forward error correction |
| US20070002852A1 (en) * | 2005-06-30 | 2007-01-04 | Nokia Corporation | Fixed interleaving length for MPE-FEC |
| EP1932315A4 (en) * | 2005-09-01 | 2012-05-09 | Nokia Corp | METHOD OF INSERTING SVG CONTENTS INTO AN ISO BASIC MEDIA FILE FOR PROGRESSIVE DOWNLOADING AND STREAMING OF RICH MEDIA CONTENTS |
| US8185794B2 (en) * | 2006-01-05 | 2012-05-22 | Telefonaktiebolaget L M Ericsson (Publ) | Media container file management |
| TW200943975A (en) * | 2008-01-09 | 2009-10-16 | Nokia Corp | Systems and methods for media container file generation |
| US8787153B2 (en) * | 2008-02-10 | 2014-07-22 | Cisco Technology, Inc. | Forward error correction based data recovery with path diversity |
| US7940777B2 (en) * | 2008-02-26 | 2011-05-10 | Cisco Technology, Inc. | Loss-free packet networks |
-
2007
- 2007-01-04 US US12/160,158 patent/US8185794B2/en not_active Expired - Fee Related
- 2007-01-04 ES ES07701091T patent/ES2383230T3/es active Active
- 2007-01-04 PL PL07701090T patent/PL1969856T3/pl unknown
- 2007-01-04 JP JP2008549453A patent/JP5112333B2/ja not_active Expired - Fee Related
- 2007-01-04 EP EP11186282.7A patent/EP2421265B1/en not_active Not-in-force
- 2007-01-04 PL PL07701091T patent/PL1969857T3/pl unknown
- 2007-01-04 EP EP07701091A patent/EP1969857B1/en not_active Not-in-force
- 2007-01-04 WO PCT/SE2007/000004 patent/WO2007078252A2/en not_active Ceased
- 2007-01-04 JP JP2008549452A patent/JP2009522921A/ja active Pending
- 2007-01-04 CN CN2007800019434A patent/CN101366287B/zh not_active Expired - Fee Related
- 2007-01-04 KR KR1020087016332A patent/KR101274422B1/ko active Active
- 2007-01-04 WO PCT/SE2007/000005 patent/WO2007078253A2/en not_active Ceased
- 2007-01-04 AT AT07701091T patent/ATE551787T1/de active
- 2007-01-04 US US12/160,155 patent/US8225164B2/en active Active
- 2007-01-04 CN CN2007800019631A patent/CN101416526B/zh not_active Expired - Fee Related
- 2007-01-04 ES ES07701090T patent/ES2392461T3/es active Active
- 2007-01-04 KR KR1020087016330A patent/KR101353620B1/ko not_active Expired - Fee Related
- 2007-01-04 DK DK07701091.6T patent/DK1969857T3/da active
- 2007-01-04 EP EP07701090A patent/EP1969856B1/en not_active Not-in-force
-
2012
- 2012-05-24 JP JP2012119049A patent/JP5542872B2/ja not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| KR20080083299A (ko) | 2008-09-17 |
| US20100023525A1 (en) | 2010-01-28 |
| JP2009522921A (ja) | 2009-06-11 |
| WO2007078253A3 (en) | 2007-08-30 |
| JP5112333B2 (ja) | 2013-01-09 |
| EP1969857A2 (en) | 2008-09-17 |
| WO2007078253A2 (en) | 2007-07-12 |
| EP2421265B1 (en) | 2013-10-02 |
| WO2007078252A2 (en) | 2007-07-12 |
| ATE551787T1 (de) | 2012-04-15 |
| KR101274422B1 (ko) | 2013-06-14 |
| JP2012199974A (ja) | 2012-10-18 |
| JP2009522922A (ja) | 2009-06-11 |
| DK1969857T3 (da) | 2012-07-16 |
| US20090089535A1 (en) | 2009-04-02 |
| KR20080081954A (ko) | 2008-09-10 |
| EP1969856A2 (en) | 2008-09-17 |
| JP5542872B2 (ja) | 2014-07-09 |
| PL1969857T3 (pl) | 2012-10-31 |
| CN101416526A (zh) | 2009-04-22 |
| ES2383230T3 (es) | 2012-06-19 |
| KR101353620B1 (ko) | 2014-01-20 |
| US8185794B2 (en) | 2012-05-22 |
| EP1969857B1 (en) | 2012-03-28 |
| EP2421265A1 (en) | 2012-02-22 |
| CN101416526B (zh) | 2013-06-19 |
| WO2007078252A3 (en) | 2008-11-27 |
| PL1969856T3 (pl) | 2013-01-31 |
| US8225164B2 (en) | 2012-07-17 |
| EP1969856B1 (en) | 2012-08-15 |
| CN101366287B (zh) | 2011-09-21 |
| CN101366287A (zh) | 2009-02-11 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2383230T3 (es) | Gestión de archivos contenedores de medios | |
| US9294226B2 (en) | Universal object delivery and template-based file delivery | |
| US9900166B2 (en) | Methods for delivery of flows of objects over broadcast/multicast enabled networks | |
| US9015564B2 (en) | Content delivery system with allocation of source data and repair data among HTTP servers | |
| CN106233693B (zh) | 广播信号发送设备、广播信号接收设备、广播信号发送方法和广播信号接收方法 | |
| US20070186005A1 (en) | Method to embedding SVG content into ISO base media file format for progressive downloading and streaming of rich media content | |
| BRPI0608977A2 (pt) | métodos e equipamento para empacotamento de conteúdo para transmissão através de uma rede | |
| CN107431830B (zh) | 广播信号发送设备、广播信号接收设备、广播信号发送方法和广播信号接收方法 | |
| CN111262877B (zh) | 广播信号传输设备、广播信号接收设备及其方法 | |
| Lim | MMT, new alternative to MPEG-2 TS and RTP | |
| CN106416284B (zh) | 广播信号发送设备和广播信号发送方法 |