ES2845901T3 - Aparato, sistema y procedimiento de cambio de velocidad adaptativa de contenido de streaming - Google Patents

Aparato, sistema y procedimiento de cambio de velocidad adaptativa de contenido de streaming Download PDF

Info

Publication number
ES2845901T3
ES2845901T3 ES05744015T ES05744015T ES2845901T3 ES 2845901 T3 ES2845901 T3 ES 2845901T3 ES 05744015 T ES05744015 T ES 05744015T ES 05744015 T ES05744015 T ES 05744015T ES 2845901 T3 ES2845901 T3 ES 2845901T3
Authority
ES
Spain
Prior art keywords
streamlets
streamlet
video
requests
module
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.)
Expired - Lifetime
Application number
ES05744015T
Other languages
English (en)
Inventor
Robert Major
Mark Hurst
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dish Technologies LLC
Original Assignee
Dish Technologies LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=35320874&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=ES2845901(T3) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Dish Technologies LLC filed Critical Dish Technologies LLC
Application granted granted Critical
Publication of ES2845901T3 publication Critical patent/ES2845901T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44016Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving splicing one content stream with another content stream, e.g. for substituting a video clip
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/25Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/756Media network packet handling adapting media to device capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/23439Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/258Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
    • H04N21/25808Management of client data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4331Caching operations, e.g. of an advertisement for later insertion during playback
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44204Monitoring of content usage, e.g. the number of times a movie has been viewed, copied or the amount which has been watched
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44209Monitoring of downstream path of the transmission network originating from a server, e.g. bandwidth variations of a wireless network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control 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/643Communication protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control 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/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64746Control signals issued by the network directed to the server or the client
    • H04N21/64761Control signals issued by the network directed to the server or the client directed to the server
    • H04N21/64769Control signals issued by the network directed to the server or the client directed to the server for rate control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control 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/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64784Data processing by the network
    • H04N21/64792Controlling the complexity of the content stream, e.g. by dropping packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6587Control parameters, e.g. trick play commands, viewpoint selection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/84Generation or processing of descriptive data, e.g. content descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

Un aparato para transmisión continua en tiempo real (streaming) de contenido a velocidad adaptativa, comprendiendo el aparato una estación de usuario final (104), que comprende: un módulo controlador de agente (402) para ser acoplado a través de un controlador de red (406) a un conjunto de uno o más servidores (102, 116) sobre un conjunto de una o más conexiones de red TCP/IP (108), en el que el conjunto de servidores (102, 116) almacenan una pluralidad de copias diferentes (204, 206, 208) de un mismo video único (200), cada una codificada a una velocidad de bits diferente para proporcionar diferentes niveles de calidad y cada una dividida en una pluralidad de streamlets (212) que almacenan colectivamente datos para reproducir el video completo (200) pero que almacenan datos individualmente para reproducir solo una porción del video que comienza en un tiempo de inicio único y cuya duración es menor que la duración total de reproducción del video único (200), y en el que cada uno de los streamlets (212) de cada una de las copias está encapsulado como un objeto multimedia independiente (212) reproducible por la estación de usuario final (104), el módulo controlador de agente (402) está configurado para realizar solicitudes de streamlet (606) para recibir streamlets (212) que almacenan porciones secuenciales del video único (200), en el que cada solicitud de streamlet es para un nivel de calidad particular seleccionado por el módulo controlador de agente solicitando la porción de una copia particular del video único (200); el controlador de red (406) está configurado para procesar dichas solicitudes del módulo controlador de agente (402) para streamlets y realizar solicitudes HTTP al conjunto de servidores (102, 116) sobre el conjunto de conexiones de red (108) para obtener los streamlets, en el que el controlador de red está configurado para realizar varias solicitudes de streamlets de manera simultánea, en el que el módulo controlador de agente (402) además está configurado para monitorizar (706) el progreso de las solicitudes de streamlet (606) calculando un factor de rendimiento de acuerdo con los tiempos de recepción para las respuestas a las solicitudes de streamlet; en función de dicho progreso monitorizado, el módulo controlador de agente (402) además está configurado para realizar determinaciones sucesivas (611, 708, 710, 712, 714) para cambiar la calidad de reproducción para lograr una reproducción continua del video único (200) solicitando a los streamlets (212) de la más alta calidad una de las copias (204, 206, 208) determinada como sustentable en ese momento, en el que la determinación comprende realizar un cambio ascendente a una copia de mayor calidad cuando el factor de rendimiento es mayor que un umbral de activación y el factor de rendimiento estimado para la copia de mayor calidad es mayor que el umbral de activación; un módulo de almacenamiento provisional (409) configurado para colocar los streamlets solicitados (212) de manera secuencial en orden de tiempo de reproducción ascendente; y, un reproductor de contenido (408) para reproducir los streamlets solicitados (212) según el almacenamiento provisional del módulo de almacenamiento provisional (409) para reproducir el video único (200).

Description

