[go: up one dir, main page]

ES2332315T3 - Procedimiento y dispositivo para la señalizacion proactiva de la adaptacion de tasa de transmision. - Google Patents

Procedimiento y dispositivo para la señalizacion proactiva de la adaptacion de tasa de transmision. Download PDF

Info

Publication number
ES2332315T3
ES2332315T3 ES04729160T ES04729160T ES2332315T3 ES 2332315 T3 ES2332315 T3 ES 2332315T3 ES 04729160 T ES04729160 T ES 04729160T ES 04729160 T ES04729160 T ES 04729160T ES 2332315 T3 ES2332315 T3 ES 2332315T3
Authority
ES
Spain
Prior art keywords
server
transmission
magnitude
parameter
client
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
ES04729160T
Other languages
English (en)
Inventor
David Leon
Viktor Varsa
Igor Danilo Diego Curcio
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.)
Nokia Inc
Original Assignee
Nokia Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nokia Inc filed Critical Nokia Inc
Application granted granted Critical
Publication of ES2332315T3 publication Critical patent/ES2332315T3/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
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L12/5602Bandwidth control in ATM Networks, e.g. leaky bucket
    • 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/28Flow control; Congestion control in relation to timing considerations
    • 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/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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)
  • Nitrogen And Oxygen Or Sulfur-Condensed Heterocyclic Ring Systems (AREA)
  • Control Of Electric Motors In General (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

Un procedimiento que comprende: definir, en un cliente en una red de flujos multimedia, al menos un parámetro para determinar una gama operativa de adaptación de tasa de transmisión, en el cual la red de flujos comprende un servidor configurado para proporcionar datos de flujos al cliente, teniendo el cliente un almacén temporal receptor configurado para compensar la diferencia entre la magnitud de la transmisión de datos por parte del servidor y la magnitud del empleo de datos por parte del cliente, a fin de permitir que el cliente tenga una cantidad suficiente de datos de flujos para reproducir de manera libre de perturbaciones, y en el cual el parámetro, o parámetros, se usa(n) para la adaptación de tasa de transmisión entre el servidor y el cliente, proporcionar al servidor información que indique al menos dicho(s) parámetro(s); adaptar en el servidor la cantidad de datos a una tasa de transmisión de recepción, sobre la base de dicho(s) parámetro(s), y ajustar en el cliente la variación del retardo de transferencia de paquetes sobre la base de dicha adaptación, caracterizado porque dicho(s) parámetro(s) comprende(n) una magnitud de desplazamiento mínimo, que indica una diferencia entre el tiempo de muestreo y el tiempo de transmisión de un paquete en el servidor, o bien una magnitud de desplazamiento objetivo, que indica una magnitud de desplazamiento mayor que una diferencia entre el tiempo de muestreo y el tiempo de transmisión de un paquete en el servidor, o bien un número que especifica una diferencia máxima entre el número de octetos que han sido enviados y el número de octetos que han sido muestreados, a fin de permitir que el servidor adapte una tasa de transmisión de muestreo a la tasa de transmisión en el servidor, sobre la base de dicho(s) parámetro(s).

Description

Procedimiento y dispositivo para la señalización proactiva de la adaptación de tasa de transmisión.
Campo de la invención
La presente invención se refiere, en general, al flujo multimedia y, más específicamente, a la adaptación de la tasa de transferencia entre un servidor y un cliente en servicios de flujo multimedia.
Antecedentes de la invención
En un servicio de flujo multimeda, hay tres participantes implicados: un servidor de flujos, un cliente de flujos y un canal de transmisión, o una red subyacente. Habitualmente, es el canal de transmisión el cuello de botella del servicio, tanto en términos de caudal como en términos de fiabilidad (es decir, si no se supone ninguna garantía de tasa de transmisión de bits del caudal), pero las limitaciones del caudal también pueden tener lugar en el cliente y/o en el servidor.
En un sistema de flujos en tiempo real, debido a las características, dinámicamente cambiantes, del caudal del canal, el cliente y el servidor, el suministro del flujo debe ser adaptable, a fin de mantener una experiencia de reproducción en tiempo real para el usuario. El servidor debería adaptar la tasa de transmisión al caudal variable del sistema. Un ejemplo de tal adaptación de tasa de transmisión puede hallarse en Haskell et al (Patente Estadounidense Nº 5.565.924 "Encoder/Decoder Buffer Control for Variable Channel" ["Control de almacén temporal de codificador/descodificador para canal variable"]).
El cliente del flujo proporciona almacenamiento temporal receptor para almacenar los datos entrantes antes de pasarlos al descodificador de medios, para su reproducción. El almacén temporal receptor se utiliza para compensar la diferencia entre la tasa de transmisión de codificación de origen (también denominada la tasa de transmisión de muestreo) y la tasa de transmisión de transmisión (almacenamiento temporal previo al codificador). También se utiliza para compensar la variación del retardo de transferencia de paquetes por el canal (almacenamiento temporal de arritmia). En general, estas dos funciones se suponen combinadas en un único almacén temporal receptor. Sin embargo, también pueden implementarse con dos almacenes temporales distintos en un receptor, aunque tal implementación no es óptima desde el punto de vista del retardo. El almacenamiento temporal receptor también puede allanar las inexactitudes de adaptación (es decir, si el caudal del sistema no es correspondido exactamente por la salida del servidor). Tal es también el caso en el documento WO-A-01/37571.
Si el almacén temporal receptor se vacía (esto es, infrallenado del almacén temporal), lo que significa que al descodificador se le están acabando los datos para descodificar, el cliente necesita detener temporalmente la reproducción y realmacenar temporalmente los datos entrantes antes de continuar. Por otra parte, si la tasa de transmisión de los datos entrantes es mayor que la tasa de transmisión de reproducción, entonces puede agotarse el espacio de almacenamiento temporal receptor (esto es, desborde del almacén temporal), lo que puede dar como resultado la pérdida de paquetes del almacén temporal, a fin de hacer sitio para nuevos paquetes entrantes. Cuando se pierden los paquetes, se degrada la calidad del vídeo. Para garantizar una reproducción tersa e impecable, el almacén temporal receptor del cliente debería mantenerse dentro de una cierta gama de llenado. A fin de garantizar que el almacén temporal receptor no sufrirá infrallenado o desborde, la tasa de transmisión de bits para la transmisión y el muestreo en el servidor, y la de recepción y reproducción en el cliente deben controlarse debidamente.
En las siguientes exposiciones, se describirá el control de la tasa de transmisión de bits con referencia a los gráficos de evolución de la tasa de transmisión de bits (sobre el eje horizontal, el tiempo en segundos; en el eje vertical, la cantidad acumulada de datos en octetos o bits), en los cuales se definen las siguientes curvas:
-
La curva de reproducción, P(t), muestra la cantidad acumulada de datos que el descodificador ha procesado en cierto tiempo a partir del almacén temporal receptor;
-
La curva de muestreo, S(t), muestra el avance de la generación de datos como si el codificador de medios funcionase en tiempo real (es la contraparte de la curva de reproducción y, de hecho, es una versión de ella desplazada en el tiempo);
-
La curva de transmisión, T(t), muestra la cantidad acumulada de datos enviados por el servidor en un tiempo dado; y
-
La curva de recepción, R(t), muestra la cantidad acumulada de datos recibidos y colocados en el almacén temporal del cliente en un tiempo dado.
La diferencia entre dos curvas cualesquiera define el retardo y el "tamaño del almacén temporal" entre esas dos curvas. El control de la tasa de transmisión de bits estará restringido por algunos límites de la diferencia entre dos curvas (p. ej., el tamaño máximo del almacén temporal, o el retardo máximo). Un típico gráfico de evolución de la tasa de transmisión de bits se muestra en la Figura 1.
Al determinar la mejor disposición para la cooperación entre servidor y cliente en el control de la tasa de transmisión de bits, ha de considerarse lo siguiente:
A. Curva de muestreo - el control (es decir, la selección del flujo de bits a transmitir) debería dejarse completamente a cargo del servidor, porque:
1)
Es sólo el servidor el que sabe de las características exactas de cada flujo de bits, p. ej., las posiciones de conmutación, la prioridad de las tramas, los tamaños de tramas futuras, y
2)
podría no haber una tasa de transmisión de flujo de bits que se adapte a la tasa de transmisión de bits de la red, y el servidor podría efectuar algunos "trucos" (p. ej., ralear, acelerar o desacelerar).
\vskip1.000000\baselineskip
B. Curva de transmisión - el control (es decir, la tasa de transmisión a la cual se transmite) también debería dejarse al servidor (es decir, utilizando los informes del RTCP (Protocolo de Control en Tiempo Real) o bien otra información de ancho de banda del cliente) porque:
1)
en general, es sólo el servidor el que puede medir la cantidad de datos en línea, y
2)
podría haber una necesidad de adaptar la tasa de transmisión va a la curva de muestreo si el control de la curva de muestreo tiene flexibilidad limitada.
\vskip1.000000\baselineskip
El servidor debería mantener algunas restricciones de tiempo real adaptando su curva de muestreo S(t) a su curva de transmisión T(t). La adaptación de la curva de muestreo a la curva de transmisión garantiza que, con un almacenamiento temporal adecuado, el receptor es capaz de reproducir los medios con sincronización correcta. En todo instante temporal t, la curva de muestreo S(t) no debería desviarse de la curva de transmisión T(t) en una cantidad demasiado grande de octetos.
\vskip1.000000\baselineskip
Si el servidor funciona dentro de un límite, según lo definido por las restricciones de tiempo real, el cliente es responsable de proporcionar todo almacenamiento temporal necesario para seguir al servidor dentro del límite. En ese caso, el cliente tiene que compensar:
1)
el almacenamiento temporal previo al descodificador para |S(t) - T(t)|, y
2)
el almacenamiento temporal de arritmia para la variación {T(t)-R(t)} del retardo de transferencia.
\vskip1.000000\baselineskip
Además, el cliente debe tolerar cualquier incongruencia entre la curva de reproducción y la curva de muestreo (p. ej., la deriva del reloj o la ralentización de la reproducción debido a un problema del sistema operativo de la plataforma del cliente).
En un sistema de flujo multimedia, un transmisor o servidor necesita, en todo instante temporal, decidir cómo codificar (a qué tasa de transmisión) el siguiente paquete que enviará, y decidir en qué tiempo enviarlo. En las operaciones normales, el transmisor es capaz de mantener la reproducción en tiempo real al utilizar el receptor sólo los informes del RTCP. El Servicio de Flujo Conmutado por Paquetes (PSS) del Proyecto de Colaboración de 3ª Generación (3GPP) define requisitos normativos de almacenamiento temporal de vídeo, que están concebidos para compensar las variaciones del retardo de codificación, y las específicas del servidor, inherentes a la compresión y transmisión VBR (Tasa de transmisión Variable de Bits) de vídeo (véase el documento 3GPP TS 26.234 V5.1.0, "Transparent End-to-End Packet Switched Streaming Service (PSS); Protocols and Codecs (Release 5)" ["Servicio Transparente de Flujo Conmutado por Paquetes (PSS) de Extremo a Extremo; Protocolos y Códecs (Versión 5)"] de junio de 2002, denominado en lo sucesivo TS 26.234). Cuando tanto el servidor como el cliente del flujo cumplen los requisitos de almacenamiento temporal, se garantiza que el cliente es capaz de reproducir el flujo transmitido por el servidor sin violación del almacén temporal del cliente (es decir, no habrá ni infrallenado ni desborde del almacén temporal en el cliente), siempre que el flujo desde el servidor se transmita por un canal de transmisión fiable, de retardo constante. Sin embargo, esto ya no es posible en ciertas circunstancias, tales como los traspasos, las retransmisiones o la deriva del reloj. Como resultado de ello, el transmisor y el receptor pueden adoptar acciones conflictivas entre sí, y puede ocurrir una severa degradación en la experiencia del usuario.
En la tecnología anterior, un receptor modifica su nivel de almacenamiento temporal mediante el uso de la tasa de transmisión (submuestreando audio y/o vídeo) y la escala (aumento o disminución multiplicativa de la tasa de transmisión de bits) de los campos de cabecera del RTSP (Protocolo de Flujo en Tiempo Real). Estas cabeceras se definen en el documento IETF RFC2326. El receptor también puede hacer uso de comandos de conmutación de tasa de transmisión de bits por parte del cliente, según se describe en el documento "End-to-End bit rate adaptation for PSS" ["Adaptación de la tasa de transmisión de bits de extremo a extremo para el PSS"], 3GPP SA4 doc
S4-030024.
Resumen de la invención
La presente invención divide las responsabilidades de la adaptación de tasa de transmisiones entre el transmisor y el receptor, según lo siguiente:
El servidor es responsable de:
-
La adaptación de la tasa de transmisión de transmisión a la tasa de transmisión de recepción (es decir, el control de congestión).
-
La adaptación de la tasa de transmisión de muestreo a la tasa de transmisión (es decir, la gestión del desplazamiento y su mantenimiento dentro de la gama operativa de adaptación de tasa de transmisión).
\vskip1.000000\baselineskip
El receptor es responsable de:
-
Compensar la variación del retardo de transferencia de paquetes (es decir, la arritmia de red).
-
Fijar los parámetros de la gama operativa de adaptación de tasa de transmisión del servidor (es decir, la gama de desplazamiento).
\vskip1.000000\baselineskip
La gama operativa para la adaptación de tasa de transmisión del servidor define los límites de la "programación dinámica del servidor", especificando el desplazamiento mínimo y máximo admisible para cualquier paquete que envíe el servidor. Los parámetros de la gama operativa de adaptación de tasa de transmisión del servidor se negocian entre el servidor y el receptor a fin de minimizar las ocurrencias de infrallenado, desborde y degradación de calidad en casos tales como los traspasos, la retransmisión y la deriva del reloj.
Así, el primer aspecto de la presente invención proporciona un procedimiento para controlar de manera adaptable el nivel de un almacén temporal receptor en un cliente en una red de flujo multimedia, comprendiendo la red de flujos un servidor para proporcionar datos de flujos al cliente, en donde el almacén temporal receptor se emplea para compensar la diferencia entre la magnitud de la transmisión de datos por parte del servidor y la magnitud del empleo de datos por parte del cliente, a fin de permitir que el cliente tenga una cantidad suficiente de datos de flujo para reproducir de manera libre de perturbaciones, comprendiendo dicho procedimiento:
definir en el cliente al menos un parámetro para determinar una gama operativa de adaptación de tasa de transmisiones, a fin de llevar a cabo la adaptación de la tasa de transmisión entre el servidor y el cliente;
adaptar en el servidor una cantidad de datos a una tasa de transmisión de recepción, sobre la base de di- cho(s) parámetro(s); y
ajustar en el cliente la variación del retardo de transferencia de paquetes sobre la base de dicha adaptación.
Según la presente invención, el parámetro, o parámetros, comprende(n) una magnitud de desplazamiento mínimo, que indica una diferencia entre el tiempo de muestreo y el tiempo de transmisión de un paquete en el servidor, a fin de permitir que el servidor lleve a cabo dicha adaptación sobre la base de la magnitud de desplazamiento mínimo.
Según la presente invención, el parámetro, o parámetros, comprende(n) una magnitud de desplazamiento objetivo, que indica una magnitud de desplazamiento mayor que una diferencia entre el tiempo de muestreo y el tiempo de transmisión de un paquete en el servidor, a fin de permitir que el servidor lleve a cabo dicha adaptación sobre la base de la magnitud de desplazamiento deseado.
Según la presente invención, el parámetro, o parámetros, comprende(n) un número que especifica una diferencia máxima entre el número de octetos que han sido enviados y el número de octetos que han sido muestreados, a fin de permitir que el servidor lleve a cabo dicha adaptación.
Según la presente invención, dicha adaptación en el servidor se lleva a cabo ajustando la tasa de transmisión, o la tasa de transmisión de muestreo, o ambas.
Según la presente invención, el parámetro, o parámetros, comprende(n) una magnitud de desplazamiento temporal para impedir la perturbación de la reproducción en el cliente.
Según la presente invención, el procedimiento comprende adicionalmente la etapa de adaptar una tasa de transmisión de muestreo a la tasa de transmisión en el servidor, sobre la base de dicho(s) parámetro(s).
Según la presente invención, dos o más valores, entre la magnitud de desplazamiento mínimo, la magnitud de desplazamiento deseado, el número especificador y la señal de reloj, se envían juntos al servidor.
El segundo aspecto de la presente invención proporciona un sistema de flujo multimedia. El sistema comprende:
al menos un cliente; y
un servidor para proporcionar datos de flujos al cliente, teniendo el cliente un almacén temporal receptor para compensar una diferencia entre la magnitud de la transmisión de datos por parte del servidor y la magnitud del empleo de datos por parte del cliente, a fin de permitir que el cliente tenga una cantidad suficiente de datos de flujos para reproducir, de manera libre de perturbaciones, en donde el cliente comprende:
un mecanismo para definir al menos un parámetro para determinar una gama operativa de adaptación de tasa de transmisiones, a fin de permitir que el servidor adapte una cantidad de datos a una tasa de transmisión de recepción sobre la base de dicho(s) parámetro(s); y
un mecanismo para ajustar una variación del retardo de transferencia de paquetes, sobre la base de dicha adaptación.
Según la presente invención, dicho(s) parámetro(s) puede(n) incluir una magnitud de desplazamiento mínimo, que indica una diferencia entre el tiempo de muestreo y el tiempo de transmisión de un paquete en el servidor, a fin de permitir que el servidor lleve a cabo dicha adaptación sobre la base de la magnitud de desplazamiento mínimo; una magnitud de desplazamiento deseado, que indica una magnitud de desplazamiento mayor que una diferencia entre el tiempo de muestreo y el tiempo de transmisión de un paquete en el servidor, a fin de permitir que el servidor lleve a cabo dicha adaptación, sobre la base de la magnitud de desplazamiento deseado; un número que especifica una diferencia máxima entre el número de octetos que han sido enviados y el número de octetos que han sido muestreados; y una magnitud de desplazamiento temporal para impedir la perturbación de la reproducción en el
cliente.
Según la presente invención, el servidor comprende un mecanismo de adaptación para adaptar una tasa de transmisión de muestreo a una tasa de transmisión, sobre la base de dicho(s) parámetro(s).
El tercer aspecto de la presente invención proporciona un producto de software para su uso en un cliente en una red de flujo multimedia, a fin de controlar de manera adaptable el nivel de un almacén temporal receptor en el cliente, comprendiendo la red de flujo multimedia un servidor capaz de proporcionar datos de flujos al cliente, en donde el almacén temporal receptor se utiliza para compensar la diferencia entre la magnitud de la transmisión de datos por parte del servidor y la magnitud del empleo de datos por parte del cliente, a fin de permitir que el cliente tenga una cantidad suficiente de datos de flujos para reproducir de manera libre de perturbaciones, comprendiendo dicho producto de software:
un código para definir al menos un parámetro para determinar una gama operativa de adaptación de tasa de transmisiones en el servidor, a fin de llevar a cabo la adaptación de tasa de transmisiones entre el servidor y el cliente; y
un código para ajustar una variación del retardo de transferencia de paquetes sobre la base de dicha adaptación.
Según la presente invención, dicho(s) parámetro(s) puede(n) incluir una magnitud de desplazamiento mínimo, que indica una diferencia entre el tiempo de muestreo y el tiempo de transmisión de un paquete en el servidor; una magnitud de desplazamiento deseado, que indica una magnitud de desplazamiento mayor que una diferencia entre el tiempo de muestreo y el tiempo de transmisión de un paquete en el servidor; un número que especifica una diferencia máxima entre el número de octetos que han sido enviados y el número de octetos que han sido muestreados; y una magnitud de desplazamiento temporal para impedir la perturbación de la reproducción en el cliente.
El cuarto aspecto de la presente invención proporciona un terminal en una red de flujo multimedia, con al menos un servidor para proporcionar datos de flujos al terminal, teniendo el terminal un almacén temporal receptor para compensar la diferencia entre la magnitud de la transmisión de datos por parte del servidor y la magnitud del empleo de datos por parte del terminal, a fin de permitir que el terminal tenga una cantidad suficiente de datos de flujos para reproducir de manera libre de perturbaciones. El terminal comprende:
un mecanismo para definir al menos un parámetro que determine una gama operativa de adaptación de tasa de transmisiones en el servidor, a fin de permitir que el servidor adapte la magnitud de la transmisión de datos a una tasa de transmisión de recepción, sobre la base de dicho(s) parámetro(s); y
un mecanismo para ajustar una variación del retardo de transferencia de paquetes sobre la base de dicha adaptación.
Según la presente invención, el mecanismo de definición comprende un programa de software con al menos un código para definir dicho(s) parámetro(s), y el mecanismo de ajuste comprende un programa de software con al menos un código para ajustar la variación del retardo de transferencia de paquetes.
El quinto aspecto de la presente invención proporciona un elemento de red en la red de flujo multimedia, con al menos un terminal que recibe datos de flujos desde el elemento de red, teniendo el terminal un almacén temporal receptor para compensar la diferencia entre la magnitud de la transmisión de datos por parte del elemento de red y la magnitud del empleo de datos por parte del terminal, a fin de permitir que el terminal tenga una cantidad suficiente de datos de flujos para reproducir de forma libre de perturbaciones. El elemento de red comprende:
medios para recibir una solicitud desde el terminal, indicando la solicitud al menos un parámetro que determina una gama operativa de adaptación de tasa de transmisiones en el elemento de red; y
un mecanismo para adaptar, sobre la base de dicho(s) parámetro(s), la magnitud de la transmisión de datos a una tasa de transmisión de recepción por parte del terminal, a fin de permitir que el terminal ajuste una variación del retardo de transferencia de paquetes sobre la base de dicha adaptación.
Según la presente invención, el mecanismo de adaptación comprende un programa de software con al menos un código para adaptar la magnitud de la transmisión de datos.
Según la presente invención, el programa de software comprende un código para ajustar la tasa de transmisión de transmisión, o la tasa de transmisión de muestreo, o ambas.
La presente invención será evidente al leer la descripción, conjuntamente con las Figuras 1 a 3.
Breve descripción de los dibujos
La Figura 1 es un gráfico que define parámetros con respecto a curvas de muestreo y transmisión.
La Figura 2 es un gráfico que ilustra un traspaso y su efecto sobre el nivel del almacén temporal receptor para ciertos parámetros de desplazamiento.
La Figura 3 es un diagrama en bloques que muestra un sistema de flujo multimedia con un dispositivo servidor y un dispositivo cliente, que pueden llevar a cabo el procedimiento de adaptación de tasa de transmisiones, según la presente invención.
Descripción detallada de la invención
A fin de especificar cuál es el desplazamiento mínimo y máximo que se permite para cada paquete que envía el servidor, la presente invención define el "desplazamiento" utilizando un modelo de adaptación de tasa de transmisiones según lo siguiente.
Un modelo cooperativo de adaptación de tasa de transmisiones
La diferencia temporal \alpha entre la hora de muestreo (es decir, el sello temporal) de los medios en un paquete del RTP (Protocolo de Tiempo Real) y la hora de transmisión del paquete (es decir, cuando es enviado por el servidor) se define como el "desplazamiento". Remitiéndose a las curvas de muestreo (S) y de transmisión (T), un desplazamiento \alpha puede expresarse como T(t) = S(t+ \alpha).
El desplazamiento es un valor positivo cuando la hora de muestreo del paquete es posterior a la hora de transmisión del paquete.
El desplazamiento es un valor negativo cuando la hora de muestreo del paquete es anterior a la hora de transmisión del paquete.
Estando establecida la definición del "desplazamiento", los parámetros de desplazamiento mínimo y máximo se definen según lo siguiente.
B. Parámetros de la gama operativa de adaptación de la tasa de transmisión del servidor
Los parámetros de la gama operativa de adaptación de tasa de transmisiones se definen según lo siguiente.
1) Desplazamiento deseado
Este parámetro define el desplazamiento más pequeño que puede utilizar el transmisor. Da, a la hora t de transmisión, la más antigua hora de muestreo admisible que puede enviarse. Si este parámetro es \alpha_mín, el transmisor debe estar enviando en el tiempo t un paquete cuya hora de muestreo no sea anterior a t+\alpha_mín.
Al tener este límite máximo sobre la hora más tardía en que pueden enviarse los paquetes, en comparación con su hora de muestreo, la reproducción en tiempo real puede mantenerse en el receptor. El receptor puede estimar la cantidad máxima de tiempo que tiene para permitir la espera de paquetes a fin de evitar el retardo de la reproducción (es decir, ningún infrallenado del almacén temporal receptor).
El retardo inicial del almacenamiento temporal receptor (es decir, previo a la ocupación) debe calcularse para admitir el desplazamiento mínimo y, además, para compensar la variación del retardo de transferencia de paquetes. Como ejemplo, supongamos que el desplazamiento mínimo es de -2.000 ms. Esto significa que, cuando el transmisor envía un paquete, la hora de muestreo del paquete puede ser, a lo sumo, anterior en 2 segundos en comparación con su hora de transmisión, pero no más. A fin de evitar el infrallenado del almacén temporal receptor, el receptor almacenaría inicialmente durante la máxima variación esperada del retardo de transferencia de paquetes, más 2 segundos. Cuando menor sea el valor (negativo), mayor la necesidad de almacenamiento temporal inicial en el receptor.
Cuando el receptor detecta una deriva del reloj (es decir, la desviación de la curva de reproducción del receptor con respecto a la curva de muestreo mantenida en el transmisor), el parámetro de desplazamiento mínimo puede modificarse para forzar al servidor a seguir la curva de reproducción con las horas de transmisión de paquetes. Por ejemplo, si el receptor es más veloz, reproduciría datos a una tasa de transmisión mayor que aquella a la que son muestreados. Esto llevaría, en última instancia, al infrallenado del almacén temporal. Solicitando que el transmisor aumente su desplazamiento mínimo, el infrallenado puede evitarse.
Si el receptor es más lento que el transmisor, el desplazamiento mínimo debería disminuirse. Si el receptor es más veloz que el transmisor, debería aumentarse.
El valor inicial del desplazamiento mínimo sería habitualmente negativo, pero el receptor puede modificarlo para que también se torne positivo. Por ejemplo, en el caso de un receptor más veloz (es decir, un reloj de reproducción más veloz), según aumente el desplazamiento mínimo, puede hacerse positivo eventualmente. Por ejemplo, si el valor inicial es de -2 segundos, el transmisor puede solicitar posteriormente que el desplazamiento sea de -1,9 segundos, luego de -1,7 segundos, etc.
2) Desplazamiento objetivo
Este parámetro define el desplazamiento que el cliente desearía ver alcanzado por parte del transmisor. Si este parámetro es \alpha_objetivo, el transmisor debería estar enviando, en el tiempo t, un paquete cuya hora de muestreo sea t+\alpha_objetivo.
El desplazamiento objetivo siempre debe ser mayor que el desplazamiento mínimo anteriormente definido. Por definición, si el transmisor envía un paquete según el desplazamiento objetivo, obviamente también lo hace conforme al desplazamiento mínimo.
El desplazamiento objetivo está concebido para reducir la necesidad de disminuir la tasa de transmisión de muestreo cuando la tasa de transmisión debe reducirse abruptamente (p. ej., durante un traspaso), satisfaciendo a la vez las restricciones de tiempo real (es decir, el desplazamiento mínimo). En otras palabras, el desplazamiento mínimo está concebido para que el transmisor envíe paquetes antes de lo estrictamente necesario para satisfacer condiciones de tiempo real, cuando la tasa de transmisión es lo bastante buena.
A fin de explicar mejor el empleo de este segundo parámetro, supongamos que el transmisor funciona cerca del desplazamiento mínimo. Supongamos ahora que la tasa de transmisión disminuye significativamente (esto podría ser debido, p. ej., a traspasos o retransmisiones del RTP que reducirían la tasa de transmisión de bits disponible para el flujo original). A fin de garantizar el desplazamiento mínimo (y, por ello, el tiempo real), el transmisor también tendría que reducir marcadamente su tasa de transmisión de muestreo. Esto causaría una reducción de la calidad, ya que el transmisor, por ejemplo, puede verse forzado a saltear tramas a fin de lograr la reducción de la tasa de transmisión de muestreo.
En caso de que el transmisor funcione cerca del desplazamiento objetivo, cuando la tasa de transmisión disminuye, no es necesario que la reducción de la tasa de transmisión de muestreo sea tan aguda como la reducción de la tasa de transmisión. El transmisor que reduce la tasa de transmisión sin reducir la tasa de transmisión de muestreo disminuirá el desplazamiento efectivo por debajo del desplazamiento objetivo, pero aún puede mantenerse el desplazamiento mínimo sin tener que reducir la tasa de transmisión de muestreo tan drásticamente como la disminución observada en la tasa de transmisión.
Después de haberse visto forzado a reducir su desplazamiento, el servidor debería reconstruir su desplazamiento objetivo cuando la tasa de transmisión vuelve a aumentar. A fin de lograr el desplazamiento objetivo señalizado por el receptor, el transmisor puede utilizar una combinación de aumento de la tasa de transmisión y disminución de la tasa de transmisión de muestreo (o disminución de la tasa de transmisión de transmisión y aumento de la tasa de transmisión de muestreo), según las restricciones actuales de la tasa de transmisión.
Al tener el desplazamiento objetivo definido de esta manera, se elimina la necesidad de que el receptor "ordene" al servidor que reduzca primero y aumente luego nuevamente el desplazamiento al tratar una disminución drástica de la tasa de transmisión. El mismo transmisor decide disminuir el desplazamiento desde, pero luego aumenta nuevamente el desplazamiento hacia, el desplazamiento objetivo que había sido señalizado previamente por el receptor.
Por esta razón, este planteo puede decirse proactivo. No es necesario que tenga lugar ninguna señalización (de desplazamiento) en el tiempo en que disminuye la tasa de transmisión.
3) Número máximo de octetos de envío anticipado
Este parámetro define la máxima diferencia entre el número de octetos que han sido enviados en el tiempo t y el número de octetos que han sido muestreados hasta el tiempo t de muestreo (es decir, la diferencia entre la curva de transmisión y la curva de muestreo: T(t)-S(t)). Este parámetro limita el tamaño necesario del almacén temporal en el receptor, para contener los paquetes que fueron recibidos como resultado de un desplazamiento positivo, y para los cuales el receptor debe esperar, por ello, su tiempo de reproducción. El objetivo de este parámetro es impedir el desborde del almacén temporal.
Estos parámetros se ilustran en la Figura 1 con un ejemplo de una curva de transmisión T(t) y una curva de muestreo S(t).
\vskip1.000000\baselineskip
C. Requisitos de conformidad del servidor a los parámetros de la gama operativa de adaptación de tasa de transmisiones
El servidor debe observar una estricta conformidad con los parámetros del "desplazamiento mínimo" y del "máximo número de octetos de envío anticipado". De esta manera, el servidor intentará funcionar en condiciones de transmisión normales, tan cerca del "desplazamiento objetivo" como lo permitan sus capacidades y la codificación de medios disponible.
Debido a la posible variación de la tasa de transmisión de codificación de medios a lo largo del tiempo, el "desplazamiento objetivo" no puede ser observado exactamente por el servidor para todos los paquetes enviados. La desviación con respecto al "desplazamiento objetivo" se deja al arbitrio del servidor en condiciones de transmisión donde juzgara que el estricto cumplimiento del "desplazamiento objetivo" daría como resultado una degradación innecesaria de la calidad (véanse los ejemplos de casos de uso más adelante). También queda para la decisión, o capacidades, del servidor determinar cuán rápidamente se recupera el "desplazamiento objetivo" después de tal desviación.
En todo caso de conflicto entre los parámetros de "desplazamiento objetivo" y "número máximo de octetos de envío adelantado" (es decir, si mantener el desplazamiento objetivo tendría como resultado superar el número máximo de octetos de envío adelantado), éste último prevalece.
\vskip1.000000\baselineskip
D. Clasificación de la división de responsabilidad entre el servidor y el cliente
La clave para mantener la reproducción ininterrumpida es la gestión eficiente del nivel del almacén temporal receptor. Esto puede lograrse teniendo un control, al menos implícito o estimado, tanto sobre la curva de reproducción como sobre la curva de recepción en el cliente. El cliente, por definición, conoce y controla la planificación de descodificación/reproducción. Al habilitar la introducción del control del desplazamiento por parte del transmisor, se da al cliente un control al menos estimado de la curva receptora y de su relación con la curva de muestreo y, por ello, se le da el control del nivel del almacén temporal receptor.
En consecuencia, el cliente escoge y solicita los parámetros de desplazamiento considerando sus limitaciones de almacenamiento temporal absoluto. En este modelo cooperativo de adaptación de tasa de transmisiones, el receptor solicita sólo los parámetros de desplazamiento y queda al criterio del transmisor cómo adaptar su tasa de transmisión de codificación y/o tasa de transmisión de transmisión al responder a la solicitud. Pueden adaptarse bien la curva de transmisión, o bien la curva de muestreo, o bien una combinación de ambas.
\vskip1.000000\baselineskip
Sin embargo, el control de la tasa de transmisión de muestreo (es decir, la selección del flujo de bits para su transmisión) se deja bajo el control del servidor porque:
-
Es sólo el servidor quien sabe de las características exactas de cada flujo de bits, p. ej., las posiciones de conmutación, la prioridad de las tramas y los tamaños de tramas futuras.
-
Podría no haber una tasa de transmisión del flujo de bits que se corresponda con la tasa de transmisión de bits de la red, por lo que el servidor podría hacer algunos "trucos" (p. ej., ralear, acelerar o desacelerar) a fin de acomodar la tasa de transmisión del flujo de bits a la tasa de transmisión de bits de la red.
\vskip1.000000\baselineskip
El control de la tasa de transmisión (es decir, la tasa de transmisión a la cual se transmite) también se deja bajo el control del servidor (es decir, la utilización de informes RR del RTCP) porque:
-
En el caso general, es sólo el servidor quien puede medir la cantidad de datos en camino.
-
Podría haber una necesidad de acoplar la tasa de transmisión con la tasa de transmisión de muestreo si el control de la tasa de transmisión de muestreo tiene flexibilidad limitada.
El transmisor está limitado al intentar efectuar la adaptación por:
-
Modificación de la curva de transmisión: la curva de transmisión está restringida por la curva de recepción y, por ello, el transmisor puede no ser capaz de aumentarla. Podría aumentarla sólo si no estuviera utilizando previamente todo su ancho de banda disponible. Por ejemplo, un servidor puede estar utilizando el mecanismo TFRC (Control de Tasa de transmisión Amistoso del Protocolo de Control de Transmisión) (o recibiendo una información explícita de ancho de banda mediante señalización del receptor) para calcular su tasa de transmisión de transmisión admisible, y no incrementará su tasa de transmisión por encima de la tasa de transmisión que el TFRC (o el ancho de banda efectivo señalizado) tolera.
-
Modificación de la curva de muestreo: depende de la capacidad de adaptación de tasa de transmisión del transmisor. Por ejemplo, si en transmisor implementa la conmutación del flujo de bits, y si el servidor está transmitiendo a su mínimo (o máximo) flujo de bits, no podría reducir (o aumentar) adicionalmente la tasa de transmisión de muestreo.
\vskip1.000000\baselineskip
E. Casos de uso
Según la presente invención, los parámetros de la gama operativa de adaptación de tasa de transmisiones del servidor se negocian entre el servidor y el receptor, a fin de minimizar las ocurrencias de infrallenado, desborde y degradación de la calidad en casos tales como los traspasos, la retransmisión y la deriva del reloj.
En el caso de la transmisión de paquetes del RTP, el receptor es capaz de escoger el número de retransmisiones de paquetes que desea efectuar, y el retardo que tolerará para la retransmisión.
En el caso de traspasos, el receptor puede derivar, a partir del tipo de red de radio, por ejemplo, la longitud de traspaso que espera y, por ello, el desplazamiento objetivo requerido. El receptor sabe más del enlace de radio y también puede detectar un traspaso entre sistemas y la necesidad de adaptar en consecuencia los parámetros de desplazamiento del reloj.
El receptor puede compensar la deriva del reloj con el transmisor, actualizando los parámetros de desplazamiento del reloj.
\vskip1.000000\baselineskip
Retransmisión del RTP
Antes de realizar una solicitud de retransmisión, el receptor necesita, habitualmente, estimar si un paquete retransmitido llegará antes de su hora de reproducción. Si el paquete no llega, la retransmisión malgasta el ancho de banda disponible.
El transmisor conoce la hora de muestreo de los paquetes que deben programarse, al menos, con el desplazamiento \alpha_mín, a fin de satisfacer las restricciones de tiempo real en el receptor.
Un paquete de retransmisión no es, en este aspecto, distinto a un paquete que se envía por primera vez. Dado que el desplazamiento mínimo indica el umbral de infrallenado en el receptor, el transmisor no debería retransmitir un paquete si su sello temporal es anterior a t+\alpha_mín, donde t es la hora actual.
La señalización del parámetro de desplazamiento, de esta manera, hace que la retransmisión de paquetes sea más eficiente, dejando que el transmisor no retransmita paquetes que no llegarán al receptor antes de su hora de descodificación, y cuya retransmisión malgastaría el ancho de banda disponible. El receptor no necesita ser extremadamente conservador en su estimación de si un paquete faltante podría ser recibido antes de su reproducción. Una estimación errónea no tendrá ningún efecto (además de la solicitud inútil), como si el servidor no retransmitiese el
paquete.
El receptor también es capaz de equilibrar el número de transmisiones que querría efectuar durante el desplazamiento objetivo. Cuanto mayor sea el valor del desplazamiento objetivo, más paquetes se enviarán por adelantado (y mayor será el nivel del almacén temporal receptor) mientras las condiciones de red sean buenas. Esto, a su vez, dará más tiempo para retransmisiones cuando las condiciones de red empeoren.
Aquí el desplazamiento del reloj es nuevamente proactivo. El receptor no necesita sincronizar la solicitud de desplazamiento con la solicitud del RTCP.
\vskip1.000000\baselineskip
Traspasos
La señalización del desplazamiento temporal puede utilizarse como una herramienta para impedir la perturbación de la reproducción en el receptor, debido a un traspaso.
Supongamos que el receptor está conectado con una red y que sabe que la duración esperada del traspaso para esta red es T_{H}. Supongamos que el receptor establece que su desplazamiento objetivo sea mayor, al menos en T_{H}, que el desplazamiento mínimo, es decir, \alpha_objetivo > \alpha_mín+T_{H}.
Antes del traspaso, el transmisor satisface el desplazamiento objetivo enviando los paquetes temprano. Cuando el transmisor detecta el traspaso, debería dejar de transmitir (y evitar así la pérdida de paquetes debida al desborde del almacén temporal de la red). Durante el traspaso, el reloj avanza, mientras que no se envía ningún dato nuevo. Como consecuencia de ello, el traspaso reduce el desplazamiento en la magnitud temporal T_{H} (suponiendo que el traspaso haya durado exactamente T_{H}). Como el transmisor estaba funcionando con el desplazamiento objetivo antes del traspaso, el desplazamiento después del traspaso será \alpha_objetivo - T_{H}.
Este valor es aún más que el desplazamiento mínimo \alpha_mín. Esto significa que aún se satisface la condición de tiempo real y que no hubo infrallenado en el receptor. Durante el traspaso, el receptor es capaz de reproducir los paquetes que fueron enviados por el transmisor según el desplazamiento objetivo, y sin una degradación significativa de la calidad.
Después del traspaso, el transmisor reconstruirá el desplazamiento objetivo según aumenta nuevamente su tasa de transmisión. No se necesita ninguna nueva señalización.
El receptor señalizaría un nuevo parámetro de desplazamiento sólo si quisiera aumentar su desplazamiento objetivo, a fin de aumentar adicionalmente la duración del traspaso que puede tolerar. Este podría ser el caso, en particular, si hay un traspaso a una red de tipo distinto, con distinta duración esperada de traspaso.
El transmisor, por supuesto, necesita poder detectar el traspaso. El transmisor, normalmente, detectaría el traspaso al no recibir paquetes de RTCP durante varios intervalos del RTCP. A fin de que el transmisor pueda detectar el traspaso tan pronto como sea posible, el receptor debería enviar un paquete temprano de retroalimentación si el AVPF está disponible. El AVPF es un perfil extendido para la retroalimentación basada en el RTCP.
Si el receptor envía los parámetros por RTSP, podría enviar una nueva solicitud después del traspaso (con los mismos parámetros, o valores actualizados). Esto ayudaría al transmisor a detectar más rápidamente que el traspaso ha acabado si no está disponible la retroalimentación del RTCP.
El traspaso, y su efecto sobre el nivel del almacén temporal, se ilustran en la Figura 2. En este ejemplo, durante el traspaso, el nivel del almacén temporal disminuyó, pero no hubo infrallenado. Después del traspaso, el transmisor reconstruirá por sí mismo el valor objetivo inicial \alpha_objetivo. Sin embargo, como el almacén temporal casi se vació durante el traspaso, el receptor podría escoger señalizar un valor objetivo mayor una vez que el traspaso ha acabado. Esto puede ser porque el primer traspaso es más prolongado de lo que el receptor esperaba inicialmente, y quiere asegurarse de que puede brindar soporte a traspasos más prolongados en el futuro. La señalización del nuevo valor objetivo, y su efecto sobre las curvas, se muestran en la figura.
\vskip1.000000\baselineskip
Deriva del reloj
Debido a la deriva del reloj entre el transmisor y el receptor, o a otras razones cualesquiera (tales como un lento sistema operativo de la plataforma del cliente), el transmisor puede parecer demasiado lento o demasiado veloz para el receptor. La deriva puede corregirse enviando nuevos parámetros de desplazamiento.
Por ejemplo, en el caso de un receptor lento, el receptor podría solicitar periódicamente una reducción del valor de desplazamiento mínimo.
\vskip1.000000\baselineskip
F. Formato y transporte de mensajes
Una nueva cabecera del RTSP puede definirse como "Parámetros-Desplazamiento-3GPP". Esta cabecera puede utilizarse en solicitudes del cliente para señalizar los parámetros de desplazamiento solicitados por el cliente.
Si la solicitud se aplica al URL (localizador uniforme de recursos) del RTSP del nivel de sesión, el desplazamiento debería aplicarse a todos los medios en la sesión. Si la solicitud se aplica a un URL del RTSP del nivel de medio, el desplazamiento debería aplicarse sólo a este medio. El transmisor también utiliza los "Parámetros-Desplazamiento-3GPP" en su respuesta. Los parámetros pueden ser los parámetros solicitados por el cliente. Sin embargo, el transmisor puede devolver parámetros que sólo están lo más cerca posible de los parámetros solicitados (debido a la capacidad limitada del transmisor).
Esta nueva cabecera puede enviarse con cualquier procedimiento del RTSP.
\newpage
La ABNF (Forma Normal de Backus Aumentada) para esta cabecera del RTP se muestra a continuación:
100
La primera vez el cliente envía todos los parámetros. En las siguientes solicitudes, el cliente puede enviar sólo el parámetro, o parámetros, que solicita cambiar.
Si el cambio es aceptable, el servidor no necesita enviar la cabecera si todos los parámetros han sido fijados según lo solicitado por el receptor.
Si una nueva solicitud es recibida por el servidor antes de que se complete la solicitud anterior, el servidor debería cumplimentar la solicitud más reciente.
El transmisor también puede señalizar al receptor, al comienzo de la sesión, los parámetros que el transmisor prefiere utilizar. El receptor toma estos parámetros en cuenta al escoger qué valores solicitar de los parámetros.
Aunque el procedimiento preferido para señalizar los parámetros es con el RTSP, podría emplearse un protocolo de transporte no fiable tal como el RTCP.
La Figura 3 es un diagrama en bloques que ilustra un sistema 1 de flujo multimedia en una red de flujos según la presente invención, en el cual se proporcionan medios para señalizar parámetros que determinan la gama operativa de adaptación de tasa de transmisiones para un elemento de red o servidor 10 de flujos, según lo negociado entre un terminal o cliente 60 de flujos con el servidor 10 de flujos.
El servidor 10 de flujos comprende un motor 20 de señalización a nivel de aplicación, un controlador 30 de tasa de transmisión y un almacén temporal 40 del servidor. El cliente 60 de flujos comprende un motor 70 de señalización a nivel de aplicación, correspondiente a, y adaptado para comunicarse con, el motor 20 de señalización a nivel de aplicación en el servidor 10 de flujos. Comprende adicionalmente un almacén temporal 80 del cliente que, en la realización de la invención ilustrada en la Figura 3, comprende un almacén temporal 82 de arritmia y un almacén temporal 84 previo a la descodificación, integrados como una única unidad. En otras realizaciones de la invención, el cliente 60 de flujos puede incluir un almacén temporal de arritmia y un almacén temporal previo a la descodificación, que se implementan por separado. El cliente de flujos comprende adicionalmente un descodificador 90 de medios, un almacén temporal 100 posterior al descodificador, un controlador 110 de almacén temporal y un dispositivo 120 de visualización/reproducción.
Se muestra adicionalmente que el sistema ilustrado en la Figura 3 comprende un "almacén temporal de canal" 50 situado entre el servidor 10 de flujos y el cliente 60 de flujos, que representa el retardo variable de transferencia que tiene lugar durante la transmisión de paquetes de datos desde el servidor de flujos al cliente.
En el cliente 60 de flujos, los datos de medios se reciben desde el canal de transmisión y se almacenan temporalmente en el almacén temporal 80 del cliente. Los parámetros del almacén temporal 84 previo al descodificador y el almacén temporal 82 de arritmia son fijados por el controlador 110 de almacenamiento temporal. Los parámetros se escogen como una conjunción de los parámetros de almacenamiento temporal previo al descodificador, recomendados para el servidor, y del almacenamiento temporal adicional requerido, según lo estimado por el cliente. El cliente estima lo que se necesita para tolerar la variación esperada del retardo de transferencia de paquetes (es decir, la arritmia) por el canal de transmisión disponible. Tal conjunción está restringida por las máximas capacidades de almacenamiento temporal del cliente. El descodificador 90 de medios extrae datos de medios del almacén temporal del cliente y descodifica los datos de medios de una manera adecuada para el tipo de medio en cuestión. Debería apreciarse que los datos de medios, en general, comprenderán un cierto número de distintos tipos de medios. Por ejemplo, si los datos de medios transmitidos desde el servidor representan una secuencia de vídeo, es probable que comprendan al menos un componente de audio, además de los datos de vídeo. Por lo tanto, debería comprenderse que el descodificador 90 de medios, según se ilustra en la Figura 3, puede comprender efectivamente más de un descodificador, por ejemplo, un descodificador de vídeo implementado según un estándar específico de codificación de vídeo y un descodificador de audio asociado. Según los datos de medios son descodificados por el descodificador 90 de medios, se emiten al almacén temporal 100 posterior al descodificador, donde se almacenan temporalmente hasta su hora de reproducción programada, tiempo en el cual se pasan desde el almacén temporal posterior al descodificador al dispositivo 120 de visualización/reproducción, bajo el control del controlador 110 de almacenamiento temporal.
Según la invención, el controlador 110 de almacenamiento temporal está adaptado para proporcionar una indicación del desplazamiento mínimo, el desplazamiento objetivo y el número máximo de octetos de envío por adelantado al motor 70 de señalización a nivel de aplicación. Estos parámetros están determinados por un programa 116 de software, por ejemplo, sobre la base de las limitaciones de almacenamiento temporal del cliente, la programación de descodificación/reproducción, etc. El motor de señalización a nivel de aplicación, a su vez, está adaptado para transmitir una señal 300 que indica esos parámetros de adaptación de tasa de transmisiones de gama operativa al servidor 10 de flujos. Los parámetros se transmiten desde el cliente al servidor utilizando el Protocolo de Flujo en Tiempo Real (RTSP), por ejemplo. La cabecera del RTSP puede definirse como "Parámetros-Desplazamiento-3GPP", por ejemplo.
En la sede del servidor, el controlador 30 de tasa de transmisión del servidor está disponible para adaptar la tasa de transmisión de transmisión a la tasa de transmisión de recepción, y para adaptar la tasa de transmisión de muestreo a la tasa de transmisión, gestionando a la vez el desplazamiento y manteniéndolo dentro de la gama de adaptación de tasa de transmisiones. El servidor también tiene un reloj 32 de transmisión para poner sellos temporales a los paquetes a transmitir al cliente. El servidor, utilizando un programa 36 de software, funciona ajustando la tasa de transmisión de datos transmitidos de acuerdo a los parámetros recomendados por el cliente, variando la tasa de transmisión de bits en el canal de transmisión, y teniendo en cuenta los parámetros de desplazamiento recomendados del cliente, buscando por ello evitar pausas en la reproducción en el cliente, debidas al infrallenado del almacén temporal previo al descodificador, o la pérdida de paquetes en el cliente debido al desborde del almacén temporal.
El almacén temporal 40 del servidor almacena paquetes de datos temporalmente, antes de que se transmitan desde el servidor de flujos, por el canal de transmisión, hasta el cliente 60 de flujos. En un escenario de flujos "en vivo", donde los paquetes de datos se muestrean en tiempo real, el almacén temporal del servidor es efectivamente un almacén temporal físico donde se colocan los paquetes de datos en tiempo de muestreo, y se extraen en tiempo de transmisión. En un escenario de flujos "precodificados", donde los paquetes de datos no se muestrean en tiempo real, sino que se almacenan en un fichero precodificado y se leen del fichero en tiempo de transmisión, el almacén temporal del servidor es un almacén temporal virtual que representa la diferencia entre la hora de muestreo (con referencia a un reloj de muestreo iniciado en el servidor de flujos cuando se transmite el primer paquete de datos del fichero precodificado) y la hora de transmisión de los paquetes de datos.
El servidor también puede utilizar el motor 20 de señalización a nivel de aplicación para enviar al receptor, al comienzo de la sesión, una señal 300 que indica los parámetros que el servidor quiere utilizar. Teniendo en cuenta los parámetros indicados por la señal 300, el receptor escoge los parámetros de la gama operativa de adaptación de tasa de transmisiones del servidor. Sobre la base de la capacidad del servidor, el servidor puede utilizar la señal 300 para responder a la solicitud del cliente, devolviendo los parámetros que el servidor puede utilizar para la adaptación de tasa de transmisiones.
\vskip1.000000\baselineskip
Ventajas de la presente invención
Los procedimientos de la tecnología anterior (cabeceras del RTSP y conmutación de la tasa de transmisión de bits) tienen muchas limitaciones. Una de las limitaciones es que la cabecera de TASA DE TRANSMISIÓN puede enviarse sólo en una solicitud de REPRODUCCIÓN del RTSP.
-
La REPRODUCCIÓN no fue concebida para ser manipulada para el control del almacén temporal, sino más bien para traducir las solicitudes del usuario desde el cliente al servidor.
-
No puede esperarse que la respuesta a una nueva REPRODUCCIÓN con solicitud de Gama esté sincronizada con la posición efectiva de reproducción en el tiempo en que el servidor recibe la solicitud (es decir, es posible saltear o reenviar los datos).
-
La modificación de la tasa de transmisión, según lo solicitado por el cliente mediante la cabecera TASA DE TRANSMISIÓN del RTSP, a menudo puede no ser posible en absoluto, ya que la tasa de transmisión necesita adaptarse a la tasa de transmisión de bits disponible.
-
Funciona en el dominio de la tasa de transmisión de bits, que puede no ser directamente adaptada por el receptor al dominio temporal (es decir, la cantidad de tiempo que llevará al receptor reproducir nuevamente una cantidad dada de datos). Esto es debido a que la curva de muestreo, habitualmente, no es una línea recta.
-
Podría no haber una tasa de transmisión del flujo de bits que se adapte a la tasa de transmisión de bits en red.
-
El cliente no sabe cuánto en la disminución, o en el aumento, del nivel del almacén temporal del receptor, se debe a la variación de la tasa de transmisión de bits dentro del flujo de bits dado, o se debe a la acumulación de diferencias entre la tasa de transmisión media del flujo de datos y la tasa de transmisión.
-
Se producen conflictos entre las decisiones de modelación de curvas de muestreo en el transmisor y en el receptor, debido a que no hay separación de las tareas del servidor y del cliente. Esto debe contrastarse con la señalización del desplazamiento temporal, por lo cual hay una clara división de las responsabilidades del transmisor y del receptor. El receptor sólo modifica las restricciones en las curvas, mientras que el transmisor efectúa la modelación efectiva de las curvas a fin de satisfacer las restricciones.
La presente invención tiene las siguientes ventajas:
-
El planteo se hace funcionar de una manera más proactiva. La idea es permitir que el servidor gestione el control de tasa de transmisión de una manera menos restrictiva y más flexible, solicitando el cliente una gama operativa antes que un punto operativo estricto.
-
La gama operativa solicitada de adaptación de tasa de transmisiones del servidor está ahora definida claramente y sin ambigüedad, simplificando una implementación de servidor conforme a la invención.
-
El sobregasto de señalización del planteo se reduce disminuyendo la frecuencia y tasa de transmisión requeridas (es decir, sincronizadas con el RTP) de la señalización del cliente al servidor.
-
La fiabilidad del transporte y el correcto encauzamiento de los mensajes de solicitud de la gama operativa de adaptación de tasa de transmisiones del cliente al servidor pueden resolverse mediante el empleo de la señalización del RTSP. Esto está en la misma línea (es decir, ya no contradice) que el requisito rebajado sobre la tasa de transmisión y la frecuencia de la señalización.
En resumen, la presente invención proporciona un procedimiento y sistema para controlar de manera adaptable el nivel de un almacén temporal receptor en un terminal o cliente en una red de flujo multimedia. La red de flujo multimedia tiene un elemento o servidor de red para proporcionar datos de flujos al cliente. El servidor es responsable de adaptar la tasa de transmisión a la tasa de transmisión de recepción o al control de congestión, y de adaptar la tasa de transmisión de muestreo a la tasa de transmisión. Así, el servidor gestiona el desplazamiento y lo mantiene dentro de la gama operativa de adaptación de tasa de transmisiónes. El cliente es responsable de compensar la variación del retardo de transferencia de paquetes, que también se conoce como arritmia de red. El cliente también es responsable de establecer parámetros de la gama operativa de adaptación de tasa de transmisiones del servidor. El cliente escoge y envía los parámetros de desplazamiento al servidor, pero queda al criterio del servidor adaptar su tasa de transmisión de codificación o su tasa de transmisión al responder a los parámetros.
Aunque la invención ha sido descrita con respecto a una o más realizaciones de la misma, aquellos versados en la tecnología entenderán que lo precedente, y otros diversos cambios, omisiones y desviaciones en la forma y detalle de la misma, pueden efectuarse sin apartarse del alcance de la presente invención.

