ES2361120T3 - Control de flujo para difusión multimedia en continuo. - Google Patents

Control de flujo para difusión multimedia en continuo. Download PDF

Info

Publication number
ES2361120T3
ES2361120T3 ES06760102T ES06760102T ES2361120T3 ES 2361120 T3 ES2361120 T3 ES 2361120T3 ES 06760102 T ES06760102 T ES 06760102T ES 06760102 T ES06760102 T ES 06760102T ES 2361120 T3 ES2361120 T3 ES 2361120T3
Authority
ES
Spain
Prior art keywords
buffer
information
content
buffers
client device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES06760102T
Other languages
English (en)
Inventor
Gurpratap Virdi
Anders E. Klemets
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.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Application granted granted Critical
Publication of ES2361120T3 publication Critical patent/ES2361120T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • 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/26Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
    • H04L47/263Rate modification at the source after receiving feedback
    • 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/1066Session management
    • H04L65/1101Session protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • 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/30Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/613Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for the control of the source by the destination
    • 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/752Media network packet handling adapting media to network capabilities
    • 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
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • 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, manipulating MPEG-4 scene graphs
    • H04N21/23406Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving management of server-side video buffer
    • 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/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2401Monitoring of the client buffer
    • 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/438Interfacing the downstream path of the transmission network originating from a server, e.g. retrieving MPEG packets from an IP network
    • 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, rendering scenes according to MPEG-4 scene graphs
    • H04N21/44004Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
    • 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/637Control signals issued by the client directed to the server or network components
    • H04N21/6373Control signals issued by the client directed to the server or network components for rate control, e.g. request to the server to modify its transmission rate
    • 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
    • H04N21/6437Real-time Transport Protocol [RTP]

Abstract

Un procedimiento para su uso en un dispositivo servidor para el control del flujo de una difusión multimedia en continuo, comprendiendo el procedimiento: negociar (404) el intercambio de información de la memoria intermedia con un dispositivo cliente: si se recibe (412) información del dispositivo cliente, ajustar la velocidad de transferencia de contenido difundido en continuo al dispositivo cliente en base a la información de la memoria intermedia; y si no se recibe (412) información del dispositivo cliente, determinar (416) si ha de aplicarse una solución vinculadamente acoplada; en el caso de la solución vinculadamente acoplada, usar la información de la memoria intermedia recibida previamente o esperar la siguiente información de la memoria intermedia; y en el caso de que no se aplique la solución vinculadamente acoplada, difundir en continuo el contenido con una velocidad de transferencia predefinida.

Description