DESCRIPCIÓN
Aparato, sistema y procedimiento de cambio de velocidad adaptativa de contenido de streaming Antecedentes de la invención
Campo de la invención
La presente invención se refiere a un aparato de presentación de flujos de velocidad adaptativa, y a procedimientos relacionados y medios de almacenamiento legibles por computadora. En algunas realizaciones, la invención se refiere a la transmisión continua en tiempo real (streaming) de video a través de redes conmutadas por paquetes tales como el Internet, y más particularmente se refiere al cambio de velocidad adaptativa de contenido de streaming a través de dichas redes.
Descripción de la técnica relacionada
La internet se está convirtiendo rápidamente en el procedimiento preferido para distribuir archivos multimedia a los usuarios finales. Actualmente, es posible descargar música o video a las computadoras, a los teléfonos celulares o, prácticamente, a cualquier dispositivo con capacidad habilitada en red. Muchos reproductores portátiles de elementos multimedia están equipados con conexiones de red y habilitados para reproducir música o videos. Los archivos de música o videos (en lo sucesivo, «archivos multimedia») se pueden almacenar de manera local en el reproductor de elementos multimedia o en la computadora, o se pueden transmitir o descargar desde un servidor.
La «transmisión continua en tiempo real (streaming) de elementos multimedia» se refiere a una tecnología que suministra contenido a una velocidad suficiente como para presentar los elementos multimedia a un usuario en tiempo real a medida que se reciben los datos. Los datos se pueden almacenar en la memoria de manera temporal hasta que se reproducen y posteriormente se pueden eliminar. El usuario tiene la inmediata satisfacción de ver el contenido solicitado sin esperar que el archivo multimedia se descargue por completo. Desafortunadamente, la calidad del audio/video que se puede recibir para la presentación en tiempo real está restringida por el ancho de banda disponible de la conexión de red del usuario. El streaming, que también puede denominarse en la presente memoria simplemente como transmisión, se puede utilizar para suministrar contenido a petición (grabado previamente) o desde difusiones en vivo.
De manera alternativa, los archivos multimedia se pueden descargar y almacenar en dispositivos de almacenamiento persistentes como, por ejemplo, un disco duro o un almacenamiento óptico, para una posterior presentación. La descarga completa de los archivos multimedia puede tomar grandes cantidades de tiempo según la conexión de red. Una vez descargados, sin embargo, el contenido se puede ver de forma repetida en cualquier momento o en cualquier lugar. Los archivos multimedia preparados para descarga usualmente están codificados con un audio/video de calidad superior a los que se pueden suministrar en tiempo real. En general, a los usuarios no les gusta esta opción, ya que tienden a querer ver u oír el archivo multimedia de manera instantánea.
El streaming ofrece la ventaja del acceso inmediato al contenido, pero actualmente sacrifica calidad en comparación con la descarga de un archivo del mismo contenido. El streaming proporciona, además, la oportunidad para el usuario de seleccionar diferente contenido para ver sobre una base adhoc, mientras que la descarga está, por definición, restringida para recibir una selección de contenido específico en su totalidad o de ningún modo. La descarga soporta, además, el rebobinado, el avance rápido y las operaciones de búsqueda directa, mientras que el streaming no puede soportar plenamente estas funciones. El streaming es, además, vulnerable a los fallos o a la congestión de la red.
Otra tecnología, conocida como «descargas progresivas», intenta combinar las fortalezas de las dos tecnologías anteriores. Cuando se inicia una descarga progresiva, comienza la descarga del archivo multimedia, y el reproductor de elementos multimedia espera para comenzar la reproducción hasta que haya suficiente archivo descargado, de modo que la reproducción pueda comenzar con la esperanza de que el recordatorio del archivo será descargado completamente antes de que la reproducción «se ponga al día». Este período de espera antes de la reproducción puede ser sustancial según las condiciones de la red y, por lo tanto, no es una solución completa o totalmente aceptable para el problema de la presentación de elementos multimedia en una red. En general, existen tres desafíos básicos con respecto al streaming de transporte de datos a lo largo de la red como, por ejemplo, la internet que tiene una cantidad variada de pérdida de datos. El primer desafío es la confiabilidad. La mayoría de las soluciones de streaming utilizan una conexión TCP, o un «circuito virtual» para transmitir datos. Una conexión TCP proporciona un mecanismo de entrega garantizado de modo que los datos que se envían desde un punto de conexión serán entregados en el destino, incluso si las partes se pierden y se vuelven a transmitir. Un corte en la continuidad de una conexión TCP puede tener serias consecuencias cuando los datos se deben entregar en tiempo real. Cuando un adaptador de red detecta retrasos o pérdidas en una conexión TCP, el adaptador «reduce la potencia» de los intentos de transmisión durante un momento y lentamente reanuda el paso de transmisión original. Este comportamiento es un intento de aliviar la congestión percibida. Dicha reducción de velocidad es perjudicial para la experiencia visual o auditiva del usuario y, por lo tanto, no es aceptable.
El segundo desafío para el transporte de datos es la eficiencia. La eficiencia se refiere a lo bien que utiliza el usuario el ancho de banda disponible para la entrega del flujo de contenido. Esta medida está directamente relacionada con la confiabilidad de la conexión TCP. Cuando la conexión TCP está sufriendo de problemas de confiabilidad da lugar a una pérdida de la utilización del ancho de banda. Algunas veces, la medida de la eficiencia varía repentinamente y puede impactar enormemente en la experiencia visual.
El tercer desafío es la latencia. La latencia es la medida del tiempo desde el punto de vista del cliente, del intervalo entre el momento en que se emite la solicitud y el momento en que comienzan a llegar los datos de respuesta. Este valor se ve afectado por la confiabilidad y la eficiencia de la conexión de red, y el tiempo de procesamiento requerido por el origen para preparar la respuesta. Un servidor ocupado o sobrecargado, por ejemplo, tomará más tiempo para procesar una solicitud. Así como también afecta el tiempo de partida de una solicitud particular, la latencia tiene un impacto significativo sobre el rendimiento de la red de TCP.
A partir de la discusión anterior, es evidente que existe una necesidad de un aparato, un sistema y un procedimiento que alivie los problemas de confiabilidad, eficiencia y latencia. Además, este tipo de aparato, sistema, y procedimiento ofrecería una vista instantánea junto con la capacidad de avance rápido, rebobinado, búsqueda directa y exploración de múltiples flujos. Ventajosamente, este aparato, sistema y procedimiento utilizaría múltiples conexiones entre una fuente y el destino, solicitando flujos de velocidad de bits variada según las condiciones de la red.
El documento de patente US6389473B1 describe un sistema en el que un archivo multimedia de difusión se divide en porciones de varias longitudes de tiempo que se cargan desde un ordenador a un servidor en tiempo real y se solicitan desde el servidor por dispositivos de cliente en tiempo real. Los archivos multimedia pueden ser codificados a diferentes velocidades antes de ser divididos en porciones y ser cargados en el servidor para crear un formato de archivo particular. El dispositivo de cliente puede seleccionar el archivo a descargar a una velocidad adecuada según las condiciones de la red. Los documentos de patente EP1298931 A2 y EP1395014 A1 divulgan otros ejemplos de adaptación de la velocidad de transmisión (streaming) de contenido multimedia a las condiciones de la red.
La presente invención ha sido desarrollada en respuesta al estado actual de la técnica y, en particular, en respuesta a los problemas y necesidades de la técnica que aún no han sido completamente resueltos por los sistemas de transmisión (streaming) de contenido actualmente disponibles. Por consiguiente, la presente invención ha sido desarrollada para proporcionar un aparato, sistema y procedimiento para la transmisión de contenido a velocidad adaptativa que supere muchas o todas las deficiencias de la técnica antes discutidas. La presente invención está definida por las reivindicaciones independientes adjuntas.
El aparato para la transmisión de contenido a velocidad adaptativa está provisto de una unidad lógica que contiene una pluralidad de módulos configurados para ejecutar funcionalmente las etapas necesarias. En las realizaciones descritas, estos módulos incluyen un módulo controlador de agente configurado para solicitar simultáneamente una pluralidad de streamlets, el módulo controlador de agente además está configurado para monitorizar continuamente solicitudes de streamlet y las respuestas subsiguientes y, por consiguiente, solicitar streamlets de mayor o menor calidad, y un módulo de almacenamiento provisional configurado para almacenar provisionalmente los streamlets y organizar los streamlets para su reproducción en un reproductor de contenido. En una realización, el aparato además está configurado para establecer múltiples conexiones de Protocolo de Control de Transmisión (TCP) con un servidor de contenido y solicitar streamlets de diferentes velocidades de bits. Cada streamlet puede comprender además una porción de un archivo de contenido.
Además, el módulo controlador de agentes puede estar configurado para generar un factor de rendimiento de acuerdo con las respuestas de las solicitudes de streamlet.
En una realización adicional, el módulo controlador de agente está configurado para realizar un cambio ascendente a un streamlet de mayor calidad cuando el factor de rendimiento es mayor que un umbral, y el módulo controlador de agente determina que la reproducción de mayor calidad se puede mantener de acuerdo con una combinación de factores. Los factores pueden incluir una cantidad de streamlets disponibles contiguamente almacenados en el módulo de almacenamiento provisional, un margen de seguridad mínimo y un margen anticipado de lectura actual.
El módulo controlador de agente puede estar configurado para realizar un cambio descendente a un streamlet de menor calidad cuando el factor de rendimiento es menor que un segundo umbral. Además, el módulo controlador de agente está configurado para anticipar las solicitudes de streamlet y los streamlets de solicitud previa para permitir la funcionalidad de avance rápido, salto aleatorio y rebobinado. En una realización, el módulo controlador de agente está configurado para solicitar inicialmente streamlets de baja calidad para habilitar la reproducción instantánea del archivo de contenido y el posterior cambio ascendente de acuerdo con el factor de rendimiento. También se presenta un sistema de la presente invención para la transmisión de contenido a velocidad adaptativa. En particular, en una realización, el sistema incluye una red de comunicaciones de datos y un servidor de contenido acoplado a la red de comunicaciones de datos y que tiene un módulo de contenido configurado para procesar contenido y generar una pluralidad de flujos de alta y baja calidad. En una realización, cada uno de los flujos de alta y baja calidad puede incluir una pluralidad de streamlets.
En una realización adicional, el sistema también incluye un módulo controlador de agente configurado para solicitar simultáneamente una pluralidad de streamlets, el módulo controlador de agente además está configurado para monitorizar continuamente solicitudes de streamlet y las respuestas subsiguientes, y por consiguiente solicitar streamlets de mayor o menor calidad, y un módulo de almacenamiento provisional configurado para almacenar provisionalmente los streamlets y organizar los streamlets para su reproducción en un reproductor de contenido.
También se presenta un procedimiento de la presente invención para la transmisión de contenido a velocidad adaptativa. En las realizaciones divulgadas, el procedimiento incluye sustancialmente las etapas necesarias para llevar a cabo las funciones presentadas anteriormente con respecto a la operación del aparato y sistema descritos. En una realización, el procedimiento incluye solicitar simultáneamente una pluralidad de streamlets, monitorizar continuamente solicitudes de streamlet y las respuestas subsiguientes y, por consiguiente, solicitar streamlets de mayor o menor calidad y almacenar provisionalmente los streamlets y organizar los streamlets para su reproducción en un reproductor de contenido.
En una realización adicional, el procedimiento puede incluir el establecimiento de múltiples conexiones de Protocolo de control de transmisión (TCP) con un servidor de contenido y solicitar streamlets de diferentes velocidades de bits. Además, el procedimiento puede incluir generar un factor de rendimiento de acuerdo con las respuestas de las solicitudes de streamlet, realizar un cambio ascendente a un streamlet de mayor calidad cuando el factor de rendimiento es mayor que un umbral y determinar si se puede mantener la reproducción de mayor calidad. Además, el procedimiento puede incluir un cambio descendente a un streamlet de menor calidad cuando el factor de rendimiento es menor que un segundo umbral.
En una realización, el procedimiento incluye anticipar solicitudes de streamlet y solicitar previamente streamlets para habilitar la funcionalidad de avance rápido, salto aleatorio y rebobinado. El procedimiento también puede comprender solicitar inicialmente streamlets de baja calidad para habilitar la reproducción instantánea de un archivo de contenido, y el posterior cambio ascendente de acuerdo con el factor de rendimiento.
Las características y ventajas de la presente invención resultarán más evidentes a partir de la siguiente descripción y las reivindicaciones adjuntas, o pueden ser aprendidas mediante la práctica de la invención tal como se expone a continuación.
Breve descripción de los dibujos
Con el fin de que las ventajas de la invención se entiendan con facilidad, se presentará una descripción más particular de la invención descrita brevemente con anterioridad con referencia a realizaciones específicas que se ilustran en los dibujos adjuntos.
La Figura 1 es un diagrama de bloque esquemático que ilustra una realización de un sistema para el cambio de velocidad adaptativa del contenido de streaming de acuerdo con la presente invención;
La Figura 2a es un diagrama de bloque esquemático que ilustra gráficamente una realización de un archivo de contenido de acuerdo con la presente invención;
La Figura 2b es un diagrama de bloque esquemático que ilustra una realización de una pluralidad de flujos que tienen grados variables de calidad y ancho de banda de acuerdo con la presente invención;
La Figura 2c es un diagrama de bloque esquemático que ilustra una realización de un flujo dividido en una pluralidad de pequeños flujos (streamlets) de acuerdo con la presente invención;
La Figura 3 es un diagrama de bloque esquemático que ilustra una realización de un módulo de contenido de acuerdo con la presente invención;
La Figura 4 es un diagrama de bloque esquemático que ilustra gráficamente una realización de un módulo de cliente de acuerdo con la presente invención;
La Figura 5 es un diagrama de flujo esquemático que ilustra una realización de un procedimiento para el procesamiento del contenido de acuerdo con la presente invención;
La Figura 6 es un diagrama de flujo esquemático que ilustra una realización de un procedimiento para la reproducción de una pluralidad de streamlets de acuerdo con la presente invención; y
La Figura 7 es un diagrama de flujo esquemático que ilustra una realización de un procedimiento para solicitar streamlets dentro de un entorno de transmisión de contenido de velocidad adaptativa de acuerdo con la presente invención.
Descripción detallada de la invención
Muchas de las unidades funcionales que se describen en esta memoria descriptiva han sido marcadas como módulos, a fin de enfatizar más en particular su independencia de implementación. Por ejemplo, se puede implementar un módulo como un circuito de hardware que comprende circuitos VLSI habituales o arreglos de compuertas, semiconductores disponibles en el comercio como, por ejemplo, chips lógicos, transistores, y otros componentes discretos. Un módulo puede ser implementado en dispositivos de hardware programables como, por ejemplo, los arreglos de compuertas programables en el campo, la matriz lógica programable, los dispositivos lógicos programables, o similares.
Los módulos se pueden implementar, además, en software para la ejecución mediante varios tipos de procesadores. Un módulo identificado de código ejecutable puede comprender, por ejemplo, uno o más bloques físicos o lógicos de instrucciones de computadora, los cuales pueden estar organizados, por ejemplo, en forma de un objeto, un procedimiento o una función. No obstante, los ejecutables de un módulo identificado no deben estar localizados físicamente, pero pueden comprender instrucciones dispares almacenadas en diferentes ubicaciones, las cuales, cuando se unen de manera lógica, comprenden el módulo y obtienen el propósito establecido para el módulo.
En verdad, un módulo de código ejecutable puede ser una única instrucción, o muchas instrucciones, y pueden, incluso, estar distribuidas en varios segmentos de códigos diferentes, entre diferentes programas y a lo largo de varios dispositivos de memoria. De manera similar, los datos operativos pueden estar identificados e ilustrados, en la presente memoria, dentro de módulos, y pueden estar representados mediante cualquier forma adecuada, y organizados dentro de un tipo adecuado de estructura de datos. Los datos operativos pueden ser recolectados como un conjunto de datos simples, o pueden estar distribuidos en diferentes ubicaciones en diferentes dispositivos de almacenamiento, y pueden existir, al menos parcialmente, simplemente como señales electrónicas en un sistema o en una red.
La referencia a un medio que soporta una señal puede tomar cualquier forma capaz de generar una señal, lo que origina una señal a ser generada, u origina la ejecución de un programa de instrucciones legibles por máquina en un aparato de procesamiento digital. Un medio que soporta una señal puede estar representado por una línea de transmisión, un disco compacto, un disco de video digital, una cinta magnética, un disco removible Bernoulli, un disco magnético, una tarjeta perforada, una memoria flash, circuitos integrados, u otro dispositivo de memoria de un aparato de procesamiento digital.
En la siguiente descripción, se proporcionan numerosos detalles específicos como, por ejemplo, ejemplos de programación, módulos de software, selecciones del usuario, transacciones de red, consultas de base de datos, estructuras de bases de datos, módulos de hardware, circuitos de hardware, chips de hardware, etc., para proporcionar un entendimiento completo de las realizaciones de la invención. Un experto en la técnica relevante reconocerá, sin embargo, que la invención se puede poner en práctica sin uno o más de los detalles específicos, o con otros procedimientos, componentes, materiales, etc. En otros ejemplos, las estructuras, los materiales o las operaciones bien conocidas no se muestran ni se describen en detalle para evitar los aspectos ocultos de la invención.
La Figura 1 es un diagrama de bloque esquemático que ilustra una realización de un sistema 200 para el cambio de la velocidad adaptativa dinámica del contenido de streaming de conformidad con la presente invención. En una realización, el sistema 100 comprende un servidor de contenido 102 y un usuario final 104. El servidor de contenido 102 y la estación del usuario final 104 pueden estar acoplados mediante una red de comunicaciones de datos. La red de comunicaciones de datos puede incluir la internet 106 y las conexiones 108 a la internet 106. De forma alternativa, el servidor de contenido 102 y el usuario final 104 pueden estar ubicados en una red de área local común, una red de área inalámbrica, una red de área local virtual, o similar. La estación de usuario final 104 puede comprender una computadora personal (PC), un sistema de entretenimiento configurado para comunicar mediante una red, o un dispositivo electrónico portátil configurado para presentar contenido.
En la realización ilustrada, el sistema 100 incluye, además, un editor 110 y un servidor web 116. El editor 110 puede ser un creador o distribuidor de contenido. Por ejemplo, si el contenido a ser transmitido fuera una transmisión de un programa de televisión, el editor 110 podría ser un canal de red de televisión o de cable como, por ejemplo, NBC® o MTV®. El contenido puede ser transferido en la internet 106 del servidor de contenido 102 donde el contenido es recibido mediante un módulo de contenido 112. El módulo de contenido 112 puede estar configurado para recibir, procesar y almacenar contenido. En una realización, al contenido procesado se accede mediante un módulo de cliente 114 que está configurado para reproducir el contenido en la estación de usuario final 104. En una realización adicional, el módulo de cliente 114 está configurado para recibir diferentes partes de un flujo de contenido desde una pluralidad de ubicaciones de manera simultánea. Por ejemplo, el módulo de cliente 114 puede solicitar y recibir contenido desde una cualquiera de la pluralidad de servidores web 116.
La Figura 2a es un diagrama de bloque esquemático que ilustra gráficamente una realización de un archivo de contenido 200. En una realización, el archivo de contenido 200 es distribuido mediante el editor 110. El archivo de contenido 200 puede comprender una transmisión de televisión, eventos deportivos, películas, música, conciertos, etc. El archivo de contenido 200 puede ser, además, contenido en vivo o contenido de archivo. El archivo de contenido 200 puede comprender video y audio no comprimido, o de manera alternativa, video o audio. Además, el archivo de contenido 200 puede estar comprimido. Ejemplos de un archivo de contenido comprimido 200 incluyen, pero sin estar limitados, contenido codificado DivX®, Windows Media video 9®, Quicktime 6.5 Sorenson 3® o Quicktime 6.5/ MPEG-4®.
La Figura 2b es un diagrama de bloque esquemático que ilustra una realización de una pluralidad de flujos 202 que tienen grados variables de calidad y ancho de banda. En una realización, la pluralidad de flujos 202 comprende un flujo de baja calidad 204, un flujo de calidad media 206 y un flujo de calidad alta 208. Cada uno de los flujos 204, 206, 208 es una copia del archivo de contenido 200 que está codificado y comprimido a variadas velocidades de bits. Por ejemplo, el flujo de baja calidad 204 puede estar codificado y comprimido hasta una velocidad de bits de 100 kilobits por segundo (kbps), el flujo de calidad media 206 puede estar codificado y comprimido hasta una velocidad de bits de 200 kbps, y el flujo de calidad alta 208 puede estar codificado y comprimido hasta 600 kbps.
La Figura 2c es un diagrama de bloque esquemático que ilustra una realización de un flujo 210 dividido en una pluralidad de streamlets 212. Como se utiliza en la presente memoria, streamlet se refiere a cualquier parte dimensionada del archivo de contenido 200. Cada streamlet 212 puede comprender una parte del contenido que está albergado en el flujo 210, encapsulado como un objeto multimedia independiente. El contenido en un streamlet 212 puede tener un único índice de tiempo con relación al inicio del contenido que está albergado en el flujo 210. En una realización, el contenido que está albergado en cada streamlet 212 tiene una duración de dos segundos. Por ejemplo, un streamlet 0 puede tener un índice de tiempo de 00:00 que representa el inicio de la reproducción del contenido, y el streamlet 1 puede tener un índice de tiempo de 00:02, etc. De forma alternativa, la duración de tiempo de los streamlets 212 puede ser cualquier duración más pequeña que la duración completa de reproducción del contenido en el flujo 210. En una realización adicional, los streamlets 212 pueden estar divididos de acuerdo con el tamaño en lugar de un índice de tiempo.
La Figura 3 es un diagrama de bloque esquemático que ilustra en mayor detalle una realización del módulo de contenido 112 de conformidad con la presente invención. El módulo de contenido 112 puede comprender un módulo de flujo 302, un módulo de streamlet 304, un módulo codificador 306, una base de datos de streamlets 308 y el servidor web 116. En una realización, el módulo de flujo 302 está configurado para recibir el archivo de contenido 200 desde el editor 110 y generar la pluralidad de flujos 202 de variadas calidades. El archivo de contenido original 200 desde el editor puede ser digital en su forma y puede comprender contenido que tiene una velocidad de bits alta, como por ejemplo 2 mbps. El contenido puede ser transferido desde el editor 110 al módulo de contenido 112 en la internet 106. Dichas transferencias de datos son bien conocidas en la técnica y no requieren mayor discusión en la presente memoria. De forma alternativa, el contenido puede comprender una transmisión capturada.
En la realización ilustrada, la pluralidad de flujos 202 puede comprender el flujo de baja calidad 204, el flujo de calidad media 206 y el flujo de calidad alta 208. De forma alternativa, la pluralidad de flujos 202 puede comprender cualquier número de flujos que se considere necesarios para acomodar el ancho de banda del usuario final. El módulo de streamlet 304 puede estar configurado para recibir la pluralidad de flujos 202 desde el módulo de flujo y generar una pluralidad de flujos 312, cada flujo comprende una pluralidad de streamlets 212. Como se describe con referencia a la Figura 2c, cada streamlet 212 puede comprender una parte predefinida del flujo. El módulo codificador 306 está configurado para codificar cada streamlet de la pluralidad de flujos 312 y almacenar los streamlets en la base de datos de streamlets 308. El módulo de codificación 306 puede utilizar esquemas de codificación como, por ejemplo, DivX®, Windows Media video 9®, Quicktime 6.5 Sorenson 3® o Quicktime 6.5/ MPEG-4 ®. De forma alternativa, se puede emplear un esquema de codificación personalizado.
El módulo de contenido 112 puede incluir, además, un módulo de metadatos 312 y una base de datos de metadatos 314. En una realización, los metadatos comprenden información de contenido que se puede buscar estática. Por ejemplo, los metadatos incluyen, pero sin estar limitados, fecha al aire del contenido, título, actrices, actores, extensión y nombre del episodio. Los metadatos son generados por el editor 110 y pueden estar configurados para definir un entorno de usuario final. En una realización, el editor 100 puede definir un entorno de navegación del usuario final para el contenido que incluye menús, miniaturas, barras laterales, publicidad, etc. Además, el editor 110 puede definir funciones como, por ejemplo, avance rápido, rebobinado, pausa y reproducción que se pueden utilizar con el archivo de contenido 200. El módulo de metadatos 312 está configurado para recibir los metadatos desde el editor 110 y almacenar los metadatos en la base de datos de metadatos 314. En una realización adicional, el módulo de metadatos 312 está configurado para hacer interfaz con el módulo de cliente 114, lo que permite al módulo de cliente 114 buscar el contenido basado en, al menos, una de una pluralidad de criterios de metadatos. Además, los metadatos pueden ser generados por el módulo de contenido 112 a través de procesos automatizados o definición manual.
Una vez que los streamlets 212 han sido recibidos y procesados, el módulo de cliente 114 puede solicitar streamlets 212 mediante el uso de HTTP desde el servidor web 116. Dicho uso de las solicitudes iniciadas en el lateral del cliente no requiere configuración adicional de firewalls. Además, dado que el módulo de cliente 114 inicia la solicitud, el servidor web 116 solo debe recuperar y atender el streamlet solicitado. En una realización adicional, el módulo de cliente 114 puede estar configurado para recuperar los streamlets 212 desde una pluralidad de servidores web 310. Cada servidor web 116 puede estar ubicado en varias ubicaciones a lo largo de la internet 106. Los streamlets 212 son esencialmente archivos estáticos. Como tal, ningún servidor multimedia especializado o inteligencia del lado del servidor es necesaria para que el módulo de cliente 114 recupere los streamlets 212. Los streamlets 212 pueden ser atendidos por el servidor web 116 o almacenados por los servidores de caché de los proveedores de servicios de internet (ISP) o cualquier otro operador de infraestructura de red, y pueden ser atendidos por el servidor de caché. El uso de servidores de caché es bien conocido por los expertos en la técnica, y no se discutirá en detalle en la presente memoria. De este modo, se proporciona una solución muy expansible que no se encuentra entorpecida por cantidades masivas de solicitudes del módulo de cliente 114 hacia el servidor web 116 en cualquier ubicación específica.
La Figura 4 es un diagrama de bloque esquemático que ilustra gráficamente una realización de un módulo de cliente 114 de conformidad con la presente invención. El módulo de cliente 114 puede comprender un módulo controlador de agente 402, un módulo de caché de streamlet 404 y un módulo controlador de red 406. En una realización, el módulo controlador de agente 402 está configurado para hacer interfaz con un visor 408 y transmitir los streamlets 212 hacia el visor 408. En una realización adicional, el módulo de cliente 114 puede comprender una pluralidad de módulos controladores del agente 402. Cada módulo controlador de agente 402 puede estar configurado para hacer interfaz con un visor 408. De forma alternativa, el módulo controlador de agente 402 puede estar configurado para hacer interfaz con una pluralidad de visores 408. El visor 408 puede ser un reproductor multimedia (que no se muestra) que opera en una PC o en un dispositivo electrónico manual.
El módulo controlador de agente 402 está configurado para seleccionar un nivel de calidad de los streamlets para transmitir hacia el visor 408. El módulo controlador de agente 402 solicita flujos de calidad inferiores y superiores basado en la observación continua de los intervalos de tiempo entre los sucesivos tiempos de recepción de cada streamlet solicitado. El procedimiento de solicitud de los flujos de calidad superiores o inferiores se discutirán en mayor detalle a continuación con referencia a la Figura 7.
El módulo controlador de agente 402 puede estar configurado para recibir los comandos del usuario desde el visor 408. Estos comandos pueden incluir la reproducción, el avance rápido, el rebobinado, la pausa y la detención. En una realización, el módulo controlador de agente 402 solicita los streamlets 212 desde el módulo de caché de streamlet 404 y arregla los streamlets recibidos 212 en un módulo de almacenamiento provisional 409. El módulo de almacenamiento provisional 409 puede estar configurado para arreglar los streamlets 212 en el orden del ascenso del tiempo de reproducción. En la realización que se describe, los streamlets 212 están numerados 0, 1, 2, 3, 4, etc. Sin embargo, cada streamlet 212 puede estar identificado con un nombre de archivo único.
Además, el módulo controlador de agente 402 puede estar configurado para anticipar las solicitudes del streamlet 212 y solicitar previamente los streamlets 212. Al solicitar previamente los streamlets 212, el usuario puede avanzar rápido, omitir de manera aleatoria o retroceder a través del contenido, y no experimentar retraso en el almacenamiento en búfer. En una realización adicional, el módulo controlador de agente 402 puede solicitar los streamlets 212 que corresponden a los intervalos del índice de tiempo de 30 segundos dentro del tiempo de reproducción total del contenido. De forma alternativa, el módulo controlador de agente 402 puede solicitar streamlets en cualquier intervalo inferior a la extensión del índice de tiempo. Esto permite la capacidad de «inicio rápido» sin espera del almacenamiento en búfer cuando se inicia o se avanza rápido a través del archivo de contenido 200. En una realización adicional, el módulo controlador de agente 402 puede estar configurado para solicitar previamente los streamlets 212 correspondientes a los puntos del índice especificados dentro del contenido o dentro de otro contenido, anticipándose al usuario final 104 que está seleccionando contenido para ver.
En una realización, el módulo de caché de streamlet 404 está configurado para recibir solicitudes de streamlet 212 desde el módulo controlador de agente 402. Al cabo de recibir una solicitud, el módulo de caché de streamlet 404 comprueba, en primer lugar, el caché de un streamlet 410 para verificar si el streamlet 212 está presente. En una realización adicional, el módulo de caché de streamlet 404 maneja las solicitudes del streamlet 212 desde una pluralidad de módulos controladores del agente 402. De forma alternativa, un módulo de caché de streamlet 404 se puede proporcionar para cada módulo controlador de agente 402. Si el streamlet solicitado 212 no está presente en el caché de streamlet 410, la solicitud es enviada al módulo controlador de red 406. A fin de permitir las habilidades de avance rápido y rebobinado, el módulo de caché de streamlet 404 está configurado para almacenar la pluralidad de streamlets 212 en el caché de streamlet 410 durante un periodo de tiempo especificado después de que se ha visto el streamlet 212. No obstante, una vez que se han eliminado los streamlets 212, estos pueden ser solicitados nuevamente desde el servidor web 116.
El módulo controlador de red 406 puede estar configurado para recibir las solicitudes de streamlets desde el módulo de caché de streamlet 404 y abrir una conexión hacia el servidor web 116 u otra base de datos del streamlet remota 212 (que no se muestra). En una realización, el módulo controlador de red 406 abre una conexión TCP/IP al servidor web 116 y genera una solicitud HTTP GET estándar para el streamlet solicitado 212. Al cabo de recibir el streamlet solicitado 212, el módulo controlador de red 406 pasa el streamlet 212 hacia el módulo de caché de streamlet 404 donde es almacenado en el caché de streamlet 410. En una realización adicional, el módulo controlador de red 406 está configurado para procesar y solicitar una pluralidad de streamlets 212 de manera simultánea. El módulo controlador de red 406 puede estar configurado, además, para solicitar una pluralidad de streamlets, en el que cada streamlet 212 es solicitado, posteriormente, en múltiples partes.
En una realización adicional, las solicitudes de streamlet pueden comprender la solicitud de piezas de cualquier archivo de streamlets. Al dividir el streamlet 212 en piezas o partes más pequeñas permite, de manera beneficiosa, un aumento en el potencial de eficiencia y, además, elimina los problemas vinculados con múltiples solicitudes de streamlets completos que comparten el ancho de banda en cualquier momento dado. Esto se logra mediante el uso de conexiones TCP/IP paralelas para las piezas de los streamlets 212. Por consiguiente, se solucionan los problemas de eficiencia y pérdida de red, y los streamlets llegan con una sincronización más útil y predecible.
En una realización, el módulo de cliente 114 puede estar configurado para utilizar múltiples conexiones TCP entre el módulo de cliente 114 y el servidor web 116 o el caché web. La intervención de un caché puede ser transparente para el cliente o ser configurada por el cliente como un caché directo. Al solicitar más de un streamlet 212 a la vez de una manera que se denomina «recupero paralelo», o más de una parte de un streamlet 212 a la vez, la eficiencia se incrementa significativamente y se elimina la latencia virtualmente. En una realización adicional, el módulo de cliente permite un máximo de tres solicitudes de streamlets 212 pendientes. El módulo de cliente 114 puede mantener conexiones TCP abiertas adicionales como de repuesto para estar disponibles en caso de que otra conexión falle. Las solicitudes de streamlet 212 rotan entre todas las conexiones abiertas para mantener la lógica del flujo TCP para cualquier conexión particular que pueda entrar en un modo de inicio lento o cerrado. Si el módulo controlador de red 406 ha solicitado un streamlet 212 en múltiples partes, cada parte fue solicitada en conexiones TCP/IP mutuamente independientes, el módulo controlador de red 406 vuelve a ensamblar las partes para presentar un streamlet 212 completo para ser utilizado por todos los otros componentes del módulo de cliente 114.
Cuando una conexión TCP se cae completamente, una nueva solicitud puede ser enviada en una conexión diferente para el mismo streamlet 212. En una realización adicional, si una solicitud no es cumplida a tiempo, una solicitud redundante puede ser enviada en una conexión diferente para el mismo streamlet 212. Si la primera respuesta a la solicitud de streamlet llega antes de la respuesta a la solicitud redundante, la solicitud redundante puede ser abortada. Si la respuesta a la solicitud redundante llega antes de la respuesta a la primera solicitud, la primera solicitud puede ser abortada.
Varias solicitudes de streamlet 212 pueden ser enviadas en una única conexión TCP, y las respuestas fluyen hacia atrás en orden parejo a lo largo de la misma conexión. Esto elimina todo excepto la latencia de la primera solicitud. Dado que siempre se transmiten múltiples respuestas, la latencia de procesamiento de cada nueva respuesta de streamlet 212 después de la primera no es un factor en rendimiento. Esta técnica es conocida en la industria como «canalización». La canalización ofrece eficiencia en el procesamiento de respuesta a la solicitud eliminando la mayoría de los efectos de la latencia de la solicitud. Sin embargo, la canalización tiene serias vulnerabilidades. Los retrasos en la transmisión afectan todas las respuestas. Si la única conexión TCP falla, todas las solicitudes y respuestas pendientes se pierden. La canalización origina una dependencia en serie entre las solicitudes.
Múltiples conexiones TCP pueden ser abiertas entre el módulo de cliente 114 y el servidor web 116 para obtener los beneficios de la eficiencia de reducción de la latencia de la canalización mientras se mantiene la independencia de cada solicitud de streamlet 212. Varias solicitudes de streamlet 212 se pueden enviar de manera concurrente, siendo cada solicitud enviada en una conexión TCP mutuamente distinta. Esta técnica es etiquetada como «canalización virtual» y es una innovación de la presente invención. Múltiples respuestas pueden estar en tránsito de manera concurrente, asegurando que siempre se utilice un ancho de banda de comunicación entre el módulo de cliente 114 y el servidor web 116. La canalización virtual elimina las vulnerabilidades de la canalización tradicional. Un retraso en una respuesta o una falla completa de una respuesta no afecta la transmisión de otras respuestas porque cada respuesta ocupa una conexión TCP independiente. Cualquier ancho de banda de transmisión que no esté en uso por una de las respuestas múltiples (ya sea debido a retrasos o a la falla en la conexión TCP) puede ser utilizado por otras respuestas pendientes. Una única solicitud de streamlet 212 puede ser emitida para un streamlet 212 completo o se pueden emitir múltiples solicitudes, cada una para una parte diferente o una porción del streamlet. Si el streamlet es solicitado en varias partes, las partes se pueden volver a combinar mediante el streamlet del módulo de cliente 114.
A fin de mantener un balance apropiado entre la utilización del ancho de banda maximizado y el tiempo de respuesta, la emisión de nuevas solicitudes de streamlet debe ser cronometrada de modo que el servidor web 116 no transmita la respuesta antes de que el módulo de cliente 114 haya recibido completamente una respuesta a una de las solicitudes de streamlet previamente pendientes. Por ejemplo, si tres solicitudes de streamlet 212 están pendientes, el módulo de cliente 114 debe emitir la siguiente solicitud poco antes de que una de las tres respuestas sea totalmente recibida y «fuera del canal». En otras palabras, la sincronización de la solicitud es ajustada para mantener tres respuestas en tránsito. El uso compartido del ancho de banda entre cuatro respuestas disminuye el tiempo de respuesta neto de las otras tres respuestas. El ajuste de sincronización se puede calcular dinámicamente por observación, y la sincronización de la solicitud puede ser ajustada por consiguiente para mantener el balance apropiado de eficiencia y los tiempos de respuesta.
La Figura 5 es un diagrama de flujo esquemático que ilustra una realización de un procedimiento 500 para el procesamiento de contenido de conformidad con la presente invención. En una realización, el procedimiento 500 comienza 502 y el módulo de contenido 112 recibe el contenido 504 desde el editor 110. Recibir contenido 504 puede comprender la recepción 504 de una copia digital del archivo de contenido 200 o la digitalización de una copia física del archivo de contenido 200. De forma alternativa, recibir 504 el contenido puede comprender capturar una transmisión de radio o de televisión. Una vez recibido 504, el módulo de flujo 302 genera 506 una pluralidad de flujos 202, cada flujo 202 tiene una calidad diferente. La calidad puede ser predefinida, o establecida automáticamente de acuerdo con el ancho de banda del usuario final, o en respuesta a las guías prediseñadas del editor.
El módulo de streamlet 304 recibe los flujos 202 y genera 508 una pluralidad de streamlets 212. En una realización, generar 508 streamlets comprende dividir el flujo 202 en una pluralidad de dos segundos streamlets 212. De forma alternativa, los streamlets pueden tener alguna longitud inferior o igual a la longitud del flujo 202. El módulo codificador 306 codifica 510 los streamlets de acuerdo con un algoritmo de compresión. En una realización adicional, el algoritmo comprende un códec privado como por ejemplo WMV9®. El módulo codificador 306 almacena 512 los streamlets codificados en la base de datos del streamlet 308. Una vez almacenados 512, el servidor web 116 puede atender 514 los streamlets. En una realización, atender 514 los streamlets comprende recibir solicitudes de streamlet desde el módulo de cliente 114, recuperar el streamlet solicitado desde la base de datos del streamlet 308, y posteriormente transmitir el streamlet al módulo de cliente 114. El procedimiento 500 finaliza 516.
La Figura 6 es un diagrama de flujo esquemático que ilustra una realización de un procedimiento 600 para ver una pluralidad de streamlets de conformidad con la presente invención. El procedimiento 600 comienza y un módulo controlador de agente 402 se proporciona 604 y se vincula con un visor 408 y está provisto con un módulo de almacenamiento provisional 409. El módulo controlador de agente 402 solicita 606, a continuación, un streamlet desde el módulo de caché de streamlet 404. De forma alternativa, el módulo controlador de agente 402 puede solicitar 606, de manera simultánea, una pluralidad de streamlets desde el módulo de caché de streamlet 404. Si el streamlet es almacenado 608 localmente en el caché de streamlet 410, el módulo de caché de streamlet 404 recupera 610 el streamlet y envía el streamlet al módulo controlador de agente 402. Al cabo de recuperar 610 o recibir un streamlet, el módulo controlador de agente 402 realiza 611 una determinación si debe o no cambiar a un flujo 202 de calidad superior o inferior. Esta determinación se describirá a continuación en mayor detalle con referencia a la Figura 7.
En una realización, el módulo de almacenamiento provisional 409 arregla 612 los streamlets en el orden apropiado, y el módulo controlador de agente 402 entrega 614 los streamlets al visor 408. En una realización adicional, la entrega 614 de streamlets al usuario final comprende la reproducción del video y/o los streamlets en el visor 408. Si los streamlets no se almacenan 608 localmente, la solicitud de streamlet pasa al módulo controlador de red 406. El módulo controlador de red 406 solicita 616, a continuación, el streamlet desde el servidor web 116. Una vez que el streamlet es recibido, el módulo controlador de red 406 pasa el streamlet al módulo de caché de streamlet 404. El módulo de caché de streamlet 404 archiva 618 el streamlet. De forma alternativa, el módulo de caché de streamlet 404 archiva 618 el streamlet y pasa el streamlet al módulo controlador de agente 402 y el procedimiento 600 continúa desde la operación 610 como se describió anteriormente.
Con referencia ahora a la Figura 7, se muestra un diagrama de flujo esquemático que ilustra una realización de un procedimiento 700 para solicitar streamlets dentro de un entorno de transmisión de contenido cambiando la velocidad adaptativa de conformidad con la presente invención. El procedimiento 700 se puede utilizar en una realización como la operación 611 de la Figura 6. El procedimiento 700 comienza y el módulo controlador de agente 402 recibe 704 un streamlet como se describió anteriormente con referencia a la Figura 6. El módulo controlador de agente 402 monitoriza 706 el tiempo de recepción del streamlet solicitado. En una realización, el módulo controlador de agente 402 monitoriza los intervalos de tiempo 0 entre los tiempos de recepción sucesivos para cada respuesta al streamlet. El orden de las respuestas con relación al orden de sus correspondientes solicitudes no es relevante.
Dado que las características del comportamiento de la red fluctúan, algunas veces de forma bastante repentina, cualquier A dado puede variar sustancialmente uno de otro. A fin de compensar esta fluctuación, el módulo controlador de agente 402 calcula 708 una relación de rendimiento r a través de una ventana de muestras n para los streamlets de extensión de reproducción S. En una realización, la relación de rendimiento r se calcula mediante el uso de la ecuación.
Figure imgf000010_0001
Debido al procesamiento del streamlet múltiple simultáneo, y a fin de juzgar mejor la tendencia central de la relación de rendimiento r, el módulo controlador de agente 402 puede calcular un medio geométrico, o de forma alternativa, un algoritmo promediado equivalente, a lo largo de una ventana de tamaño m, y obtener un factor de rendimiento 9.
Figure imgf000010_0002
La determinación de la política acerca de si se debe o no realizar el cambio ascendente 710 de la calidad de reproducción, comienza mediante la comparación y actual con un umbral desencadenador Gamba. Si ^ actual s Gamba, entonces se puede considerar un cambio ascendente al siguiente flujo de calidad superior 716. En una realización, el umbral desencadenador G arriba se determina mediante una combinación de factores que se relacionan con el margen anticipado de lectura actual (es decir, la cantidad de streamlets disponibles de manera contigua que han sido dispuestos de manera secuencial mediante el módulo de almacenamiento provisional 409 para la presentación en el índice de tiempo de reproducción actual), y un margen de seguridad mínimo. En una realización, el margen de seguridad mínimo puede ser 24 segundos. Cuánto más pequeño el margen anticipado de lectura, más debe el G arriba desalentar el cambio ascendente hasta que se pueda establecer un margen anticipado de lectura más grande para soportar las interrupciones de la red. Si el módulo controlador de agente 402 puede sostener 716 la calidad del cambio ascendente, entonces el módulo controlador de agente 402 realizará el cambio ascendente 717 de la calidad, y posteriormente solicitará flujos de calidad más altos. La determinación con respecto a si el uso del flujo de calidad superior es sostenible 716 se realiza mediante la comparación de un estimado del factor de rendimiento del flujo de calidad superior, 9 superior , con G arriba . Si 9 superior > G arrba entonces el uso del flujo de calidad superior se considera sostenible. Si la decisión con respecto a si el flujo más alto es o no sostenible 716 es «no», el módulo controlador de agente 402 no intentará realizar el cambio ascendente 717 de la calidad del flujo. Si se ha alcanzado el final del flujo 714, el procedimiento 618 finaliza 716.
Si la decisión acerca de si se debe o no intentar el cambio ascendente 710 es «no», se toma la decisión acerca de si se debe o no realizar el cambio descendente 712. En una realización, un umbral desencadenador G abajo se define de manera análoga a Gamba. Si y actuai > Gabajo, entonces la calidad del flujo puede ser adecuada, y el módulo controlador de agente 402 no realizar el cambio descendente 718 de la calidad del flujo. No obstante, si y actuai < Gabajo, el módulo controlador de agente 402 no realiza el cambio descendente 718 de la calidad del flujo. Si no se ha alcanzado el final del flujo 714, el módulo controlador de agente 402 comienza a solicitar y recibir streamlets de calidad inferior 704 y el procedimiento 618 comienza nuevamente. Por supuesto, las ecuaciones y los algoritmos que se describieron anteriormente son únicamente ilustrativos, y pueden ser reemplazado por soluciones alternativas de monitorización del streamlet.