Claims (22)

1. Un procedimiento que comprende:
definir, en un cliente en una red de flujos multimedia, al menos un parámetro para determinar una gama operativa de adaptación de tasa de transmisión, en el cual la red de flujos comprende un servidor configurado para proporcionar datos de flujos al cliente, teniendo el cliente un almacén temporal receptor configurado para compensar la diferencia entre la magnitud de la transmisión de datos por parte del servidor y la magnitud del empleo de datos por parte del cliente, a fin de permitir que el cliente tenga una cantidad suficiente de datos de flujos para reproducir de manera libre de perturbaciones, y en el cual el parámetro, o parámetros, se usa(n) para la adaptación de tasa de transmisión entre el servidor y el cliente,
proporcionar al servidor información que indique al menos dicho(s) parámetro(s);
adaptar en el servidor la cantidad de datos a una tasa de transmisión de recepción, sobre la base de dicho(s) parámetro(s), y
ajustar en el cliente la variación del retardo de transferencia de paquetes sobre la base de dicha adaptación, caracterizado porque dicho(s) parámetro(s) comprende(n)
una magnitud de desplazamiento mínimo, que indica una diferencia entre el tiempo de muestreo y el tiempo de transmisión de un paquete en el servidor, o bien
una magnitud de desplazamiento objetivo, que indica una magnitud de desplazamiento mayor que una diferencia entre el tiempo de muestreo y el tiempo de transmisión de un paquete en el servidor, o bien
un número que especifica una diferencia máxima entre el número de octetos que han sido enviados y el número de octetos que han sido muestreados,
a fin de permitir que el servidor adapte una tasa de transmisión de muestreo a la tasa de transmisión en el servidor, sobre la base de dicho(s) parámetro(s).
2. Un procedimiento según la reivindicación 1, en el cual dicho(s) parámetro(s) comprende(n) una magnitud de desplazamiento temporal para impedir la perturbación de la reproducción en el cliente.
3. Un procedimiento según cualquiera de las reivindicaciones 1 a 2, en el cual dicha adaptación comprende un ajuste de una tasa de transmisión.
4. Un procedimiento según cualquiera de las reivindicaciones 1 a 3, en el cual dicha adaptación comprende un ajuste de una tasa de transmisión de muestreo.
5. Un procedimiento según cualquiera de las reivindicaciones 1 a 4, en el cual dicha adaptación comprende un ajuste tanto de una tasa de transmisión como de una tasa de transmisión de muestreo.
6. Un procedimiento según la reivindicación 1, en el cual dicho(s) parámetro(s) comprende(n):
una magnitud de desplazamiento temporal, y en el cual dos o más valores, entre la magnitud de desplazamiento mínimo, la magnitud de desplazamiento objetivo, el número especificador y la señal de reloj, se envían juntos al servidor.
7. Una red de flujos multimedia que comprende:
al menos un cliente; y
un servidor para proporcionar datos de flujos al cliente, teniendo el cliente un almacén temporal receptor para compensar la diferencia entre la magnitud de la transmisión de datos por parte del servidor y la magnitud del empleo de datos por parte del cliente, a fin de permitir que el cliente tenga una cantidad suficiente de datos de flujos para reproducir de manera libre de perturbaciones, en la que el cliente comprende:
un mecanismo para definir al menos un parámetro para determinar una gama operativa de adaptación de tasa de transmisiones, y para proporcionar información indicativa de dicho(s) parámetro(s) al servidor, a fin de permitir que el servidor adapte la magnitud de datos a una tasa de transmisión de recepción, sobre la base de dicho(s) parámetro(s); y
un mecanismo para ajustar una variación del retardo de transferencia de paquetes sobre la base de dicha adaptación, caracterizado porque dicho(s) parámetro(s) comprende(n)
una magnitud de desplazamiento mínimo que indica una diferencia entre el tiempo de muestreo y el tiempo de transmisión de un paquete en el servidor; o bien
una magnitud de desplazamiento objetivo que indica una magnitud de desplazamiento mayor que una diferencia entre el tiempo de muestreo y el tiempo de transmisión de un paquete en el servidor, o bien
un número que especifica una diferencia máxima entre el número de octetos que han sido enviados y el número de octetos que han sido muestreados,
a fin de permitir que el servidor adapte una tasa de transmisión de muestreo a la tasa de transmisión en el servidor, sobre la base de dicho(s) parámetro(s).
8. Una red de flujos multimedia según la reivindicación 7, en la cual dicho(s) parámetro(s) comprende(n) una magnitud de desplazamiento temporal para impedir la perturbación de la reproducción en el cliente.
9. Una red de flujos multimedia según cualquiera de las reivindicaciones 7 a 8, en la cual el servidor comprende un mecanismo de adaptación para ajustar una tasa de transmisión.
10. Una red de flujos multimedia según cualquiera de las reivindicaciones 7 a 9, en la cual el servidor comprende un mecanismo de adaptación para ajustar una tasa de transmisión de muestreo.
11. Una red de flujos multimedia según cualquiera de las reivindicaciones 7 a 10, en la cual el servidor comprende un mecanismo de adaptación para ajustar tanto una tasa de transmisión como una tasa de transmisión de muestreo.
12. Una red de flujo multimedia según cualquiera de las reivindicaciones 7 a 11, en la cual el servidor comprende un programa de software con al menos un código para llevar a cabo dicha adaptación.
13. Un medio legible por ordenador integrado con un programa de software, que comprende:
un código de programación para definir, en un cliente de una red de flujos multimedia, al menos un parámetro, a fin de determinar una gama operativa de adaptación de tasa de transmisiones, en el cual la red de flujos comprende un servidor configurado para proporcionar datos de flujos al cliente, teniendo el cliente un almacén temporal receptor configurado para compensar la diferencia entre la magnitud de la transmisión de datos por parte del servidor y la magnitud del empleo de datos por parte del cliente, a fin de permitir que el cliente tenga una cantidad suficiente de datos de flujos para reproducir de manera libre de perturbaciones, en el que la información indicativa de dicho(s) parámetro(s) se proporciona al servidor a fin de permitir llevar a cabo la adaptación de tasa de transmisión entre el servidor y el cliente, en base de dicho(s) parámetro(s); y
un código de programación para ajustar una variación del retardo de transferencia de paquetes en el cliente para la adaptación de tasa de transmisiones, caracterizado porque dicho(s) parámetro(s) comprende(n)
una magnitud de desplazamiento mínimo que indica una diferencia entre el tiempo de muestreo y el tiempo de transmisión de un paquete en el servidor, o bien
una magnitud de desplazamiento objetivo, que indica una magnitud de desplazamiento mayor que una diferencia entre el tiempo de muestreo y el tiempo de transmisión de un paquete en el servidor, o bien
un número que especifica una diferencia máxima entre el número de octetos que han sido enviados y el número de octetos que han sido muestreados,
a fin de permitir que el servidor adapte una tasa de transmisión de muestreo a la tasa de transmisión en el servidor, en base de dicho(s) parámetro(s).
14. El medio legible por ordenador según la reivindicación 13, en el cual dicho(s) parámetro(s) comprende(n) una magnitud de desplazamiento temporal para impedir la perturbación de la reproducción en el cliente.
15. Un dispositivo que comprende:
un almacén temporal para datos de flujos proporcionados por un servidor en una red de flujos multimedia, configurado para compensar la diferencia entre la magnitud de la transmisión de datos por parte de un servidor y la magnitud del empleo de datos en el dispositivo, de forma tal que una cantidad suficiente de datos de flujos pueda reproducirse de una manera libre de perturbaciones;
un mecanismo para definir al menos un parámetro que determine una gama operativa de adaptación de tasa de transmisiones en el servidor, a fin de permitir que el servidor adapte la magnitud de transmisión de datos a una tasa de transmisión de recepción, sobre la base de dicho(s) parámetro(s); y por
un mecanismo para ajustar una variación del retardo de transferencia de paquetes sobre la base de dicha adaptación, caracterizado porque dicho(s) parámetro(s) comprende(n)
una magnitud de desplazamiento mínimo que indica una diferencia entre el tiempo de muestreo y el tiempo de transmisión de un paquete en el servidor, o bien
una magnitud de desplazamiento objetivo, que indica una magnitud de desplazamiento mayor que una diferencia entre el tiempo de muestreo y el tiempo de transmisión de un paquete en el servidor, o bien
un número que especifica una diferencia máxima entre el número de octetos que han sido enviados y el número de octetos que han sido muestreados,
a fin de permitir que el servidor adapte una tasa de transmisión de muestreo a la tasa de transmisión en el servidor, en base de dicho(s) parámetro(s).
16. El dispositivo según la reivindicación 15, en el cual dicho mecanismo de definición comprende un programa de software con al menos un código para definir dicho(s) parámetro(s).
17. El dispositivo según la reivindicación 15 o 16, en el cual dicho mecanismo de ajuste comprende un programa de software con al menos un código para ajustar la variación del retardo de transferencia de paquetes.
18. Un elemento de red en una red de flujo multimedia, comprendiendo dicho elemento de red:
medios para recibir una solicitud de un cliente, con un almacén temporal para datos de flujos proporcionado por el elemento de red, para compensar una diferencia entre la magnitud de la transmisión de datos por parte del elemento de red y la magnitud del empleo de datos por parte del cliente, a fin de que el cliente tenga una cantidad suficiente de datos de flujos para reproducir de manera libre de perturbaciones, indicando la solicitud al menos un parámetro que determina una gama operativa de adaptación de tasa de transmisiones en el elemento de red; y
un mecanismo para adaptar, en base de dicho(s) parámetro(s), la magnitud de transmisión de datos a una tasa de transmisión de recepción por parte del terminal, a fin de permitir que el terminal ajuste una variación del retardo de transferencia de paquetes en base de dicha adaptación, caracterizado porque dicho(s) parámetro(s) comprende(n)
una magnitud de desplazamiento mínimo que indica una diferencia entre el tiempo de muestreo y el tiempo de transmisión de un paquete en el servidor, o bien
una magnitud de desplazamiento objetivo que indica una magnitud de desplazamiento mayor que una diferencia entre el tiempo de muestreo y el tiempo de transmisión de un paquete en el servidor, o bien
un número que especifica una diferencia máxima entre el número de octetos que han sido enviados y el número de octetos que han sido muestreados,
a fin de permitir que el servidor adapte una tasa de transmisión de muestreo a la tasa de transmisión en el servidor, en base de dicho(s) parámetro(s).
19. Un elemento de red según la reivindicación 18, en el cual dicho mecanismo de adaptación comprende un programa de software con al menos un código para adaptar la magnitud de transmisión de datos.
20. Un elemento de red según la reivindicación 18, en el cual el programa de software comprende un código para ajustar la tasa de transmisión.
21. Un elemento de red según la reivindicación 19 o 20, en el cual el programa de software comprende un código para ajustar una tasa de transmisión de muestreo.
22. Un elemento de red según cualquiera de las reivindicaciones 19 a 21, en el cual el programa de software comprende un código para ajustar tanto una tasa de transmisión como una tasa de transmisión de muestreo.
ES04729160T 2003-04-24 2004-04-23 Procedimiento y dispositivo para la señalizacion proactiva de la adaptacion de tasa de transmision. Expired - Lifetime ES2332315T3 (es)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US46512003P 2003-04-24 2003-04-24
US465120P 2003-04-24
US10/826,687 US7844727B2 (en) 2003-04-24 2004-04-16 Method and device for proactive rate adaptation signaling
US826687 2004-04-16