Campo técnico
La presente invención versa acerca de sistemas de contenidos digitales y, más en particular, acerca de la regulación del flujo de contenido digital difundido en continuo en tales sistemas.
Antecedentes de la invención
La difusión en continuo de contenido multimedia o contenido digital (contenido), tal como la difusión en continuo de audio, vídeo y/o el contenido de medios de texto se está volviendo cada vez más popular. La expresión “difusión en continuo” se usa típicamente para indicar que el contenido es proporcionado por un servidor o dispositivo servidor en una red a un dispositivo cliente (es decir, un dispositivo de reproducción de medios implementado como cualquiera entre una variedad de dispositivos informáticos convencionales, como un PC de sobremesa, una agenda ordenador
o un ordenador portátil, un teléfono móvil u otro dispositivo de comunicaciones inalámbricas, una agenda digital (PDA), una consola de juegos, un decodificador de televisión digital con entrada IP, un PC de mano, etcétera). En general, el dispositivo cliente interpreta (por ejemplo, reproduce o presenta) el contenido difundido en continuo mientras el contenido es recibido “simultáneamente” desde el servidor, en lugar de esperar que se suministre todo el contenido o todo el “fichero”.
Cuando se “difunde en continuo” contenido por una red, típicamente se difunde en continuo en paquetes de datos. Tales paquetes de datos pueden estar en un formato definido por un protocolo, tal como el protocolo de transferencia en tiempo real (RTP), y ser comunicados en otro formato, como el protocolo de datagramas de usuario (UDP). Además, tales paquetes de datos pueden ser comprimidos y codificados cuando se difunden en continuo desde el dispositivo servidor. Los paquetes de datos son después descomprimidos y decodificados en el dispositivo cliente.
Los paquetes de datos pueden ser recibidos por el dispositivo cliente en el orden en el que son difundidos en continuo por el dispositivo servidor; sin embargo, en ciertos casos los paquetes de datos pueden no recibirse o ser recibidos en un orden diferente. Además, puede haber cierta incertidumbre en cuanto a la velocidad de transferencia
o el flujo de los paquetes de datos recibidos. Los paquetes de datos pueden llegar o recibirse a una velocidad de transferencia más rápida que aquella a la que el dispositivo puede interpretar los paquetes de datos, o pueden no llegar lo suficientemente rápido (es decir, los paquetes de datos no llegan lo bastante rápido como para que el dispositivo cliente los interprete). En particular, cuando se lleva a cabo la difusión en continuo, los paquetes de datos pueden no difundirse en continuo necesariamente a una velocidad de transferencia de tiempo real. Los paquetes de datos pueden difundirse en continuo más rápidamente o más lentamente que una velocidad de transferencia de tiempo real.
Típicamente, un dispositivo cliente usa memorias intermedias para almacenar los paquetes de datos recibidos antes de su procesamiento. Tales memorias intermedias tienen una capacidad de almacenamiento limitada y, dependiendo de la velocidad de transferencia con la que son recibidos los paquetes, puede ocurrir un desbordamiento de la memoria intermedia (por la recepción demasiado rápida de paquetes de datos) o un subdesbordamiento de la memoria intermedia (por no recibir los paquetes de datos lo bastante rápido). Si los paquetes de datos llegan con una velocidad de transferencia demasiado rápida, las memorias intermedias del cliente pueden desbordarse y los paquetes de datos pueden no procesarse. Si los paquetes de datos no son recibidos lo bastante rápido o de manera acompasada, el usuario experimenta fallos técnicos o cortes. Por ejemplo, si se difunde en continuo contenido multimedia al dispositivo cliente y este no lo recibe lo bastante rápido, el usuario ve fallos técnicos o cortes en el contenido multimedia presentado. Además, cuando se detecta una situación de desbordamiento o subdesbordamiento, puede existir la necesidad de sincronizar los relojes en el dispositivo cliente y el dispositivo servidor para corregir el problema. Generalmente, ya es demasiado tarde para corregir el problema de desbordamiento después de que ya ha ocurrido. Sin embargo, sincronizando los relojes puede evitarse que el problema vuelva a ocurrir. O, si se hace lo bastante pronto, puede evitar que ocurra el problema. El desbordamiento y el subdesbordamiento pueden ocurrir por varias razones, incluyendo la deriva del reloj del dispositivo y la congestión de la red.
En consecuencia, existe la necesidad de regular el flujo o las difusiones en continuo de paquetes de datos desde un dispositivo servidor a un dispositivo cliente que puede incorporar o no la recuperación del reloj en el dispositivo servidor y en el dispositivo cliente. El documento US 2003/198184 revela que el protocolo de transporte para datos multimedia contiene un informe periódico de realimentación FR, que contiene información para facilitar el proceso de control de la velocidad de transferencia. Se determina una velocidad inicial de difusión en continuo. Cuando ha llegado el informe de realimentación, se estima la cantidad de datos que reside en una memoria intermedia de la red. Entonces se calcula el valor de referencia de la velocidad de transferencia de datos.
El documento WO 03/045047 está relacionado con un procedimiento para proporcionar un servicio de difusión en continuo de datos de vídeo. Después del inicio del servicio de difusión en continuo de datos, se recibe una ocupación de la memoria intermedia de espera. Se determina entonces si la ocupación está por debajo de un primer umbral o es igual o mayor que un segundo umbral. Si la ocupación está por debajo del primer umbral, se determina si la velocidad de transferencia de bits es una velocidad de transferencia de bits mínima y, si el resultado de la determinación es negativo, se reduce la velocidad de transferencia de bits. Si la ocupación es igual o mayor que el segundo umbral, se proporciona el servicio de difusión en continuo de datos a una velocidad de transferencia de bits aumentada.
El documento US 2004/193762 está relacionado con la adaptación de la velocidad de difusión en continuo en la difusión multimedia en continuo. Para evitar el subdesbordamiento o el desbordamiento de la memoria intermedia, el cliente envía un mensaje al servidor solicitando el ajuste del reloj de transmisión, ya sea adelantándolo o retrasándolo. En base a este mensaje, el servidor ajusta la cantidad de transmisión de los datos.
El documento WO 2004/008673 está relacionado con la compensación en la demora de transferencia de paquetes en la difusión multimedia en continuo. Se transmite al servidor de difusión en continuo información indicativa de las capacidades de la memoria intermedia para inestabilidades del cliente de la difusión en continuo. El servidor puede determinar las capacidades de la memoria intermedia de los clientes.
El objetivo técnico de la presente invención es proporcionar una técnica más fiable de control del flujo.
Este objetivo técnico se resuelve con la materia de las reivindicaciones independientes.
Las reivindicaciones preferentes definen realizaciones preferentes.
Resumen
Se envía a un dispositivo servidor información de memoria intermedia en cuanto a la capacidad y el uso de las memorias intermedias de un dispositivo cliente. La información de la memoria intermedia incluye la capacidad de una o más memorias intermedias del dispositivo cliente y de lo llenas o utilizadas que están las memorias intermedias. Se envía la información de las memorias intermedias al dispositivo servidor, que usa tal información para ajustar el flujo del contenido difundido en continuo al dispositivo cliente.
Breve descripción de los dibujos
La descripción detallada se describe con referencia a las figuras adjuntas. En las figuras, el o los dígitos más a la izquierda de un número de referencia identifican la figura en la que el número de referencia aparece por primer lugar. El uso del mismo número de referencia en figuras diferentes indica elementos similares o idénticos.
La Fig. 1 ilustra un diagrama de bloques de un entorno ejemplar adecuado para proporcionar informes de llenado de la memoria intermedia desde un dispositivo cliente a un dispositivo servidor.
La Fig. 2 ilustra un diagrama de bloques de una realización ejemplar de una memoria intermedia para inestabilidades y una memoria intermedia de contenido que están incluidas en un dispositivo cliente.
La Fig. 3 ilustra un diagrama de bloques de una realización ejemplar de una pila de protocolos y un informe de llenado de la memoria intermedia difundido en continuo por medio de la pila de protocolos.
La Fig. 4 es un diagrama de flujo que ilustra un proceso para informar a un dispositivo servidor de la condición de la memoria intermedia de un dispositivo cliente.
La Fig. 5 ilustra un entorno informático ejemplar adecuado para implementar un dispositivo servidor y un dispositivo cliente como los expuestos con referencias a las Figuras 1-4.
Descripción detallada de la realización preferida
La siguiente revelación describe técnicas que informan a un dispositivo servidor el estado de las memorias intermedias de dispositivos clientes que reciben contenido filtrado para su procesamiento.
La Fig. 1 muestra un entorno ejemplar 100 adecuado para proporcionar información de flujo del contenido o de los paquetes de datos a un dispositivo servidor 102 desde un dispositivo cliente de reproducción o dispositivo cliente
104. En particular, el dispositivo cliente 102 proporciona informes de llenado de la memoria intermedia (BFR) al dispositivo servidor 102, incluyendo los BFR el estado de las memorias intermedias del dispositivo cliente que reciben y procesan el contenido o los paquetes de datos.
Generalmente, el dispositivo fuente o servidor 102 proporciona acceso a un contenido digital de datos (contenido), como ficheros de datos, ficheros multimedia y/o un contenido multimedia en directo, tal como una emisión de TV por cable en directo o difundida por red. El dispositivo servidor 102 difunde en continuo el contenido al dispositivo cliente
104. Por ejemplo, en el caso de un contenido multimedia, el dispositivo cliente 104 recibe generalmente el contenido difundido en continuo desde el dispositivo servidor 102 y lo interpreta o lo reproduce para un usuario. El contenido se difunde en continuo o se envía a través de una red 106. Además, pueden encaminarse solicitudes procedentes de un dispositivo cliente 104 para el contenido difundido en continuo disponible en el dispositivo servidor 102 desde el dispositivo cliente 104 al dispositivo servidor 102 por medio de la red 106. La red 106 puede incluir diversas redes, como las que incorporan la interfaz IEEE 1394. En general, se contempla que la red 106 pueda incluir una cualquiera de diversas redes conmutadas por paquetes. El dispositivo servidor 102 puede ser implementado como cualquiera de entre una variedad de dispositivos informáticos convencionales, incluyendo, por ejemplo, un servidor, un PC de sobremesa, una agenda ordenador o un ordenador portátil, una estación de trabajo, un ordenador central, un aparato con conexión a Internet, combinaciones de los mismos, etcétera, que son configurables para difundir en continuo al dispositivo cliente 104 un contenido multimedia almacenado y/o en directo. El dispositivo cliente 104 de reproducción puede ser implementado también como cualquiera de entre una variedad de dispositivos informáticos convencionales, incluyendo, por ejemplo, un PC de sobremesa, una agenda ordenador o un ordenador portátil, una estación de trabajo, un ordenador central, un aparato con conexión a Internet, una consola de juegos, un PC de mano, un teléfono móvil u otro dispositivo de comunicaciones inalámbricas, una agenda digital (PDA), un decodificador de televisión digital con entrada IP, combinaciones de los mismos, etcétera. Un ordenador ejemplar para implementar un dispositivo servidor 102 y un dispositivo cliente 104 se describe con más detalle en el presente documento con referencia a la Fig. 5.
El dispositivo servidor 102 puede poner a disposición del dispositivo cliente 104 cualquiera de una variedad de datos
o de contenido mediante difusión en continuo, incluyendo contenido como audio, vídeo, texto, imágenes, animación y similares. Las expresiones “difundido en continuo” y “difusión en continuo” se usan para indicar que los datos son proporcionados por medio de una red 106 a un dispositivo cliente 104 de reproducción y que la reproducción del contenido puede empezar antes de que el contenido se suministre en su totalidad. El contenido puede estar públicamente disponible o, de manera alternativa, restringido (por ejemplo, restringido únicamente a ciertos usuarios, disponible únicamente si se paga la tarifa apropiada, restringido a los usuarios que tengan acceso a una red particular, etc.). Además, el contenido puede serlo “bajo demanda” (por ejemplo, contenido pregrabado y almacenado de un tamaño conocido) o, alternativamente, proceder de una “emisión” en directo (por ejemplo, que no tenga un tamaño conocido, como la representación digital de un concierto que se captura mientras se celebra el concierto y se pone a disposición para su difusión en continuo poco después de la captura).
Se prevé que la red 106 represente cualquiera entre una variedad de topologías y tipos convencionales de red (incluyendo las redes ópticas, cableadas y/o inalámbricas) que emplea cualquiera de una variedad de protocolos convencionales de red (incluyendo protocolos públicos y/o propietarios). La red 106 puede incluir, por ejemplo, una red doméstica, una red empresarial o Internet, IEEE 1394, así como, posiblemente, al menos porciones de una o más redes de área local (LAN) y/o de redes de área amplia (WAN).
El dispositivo servidor ejemplar 102 incluye una unidad central de proceso o procesador 108 y una memoria 110. La memoria 110 incluye una aplicación 112 que puede crear o procesar un contenido difundido en continuo a un dispositivo cliente 104 por medio de la red 106. Además, puede almacenarse en un almacenamiento 114 de contenido el contenido procesado y/o recibido (de otra fuente). En esta implementación, el almacenamiento 114 de contenido está separado de la memoria 110. En otras implementaciones, el almacenamiento 114 de contenido puede ser parte de la memoria 110. Un reloj 116 proporciona una o más funciones, incluyendo la emisión de un sello de tiempo en cada paquete de datos difundido en continuo desde el dispositivo servidor 102.
El dispositivo cliente ejemplar 104 incluye una unidad central de proceso o procesador 118 y una memoria 120. La memoria 120 incluye una aplicación 122 que consume o usa contenido recibido de fuentes tales como el dispositivo servidor 102. Una memoria intermedia 124 para inestabilidades recibe los paquetes de datos y actúa como una memoria intermedia. Debido a ciertas circunstancias de la transmisión, incluyendo un ancho de banda limitada y una difusión en continuo incoherente del contenido, que llevan a situaciones de subdesbordamiento y desbordamiento, es deseable mantener algo de contenido (es decir, paquetes de datos) en la memoria intermedia 124 para inestabilidades para evitar fallos técnicos o cortes en el contenido difundido en continuo, particularmente cuando se difunde en continuo contenido de audio/vídeo.
En esta implementación, un decodificador 126 recibe paquetes de datos codificados de la memoria intermedia 124 para inestabilidades y decodifica los paquetes de datos. En otras implementaciones, puede incorporarse una memoria intermedia previa al decodificador (es decir, memoria intermedia colocada antes del decodificador 126). En ciertos casos, pueden enviarse paquetes de datos comprimidos y ser recibidos por el dispositivo cliente 104. Para tales casos, el dispositivo cliente 104 puede ser implementado con un componente que descomprime los paquetes de datos, pudiendo ser parte o no el componente del decodificador 126.
Los paquetes de datos descomprimidos y decodificados pueden ser recibidos y almacenados en una memoria intermedia 128 de contenido. En otras implementaciones, pueden ponerse dos memorias intermedias antes del decodificador. Una primera memoria intermedia guarda paquetes de datos que incorporan un protocolo de transporte de tiempo real (RTP), y una segunda memoria intermedia que solo almacena contenido de paquetes de datos de RTP (es decir, sin cabeceras RTP). La segunda memoria intermedia proporciona el contenido que debe ser decodificado por el decodificador 126. En otras palabras, la primera memoria intermedia guarda paquetes con encapsulación de RTP (es decir, un contenido de datos encapsulados) y la segunda memoria intermedia guarda paquetes de datos sin encapsulación de RTP (es decir, un contenido de datos desencapsulados) para su decodificación. La memoria intermedia 128 de contenido puede incluir una o más memorias intermedias que almacenan tipos de contenido específicos. Por ejemplo, puede haber una memoria separada de vídeo para almacenar un contenido de vídeo, y una memoria intermedia separada de audio para almacenar un contenido de audio. Además, la memoria intermedia 124 para inestabilidades puede incluir memorias intermedias separadas para almacenar contenido de audio y vídeo.
El dispositivo cliente 104 incluye un reloj 130 para distinguir entre paquetes de datos en base a sellos de tiempo únicos incluidos en cada paquete de datos particular. En otras palabras, el reloj 130 se usa para reproducir los paquetes de datos a la debida velocidad. En general los paquetes de datos se reproducen ordenándolos en base a los sellos de tiempo que se incluyen en los paquetes de datos y que son proporcionados o emitidos por el reloj 116 del dispositivo servidor 102.
El dispositivo cliente 104 incluye un monitor 132 de memorias intermedias configurado para monitorizar el nivel de llenado de las memorias intermedias 124 y 128 y para generar informes 134 de llenado de las memorias intermedias (BFR) mientras se difunde en continuo un contenido desde el dispositivo servidor 102. Los BFR 134 proporcionan información de llenado de las memorias intermedias al dispositivo servidor 102. En general, la información comunicada en los BFR 134 es usada por el dispositivo servidor 102 para regular o ajustar el flujo del contenido o los paquetes de datos difundidos en continuo al dispositivo cliente 104.
En la presente realización, el dispositivo servidor 102 incluye un módulo 136 de informes de llenado de las memorias intermedias (BFR) de los clientes configurado para recibir uno o más BFR 138 procedentes de uno o más dispositivos clientes, como el dispositivo cliente 104. Los BFR 138 son únicos para dispositivos clientes particulares. Cada BFR 138 recibido y almacenado en el módulo 136 de informes BFR de los clientes indica al dispositivo servidor 102 en cuanto a la información de la memoria intermedia (es decir, su llenado) en memorias intermedias particulares de los clientes, incluyendo las memorias intermedias separadas para inestabilidades, memorias intermedias de contenido, memorias intermedias de audio, memorias intermedias de vídeo, etc. El dispositivo servidor 102 puede calcular la velocidad de difusión en continuo con la que se difunde en continuo el contenido (por ejemplo, un flujo de datos que se difunde en continuo) en base a la información de las memorias intermedias contenida en los BFR 138.
Los BFR 134 pueden set emitidos por el dispositivo cliente 104 para indicar situaciones de posibles desbordamientos o subdesbordamientos. Los BFR también pueden ser enviados regularmente por el dispositivo cliente 104. En ciertos casos el dispositivo cliente 104 puede enviar los BFR 134 como parte de una respuesta en una difusión en continuo de datos separada. Cuando se produce una respuesta por parte del dispositivo cliente 104, tal respuesta puede ser el la forma de un formato o un protocolo definidos. Por ejemplo, si se usa el protocolo RTP y, especialmente el protocolo de control de transporte en tiempo real (RTCP), pueden intercambiarse paquetes de control que están separados de los paquetes de datos entre el dispositivo servidor 102 y el dispositivo cliente 104. Los paquetes de control procedentes del dispositivo cliente 104 proporcionan una realimentación al dispositivo servidor 102. El BFR 138 puede estar incluido en tal paquete de control.
La Fig. 2 muestra implementaciones ejemplares de una memoria intermedia para inestabilidades y una memoria intermedia de contenido. En particular, en las implementaciones se describen la memoria intermedia 124 para inestabilidades y la memoria intermedia 128 de contenido incluidas en el dispositivo servidor 104. La memoria intermedia 124 para inestabilidades incluye un número N de unidades 200 de almacenamiento, en el que cada unidad 200 de almacenamiento puede almacenar un paquete 202 de datos recibidos.
Las unidades 200 de almacenamiento están dispuestas en una estructura en la que lo primero en entrar es lo primero en salir (FIFO), de modo que los paquetes 202 de datos que se reciben en primer lugar son los primeros enviados a la memoria intermedia 128 de contenido, o enviados a un decodificador (por ejemplo, el decodificador 126) o a otro componente intermedio (por ejemplo, un descompresor). Aunque los paquetes 202 de datos que son recibidos en primer lugar puede ser procesados en primer lugar, también es posible que los paquetes 202 de datos puedan ser reordenados en la red (es decir, perdidos). Entonces, un paquete de datos recibido puede insertarse en la memoria intermedia 128 de contenido en un lugar apropiado y otros paquetes de datos pueden ser desplazados.
Los paquetes 202 de datos se almacenan en las unidades 200 de almacenamiento hasta que se envían conjuntamente a la memoria 128 de contenido o a otro componente intermedio. Si los paquetes 202 de datos no son enviados a la memoria 128 de contenido, las unidades 200 de almacenamiento se llenan con paquetes 202 de datos hasta la unidad 200(N) de almacenamiento. El ejemplo ilustra un paquete 200(1) de datos almacenado en la unidad 200(1) de almacenamiento, un paquete 200(2) de datos almacenado en la unidad 200(2) de almacenamiento y un paquete 200(3) de datos almacenado en la unidad 200(3) de almacenamiento.
La memoria intermedia 124 para inestabilidades tiene un tamaño limitado que puede estar definido por el número de bytes que pueden ser soportados o almacenados. Además, el tamaño limitado de la memoria intermedia 124 para inestabilidades puede estar definido por un tamaño de “tiempo”, que se traduce en la duración total del tiempo del contenido que puede ser almacenado. El número N de las unidades 200 de almacenamiento está limitad al tamaño de la memoria intermedia 124 para inestabilidades.
La memoria intermedia 128 de contenido incluye un número M de unidades 204 de almacenamiento, pudiendo almacenar cada unidad 204 de almacenamiento un paquete 206 de datos. Se espera que los paquetes 206 de datos sean decodificados, descomprimidos y que estén listos para su interpretación por parte de una aplicación (por ejemplo, la aplicación 122 almacenada en la memoria 120 del dispositivo cliente 104). El número M puede o no ser el mismo número que N. Además, el tamaño (es decir, el tamaño en bytes) de la memoria intermedia 128 de contenido puede no ser el mismo tamaño de la memoria intermedia 124 para inestabilidades.
Las unidades 204 de almacenamiento de la memoria intermedia 128 de contenido están dispuestas en una estructura FIFO, de modo que los paquetes 206 de datos que se reciben en primer lugar son los primeros procesados. Típicamente, puede comprobarse un sello de tiempo en cada paquete 206 de datos para determinar cuándo ha de procesarse el paquete 206 de datos. Los paquetes 206 de datos se almacenan en unidades 204 de almacenamiento hasta que son enviados conjuntamente a la memoria intermedia 126 de contenido o a otro componente intermedio. Si los paquetes 204 de datos no son procesados, las unidades 204 de almacenamiento pueden llenarse con los paquetes 206 de datos hasta la unidad 204(M) de almacenamiento. El ejemplo ilustra un paquete 206(1) de datos almacenado en la unidad 204(1) de almacenamiento, un paquete 206(2) de datos almacenado en la unidad 204(2) de almacenamiento, un paquete 206(3) de datos almacenado en la unidad 204(3) de almacenamiento y un paquete 206(M-1) de datos almacenado en la unidad 204(M-1) de almacenamiento.
Los informes de llenado de la memoria intermedia o BFR (por ejemplo, los BFR 134 y 138) describen en particular en cualquier momento dado las capacidades máximas (es decir, el tamaño en bytes o el tamaño en tiempo) de la memoria intermedia 124 para inestabilidades y la memoria intermedia 128 de contenido. Sin embargo, se hace notar que los BFR proporcionan información importante en cuanto al espacio libre en las memorias intermedias. En ciertas implementaciones puede haber más de una memoria intermedia para inestabilidades y/o una memoria intermedia de contenido en un dispositivo cliente. Un BFR describe en particular las capacidades máximas y el espacio libre de todas las memorias intermedias tales. Además, en cualquier momento dado, el BFR describe cuántas unidades de almacenamiento (por ejemplo, las unidades 200 y 204 de almacenamiento) están llenas de paquetes de datos (por ejemplo, los paquetes 202 y 206 de datos). El BFR puede expresar el “llenado” de las memorias intermedias en términos del tamaño en bits y/o en tiempo, como se expone adicionalmente más abajo.
La Fig. 3 muestra una pila de protocolos que soporta la transmisión de BFR y muestra además información particular que puede ser proporcionada por un BFR. Una pila 300 de protocolos es una implementación particular de componentes lógicos de una sucesión de protocolos informáticos de red. Tales pilas de protocolos son bien conocidas en la técnica. En general, los niveles inferiores de la pila de protocolos están diseñados para interactuar en los niveles más bajos de los componentes lógicos y/o los componentes físicos entre dispositivos (por ejemplo, el dispositivo servidor 102 y el dispositivo cliente 104).
En este ejemplo, el nivel más bajo de los protocolos de la pila 300 de protocolos es el nivel 302 de Ethernet, que en general actúa como una conexión “entre redes” entre el dispositivo servidor 102 y el dispositivo cliente 104. El nivel inmediatamente superior es el nivel 304 del protocolo de Internet, que está dirigido a la comunicación en particular con Internet. El nivel 306 del protocolo de datagramas de usuario (UDP) puede usarse para proporcionar una comunión general de emisión o mensajes. El nivel 308 del protocolo de control de transporte en tiempo real (RTCP)
o del protocolo de transporte en tiempo real (RTP) se usa en particular para comunicar datos de tiempo real como un contenido de difusiones en continuo (por ejemplo, multimedia). Los BFR pueden ser comunicados en otro nivel superior 310 de BFR. El uso del nivel 310 permite que los BFR se comuniquen con independencia de la comunicación real de contenido por parte del dispositivo cliente 104 desde el dispositivo servidor 102.
Un BFR ejemplar 132 incluye el o los tamaños 312 de la o las memorias intermedias, que pueden ser más de una memoria intermedia, incluyendo memorias intermedias para inestabilidades y memorias intermedias de contenido en el dispositivo cliente 104. En otras palabras, se proporcionan BFR para todas las memorias intermedias que reciben contenido, ya sea directamente (es decir, la memoria intermedia 124 para inestabilidades) o indirectamente (es decir, la memoria intermedia de contenido procedente del dispositivo servidor 102). Puede usarse la unidad de “bytes” para expresar la cantidad de datos 314 actualmente almacenada o en espera en las memorias intermedias para su procesamiento. De forma alternativa, puede expresarse la cantidad de espacio libre. Además, puede usarse también la unidad de “tiempo” para expresar la cantidad de datos 316 actualmente almacenada o en espera en las memorias intermedias para su procesamiento. La información puede proporcionarse para memorias intermedias individuales o para un grupo de memorias intermedias.
La Fig. 4 es un proceso 400 que informa a un dispositivo servidor del estado de la memoria intermedia de un dispositivo cliente. El proceso 400 se ilustra como una colección de bloques en un gráfico de lógica de flujo, que representan una secuencia de operaciones que pueden ser implementadas en componentes físicos, componentes lógicos, lógica física o una combinación de los mismos. En el contexto de los componentes lógicos, los bloques representan instrucciones de ordenador que, cuando son ejecutadas por uno o más procesadores, llevan a cabo las operaciones enumeradas. El proceso 400 se describe con referencia al dispositivo servidor 102 y al dispositivo cliente 104 descritos más arriba. Aunque están descritos como un diagrama de flujo, se contempla que ciertos procesos puedan tener lugar de forma concurrente o en un orden diferente.
En el bloque 402, el dispositivo cliente negocia con el dispositivo servidor cómo y qué se intercambia en cuanto a la información de la memoria intermedia. La información de la memoria intermedia tiene la forma de un informe de llenado de la memoria intermedia (BFR) creado en el dispositivo cliente y enviado al dispositivo servidor. El contenido del informe de lleno de la memoria intermedia o la información contenida en el mismo puede incluir la capacidad o el tamaño de las memorias intermedias del dispositivo cliente, la cantidad de espacio consumido en las memorias intermedias en un caso particular, e información en cuanto al contenido o los paquetes de datos recibidos. Además, las negociaciones entre el dispositivo cliente y el dispositivo servidor pueden incluir la determinación de la frecuencia con la que la información de la memoria intermedia o los BFR son enviados desde el dispositivo cliente al dispositivo servidor. Una frecuencia o una tasa mayores del envío de la información de las memorias intermedias o de los BFR permite ajustes mejorados en la difusión en continuo de paquetes de datos, tal como un contenido que incluya medios que eviten el subdesbordamiento y el desbordamiento de la memoria intermedia.
En el bloque 404, el dispositivo servidor negocia con el dispositivo cliente el intercambio de información de las memorias intermedias. El dispositivo servidor puede proporcionar las capacidades del dispositivo servidor en cuanto al intercambio de información de las memorias intermedias, incluyendo la salida máxima (es decir, la capacidad de difundir en continuo contenido o paquetes de datos) del dispositivo servidor. Además, la negociación llevada a cabo en los bloques 402 y 404 puede incluir la identificación de los protocolos particulares de comunicación usados para comunicar la información de las memorias intermedias o los BFR.
En el bloque 406, el dispositivo cliente determina las capacidades de todas las memorias intermedias que reciben contenido o paquetes de datos procedentes del dispositivo servidor. La determinación puede llevarse a cabo en todas las memorias intermedias, como la o las memorias intermedias para inestabilidades y la o las memorias intermedias de contenido. Además, puede llevarse a cabo la determinación relativa a una o más medidas de tamaño, como el tamaño en bytes o el tamaño en tiempo. En ciertos casos, puede hacerse la determinación en cuanto a la capacidad total o la capacidad colectiva de las memorias intermedias. Por ejemplo, puede combinarse la capacidad de la memoria intermedia para inestabilidades con la capacidad de una memoria intermedia de contenido.
En el bloque 408, el dispositivo cliente calcula el espacio usado y el no usado en la o las memorias intermedias. El cálculo se lleva a cabo para un instante particular de tiempo, puesto que se espera que el dispositivo cliente siga recibiendo contenido o paquetes de datos. En el cálculo de espacio usado y no usado pueden usarse el tamaño en bytes o el tamaño en tiempo. El cálculo que se mide, en relación con la capacidad de la o de las memorias intermedias, proporciona información en cuanto a si pueden recibirse un contenido o paquetes de datos adicionales (indicativo de subdesbordamiento) o a si no pueden recibirse un contenido o paquetes de datos adicionales (indicativo de desbordamiento).
En el bloque 410, el dispositivo cliente envía la información de las memorias intermedias, que puede tener la forma de un BFR. Pueden enviarse BFR separados para cada flujo de datos. En otras palabras, puede enviarse un BFR para un flujo de datos de audio y puede enviarse otro BFR para un flujo de datos de vídeo. En general, los BFR proporcionan información en cuanto a todos los flujos de datos. El BFR puede ser difundido en continuo como parte de otro informe o paquete de comunicaciones, como un informe de un protocolo de control de transporte de tiempo real (RTCP) procedente del dispositivo cliente. En ciertos casos, el BFR puede ser difundido en continuo como una transmisión diferenciada y separada. Por ejemplo, el BFR puede ser comunicado en un protocolo de comunicaciones separado de nivel inferior.
Si el dispositivo servidor recibe el BFR (es decir, siguiendo el ramal SÍ del bloque 412), en el bloque 414 el dispositivo servidor ajusta el flujo o la tasa del contenido enviado al dispositivo cliente. El ajuste en la tasa puede ser a la tasa de transmisión en una red y a la tasa de codificación de bits del contenido. Por ejemplo, si el BFR indica que se usa un elevado porcentaje de la capacidad de la memoria intermedia (es decir, una situación de desbordamiento), el dispositivo servidor ralentiza la velocidad de transmisión del contenido difundido en continuo al dispositivo cliente. Alternativamente, si el BFR indica que se usa un porcentaje bajo de la capacidad de la memoria intermedia (es decir, una situación de subdesbordamiento), el dispositivo servidor aumenta la velocidad de transmisión del contenido difundido en continuo al dispositivo cliente. También puede hacerse consideración a una desviación de un uso ideal u óptimo de las memorias intermedias. En otras palabras, no se hace ningún ajuste a la tasa de flujo si el BFR indica una desviación o porcentaje aceptable en más o en menos con respecto al uso óptimo de la memoria intermedia. El dispositivo servidor puede usar múltiples BFR que proporcionan información relativa a las memorias intermedias particulares de los clientes para ajustar la velocidad de transmisión a un dispositivo cliente específico. En otras palabras, el dispositivo específico puede tener múltiples memorias intermedias para inestabilidades y memorias intermedias de contenido, teniendo cada memoria intermedia un BFR particular que es enviado al dispositivo servidor. A partir de la información del BFR, el dispositivo servidor puede calcular la tasa de consumo por memoria intermedia y la global en el dispositivo cliente.
Si no se recibe un BFR (es decir, siguiendo el ramal NO del bloque 412), puede haber dos soluciones para abordar la situación. Si se escoge una solución vinculadamente acoplada (es decir, siguiendo el ramal SÍ del bloque 416), un BFR dicta exclusivamente el flujo del contenido desde el dispositivo servidor hasta el dispositivo cliente. En otras palabras, una solución vinculadamente acoplada implica el uso de un BFR por parte del dispositivo servidor para transferir (es decir, difundir en continuo) contenido al dispositivo cliente. En una solución vinculadamente acoplada, el dispositivo servidor puede difundir en continuo el contenido hasta que las memorias intermedias del cliente estén llenas y entonces parar. El dispositivo servidor puede reanudar la transmisión después de que un BFR indique que hay espacio disponible en la memoria intermedia del cliente. Si no se recibe el BFR, en el bloque 418 el dispositivo servidor puede usar la información proporcionada en un BFR anterior o en el último recibido. Alternativamente, el dispositivo servidor puede esperar el siguiente BFR o uno subsiguiente. En el caso de una transmisión inicial (es decir, no se ha recibido ningún BFR), el dispositivo servidor puede esperar el primer BFR.
Si no se escoge una solución vinculadamente acoplada, o, en otras palabras, se escoge una solución de acoplamiento flojo (es decir, siguiendo el ramal NO del bloque 416), en el bloque 420 el BFR se usa únicamente como información de consulta. En otras palabras, si no se recibe ningún BFR, como ejemplo el dispositivo servidor puede difundir en continuo contenido o paquetes de datos en base a una tasa predefinida (es decir, un flujo) o calculada (es decir, deducida) en base a uno o más BFR previos. En otros casos, el dispositivo servidor puede difundir en continuo contenido o paquetes de datos en base a la capacidad del dispositivo servidor. Una solución de acoplamiento flojo usa el BFR como información de consulta, en la que no se recibe ningún BFR; puede seguir enviándose contenido al dispositivo servidor. El dispositivo servidor usa un BFR como una indicación para difundir en continuo el flujo. Puesto que el dispositivo servidor puede saber la tasa aproximada (más o menos la deriva del reloj) con la que el dispositivo cliente consumirá el contenido de la memoria intermedia, es posible que el dispositivo servidor no necesite normalmente esperar un BFR antes de enviar contenido.
Control del flujo
Los BFR están dirigidos al concepto general del control de flujo, que es la difusión en continuo del flujo de datos en base al número de memorias intermedias disponibles en un dispositivo cliente. El control del flujo puede usarse para permitir que un dispositivo servidor conozca exactamente cuántas memorias intermedias libres están disponibles en el dispositivo cliente en cualquier instante en el tiempo, garantizando que las memorias intermedias del dispositivo cliente no se desborden. Como parte del control del flujo, los BFR que son enviados frecuentemente al dispositivo servidor pueden permitir que el dispositivo servidor ajuste su velocidad de transmisión para garantizar que las memorias intermedias de los dispositivos clientes no se vacíen y que ello lleve a fallos técnicos. En el caso de una congestión en la red o de demoras causadas por errores en la red que conduzcan a condiciones que reduzcan la velocidad de transmisión, el control del flujo y los BFR permiten que se envíen los datos con la debida velocidad de transmisión. Si un dispositivo servidor conoce cuánto espacio de la memoria intermedia está disponible en un cliente, el dispositivo servidor puede ser capaz de rellenar rápidamente el espacio disponible al inicio del flujo de datos o durante las discontinuidades, y conduciendo a resultados en un rendimiento más elevado. En el caso de una congestión temporal de la red, el dispositivo servidor puede “ponerse al día” suministrando el contenido con mayor rapidez y rellenando las memorias intermedias de uno o más clientes. En general, el dispositivo servidor puede garantizar que las memorias intermedias para inestabilidades de los dispositivos clientes estén llenas de contenido almacenado, lo que permite que el dispositivo cliente sea más tolerante a las inestabilidades de la red y hace el sistema más robusto.
Ordenador ejemplar
La Fig. 5 muestra un dispositivo informático ejemplar u ordenador 500 adecuado como entorno para practicar aspectos de la temática. En particular, el ordenador 500 describe con mayor detalle el dispositivo servidor 102 y el dispositivo cliente 104. El ordenador 500 es adecuado como entorno para practicar aspectos de la temática. Los componentes del ordenador 500 pueden incluir, sin limitación, la unidad 505 de proceso (por ejemplo, los procesadores 108 y 118), la memoria 510 de sistema (por ejemplo, las memorias 110 y 120) y un bus 521 de sistema que acopla a diversos componentes del sistema, incluyendo la memoria 510 de sistema, a la unidad 505 de proceso. El bus 521 de sistema puede ser de cualquiera de varios tipos de estructuras de bus, incluyendo un bus de memoria o un controlador de memoria, un bus de periféricos y un bus local usando cualquiera de entre una variedad de arquitecturas de bus. A título de ejemplo, y no de limitación, tales arquitecturas incluyen el bus de Arquitectura Industrial Normalizada (ISA), el bus con arquitectura de microcanal (MCA), el bus ISA mejorado (EISA), el bus local de la Asociación de Normativa Electrónica de Vídeo (VESA) y el bus de Interconexión de Componentes Periféricos (PCI), también denominado bus de entresuelo.
Típicamente, el ordenador ejemplar 500 incluye una variedad de medios legibles por ordenador. Los medios legibles por ordenador pueden ser cualquier medio disponible al que pueda acceder el ordenador 500 e incluyen tanto los medios volátiles como los no volátiles, los medios extraíbles y los no extraíbles. A título de ejemplo, y no de limitación, los medios legibles del dispositivo informático pueden comprender medios de almacenamiento informático y medios de comunicaciones. Los medios de almacenamiento informático incluyen medios volátiles y no volátiles, extraíbles y no extraíbles implementados en cualquier procedimiento o tecnología para el almacenamiento de información, tales como instrucciones legibles por ordenador, estructuras de datos, módulos de programas u otros datos. Los medios de almacenamiento informático incluyen, sin limitación, RAM, ROM, EEPROM, memoria flash u otra tecnología de memoria, CD-ROM, discos versátiles digitales (DVD) u otro almacenamiento de discos ópticos, casetes magnéticas, cinta magnética, almacenamiento en discos magnéticos u otros dispositivos de almacenamiento magnético, o cualquier otro medio que pueda usarse para almacenar la información deseada y al que pueda acceder el servidor 500 de gestión. Típicamente, los medios de comunicaciones plasman instrucciones legibles por ordenador, estructuras de datos, módulos de programas u otros datos en una señal modulada de datos, como una onda portadora u otro mecanismo de transporte, e incluyen cualquier medio de suministro de la información. La expresión “señal modulada de datos” significa una señal que tiene una o más de sus características configuradas o cambiadas de tal manera que codifican la información de la señal. A título de ejemplo, y no de limitación, los medios de comunicaciones incluyen medios cableados, como una red cableada o una conexión de cableado directo, y medios inalámbricos, como medios acústicos, de RF, infrarrojos y otros medios inalámbricos. También deberían incluirse combinaciones de cualquiera de los anteriores en el abanico de los medios legibles por el dispositivo informático.
La memoria 510 de sistema incluye medios de almacenamiento del dispositivo informático en la forma de memoria volátil y/o no volátil, como la memoria de solo lectura (ROM) 531 y la memoria de acceso directo (RAM) 532. Típicamente, un sistema básico 533 de entrada salida (BIOS), que contiene rutinas básicas que contribuyen a transferir información entre elementos dentro del ordenador 500, como durante el arranque, está almacenado en la ROM 531; típicamente, la RAM 532 contiene datos y/o módulos de programa que son inmediatamente accesibles a la unidad 505 de proceso y/o son operados por la misma. A título de ejemplo, y no de limitación, la Fig. 5 ilustra un sistema operativo 534, programas 535 de aplicación (que pueden incluir aplicaciones 112 o 122), otros módulos 536 de programa y datos 537 de programa. Otros módulos 536 de programa pueden incluir componentes como el monitor 132 de memorias intermedias y el módulo 136 de informes BRF de clientes.
El ordenador 500 puede también incluir otros medios de almacenamiento informático extraíbles/no extraíbles, volátiles/no volátiles. A título de ejemplo únicamente, la Fig. 5 ilustra una unidad 541 de disco duro que lee o escribe en medios magnéticos no extraíbles no volátiles, una unidad 551 de disco magnético que lee o escribe a un disco magnético 552 extraíble no volátil, y una unidad 555 de disco óptico que lee o escribe en un disco óptico 556 extraíble no volátil, como un CD ROM u otros medios ópticos. Otros medios de almacenamiento de dispositivos informáticos extraíbles/no extraíbles volátiles/no volátiles que pueden usarse en el entorno operativo ejemplar incluyen, sin limitaciones, casetes de cinta magnética, tarjetas de memoria flash, discos versátiles digitales, cinta de vídeo digital, RAM de estado sólido, ROM de estado sólido y similares. Típicamente, la unidad 541 de disco duro está conectada al bus 521 de sistema por medio de una interfaz de memoria no extraíble, como la interfaz 540, y, típicamente, una unidad 551 de disco magnético y una unidad 555 de disco óptico están conectadas al bus 521 de sistema por medio de una interfaz de memoria extraíble como la interfaz 550.
Las unidades y sus medios de almacenamiento de los dispositivos informáticos asociados expuestos más arriba e ilustrados en la Fig. 5 proporcionan almacenamiento de instrucciones legibles por ordenador, estructuras de datos, módulos de programa y otros datos para el ordenador 500. En la Fig. 5, por ejemplo, se ilustra que la unidad 541 de disco duro almacena el sistema operativo 544, programas 545 de aplicación, otros módulos 546 de programa y datos 547 de programa. Se hace notar que estos componentes pueden ser iguales o diferentes que el sistema operativo 534, los programas 535 de aplicación, otros módulos 536 de programa y datos 537 de programa. Al sistema operativo 544, a los programas 545 de aplicación, a otros módulos 546 de programa y a los datos 547 de programa se les dan números diferentes aquí para ilustrar que, como mínimo, son copias diferentes. Un usuario puede introducir órdenes e información en el ordenador ejemplar 500 a través de dispositivos de entrada, como un teclado 548 y un dispositivo 561 de puntero, denominado comúnmente ratón, bola de mando del cursor o almohadilla táctil. Otros dispositivos de entrada (no mostrados) pueden incluir un micrófono, una palanca de juegos, un mando de juegos, una antena parabólica, un escáner o similares. Estos y otros dispositivos se conectan a menudo a la unidad 520 de proceso por medio de una interfaz 560 de entrada de usuario que está acoplada al bus de sistema, pero puede tener conexión por medio de otras estructuras de interfaz y de bus, como un puerto paralelo, un puerto de juegos o, en particular, un puerto USB.
Un monitor 562 u otro tipo de dispositivo de visionado también está conectado al bus 521 de sistema por medio de una interfaz, como una interfaz 590 de vídeo. Además del monitor 562, los dispositivos informáticos también pueden incluir otros dispositivos periféricos de salida, como los altavoces 597 y la impresora 596, que pueden estar conectados por medio de una interfaz 595 de periféricos de salida.
El ordenador ejemplar 500 puede operar en un entorno de red usando conexiones lógicas a uno o más dispositivos informáticos remotos, como un dispositivo informático remoto 580. El dispositivo informático remoto 580 puede ser un dispositivo de ordenador personal, un servidor, un dispositivo de encaminamiento, un PC de red, un dispositivo cooperativo u otro nodo de red común, y típicamente incluye muchos o todos los elementos descritos más arriba con respecto al ordenador 500. Las conexiones lógicas representadas en la Fig. 5 incluyen una red 571 de área local (LAN) y una red 573 de área amplia (WAN), pero pueden incluir también otras redes, como la red 106 descrita más arriba. Tales entornos de red son comunes en oficinas, redes de dispositivos informáticos de ámbito empresarial, intranets e Internet.
Cuando se usa en un entorno de red LAN, el servidor ejemplar 500 de gestión está conectado a la LAN 571 por medio de una interfaz o un adaptador 570 de red. Cuando se usa en un entorno de red WAN, el ordenador ejemplar 500 incluye típicamente un módem 572 u otros medios para establecer comunicaciones en la WAN 573, como Internet. El módem 572, que puede ser interno o externo, puede estar conectado al bus 521 de sistema por medio de la interfaz 560 de entrada de usuario u otro mecanismo apropiado. En un entorno de red, los módulos de programa representados con respecto al ordenador ejemplar 500, o porciones de los mismos, pueden almacenarse en un dispositivo de almacenamiento remoto de memoria. A título de ejemplo, y no de limitación, la Fig. 5 ilustra los programas remotos 585 de aplicación. Se apreciará que las conexiones de red mostradas son ejemplares y que pueden usarse otros medios de establecimiento de un vínculo de comunicaciones entre los dispositivos informáticos.
5 Conclusión
Los procedimientos y el ordenador anteriormente descritos describen la transmisión desde un dispositivo cliente de informes de llenado de las memorias intermedias a un dispositivo servidor. Aunque la invención ha sido descrita con un lenguaje específico a las características estructurales y/o a las acciones metodológicas, ha de entenderse que la invención definida en las reivindicaciones adjuntas no está necesariamente limitada a las características y las
10 acciones específicas descritas. Antes bien, las características y las acciones específicas son dadas a conocer como formas ejemplares de implementación de la invención reivindicada.