Claims (25)

REIVINDICACIONES
1. Un aparato para transmisión continua en tiempo real (streaming) de contenido a velocidad adaptativa, comprendiendo el aparato una estación de usuario final (104), que comprende:
un módulo controlador de agente (402) para ser acoplado a través de un controlador de red (406) a un conjunto de uno o más servidores (102, 116) sobre un conjunto de una o más conexiones de red TCP/IP (108), en el que el conjunto de servidores (102, 116) almacenan una pluralidad de copias diferentes (204, 206, 208) de un mismo video único (200), cada una codificada a una velocidad de bits diferente para proporcionar diferentes niveles de calidad y cada una dividida en una pluralidad de streamlets (212) que almacenan colectivamente datos para reproducir el video completo (200) pero que almacenan datos individualmente para reproducir solo una porción del video que comienza en un tiempo de inicio único y cuya duración es menor que la duración total de reproducción del video único (200), y en el que cada uno de los streamlets (212) de cada una de las copias está encapsulado como un objeto multimedia independiente (212) reproducible por la estación de usuario final (104), el módulo controlador de agente (402) está configurado para realizar solicitudes de streamlet (606) para recibir streamlets (212) que almacenan porciones secuenciales del video único (200), en el que cada solicitud de streamlet es para un nivel de calidad particular seleccionado por el módulo controlador de agente solicitando la porción de una copia particular del video único (200);
el controlador de red (406) está configurado para procesar dichas solicitudes del módulo controlador de agente (402) para streamlets y realizar solicitudes HTTP al conjunto de servidores (102, 116) sobre el conjunto de conexiones de red (108) para obtener los streamlets, en el que el controlador de red está configurado para realizar varias solicitudes de streamlets de manera simultánea,
en el que el módulo controlador de agente (402) además está configurado para monitorizar (706) el progreso de las solicitudes de streamlet (606) calculando un factor de rendimiento de acuerdo con los tiempos de recepción para las respuestas a las solicitudes de streamlet;
en función de dicho progreso monitorizado, el módulo controlador de agente (402) además está configurado para realizar determinaciones sucesivas (611, 708, 710, 712, 714) para cambiar la calidad de reproducción para lograr una reproducción continua del video único (200) solicitando a los streamlets (212) de la más alta calidad una de las copias (204, 206, 208) determinada como sustentable en ese momento, en el que la determinación comprende realizar un cambio ascendente a una copia de mayor calidad cuando el factor de rendimiento es mayor que un umbral de activación y el factor de rendimiento estimado para la copia de mayor calidad es mayor que el umbral de activación; un módulo de almacenamiento provisional (409) configurado para colocar los streamlets solicitados (212) de manera secuencial en orden de tiempo de reproducción ascendente; y,
un reproductor de contenido (408) para reproducir los streamlets solicitados (212) según el almacenamiento provisional del módulo de almacenamiento provisional (409) para reproducir el video único (200).
2. El aparato de la reivindicación 1, en el que el umbral de activación se selecciona de acuerdo con el margen anticipado de lectura actual, que es la cantidad de streamlets disponibles contiguamente (212) almacenados en el módulo de almacenamiento provisional (409), para desalentar el cambio ascendente hasta que se establece un margen anticipado de lectura mayor.
3. El aparato de las reivindicaciones 1 o 2, en el que el módulo controlador de agente (402) está configurado para realizar un cambio descendente (712) hasta una copia de menor calidad de las diferentes copias (204, 206, 208) cuando el factor de rendimiento (708) es menor que un segundo umbral seleccionado.
4. El aparato de la reivindicación 1, en el que el módulo controlador de agente (402) está configurado además para anticipar solicitudes de streamlet (606) y realizar al menos una solicitud previa de streamlet para recibir uno de los archivos separados (212) que almacenan la porción del video seleccionado (200) que comienza en un tiempo de inicio especificado de una de las diferentes copias (204, 206, 208) para habilitar la funcionalidad de avance rápido, salto aleatorio y rebobinado.
5. El aparato de la reivindicación 1, en el que las solicitudes de streamlet iniciales (606) son para los archivos separados (212) de una copia de menor calidad de las diferentes copias (204, 206, 208) para habilitar la reproducción instantánea del video único (200), y en el que el módulo controlador de agente (402) está configurado para luego posteriormente realizar un cambio ascendente (717) hasta una copia de mayor calidad de las diferentes copias (204, 206, 208) de acuerdo con el factor de rendimiento (708).
6. El aparato de cualquiera de las reivindicaciones 1 a 5, que además comprende:
una red de comunicaciones de datos (106); y
el conjunto de uno o más servidores (102, 116) acoplados a la red de comunicaciones de datos (106), en el que al menos uno del conjunto de uno o más servidores (102, 116) comprende un módulo de contenido (112) configurado para generar la pluralidad de streamlets (212) de las diferentes copias (204, 206, 208) del mismo video único (200).
7. El aparato de la reivindicación 1, en el que cada uno de los streamlets tiene la misma duración de tiempo.
8. Un procedimiento para transmisión continua en tiempo real (streaming) desde un conjunto de uno o más servidores (102, 116) de videos (200) para su reproducción en un reproductor de contenido (408) en una estación de usuario final (104), en el que cada uno de los videos (200) tiene una duración de reproducción, que comprende:
realizar streaming desde el conjunto de servidores (102, 116) a través de un conjunto de una o más conexiones de red TCP/IP, de uno seleccionado de los videos (200) para su reproducción en el reproductor de contenido (408) que opera en la estación de usuario final;
en el que diferentes copias (204, 206, 208) del mismo video seleccionado (200) se almacenan en el conjunto de servidores (102, 116), en el que cada una de las diferentes copias (204, 206, 208) está codificada a una velocidad de bits diferente para proporcionar diferentes niveles de calidad y cada una está dividida en una pluralidad de streamlets (212) que almacenan colectivamente datos para reproducir el video completo, pero que almacenan datos individualmente para reproducir solo una porción que comienza en un tiempo de inicio único y cuya duración es menor que la duración total de reproducción del video seleccionado (200), en el que cada uno de los streamlets (212) de cada una de las copias está encapsulado como un objeto multimedia independiente (212) reproducible por la estación de usuario final (104), y en el que el streaming comprende:
realizar solicitudes de streamlet (606) para recibir streamlets (212) almacenando porciones secuenciales del video seleccionado, en el que cada solicitud de streamlet es para un nivel de calidad particular seleccionado por el módulo controlador de agente solicitando la porción de una copia particular del video único (200);
procesar dichas solicitudes de streamlets y realizar solicitudes HTTP al conjunto de servidores (102, 116) a través del conjunto de conexiones de red (108) para obtener los streamlets, en el que se realizan varias solicitudes de streamlets de manera simultánea;
monitorizar (706) el progreso de las respuestas a las solicitudes de streamlet (606) calculando un factor de rendimiento de acuerdo con los tiempos de recepción para las respuestas a las solicitudes de streamlet;
en función de dicha monitorización, realizar determinaciones sucesivas (611, 708, 710, 712, 714) por la estación de usuario final (104) para cambiar la calidad de reproducción para lograr una reproducción continua del video seleccionado solicitando los streamlets (212) de la calidad más alta una de las copias (204, 206, 208) determinada como sustentable en ese momento, en el que la determinación comprende realizar un cambio ascendente a una copia de mayor calidad cuando el factor de rendimiento es mayor que un umbral de activación y el factor de rendimiento estimado para la copia de mayor calidad es mayor que el umbral de activación;
colocar los streamlets solicitados (212) secuencialmente en orden de tiempo de reproducción ascendente; y
reproducir los streamlets solicitados tal y como se almacenaron temporalmente con el reproductor de contenido.
9. El procedimiento de la reivindicación 8, en el que dicha realización de la al menos una solicitud de streamlet (606) incluye solicitar los archivos separados (212) que almacenan las porciones del video seleccionado que comienza en el conjunto de tiempo de inicio en múltiples partes sobre diferentes conexiones del conjunto de conexiones de red (108), y en el que dicho procedimiento además incluye reensamblar las múltiples partes para cada uno de los archivos separados (212) que almacenan las porciones del video seleccionado que comienza en el conjunto de tiempos de inicio.
10. El procedimiento de la reivindicación 8, en el que dicha realización automática incluye solicitar que uno de los archivos separados (212) almacene la porción del video seleccionado que comienza en ese tiempo inicio en múltiples partes sobre diferentes conexiones del conjunto de conexiones de red (108), y en el que dicho procedimiento además incluye reensamblar las múltiples partes para cada uno de los archivos separados (212) que almacenan la porción del video seleccionado que comienza en ese tiempo de inicio.
11. El procedimiento de la reivindicación 8, en el que el umbral de activación es indicativo de un margen de seguridad mínimo, en el que el margen de seguridad mínimo es una cantidad deseada de streamlets (212) dispuestos secuencialmente disponibles contiguamente para su reproducción en el reproductor de contenido (408).
12. El procedimiento de la reivindicación 8, en el que el factor de rendimiento (708) es indicativo de intervalos de tiempo entre tiempos de recepción sucesivos para cada respuesta a los streamlets solicitados (212).
13. El procedimiento de cualquiera de las reivindicaciones 8 a 12, en el que el conjunto de servidores (102, 116) comprende un servidor web (116), y en el que algunos de los archivos separados (212) se almacenan en el servidor web (116).
14. El procedimiento de la reivindicación 13, en el que el servidor web (116) no tiene inteligencia del lado del servidor para recuperar los streamlets solicitados (212).
15. El procedimiento de cualquiera de las reivindicaciones 8 a 14, en el que el conjunto de servidores (102, 116) comprende un servidor de caché de un operador de infraestructura de red, y en el que algunos de los archivos separados (212) se almacenan en el servidor de caché.
16. El procedimiento de la reivindicación 8, en el que calcular el factor de rendimiento comprende: calcular una relación de rendimiento actual a lo largo de una ventana actual de muestras de una duración de reproducción; y calcular un promedio actual para obtener un factor actual de los factores de rendimiento (708) para su comparación con los umbrales de activación.
17. El procedimiento de la reivindicación 16, en el que dicha determinación comprende realizar un cambio descendente (712) hasta una copia de menor calidad de las diferentes copias (204, 206, 208) cuando el factor de rendimiento actual (708) es menor que un segundo umbral del conjunto de uno o más umbrales de activación.
18. El procedimiento de la reivindicación 8, en el que dicho streaming además comprende: recibir una entrada de usuario para realizar avance rápido, rebobinado o salto aleatorio; y realizar al menos una solicitud de streamlet (606) para recibir uno de los archivos separados (212) almacenando la porción del video seleccionado que comienza a un tiempo de inicio especificado que no es el siguiente tiempo secuencial en la reproducción actual.
19. El procedimiento de la reivindicación 8, que además comprende realizar un cambio descendente (712) hasta una copia de menor calidad de las diferentes copias (204, 206, 208) cuando el factor de rendimiento (708) es menor que un segundo umbral seleccionado.
20. El procedimiento de la reivindicación 8, en el que cada uno de los streamlets tiene la misma duración de tiempo.
21. Un medio de almacenamiento legible por ordenador que comprende un código legible por ordenador configurado para llevar a cabo operaciones de transmisión continua en tiempo real (streaming) desde un conjunto de uno o más servidores (102, 116) de videos (200) para su reproducción en un reproductor de contenido (408) en una estación de usuario final (104), en el que cada uno de los videos (200) tiene una duración de reproducción, comprendiendo las operaciones:
realizar streaming desde el conjunto de servidores (102, 116) a través de un conjunto de una o más conexiones de red TCP/IP, de uno seleccionado de los videos (200) para su reproducción en el reproductor de contenido (408) que opera en la estación de usuario final (104);
en el que diferentes copias (204, 206, 208) del mismo video seleccionado (200) se almacenan en el conjunto de servidores (102, 116), en el que cada una de las diferentes copias (204, 206, 208) está codificada a una velocidad de bits diferente para proporcionar diferentes niveles de calidad y está dividida en una pluralidad de streamlets (212) que almacenan colectivamente datos para reproducir el video completo, pero que almacenan datos individualmente para reproducir solo una porción del video que comienza en un tiempo de inicio único y cuya duración es menor que la duración total de reproducción del video seleccionado (200), y en el que cada uno de los streamlets (212) de cada una de las copias está encapsulado como un objeto multimedia independiente (212) reproducible por la estación de usuario final (104), y en el que el streaming comprende:
realizar solicitudes de streamlet (606) para recibir streamlets (212) almacenando porciones secuenciales del video seleccionado (200), en el que cada solicitud de streamlet es para un nivel de calidad particular seleccionado por el módulo controlador de agente solicitando la porción de una copia particular del video único (200);
procesar dichas solicitudes de streamlets del módulo controlador de agente (402) y realizar solicitudes HTTP al conjunto de servidores (102, 116) a través del conjunto de conexiones de red (108) para obtener los streamlets, en el que un controlador de red (406) está configurado para realizar varias solicitudes de streamlets de manera simultánea;
monitorizar (706) el progreso de las solicitudes de streamlet (606) calculando un factor de rendimiento de acuerdo con los tiempos de recepción para las respuestas a las solicitudes de streamlet;
en función de dicha monitorización, realizar determinaciones sucesivas (611, 708, 710, 712, 714) por la estación de usuario final (104) para cambiar la calidad de reproducción para lograr una reproducción continua del video seleccionado (200) solicitando los streamlets (212) de la calidad más alta una de las copias (204, 206, 208) determinada como sustentable en ese momento, en el que la determinación comprende realizar un cambio ascendente a una copia de mayor calidad cuando el factor de rendimiento es mayor que un umbral de activación y el factor de rendimiento estimado para la copia de mayor calidad es mayor que el umbral de activación; y
colocar los streamlets solicitados (212) en secuencia en orden de tiempo de reproducción ascendente; y
reproducir los streamlets solicitados tal y como se almacenaron temporalmente.
22. El medio de almacenamiento legible por ordenador de la reivindicación 21, en el que las operaciones además comprenden realizar un cambio descendente (712) hasta una copia de menor calidad de las diferentes copias (204, 206, 208) cuando el factor de rendimiento (708) es menor que un segundo umbral seleccionado.
23. El medio de almacenamiento legible por ordenador de la reivindicación 21, en el que las operaciones además comprenden anticipar solicitudes de streamlet (606) y solicitar previamente los streamlets (212) de una de las diferentes copias (204, 206,208) para habilitar la funcionalidad de avance rápido, salto aleatorio y rebobinado.
24. El medio de almacenamiento legible por ordenador de la reivindicación 21, en el que las solicitudes de streamlet (606) para los tiempos iniciales y secuenciales de los tiempos de inicio son para los archivos separados (212) de una copia de baja calidad de las diferentes copias (204, 206, 208) para habilitar la reproducción instantánea del video seleccionado, y luego realizar un cambio ascendente (717) hasta una copia de mayor calidad de las diferentes copias (204, 206, 208) de acuerdo con el factor de rendimiento (708).
25. El medio de almacenamiento legible por ordenador de la reivindicación 21, en el que cada uno de los streamlets tiene la misma duración de tiempo.
ES05744015T 2004-04-30 2005-05-02 Aparato, sistema y procedimiento de cambio de velocidad adaptativa de contenido de streaming Expired - Lifetime ES2845901T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US56683104P 2004-04-30 2004-04-30
US11/116,783 US8868772B2 (en) 2004-04-30 2005-04-28 Apparatus, system, and method for adaptive-rate shifting of streaming content
PCT/US2005/015091 WO2005109224A2 (en) 2004-04-30 2005-05-02 Apparatus, system, and method for adaptive-rate shifting of streaming content