Publications (1)

Publication Number Publication Date
ES2332315T3 true ES2332315T3 (es) 2010-02-02

Family

ID=33423544

Family Applications (1)

Application Number Title Priority Date Filing Date
ES04729160T Expired - Lifetime ES2332315T3 (es) 2003-04-24 2004-04-23 Procedimiento y dispositivo para la señalizacion proactiva de la adaptacion de tasa de transmision.

Country Status (13)

Country Link
US (1) US7844727B2 (es)
EP (1) EP1616267B1 (es)
JP (1) JP4347883B2 (es)
KR (1) KR20060011964A (es)
AT (1) ATE446631T1 (es)
DE (1) DE602004023710D1 (es)
DK (1) DK1616267T3 (es)
ES (1) ES2332315T3 (es)
MX (1) MXPA05011247A (es)
MY (1) MY140711A (es)
RU (1) RU2367011C2 (es)
TW (1) TWI266201B (es)
WO (1) WO2004097660A1 (es)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1593046A2 (en) * 2003-02-13 2005-11-09 Nokia Corporation Rate adaptation method and device in multimedia streaming
FR2857198B1 (fr) * 2003-07-03 2005-08-26 Canon Kk Optimisation de qualite de service dans la distribution de flux de donnees numeriques
JP4183586B2 (ja) * 2003-09-12 2008-11-19 三洋電機株式会社 映像表示装置
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
US7571246B2 (en) * 2004-07-29 2009-08-04 Microsoft Corporation Media transrating over a bandwidth-limited network
US7543073B2 (en) * 2004-12-10 2009-06-02 Microsoft Corporation System and process for performing an exponentially weighted moving average on streaming data to establish a moving average bit rate
US20060143678A1 (en) * 2004-12-10 2006-06-29 Microsoft Corporation System and process for controlling the coding bit rate of streaming media data employing a linear quadratic control technique and leaky bucket model
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
KR20060065482A (ko) * 2004-12-10 2006-06-14 마이크로소프트 코포레이션 스트리밍 미디어 데이터의 코딩 비트 레이트의 제어 시스템및 프로세스
TWI401918B (zh) * 2005-02-03 2013-07-11 Nokia Corp 傳送指示接收器緩衝架構之緩衝參數信號的通訊方法
US20060184697A1 (en) * 2005-02-11 2006-08-17 Microsoft Corporation Detecting clock drift in networked devices through monitoring client buffer fullness
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
US8683066B2 (en) 2007-08-06 2014-03-25 DISH Digital L.L.C. Apparatus, system, and method for multi-bitrate content streaming
JP4274149B2 (ja) * 2005-05-19 2009-06-03 ソニー株式会社 コンテンツ再生装置及びコンテンツ再生方法
US7743183B2 (en) 2005-05-23 2010-06-22 Microsoft Corporation Flow control for media streaming
US8214516B2 (en) * 2006-01-06 2012-07-03 Google Inc. Dynamic media serving infrastructure
US7962637B2 (en) * 2006-11-03 2011-06-14 Apple Computer, Inc. Dynamic adjustments of video streams
KR100899659B1 (ko) * 2006-12-01 2009-05-27 한국전자통신연구원 패킷 스케줄러 및 패킷 스케줄링 방법
RU2380839C2 (ru) * 2007-03-21 2010-01-27 Общество с ограниченной ответственностью "Линкстрим" Способ адаптивного управления передачей потоковых медиаданных
FR2923118B1 (fr) * 2007-10-30 2016-04-01 Canon Kk Procede, dispositif et programme d'ordinateur pour la gestion de la quantite de donnees emises par un dispositif d'emission
US8370622B1 (en) * 2007-12-31 2013-02-05 Rockstar Consortium Us Lp Method and apparatus for increasing the output of a cryptographic system
US8305899B2 (en) * 2008-05-28 2012-11-06 Microsoft Corporation Pull-based data transmission approach
KR20110045086A (ko) * 2008-08-28 2011-05-03 쿄세라 코포레이션 무선 단말 및 통신 단말
CA2759880C (en) * 2009-03-23 2013-09-24 Azuki Systems, Inc. Method and system for efficient streaming video dynamic rate adaptation
KR20110065100A (ko) * 2009-12-09 2011-06-15 삼성전자주식회사 멀티미디어 스트리밍 서비스를 지원하는 방법 및 장치
WO2011102791A1 (en) * 2010-02-19 2011-08-25 Telefonaktiebolaget L M Ericsson (Publ) Method and arrangement for representation switching in http streaming
US9439100B2 (en) * 2012-06-27 2016-09-06 Aruba Networks, Inc. System and method for dynamic rate adaptation based on real-time call quality metrics
US9131251B2 (en) * 2012-09-20 2015-09-08 Google Technology Holdings LLC Use of a receive-window size advertised by a client to a content server to change a video stream bitrate streamed by the content server
US9462021B2 (en) 2012-09-24 2016-10-04 Google Technology Holdings LLC Methods and devices for efficient adaptive bitrate streaming
US9544344B2 (en) * 2012-11-20 2017-01-10 Google Technology Holdings LLC Method and apparatus for streaming media content to client devices
US9137285B2 (en) * 2013-10-21 2015-09-15 Broadcom Corporation Adaptive audio video (AV) stream processing
WO2017063189A1 (en) * 2015-10-16 2017-04-20 Qualcomm Incorporated Deadline signaling for streaming of media data
KR102532645B1 (ko) * 2016-09-20 2023-05-15 삼성전자 주식회사 적응적 스트리밍 서비스에서 스트리밍 어플리케이케이션으로 데이터를 제공하는 방법 및 장치
US10741143B2 (en) * 2017-11-28 2020-08-11 Nvidia Corporation Dynamic jitter and latency-tolerant rendering
US10691082B2 (en) * 2017-12-05 2020-06-23 Cisco Technology, Inc. Dynamically adjusting sample rates based on performance of a machine-learning based model for performing a network assurance function in a network assurance system
US11350268B2 (en) * 2018-05-18 2022-05-31 Qualcomm Incorporated End-to-end rate adaptation using RAN assisted rate adaptation
CN111246284B (zh) * 2020-03-09 2021-05-25 深圳创维-Rgb电子有限公司 视频流播放方法、系统、终端及存储介质

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5543853A (en) 1995-01-19 1996-08-06 At&T Corp. Encoder/decoder buffer control for variable bit-rate channel
KR0176806B1 (ko) * 1995-12-29 1999-05-01 구자홍 텔레비젼의 2화면 구성장치
CA2243359A1 (en) * 1996-01-31 1997-08-07 Ipsilon Networks, Inc. Improved method and apparatus for dynamically shifting between routing and switching packets in a transmission network
EP0810808B1 (en) * 1996-05-29 2009-08-12 Nippon Telegraph And Telephone Corporation ATM cell transport equipment
US6175856B1 (en) * 1996-09-30 2001-01-16 Apple Computer, Inc. Method and apparatus for dynamic selection of compression processing during teleconference call initiation
EP0847171A1 (en) 1996-11-27 1998-06-10 Sony Europa B.V. Method and device for streaming data, including provision of write addresses
US6292834B1 (en) * 1997-03-14 2001-09-18 Microsoft Corporation Dynamic bandwidth selection for efficient transmission of multimedia streams in a computer network
US5903673A (en) * 1997-03-14 1999-05-11 Microsoft Corporation Digital video signal encoder and encoding method
US6157614A (en) * 1997-10-22 2000-12-05 Netro Corporation Wireless ATM network with high quality of service scheduling
JP3734946B2 (ja) 1997-12-15 2006-01-11 松下電器産業株式会社 データ送出装置、データ受信装置及びデータ伝送装置
JP3589851B2 (ja) * 1998-02-20 2004-11-17 株式会社日立製作所 パケット通信システム及びパケット通信装置
US6643259B1 (en) 1999-11-12 2003-11-04 3Com Corporation Method for optimizing data transfer in a data network
US6700893B1 (en) 1999-11-15 2004-03-02 Koninklijke Philips Electronics N.V. System and method for controlling the delay budget of a decoder buffer in a streaming data receiver
EP1182875A3 (en) * 2000-07-06 2003-11-26 Matsushita Electric Industrial Co., Ltd. Streaming method and corresponding system
BR0112885A (pt) * 2000-08-01 2003-07-01 Unilever Nv Processo para a produção de tecido ou fio têxtil tratado, e, produto de tratamento
US7346698B2 (en) 2000-12-20 2008-03-18 G. W. Hannaway & Associates Webcasting method and system for time-based synchronization of multiple, independent media streams
DE10102154C2 (de) * 2001-01-18 2003-02-13 Fraunhofer Ges Forschung Verfahren und Vorrichtung zum Erzeugen eines skalierbaren Datenstroms und Verfahren und Vorrichtung zum Decodieren eines skalierbaren Datenstroms unter Berücksichtigung einer Bitsparkassenfunktion
KR100420601B1 (ko) 2001-11-22 2004-03-02 에스케이 텔레콤주식회사 비디오 데이터 스트리밍 서비스 방법
JP2003158543A (ja) * 2001-11-22 2003-05-30 Anritsu Corp 中継装置及び中継方法
EP1359722A1 (en) * 2002-03-27 2003-11-05 BRITISH TELECOMMUNICATIONS public limited company Data streaming system and method
US7305483B2 (en) * 2002-04-25 2007-12-04 Yahoo! Inc. Method for the real-time distribution of streaming data on a network
US7133925B2 (en) * 2002-07-15 2006-11-07 Hewlett-Packard Development Company, L.P. System, method, and format thereof for scalable encoded media delivery
US20040057446A1 (en) * 2002-07-16 2004-03-25 Nokia Corporation Method for enabling packet transfer delay compensation in multimedia streaming
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
US6968387B2 (en) * 2003-01-10 2005-11-22 Realnetworks, Inc. Stochastic adaptive streaming of content