Claims (19)

  1. REIVINDICACIONES
    1. Un procedimiento para su uso en un dispositivo servidor para el control del flujo de una difusión multimedia en continuo, comprendiendo el procedimiento: negociar (404) el intercambio de información de la memoria intermedia con un dispositivo cliente:
    si se recibe (412) información del dispositivo cliente, ajustar la velocidad de transferencia de contenido difundido en continuo al dispositivo cliente en base a la información de la memoria intermedia; y
    si no se recibe (412) información del dispositivo cliente, determinar (416) si ha de aplicarse una solución vinculadamente acoplada; en el caso de la solución vinculadamente acoplada, usar la información de la memoria intermedia
    recibida previamente o esperar la siguiente información de la memoria intermedia; y en el caso de que no se aplique la solución vinculadamente acoplada, difundir en continuo el contenido con una velocidad de transferencia predefinida.
  2. 2.
    El procedimiento de la reivindicación 1 en el que la negociación incluye la determinación de una frecuencia con la que se recibe desde el cliente la información de la memoria intermedia.
  3. 3.
    El procedimiento de la reivindicación 1 en el que el ajuste se basa en una desviación de un valor óptimo de uso de la memoria intermedia.
  4. 4.
    El procedimiento de la reivindicación 1 en el que el ajuste de la velocidad de transferencia ajusta la velocidad de transmisión en una red y la velocidad de codificación de bits del contenido.
  5. 5.
    El procedimiento de la reivindicación 1 que comprende, además, la espera de una información subsiguiente de la memoria intermedia o el uso de información previa de la memoria intermedia en el caso de que no se reciba información de la memoria intermedia.
  6. 6.
    El procedimiento de la reivindicación 1 que comprende la difusión en continuo de contenido a un dispositivo cliente en base a una velocidad predeterminada o a una velocidad derivada de información previa de la memoria intermedia en el caso de que no se reciba información de la memoria intermedia.
  7. 7.
    El procedimiento de la reivindicación 1 que comprende, además:
    determinar (406) la capacidad de una o más memorias intermedias, en el que la capacidad se describe en la información de la memoria intermedia;
    calcular (408) el espacio en la o las memorias intermedias, en el que el espacio usado se describe en la información de la memoria intermedia;
    enviar (410) la información de la memoria intermedia al dispositivo servidor que ajusta el flujo de contenido difundido en continuo en base a la información de la memoria intermedia.
  8. 8.
    El procedimiento de la reivindicación 7 en el que la determinación se lleva a cabo en todas las memorias intermedias que reciben el contenido difundido en continuo.
  9. 9.
    El procedimiento de la reivindicación 7 en el que la determinación se basa en una capacidad colectiva de las memorias intermedias que reciben el contenido difundido en continuo.
  10. 10.
    El procedimiento de la reivindicación 7 en el que el envío de la información de la memoria intermedia es en la forma de un informe de llenado de la memoria intermedia.
  11. 11.
    El procedimiento de la reivindicación 7 que comprende, además, la negociación de un intercambio de la información de la memoria intermedia.
  12. 12.
    El procedimiento de la reivindicación 11 en el que la negociación incluye determinar la frecuencia con la que se envía la información de la memoria intermedia al dispositivo servidor.
  13. 13.
    El procedimiento de la reivindicación 11 en el que la negociación incluye identificar un protocolo de comunicación usado para comunicar la información de la memoria intermedia.
  14. 14.
    Uno o más medios legibles por ordenador que comprenden instrucciones ejecutables por ordenador que, cuando se ejecutan, llevan a cabo todas las etapas del procedimiento según se enumera en una de las reivindicaciones 1 o 6.
  15. 15.
    Un sistema que comprende un dispositivo cliente y uno o más dispositivos servidores para el control del flujo de una difusión multimedia en continuo, en el que el dispositivo cliente comprende:
    una unidad de proceso;
    una o más memorias intermedias que son accesibles a la unidad de proceso y son operadas por ella, en el que las memorias intermedias reciben contenido difundido en continuo desde uno o más dispositivos servidores; y
    un monitor de memorias intermedias que es accesible a la unidad de proceso y es operada por ella, en el que el monitor de memorias intermedias monitoriza el nivel de llenado de las memorias intermedias, y genera informes de llenado de las memorias intermedias en base al nivel de llenado de las memorias intermedias o a una frecuencia negociada con la que los informes de llenado de las memorias intermedias han de ser recibidos por el uno o más dispositivos servidores;
    en el que un dispositivo servidor del uno o más dispositivos servidores está adaptado para recibir el informe de llenado de las memorias intermedias, si se recibe el informe de llenado de las memorias intermedias, adaptado para ajustar la velocidad de transferencia del contenido difundido en continuo al dispositivo cliente en base al informe de llenado de las memorias intermedias, y adaptado además, si no se recibe el informe de llenado de las memorias intermedias, para determinar si ha de aplicarse una solución vinculadamente acoplada, en el caso de la solución vinculadamente acoplada adaptada para usar la información previamente recibida de la memoria intermedia o esperar la siguiente información de la memoria intermedia y, en el caso de que no se aplique la solución vinculadamente acoplada, difundir en continuo el contenido de una velocidad de transferencia predefinida.
  16. 16.
    El sistema de la reivindicación 15 en el que las memorias intermedias comprenden una memoria intermedia contra inestabilidades y una memoria intermedia de contenido.
  17. 17.
    El sistema de la reivindicación 15 en el que las memorias intermedias comprenden una primera memoria intermedia que almacena un contenido de datos encapsulados y una segunda memoria intermedia almacena un contenido de datos desencapsulados para su decodificación.
  18. 18.
    El sistema de la reivindicación 15 en el que los informes de llenado de las memorias intermedias son enviados al dispositivo servidor usando un protocolo particular de comunicaciones.
  19. 19.
    El sistema de la reivindicación 15 que comprende, además, un decodificador antes de la memoria intermedia de contenido.
