MXPA06001522A - Deteccion de desplazamiento de reloj en dispositivos en red a traves del monitoreo del llenado de menoria intermedia cliente. - Google Patents

Deteccion de desplazamiento de reloj en dispositivos en red a traves del monitoreo del llenado de menoria intermedia cliente.

Info

Publication number
MXPA06001522A
MXPA06001522A MXPA06001522A MXPA06001522A MXPA06001522A MX PA06001522 A MXPA06001522 A MX PA06001522A MX PA06001522 A MXPA06001522 A MX PA06001522A MX PA06001522 A MXPA06001522 A MX PA06001522A MX PA06001522 A MXPA06001522 A MX PA06001522A
Authority
MX
Mexico
Prior art keywords
clock
client
host
buffer
determination
Prior art date
Application number
MXPA06001522A
Other languages
English (en)
Inventor
Todd Bowra
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
Publication of MXPA06001522A publication Critical patent/MXPA06001522A/es

Links

Classifications

    • 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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B26HAND CUTTING TOOLS; CUTTING; SEVERING
    • B26DCUTTING; DETAILS COMMON TO MACHINES FOR PERFORATING, PUNCHING, CUTTING-OUT, STAMPING-OUT OR SEVERING
    • B26D5/00Arrangements for operating and controlling machines or devices for cutting, cutting-out, stamping-out, punching, perforating, or severing by means other than cutting
    • B26D5/20Arrangements for operating and controlling machines or devices for cutting, cutting-out, stamping-out, punching, perforating, or severing by means other than cutting with interrelated action between the cutting member and work feed
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B26HAND CUTTING TOOLS; CUTTING; SEVERING
    • B26DCUTTING; DETAILS COMMON TO MACHINES FOR PERFORATING, PUNCHING, CUTTING-OUT, STAMPING-OUT OR SEVERING
    • B26D7/00Details of apparatus for cutting, cutting-out, stamping-out, punching, perforating, or severing by means other than cutting
    • B26D7/26Means for mounting or adjusting the cutting member; Means for adjusting the stroke of the cutting member
    • B26D7/2628Means for adjusting the position of the cutting member
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B32LAYERED PRODUCTS
    • B32BLAYERED PRODUCTS, i.e. PRODUCTS BUILT-UP OF STRATA OF FLAT OR NON-FLAT, e.g. CELLULAR OR HONEYCOMB, FORM
    • B32B38/00Ancillary operations in connection with laminating processes
    • B32B38/10Removing layers, or parts of layers, mechanically or chemically
    • B32B38/105Removing layers, or parts of layers, mechanically or chemically on edges
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal
    • H04L49/9078Intermediate storage in different physical parts of a node or terminal using an external memory or storage device
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B27WORKING OR PRESERVING WOOD OR SIMILAR MATERIAL; NAILING OR STAPLING MACHINES IN GENERAL
    • B27DWORKING VENEER OR PLYWOOD
    • B27D5/00Other working of veneer or plywood specially adapted to veneer or plywood
    • B27D5/006Trimming, chamfering or bevelling edgings, e.g. lists

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mechanical Engineering (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Forests & Forestry (AREA)
  • Communication Control (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)

Abstract

Un sistema de medios digitales usa reportes de llenado de memoria intermedia cliente para detectar desplazamiento de reloj entre un reloj en un dispositivo anfitrion/fuente que entrega el flujo de contenido de medios y un reloj en un dispositivo de reproduccion cliente que recibe el flujo de contenido de medios. El sistema proporciona una reduccion en las interrupciones de reproduccion durante la reproduccion del flujo de contenido de medios y un mayor potencial que el contenido "en vivo" codificado por un dispositivo anfitrion/fuente puede ser de hecho experimentado como contenido "en vivo" a traves de la reproduccion en un dispositivo cliente.

Description

DETECCIÓN DE DESPLAZAMIENTO DE RELOJ EN DISPOSITIVOS EN RED A TRAVÉS DEL MONITOREO DEL LLENADO DE MEMORIA INTERMEDIA CLIENTE CAMPO TÉCNICO La presente descripción se refiere generalmente a los sistemas de reproducción de medios digitales, y más particularmente a la regulación de las reproducciones de flujos de medios en tales sistemas.
ANTECEDENTES DE LA INVENCIÓN El flujo de medios digitales, tal como el flujo de audio, video, y/o contenido de medios de texto se está volviendo incrementadamente popular. El termino "flujo" es típicamente usado para indicar que los datos representando los medios es proporcionado por un dispositivo anfitrión de computadora en una red a un dispositivo cliente (es decir, un dispositivo de reproducción de medios ¡mplementado como cualquiera de una variedad de dispositivos de cómputo convencionales, tales como una PC de escritorio, una computadora portátil o una lap-top, un teléfono celular u otro dispositivo de comunicación inalámbrica, un asistente personal digital (PDA), una consola de juego, una caja de ajuste I P, una PC portátil, y etc.). El dispositivo cliente presenta el contenido de flujo mientras el contenido de flujo es recibido desde el anfitrión, en vez de esperar a que todo el contenido o el archivo "entero" sean entregados.
Cuando el contenido de medios es "hecho flujo" en una red, es típicamente hecho flujo en paquetes de datos. Sin embargo, no siempre hay una garantía de que los paquetes de datos llegarán a su destinación en el mismo orden en el fueron enviados, o incluso que llegarán a su destinación. Además, no hay usualmente una garantía de que el tiempo que toma un paquete de datos para viajar desde una fuente a la destinación será de duración específica, o que el tiempo será el mismo para los paquetes de datos diferentes. Para contar estas variaciones en la entrega de datos a un dispositivo cliente, el dispositivo cliente típicamente mantiene una memoria intermedia de datos. La memoria intermedia permite al dispositivo cliente degradar las variaciones en la entrega de datos para que no sean tan identificables al usuario durante la reproducción del contenido. De esta manera, por ejemplo, si hay un breve fallo del sistema en el ancho de banda de la red causada por una congestión de la red (ej. , tráfico cruzado de la red, interferencia, recepción inalámbrica deficiente), en la mayoría de los casos la cantidad de datos en la memoria intermedia permite al dispositivo cliente continuar con la reproducción del contenido de medios para que el usuario no experimente los efectos del breve fallo del sistema (ej. , una interrupción o pausa en la reproducción). Sin embrago, en algunos casos las variaciones en la entrega de los datos causadas por un fallo del sistema de la red, por ejemplo, pueden reducir la memoria intermedia y resultar en una interrupción o pausa en la reproducción.
Otro problema que puede causar la continua reducción de la memoria intermedia cliente y una interrupción periódica en la reproducción de contenido de medios es la presencia de diferentes frecuencias de reloj en el dispositivo anfitrión (es decir, el dispositivo fuente que codifica y transmite el contenido de flujo) y el dispositivo cliente (es decir, el dispositivo que recibe y reproduce el contenido del flujo). Esto es, el reloj cliente que regula la reproducción en el dispositivo cliente puede correr a una frecuencia ligeramente diferente que la del reloj anfitrión regulando el proceso de codificado en el dispositivo anfitrión/fuente. El flujo del reloj entre el reloj anfitrión y el reloj cliente puede causar que la memoria intermedia cliente se agote de contenido de medios para reproducir. Si el reloj cliente corre más rápido que el reloj anfitrión, el cliente consumirá contenido de medios desde la memoria intermedia cliente a una velocidad ligeramente más rápida que la que el anfitrión la puede volver a llenar. En este caso, la memoria intermedia cliente continuamente se acabará los contenidos de medios y una pausa periódica o interrupción en la reproducción de medios ocurre para que la memoria intermedia se recupere. En cambio, el desplazamiento de reloj puede también causar que la memoria intermedia cliente se sobrecargue con contenido de medios. Si el reloj cliente corre más lento que el reloj anfitrión, el cliente consumirá contenido de medios desde la memoria intermedia cliente a una velocidad ligeramente más lenta que la que el anfitrión tiene para llenar la memoria intermedia. En este caso, la memoria intermedia cliente se sobrecargará con contenido de medios.
Por consiguiente, existe una necesidad de una manera para detectar el desplazamiento de reloj entre un dispositivo anfitrión entregando el contenido en flujo a un dispositivo de reproducción cliente, y el dispositivo cliente.
BREVE DESCRIPCIÓN DE LA INVENCIÓN Un sistema de medios digitales y métodos usa reportes de llenado de la memoria intermedia cliente para detectar el flujo del reloj entre el reloj en un dispositivo anfitrión/cliente que entrega un flujo de contenido de medios y el reloj en un dispositivo de reproducción cliente que recibe el flujo de contenido de medios. En una modalidad, un monitor de memoria intermedia en un dispositivo cliente monitorea una memoria intermedia cliente y genera reportes de llenado de memoria intermedia que indican el nivel de datos en la memoria intermedia cliente. El monitor de memoria intermedia envía los reportes de llenado de memoria intermedia a un componente de detección y recuperación de desplazamiento de reloj en el dispositivo anfitrión. El componente de detección y recuperación de desplazamiento de reloj determina de los reportes de llenado de memoria intermedia la extensión de cualquier desplazamiento de reloj entre el reloj del dispositivo cliente y el reloj del dispositivo anfitrión. Si hay un desplazamiento de reloj entre el reloj cliente y el reloj anfitrión, el componente de detección y de recuperación de desplazamiento de reloj implementa un sistema de recuperación para sincronizar los relojes.
En otra modalidad, el monitor de memoria intermedia en el dispositivo cliente envía los reportes de llenado de memoria intermedia a un componente de detección y recuperación de desplazamiento de reloj en el dispositivo cliente. El componente de detección y recuperación de desplazamiento de reloj en el dispositivo cliente determina la extensión de cualquier desplazamiento de reloj entre el reloj cliente y el reloj anfitrión e implementa un método de recuperación en el dispositivo cliente para sincronizar los relojes. En todavía otra modalidad, el componente de detección y recuperación de desplazamiento de reloj en el dispositivo cliente envía un mensaje al dispositivo anfitrión con respecto a un desplazamiento de reloj detectado, y un componente de recuperación de reloj en el dispositivo anfitrión implementa un método de recuperación para sincronizar los relojes. El componente de detección y recuperación de desplazamiento de reloj puede también residir en un tercer dispositivo (ej. , un dispositivo dedicado de control) y recibir reportes de llenado de cliente. De nuevo, el componente de detección y recuperación de desplazamiento de reloj determina la extensión de cualquier flujo entre el reloj cliente y el reloj anfitrión y puede implementar un método de recuperación para sincronizar los relojes.
BREVE DESCRIPCIÓN DE LOS DIBUJOS Las mismas referencias numéricas son usadas a través de todos los dibujos para referenciar componentes similares y características.
La figura 1 ilustra un ambiente ejemplar conveniente para detectar desplazamiento de reloj entre el reloj un dispositivo de anfitrión/fuente que entrega el flujo de contenido de medios y el reloj en un dispositivo de reproducción cliente que recibe el flujo de contenido de medios. La figura 2 ilustra una modalidad ejemplar de un sistema de medios digitales conveniente para detectar desplazamiento de reloj entre el reloj en un dispositivo anfitrión/fuente que entrega flujos de contenido de medios y el reloj en un dispositivo de reproducción cliente que recibe el flujo de contenido de medios. La figura 3 ilustra escenarios mostrando que niveles de llenado de memoria intermedia de medios cliente pueden parecer con el tiempo como un contenido de flujos de medios de dispositivo anfitrión a un dispositivo cliente. La figura 4 ilustra un escenario adicional mostrando que niveles de llenado de memoria intermedia de medios cliente puedan parecer donde el nivel de llenado de memoria intermedia fluctúa con el tiempo debido a fluctuaciones de ancho de banda de red. La figura 5 ilustra modalidades adicionales ejemplares de un sistema de medios digitales para detectar desplazamiento de reloj entre el reloj en un dispositivo anfitrión que entrega flujo de contenido de medios y el reloj en un dispositivo cliente de reproducción que recibe el flujo de contenido de medios. Las figuras 6-7 son diagramas de flujo ilustrando métodos ejemplares para detectar un desplazamiento de reloj en un sistema de medios digitales entre el reloj en un dispositivo anfitrión/fuente que entrega flujo de contenido de medios y el reloj en un dispositivo cliente de reproducción que recibe el flujo de contenido de medios. La figura 8 ilustra un ambiente computacional ejemplar, conveniente para implementar un dispositivo anfitrión computacional y un dispositivo cliente de reproducción como los mencionados con referencia a las figuras 1 -7.
DESCRIPCIÓN DETALLADA Introducción La siguiente discusión esta dirigida a un sistema de medios digitales y métodos para detectar un desplazamiento de reloj entre el reloj en un dispositivo anfitrión/fuente que entrega flujos de contenido de medios y el reloj en un dispositivo de reproducción cliente que recibe el flujo de contenido de medios. El reloj anfitrión regula el codificado del flujo de medios en el dispositivo anfitrión y el reloj cliente regula la reproducción del flujo de medios en el dispositivo cliente. Ventajas del sistema descrito y métodos incluyen una reducción en las interrupciones de reproducción durante la reproducción de flujos de contenido de medios y un mayor potencial que contenido "en vivo" codificado por un dispositivo anfitrión/fuente puede ser de hecho experimentado como contenido "en vivo" a través de la reproducción en un dispositivo cliente.
AMBIENTE EJEMPLAR La figura 1 ilustra un ambiente ejemplar 1 00 conveniente para detectar desplazamiento de reloj entre el reloj en un dispositivo anfitrión/fuente que entrega flujo de contenido de medios y el reloj en un dispositivo de reproducción cliente que recibe el flujo de contenido de medios. La red 106 se propone para representar cualquiera de una variedad de topologías de redes convencionales y tipos (incluyendo ópticos, y redes cableadas e inalámbricas), empleando cualquiera de una variedad de protocolos de red convencionales (incluyendo protocolos públicos y/o de propietario). La red 106 puede incluir, por ejemplo, una red de hogar, una red corporativa, o la Internet, así como también posibles porciones al menos de una o más redes de área local (LANs) y/o redes de área amplia (WANs). Un dispositivo anfitrión /fuente 102 generalmente proporciona acceso a un contenido de medios almacenado, tal como archivos de medios, y/o contenido de medios en vivo, tal como alimentación de TV en vivo por cable o webcast. El dispositivo anfitrión 102 fluye el contenido de medios a un dispositivo de reproducción cliente 104 en una solicitud. Un dispositivo cliente 1 04 generalmente recibe el flujo de contenido de medios desde un dispositivo anfitrión 102 y lo reproduce para un usuario. Las solicitudes desde un dispositivo cliente 104 para flujo de contenido de medios que esta disponible en el dispositivo anfitrión 102 son dirigidas desde el dispositivo cliente 104 al dispositivo anfitrión 102 vía la red 1 06. El dispositivo anfitrión 1 02 recibe la solicitud y regresa el contenido solicitado al dispositivo cliente solicitante 104 vía la red 106. El dispositivo anfitrión 102 puede estar implementado como cualquiera de una variedad de dispositivos computacionales convencionales, incluyendo, por ejemplo, una PC de escritorio, una lap-top o una computadora portátil, una estación de trabajo, una computadora unidad principal, una aplicación de Internet, combinaciones de los mismos, y demás, que son configurables para el flujo de contenido de medios en vivo y/o almacenado a un dispositivo cliente 104. El dispositivo de reproducción cliente 1 04 también puede ser implementado como cualquiera de una variedad de dispositivos computacionales convencionales, incluyendo, por ejemplo, una PC de escritorio, una computadora portátil o lap-top, una estación de trabajo, una computadora unidad principal, una aplicación de Internet, una consola de juegos, una PC portátil, un teléfono celular u otro dispositivo de comunicación inalámbrica, un asistente personal digital (PDA), una caja de ajuste, combinaciones de los mismos, y demás. Un ambiente computacional ejemplar para la implementación de un dispositivo anfitrión 1 02 y un dispositivo cliente 104 esta descrito en mayor detalle en la presente posteriormente con referencia a la figura 8, El dispositivo anfitrión 1 02 puede hacer cualquiera de una variedad de datos disponibles para fluir al dispositivo de reproducción cliente 104, incluyendo contenido tal como audio, video, texto, imágenes, animación, y similares. Sin embargo, como es usado en la presente con respecto a las modalidades ejemplares descritas posteriormente, el contenido de medios 200 se propone representar contenido de audio/video (A/V) o solo contenido de video. Además, las referencias hechas en la presente a "contenido de medios", "flujo de medios", "flujo de video" , "contenido de video" , y cualquier variación de los mismos están generalmente propuestos para incluir contenido de audio/video. El termino "flujo" es usado para indicar que los datos representando el contenido de medios son proporcionados en una red 1 06 a un dispositivo de reproducción cliente 1 04 y esa reproducción del contenido puede comenzar previo a que el contenido sea entregado en su totalidad. Los datos pueden estar públicamente disponibles o alternativamente restringidos (ej. , restringidos solo a ciertos usuarios, disponible solo si la tarifa apropiada es pagada, restringida a usuarios teniendo acceso a una red particular, etc.). Además, los datos pueden estar "a demanda" (ej. , pre-grabados, contenido almacenado de un tamaño conocido) o alternativamente desde una "transmisión" en vivo (ej. , no teniendo un tamaño conocido, tal como una representación digital de un concierto siendo capturado mientras el concierto es llevado a cabo y hecho disponible para fluirlo cortamente después de capturarlo) .
MODALIDADES EJEMPLARES La figura 2 ilustra una modalidad ejemplar de un sistema de medios digitales conveniente para la detección de desplazamiento de reloj entre el reloj en un dispositivo anfitrión/fuente 102 que entrega el flujo de contenido de medios y el reloj en un dispositivo de reproducción cliente 104 que recibe el flujo de contenido de medios. El dispositivo anfitrión 102 esta generalmente configurado para codificar contenido de medios/video 200 a una velocidad regulada por el reloj anfitrión 202 del dispositivo anfitrión 1 02. El dispositivo anfitrión 102 puede entonces almacenar y/o fluir el contenido codificado de medios/video 200 en una red 1 06 a un dispositivo cliente 104. El dispositivo cliente 104 está generalmente configurado para recibir flujo de contenido de medios/video 200 y reproducir el flujo de contenido a una velocidad regulada por el reloj cliente 204 del dispositivo cliente 104. En la presente modalidad, el dispositivo anfitrión 102 incluye un módulo de detección y recuperación de desplazamiento de reloj 206 configurado para determinar si hay un desplazamiento de reloj entre el reloj cliente 204 y el reloj anfitrión 202. El módulo de detección y recuperación 206 determina el desplazamiento de reloj basado en información que recibe desde el dispositivo cliente 104 respecto a la(s) memoria(s) intermedia(s) cliente de medios 208. El dispositivo cliente 1 04 proporciona la información de memoria intermedia al dispositivo anfitrión 102 en la forma de reportes de llenado de memoria intermedia 210. Los reportes de llenado de memoria intermedia 21 0 indican el nivel de datos presentes en la(s) memoria(s) intermedia(s) cliente de medios 208 en un dispositivo cliente 1 04 durante el flujo de contenido de medios 200 desde el dispositivo anfitrión 102 al dispositivo cliente 1 04. El nivel de datos indicados por los reportes de llenado de memoria intermedia 210 pueden incluir el nivel de datos de audio 212 en una memoria intermedia de audio 208(1 ) y/o el nivel de datos de video 214 en una memoria intermedia de video 208(2). El módulo de detección y recuperación de desplazamiento de reloj 206 en un dispositivo anfitrión 1 02 determina el desplazamiento de reloj basado en los reportes de llenado de memoria intermedia 210(2) que recibe desde el dispositivo cliente 104 según lo mencionado a mayor detalle en la presente posteriormente. El dispositivo anfitrión 102 mantiene uno o más archivos de contenido de medios 200 de los cuales una selección puede ser hecha por una aplicación reproductora de medios 216 en un dispositivo cliente 1 04 (ej. , en respuesta a la entrada de usuario a través de una aplicación reproductora de medios 216). Además, el dispositivo anfitrión 1 02 proporciona acceso a contenido en vivo tal como desde una alimentación de tv por cable en vivo o Webcast que fluye al dispositivo reproductor cliente 104 en una solicitud. En la presente modalidad, el contenido de medios 200 se considera contenido de video que generalmente tiene un componente de audio. De esta manera, como se indica anteriormente, las referencias hechas en la presente a "contenido de medios", "flujo de medios", "flujo de video", "contenido de video", y cualquier variación de los mismos son generalmente propuestos para significar contenido de audio/video A/V y/o contenido de video. El dispositivo anfitrión 102 transmite el contenido de medios solicitado 200 como un flujo de datos en una red 106 a la aplicación reproductora de medios 216 en un dispositivo ciiente 104. El dispositivo cliente 104 mantiene la(s) memoria(s) intermedia(s) de medios 208 como una manera de suavizar las variaciones en la entrega de datos en una red 106 (ej. , fallos breves de una red causados por el tráfico cruzado de la red, interferencia, deficiente recepción inalámbrica, etc.), para que no sean tan detectables al usuario durante la reproducción del contenido. Bajo condiciones favorables de la red, el nivel de llenado de la(s) memoria(s) intermedia(s) 208 sería relativamente alto (ej. ,>80% lleno) e indicaría un nivel de llenado saludable. Un alto nivel de llenado en la(s) memoria(s) intermedia(s) 208 permite generalmente una reproducción en tiempo real de todo el contenido de medios dentro de la(s) memoria(s) ¡ntermedia(s) 208 así como también el flujo de contenido de medios restante del dispositivo anfitrión 102. El monitor de memoria intermedia 218 en un dispositivo cliente 104 está configurado para monitorear el nivel de llenado de la(s) memoria(s) intermedia(s) 208 y para generar reportes de llenado de memoria intermedia 210( 1 ) mientras el contenido de medios 20 esta siendo fluido del dispositivo anfitrión 102. Los reportes de llenado de memoria intermedia 210 son un mecanismo por el cual el dispositivo cliente 1 04 reporta información de llenado de memoria intermedia al dispositivo anfitrión 102. En general, esta información es usada por el módulo de detección y recuperación de desplazamiento de reloj 206 en el dispositivo anfitrión 102 para determinar si hay un desplazamiento de reloj entre el reloj cliente 204 y el reloj anfitrión 202. La figura 3 ilustra cuatro escenarios mostrando como los niveles de llenado de memoria intermedia de medios cliente 208 pueden parecer con el tiempo mientras el dispositivo anfitrión 1 02 fluye contenido de medios a un dispositivo cliente 1 04. En cada escenario, la memoria intermedia 208 inicia a un nivel relativamente alto o un nivel saludable de llenado de aproximadamente 80%. En un primer escenario, demostrado por la línea trazada 300, el nivel de llenado de memoria intermedia incrementa gradualmente con el tiempo. Esto indica que los datos en la memoria intermedia 208 se están llenado más rápido de lo que están siendo consumidos. En este escenario la memoria intermedia 208 eventualmente se desbordará con datos, que típicamente resulta en datos desbordados (cuadros) ya sea siendo descartados/tirados por el cliente 104 y no reproducidos o almacenados en una memoria intermedia anfitrión (no mostrada) en el dispositivo anfitrión 102. En un segundo escenario, demostrado por la línea trazada 302, el nivel de llenado de memoria intermedia permanece igual con el tiempo. Esto indica que los datos en la memoria intermedia 208 están siendo llenados de nuevo a la misma velocidad que están siendo consumidos. En un tercer escenario, demostrado por la línea trazada 304, el nivel de llenado de memoria intermedia desciende gradualmente con el tiempo. Esto indica que los datos en la memoria intermedia 208 están siendo llenados de nuevo más lentamente de lo que están siendo consumidos. En el tercer escenario la memoria intermedia 208 eventualmente será agotada, y una pausa o interrupción ocurrirá en la reproducción de los medios en el dispositivo cliente 104 mientras que la memoria intermedia 208 es recuperada (es decir. , llenada de nuevo con datos). En un cuarto escenario, demostrado por la línea trazada 306, el llenado de la memoria intermedia cae rápidamente con el tiempo, indicando que los datos en la memoria intermedia 208 están siendo llenados de nuevo a una velocidad mucho más lenta de lo que están siendo consumidos. Para determinar si hay un desplazamiento de reloj entre el reloj cliente 204 y el reloj anfitrión 202, el módulo de detección y recuperación de desplazamiento de reloj 206 en el dispositivo anfitrión 1 02 recibe los reportes de llenado de memoria intermedia 210(2) generados por el monitor de memoria intermedia 218 en un dispositivo cliente 104 y traza los niveles de llenado de memoria intermedia con el tiempo según se indica en los reportes de llenado de memoria intermedia 21 0(2). De esta manera, el módulo de detección y recuperación de desplazamiento de reloj 206 puede generar trazos como los ilustrados y mencionados anteriormente con respecto a la figura 3. El módulo de detección y recuperación de desplazamiento de reloj 206 monitorea las pendientes de las líneas generadas por los trazos para determinar si el desplazamiento de reloj está presente entre el reloj cliente 204 y el reloj anfitrión 202. En general, una línea gradualmente inclinada, ya sea inclinada positivamente o negativamente, indica que el desplazamiento de reloj está presente entre el reloj cliente 204 y el reloj anfitrión 202. Como es mencionado a mayor detalle posteriormente, la pendiente es la media con el tiempo para suavizar alguna inquietud de red. Refiriéndose de nuevo a la figura 3, por ejemplo, mientras se traza una línea tal como la línea 300, el módulo de detección y recuperación de desplazamiento de reloj 206 determinará que la línea 300 tiene una pendiente gradual, indicando la presencia de un desplazamiento de reloj entre el reloj cliente 204 y el reloj anfitrión 202. Además, debido a que la pendiente de la línea 300 es positiva, el módulo de detección y recuperación de desplazamiento de reloj 206 determina que el reloj cliente 204 esta corriendo a una velocidad más lenta que el reloj anfitrión 202, dado que los datos en la memoria intermedia 208 están siendo consumidos (es decir, están siendo reproducidos por una aplicación reproductora 216 en el cliente 104) a una velocidad más lenta que el dispositivo anfitrión 102 (regulado por el reloj anfitrión 202) esta llenando de nuevo los datos. Así mismo, para otros trazos generados de los reportes de llenado de memoria intermedia 210(2), el módulo de detección y recuperación 206 determinará de las pendientes de las líneas trazadas si cualquier desplazamiento de reloj estaba presente entre el reloj cliente 204 y el reloj anfitrión 202. Por ejemplo, con respecto a la línea 302 de la figura 3, el módulo de detección y recuperación 206 determinará que no hay un desplazamiento de reloj debido a que la pendiente de la línea 302 es cero. Con respecto a la línea 304, el módulo de detección y recuperación 206 determinará de la pendiente gradual negativa de la línea que el desplazamiento de reloj estaba presente y que el reloj cliente 104 estaba corriendo a una velocidad más rápida que el reloj anfitrión 202, dado que los datos en la memoria intermedia 208 están siendo consumidos a una velocidad más rápida de la que el dispositivo anfitrión 102 esta llenando de nuevo los datos. Con respecto a la línea 306, el módulo de detección y recuperación 206 determinará de la dramáticamente negativa pendiente en la línea 306 que hay una circunstancia más allá del mero desplazamiento de reloj, tal como un apagón de la red, que esta causando un rápido agotamiento de la memoria intermedia cliente 208. Un apagón de red puede ser diferenciado de un desplazamiento de reloj debido a la velocidad de contenido de medios entrante de la red va a cero para un apagón de red mientras probablemente permanezcan constante, en promedio, cuando un apagón de red no existe. Además, durante la congestión de la red el flujo de contenido de medios puede volverse más lento pero no caerse completamente a cero. Por ejemplo, si la capacidad de la red es menor que la velocidad de transferencia de bits (ej. , si un intento es hecho para enviar un flujo de 6 mbps en una red de 5.5 mbps), el llenado de memoria intermedia en un dispositivo cliente 1 04 puede también agotarse con el tiempo. Al monitorear las estadísticas adicionales tales como el numero de paquetes retransmitidos/perdidos a un nivel de la red, la variación en el viaje redondo con el tiempo, u otras estadísticas pueden identificar tal sobrecarga de la red. Los resultados del agotamiento de la memoria intermedia que están determinados a ser un resultado de las limitaciones de la red pueden por tanto ser filtrados cuando se determine si el desplazamiento de reloj está presente entre el reloj anfitrión y el reloj cliente. La figura 4 ilustra un escenario adicional en el cual el nivel de llenado de memoria intermedia fluctúa con el tiempo debido a fluctuaciones del ancho de banda, según lo ilustrado en la línea trazada 400. En este escenario, el llenado de memoria intermedia puede no parecer incrementar limpiamente o disminuir con el tiempo. Sin embargo, las fluctuaciones de ancho de banda de la red pueden ser filtradas al promediar el llenado de memoria intermedia en una ventana de largo tiempo y trazando el resultado (ej. , línea trazada 402). El módulo de detección y recuperación 206 puede entonces calcular la pendiente de la línea trazada 402 y determinar que el llenado de memoria intermedia está de hecho descendiendo a una velocidad constante. Por lo tanto, como se notó anteriormente, el módulo de detección y recuperación 206 determina de la pendiente gradualmente negativa de la línea 402 que el desplazamiento de reloj está presente y que el reloj cliente 104 esta corriendo a una velocidad más rápida que la del reloj anfitrión 202. Además para determinar si el desplazamiento de reloj está presente entre el reloj cliente 204 y el reloj anfitrión 202, el módulo de detección y recuperación 206 calcula la diferencia en la velocidad de reloj entre el reloj anfitrión 202 y el reloj cliente 204. Varios modelos matemáticos (ej . , filtrado de paso bajo matemático, análisis estadístico, etc.) pueden ser útiles para calcular la diferencia en la velocidad de reloj entre el reloj anfitrión 202 y el reloj cliente 204 basado en los datos del llenado de memoria intermedia de la memoria intermedia cliente 208. En una implementación, una diferencia en la velocidad de reloj entre el reloj anfitrión 202 y el reloj cliente 204 esta definida por las siguientes definiciones y ecuaciones (1 ), (2), y (3): rh - rc = dpc * (ch - ce) (1) ch es la velocidad actual del reloj anfitrión 202 en hertz (Hz). ce es la velocidad actual del reloj cliente 204 en hertz. dpc es una constante indicando la velocidad de datos spec'd (es decir, un valor esperado basado en un valor que es especificado) del flujo de datos. Esto es, dpc es igual a la velocidad de datos spec'd tanto del dispositivo anfitrión 1 02 como el dispositivo cliente 104. rh es la velocidad actual de generación de datos en el dispositivo anfitrión 1 02, que la velocidad de datos spec'd (bits/segundo)* ch I velocidad spec'd de reloj anfitrión en hertz. De esta manera: rh = ch * dpc rc es la velocidad actual de consumo de datos en el dispositivo cliente 1 04, que es la velocidad de datos spec'd (bits/segundo) * ce I velocidad spec'd de reloj cliente en hertz. De esta manera: rc = ce * dpc Por consiguiente. La ecuación (1 ) anterior es derivada por la resta de rc de rh. La ecuación (1 ) puede alternativamente ser expresada con respecto al llenado de memoria intermedia y tiempo por las siguientes definiciones y ecuación (2): rh - rc = ( ft - fO) / t (2) fO es el llenado de memoria intermedia (en bits de datos) al tiempo cero, que es el porcentaje de llenado de memoria intermedia en el tiempo cero multiplicado por el tamaño de la memoria intermedia 208 (en bits). ft es el llenado de memoria intermedia (en bits de datos) al tiempo t, que es el porcentaje de llenado de memoria intermedia en el tiempo t multiplicado por el tamaño de la memoria intermedia 208 (en bits). Al igualar las ecuaciones (1 ) y (2) anteriores, la solución para la diferencia en la velocidad del reloj (es decir, la cantidad de desplazamiento de reloj) entre ei reloj anfitrión 202 y el reloj cliente 204 es aparente como sigue en la ecuación (3): dpc * (ch - ce) = (ft - fO) / t ch - ce = ft-fO t*dcp (3) Los valores para ft, fO, y í pueden ser determinados de los datos usados para generar el gráfico (es decir, de los datos en los reportes de llenado de memoria intermedia 210 (2)). La cantidad (ft -fO) I t es determinada de la pendiente de la línea trazada basada en los reportes rellenado de memoria intermedia 210(2). De esta manera, el módulo de detección y recuperación de desplazamiento de reloj 206 puede fácilmente calcular la cantidad de desplazamiento de reloj entre el reloj cliente 204 y el reloj anfitrión 202 basándose en la ecuación (3) (es decir, la diferencia en la velocidad de reloj indicada por la cantidad ch - ce). En los cálculos anteriores, una suposición es hecha de que, con el tiempo, la capacidad promedio de la red es mayor que la velocidad de bits del flujo de medios que es transmitido por el dispositivo anfitrión 102. Si la capacidad de la red es menor que la velocidad de bits, el llenado de memoria intermedia en el dispositivo cliente 104 también puede ser agotada con el tiempo. onitorear estadísticas adicionales tales como el numero de paquetes retransmitidos/perdidos a un nivel de red, la variación en viaje redondo con el tiempo, u otras estadísticas que puedan identificar una sobrecarga de red, pueden mejorar los resultados notados anteriormente para casos en los que la capacidad de la red pueda ser menor con el tiempo que la velocidad de bits del flujo. Después de determinar que hay un desplazamiento de reloj entre el reloj cliente 204 y el reloj anfitrión 202 y calcular la cantidad de desplazamiento de reloj, el modulo de detección y recuperación 206 puede implementar un método de recuperación para sincronizar los relojes. Por ejemplo, el dispositivo anfitrión 102 puede enviar una solicitud de cambio de reloj al cliente 104 ordenando al cliente acelerar la velocidad o disminuirla del reloj cliente 204. Si el reloj cliente 204 se demora detrás del reloj anfitrión 202, el dispositivo anfitrión 102 puede incluso dejar algunos cuadros de video del contenido de medios 200 fluyendo al cliente 104 para alcanzar el respaldo de reloj cliente 204 con el reloj anfitrión 202. El dispositivo anfitrión 102 puede también ajustar su propio reloj para sincronizar los relojes. Al sincronizar el reloj cliente 204 y el reloj anfitrión 202 ayuda a reducir las interrupciones de reproducción que pueden ocurrir cuando la memoria intermedia cliente 208 es agotada como un resultado de que el reloj cliente 202 corra a una velocidad más rápida que el reloj anfitrión 202. Además, sincronizar el reloj cliente 204 y el reloj anfitrión 202 ayuda a asegurar que contenido "en vivo" estando codificado por el dispositivo anfitrión 1 02 a la velocidad del reloj anfitrión pueda ser experimentado o reproducido en el dispositivo cliente 104 como contenido "en vivo" a la misma velocidad que esta codificado en el dispositivo anfitrión 102. La figura 5 ilustra una o más modalidades adicionales de un sistema de medios digitales convenientes para detectar desplazamiento de reloj entre el reloj en un dispositivo anfitrión 1 02 que entrega flujo de contenido de medios y el reloj en un dispositivo de reproducción cliente 104 que recibe el flujo de contenido de medios. El dispositivo anfitrión 102 y el dispositivo cliente 1 04 están generalmente configurados como se menciona anteriormente con respecto a la modalidad de la figura 2. Sin embargo, en una modalidad de la figura 5, el dispositivo cliente 1 04 puede ser adicionalmente configurado con un módulo de detección y recuperación de desplazamiento de reloj 502 para determinar si un desplazamiento de reloj existe entre el reloj cliente 204 y el reloj anfitrión 202, y para calcular la diferencia en la velocidad de reloj entre el reloj anfitrión 202 y el reloj cliente 204 en una manera similar a la mencionada anteriormente. Además, en la detección de desplazamiento de reloj y calcular la diferencia de velocidad de reloj entre el reloj anfitrión 202 y el reloj cliente 204, el modulo de detección y recuperación 502 del dispositivo cliente 104 puede implementar un método de recuperación de reloj (ej. , ajustar la velocidad de reloj cliente 204 por un cierto porcentaje) para sincronizar el reloj cliente 204 con el reloj anfitrión 202. En otra modalidad, el dispositivo 102 puede incluir un modulo de recuperación de reloj 500 configurado para recibir una solicitud de recuperación de reloj y/o información desde el modulo de detección y recuperación de desplazamiento de reloj 502 en el dispositivo cliente 104. En la recepción de tal solicitud y/o información, el modulo de recuperación de reloj 500 puede implementar un método de recuperación de reloj tal como se menciona anteriormente con respecto a la modalidad de la figura 2.
MÉTODOS EJEMPLARES Métodos ejemplares para detectar desplazamiento de reloj en un sistema de medios digitales entre el reloj en un dispositivo anfitrión/fuente 102 que entrega flujos de contenido de medios y el reloj en un dispositivo de reproducción cliente 1 04 que recibe el flujo de contenido de medios ahora será descrita con referencia primaria a los diagramas de flujo de las figuras 6 y 7. Los métodos se aplican a las modalidades ejemplares mencionadas anteriormente con respecto a las figuras 1 -5. Mientras uno o más métodos son divulgados por medio de diagramas de flujo y texto asociado con los bloques de los diagramas de flujo, debe entenderse que los elementos de ios métodos descritos no necesariamente tienen que ser llevados a cabo en el orden en el cual son presentados, y que ordenes alternativos pueden resultar en ventajas similares. Además, los métodos no son exclusivos y pueden ser llevados a cabo solos o en combinación con otro. Los elementos de los métodos descritos pueden ser llevados a cabo por cualquier medio apropiado incluyendo, por ejemplo, por bloques lógicos de hardware en un ASIC o por la ejecución de instrucciones legibles por un procesador definido en un medio legible por procesador Un "medio legible por procesador", como es usado en la presente, puede ser cualquier medio que pueda contener, almacenar, comunicar, propagar, o transportar instrucciones para usar o ejecutar por un procesador. Un medio legible por procesador puede ser, sin limitación, un sistema semiconductor, aparato, dispositivo, o medio de propagación electrónico, magnético, óptico, electromagnético, infrarrojo. Ejemplos más específicos de un medio legible por procesador incluyen, entre otros, una conexión eléctrica (electrónica) teniendo uno o más cables, un disco (magnético) de computadora portátil, una memoria de acceso aleatorio (RAM) (magnética), una memoria de solo lectura (ROM) (magnética), una memoria borrable programable de solo lectura (EPROM o memoria flash), una fibra óptica (óptica), un disco compacto re-escribible (CD-RW) (óptico), y un disco compacto portátil de solo lectura (CD-ROM) (óptico). En el bloque 602 del método 600, un dispositivo de reproducción cliente 104 recibe un flujo de contenido de medios en una red 106 desde un dispositivo anfitrión 102. El contenido de medios ¡ncluye, por ejemplo, contenido de audio/video y/o video. En el bloque 604, el dispositivo cliente 104 mantiene los datos del contenido de medios en una memoria intermedia cliente 208. Durante la reproducción del flujo de contenido de medios, la memoria intermedia es usada para suavizar las variaciones en la entrega de datos debido a fluctuaciones en el ancho de banda (ej. , debido a fallos breves de la red causados por el tráfico cruzado de la red, interferencia, recepción inalámbrica deficiente, etc.), para que no sean tan detectables al usuario durante la reproducción del contenido. En el bloque 606, un monitor de memoria intermedia 21 8 monitorea el nivel de llenado de los datos en la memoria intermedia 208, y en el bloque 608 los reportes de llenado de memoria intermedia 210(1 ) son generados basado en el monitoreo de la memoria intermedia. De esta manera mientras el contenido de medios fluye hacia la memoria intermedia y es consumida por el dispositivo de reproducción cliente 104, los reportes de llenado de memoria intermedia son generados por el monitor de memoria intermedia que indica la cantidad de datos presentes en la memoria intermedia a varios tiempos durante el flujo de contenido. En el bloque 610 del método 600, un módulo de detección y recuperación de desplazamiento de reloj (206, 502) determina si hay desplazamiento de reloj presente entre el reloj en el dispositivo anfitrión 1 02 que está regulando el flujo de contenido de medios y el reloj en el dispositivo cliente 104 que está regulando la reproducción de los contenido de medios. El método 700, continuado en la figura 7 y mencionado posteriormente, además describe como es determinado el desplazamiento de reloj. En el bloque 612 del método 600, la cantidad de desplazamiento de reloj es calculada. Como se menciona anteriormente en la presente, la cantidad de desplazamiento de reloj es calculada de acuerdo a la siguiente ecuación, donde dpc es una constante, y ft, fO, y í pueden ser determinados de los datos usados para generar el gráfico (es decir, desde los datos en los reportes de llenado de memoria intermedia 210(2)): ch - ce = ft-fO (3) t*dcp En el bloque 614 del método 600, el módulo de detección y recuperación de desplazamiento de reloj (206, 502) o el módulo de recuperación de reloj 500 implementa un método de recuperación de reloj para sincronizar el reloj cliente 204 al reloj anfitrión 202. Los métodos pueden incluir, por ejemplo, ajustar el reloj cliente, ajustar el reloj anfitrión, alterar el flujo de contenido del dispositivo anfitrión (ej. , cuadros en caída), y etcétera. Como se notó anteriormente, el método 700 en la figura 7 además describe como el módulo de detección y recuperación de desplazamiento de reloj (206, 502) determina si hay un desplazamiento de reloj presente entre el reloj anfitrión y el reloj cliente. En el bloque 702 del método 700, el módulo de detección y recuperación (206, 502) traza niveles de llenado de memoria intermedia durante un intervalo de tiempo durante el flujo de contenido de medios al dispositivo cliente 104. En el bloque 704, la pendiente promedio de una línea formada por el trazado es calculada. Calcular la pendiente promedio puede incluir promediar el llenado de memoria intermedia en una ventana de largo tiempo y trazando el resultado para filtrar las fluctuaciones de ancho de banda de red que de otro modo puedan indicar cambios en los niveles de llenado de memoria intermedia. En el bloque. 706, el módulo de detección y recuperación de desplazamiento de reloj (206, 502) determina si hay otros factores que el desplazamiento de reloj, tal como una limitación de red, que pueda estar causando el agotamiento de la(s) memoria(s) intermedia(s) cliente 208. Por ejemplo, si la capacidad de la red es menor que la velocidad de bits del flujo, el llenado de memoria intermedia en el dispositivo cliente 1 04 puede también ser agotado con el tiempo. Monitorear estadísticas adicionales tal como el numero de paquetes retransmitidos/perdidos al nivel de red, la variación de tiempo de viaje redondo con el tiempo, u otras estadísticas pueden identificar una sobrecarga de red. Los resultados del agotamiento de memoria intermedia que están determinados a ser un resultado de las limitaciones de la red por lo tanto pueden ser filtrados cuando se determine si un desplazamiento de reloj está presente entre el reloj anfitrión y el reloj cliente. En el bloque 708, el módulo de detección y recuperación (206, 502) monitorea la pendiente promedio de la línea para determinar si hay un desplazamiento de reloj presente entre el reloj anfitrión y el reloj cliente. Si la pendiente promedio de la línea es cero, entonces el módulo de detección y recuperación (206, 502) determina que no hay desplazamiento de reloj presente, según lo mostrado en el bloque 710. Si la pendiente promedio de la línea es negativa, el módulo de detección y recuperación (206, 502) determina que el reloj cliente es más rápido que el reloj anfitrión, según lo mostrado en el bloque 712. Si la pendiente promedio de la línea es positiva, el módulo de detección y recuperación (206, 502) determina que el reloj cliente es más lento que el reloj anfitrión, según lo mostrado en el bloque 714.
AMBIENTE COMPUTACIONAL EJEMPLAR La figura 8 ilustra un ambiente computacional ejemplar conveniente para la ¡mplementación de dispositivos computacionales tal como un dispositivo anfitrión 102 y un dispositivo de reproducción cliente reproductor 104 según lo mencionado con referencia a las figuras 1 -7. Aunque una configuración específica es mostrada en la figura 8, tales dispositivos computacionales pueden ser implementados en otras configuraciones computacionales.
El ambiente computacional 800 incluye un sistema computacional de propósito general en la forma de una computadora 802. Los componentes de la computadora 802 pueden incluir, pero no están limitados a, uno o más procesadores o unidades de proceso 804, una memoria de sistema 806, y un bus de sistema 808 que acopla varios componentes del sistema incluyendo el procesador 804 a la memoria de sistema 806. El bus del sistema 808 representa uno o más de cualquiera de varios tipos de estructuras de bus, incluyendo un bus de memoria o controlador de memoria, un bus periférico, un puerto acelerado de gráficos, y un procesador o bus local usando cualquiera de una variedad de arquitecturas de bus. Un ejemplo de un bus de sistema 808 sería un bus componente periférico de interconexión (PCI), también conocido como bus Mezanine. La computadora 802 incluye una variedad de medios legibles por computadora. Tales medios pueden ser cualquier medio disponible que es accesible por la computadora 802 e incluye tanto medios volátiles como no volátiles, medios removibles y no removibles. La memoria de sistema 806 incluye medios legibles por computadora en la forma de memoria volátil, tal como la memoria de acceso aleatorio (RAM) 810, y/o memoria no volátil, tal como la memoria de solo lectura (ROM) 812. Un sistema de entrada/salida básico (BIOS) 814, conteniendo las rutinas básicas que ayudan a transferir información entre los elementos dentro de la computadora 802, tal como durante el inicio, está almacenado en la ROM 812.
RAM 810 contiene datos y/o módulos de programa que inmediatamente son accesibles a y/u operados presentemente por la unidad de proceso 804. La computadora 802 también puede incluir otros medios de almacenamiento computacionales removibles/no removibles, volátiles/no volátiles. A manera de ejemplo, la figura 8 ilustra una unidad de disco duro 816 para leer desde y escribir a un medio magnético no removible, no volátil (no mostrado), una unidad de disco magnético 818 para leer desde y escribir a un disco magnético removible, no volátil 820 (ej. , un "floppy disk"), y una unidad de disco óptico 822 para leer desde y/o escribir a un disco óptico removible, no volátil 824 tal como un CD-ROM, DVD-ROM, u otro medio óptico. La unidad de disco duro 816, la unidad de disco magnético 81 8, y la unidad de disco óptico 822 están conectadas cada una al bus del sistema 808 por una o más interfaces de medios de datos 825. Alternativamente, la unidad de disco duro 816, unidad de disco magnético 81 8, y unidad de disco óptico 822 pueden estar conectadas al bus del sistema 808 por una interfase SCSI (no mostrada). Las unidades de disco y sus medios legibles por computadora asociados proporcionan almacenamiento no volátil de instrucciones legibles por computadora, estructuras de datos, módulos de programa, y otros datos para la computadora 802. Aunque el ejemplo ilustra un disco duro 816, un disco magnético removible 820, y un disco óptico removible 824, es para ser apreciado que otros tipos de medios legibles por computadora que pueden almacenar datos son accesibles por una computadora, tal como cassetes magnéticos u otros dispositivos de almacenamiento magnético, tarjetas de memoria flash, CD-ROM, discos versátiles digitales (DVD) u otro almacenamiento óptico, memoria de acceso aleatorio (RAM), memoria de solo lectura (ROM), memoria programable eléctricamente borrable de solo lectura (EEPROM), y similares, pueden también ser utilizados para implementar el ambiente y sistema computacional ejemplar. Cualquier número de módulos de programa puede ser almacenado en el disco duro 816, disco magnético 820, disco óptico 824, ROM 812, y/o RAM 810, incluyendo a manera de ejemplo, un sistema operativo 826, uno o más programas de aplicación 828, otros módulos de programa 830, y datos de programa 832. Cada de tal sistema operativo 826, uno o más programas de aplicación 828, otros módulos de programa 830, y datos de programa 832 (o alguna combinación de los mismos) pueden incluir una modalidad de un sistema de esquema de memoria intermedia para información de acceso de red del usuario. La computadora 802 puede incluir una variedad de medios legibles por computadora/procesador identificados como medios de comunicación. Los medios de comunicación abarcan instrucciones legibles por computadora, estructuras de datos, módulos de programa, u otros datos en una señal de datos modulada tal como una onda portadora u otro mecanismo de transporte e incluye cualquier medio de entrega de información. El termino "señal de datos modulada" significa una señal que tiene una o más de sus características ajustadas o cambiadas de tal manera que codifique información en la señal. A manera de ejemplo, y no de limitación, el medio de comunicación incluye medios cableados tal como una red cableada o una conexión de cable directo, y medios inalámbricos tal como medios inalámbricos acústicos, RF, infrarrojos, y otros. Combinaciones de cualquiera de los anteriores están también incluidas dentro del alcance de los medios legibles por computadora. Un usuario puede ingresar comandos e información dentro del sistema de computadora 802 vía dispositivos de entrada tales como un teclado 834 y un dispositivo apuntador 836 (ej. , un "ratón"). Otros dispositivos de entrada 838 (no mostrados específicamente) pueden incluir un micrófono, palanca de juego, cojín de juego, antena parabólica, puerto serial, escáner, y/o similares. Estos y otros dispositivos de entrada están conectados a la unidad de procesamiento 804 vía interfases de entrada/salida 840 que están acopladas al bus del sistema 808, pero pueden estar conectados por otras interfases y estructuras de bus, tal como un puerto paralelo, puerto de juego, o un bus universal serial (USB). Un monitor 842 u otro tipo de dispositivo visualizador puede también estar conectado al bus del sistema 808 vía una interfase, tal como un adaptador de video 844. Además del monitor 842, otros dispositivos de salida periféricos pueden incluir componentes tales como bocinas (no mostradas) y una impresora 846 que puede estar conectada a la computadora 802 vía las interfases de entrada/salida .840.
La computadora 802 puede operar en un ambiente de red usando conexiones lógicas a una o más computadoras remotas, tal como un dispositivo de computadora remoto 848. A manera de ejemplo, el dispositivo de computadora remoto 848 puede ser una computadora personal, computadora portátil, un servidor, un ruteador, una computadora de red, un dispositivo par u otro nodo común de red, y similares. El dispositivo computacional remoto 848 está ilustrado como una computadora portátil que puede incluir muchos o todos los elementos y características descritos en la presente relativos al sistema computacional 802. Conexiones lógicas entre la computadora 802 y la computadora remota 848 están demostradas como una red de área local (LAN) 850 y una red de área general amplia (WAN) 852. Tales ambientes de red son comúnmente localizados en oficinas, redes de computadoras empresariales, intranets, y la Internet. Cuando se impiementa en un ambiente de red LAN, la computadora 802 está conectada a una red local 850 vía una interfase de red o adaptador 854. Cuando se implementa en un ambiente de red WAN, la computadora 802 incluye un módem 856 u otros medios para establecer comunicaciones en la red amplia 852. El módem 856, que puede ser interno o externo a la computadora 802, puede estar conectado al bus del sistema 808 vía interfases de entrada/salida 840 u otros mecanismos apropiados. Es para ser apreciado que las conexiones de red ilustradas son ejemplares y que otros medios de establecer liga(s) de comunicaciones entre las computadoras 802 y 848 pueden ser empleados. En un ambiente de red, tal como el que se ilustra con el ambiente computacional 800, módulos de programa demostrados relativos a la computadora 802, o porciones de la misma, pueden estar almacenados en un dispositivo de memoria de almacenamiento remoto. A manera de ejemplo, programas de aplicación remotos 858 residen en un dispositivo de memoria de computadora remota 848. Para propósitos de ilustración, programas de aplicación y otros componentes de programas ejecutables, tal como el sistema operativo, son ilustrados en la presente como bloques discretos aunque es reconocido que tales programas y componentes residen a varios tiempos en diferentes componentes de almacenamiento del sistema computacional 802, y son ejecutados por el(los) procesador(es) de datos de la computadora.
CONCLUSIÓN Aunque la invención ha sido descrita en un lenguaje específico a las características estructurales y/o actos metodológicos, es para ser entendido que la ¡nvención definida en las reivindicaciones adjuntas no esta necesariamente limitada a las características específicas o actos descritos. En vez, las características específicas y actos son divulgados como formas ejemplares de implementación de la invención reivindicada.

Claims (9)

  1. REIVINDICACIONES 1 . Un método comprendiendo: recepción de flujo de contenido desde un dispositivo anfitrión; mantenimiento de datos del flujo de contenido en una memoria intermedia del dispositivo cliente; monitoreo de un nivel de llenado de memoria intermedia que refleja un nivel de datos en la memoria intermedia; y basándose en el monitoreo, la determinación de si hay un desplazamiento de reloj entre un reloj anfitrión y un reloj cliente.
  2. 2. Un método según la reivindicación 1 , en donde la determinación comprende: trazado de niveles de llenado de memoria intermedia durante un intervalo de tiempo; cálculo de una pendiente promedio de una línea formada por el trazado; y monitoreo de la pendiente promedio de la línea.
  3. 3. Un método según la reivindicación 2, en donde la pendiente promedio de la línea es cero, y la determinación comprende la determinación de que no hay un desplazamiento de reloj entre el reloj anfitrión y el reloj cliente.
  4. 4. Un método según la reivindicación 2, en donde la pendiente promedio de la línea es negativa, y la determinación comprende la determinación de que el reloj cliente es más rápido que el reloj anfitrión.
  5. 5. Un método según la reivindicación 2, en donde la pendiente promedio de la línea es positiva, y la determinación, comprende la determinación de que el reloj cliente es más lento que el reloj anfitrión.
  6. 6. Un método según la reivindicación 2, en donde el cálculo de la pendiente promedio de una línea comprende la filtración de fluctuaciones de ancho de banda de una red en la cual el flujo de contenido es transmitido.
  7. 7. Un método según la reivindicación 1 , en donde el monitoreo y la determinación son llevadas a cabo en el dispositivo anfitrión y el monitoreo comprende el envío de reportes del nivel de llenado de memoria intermedia al dispositivo anfitrión desde el dispositivo cliente.
  8. 8. Un método según la reivindicación 1 , en donde la determinación comprende la notificación al dispositivo anfitrión si hay un desplazamiento de reloj entre el reloj anfitrión y el reloj cliente, y el monitoreo y la determinación son llevadas a cabo en un dispositivo seleccionad del grupo comprendiendo: el dispositivo cliente; y un tercer dispositivo diferente al dispositivo anfitrión y el dispositivo cliente.
  9. 9. Un método según la reivindicación 1 , además comprendiendo calcular una cantidad de desplazamiento de reloj de acuerdo con ch ce - ft-fO t*dcp en donde: la cantidad de desplazamiento de reloj es igual a ch ce ch es la frecuencia del reloj anfitrión ce es la frecuencia del reloj cliente dpc es una velocidad de generación de datos especificada en el dispositivo anfitrión en bits por segundo; fO es el nivel de llenado de memoria intermedia en el tiempo 0; y ft es el nivel de llenado de memoria intermedia en el tiempo t. 1 0. Un método según la reivindicación 1 , además comprendiendo la implementación de un método de recuperación de reloj para eliminar el desplazamiento de reloj entre el reloj anfitrión y el reloj cliente. 1 1 . Un método según la reivindicación 10, en donde la implementación es seleccionada del grupo consistiendo de: ajustar el reloj cliente; ajustar el reloj anfitrión; alterar el flujo de contenido desde el dispositivo anfitrión; y dejar cuadros de datos en el dispositivo cliente. 12. Un medio legible por procesador comprendiendo instrucciones ejecutables por procesador configurado para: transmitir flujo de contenido desde un dispositivo anfitrión a un dispositivo cliente; monitorear un nivel de llenado de memoria intermedia de una memoria intermedia de datos en el dispositivo cliente durante un intervalo de tiempo medido; y con base en el monitoreo, la determinación si un desplazamiento de reloj está presente entre un reloj anfitrión en el dispositivo anfitrión y un reloj cliente en el dispositivo cliente. 13. Un medio legible por procesador según la reivindicación 12, en donde la determinación comprende: calcular una velocidad de cambio en el nivel de llenado de memoria intermedia durante el intervalo de tiempo medido; y con base en la velocidad de cambio en el nivel de llenado de memoria intermedia, determinar que el desplazamiento de reloj está presente. 14. Un medio legible por procesador según la reivindicación 13, en donde la velocidad de cambio en el nivel de llenado de memoria intermedia es una velocidad positiva constante de cambio, y la determinación de que el desplazamiento de reloj está presente comprende la determinación de que el reloj cliente está operando a una frecuencia menor que el reloj anfitrión. 15. Un medio legible por procesador según la reivindicación 1 3, en donde la velocidad de cambio en el nivel de llenado de memoria intermedia es una velocidad de cambio negativa constante, y la determinación de que el desplazamiento de reloj está presente comprende la determinación de que el reloj cliente está operando a una frecuencia mayor que el reloj anfitrión. 16. Un medio legible por procesador según la reivindicación 1 3, teniendo instrucciones adicionales ejecutables por procesador configuradas para calcular una cantidad de desplazamiento de reloj basado en la velocidad de cambio en el nivel de llenado de memoria intermedia. 17. Un medio legible por procesador según la reivindicación 16, en donde la cantidad de desplazamiento de reloj es calculada de acuerdo con ch - ce = ft-fO t*dcp en donde: la cantidad de desplazamiento de reloj es igual a ch -ce; ch es la frecuencia del reloj anfitrión; ce es la frecuencia del reloj cliente dpc es una velocidad de generación de datos especificada en el dispositivo anfitrión en bits por segundo; fO es el nivel de llenado de memoria intermedia en el tiempo 0, y ft es el nivel de llenado de memoria intermedia en el tiempo í. 1 8. Un sistema comprendiendo: un dispositivo cliente configurado para recibir contenido de medios desde un dispositivo anfitrión y para la reproducción del contenido de medios; un monitor de memoria intermedia en el dispositivo cliente configurado para monitorear una memoria intermedia cliente .y generar reportes de llenado de memoria intermedia indicando las cantidades de datos en la memoria intermedia cliente; y un modulo de detección y recuperación de desplazamiento de reloj configurado para determinar de los reportes de llenado de memoria intermedia si el desplazamiento de reloj está presente entre un reloj anfitrión y un reloj cliente. 1 9. Un sistema según la reivindicación 18, en donde el modulo de detección y recuperación de desplazamiento de reloj está configurado en el dispositivo anfitrión para recibir los reportes de llenado de memoria intermedia del monitor de memoria intermedia e implementar un método de recuperación para corregir el desplazamiento de reloj. 20. Un sistema según la reivindicación 1 8, además comprendiendo un módulo de recuperación de reloj en el dispositivo anfitrión, en donde el módulo de detección y recuperación de desplazamiento de reloj está además configurado para enviar información de desplazamiento de reloj al módulo de recuperación de reloj y el módulo de recuperación de reloj está configurado para impiementar un método de recuperación para corregir el desplazamiento de reloj.
MXPA06001522A 2005-02-11 2006-02-08 Deteccion de desplazamiento de reloj en dispositivos en red a traves del monitoreo del llenado de menoria intermedia cliente. MXPA06001522A (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/056,058 US20060184697A1 (en) 2005-02-11 2005-02-11 Detecting clock drift in networked devices through monitoring client buffer fullness

Publications (1)

Publication Number Publication Date
MXPA06001522A true MXPA06001522A (es) 2006-09-20

Family

ID=35783023

Family Applications (1)

Application Number Title Priority Date Filing Date
MXPA06001522A MXPA06001522A (es) 2005-02-11 2006-02-08 Deteccion de desplazamiento de reloj en dispositivos en red a traves del monitoreo del llenado de menoria intermedia cliente.

Country Status (10)

Country Link
US (1) US20060184697A1 (es)
EP (1) EP1691514A1 (es)
JP (1) JP5198734B2 (es)
KR (1) KR20060090923A (es)
CN (1) CN1825955B (es)
AU (1) AU2006200155A1 (es)
BR (1) BRPI0600248A (es)
CA (1) CA2532486A1 (es)
MX (1) MXPA06001522A (es)
RU (1) RU2408149C2 (es)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060209684A1 (en) * 2005-03-18 2006-09-21 Via Technologies, Inc. Data rate controller, and method of control thereof
US20070239839A1 (en) * 2006-04-06 2007-10-11 Buday Michael E Method for multimedia review synchronization
US7571340B2 (en) * 2006-06-13 2009-08-04 Intel Corporation Eliminating receiver clock drift caused by voltage and temperature change in a high-speed I/O system that uses a forwarded clock
US7765315B2 (en) * 2007-01-08 2010-07-27 Apple Inc. Time synchronization of multiple time-based data streams with independent clocks
US20080212690A1 (en) * 2007-03-01 2008-09-04 Qualcomm Incorporated Transcoder media time conversion
EP2073552A1 (en) 2007-12-21 2009-06-24 Telefonaktiebolaget L M Ericsson (Publ) Method and arrangement for controlling a media consumption rate of a receiver
EP2245856A1 (en) * 2008-01-28 2010-11-03 Nxp B.V. Device and method for decoding digital tv broadcast
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
CN101277209B (zh) * 2008-05-14 2010-07-14 山东大学 网络流媒体传输断线重连技术
US7949775B2 (en) 2008-05-30 2011-05-24 Microsoft Corporation Stream selection for enhanced media streaming
US8265140B2 (en) 2008-09-30 2012-09-11 Microsoft Corporation Fine-grained client-side control of scalable media delivery
US8621044B2 (en) * 2009-03-16 2013-12-31 Microsoft Corporation Smooth, stateless client media streaming
US8301794B2 (en) 2010-04-16 2012-10-30 Microsoft Corporation Media content improved playback quality
US9276989B2 (en) * 2012-03-30 2016-03-01 Adobe Systems Incorporated Buffering in HTTP streaming client
RU2519470C1 (ru) * 2012-10-17 2014-06-10 Общество с ограниченной ответственностью "Сетевизор" Способ защищенного распространения мультимедийной информации посредством развертывания децентрализованной сети типа peer-to-peer и децентрализованная сеть для осуществления способа
US9930082B2 (en) 2012-11-20 2018-03-27 Nvidia Corporation Method and system for network driven automatic adaptive rendering impedance
US10616086B2 (en) 2012-12-27 2020-04-07 Navidia Corporation Network adaptive latency reduction through frame rate control
US9819604B2 (en) 2013-07-31 2017-11-14 Nvidia Corporation Real time network adaptive low latency transport stream muxing of audio/video streams for miracast
US20150098020A1 (en) * 2013-10-07 2015-04-09 Nvidia Corporation Method and system for buffer level based frame rate recovery
US9756141B2 (en) * 2015-06-04 2017-09-05 Airwatch Llc Media content consumption analytics
CN114138057A (zh) * 2021-11-19 2022-03-04 广西电网有限责任公司 基于agent的智能化时钟对时装置及使用方法
WO2023164301A2 (en) * 2022-02-28 2023-08-31 Arris Enterprises Llc Method of measuring timing holdover performance in an r-phy system

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0792654B2 (ja) * 1992-10-23 1995-10-09 インターナショナル・ビジネス・マシーンズ・コーポレイション ビデオ・データ・フレーム伝送方法および装置
CA2140850C (en) * 1994-02-24 1999-09-21 Howard Paul Katseff Networked system for display of multimedia presentations
GB9410943D0 (en) * 1994-06-01 1994-07-20 Newbridge Networks Corp Clock recovery unit
SE510170C2 (sv) * 1997-05-16 1999-04-26 Ericsson Telefon Ab L M Metod och anordning för styrning av datapaketflöde medelst baktrycksmeddelande
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
US6507587B1 (en) * 1998-10-09 2003-01-14 Microsoft Corporation Method of specifying the amount of bandwidth to reserve for use in network communications
US6519004B1 (en) * 1998-10-09 2003-02-11 Microsoft Corporation Method for transmitting video information over a communication channel
US6611530B1 (en) * 1999-09-21 2003-08-26 Hewlett-Packard Development Company, L.P. Video communication using multiple streams
US6757273B1 (en) * 2000-02-07 2004-06-29 Nokia Corporation Apparatus, and associated method, for communicating streaming video in a radio communication system
JP2001257715A (ja) * 2000-03-09 2001-09-21 Nippon Hoso Kyokai <Nhk> 蓄積送信端末
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 엘지전자 주식회사 주문형 비디오 시스템에서 동영상의 스트리밍 방법
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
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
CN1464131A (zh) * 2002-06-13 2003-12-31 中国石化上海石油化工股份有限公司 用于生产阳离子染料可染丙纶的染色添加剂的制备方法
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
WO2004072765A2 (en) * 2003-02-13 2004-08-26 Nokia Corporation Method for signaling streaming quality adaptation and control mechanisms in multimedia streaming
GB0304808D0 (en) * 2003-03-03 2003-04-09 Cambridge Internetworking Ltd Managing data transmission
US7844727B2 (en) * 2003-04-24 2010-11-30 Nokia Corporation Method and device for proactive rate adaptation signaling

Also Published As

Publication number Publication date
AU2006200155A1 (en) 2006-08-31
CN1825955B (zh) 2011-01-19
RU2006101067A (ru) 2007-08-10
US20060184697A1 (en) 2006-08-17
JP5198734B2 (ja) 2013-05-15
RU2408149C2 (ru) 2010-12-27
EP1691514A1 (en) 2006-08-16
CA2532486A1 (en) 2006-08-11
BRPI0600248A (pt) 2006-10-03
KR20060090923A (ko) 2006-08-17
JP2006222976A (ja) 2006-08-24
CN1825955A (zh) 2006-08-30

Similar Documents

Publication Publication Date Title
MXPA06001522A (es) Deteccion de desplazamiento de reloj en dispositivos en red a traves del monitoreo del llenado de menoria intermedia cliente.
US7571246B2 (en) Media transrating over a bandwidth-limited network
US10972772B2 (en) Variable bit video streams for adaptive streaming
EP1891502B1 (en) Flow control for media streaming
US9648385B2 (en) Adaptive streaming for digital content distribution
DK2457174T3 (en) ADAPTIVE STREAMING TO DIGITAL DISTRIBUTION OF CONTENT
US8909807B2 (en) System and method for progressive download using surplus network capacity
US8949452B2 (en) System and method for progressive download with minimal play latency
EP2649599B1 (en) Variable bit video streams for adaptive streaming
US7640352B2 (en) Methods and systems for presentation of media obtained from a media stream
KR101982290B1 (ko) 적응적 스트리밍 서비스의 체감 품질 향상을 위한 콘텐츠 특성 기반 스트리밍 시스템 및 방법
US20130262625A1 (en) Pipelining for parallel network connections to transmit a digital content stream
US20070237073A1 (en) Method and apparatus for improved isochronous data delivery over non-isochronous communication fabric
KR20060068547A (ko) 실시간 스트리밍 서비스의 전송률 제어 방법
US20230328334A1 (en) Adaptive bit rate streaming

Legal Events

Date Code Title Description
FG Grant or registration