Publications (1)

Publication Number Publication Date
ES2845901T3 true ES2845901T3 (es) 2021-07-28

Family

ID=35320874

Family Applications (3)

Application Number Title Priority Date Filing Date
ES20216568T Expired - Lifetime ES2975834T3 (es) 2004-04-30 2005-05-02 Aparato, sistema y método para el cambio de velocidad adaptativa de contenido de transmisión
ES12154559T Expired - Lifetime ES2748426T3 (es) 2004-04-30 2005-05-02 Procedimiento de presentación de flujos de velocidad adaptativa
ES05744015T Expired - Lifetime ES2845901T3 (es) 2004-04-30 2005-05-02 Aparato, sistema y procedimiento de cambio de velocidad adaptativa de contenido de streaming

Family Applications Before (2)

Application Number Title Priority Date Filing Date
ES20216568T Expired - Lifetime ES2975834T3 (es) 2004-04-30 2005-05-02 Aparato, sistema y método para el cambio de velocidad adaptativa de contenido de transmisión
ES12154559T Expired - Lifetime ES2748426T3 (es) 2004-04-30 2005-05-02 Procedimiento de presentación de flujos de velocidad adaptativa

Country Status (11)

Country Link
US (5) US8868772B2 (es)
EP (3) EP3822805B1 (es)
JP (1) JP5320740B2 (es)
KR (1) KR101082642B1 (es)
AU (1) AU2005241481A1 (es)
CA (1) CA2564861C (es)
DK (3) DK3822805T3 (es)
ES (3) ES2975834T3 (es)
FI (1) FI3822805T3 (es)
PT (3) PT2479680T (es)
WO (1) WO2005109224A2 (es)