Also Published As

Publication number Publication date
US20040267956A1 (en) 2004-12-30
TW200508883A (en) 2005-03-01
US7844727B2 (en) 2010-11-30
TWI266201B (en) 2006-11-11
RU2367011C2 (ru) 2009-09-10
RU2005136435A (ru) 2006-06-10
MXPA05011247A (es) 2005-12-14
ATE446631T1 (de) 2009-11-15
EP1616267A1 (en) 2006-01-18
DE602004023710D1 (de) 2009-12-03
MY140711A (en) 2010-01-15
KR20060011964A (ko) 2006-02-06
JP2006524452A (ja) 2006-10-26
DK1616267T3 (da) 2010-01-04
WO2004097660A1 (en) 2004-11-11
EP1616267A4 (en) 2007-08-15
EP1616267B1 (en) 2009-10-21
JP4347883B2 (ja) 2009-10-21

Similar Documents

Publication Publication Date Title
ES2332315T3 (es) Procedimiento y dispositivo para la señalizacion proactiva de la adaptacion de tasa de transmision.
US7558869B2 (en) Rate adaptation method and device in multimedia streaming
EP1606717B1 (en) Method and device for multimedia streaming
US8306058B2 (en) Communication system and techniques for transmission from source to destination
ES2325317T3 (es) Metodo y dispositivos para controlar las retransmisiones en el flujo de datos.
CN1625880B (zh) 在具有可变带宽的网络上流式传输多媒体数据
JP4623616B2 (ja) データ伝送方法および装置
EP1397899B1 (en) Real-time packetization and retransmission in streaming applications
US11949512B2 (en) Retransmission of data in packet networks
US20050201485A1 (en) Transmission method using a virtual reception buffer to absorb fluctuation of the channel transmission rate
US20110058554A1 (en) Method and system for improving the quality of real-time data streaming
US20050152397A1 (en) Communication system and techniques for transmission from source to destination
WO2003032643A2 (en) Video data transmission method and apparatus
US9641907B2 (en) Image transmission system with finite retransmission and method thereof
ZA200508487B (en) Method and device for proactive rate adaptation signaling
EP3410618A1 (en) Received path delay mechanism