ES06760102T 2005-05-23 2006-05-18 Control de flujo para difusión multimedia en continuo. Active ES2361120T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/135,201 US7743183B2 (en) 2005-05-23 2005-05-23 Flow control for media streaming
US135201 2005-05-23

Publications (1)

Publication Number Publication Date
ES2361120T3 true ES2361120T3 (es) 2011-06-14

Family

ID=37452610

Family Applications (1)

Application Number Title Priority Date Filing Date
ES06760102T Active ES2361120T3 (es) 2005-05-23 2006-05-18 Control de flujo para difusión multimedia en continuo.

Country Status (9)

Country Link
US (1) US7743183B2 (es)
EP (1) EP1891502B1 (es)
JP (1) JP4812832B2 (es)
KR (1) KR20080016817A (es)
CN (1) CN101203827B (es)
AT (1) ATE505004T1 (es)
DE (1) DE602006021175D1 (es)
ES (1) ES2361120T3 (es)
WO (1) WO2006127391A2 (es)

Families Citing this family (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004112420A1 (ja) * 2003-06-11 2004-12-23 Nec Corporation メディア信号の受信装置、送信装置及び送受信システム
US8218657B2 (en) * 2005-09-02 2012-07-10 Netgear, Inc. System and method for automatic adjustment of streaming video bit rate
US7657668B2 (en) * 2006-08-16 2010-02-02 Qnx Software Systems (Wavemakers), Inc. Clock synchronization of data streams
US8213316B1 (en) * 2006-09-14 2012-07-03 Avaya Inc. Method and apparatus for improving voice recording using an extended buffer
GB0705329D0 (en) 2007-03-20 2007-04-25 Skype Ltd Method of transmitting data in a communication system
JP5096027B2 (ja) * 2007-03-26 2012-12-12 ソフトバンクBb株式会社 コンテンツ配信システムおよびコンテンツ配信方法
JP5211569B2 (ja) * 2007-07-26 2013-06-12 ソニー株式会社 コンテンツ再生装置、コンテンツ再生方法、およびプログラム
JP5282383B2 (ja) * 2007-09-06 2013-09-04 ソニー株式会社 コンテンツ再生装置、コンテンツ再生方法、プログラム、およびコンテンツ再生システム
US7895629B1 (en) * 2007-11-07 2011-02-22 At&T Mobility Ii Llc Video service buffer management in a mobile rate control enabled network
US8325800B2 (en) 2008-05-07 2012-12-04 Microsoft Corporation Encoding streaming media as a high bit rate layer, a low bit rate layer, and one or more intermediate bit rate layers
US8379851B2 (en) 2008-05-12 2013-02-19 Microsoft Corporation Optimized client side rate control and indexed file layout for streaming media
US7925774B2 (en) 2008-05-30 2011-04-12 Microsoft Corporation Media streaming using an index file
US20100017516A1 (en) * 2008-07-16 2010-01-21 General Instrument Corporation Demand-driven optimization and balancing of transcoding resources
US8619558B1 (en) * 2008-07-21 2013-12-31 Qlogic, Corporation Memory management in a network adapter
US8116224B2 (en) 2008-09-09 2012-02-14 Embarq Holdings Company, LP System and method for generating alarms based on bursting traffic
US8265140B2 (en) 2008-09-30 2012-09-11 Microsoft Corporation Fine-grained client-side control of scalable media delivery
TWI396443B (zh) 2008-12-22 2013-05-11 Ind Tech Res Inst 應用於網路串流之影音控制回應及頻寬調適方法與使用該方法之伺服器
CN101534400B (zh) * 2009-04-14 2013-07-24 北京中星微电子有限公司 一种数据发送采样率的调节方法和装置
CN101877622B (zh) * 2009-04-30 2014-02-19 雷凌科技股份有限公司 提升数据传输效能的方法
TWI423032B (zh) * 2009-04-30 2014-01-11 Ralink Technology Corp 提升資料傳輸效能的方法
JP2011009904A (ja) * 2009-06-24 2011-01-13 Hitachi Ltd 無線映像配信システム、コンテンツビットレート制御方法及びコンテンツビットレート制御プログラムを記憶したコンピュータ読み取り可能な記録媒体
US8631455B2 (en) 2009-07-24 2014-01-14 Netflix, Inc. Adaptive streaming for digital content distribution
US9014545B2 (en) 2009-07-24 2015-04-21 Netflix, Inc. Adaptive streaming for digital content distribution
US8848548B2 (en) * 2009-08-04 2014-09-30 Qualcomm Incorporated Internet radio broadcast using cellular
EP2486491A4 (en) * 2009-10-06 2013-10-23 Unwired Planet Llc MANAGING NETWORK TRAFFIC BY EDITING A MANIFEST FILE AND / OR USING A INTERMEDIATE FLOW CONTROL
US9253105B2 (en) * 2010-12-30 2016-02-02 Nokia Technologies Oy Methods and apparatuses for facilitating determination of a state of a receiver buffer
GB2495928B (en) 2011-10-25 2016-06-15 Skype Jitter buffer
GB2520866B (en) 2011-10-25 2016-05-18 Skype Ltd Jitter buffer
GB2495929B (en) * 2011-10-25 2014-09-03 Skype Jitter buffer
US9374406B2 (en) * 2012-02-27 2016-06-21 Qualcomm Incorporated Dash client and receiver with a download rate estimator
US9386058B2 (en) 2012-02-27 2016-07-05 Qualcomm Incorporated DASH client and receiver with playback rate selection
US9276967B2 (en) * 2012-07-27 2016-03-01 Centurylink Intellectual Property Llc System and method for determining optimal bandwidth for streaming to a client device in an adjustable bit rate video system
GB2507124A (en) * 2012-10-22 2014-04-23 St Microelectronics Grenoble 2 Controlling data transmission rates based on feedback from the data recipient
CN103945244B (zh) * 2013-01-17 2018-05-29 华为技术有限公司 控制视频业务传输的方法和装置
US9654528B1 (en) 2013-03-11 2017-05-16 Google Inc. Dynamic bitrate selection for streaming media
US9503491B2 (en) * 2013-03-15 2016-11-22 Echostar Technologies L.L.C. Playback stall avoidance in adaptive media streaming
GB2512310A (en) * 2013-03-25 2014-10-01 Sony Corp Media Distribution
KR101782453B1 (ko) * 2013-07-08 2017-09-28 후아웨이 테크놀러지 컴퍼니 리미티드 비디오 재생 제어 방법, 장치 및 시스템
US9282041B2 (en) 2013-07-16 2016-03-08 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Congestion profiling of computer network devices
KR20150062745A (ko) * 2013-11-29 2015-06-08 한국전자통신연구원 가상화 서비스 장치 및 방법
US9600191B2 (en) * 2014-06-02 2017-03-21 Micron Technology, Inc. Systems and methods for reordering packet transmissions in a scalable memory system protocol
US9819560B2 (en) * 2014-12-24 2017-11-14 Mediatek Inc. Dynamic data distribution method in private network and associated electronic device
US9756112B2 (en) 2015-02-11 2017-09-05 At&T Intellectual Property I, L.P. Method and system for managing service quality according to network status predictions
US20160277522A1 (en) * 2015-03-20 2016-09-22 Qualcomm Incorporated Detecting playback buffer underrun at sink device to improve streaming media quality over bluetooth
JP6580380B2 (ja) * 2015-06-12 2019-09-25 オリンパス株式会社 画像処理装置および画像処理方法
US10033655B2 (en) 2015-09-04 2018-07-24 Arris Enterprises Llc Packet prioritization based on client device feedback
EP3357197B1 (en) 2015-09-29 2019-07-24 Dolby Laboratories Licensing Corporation Method and system for handling heterogeneous jitter
WO2017063677A1 (en) * 2015-10-13 2017-04-20 Telefonaktiebolaget Lm Ericsson (Publ) Adaptive precision for reporting consumption of streamed content
WO2017179099A1 (ja) * 2016-04-11 2017-10-19 オリンパス株式会社 画像処理装置
KR102656013B1 (ko) 2016-10-28 2024-04-11 삼성전자주식회사 컨텐츠 출력 장치 및 그 제어 방법
CN108073445B (zh) * 2016-11-18 2021-10-22 腾讯科技(深圳)有限公司 基于分布式流计算的背压处理方法和系统
US20180288454A1 (en) * 2017-03-29 2018-10-04 Kamakshi Sridhar Techniques for estimating http adaptive streaming (has) video quality of experience
KR101996914B1 (ko) * 2017-11-13 2019-07-08 주식회사 쿼렌시스 Mmtp기반 전송 시 배터리 소비 절감 방법 및 시스템
US11062722B2 (en) * 2018-01-05 2021-07-13 Summit Wireless Technologies, Inc. Stream adaptation for latency
US10534573B2 (en) * 2018-05-29 2020-01-14 Sonova Ag Method for apparatus for sample rate conversion with unknown input and output clocks
CN108810554B (zh) * 2018-06-15 2021-06-22 腾讯科技(深圳)有限公司 虚拟场景的场景图像传输方法、计算机设备及存储介质
US10693575B2 (en) 2018-08-31 2020-06-23 At&T Intellectual Property I, L.P. System and method for throughput prediction for cellular networks
US10868726B2 (en) 2018-12-07 2020-12-15 At&T Intellectual Property I, L.P. Apparatus and method for selecting a bandwidth prediction source
US20200296462A1 (en) 2019-03-11 2020-09-17 Wci One, Llc Media content presentation
US11490149B2 (en) 2019-03-15 2022-11-01 At&T Intellectual Property I, L.P. Cap-based client-network interaction for improved streaming experience
CN112468759A (zh) 2019-09-09 2021-03-09 苹果公司 动态冗余
CN111246284B (zh) * 2020-03-09 2021-05-25 深圳创维-Rgb电子有限公司 视频流播放方法、系统、终端及存储介质
WO2023063925A1 (en) * 2021-10-12 2023-04-20 Google Llc Intelligent dynamic bit-rate rate adjustment to enhance bluetooth performance
US11711322B2 (en) 2021-10-31 2023-07-25 Zoom Video Communications, Inc. Packet processing at a server

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0792654B2 (ja) 1992-10-23 1995-10-09 インターナショナル・ビジネス・マシーンズ・コーポレイション ビデオ・データ・フレーム伝送方法および装置
US5563961A (en) 1994-03-03 1996-10-08 Radius Inc. Video data compression method and system which measures compressed data storage time to optimize compression rate
GB9410943D0 (en) 1994-06-01 1994-07-20 Newbridge Networks Corp Clock recovery unit
JPH08191451A (ja) 1995-01-10 1996-07-23 Canon Inc 動画像送信装置
US5758076A (en) 1995-07-19 1998-05-26 International Business Machines Corporation Multimedia server system having rate adjustable data retrieval based on buffer capacity
US5909443A (en) 1997-01-03 1999-06-01 International Business Machines Corporation ATM network congestion control system using explicit rate cell marking
EP0901285A4 (en) 1997-02-26 2002-05-29 Mitsubishi Electric Corp DEVICE, SYSTEM AND METHOD FOR DISTRIBUTING VIDEO DATA
US6014694A (en) 1997-06-26 2000-01-11 Citrix Systems, Inc. System for adaptive video/audio transport over a network
US6343350B1 (en) 1998-02-13 2002-01-29 International Business Machines Corporation Conserving storage space by means of low resolution objects
SG71835A1 (en) 1998-09-07 2000-04-18 Victor Company Of Japan A dejittering and clock recovery technique for real-time audio/visual network applications
US6618363B1 (en) 1998-10-09 2003-09-09 Microsoft Corporation Method for adapting video packet generation and transmission rates to available resources in a communications network
US6519004B1 (en) 1998-10-09 2003-02-11 Microsoft Corporation Method for transmitting video information over a communication channel
US6507587B1 (en) 1998-10-09 2003-01-14 Microsoft Corporation Method of specifying the amount of bandwidth to reserve for use in network communications
JP2000183873A (ja) * 1998-12-11 2000-06-30 Fujitsu Ltd データ転送方法
US7423983B1 (en) * 1999-09-20 2008-09-09 Broadcom Corporation Voice and data exchange over a packet based network
US7170856B1 (en) 1999-08-19 2007-01-30 Nokia Inc. Jitter buffer for a circuit emulation service over an internet protocol network
US6611530B1 (en) 1999-09-21 2003-08-26 Hewlett-Packard Development Company, L.P. Video communication using multiple streams
JP2001103565A (ja) 1999-09-30 2001-04-13 Toshiba Corp 移動無線端末
US6757273B1 (en) 2000-02-07 2004-06-29 Nokia Corporation Apparatus, and associated method, for communicating streaming video in a radio communication system
US20020146023A1 (en) * 2001-01-09 2002-10-10 Regan Myers Transport stream multiplexer utilizing smart FIFO-meters
KR100410973B1 (ko) 2001-04-18 2003-12-18 엘지전자 주식회사 주문형 비디오 시스템에서 동영상의 스트리밍 방법
US7000025B1 (en) * 2001-05-07 2006-02-14 Adaptec, Inc. Methods for congestion mitigation in infiniband
US7151749B2 (en) 2001-06-14 2006-12-19 Microsoft Corporation Method and System for providing adaptive bandwidth control for real-time communication
US20030198184A1 (en) 2001-08-31 2003-10-23 Joe Huang Method of dynamically determining real-time multimedia streaming rate over a communications networks
US7274661B2 (en) 2001-09-17 2007-09-25 Altera Corporation Flow control method for quality streaming of audio/video/media over packet networks
FI115418B (fi) 2001-09-20 2005-04-29 Oplayo Oy Adaptiivinen mediavirta
KR20040041170A (ko) 2001-09-21 2004-05-14 브리티쉬 텔리커뮤니케이션즈 파블릭 리미티드 캄퍼니 혼잡 제어를 위한 전송률을 계산하기 위해 수신 버퍼 크기를 사용하는 데이터 통신 방법 및 시스템
KR100420601B1 (ko) 2001-11-22 2004-03-02 에스케이 텔레콤주식회사 비디오 데이터 스트리밍 서비스 방법
US6860609B2 (en) * 2001-12-26 2005-03-01 Infocus Corporation Image-rendering device
US7155532B2 (en) 2002-01-04 2006-12-26 Scientific-Atlanta, Inc. Transmitting streams over asynchronous networks
US6910079B2 (en) 2002-01-25 2005-06-21 University Of Southern California Multi-threshold smoothing
US7483487B2 (en) 2002-04-11 2009-01-27 Microsoft Corporation Streaming methods and systems
RU2332705C2 (ru) 2002-07-16 2008-08-27 Нокиа Корпорейшн Способ предоставления возможности компенсации задержки передачи пакетов при потоковой передаче мультимедийных данных
FR2842683B1 (fr) 2002-07-22 2005-01-14 Cit Alcatel Dispositif de multiplexage, dispositif de multiplexage et systeme de multiplexage/demultiplexage
KR100547889B1 (ko) 2003-08-25 2006-01-31 삼성전자주식회사 Mpeg-2 전송을 위한 널 패킷 필터링 장치
US7366199B1 (en) 2002-12-10 2008-04-29 Apple Inc. Method and apparatus measuring bandwidth
JP2004214755A (ja) * 2002-12-27 2004-07-29 Hitachi Ltd 動的符号化レート変更方法及びその装置
WO2004072764A2 (en) 2003-02-13 2004-08-26 Nokia Corporation Method for signaling client rate capacity in multimedia streaming
GB0304808D0 (en) 2003-03-03 2003-04-09 Cambridge Internetworking Ltd Managing data transmission
US7603475B2 (en) 2003-03-31 2009-10-13 Alcatel-Lucent Usa Inc. Method for flow control in a communication system
US7844727B2 (en) 2003-04-24 2010-11-30 Nokia Corporation Method and device for proactive rate adaptation signaling
US20060026181A1 (en) * 2004-05-28 2006-02-02 Jeff Glickman Image processing systems and methods with tag-based communications protocol

Also Published As

Publication number Publication date
EP1891502B1 (en) 2011-04-06
ATE505004T1 (de) 2011-04-15
JP2008543176A (ja) 2008-11-27
KR20080016817A (ko) 2008-02-22
CN101203827B (zh) 2011-04-13
CN101203827A (zh) 2008-06-18
US20060282566A1 (en) 2006-12-14
US7743183B2 (en) 2010-06-22
DE602006021175D1 (de) 2011-05-19
EP1891502A2 (en) 2008-02-27
JP4812832B2 (ja) 2011-11-09
EP1891502A4 (en) 2009-11-11
WO2006127391A2 (en) 2006-11-30
WO2006127391A3 (en) 2007-10-25

Similar Documents

Publication Publication Date Title
ES2361120T3 (es) Control de flujo para difusión multimedia en continuo.
US10972772B2 (en) Variable bit video streams for adaptive streaming
US10298638B2 (en) Streaming media delivery system
US7716358B2 (en) Streaming media buffering system
ES2313323T3 (es) Tecnica para controlar transmisiones de paquetes de datos de velocidad binaria variable.
KR101397815B1 (ko) 프록시 피드백 제어된 프레임 전송을 사용하는 미디어 서버에 대한 콘텐츠 레이트 선택
ES2842589T3 (es) Transmisión de flujos por multidifusión
US8689267B2 (en) Variable bit video streams for adaptive streaming
EP1813115B1 (en) Buffering packets of a media stream
US9473378B1 (en) Method for transmitting packet-based media data having header in which overhead is minimized
US8897307B2 (en) Packing data over an adaptive rate link
US7587507B2 (en) Media recording functions in a streaming media server
US7715436B1 (en) Method for UDP transmit protocol offload processing with traffic management
US8595372B2 (en) Streaming media buffering system
JP2008067102A (ja) コンテンツ配信サーバ
CN110710220B (zh) 用于流传输数据的方法和装置
BRPI0904441A2 (pt) método e aparelho para a recepção de conteúdo
JP6555853B2 (ja) 送信装置、送信制御方法及びプログラム
JP2005328240A (ja) Tcpによるビットストリーム並列伝送システム、伝送方法および装置
JP2019524011A (ja) Mmtpパケットを送受信する方法及びその装置