Families Citing this family (129)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7519274B2 (en) 2003-12-08 2009-04-14 Divx, Inc. File format for multiple track digital data
US8472792B2 (en) 2003-12-08 2013-06-25 Divx, Llc Multimedia distribution system
US7818444B2 (en) 2004-04-30 2010-10-19 Move Networks, Inc. Apparatus, system, and method for multi-bitrate content streaming
US8868772B2 (en) 2004-04-30 2014-10-21 Echostar Technologies L.L.C. Apparatus, system, and method for adaptive-rate shifting of streaming content
US7080173B2 (en) * 2004-05-27 2006-07-18 Microsoft Corporation Reducing information reception delays
WO2006061838A2 (en) * 2004-12-08 2006-06-15 Imagine Communications Ltd. Distributed statistical multiplexing of multi-media
US8683066B2 (en) * 2007-08-06 2014-03-25 DISH Digital L.L.C. Apparatus, system, and method for multi-bitrate content streaming
US8370514B2 (en) * 2005-04-28 2013-02-05 DISH Digital L.L.C. System and method of minimizing network bandwidth retrieved from an external network
EP1889151A2 (en) * 2005-05-21 2008-02-20 Kula Media Group Media distribution over a network
DE602006004749D1 (de) * 2005-07-29 2009-02-26 British Telecomm Netzwerkinformations-beschaffung
NZ571050A (en) * 2006-02-13 2010-09-30 Vividas Technologies Pty Ltd Method, system and software product for streaming content
US7515710B2 (en) 2006-03-14 2009-04-07 Divx, Inc. Federated digital rights management scheme including trusted systems
US9386064B2 (en) 2006-06-09 2016-07-05 Qualcomm Incorporated Enhanced block-request streaming using URL templates and construction rules
US9209934B2 (en) 2006-06-09 2015-12-08 Qualcomm Incorporated Enhanced block-request streaming using cooperative parallel HTTP and forward error correction
US9432433B2 (en) 2006-06-09 2016-08-30 Qualcomm Incorporated Enhanced block-request streaming system using signaling or block creation
US9380096B2 (en) 2006-06-09 2016-06-28 Qualcomm Incorporated Enhanced block-request streaming system for handling low-latency streaming
EP2036346A4 (en) 2006-06-27 2009-09-16 Thomson Licensing SUPPORT FOR INTERACTIVE READING DEVICES FOR ON-DEMAND POST-PERFORMANCE POST-PERFORMANCE VIDEO SERVICE
US20080040757A1 (en) * 2006-07-31 2008-02-14 David Romano Video content streaming through a wireless access point
WO2008028508A1 (en) * 2006-09-07 2008-03-13 Fujitsu Limited Distributed computing and communications protocol
US11783925B2 (en) 2006-12-29 2023-10-10 Kip Prod P1 Lp Multi-services application gateway and system employing the same
US9569587B2 (en) 2006-12-29 2017-02-14 Kip Prod Pi Lp Multi-services application gateway and system employing the same
WO2008085206A2 (en) 2006-12-29 2008-07-17 Prodea Systems, Inc. Subscription management of applications and services provided through user premises gateway devices
US9602880B2 (en) 2006-12-29 2017-03-21 Kip Prod P1 Lp Display inserts, overlays, and graphical user interfaces for multimedia systems
US11316688B2 (en) 2006-12-29 2022-04-26 Kip Prod P1 Lp Multi-services application gateway and system employing the same
US20170344703A1 (en) 2006-12-29 2017-11-30 Kip Prod P1 Lp Multi-services application gateway and system employing the same
CN103561278B (zh) 2007-01-05 2017-04-12 索尼克知识产权股份有限公司 包含连续播放的视频分配系统
US7937451B2 (en) 2007-01-08 2011-05-03 Mspot, Inc. Method and apparatus for transferring digital content from a computer to a mobile handset
US9317179B2 (en) 2007-01-08 2016-04-19 Samsung Electronics Co., Ltd. Method and apparatus for providing recommendations to a user of a cloud computing service
US7865571B2 (en) 2007-01-08 2011-01-04 Mspot, Inc. Method and apparatus for transferring digital content from a personal computer to a mobile handset
US7865572B2 (en) 2007-01-08 2011-01-04 Mspot, Inc. Method and apparatus for transferring digital content from a personal computer to a mobile handset
US20110188567A1 (en) * 2007-11-14 2011-08-04 David Frederic Blum System and method for adaptive rate shifting of video/audio streaming
JP5513400B2 (ja) 2007-11-16 2014-06-04 ソニック アイピー, インコーポレイテッド マルチメディアファイルのための階層的で簡略なインデックス構造体
CN101198016A (zh) * 2007-12-05 2008-06-11 中兴通讯股份有限公司 交互式个人电视媒体交付系统的内容发布和存储方法
EP2075935A1 (en) * 2007-12-31 2009-07-01 Motorola, Inc. A method and apparatus for providing uninterrupted media to a user
US8190760B2 (en) 2008-01-15 2012-05-29 Echostar Advanced Technologies L.L.C. System and method of managing multiple video players
US9832442B2 (en) 2008-01-15 2017-11-28 Echostar Technologies Llc System and method of managing multiple video players executing on multiple devices
US20090193338A1 (en) 2008-01-28 2009-07-30 Trevor Fiatal Reducing network and battery consumption during content delivery and playback
US9100585B2 (en) * 2008-10-28 2015-08-04 Sony Computer Entertainment Inc. Combined broadcast and backchannel delivery of streaming content
CN102549557B (zh) 2009-01-07 2015-09-09 索尼克Ip股份有限公司 针对在线内容的媒体指南的特定化、集中式、自动化创建
US9015335B1 (en) * 2009-06-17 2015-04-21 Amazon Technologies, Inc. Server side stream switching
CN102792291B (zh) 2009-08-17 2015-11-25 阿卡麦科技公司 基于http的流分发的方法和系统
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
US8484368B2 (en) * 2009-10-02 2013-07-09 Disney Enterprises, Inc. Method and system for optimizing download and instantaneous viewing of media files
JP5723888B2 (ja) 2009-12-04 2015-05-27 ソニック アイピー, インコーポレイテッド 基本ビットストリーム暗号材料伝送システムおよび方法
US9338523B2 (en) * 2009-12-21 2016-05-10 Echostar Technologies L.L.C. Audio splitting with codec-enforced frame sizes
US20110296048A1 (en) * 2009-12-28 2011-12-01 Akamai Technologies, Inc. Method and system for stream handling using an intermediate format
US9510029B2 (en) 2010-02-11 2016-11-29 Echostar Advanced Technologies L.L.C. Systems and methods to provide trick play during streaming playback
EP2362651A1 (en) 2010-02-19 2011-08-31 Thomson Licensing Multipath delivery for adaptive streaming
EP2360923A1 (en) 2010-02-24 2011-08-24 Thomson Licensing Method for selectively requesting adaptive streaming content and a device implementing the method
US8745388B2 (en) * 2010-03-22 2014-06-03 EchoStar Technologies, L.L.C. Systems and methods for securely streaming media content
EP2375680A1 (en) * 2010-04-01 2011-10-12 Thomson Licensing A method for recovering content streamed into chunk
US8725947B2 (en) * 2010-05-28 2014-05-13 Microsoft Corporation Cache control for adaptive stream player
US9319448B2 (en) 2010-08-10 2016-04-19 Qualcomm Incorporated Trick modes for network streaming of coded multimedia data
EP2621168A4 (en) * 2010-09-20 2014-07-09 Humax Co Ltd PROCESSING METHOD FOR CREATING AN EXPRESSION SWITCHING IN AN HTTP STREAMING
US9479739B2 (en) * 2010-10-04 2016-10-25 Telefonaktiebolaget Lm Ericsson (Publ) Methods and apparatuses for adaptive control of streaming
US20120114118A1 (en) * 2010-11-05 2012-05-10 Samsung Electronics Co., Ltd. Key rotation in live adaptive streaming
US20120117261A1 (en) * 2010-11-05 2012-05-10 Nokia Corporation Method and Apparatus for Rate Adaptation for Adaptive HTTP Streaming
US8880633B2 (en) 2010-12-17 2014-11-04 Akamai Technologies, Inc. Proxy server with byte-based include interpreter
US8914534B2 (en) 2011-01-05 2014-12-16 Sonic Ip, Inc. Systems and methods for adaptive bitrate streaming of media stored in matroska container files using hypertext transfer protocol
US9020039B2 (en) 2011-01-06 2015-04-28 Sonic Ip, Inc. Systems and methods for encoding alternative streams of video for use in adaptive bitrate streaming
EP2477397A1 (en) * 2011-01-12 2012-07-18 Nxp B.V. Handling the initialization for HTTP streaming of multimedia files via parallel TCP connections
US8589996B2 (en) 2011-03-16 2013-11-19 Azuki Systems, Inc. Method and system for federated over-the-top content delivery
CN108366070A (zh) * 2011-03-16 2018-08-03 韩国电子通信研究院 用于提供媒体内容的方法和客户端
FR2975555A1 (fr) 2011-05-18 2012-11-23 Thomson Licensing Methode d'adaptation dynamique du debit de reception et recepteur associe
US9467708B2 (en) 2011-08-30 2016-10-11 Sonic Ip, Inc. Selection of resolutions for seamless resolution switching of multimedia content
US8787570B2 (en) 2011-08-31 2014-07-22 Sonic Ip, Inc. Systems and methods for automatically genenrating top level index files
US8964977B2 (en) 2011-09-01 2015-02-24 Sonic Ip, Inc. Systems and methods for saving encoded media streamed using adaptive bitrate streaming
US8909922B2 (en) 2011-09-01 2014-12-09 Sonic Ip, Inc. Systems and methods for playing back alternative streams of protected content protected using common cryptographic information
CN103765856B (zh) * 2011-09-06 2017-12-15 瑞典爱立信有限公司 用于具有多层或多个流的渐进媒体下载的装置和方法
US8751679B2 (en) * 2011-10-07 2014-06-10 Ericsson Television Inc. HTTP adaptive streaming server with automatic rate shaping
US8897753B2 (en) 2011-10-12 2014-11-25 Motorola Mobility Llc Method for retrieving content by a wireless communication device having first and second radio access interfaces, wireless communication device and communication system
US9055136B2 (en) * 2011-10-13 2015-06-09 Qualcomm Incorporated Controlling streaming delay in networks
JP2013105367A (ja) * 2011-11-15 2013-05-30 Hitachi Ltd シンクライアントシステムおよびサーバ装置
CN104011701B (zh) 2011-12-14 2017-08-01 第三雷沃通讯有限责任公司 内容传送网络系统和能够在内容传送网络中操作的方法
EP2813056B1 (en) * 2012-02-06 2019-11-27 Nokia Solutions and Networks Oy Customer experience management interaction with caching
US9716856B2 (en) 2012-03-07 2017-07-25 Echostar Technologies L.L.C. Adaptive bit rate transcode and caching for off air television programming delivery
US20130311614A1 (en) * 2012-05-21 2013-11-21 Motorola Mobility, Inc. Method for retrieving content and wireless communication device for performing same
US9282348B2 (en) * 2012-08-13 2016-03-08 Disney Enterprises, Inc. Content based partitioning of digital media content
CN103702237A (zh) * 2012-09-28 2014-04-02 北京大学 Http流媒体的速率自适方法及装置
US20140108495A1 (en) * 2012-10-11 2014-04-17 Steven A. Benno Adaptive streaming client
US9332051B2 (en) 2012-10-11 2016-05-03 Verizon Patent And Licensing Inc. Media manifest file generation for adaptive streaming cost management
KR20150093153A (ko) * 2012-10-18 2015-08-17 지래픽 테크놀로지스 엘티디. 통신 링크 처리량을 동적으로 최대화하기 위한 혼잡 제어 방법
US9313510B2 (en) 2012-12-31 2016-04-12 Sonic Ip, Inc. Use of objective quality measures of streamed content to reduce streaming bandwidth
US9191457B2 (en) 2012-12-31 2015-11-17 Sonic Ip, Inc. Systems, methods, and media for controlling delivery of content
US11778257B2 (en) 2013-03-15 2023-10-03 Sling TV L.L.C. Digital advertisement frequency correction
US11956499B2 (en) 2013-03-15 2024-04-09 Sling TV L.L.C. Automated replacement of stored digital content
US11564002B2 (en) 2013-03-15 2023-01-24 Sling TV L.L.C. Automated replacement of video program content
US9503491B2 (en) 2013-03-15 2016-11-22 Echostar Technologies L.L.C. Playback stall avoidance in adaptive media streaming
US12200284B2 (en) 2013-03-15 2025-01-14 Sling TV L.L.C. Digital advertisement frequency correction
US10397292B2 (en) 2013-03-15 2019-08-27 Divx, Llc Systems, methods, and media for delivery of content
US9866889B2 (en) 2013-03-15 2018-01-09 Echostar Technologies Llc Asymmetric content delivery of media content
US9756100B2 (en) * 2013-03-15 2017-09-05 Echostar Technologies L.L.C. Placeshifting of adaptive media streams
US9906785B2 (en) 2013-03-15 2018-02-27 Sonic Ip, Inc. Systems, methods, and media for transcoding video data according to encoding parameters indicated by received metadata
US9344517B2 (en) 2013-03-28 2016-05-17 Sonic Ip, Inc. Downloading and adaptive streaming of multimedia content to a device with cache assist
US9247317B2 (en) 2013-05-30 2016-01-26 Sonic Ip, Inc. Content streaming with client device trick play index
US9094737B2 (en) 2013-05-30 2015-07-28 Sonic Ip, Inc. Network video streaming with trick play based on separate trick play files
US9967305B2 (en) 2013-06-28 2018-05-08 Divx, Llc Systems, methods, and media for streaming media content
CN109842613B (zh) 2013-07-12 2021-11-19 佳能株式会社 用于提供和接收媒体数据的方法和装置以及存储介质
GB2551674B (en) * 2013-07-12 2018-04-11 Canon Kk Adaptive data streaming method with push messages control
EP3022883B1 (en) * 2013-07-16 2017-05-03 Bitmovin GmbH Apparatus and method for cloud assisted adaptive streaming
EP2833640A1 (en) * 2013-08-02 2015-02-04 British Telecommunications public limited company Video caching
US9343112B2 (en) 2013-10-31 2016-05-17 Sonic Ip, Inc. Systems and methods for supplementing content from a server
US9253231B2 (en) * 2013-12-19 2016-02-02 Verizon Patent And Licensing Inc. Retrieving and caching adaptive bitrate stream segments based on network congestion
US9996445B2 (en) 2014-01-17 2018-06-12 International Business Machines Corporation Computer flight recorder with active error detection
US9596281B2 (en) 2014-03-18 2017-03-14 Qualcomm Incorporated Transport accelerator implementing request manager and connection manager functionality
US9866878B2 (en) 2014-04-05 2018-01-09 Sonic Ip, Inc. Systems and methods for encoding and playing back video at different frame rates using enhancement layers
US10225298B2 (en) 2015-01-06 2019-03-05 Divx, Llc Systems and methods for encoding and sharing content between devices
US9979765B2 (en) 2015-05-11 2018-05-22 Apple Inc. Adaptive connection switching
US10047547B2 (en) 2015-05-20 2018-08-14 Pacific Lock Company Locking link
US20170041363A1 (en) * 2015-08-03 2017-02-09 Unroll, Inc. System and Method for Assembling and Playing a Composite Audiovisual Program Using Single-Action Content Selection Gestures and Content Stream Generation
US9602455B2 (en) * 2015-08-07 2017-03-21 Machine Zone, Inc. Scalable, real-time messaging system
GB2549549B (en) * 2016-04-19 2020-12-23 Cisco Tech Inc A mapping database system for use with content chunks
US10498795B2 (en) 2017-02-17 2019-12-03 Divx, Llc Systems and methods for adaptive switching between multiple content delivery networks during adaptive bitrate streaming
US10609178B2 (en) * 2017-03-16 2020-03-31 Ronaldo Cordero Navarro Digital media and multimedia scheduling and delivery platform
CN107480181B (zh) * 2017-07-05 2020-11-24 百度在线网络技术(北京)有限公司 音频播放方法、装置、设备及服务器
US10735804B2 (en) * 2017-12-28 2020-08-04 Rovi Guides, Inc. Systems and methods for adaptively buffering media content at a digital video recorder
US10616640B2 (en) 2017-12-28 2020-04-07 Sling TV L.L.C. Over the top media integration with over the air broadcast media
US11838588B2 (en) 2017-12-29 2023-12-05 Comcast Cable Communications, Llc Performing trick plays of segmented video content
US11463782B2 (en) 2018-06-21 2022-10-04 Dish Network L.L.C. User device control of transmission parameters
CN112690005A (zh) * 2018-09-14 2021-04-20 新加坡国立大学 用于流传输内容的方法和设备
US20200296462A1 (en) 2019-03-11 2020-09-17 Wci One, Llc Media content presentation
US20200296316A1 (en) 2019-03-11 2020-09-17 Quibi Holdings, LLC Media content presentation
US11108481B2 (en) 2019-09-18 2021-08-31 Sling Media L.L.C. Over-the-air programming integration with over the top streaming services
US11146839B1 (en) * 2020-07-06 2021-10-12 Comcast Cable Communications, Llc Adaptive bitrate streaming
US11611542B2 (en) 2021-08-11 2023-03-21 Dish Network Technologies India Private Limited Secure media streaming communication via user datagram protocol
US12096053B2 (en) * 2022-03-02 2024-09-17 Streaming Global, Inc. Content delivery platform
US11627345B1 (en) 2022-05-10 2023-04-11 Dish Network Technologies India Private Limited Buffer management for optimized processing in media pipeline
CN116095092B (zh) * 2023-04-11 2023-06-23 湖南快乐阳光互动娱乐传媒有限公司 一种对等节点选择方法及装置
US12262075B2 (en) 2023-04-27 2025-03-25 Dish Network Technologies India Private Limited Methods and systems for streaming in flaky network

Family Cites Families (302)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1186028A (en) * 1982-06-23 1985-04-23 Microdesign Limited Method and apparatus for scrambling and unscrambling data streams using encryption and decryption
US5168356A (en) * 1991-02-27 1992-12-01 General Electric Company Apparatus for segmenting encoded video signal for transmission
AU657510B2 (en) * 1991-05-24 1995-03-16 Apple Inc. Improved image encoding/decoding method and apparatus
GB2265733A (en) * 1992-03-26 1993-10-06 Ibm Buffering and computer display of video signals.
US6604118B2 (en) * 1998-07-31 2003-08-05 Network Appliance, Inc. File system image transfer
CA2140850C (en) 1994-02-24 1999-09-21 Howard Paul Katseff Networked system for display of multimedia presentations
AU3215295A (en) * 1994-08-12 1996-03-14 Neosoft, A.G. Nonlinear digital communications system
US5687095A (en) 1994-11-01 1997-11-11 Lucent Technologies Inc. Video transmission rate matching for multimedia communication systems
US7349976B1 (en) * 1994-11-30 2008-03-25 Realnetworks, Inc. Audio-on-demand communication system
EP0867003A2 (en) * 1995-12-12 1998-09-30 The Board of Trustees for the University of Illinois Method of and system for transmitting and/or retrieving real-time video and audio information over performance-limited transmission systems
US5841432A (en) * 1996-02-09 1998-11-24 Carmel; Sharon Method and system of building and transmitting a data file for real time play of multimedia, particularly animation, and a data file for real time play of multimedia applications
US5768527A (en) * 1996-04-23 1998-06-16 Motorola, Inc. Device, system and method of real-time multimedia streaming
US5852904A (en) 1996-08-05 1998-12-29 Haworth, Inc. Panel arrangement
JP3435295B2 (ja) * 1996-09-30 2003-08-11 株式会社東芝 情報送信装置およびトラヒック制御装置、並びこれらを利用した帯域運用方法および呼受け付け方法
US20030093790A1 (en) 2000-03-28 2003-05-15 Logan James D. Audio and video program recording, editing and playback systems using metadata
US6366614B1 (en) * 1996-10-11 2002-04-02 Qualcomm Inc. Adaptive rate control for digital video compression
US6480541B1 (en) * 1996-11-27 2002-11-12 Realnetworks, Inc. Method and apparatus for providing scalable pre-compressed digital video with reduced quantization based artifacts
US5953506A (en) * 1996-12-17 1999-09-14 Adaptive Media Technologies Method and apparatus that provides a scalable media delivery system
US6732183B1 (en) * 1996-12-31 2004-05-04 Broadware Technologies, Inc. Video and audio streaming for multiple users
US6449653B2 (en) * 1997-03-25 2002-09-10 Microsoft Corporation Interleaved multiple multimedia stream for synchronized transmission over a computer network
WO1998044733A1 (en) * 1997-03-31 1998-10-08 Broadband Associates Method and system for providing a presentation on a network
US6091775A (en) * 1997-04-17 2000-07-18 Sharp Kabushiki Kaisha Video-coding device and video-decoding device
JPH114225A (ja) * 1997-06-11 1999-01-06 Fuji Xerox Co Ltd データ伝送装置およびデータ伝送方法
US6181711B1 (en) * 1997-06-26 2001-01-30 Cisco Systems, Inc. System and method for transporting a compressed video and data bit stream over a communication channel
US6091777A (en) * 1997-09-18 2000-07-18 Cubic Video Technologies, Inc. Continuously adaptive digital video compression system and method for a web streamer
US6845107B1 (en) 1997-10-15 2005-01-18 Sony Corporation Video data multiplexer, video data multiplexing control method, method and apparatus for multiplexing encoded stream, and encoding method and apparatus
EP0919952A1 (en) 1997-11-28 1999-06-02 Ecole Polytechnique Federale De Lausanne Method for coding/decoding of a digital signal
JP3844588B2 (ja) * 1998-03-05 2006-11-15 富士通株式会社 情報管理システム、ローカルコンピュータ、及び情報取得プログラムを記録したコンピュータ読み取り可能な記録媒体
IL123819A (en) * 1998-03-24 2001-09-13 Geo Interactive Media Group Lt Network media streaming
US6195680B1 (en) * 1998-07-23 2001-02-27 International Business Machines Corporation Client-based dynamic switching of streaming servers for fault-tolerance and load balancing
US7558472B2 (en) 2000-08-22 2009-07-07 Tivo Inc. Multimedia signal processing system
US6574591B1 (en) * 1998-07-31 2003-06-03 Network Appliance, Inc. File systems image transfer between dissimilar file systems
US6622171B2 (en) * 1998-09-15 2003-09-16 Microsoft Corporation Multimedia timeline modification in networked client/server systems
EP0993163A1 (en) * 1998-10-05 2000-04-12 Backweb Technologies Ltd. Distributed client-based data caching system and method
US6510553B1 (en) * 1998-10-26 2003-01-21 Intel Corporation Method of streaming video from multiple sources over a network
US7334044B1 (en) 1998-11-17 2008-02-19 Burst.Com Method for connection acceptance control and optimal multi-media content delivery over networks
US6850965B2 (en) 1998-11-17 2005-02-01 Arthur Douglas Allen Method for connection acceptance and rapid determination of optimal multi-media content delivery over network
US6637031B1 (en) 1998-12-04 2003-10-21 Microsoft Corporation Multimedia presentation latency minimization
JP2000201343A (ja) 1999-01-05 2000-07-18 Toshiba Corp 動画像デ―タ再生装置及び動画像デ―タ分割装置並びにプログラムを記録したコンピュ―タ読み取り可能な記録媒体
US6731600B1 (en) * 1999-02-08 2004-05-04 Realnetworks, Inc. System and method for determining network conditions
US6122660A (en) * 1999-02-22 2000-09-19 International Business Machines Corporation Method for distributing digital TV signal and selection of content
EP1039367A3 (en) 1999-03-25 2002-02-06 Seiko Epson Corporation Printer controller, printer control method, and data storage medium carrying computer program means
US6654806B2 (en) * 1999-04-09 2003-11-25 Sun Microsystems, Inc. Method and apparatus for adaptably providing data to a network environment
US7885340B2 (en) * 1999-04-27 2011-02-08 Realnetworks, Inc. System and method for generating multiple synchronized encoded representations of media data
FI113124B (fi) 1999-04-29 2004-02-27 Nokia Corp Tiedonsiirto
US6430604B1 (en) * 1999-08-03 2002-08-06 International Business Machines Corporation Technique for enabling messaging systems to use alternative message delivery mechanisms
US6859839B1 (en) 1999-08-06 2005-02-22 Wisconsin Alumni Research Foundation Bandwidth reduction of on-demand streaming data using flexible merger hierarchies
US6795863B1 (en) 1999-08-10 2004-09-21 Intline.Com, Inc. System, device and method for combining streaming video with e-mail
JP3580192B2 (ja) 1999-09-24 2004-10-20 株式会社日立情報システムズ 画像データ配信システムおよびそれに用いる記録媒体
US6449719B1 (en) * 1999-11-09 2002-09-10 Widevine Technologies, Inc. Process and streaming server for encrypting a data stream
US7523181B2 (en) 1999-11-22 2009-04-21 Akamai Technologies, Inc. Method for determining metrics of a content delivery and global traffic management network
US6848004B1 (en) 1999-11-23 2005-01-25 International Business Machines Corporation System and method for adaptive delivery of rich media content to a user in a network based on real time bandwidth measurement & prediction according to available user bandwidth
US6708213B1 (en) 1999-12-06 2004-03-16 Lucent Technologies Inc. Method for streaming multimedia information over public networks
US20020073167A1 (en) * 1999-12-08 2002-06-13 Powell Kyle E. Internet content delivery acceleration system employing a hybrid content selection scheme
US7389356B2 (en) * 1999-12-15 2008-06-17 Microsoft Corporation Generalized differentiation methods and arrangements for adaptive multimedia communications
US7051110B2 (en) * 1999-12-20 2006-05-23 Matsushita Electric Industrial Co., Ltd. Data reception/playback method and apparatus and data transmission method and apparatus for providing playback control functions
US6721723B1 (en) 1999-12-23 2004-04-13 1St Desk Systems, Inc. Streaming metatree data structure for indexing information in a data base
US20040220926A1 (en) 2000-01-03 2004-11-04 Interactual Technologies, Inc., A California Cpr[P Personalization services for entities from multiple sources
US7477688B1 (en) 2000-01-26 2009-01-13 Cisco Technology, Inc. Methods for efficient bandwidth scaling of compressed video data
WO2001067264A1 (en) 2000-03-08 2001-09-13 Streamcenter, Inc. Apparatus and method for predictable and differentiated delivery of multimedia streaming on the internet
IL151691A0 (en) * 2000-03-14 2003-04-10 Teva Pharma Novel process for preparing (+)-cis-sertraline
US6880017B1 (en) * 2000-03-20 2005-04-12 International Business Machines Corporation System and method for providing an adaptive streaming flow control mechanism between the TCP and IP layers of the TCP/IP suite of protocols
US7398312B1 (en) 2000-03-29 2008-07-08 Lucent Technologies Inc. Method and system for caching streaming multimedia on the internet
US7240100B1 (en) 2000-04-14 2007-07-03 Akamai Technologies, Inc. Content delivery network (CDN) content server request handling mechanism with metadata framework support
US7124164B1 (en) 2001-04-17 2006-10-17 Chemtob Helen J Method and apparatus for providing group interaction via communications networks
US6618752B1 (en) * 2000-04-18 2003-09-09 International Business Machines Corporation Software and method for multicasting on a network
US6976090B2 (en) 2000-04-20 2005-12-13 Actona Technologies Ltd. Differentiated content and application delivery via internet
US6757796B1 (en) 2000-05-15 2004-06-29 Lucent Technologies Inc. Method and system for caching streaming live broadcasts transmitted over a network
US20030107994A1 (en) * 2000-05-18 2003-06-12 Jacobs Richard J Communications network
US7032031B2 (en) 2000-06-23 2006-04-18 Cloudshield Technologies, Inc. Edge adapter apparatus and method
US6675199B1 (en) * 2000-07-06 2004-01-06 Microsoft Identification of active server cluster controller
US20050204385A1 (en) 2000-07-24 2005-09-15 Vivcom, Inc. Processing and presentation of infomercials for audio-visual programs
US7310678B2 (en) * 2000-07-28 2007-12-18 Kasenna, Inc. System, server, and method for variable bit rate multimedia streaming
US6801947B1 (en) 2000-08-01 2004-10-05 Nortel Networks Ltd Method and apparatus for broadcasting media objects with guaranteed quality of service
AU2001273692A1 (en) 2000-09-01 2002-03-13 Moxi Digital Inc. System and method for intelligent buffering and bandwidth allocation
US7194549B1 (en) 2000-09-06 2007-03-20 Vulcan Patents Llc Multicast system using client forwarding
GB2367219A (en) 2000-09-20 2002-03-27 Vintage Global Streaming of media file data over a dynamically variable bandwidth channel
US6486803B1 (en) * 2000-09-22 2002-11-26 Digital Fountain, Inc. On demand encoding with a window
EP1191793A3 (en) * 2000-09-25 2008-01-23 Monolith Co., Ltd. Animation distributing method, animation distributing server and corresponding system
US7051315B2 (en) 2000-09-26 2006-05-23 Appstream, Inc. Network streaming of multi-application program code
KR100345447B1 (ko) 2000-09-27 2002-07-26 한국전자통신연구원 스트리밍 서비스를 위한 가변 비트율 처리 방법
ATE370582T1 (de) * 2000-10-03 2007-09-15 U4Ea Technologies Ltd Zuweisung von prioritätsstufen in einem datenfluss
AU2002237748A1 (en) * 2000-10-19 2002-05-21 Loudeye Technologies, Inc. System and method for selective insertion of content into streaming media
JP3699910B2 (ja) 2000-10-31 2005-09-28 株式会社東芝 データ伝送装置、データ伝送方法及びプログラム
US7062567B2 (en) * 2000-11-06 2006-06-13 Endeavors Technology, Inc. Intelligent network streaming and execution system for conventionally coded applications
US8566211B2 (en) * 2000-11-22 2013-10-22 Efficient Auctions, Llc System and method for a dynamic auction with package bidding
US20020073238A1 (en) 2000-11-28 2002-06-13 Eli Doron System and method for media stream adaptation
US20020091840A1 (en) * 2000-11-28 2002-07-11 Gregory Pulier Real-time optimization of streaming media from a plurality of media sources
US7631039B2 (en) * 2000-12-01 2009-12-08 Radvision Ltd. Initiation and support of video conferencing using instant messaging
US7133923B2 (en) * 2000-12-11 2006-11-07 Acme Packet, Inc. System and method for assisting in controlling real-time transport protocol flow through multiple networks via screening
US7308487B1 (en) 2000-12-12 2007-12-11 Igate Corp. System and method for providing fault-tolerant remote controlled computing devices
US7376279B2 (en) * 2000-12-14 2008-05-20 Idx Investment Corporation Three-dimensional image streaming system and method for medical images
EP1215663A1 (en) * 2000-12-15 2002-06-19 BRITISH TELECOMMUNICATIONS public limited company Encoding audio signals
US6760772B2 (en) 2000-12-15 2004-07-06 Qualcomm, Inc. Generating and implementing a communication protocol and interface for high data rate signal transfer
WO2002049343A1 (en) 2000-12-15 2002-06-20 British Telecommunications Public Limited Company Transmission and reception of audio and/or video material
GB0031157D0 (en) * 2000-12-20 2001-01-31 Ncr Int Inc Streaming of data
US6934875B2 (en) * 2000-12-29 2005-08-23 International Business Machines Corporation Connection cache for highly available TCP systems with fail over connections
US20020122491A1 (en) * 2001-01-03 2002-09-05 Marta Karczewicz Video decoder architecture and method for using same
NO315887B1 (no) * 2001-01-04 2003-11-03 Fast Search & Transfer As Fremgangsmater ved overforing og soking av videoinformasjon
US6961754B2 (en) * 2001-01-12 2005-11-01 Telefonaktiebolaget Lm Ericsson Interactive access, manipulation, sharing and exchange of multimedia data
US20020131496A1 (en) * 2001-01-18 2002-09-19 Vinod Vasudevan System and method for adjusting bit rate and cost of delivery of digital data
US7640362B2 (en) * 2001-01-31 2009-12-29 Interdigital Technology Corporation Adaptive compression in an edge router
US20020156912A1 (en) 2001-02-15 2002-10-24 Hurst John T. Programming content distribution
WO2002071191A2 (en) * 2001-03-02 2002-09-12 Kasenna, Inc. Metadata enabled push-pull model for efficient low-latency video-content distribution over a network
CN1299222C (zh) * 2001-03-14 2007-02-07 诺基亚有限公司 存在管理的实现
US20020133547A1 (en) * 2001-03-15 2002-09-19 Coretex Limited Method and system for real time net communication under the basis of documents
US20020178138A1 (en) * 2001-03-15 2002-11-28 Semiconductor Components Industries, Llc Synergistic directory-based information management system and method of using
US20040117427A1 (en) 2001-03-16 2004-06-17 Anystream, Inc. System and method for distributing streaming media
US7046805B2 (en) * 2001-03-20 2006-05-16 Digeo, Inc. System and method for efficiently storing and processing multimedia content
US7089309B2 (en) * 2001-03-21 2006-08-08 Theplatform For Media, Inc. Method and system for managing and distributing digital media
US20020146102A1 (en) * 2001-03-22 2002-10-10 Lang Alexander C. Method and system for multi-provider competitive telecommunications services
US6697072B2 (en) * 2001-03-26 2004-02-24 Intel Corporation Method and system for controlling an avatar using computer vision
US6766407B1 (en) * 2001-03-27 2004-07-20 Microsoft Corporation Intelligent streaming framework
EP1248431B1 (en) 2001-03-27 2007-10-31 Sony Deutschland GmbH Method for achieving end-to-end quality of service negotiation for distributed multimedia applications
US20020144276A1 (en) * 2001-03-30 2002-10-03 Jim Radford Method for streamed data delivery over a communications network
US6925501B2 (en) * 2001-04-17 2005-08-02 General Instrument Corporation Multi-rate transcoder for digital streams
US20020178330A1 (en) * 2001-04-19 2002-11-28 Schlowsky-Fischer Mark Harold Systems and methods for applying a quality metric to caching and streaming of multimedia files over a network
US20020194608A1 (en) * 2001-04-26 2002-12-19 Goldhor Richard S. Method and apparatus for a playback enhancement system implementing a "Say Again" feature
US20020174434A1 (en) * 2001-05-18 2002-11-21 Tsu-Chang Lee Virtual broadband communication through bundling of a group of circuit switching and packet switching channels
US20020184391A1 (en) * 2001-06-05 2002-12-05 Motorola, Inc. Method and system for orderly communication of chat messages in a wirless network
US20020188745A1 (en) * 2001-06-11 2002-12-12 Hughes David A. Stacked stream for providing content to multiple types of client devices
US6742082B1 (en) 2001-06-12 2004-05-25 Network Appliance Pre-computing streaming media payload method and apparatus
US7478164B1 (en) * 2001-06-12 2009-01-13 Netapp, Inc. Methods and apparatus for pacing delivery of streaming media data
US7054911B1 (en) 2001-06-12 2006-05-30 Network Appliance, Inc. Streaming media bitrate switching methods and apparatus
JP2003005947A (ja) 2001-06-25 2003-01-10 Toshiba Corp サーバ装置、携帯端末、コンテンツ配信方法、コンテンツ受信方法及びプログラム
US20030007464A1 (en) * 2001-06-25 2003-01-09 Balani Ram Jethanand Method and device for effecting venue specific wireless communication
US6792449B2 (en) 2001-06-28 2004-09-14 Microsoft Corporation Startup methods and apparatuses for use in streaming content
US20030005455A1 (en) * 2001-06-29 2003-01-02 Bowers J. Rob Aggregation of streaming media to improve network performance
ES2235065T3 (es) 2001-07-03 2005-07-01 Telefonaktiebolaget Lm Ericsson (Publ) Metodo y sistema para gestionar multiples registros.
WO2003009581A1 (en) 2001-07-19 2003-01-30 British Telecommunications Public Limited Company Video stream switching
US7154916B2 (en) * 2001-07-26 2006-12-26 The Directv Group, Inc. Method for real-time insertion of auxiliary data packets into DSS bitstream in the presence of one or more service channels
US7274659B2 (en) * 2001-07-27 2007-09-25 Western Digital Ventures, Inc. Providing streaming media data
DE60216126T2 (de) * 2001-09-12 2007-10-04 OpenTV, Inc., San Francisco Verfahren und gerät für interaktives fernsehen mit unverbundener überwachung einer diskussionsforum
US7274661B2 (en) * 2001-09-17 2007-09-25 Altera Corporation Flow control method for quality streaming of audio/video/media over packet networks
US8042132B2 (en) * 2002-03-15 2011-10-18 Tvworks, Llc System and method for construction, delivery and display of iTV content
FI115418B (fi) 2001-09-20 2005-04-29 Oplayo Oy Adaptiivinen mediavirta
JP4852228B2 (ja) 2001-09-26 2012-01-11 インタラクト デヴァイシーズ インコーポレイテッド メディア信号を通信するためのシステム及び方法
US20030065803A1 (en) * 2001-09-28 2003-04-03 Koninklijke Philips Electronics N. V. Intelligent delivery method for streamed content
US20030081582A1 (en) * 2001-10-25 2003-05-01 Nikhil Jain Aggregating multiple wireless communication channels for high data rate transfers
KR100408525B1 (ko) 2001-10-31 2003-12-06 삼성전자주식회사 네트워크에 적응적인 실시간 멀티미디어 스트리밍 시스템및 방법
CA2466482C (en) 2001-11-09 2012-08-07 Musicmatch, Inc. File splitting, scalable coding and asynchronous transmission in streamed data transfer
US7031700B1 (en) 2001-11-14 2006-04-18 Sprint Spectrum L.P. Method and system for location-based group conference initiation
US7093001B2 (en) 2001-11-26 2006-08-15 Microsoft Corporation Methods and systems for adaptive delivery of multimedia contents
US20030121047A1 (en) 2001-12-20 2003-06-26 Watson Paul T. System and method for content transmission network selection
US6789123B2 (en) * 2001-12-28 2004-09-07 Microsoft Corporation System and method for delivery of dynamically scalable audio/video content over a network
US7127713B2 (en) * 2002-01-11 2006-10-24 Akamai Technologies, Inc. Java application framework for use in a content delivery network (CDN)
US20030151753A1 (en) * 2002-02-08 2003-08-14 Shipeng Li Methods and apparatuses for use in switching between streaming video bitstreams
US7412531B1 (en) 2002-01-29 2008-08-12 Blue Coat Systems, Inc. Live stream archiving method and apparatus
US7289509B2 (en) * 2002-02-14 2007-10-30 International Business Machines Corporation Apparatus and method of splitting a data stream over multiple transport control protocol/internet protocol (TCP/IP) connections
EP1359722A1 (en) * 2002-03-27 2003-11-05 BRITISH TELECOMMUNICATIONS public limited company Data streaming system and method
WO2003087997A2 (en) 2002-04-10 2003-10-23 Akamai Technologies, Inc. Method and system for enhancing live stream delivery quality using prebursting
US7483487B2 (en) * 2002-04-11 2009-01-27 Microsoft Corporation Streaming methods and systems
US20030204602A1 (en) 2002-04-26 2003-10-30 Hudson Michael D. Mediated multi-source peer content delivery network architecture
US7133881B2 (en) * 2002-04-29 2006-11-07 Intel Corporation Encoding and transferring media content onto removable storage
US7657644B1 (en) 2002-05-10 2010-02-02 Netapp, Inc. Methods and apparatus for streaming media multicast
JP4192498B2 (ja) * 2002-05-17 2008-12-10 日本電気株式会社 コンテンツ転送方法、そのプログラム、そのシステム及びサーバ
WO2003098897A1 (en) 2002-05-17 2003-11-27 Koninklijke Philips Electronics N.V. Quality driven streaming method and apparatus
EP1365553A1 (en) * 2002-05-23 2003-11-26 Accenture Global Services GmbH Method and device for instant messaging
US7116894B1 (en) 2002-05-24 2006-10-03 Digeo, Inc. System and method for digital multimedia stream conversion
US20030233464A1 (en) * 2002-06-10 2003-12-18 Jonathan Walpole Priority progress streaming for quality-adaptive transmission of data
US20030236904A1 (en) 2002-06-19 2003-12-25 Jonathan Walpole Priority progress multicast streaming for quality-adaptive transmission of data
JP2004023732A (ja) 2002-06-20 2004-01-22 Matsushita Electric Ind Co Ltd データ送信装置、データ受信装置、データ送信方法及びデータ受信方法
US7725557B2 (en) 2002-06-24 2010-05-25 Microsoft Corporation Client-side caching of streaming media content
AU2003241143A1 (en) 2002-06-25 2004-01-06 Quix Technologies Ltd. Image processing using probabilistic local behavior assumptions
US7818763B2 (en) * 2002-06-25 2010-10-19 Starz Entertainment, Llc Video advertising
US20040003101A1 (en) * 2002-06-26 2004-01-01 Roth David J. Caching control for streaming media
US7099954B2 (en) 2002-06-27 2006-08-29 Microsoft Corporation Congestion control mechanism for streaming media
CN1217543C (zh) 2002-06-28 2005-08-31 国际商业机器公司 对等视频点播系统中的设备和方法
US7966374B2 (en) * 2002-07-01 2011-06-21 Profiliq Software Inc. Adaptive media messaging, such as for rich media messages incorporating digital content
US8090761B2 (en) * 2002-07-12 2012-01-03 Hewlett-Packard Development Company, L.P. Storage and distribution of segmented media data
US7111044B2 (en) 2002-07-17 2006-09-19 Fastmobile, Inc. Method and system for displaying group chat sessions on wireless mobile terminals
US7802008B2 (en) * 2002-08-12 2010-09-21 Matsushita Electric Industrial Co., Ltd. Quality of service management in network gateways
EP1395014B1 (en) 2002-08-27 2006-06-14 Matsushita Electric Industrial Co., Ltd. A method of transmitting data streams with data segments of variable length
US7707303B2 (en) * 2002-09-06 2010-04-27 Telefonaktiebolaget L M Ericsson (Publ) Method and devices for controlling retransmissions in data streaming
US8245252B2 (en) * 2002-09-10 2012-08-14 Caption Tv, Inc. System, method, and computer program product for selective replacement of objectionable program content with less-objectionable content
BR0306317A (pt) 2002-09-10 2007-05-08 Thomson Licensing Sa sistema e método de servidor de vìdeo sob demanda
KR100486713B1 (ko) 2002-09-17 2005-05-03 삼성전자주식회사 멀티미디어 스트리밍 장치 및 방법
FI116498B (fi) * 2002-09-23 2005-11-30 Nokia Corp Kaistanleveyden mukauttaminen
US20040073934A1 (en) * 2002-09-30 2004-04-15 Sharp Laboratories Of America, Inc. Streaming video for adaptive user instructions
US7190670B2 (en) 2002-10-04 2007-03-13 Nokia Corporation Method and apparatus for multimedia streaming in a limited bandwidth network with a bottleneck link
US7643550B2 (en) * 2002-10-09 2010-01-05 Hewlett-Packard Development Company, L.P. Method for presenting streaming media for an event
FI116816B (fi) 2002-10-14 2006-02-28 Nokia Corp Median suoratoisto
US7136922B2 (en) 2002-10-15 2006-11-14 Akamai Technologies, Inc. Method and system for providing on-demand content delivery for an origin server
US7328243B2 (en) 2002-10-31 2008-02-05 Sun Microsystems, Inc. Collaborative content coherence using mobile agents in peer-to-peer networks
US7424514B2 (en) 2002-11-08 2008-09-09 The Regents Of The University Of Michigan Peer-to-peer method and system for performing and managing backups in a network of nodes
US7716312B2 (en) * 2002-11-13 2010-05-11 Avid Technology, Inc. Method and system for transferring large data files over parallel connections
CA2505853A1 (en) 2002-11-18 2004-06-03 British Telecommunications Public Limited Company Transmission of video
SG111978A1 (en) 2002-11-20 2005-06-29 Victor Company Of Japan An mpeg-4 live unicast video streaming system in wireless network with end-to-end bitrate-based congestion control
US20040103444A1 (en) 2002-11-26 2004-05-27 Neal Weinberg Point to multi-point broadcast-quality Internet video broadcasting system with synchronized, simultaneous audience viewing and zero-latency
US6874015B2 (en) 2002-12-16 2005-03-29 International Business Machines Corporation Parallel CDN-based content delivery
US7792982B2 (en) * 2003-01-07 2010-09-07 Microsoft Corporation System and method for distributing streaming content through cooperative networking
US6968387B2 (en) * 2003-01-10 2005-11-22 Realnetworks, Inc. Stochastic adaptive streaming of content
CN1195274C (zh) * 2003-01-25 2005-03-30 华中科技大学 基于集群视频服务器的节目源分片分布式存储方法
KR100759954B1 (ko) * 2003-02-13 2007-09-19 노키아 코포레이션 멀티미디어 스트리밍에서 클라이언트 레이트 능력을시그널링하는 방법
US7260640B1 (en) 2003-02-13 2007-08-21 Unisys Corproation System and method for providing an enhanced enterprise streaming media server capacity and performance
US7336890B2 (en) * 2003-02-19 2008-02-26 Microsoft Corporation Automatic detection and segmentation of music videos in an audio/video stream
US20040168052A1 (en) 2003-02-25 2004-08-26 Clisham Allister B. Electronic content communication system and method
TW591952B (en) * 2003-03-14 2004-06-11 Cyberlink Corp Intelligent video stream processing method and system thereof
GB0306296D0 (en) 2003-03-19 2003-04-23 British Telecomm Data transmission
EP1615433A4 (en) * 2003-03-19 2010-05-26 Panasonic Corp DATA PROCESSING DEVICE
GB0306973D0 (en) * 2003-03-26 2003-04-30 British Telecomm Transmitting video
US7324523B2 (en) * 2003-03-26 2008-01-29 Sony Corporation System and method for dynamically allocating bandwidth to applications in a network based on utility functions
US7257407B2 (en) * 2003-03-26 2007-08-14 Sony Corporation System and method for dynamically allocating data rates and channels to clients in a wireless network
US7526565B2 (en) * 2003-04-03 2009-04-28 International Business Machines Corporation Multiple description hinting and switching for adaptive media services
US20040199472A1 (en) * 2003-04-04 2004-10-07 Dobbins Kurt A. Method and apparatus for billing over a network
US20040199604A1 (en) * 2003-04-04 2004-10-07 Dobbins Kurt A. Method and system for tagging content for preferred transport
US8321584B2 (en) * 2003-04-04 2012-11-27 Ellacoya Networks, Inc. Method and apparatus for offering preferred transport within a broadband subscriber network
US20040196842A1 (en) * 2003-04-04 2004-10-07 Dobbins Kurt A. Method and system for according preferred transport based on node identification
US7313236B2 (en) 2003-04-09 2007-12-25 International Business Machines Corporation Methods and apparatus for secure and adaptive delivery of multimedia content
US7844727B2 (en) * 2003-04-24 2010-11-30 Nokia Corporation Method and device for proactive rate adaptation signaling
US7373416B2 (en) 2003-04-24 2008-05-13 Akamai Technologies, Inc. Method and system for constraining server usage in a distributed network
WO2004100010A1 (en) * 2003-04-30 2004-11-18 Iptv Systems, Llc Secure, continuous, proxy-optimized, device-to-device data download reception system and method of use
US7577750B2 (en) 2003-05-23 2009-08-18 Microsoft Corporation Systems and methods for peer-to-peer collaboration to enhance multimedia streaming
US20040260701A1 (en) 2003-05-27 2004-12-23 Juha Lehikoinen System and method for weblog and sharing in a peer-to-peer environment
US7797439B2 (en) 2003-06-23 2010-09-14 Hewlett-Packard Development Company, L.P. Cost-aware admission control for streaming media server
US7274740B2 (en) 2003-06-25 2007-09-25 Sharp Laboratories Of America, Inc. Wireless video transmission system
WO2005002126A2 (en) 2003-06-26 2005-01-06 Deviant Technologies, Inc. Self-contained instant messaging appliance
US7054774B2 (en) 2003-06-27 2006-05-30 Microsoft Corporation Midstream determination of varying bandwidth availability
US7391717B2 (en) 2003-06-30 2008-06-24 Microsoft Corporation Streaming of variable bit rate multimedia content
US20050024487A1 (en) 2003-07-31 2005-02-03 William Chen Video codec system with real-time complexity adaptation and region-of-interest coding
US7941554B2 (en) 2003-08-01 2011-05-10 Microsoft Corporation Sparse caching for streaming media
US20050033855A1 (en) * 2003-08-05 2005-02-10 Ahmad Moradi Method and apparatus for generating and marketing video e-mail and an intelligent video streaming server
BRPI0413812A (pt) 2003-08-21 2006-10-17 Vidiator Entpr Inc dispositivo e método de qualidade de experiência (qoe) para rede de comunicação celular
US7408984B2 (en) * 2003-09-17 2008-08-05 International Business Machines Corporation Method and system for multiple pass video coding
US7363228B2 (en) * 2003-09-18 2008-04-22 Interactive Intelligence, Inc. Speech recognition system and method
US7349358B2 (en) 2003-10-06 2008-03-25 Kontiki, Inc. Method and apparatus for optimizing content delivery on local subnets
US20070008884A1 (en) * 2003-10-08 2007-01-11 Bob Tang Immediate ready implementation of virtually congestion free guarantedd service capable network
CN100539601C (zh) 2003-10-15 2009-09-09 株式会社Ntt都科摩 控制多个通信层的操作的设备和方法
US8935717B2 (en) 2003-10-22 2015-01-13 Clearplay, Inc. Apparatus and method for blocking audio/visual programming and for muting audio
US20050108414A1 (en) * 2003-11-14 2005-05-19 Taylor Thomas M. System and method for transmitting data in computer systems using virtual streaming
US7369610B2 (en) 2003-12-01 2008-05-06 Microsoft Corporation Enhancement layer switching for scalable video coding
US7272782B2 (en) 2003-12-19 2007-09-18 Backweb Technologies, Inc. System and method for providing offline web application, page, and form access in a networked environment
JP2007520109A (ja) 2003-12-22 2007-07-19 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ エンコード特性の適応を伴うコンテンツ送信方法
US7546355B2 (en) 2004-01-16 2009-06-09 Bloomberg Finance L.P. Network architecture for data transmission
US7400577B2 (en) 2004-02-25 2008-07-15 Microsoft Corporation Methods and systems for streaming data
US20050251832A1 (en) 2004-03-09 2005-11-10 Chiueh Tzi-Cker Video acquisition and distribution over wireless networks
US7818444B2 (en) 2004-04-30 2010-10-19 Move Networks, Inc. Apparatus, system, and method for multi-bitrate content streaming
US8868772B2 (en) 2004-04-30 2014-10-21 Echostar Technologies L.L.C. Apparatus, system, and method for adaptive-rate shifting of streaming content
US20050254508A1 (en) 2004-05-13 2005-11-17 Nokia Corporation Cooperation between packetized data bit-rate adaptation and data packet re-transmission
US7176957B2 (en) 2004-05-25 2007-02-13 Seiko Epson Corporation Local video loopback method for a multi-participant conference system using a back-channel video interface
US20060010003A1 (en) 2004-07-02 2006-01-12 Sky Kruse User-capability-tailored transfer of digitally encoded content
US7593333B2 (en) 2004-07-07 2009-09-22 Microsoft Corporation Efficient one-to-many content distribution in a peer-to-peer computer network
WO2006010113A2 (en) 2004-07-09 2006-01-26 Network Foundation Technologies, Llc Systems for distributing data over a computer network and methods for arranging nodes for distribution of data over a computer network
US20060047779A1 (en) 2004-07-12 2006-03-02 Sharp Laboratories Of America, Inc. HTTP agent-driven content negotiation for scalable video coding
US7174385B2 (en) 2004-09-03 2007-02-06 Microsoft Corporation System and method for receiver-driven streaming in a peer-to-peer network
US7738897B2 (en) 2004-09-17 2010-06-15 Nextel Communications Inc. Broadcast dispatch chatroom
US7640352B2 (en) 2004-09-24 2009-12-29 Microsoft Corporation Methods and systems for presentation of media obtained from a media stream
US20060206246A1 (en) 2004-10-28 2006-09-14 Walker Richard C Second national / international management and security system for responsible global resourcing through technical management to brige cultural and economic desparity
US8006279B2 (en) 2004-12-10 2011-08-23 Alcatel Lucent Distributive system for marking and blocking video and audio content related to video and audio programs
KR20060065482A (ko) 2004-12-10 2006-06-14 마이크로소프트 코포레이션 스트리밍 미디어 데이터의 코딩 비트 레이트의 제어 시스템및 프로세스
US7536469B2 (en) 2004-12-10 2009-05-19 Microsoft Corporation System and process for controlling the coding bit rate of streaming media data employing a limited number of supported coding bit rates
US8712243B2 (en) 2004-12-17 2014-04-29 Alcatel Lucent Methods and apparatus for achieving multiple bit rates in passive optical networks
US7761609B1 (en) 2005-01-20 2010-07-20 Oracle America, Inc. Socket level packet scheduling for connectionless protocols
KR100640810B1 (ko) 2005-01-27 2006-11-06 엘지전자 주식회사 전자결제 기능을 갖는 이동 통신 단말기 및 그 방법
US20060184688A1 (en) 2005-02-17 2006-08-17 Nec Laboratories America, Inc. System and Method for Parallel Indirect Streaming of Stored Media from Multiple Sources
JP4643330B2 (ja) 2005-03-28 2011-03-02 ソニー株式会社 通信処理装置、データ通信システム、および通信処理方法、並びにコンピュータ・プログラム
US20080120342A1 (en) 2005-04-07 2008-05-22 Iofy Corporation System and Method for Providing Data to be Used in a Presentation on a Device
US20080120330A1 (en) 2005-04-07 2008-05-22 Iofy Corporation System and Method for Linking User Generated Data Pertaining to Sequential Content
US20060236219A1 (en) 2005-04-19 2006-10-19 Microsoft Corporation Media timeline processing infrastructure
US20080263180A1 (en) 2007-04-19 2008-10-23 Hurst Mark B Apparatus, system, and method for resilient content acquisition
US8683066B2 (en) 2007-08-06 2014-03-25 DISH Digital L.L.C. Apparatus, system, and method for multi-bitrate content streaming
US8370514B2 (en) 2005-04-28 2013-02-05 DISH Digital L.L.C. System and method of minimizing network bandwidth retrieved from an external network
CA2506665A1 (en) 2005-05-06 2006-11-06 Iotum Inc. Method of and system for telecommunication management
FI20055226A0 (fi) 2005-05-13 2005-05-13 Nokia Corp Menetelmä ja elementti palvelunohjaukseen
JP2006343943A (ja) 2005-06-08 2006-12-21 Murata Mach Ltd ファイルサーバ装置及び通信管理サーバ装置
US20070024705A1 (en) * 2005-08-01 2007-02-01 Richter Roger K Systems and methods for video stream selection
US20070030833A1 (en) 2005-08-02 2007-02-08 Pirzada Fahd B Method for managing network content delivery using client application workload patterns and related systems
US20070067480A1 (en) 2005-09-19 2007-03-22 Sharp Laboratories Of America, Inc. Adaptive media playout by server media processing for robust streaming
US20070078768A1 (en) 2005-09-22 2007-04-05 Chris Dawson System and a method for capture and dissemination of digital media across a computer network
US8132203B2 (en) 2005-09-30 2012-03-06 Microsoft Corporation In-program content targeting
EP1777969A1 (en) 2005-10-10 2007-04-25 BRITISH TELECOMMUNICATIONS public limited company Adaptive video transmission with variable frame rate
US8775655B2 (en) 2005-10-21 2014-07-08 Roxbeam Media Network Corporation System and method for presenting streaming media content
US9554093B2 (en) 2006-02-27 2017-01-24 Microsoft Technology Licensing, Llc Automatically inserting advertisements into source video content playback streams
US7555464B2 (en) 2006-03-01 2009-06-30 Sony Corporation Multiple DRM management
US7660906B1 (en) 2006-03-27 2010-02-09 Beyond Media, Llc Data delivery system and method
US8477658B2 (en) 2006-04-25 2013-07-02 The Hong Kong University Of Science And Technology Intelligent peer-to-peer media streaming
US20080133766A1 (en) 2006-05-05 2008-06-05 Wenjun Luo Method and apparatus for streaming media to a plurality of adaptive client devices
US7925781B1 (en) 2006-05-26 2011-04-12 The Hong Kong University Of Science And Technology Distributed storage to support user interactivity in peer-to-peer video streaming
US8311102B2 (en) 2006-07-26 2012-11-13 Microsoft Corporation Bitstream switching in multiple bit-rate video streaming environments
US9325786B2 (en) 2006-07-27 2016-04-26 The Hong Kong University Of Science And Technology Peer-to-peer interactive media-on-demand
KR100755789B1 (ko) * 2006-07-31 2007-09-05 삼성전자주식회사 휴대용 단말기에서 화상통화 방법 및 장치
US20080056373A1 (en) * 2006-08-29 2008-03-06 Newlin John B Method and system for dynamic frequency adjustment during video decoding
KR20080020868A (ko) 2006-09-01 2008-03-06 삼성전자주식회사 스트리밍 컨텐츠 기록과 재생에 관한 장치 및 방법
US20080091838A1 (en) 2006-10-12 2008-04-17 Sean Miceli Multi-level congestion control for large scale video conferences
US8380864B2 (en) * 2006-12-27 2013-02-19 Microsoft Corporation Media stream slicing and processing load allocation for multi-user media systems
US7788395B2 (en) 2007-02-14 2010-08-31 Microsoft Corporation Adaptive media playback
US8578045B2 (en) 2007-02-14 2013-11-05 Microsoft Corporation Adaptive bandwidth utilization
US8832290B2 (en) 2007-02-23 2014-09-09 Microsoft Corporation Smart pre-fetching for peer assisted on-demand media
US20080219151A1 (en) 2007-03-07 2008-09-11 Nokia Corporation System and method for using a peer to peer mechanism to repair broadcast data in wireless digital broadcast networks
US7657648B2 (en) 2007-06-21 2010-02-02 Microsoft Corporation Hybrid tree/mesh overlay for data delivery
US8037135B2 (en) 2007-06-29 2011-10-11 Microsoft Corporation Automatic distributed downloading
US20090049186A1 (en) 2007-08-16 2009-02-19 Sony Corporation, A Japanese Corporation Method to facilitate trick-modes for streaming video
EP2191402A4 (en) 2007-08-20 2014-05-21 Nokia Corp SEGMENTED METADATA AND INDICES FOR STREAMED MULTIMEDIA DATA
US7873040B2 (en) 2007-08-20 2011-01-18 Stephen KARLSGODT Internet radio player
US8078729B2 (en) 2007-08-21 2011-12-13 Ntt Docomo, Inc. Media streaming with online caching and peer-to-peer forwarding
JP5513400B2 (ja) 2007-11-16 2014-06-04 ソニック アイピー, インコーポレイテッド マルチメディアファイルのための階層的で簡略なインデックス構造体
WO2009065144A1 (en) 2007-11-16 2009-05-22 Divx, Inc. Chunk header incorporating binary flags and correlated variable-length fields
US9060187B2 (en) 2008-12-22 2015-06-16 Netflix, Inc. Bit rate stream switching
KR20110138276A (ko) 2009-04-09 2011-12-26 노키아 코포레이션 미디어 파일 스트리밍을 위한 시스템, 방법 및 장치
JP5305453B2 (ja) 2009-06-19 2013-10-02 Necインフロンティア株式会社 無線lanの高速ローミングシステム、高速ローミング方法及び高速ローミングプログラム
US8510375B2 (en) 2009-12-11 2013-08-13 Nokia Corporation Apparatus and methods for time mapping media segments in streaming media files
CN102933619B (zh) 2011-05-25 2016-01-20 泰国Abs有限公司 含有聚四氟乙烯的组合物及其制备方法

Also Published As

Publication number Publication date
PT2479680T (pt) 2019-10-31
WO2005109224A2 (en) 2005-11-17
US10225304B2 (en) 2019-03-05
EP3822805A1 (en) 2021-05-19
EP1743249A2 (en) 2007-01-17
DK2479680T3 (da) 2019-10-21
FI3822805T3 (fi) 2024-03-25
EP2479680A2 (en) 2012-07-25
KR20070061768A (ko) 2007-06-14
US20200389510A1 (en) 2020-12-10
DK3822805T3 (da) 2024-03-25
JP2007535881A (ja) 2007-12-06
ES2748426T3 (es) 2020-03-16
PT1743249T (pt) 2021-02-04
ES2975834T3 (es) 2024-07-16
KR101082642B1 (ko) 2011-11-10
CA2564861C (en) 2016-12-06
DK1743249T3 (da) 2021-02-01
EP1743249A4 (en) 2008-10-29
PT3822805T (pt) 2024-03-20
US9407564B2 (en) 2016-08-02
AU2005241481A1 (en) 2005-11-17
CA2564861A1 (en) 2005-11-17
EP2479680B1 (en) 2019-08-28
US20050262257A1 (en) 2005-11-24
US8868772B2 (en) 2014-10-21
US20190199768A1 (en) 2019-06-27
US10757156B2 (en) 2020-08-25
WO2005109224A3 (en) 2007-01-04
EP3822805B1 (en) 2023-12-27
JP5320740B2 (ja) 2013-10-23
US20150039782A1 (en) 2015-02-05
US20160323341A1 (en) 2016-11-03
EP1743249B1 (en) 2020-12-23
EP2479680A3 (en) 2014-08-13

Similar Documents

Publication Publication Date Title
ES2845901T3 (es) Aparato, sistema y procedimiento de cambio de velocidad adaptativa de contenido de streaming
US12375545B2 (en) Apparatus, system, and method for multi-bitrate content streaming
US11470138B2 (en) Apparatus, system, and method for multi-bitrate content streaming
CN101014947A (zh) 一种关于流内容的自适应速率切换的装置、系统和方法
AU2011213730B2 (en) Apparatus, system, and method for adaptive-rate shifting of streaming content