ES2291676T3 - Procedimiento y dispositivo para la reproduccion sincronizada de flujos de datos. - Google Patents

Procedimiento y dispositivo para la reproduccion sincronizada de flujos de datos. Download PDF

Info

Publication number
ES2291676T3
ES2291676T3 ES03757621T ES03757621T ES2291676T3 ES 2291676 T3 ES2291676 T3 ES 2291676T3 ES 03757621 T ES03757621 T ES 03757621T ES 03757621 T ES03757621 T ES 03757621T ES 2291676 T3 ES2291676 T3 ES 2291676T3
Authority
ES
Spain
Prior art keywords
data
master
network
reproduction
equipment
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
ES03757621T
Other languages
English (en)
Inventor
Johannes Rietschel
Silvan Sauter
Reto Staheli
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.)
Barix AG
Original Assignee
Barix AG
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 Barix AG filed Critical Barix AG
Application granted granted Critical
Publication of ES2291676T3 publication Critical patent/ES2291676T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0638Clock or time synchronisation among nodes; Internode synchronisation
    • H04J3/0658Clock or time synchronisation among packet nodes
    • H04J3/0661Clock or time synchronisation among packet nodes using timestamps
    • H04J3/0664Clock or time synchronisation among packet nodes using timestamps unidirectional timestamps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/764Media network packet handling at the destination 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1863Arrangements for providing special services to substations for broadcast or conference, e.g. multicast comprising mechanisms for improved reliability, e.g. status reports
    • H04L12/1877Measures taken prior to transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04RLOUDSPEAKERS, MICROPHONES, GRAMOPHONE PICK-UPS OR LIKE ACOUSTIC ELECTROMECHANICAL TRANSDUCERS; DEAF-AID SETS; PUBLIC ADDRESS SYSTEMS
    • H04R27/00Public address systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0638Clock or time synchronisation among nodes; Internode synchronisation
    • H04J3/0641Change of the master or reference, e.g. take-over or failure of the master
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0638Clock or time synchronisation among nodes; Internode synchronisation
    • H04J3/0658Clock or time synchronisation among packet nodes
    • H04J3/0661Clock or time synchronisation among packet nodes using timestamps
    • H04J3/0667Bidirectional timestamps, e.g. NTP or PTP for compensation of clock drift and for compensation of propagation delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04RLOUDSPEAKERS, MICROPHONES, GRAMOPHONE PICK-UPS OR LIKE ACOUSTIC ELECTROMECHANICAL TRANSDUCERS; DEAF-AID SETS; PUBLIC ADDRESS SYSTEMS
    • H04R2227/00Details of public address [PA] systems covered by H04R27/00 but not provided for in any of its subgroups
    • H04R2227/003Digital PA systems using, e.g. LAN or internet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04RLOUDSPEAKERS, MICROPHONES, GRAMOPHONE PICK-UPS OR LIKE ACOUSTIC ELECTROMECHANICAL TRANSDUCERS; DEAF-AID SETS; PUBLIC ADDRESS SYSTEMS
    • H04R2227/00Details of public address [PA] systems covered by H04R27/00 but not provided for in any of its subgroups
    • H04R2227/005Audio distribution systems for home, i.e. multi-room use
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04RLOUDSPEAKERS, MICROPHONES, GRAMOPHONE PICK-UPS OR LIKE ACOUSTIC ELECTROMECHANICAL TRANSDUCERS; DEAF-AID SETS; PUBLIC ADDRESS SYSTEMS
    • H04R2420/00Details of connection covered by H04R, not provided for in its groups
    • H04R2420/07Applications of wireless loudspeakers or wireless microphones

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Radar Systems Or Details Thereof (AREA)

Abstract

Procedimiento para la reproducción de flujos o paquetes de datos transmitidos a través de al menos una red (4), mediante al menos dos equipos de reproducción (1, 2) conectados al menos indirectamente a la red (4), caracterizado porque para la sincronización de la reproducción con los al menos dos equipos de reproducción (1, 2), uno de los equipos de reproducción que sirve de maestro (1) define su reloj interno como referencia y los otros equipos de reproducción (2) que sirven de esclavos ajustan su reloj interno, a través de la red (4), al del maestro (1), o bien llevan una copia del reloj de maestro, efectuando la reproducción de flujos o paquetes de datos en función de dicho reloj ajustado o de la copia del reloj de maestro.

Description

Procedimiento y dispositivo para la reproducción sincronizada de flujos de datos.
Ámbito técnico
La presente invención se refiere a un procedimiento para la reproducción de flujos o paquetes de datos transmitidos a través de al menos una red, mediante al menos dos equipos de reproducción conectados al menos indirectamente a la red. Asimismo, se refiere a un programa de procesamiento de datos para realizar un procedimiento de este tipo, así como a un dispositivo para realizar un procedimiento de este tipo.
Estado de la técnica
La transmisión de flujos de datos multimedia, almacenados en formato digital, a través de una infraestructura de redes, el almacenamiento de dichos flujos en equipos similares a ordenadores y la reproducción en aplicaciones tanto profesionales como domésticas están ya omnipresentes. Particularmente en el ámbito de audio, al haber logrado reducir fuertemente las velocidades y los volúmenes de datos, necesarios para la transmisión y el almacenamiento, gracias a procedimientos de compresión efectivos (MP3). En el segmento de vídeo, hay mucha gente trabajando febrilmente por conseguir procedimientos de compresión cada vez mejores (MPEG-4) para permitir también aquí la disponibilidad "online" y, por ejemplo, la llamada en tiempo real de largometrajes con la infraestructura usual (DSL, módem alámbrico y PC). En el ámbito doméstico se abriría un gran mercado, si los datos de audio se sincronizaran con mucha precisión, sin pérdida de calidad, es decir de forma digital con corrección de errores, siendo emitidos por diversos medios, pero en particular por radiotransmisión. Los procedimientos conocidos hasta ahora (por ejemplo, la modulación analógica de los datos en soportes de alta frecuencia sin canal de retorno) no son de alta calidad ni son de funcionamiento seguro. Los sistemas fiables, capaces de distribuir de forma fiable, por ejemplo, también un S/PDIF (Sony/Philips Digital Interface, salida de audio digital) u otras señales de audio analógicas, sin pérdida notable de calidad (es decir, con canal de retorno), a través de una infraestructura alámbrica o inalámbrica, no están disponibles hasta la fecha.
El documento EP-A-0542345 describe un procedimiento para la reproducción de datos a través de una red de datos, en la que están dispuestos varios equipos de reproducción. Uno de estos equipos se define como maestro en la red. El maestro se asigna, por ejemplo, en un procedimiento automático. El objetivo de dicho maestro consiste en emitir y coordinar de forma centralizada señales de control. Al parecer, la sincronización de la reproducción de los datos se realiza individualmente.
Ramanathan y col., en el documento "Adaptive feedback techniques for synchronized multmedia retrieval over integrated networks" (IEEE/ACM Transactions on Networking; abril de 1993, páginas 246 - 259), describen un procedimiento para la sincronización de la reproducción de datos con varios equipos de reproducción, sirviendo uno de dichos equipos de reproducción de maestro. Esto se consigue mediante un procedimiento de señalización, un "feedback approach", de los equipos de reproducción a un servidor central. Éste envía cantidades de datos que dependen del estado de sincronización de los respectivos esclavos.
Descripción de la invención
Por lo tanto, la invención tiene el objetivo de proporcionar un procedimiento que permita reproducir sin errores y de forma sincronizada flujos o paquetes de datos transmitidos a través de al menos una red, mediante al menos dos equipos de reproducción conectados al menos indirectamente a la red.
Este objetivo se consigue por el hecho de que para la sincronización de la reproducción con los al menos dos equipos de reproducción, uno de los equipos de reproducción que sirve de maestro define su reloj interno como referencia y los otros equipos de reproducción que sirven de esclavos ajustan su reloj interno, a través de la red, al del maestro, efectuando la reproducción de flujos o paquetes de datos en función de dicho reloj ajustado.
Por lo tanto, la esencia de la invención consiste en garantizar la sincronización de los distintos equipos de reproducción mediante la definición de un reloj de referencia. El término reloj, sin embargo, no ha de entenderse en el sentido exacto, sino más bien en el sentido de un sistema de referencia temporal, dentro del cual todos los miembros del sistema, es decir, el maestro y los esclavos, se ejecutan igual. Dicho con otras palabras, es posible tanto que el citado reloj no corresponda en absoluto a la hora real, como que su velocidad de avance difiera de la velocidad de avance de un reloj. Lo único importante es que los distintos miembros trabajen entre sí en un sistema de tiempo idéntico con el mismo ritmo. Dicho con otras palabras, dado el caso, los esclavos llevan simplemente un reloj o sistema de referencia de avance síncrono con el maestro, para la reproducción de los datos, sin que el reloj o sistema de referencia tenga que ser idéntico al reloj real, existente en el esclavo. Entonces, se realiza ciertamente una copia separada del reloj maestro en los esclavos. Por consiguiente, la sincronización esencial en el marco de esta invención no aspira en primer lugar a poder garantizar condiciones de tiempo real, sino más bien a garantizar la máxima integridad de datos posible, no siendo de máxima importancia el momento de la reproducción, sino únicamente la sincronización relativa. Lo esencial del sistema de sincronización propuesto es que no se trata de que el maestro esté encargado de mantener sincronizados los distintos esclavos, sino de que los distintos esclavos son responsables ellos mismos de su adaptación al maestro, lo cual realizan ellos mismos. Esto ofrece la ventaja de que el maestro no tiene que estar informado obligatoriamente sobre qué otros miembros en la red estén participando en ese momento de forma sincronizada. De esta manera se simplifica considerablemente la administración de un sistema. El maestro únicamente pone a disposición su reloj y el maestro tampoco cambia él mismo este sistema de referencia, aunque difiera mucho de una hora real.
Según una primera forma de realización preferible de la presente invención, en la red se trata de una red en la que se transmiten de forma asíncrona paquetes de datos. La sincronización de flujos de datos tiene relevancia especialmente si la red no es determinante, es decir, si los datos son transmitidos de forma asíncrona. En una red asíncrona no se puede partir de que los datos tarden siempre el mismo tiempo de un punto A a un punto B. Además, los datos no se transmiten a un ritmo constante. Correspondientemente, en una red de esta índole, los datos llegarán de forma inherente, en momentos distintos y por vías distintas (por ejemplo, a través de switches o routers) a los equipos de reproducción, por lo que la sincronización tiene especial importancia.
Según otra forma de realización preferible, el ajuste de la hora en el esclavo se produce no sólo antes de la primera reproducción durante la conexión o conexión adicional del esclavo, sino más bien también periódicamente durante la reproducción de los datos. Esta actualización es importante especialmente en el caso de flujos de datos largos, coherentes, ya que incluso las menores diferencias de la velocidad de avance del reloj interno del maestro y del esclavo pueden provocar una gran diferencia a lo largo de un tiempo prolongado. Típicamente, una sincronización nueva de este tipo se produce cada 30 segundos. Preferentemente, la actualización periódica se usa para realizar en el esclavo una adaptación sistemática de la velocidad de avance del reloj interno del esclavo a la del maestro para compensar diferencias en la característica del tiempo de retardo interno del maestro y el esclavo. Una adaptación sistemática de este tipo que permite cierto "arrastre" entre el esclavo y el maestro, es similar al ajuste de los relojes clásicos en redes (ntp, Network Time Protocol). De este modo, se garantiza una adaptación entre los sistemas de tiempo del maestro y el esclavo y se evita que en caso de un emparejamiento incorrecto simplemente se omitan por ejemplo paquetes de datos en el esclavo o se añadan espacios en blanco para compensar diferencias del tiempo de retardo. No obstante, en caso de grandes diferencias de tiempo (típicamente, por ejemplo, de más de 100 ms en el ámbito de audio) que, sin embargo, típicamente se producen sólo en caso de problemas en la transmisión de datos, puede ser necesario realizar la reproducción en el esclavo mediante este tipo de intervenciones graduadas. Típicamente, la adaptación sistemática consiste en escalar el reloj interno del esclavo o su velocidad de avance con un factor de corrección
constante.
El ajuste del reloj interno en el esclavo puede realizarse de distintas maneras. Lo importante es especialmente que no se consulta simplemente el tiempo en el maestro y después de inicia su transición tal cual en el esclavo, sino que se tiene en cuenta el hecho de que la transmisión del tiempo o su consulta a través de la red también ha tardado cierto tiempo. Precisamente con la precisión de tiempo deseada en el marco de esta invención, en el ámbito de los tiempos de transmisión típicos en redes, debería tenerse en cuenta esto. Preferentemente, se procede de tal forma que el reloj interno del maestro sea consultado por el esclavo, preferentemente varias veces, y que al menos uno, preferentemente una pluralidad de paquetes de datos que pueden ser idénticos a paquetes para consultar el tiempo en el maestro, se transmitan del esclavo al maestro y de vuelta, y el reloj interno en el esclavo se adapte al reloj en el maestro, en función especialmente de un tiempo de retardo medio de paquetes de datos entre el maestro y el esclavo. Dicho con otras palabras, mediante varias consultas se determina un tiempo medio de ejecución de datos, tal como es típico para la red específica, y sólo después de conocer este tiempo típico de ejecución de datos se adapta el tiempo en el esclavo, teniéndolo en cuenta. Para ello, sin embargo, normalmente no sólo es relevante el tiempo de retardo de datos a través de la red, sino también los tiempos de tratamiento en los equipos. Por lo tanto, adicionalmente al tiempo de retardo como valor medio deberían tenerse en cuenta los tiempos de procesamiento en los equipos, habitualmente como aportación aditiva constante, adicional.
Al poner en servicio un sistema de este tipo de equipos de reproducción, es importante definir a tiempo un maestro para que los distintos equipos de reproducción no intenten todos mutuamente compensarse unos respecto a otros. Según una forma de realización preferible de la invención, esto se hace de forma ventajosa de tal manera que el primer equipo de reproducción encargado de la reproducción se defina automáticamente como maestro. Típicamente, esto se realiza de tal forma que un equipo, al ser invitado a reproducir, se entiende inicialmente como maestro potencial, pero no inicia acciones típicos del maestro. En el momento en que reciba una consulta de otro equipo de reproducción, de facilitar el flujo de datos reproducido, el equipo se convierte en maestro. El aparato que realiza la consulta se convierte automáticamente en esclavo. Evidentemente, también es posible definir un aparato como maestro, pero esta solución tiene la desventaja de que, si dicho maestro no debe operar o si falla alguna vez por cualquier razón, el sistema se encuentra en un estado indefinido. De manera correspondiente, además debería especificarse en el protocolo que, en caso del fallo o la desconexión del maestro actual, se defina automáticamente como nuevo maestro en la red el primer equipo que lo realice asumiendo inmediatamente la función de maestro.
El procedimiento propuesto se aplica preferentemente en el ámbito de datos de audio o de vídeo digitales o una combinación de ellos. De forma especialmente preferible, en los datos o flujos de datos se trata de ficheros de audio comprimidos o no comprimidos tales como MP3, WAV, MPEG, Windows Media, etc.. Generalmente, en la reproducción puede tratarse o bien de la reproducción llamada "multi-room", es decir, la reproducción de ficheros de medios, especialmente, ficheros de audio idénticos, de forma sincronizada, o bien, de la reproducción llamada "multicanales" en la que, especialmente en el caso de ficheros de audio en formato estéreo o multicanales como, por ejemplo, Dolby 5.1, DTS etc., los diferentes canales de reproducen en diferentes equipos de reproducción.
Según otra forma de realización preferible de la presente invención, al menos una parte de los flujos o paquetes de datos se almacena de forma intermedia antes de la reproducción en los equipos de reproducción, situándose el almacenamiento intermedio de los ficheros de audio típicamente en un intervalo de aprox. 1 a 5 seg. Preferentemente y con una gran ventaja, por ejemplo, en el caso de aplicaciones lingüísticas en tiempo real, el almacenamiento intermedio es dinámico y se adapta a las circunstancias de la red. Cuanto más pequeños sean los búfer, tanto más corta será el tiempo de latencia que se debe esperar hasta que se pueda reproducir un stream. Por consiguiente, resulta ventajoso usar búfer pequeños. Cuanto mayor sea la calidad de la red empleada, tanto más pequeños podrán ser los búfer, porque en este caso se requieren menos fallos y, por tanto, también menos repeticiones. Una alocación dinámica tiene en cuenta de forma óptima este hecho y puede usarse para optimizar el tiempo de latencia. Este búfer que, preferentemente, tiene lugar en un llamado búfer anular, permite una sincronización exacta en un lado, a saber, igualando simplemente el puntero de salida en el maestro y el esclavo, y por otra parte, así resultan también mucho más fáciles los mecanismos de corrección (los llamados protocolos de reintento), lo que es de gran importancia en relación con la integridad de datos a la que se aspira aquí.
Especialmente en relación con la salida de ficheros de audio resulta ventajoso concebir la sincronización de los distintos equipos de reproducción en el rango de menos de 100 ms. Preferentemente, las diferencias del tiempo de retardo deben ser inferiores a 10 ms o inferiores a 2 ms, especialmente inferiores a 1 ms. De la psicoacústica se conoce que un oído normal es capaz de percibir como eco diferencias mayores del tiempo de retardo, superiores a 30 ms, que es justo lo que pretende evitar la presente invención. Se ha mostrado que también en el modo "multicanales" ya existente basta con una precisión del orden de 1 ms. En una red típica, la sincronización de flujos de datos con esta precisión ya no puede garantizarse sin una sincronización activa de los distintos equipos de reproducción, en especial, sin la sincronización activa no es posible conectar simplemente otros miembros. En la red se trata típicamente de una red alámbrica clásica, pero preferentemente se puede tratar también de una red inalámbrica, especialmente de una red de radiotransmisión (por ejemplo, Wifi, wireless fidelity (fidelidad inalámbrica), también llamado IEEE802.11b, o estándares sucesores con una mayor velocidad de datos como, por ejemplo, IEEE802.11a). Si, como propone otra forma de realización preferible de la presente invención, se ha de conectar otro equipo de reproducción de manera sincronizada, esto se efectúa preferentemente de tal forma que el equipo conectado adicionalmente se ajusta automáticamente al maestro existente iniciando él mismo la reproducción tras el almacenamiento intermedio de una parte de los datos. Asimismo, eventualmente puede resultar muy ventajoso poder ajustar de manera selectiva el retardo de un cliente con respecto al maestro. De este modo, los espacios grandes, tales como iglesias etc. pueden alimentarse mucho mejor de datos acústicos, pudiendo compensarse las propiedades acústicas/los tiempos de retardo en este tipo de edificios. En este caso, sin embargo, se trata de un retardo selectivo, es decir, deseado y sistemático. La diferencia de tiempo correspondiente en la reproducción en diferentes equipos está ajustada de forma constante y sigue sin-
cronizada.
Como fuentes de datos para el maestro pueden entrar en consideración diferentes fuentes de datos. Los paquetes o flujos de datos o bien, pueden recogerse de un servidor de datos separado, o pueden ser enviados por éste, o pueden recogerse en uno de los equipos de reproducción o ser enviados por éste, o pueden estar disponibles ya en los equipos de reproducción, o pueden ponerse a disposición al sistema en forma digital tras alimentarse en forma analógica, mediante un convertidor analógico/digital.
Otra forma de realización preferible se caracteriza porque los paquetes o flujos de datos son leídos desde una fuente de datos a un búfer cíclico en el maestro, estando provisto cada byte leído de una dirección unívoca (para mayor facilitad, simplemente un contador de 32 bits, comenzando por 0), y porque el maestro, en un proceso independiente de la lectura del flujo de datos al búfer cíclico, envía los datos del búfer cíclico a la red por bloques, en particular inmediatamente después de su lectura, por difusión amplia, especialmente por difusión amplia UDP y, además, especialmente por multidifusión, habiendo sido complementados con un encabezado de protocolo que contiene, entre otras cosas, la dirección del primer byte transmitido, la hora exacta del maestro, la dirección del siguiente byte que será transmitido por el maestro al codificador/descodificador del maestro. Generalmente, los datos pueden ser transmitidos de distintas maneras por el maestro a los esclavos. La manera más sencilla es la llamada unidifusión, es decir, el maestro envía los datos, por separado, a cada esclavo. Sin embargo, en caso de existir varios, esto conduce a una carga innecesaria de la red. Por consiguiente, preferentemente, la distribución debería realizase de forma optimizada, de modo que el maestro transmita los datos, por multidifusión, a todos los demás equipos de reproducción. De esta manera, el ancho de banda necesario permanece constante independientemente del número de esclavos (para el ajuste de tiempo se añaden sólo posibles paquetes de sincronización adicionales, que prácticamente no ocupan nada del ancho de banda). El puntero de salida o su posición en el maestro se transmite a los esclavos como dirección del siguiente byte que será transmitido por el maestro al codificador/descodificador del maestro. Se parte de que el maestro y el esclavo disponen de arquitecturas similares, en las que el intervalo de tiempo entre la excitación del codificador/descodificador y la salida efectiva por la salida de audio (altavoz) son prácticamente idénticos. Si no es el caso han de considerarse correcciones correspondientes (necesarias, por ejemplo, en el caso de retrasos de amplificación importantes en uno de los equipos de salida etc.). Como ya se ha mencionado, la posición del puntero de salida en el maestro puede transmitirse simplemente como encabezado con los paquetes de datos en sí. Alternativamente o adicionalmente, sin embargo, también es posible transmitir la dirección del siguiente byte que será transmitido por el maestro al codificador/descodificador del maestro, al menos en parte en bloques de control independientes, que pueden ser idénticos a los bloques de control para la verificación del reloj en el maestro. Para ello, también es necesario especialmente implicar el tiempo de retardo del paquete con la ayuda del tiempo de retardo medio o del tiempo de retardo transmitido por el servidor, y dado el caso, corregir el contador correspondientemente.
Como ya se ha mencionado anteriormente, la integridad de los datos es de gran importancia en relación con la presente invención. Está claro que si se aspira a una transmisión a ser posible exenta de pérdida, los procedimientos unidireccionales (como, por ejemplo, la transmisión analógica o digital sin canal de retorno/acuse de recibo como la mencionada multidifusión/difusión amplia) no son suficientes, teniendo que elegir un procedimiento de comunicación bidireccional con almacenamiento intermedio de datos, para que en caso de una pérdida temporal de datos pueda solicitarse una repetición y realizarse una nueva transmisión, antes de que se vacíen los búfer locales con los datos ya transmitidos. De manera correspondiente, preferentemente se prevé un mecanismo de corrección o "protocolo de reintento", a través del cual puedan corregirse paquetes de datos perdidos o dañados en los esclavos. Correspondientemente, para asegurar la integridad de datos en caso de una pérdida de una parte de los datos en la red, detectada por un esclavo, dicha parte de datos es reenviada por el maestro tras el requerimiento del esclavo. Esto no se efectúa inmediatamente después de la consulta, sino que el maestro realiza este reenvío sólo después de un retraso. Típicamente, este retraso es de unos ms. La razón de ello es que, habitualmente, en una red, una transmisión defectuosa afecta al mismo tiempo a varios esclavos a la vez. Correspondientemente, serán varios los esclavos que dirigirán un requerimiento al maestro. Ahora, los esclavos se programan de tal forma que emitan los requerimientos de manera escalonada (pudiendo corresponder a un esquema de tiempo programado o a diferencias de tiempo aleatorias entre las consultas). Si ahora el maestro espera con la transmisión de los datos corregidos hasta que todos los esclavos en los que se detectó una entrada defectuosa hayan emitido su requerimiento, se puede evitar el envío múltiple de requerimientos idénticos por la red.
Además, preferentemente, se procede de tal manera que un esclavo sólo emite un requerimiento de reintento, mientras no haya observado un número determinado (al menos uno) de requerimientos iguales procedentes de otros equipos de reproducción o esclavos en la red. Esto corresponde a una repetición (realizada simplemente por varios equipos) y garantiza una mayor seguridad de datos. Además, preferentemente, el esclavo sólo emitirá requerimientos de reintento de este tipo, si o mientras esté seguro de que el paquete de datos solicitado pueda ser transmitido a tiempo por el maestro y ser reproducido, a continuación, por el esclavo. Cuando esta condición ya no se cumple, el esclavo tiene que volver a conectarse de nuevo al flujo de datos, ya que su búfer se vacía antes de que los datos necesarios puedan ser facilitados por el maestro. Si sin tener en cuenta esta condición se siguen emitiendo cada vez más requerimientos de reintento, resulta una carga innecesaria en la red.
Alternativamente y especialmente en el caso de faltar cortos sectores de datos, en una situación de este tipo, es decir, si el esclavo detecta que su reserva de datos es insuficiente para una reproducción continua, es posible no interrumpir y volver a conectar a la corriente de datos, sino suprimir la reproducción brevemente en aquel intervalo de tiempo en el que no estén disponibles los datos (laguna en el búfer).
Una vez transcurrido el tiempo de espera, el maestro vuelve a enviar el paquete de datos corregido, por difusión amplia o multidifusión, y todos los esclavos que necesiten dicho paquete podrán incorporarlo a su tampón cíclico. Además, los esclavos deberían escuchar en la red si los requerimientos de corrección iguales a los que están a punto de emitir ya han sido recibidos por el maestro. Si es el caso, el esclavo se abstiene de realizar la consulta, ya que el paquete de corrección correspondiente es facilitado de todas formas por el maestro en multidifusión.
Otra mejora de la coordinación y, en particular, del control entre el maestro y los equipos de reproducción o esclavos se puede conseguir de tal forma que en los flujos o paquetes de datos se transmita a los equipos de reproducción al menos un comando junto con un momento de ejecución correspondiente.
Por ejemplo, se pueden pasar comandos tales como pausa, reproducir, stop, etc. Preferentemente, el momento de ejecución ha de elegirse de tal forma que entre el paso del comando a la red y el momento de ejecución pueda transcurrir al menos el tiempo de retraso de red más largo detectado en la red, entre el maestro y el equipo de reproducción. De este modo, puede garantizarse que al llegar el comando al equipo de reproducción correspondiente, el momento de ejecución aún no haya pasado.
Este tiempo máximo de retraso de red puede ser determinado, por ejemplo, de vez en cuando por el maestro y, a continuación, ser depositado. Típicamente, a dicho tiempo máximo de retraso de red puede añadirse también un importe adicional, por ejemplo, del orden de 1 - 20 ms. Esta contribución máxima sirve para cubrir la tolerancia de transferencia de red (margen de seguridad) y el tiempo de procesamiento en el emisor y el receptor. Este tiempo máximo de retraso de red debería adaptarse dinámicamente, porque este tiempo máximo de retraso de red puede cambiar fuertemente a causa de cambios en la red. Por ejemplo, este tiempo característico cambia al incrementarse la carga en la red (típicamente, incremento del tiempo máximo de retraso de red), o cuando se conectan o desconectan equipos de reproducción adicionales u otros equipos.
Para evitar la determinación de la velocidad binaria a la que el maestro facilita los flujos o paquetes de datos en la red y que necesita el equipo de reproducción para calcular los retrasos producidos en la red, esta velocidad binaria puede transmitirse directamente en los flujos o paquetes de datos del maestro.
Preferentemente, cuando un nuevo equipo de reproducción ha de conectarse a un stream que ya está siendo ejecutado (por ejemplo, al conectar un nuevo equipo o cuando una pérdida de datos ha provocado un vaciado irreparable del búfer, a pesar de un requerimiento de reintento), se procede de tal forma que un equipo de reproducción conectado remite los flujos o paquetes de datos, recibidos desde la red, inmediatamente, es decir desde el primer byte recibido, a su codificador/descodificador. El codificador/descodificador del equipo de reproducción, en un primer momento, desecha los datos entrados, suprimiéndolos hasta que se detecte una primera trama válida. A continuación, el codificador/descodificador se detiene anotando el byte actual (que no tiene que ser necesariamente el primer byte de la trama en cuestión). De forma instantánea, al reproducirse este byte actual en el maestro, se vuelve a conectar el codificador/descodificador en el equipo de reproducción, y procesa el flujo de datos o los paquetes de datos reproduciéndolos. Cuando se para el stream hacia el codificador/descodificador tras alcanzar la primera trama válida y, a continuación, al mismo tiempo debe iniciarse la reproducción al mismo tiempo con el maestro (streaming), se debe tener en cuenta que el búfer en el codificador/descodificador del equipo de reproducción (esclavo) no está lleno en ese momento, es decir, por ejemplo semivacío. Esto significa que, al principio, los archivos se envían mucho más rápidamente al codificador/descodificador, porque éste quiere también que su búfer esté siempre lo más lleno posible. Por consiguiente, la reproducción (streaming) tiene que comenzar algo más tarde, porque entonces el esclavo vuelve a alcanzar el maestro por el llenado más rápido.
Al esperar la primera trama válida en el codificador/descodificador se puede evitar que el procesador generalmente más lento en el equipo de reproducción tenga que realizar un parsing del stream, es decir del flujo de datos o de los paquetes de datos, es decir, analizarlo y descomponerlo, y el codificador/descodificador se usa par la conexión al stream. Cuando el maestro comienza un nuevo stream, un procedimiento de este tipo normalmente no es nece-
sario.
El procedimiento propuesto permite también el funcionamiento de estructuras de árbol. Una sincronización en cascada de este tipo puede lograrse de tal forma que al menos uno de los equipos de reproducción se emplee a su vez como maestro para una subred (por ejemplo, LAN). Entonces, preferentemente se transmiten repeticiones correspondientes al maestro superior (maestro root). Así es posible sincronizar cualquier número de equipos de reproducción, y cada uno de los equipos de reproducción puede usarse, a su vez, como repetidor (equipo de reproducción activo a la vez como esclavo y como maestro). De esta manera, generalmente también es posible hacer que un esclavo de este tipo, activo como maestro, emita a otra red. Para el maestro root resultan a continuación evidentemente unos tiempos máximos de retraso distintos, que tendrán que tenerse en cuenta. De este modo, se puede realizar una replicación muy eficiente y, dado el caso, amplia del flujo de datos.
Al menos uno de los equipos de reproducción puede disponer, de manera ventajosa, de una memoria que proporcione datos de audio. En dicha memoria puede tratarse, por ejemplo, de una unidad (CD, DVD o similar) en la que se proporcione un medio grabado correspondientemente. Alternativamente, la memoria puede ser una memoria interna grabable o una memoria de sólo lectura. Dicha memoria se usa como fuente de datos de audio. El contenido de estos datos de audio puede ser adquirido eventualmente por el maestro o por otra fuente de datos (es posible también un sintonizador para la recepción de entradas de radio).
Otras formas de realización preferibles del procedimiento según la invención se describen en las reivindicaciones subordinadas.
Asimismo, la presente invención se refiere a un programa de procesamiento de datos para realizar un procedimiento tal como se ha descrito anteriormente, así como a un equipo de reproducción para realizar un procedimiento de este tipo. El aparato reproductor dispone preferentemente de una interfaz de red (o más generalmente, una interfaz de comunicación), de una unidad de cálculo central con memoria, así como de medios para la salida al menos indirecta de datos analógicos o digitales, en especial en forma de un altavoz. En la memoria de un equipo de reproducción de este tipo está programado fijamente un programa de procesamiento de datos para realizar dicho procedimiento, y este programa se activa automáticamente después de conectarse la alimentación, disponiendo el equipo de reproducción de forma especialmente preferible de medios para la integración automática del equipo en la red.
Otras formas de realización preferibles se describen en las reivindicaciones subordinadas.
Breve descripción de las figuras
A continuación, la invención se describirá detalladamente con la ayuda de ejemplos de realización en relación con los dibujos. Muestran:
La figura 1 una representación esquemática de un sistema con equipos de reproducción sincronizados; y
la figura 2 a) una representación esquemática del búfer cíclico en un esclavo y b) una representación esquemática del búfer cíclico en un maestro.
Maneras de realizar la invención
Como ejemplo de realización relativo a la presente invención se va a describir un sistema en el que un flujo de datos continuo suministrado por una fuente de datos de audio (digitales o analógicos) es distribuido de forma inalámbrica por una "unidad emisora" a varios equipos de reproducción distribuidos (típicamente, altavoces activos), los cuales descodifican y emiten diferentes canales del mismo flujo de datos. Para ello, la unidad emisora dispone de una CPU, es decir, de un procesador, una memoria intermedia, así como al menos una interfaz de comunicación bidireccional, en el ejemplo descrito una interfaz de red de radiotransmisión 802.11b, así como de una entrada de audio para datos de audio analógicas o digitales, así como de una salida de audio propia (por lo que es también un equipo de reproducción). Los otros equipos de reproducción usan la misma arquitectura, pero en lugar de una entrada de audio poseen una salida de audio digital y/o analógica y, eventualmente, un amplificador de potencia y convertidor de sonido/altavoz.
En la siguiente descripción se usan términos que se definen a continuación:
\bullet
El servidor es una fuente de datos para datos de audio y puede ser cualquier equipo para proporcionar los datos. Se trata, por ejemplo, de un servidor de un proveedor de contenido, o bien, de un simple servidor de músico o de vídeo. En especial, también se considerará como "servidor" un simple circuito de entrada digital (por ejemplo, S/PDIF), una conversión analógico/digital y/o un codificador/descodificador que comprime/codifica un flujo de datos (típicamente, un procesador de señales).
\bullet
Equipo de reproducción: Un equipo para reproducir el flujo de datos, que soporte los protocolos descritos aquí.
\bullet
Maestro: Un equipo de reproducción que ha recibido de otro equipo un requerimiento de transmitir el flujo de datos que se está reproduciendo.
\bullet
Sistema: Un número de al menos dos equipos de reproducción instalados en una misma estructura de comunicación común.
\bullet
Esclavo: Un miembro que por interfaz de usuario, por comando o por un ajuste o parámetro fijo ha sido invitado a reproducir de forma síncrona a otro equipo de reproducción ("maestro").
\bullet
Varios esclavos pueden reproducir de forma síncrona el mismo flujo de datos. Por lo tanto, para su señalización, los esclavos son provistos de números.
Funcionamiento sin sincronización
Todos los equipos de reproducción trabajan de forma autónoma. Los equipos de reproducción pueden emitir todos, independientemente entre sí, datos multimedia de una fuente de datos común o de fuentes de datos diferentes. Los fuentes de datos pueden estar dispuestos en la red, o bien, se puede tratar de datos almacenados ya en los equipos de reproducción.
Detección y búsqueda automáticas de miembros
Cada equipo de reproducción contiene un "discovery server" que al llegar un determinado bloque de la red (datagrama UDP en un número de puerto específico, UDP es un protocolo 'host-to-host' estándar, low-overhead, sin conexión, que permite el intercambio de paquetes de datos a través de redes informáticas conectadas. Permite a un programa en un ordenador enviar un datagrama a un programa en otro ordenador) reacciona con un bloque de respuesta. Alternativamente, pueden utilizarse otros protocolos discovery, por ejemplo, SSDP (Simple Service Discovery Protocol, un subprotocolo de UPNP, universal plug and play es un estándar que se usa para permitir una conexión directa y automática de equipos periféricos en una red local sin configuración).
Con la ayuda del protocolo de búsqueda, cada equipo de reproducción adquiere una lista de otros aparatos reproductores, sus nombres configurados, si están disponibles, y sus direcciones de red (dirección IP). Esta búsqueda se repite una y otra vez, de modo que la lista se completa automáticamente con nuevos equipos que se añaden. Los equipos que ya no existan se eliminan de la lista al cabo de cierto tiempo.
Un software organizado, por ejemplo, en forma de una homepage, permite a continuación visualizar todos los equipos de reproducción existentes en una red, mediante una consulta a un equipo de reproducción específico dentro de una red. Para ello no es preciso ningún tipo de instalación, ya que el software visualiza automáticamente todos los miembros ofreciendo la posibilidad de conectar distintos miembros a otros de una manera sincronizada (por ejemplo, mediante una activación vía comando cgi). Así se garantiza un manejo sencillo.
Requerimiento de sincronización
Un miembro puede ser estimulado, por diversas influencias, a sincronizarse con otro aparato y reproducir el flujo multimedia de éste:
1.
Mediante una configuración fija ("setup"). Un miembro de este tipo intenta sincronizarse constantemente con el maestro configurado.
2.
Mediante el comando procedente de una aplicación (por ejemplo, por comando cgi, véase arriba)
3.
Mediante la recepción de un comando por UDP - también es posible el caso sincronizar "TODOS" al miembro xxxx
4.
Mediante la acción del usuario y la activación vía interfaz del usuario.
Al ser estimulado un miembro a sincronizarse a otro, pasa lo siguiente:
Sincronización de hora
Los equipos esclavo tienen que estar sincronizados muy exactamente con el maestro. Para este fin, se requiere una sincronización exacta de una base de tiempo común. No es necesario que esta "hora del sistema de maestro y esclavo" tenga referencia alguna a otros sistemas como, por ejemplo, la hora global, y tampoco tiene mayor importancia la exactitud (velocidad de avance) de dicha hora - mientras los dos equipos estén lo más sincronizados posible.
La sincronización de hora de los equipos de reproducción tiene que repetirse periódicamente para corregir diferencias producidas con el paso del tiempo. La ejecución de una sincronización de hora se realiza de forma similar a un protocolo conocido por el ámbito de la adaptación de hora, a saber ntp (network time protocol). Se trata de un protocolo para la sincronización de los relojes en los ordenadores de una red.
En el presente caso, se procede de la siguiente manera:
La fórmula empleada es la consulta del tiempo al servidor teniendo en cuenta el tiempo de retardo medio de los datos. El equipo mismo toma su hora actual y mide la duración hasta la respuesta del servidor. Dicha respuesta contiene la hora actual del servidor en el momento de la llegada de la consulta. Realizando este proceso repetidamente, pueden compensarse ligeras variaciones en los tiempos de ejecución de datos:
a)
El esclavo manda un datagrama UDP al miembro al que desea sincronizarse y consulta la hora actual de éste. En el telegrama se acompaña la hora "propia" (hora de emisión)
b)
El telegrama es provisto por el receptor con la hora local (del maestro), manteniéndose la hora de emisión del "esclavo", y se reenvía al esclavo.
c)
El esclavo recibe el telegrama reenviado por el maestro y lo registra en una tabla anotando la hora de recepción.
d)
Los pasos a-c se repiten varias veces (durante la primera sincronización, por ejemplo, al menos 8 veces, durante la resincronización, 3 veces), con el objetivo de obtener, mediante la formación de promedios omitiendo valores extremos, un resultado lo más exacto posible.
e)
Cuando existan suficientes datos representativos en la tabla, se evalúan. Para ello, se forma la diferencia (la hora actual del esclavo menos la hora de emisión del esclavo) de cada telegrama y se comprueba si la transmisión del telegrama tardaba mucho (gran diferencia). Únicamente los telegramas con la menor diferencia se aceptan y, en el caso normal, se puede suponer que en equipos iguales, la hora de transmisión corresponde aproximadamente de forma simétrica a los dos enlaces de transmisión. De esta manera, es posible sincronizar al maestro con gran exactitud una "hora de maestro" en el esclavo, independiente de la hora normal del esclavo.
En la Ethernet normal e incluso en redes inalámbricas 802.11, los tiempos de transmisión en estado sin carga son típicamente inferiores a 1 ms, pero en cualquier caso inferiores a 5 ms, y suponiendo el retraso "simétrico", con el procedimiento descrito se puede garantizar una sincronización de hora de los miembros a claramente menos
de 1 ms.
Por consiguiente, se determina un tiempo de retardo medio de los datos dentro del intervalo de tiempo más corto posible. Deduciendo una constante estimada o empírica de 0,01 - 1 ms para los diferentes tiempos de procesamiento durante la emisión y la recepción de los datos dentro de los equipos, se obtiene un tiempo de retardo momentáneo para un paquete de datos. Dicho tiempo de retardo se tiene en consideración al determinar la hora actual del sistema.
La sincronización de hora se repite entonces en intervalos periódicos, típicamente cada 30 segundos, siendo suficiente para la vigilancia, generalmente, un sello de hora en el protocolo de transmisión, por lo que la resincronización se activa sólo en caso de discrepancias notables.
Sincronización de datos
Generalidades: Para realizar la sincronización de "n" esclavos a un maestro sin "n" veces el volumen de datos en la red, en el sentido de la necesidad del menor ancho de banda posible en la red resulta ventajoso distribuir los datos de streaming del maestro por multidifusión/difusión amplia. La difusión amplia/multidifusión no es "segura", es decir que los datos pueden perderse. Por tanto, se requiere un mecanismo de repetición. El requerimiento de repeticiones puede realizarse de forma unidireccional - con direccionamiento directo.
Para establecer de manera sencilla y automática varios grupos de sincronización (canales) independientes, para la distribución de datos por cada canal debería usarse un número de puerto distinto. De esta manera, se asegura con una alta probabilidad que en la implementación descrita, cada miembro deduzca un número de puerto individual de su dirección IP y de una constante. Se suman los últimos 12 bits de la dirección IP más una constante (por ejemplo, 40.000). Un número de puerto de este tipo es garantizadamente unívoca en una red típica con un direccionamiento de clase C.
El número de puerto individual de cada miembro se transmite en el caso del protocolo "Discovery", por lo que cada miembro reconoce el "número de canal" de cada maestro potencial.
Solicitud: Una vez establecida la sincronización de hora (véase anteriormente), el esclavo invita al equipo de reproducción, cuyo flujo de datos desea reproducir de forma sincronizada, a adoptar el papel de "maestro". Esto se hace enviando un comando (SYNC-REQ) al puerto/canal UDP específico (del maestro). Un acuse de recibo del maestro confirma la recepción del comando; si no hay confirmación, el esclavo repite el comando, si es preciso, repetidas veces.
Streaming: El maestro recibe los datos de streaming, por ejemplo, de un servidor, típicamente por enlace tcp, eventualmente por http, o bien, de una interfaz local digital o analógica, de un codificador/descodificador o similar. El funcionamiento del sistema es completamente independiente de la fuente de datos empleada. Todos los datos entrantes se graban en un búfer cíclico. Durante cada "inicio" de un stream se repone un contador de bytes (32 bits) Cada byte entrante es contado por el servidor y, por tanto, tiene una "dirección" unívoca.
En un proceso independiente de la recepción del flujo tcp, el maestro envía los datos del búfer cíclico por bloques, inmediatamente tras su llegada, por difusión amplia UDP, a la red, complementados con un encabezado de protocolo que contiene, entre otras, la "dirección" del primer byte transmitido, la hora exacta del maestro, la dirección del siguiente byte que ha de ser transmitido por el maestro al codificador/descodificador. Esto está representado en la figura 2b). El búfer cíclico 5 está constantemente lleno de datos. El puntero de salida 6 se encuentra en un lugar determinado donde envía los datos leídos allí al codificador/descodificador/convertidor local, para su reproducción. El puntero de salida 6 se desplaza conforme al reloj interno del maestro hacia delante (véase la dirección de la flecha). El puntero de entrada de datos 8 indica aquella posición en la que los datos recibidos por un servidor están siendo leídos al búfer cíclico 5. Sustancialmente directamente "detrás" en el sentido de lectura, se encuentra el puntero de transmisión de datos 10 que indica la posición en la que los datos existentes en el búfer cíclico 5 son transmitidos por el maestro a los esclavos por multidifusión/difusión amplia. Por la referencia 12 está designado un paquete típico de datos. En el búfer cíclico 5 se encuentra una "reserva de datos" 9, cuya parte esencial está disponible para "protocolos de reintento" que puedan ser necesarios (véase más adelante). Típicamente, esta reserva de datos comprende aprox. 1 a 4 segundos de datos. Ya no está disponible para protocolos de corrección la zona de seguridad situada inmediatamente antes del puntero de salida 6, porque ésta ya no puede transmitirse de forma adecuada.
El esclavo recibe estos datagramas y registra a su vez los datos recibidos en un búfer intermedio 5. El encabezado del protocolo es evaluado directamente, a saber, se verifica la exactitud de la hora del maestro y la información "hora de maestro/byte actual" (corresponde al momento de reproducción actual) se almacena de forma intermedia o se usa para desplazar el puntero de salida 6 al lugar adecuado o adaptar su característica de ejecución. El búfer cíclico 5 del esclavo está representado en la figura 2a). El puntero de entrada de datos 7 se encuentra en la posición del puntero de transmisión de datos 10 del maestro (evidentemente considerando el tiempo de retardo a través de la red) y, en el caso ideal, el puntero de salida de datos 6 se encuentra en un lugar idéntico en el maestro.
Típicamente, para evitar pérdidas de datos o para permitir un "arrastre" en caso de necesidad, el búfer cíclico en los esclavos debería ser mayor que los del maestro. De paso, cabe mencionar que la posición del byte actual que está siendo enviado por el maestro al codificador/descodificador, también puede ser determinada indirectamente a través del estado del búfer cíclico. Si los búfer cíclicos del maestro y del esclavo están igual de llenos, la sincronización está bien. Si el búfer cíclico de un esclavo está menos lleno que él del maestro, esto indica un desplazamiento correspondiente de la salida.
Protocolo de reintento (mecanismo de corrección)
El esclavo puede detectar fácilmente, si se ha perdido un paquete de datos. Este es el caso precisamente cuando se recibe un nuevo paquete de datos, cuyo primer byte no tenga ninguna dirección consecutiva (laguna de datos).
Al perderse un paquete de datos, esto ocurre típicamente en la red y, generalmente, para varios o todos los esclavos en el "canal". Para evitar una carga innecesaria de la red, se emplea un procedimiento inteligente de reintento. Todos los esclavos reciben el "nuevo" paquete de datos aproximadamente en el mismo momento y, por tanto, pueden detectar aproximadamente al mismo tiempo que se han perdido datos. Ahora, cada cliente se retrasa en un tiempo individual (aleatorio o derivado por algoritmo de la dirección IP o MAC), por ejemplo en un intervalo de 1 a 30 ms, antes de emitir un "requerimiento de reintento". Dicho requerimiento de reintento se envía entonces por difusión amplia al puerto UDP específico para el "canal", pudiendo ser recibido de esta manera por todos los miembros conectados al canal - no sólo por el maestro. Mientras los clientes que deseen desencadenar un reintento esperan el tiempo individual, continúa la recepción de datagramas UDP. Un reintento desencadenado por otro cliente finaliza la espera y evita la emisión del reintento propio, si se trata del mismo requerimiento (la misma dirección de byte inexistente) o de un requerimiento de más datos - de este modo, se evitan eficazmente repetidos requerimientos idénticos de reintento, minimizando la carga en la red.
\newpage
Cuando un esclavo detecta que la pérdida de datos de todas formas ya no puede ser compensada por el maestro con una nueva emisión en el marco del tiempo disponible, finaliza sus requerimientos de reintento. Así, se puede evitar que se sigan emitiendo requerimientos de reintento innecesario que lo único que hacen es cargar la red sin traer ninguna ventaja al esclavo. A continuación, un esclavo o bien puede reproducir hasta el último byte disponible y volver a conectar al flujo de datos, o bien, y esto puede resultar conveniente especialmente en caso de cortos sectores con pérdida de datos, interrumpe la reproducción dentro de la ventana, cuyos datos no estén disponibles.
Por parte del maestro, cuando entra un reintento, se espera un tiempo determinado (por ejemplo, 30 ms, igual al retraso máximo del caliente más el tiempo de procesamiento interno máximo para bloques de datos entrantes), antes de comenzar la repetición del envío. Con este retraso se puede evitar que se inicie un reintento a partir de un punto determinado y que a continuación entre un requerimiento de reintento a partir de un punto anterior.
Básicamente, todos los datos se repiten a partir del punto requerido hasta el final del búfer de streaming del maes-
tro.
Los esclavos ignoran todos los datos entrantes que ya "conozcan", pero no de forma específica según bloques, sino de forma específica según bytes - un bloque de reintento puede contener en parte datos antiguos y en parte datos nuevos.
Reconexión
Puede ocurrir que por una perturbación masiva de recepción un esclavo no haya recibido datos durante un tiempo prolongado y, por tanto, produzca un "underrun", es decir que se vacía el búfer de streaming. En este caso, ya no se requieren reintentos, sino que el esclavo vuelve a sincronizarse completamente de nuevo según el procedimiento descrito. En este caso, la salida del flujo multimedia en el esclavo tiene que interrumpirse durante un corto
período.
Conexión a un flujo de datos en curso
Los esclavos pueden conectarse en cualquier momento a un flujo de datos en curso, no siendo necesario un inicio síncrono. Esto se realiza mediante el siguiente método:
1)
El esclavo llena el búfer de streaming con los datos transmitidos al canal
2)
El esclavo sigue las direcciones de los bytes emitidos actualmente, transmitidas por el maestro adicionalmente en las difusiones amplias
3)
Adicionalmente, mediante consultas específicas, el esclavo puede saber exactamente de parte del maestro, qué byte (dirección) acaba de emitir éste al codificador/descodificador.
4)
La dirección del primer byte inscrito en el búfer de streaming se compara con la dirección de salida actual, transmitida por el maestro. Si son iguales o si el maestro ha emitido ya más datos, se inicia inmediatamente la reproducción.
Ajuste fino
Mediante la consulta periódica al maestro (de forma análoga a la sincronización de hora, implementada en los mismos bloques de datos que la sincronización de hora), puede detectarse si el cliente está "atrasado" o "avanzado" con respecto al maestro, a saber, simplemente mediante la formación de la diferencia de las direcciones de byte emitidas actualmente al codificador/descodificador. Evidentemente, se tiene que sacar un promedio de estos datos a lo largo del tiempo.
Si el cliente en el búfer de streaming ya está más avanzado que el maestro, el codificador/descodificador puede frenarse algo mediante una ligera ralentización de la frecuencia de reloj hasta que se alcance la sincronización exacta. De manera análoga, la frecuencia de reloj del codificador/descodificador se incrementa ligeramente, cuando el cliente está atrasado en promedio frente al maestro.
Finalización del modo de maestro
El maestro puede comprobar la necesidad de la emisión de datos - es decir, el papel de maestro - por la existencia de la actividad de esclavos, al menos para la sincronización de la hora. Si durante un período prolongado (al menos 3 x intervalo de consulta sincronización de hora) ya no registra ninguna actividad de cliente, el maestro puede volver al modo de miembro normal y finalizar la emisión de las difusiones amplias.
\newpage
Lista de referencias
1
Equipo de reproducción (maestro)
2
Equipo de reproducción (esclavo)
3
Servidor de datos
4
Red
5
Búfer cíclico para datos
6
Puntero de salida de datos (esclavo/maestro)
7
Puntero de entrada de datos (esclavo)
8
Puntero de entrada de datos (maestro
9
Reserva de datos
10
Puntero de transmisión de datos (maestro)
11
Zona de seguridad
12
Paquete de datos para esclavos.

Claims (25)

1. Procedimiento para la reproducción de flujos o paquetes de datos transmitidos a través de al menos una red (4), mediante al menos dos equipos de reproducción (1, 2) conectados al menos indirectamente a la red (4), caracterizado porque para la sincronización de la reproducción con los al menos dos equipos de reproducción (1, 2), uno de los equipos de reproducción que sirve de maestro (1) define su reloj interno como referencia y los otros equipos de reproducción (2) que sirven de esclavos ajustan su reloj interno, a través de la red (4), al del maestro (1), o bien llevan una copia del reloj de maestro, efectuando la reproducción de flujos o paquetes de datos en función de dicho reloj ajustado o de la copia del reloj de maestro.
2. Procedimiento según la reivindicación 1, caracterizado porque en la red (4) se trata de una red (4) en la que se transmiten de forma asíncrona o síncrona paquetes de datos.
3. Procedimiento según una de las reivindicaciones precedentes, caracterizado porque el ajuste del reloj en el esclavo (2) se produce antes de la primera reproducción, y de forma especialmente preferible, periódicamente durante la reproducción.
4. Procedimiento según la reivindicación 3, caracterizado porque la actualización periódica se usa para realizar en el esclavo (2) una adaptación sistemática de la velocidad de avance del reloj interno del esclavo (2) al del maestro (1) para compensar diferencias en la característica del tiempo de retardo interno del maestro (1) y el esclavo (2).
5. Procedimiento según la reivindicación 4, caracterizado porque la adaptación sistemática consiste en escalar el reloj interno del esclavo (2) con un factor de corrección constante.
6. Procedimiento según una de las reivindicaciones precedentes, caracterizado porque el ajuste del reloj interno se realiza de tal forma que el reloj interno del maestro (1) es consultado por el esclavo (2), preferentemente varias veces, y al menos uno, preferentemente una pluralidad de paquetes de datos que pueden ser idénticos a paquetes para consultar el tiempo en el maestro (1), se transmiten del esclavo (2) al maestro (1) y de vuelta, y el reloj interno en el esclavo (2) se adapta al reloj en el maestro (1), en función especialmente de un tiempo de retardo medio de paquetes de datos entre el maestro (1) y el esclavo (2).
7. Procedimiento según la reivindicación 6, caracterizado porque el tiempo de retardo se calcula como valor medio teniendo en cuenta los tiempos de procesamiento en los equipos (2).
8. Procedimiento según una de las reivindicaciones precedentes, caracterizado porque el primer equipo de reproducción (1, 2) encargado de la reproducción se define automáticamente como maestro (1).
9. Procedimiento según una de las reivindicaciones precedentes, caracterizado porque en los flujos de datos o paquetes de datos se trata de datos de audio o de vídeo digitales o de una combinación de ellos, especialmente de ficheros de audio comprimidos o no comprimidos tales como MP3, WAV, MPEG, Windows Media, etc.
10. Procedimiento según la reivindicación 9, caracterizado porque en los equipos de reproducción (1, 2) o bien se reproducen los mismos datos, o bien, diferentes canales de los datos, especialmente en el caso de ficheros de audio en formato estéreo o multicanales, se reproducen en diferentes equipos de reproducción (1, 2).
11. Procedimiento según una de las reivindicaciones precedentes, caracterizado porque al menos una parte de los flujos o paquetes de datos se almacena de forma intermedia (5) antes de la reproducción en los equipos de reproducción (1, 2), situándose el almacenamiento intermedio de los ficheros de audio típicamente en un intervalo de aprox. 1 a 5 seg., y el almacenamiento intermedio, de forma especialmente preferible, es dinámico y se adapta a las circunstancias de la red.
12. Procedimiento según una de las reivindicaciones precedentes, caracterizado porque la sincronización de los distintos equipos de reproducción (1, 2) se realiza en un orden inferior a 100 ms, preferentemente, inferior a 10 ms o inferior a 2 ms, de forma especialmente preferible, inferior a 1 ms.
13. Procedimiento según una de las reivindicaciones precedentes, caracterizado porque en la red (4) se trata de una red inalámbrica, especialmente de una red de radiotransmisión.
14. Procedimiento según una de las reivindicaciones precedentes, caracterizado porque durante la reproducción de al menos un equipo de reproducción (1, 2) se conecta de manera sincronizada al menos un equipo de reproducción adicional, de tal forma que el equipo (2) conectado adicionalmente se ajusta automáticamente al maestro (1) existente iniciando él mismo la reproducción tras el almacenamiento intermedio de una parte de los datos.
15. Procedimiento según una de las reivindicaciones precedentes, caracterizado porque los paquetes o flujos de datos o bien se recogen de un servidor de datos (3) separado, o bien, se recogen en uno de los equipos de reproducción (1), o bien, ya están disponibles en los equipos de reproducción (1, 2), o bien, se facilitan al sistema en forma digital a través de un convertidor analógico-digital y/o, dado el caso, una unidad de compresión/codificación, tras su alimentación en forma analógica o digital.
16. Procedimiento según una de las reivindicaciones precedentes, caracterizado porque los paquetes o flujos de datos son leídos desde una fuente de datos a un búfer cíclico (5) en el maestro (1), estando provisto cada byte leído de una dirección unívoca, y porque el maestro (1), en un proceso independiente de la lectura del flujo de datos al búfer cíclico (5), envía los datos del búfer cíclico (5) a la red, por bloques, en particular inmediatamente después de su lectura y por difusión amplia, especialmente por difusión UDP y, además, especialmente por multidifusión, habiendo sido complementados con un encabezado de protocolo que contiene, entre otras cosas, la dirección del primer byte transmitido, la hora exacta del maestro, la dirección del siguiente byte que será transmitido por el maestro (1) al codificador/descodificador del maestro (1).
17. Procedimiento según la reivindicación 16, caracterizado porque la dirección del siguiente byte que será transmitido por el maestro al codificador/descodificador del maestro (1) se transmite al menos en parte en bloques de control independientes, que pueden ser idénticos a los bloques de control para la verificación del reloj en el maestro.
18. Procedimiento según una de las reivindicaciones precedentes, caracterizado porque para asegurar la integridad de datos en caso de una pérdida de una parte de datos en la red (4), detectada por un esclavo (2), dicha parte de datos es reenviada por el maestro (1) tras el requerimiento del esclavo (2), no realizando el maestro (1) dicho reenvío hasta después de un retraso, especialmente del orden de unos ms, y realizando los esclavos (2) los requerimientos de forma escalonada, de manera que los requerimientos idénticos sean enviados sólo una vez por la red.
19. Procedimiento según una de las reivindicaciones precedentes, caracterizado porque en los flujos o paquetes de datos se transmite a los equipos de reproducción (1, 2) al menos un comando, por ejemplo uno del grupo pausa, reproducir, stop, junto con un momento de ejecución correspondiente, eligiéndose el momento de ejecución preferentemente de tal forma que entre el paso del comando a la red (4) y el momento de ejecución pueda transcurrir al menos el tiempo de retraso de red más largo detectado en la red (4) entre el maestro (1) y el equipo de reproducción (1, 2).
20. Procedimiento según una de las reivindicaciones precedentes, caracterizado porque en los flujos de datos o paquetes de datos se transmite la velocidad binaria del maestro (1), a la que el maestro (1) facilita los flujos de datos o paquetes de datos en la red (4), utilizando el equipo de reproducción (1, 2) dicha velocidad binaria preferentemente para determinar los retrasos producidos en la red.
21. Procedimiento según una de las reivindicaciones precedentes, caracterizado porque un equipo de reproducción (1, 2) conectado remite los flujos o paquetes de datos, recibidos desde la red, inmediatamente al codificador/descodificador, que desecha los datos emitidos, silenciándolos, hasta que el codificador/descodificador detecte una primera trama válida, a continuación de lo cual el codificador/descodificador se detiene anotando el byte actual, y entonces el codificador/descodificador en el equipo de reproducción vuelve a procesar el flujo de datos o los paquetes de datos, siendo conmutado a reproducción, cuando en el maestro (1) se esté reproduciendo este byte actual.
22. Procedimiento según una de las reivindicaciones precedentes, caracterizado porque al menos uno de los equipos de reproducción (1, 2) se emplea a su vez como maestro para una subred, transmitiéndose, preferentemente, repeticiones correspondientes al maestro superior.
23. Procedimiento según una de las reivindicaciones precedentes, caracterizado porque al menos uno de los equipos de reproducción (1, 2) dispone de una memoria que se usa como fuente de datos de audio, obteniéndose el contenido de dichos datos de audio eventualmente de parte del maestro (1) o de otra fuente de datos.
24. Programa de procesamiento de datos para realizar un procedimiento según una de las reivindicaciones 1 a 23.
25. Equipo de reproducción para realizar un procedimiento según una de las reivindicaciones 1 a 23, caracterizado porque dispone de una interfaz de red, de una unidad de cálculo central con memoria, así como de medios para la salida al menos indirecta de datos, en especial en forma de un altavoz, caracterizado porque en la memoria está programado fijamente un programa de procesamiento de datos según la reivindicación 24, y porque este programa se activa automáticamente después de conectarse la alimentación, disponiendo el equipo de reproducción de forma especialmente preferible de medios para la integración automática del equipo en la red.
ES03757621T 2002-11-06 2003-11-04 Procedimiento y dispositivo para la reproduccion sincronizada de flujos de datos. Expired - Lifetime ES2291676T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CH1861/02 2002-11-06
CH01861/02A CH704101B1 (de) 2002-11-06 2002-11-06 Verfahren und Vorrichtung zur synchronisierten Wiedergabe von Datenströmen.

Publications (1)

Publication Number Publication Date
ES2291676T3 true ES2291676T3 (es) 2008-03-01

Family

ID=32304034

Family Applications (1)

Application Number Title Priority Date Filing Date
ES03757621T Expired - Lifetime ES2291676T3 (es) 2002-11-06 2003-11-04 Procedimiento y dispositivo para la reproduccion sincronizada de flujos de datos.

Country Status (8)

Country Link
US (1) US7710941B2 (es)
EP (1) EP1559257B1 (es)
AT (1) ATE369690T1 (es)
AU (1) AU2003273710A1 (es)
CH (1) CH704101B1 (es)
DE (1) DE50307906D1 (es)
ES (1) ES2291676T3 (es)
WO (1) WO2004043032A2 (es)

Families Citing this family (71)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4178552B2 (ja) * 2003-07-24 2008-11-12 株式会社安川電機 マスター・スレーブ同期通信方式
US9207905B2 (en) 2003-07-28 2015-12-08 Sonos, Inc. Method and apparatus for providing synchrony group status information
US8086752B2 (en) 2006-11-22 2011-12-27 Sonos, Inc. Systems and methods for synchronizing operations among a plurality of independently clocked digital data processing devices that independently source digital data
US11650784B2 (en) 2003-07-28 2023-05-16 Sonos, Inc. Adjusting volume levels
US8290603B1 (en) 2004-06-05 2012-10-16 Sonos, Inc. User interfaces for controlling and manipulating groupings in a multi-zone media system
US8234395B2 (en) 2003-07-28 2012-07-31 Sonos, Inc. System and method for synchronizing operations among a plurality of independently clocked digital data processing devices
US11106425B2 (en) 2003-07-28 2021-08-31 Sonos, Inc. Synchronizing operations among a plurality of independently clocked digital data processing devices
US11294618B2 (en) 2003-07-28 2022-04-05 Sonos, Inc. Media player system
US11106424B2 (en) 2003-07-28 2021-08-31 Sonos, Inc. Synchronizing operations among a plurality of independently clocked digital data processing devices
US7379491B2 (en) * 2003-12-24 2008-05-27 Intel Corporation Flop repeater circuit
US9977561B2 (en) 2004-04-01 2018-05-22 Sonos, Inc. Systems, methods, apparatus, and articles of manufacture to provide guest access
US8024055B1 (en) 2004-05-15 2011-09-20 Sonos, Inc. Method and system for controlling amplifiers
US8868698B2 (en) 2004-06-05 2014-10-21 Sonos, Inc. Establishing a secure wireless network with minimum human intervention
US8326951B1 (en) 2004-06-05 2012-12-04 Sonos, Inc. Establishing a secure wireless network with minimum human intervention
US20070189186A1 (en) * 2006-02-14 2007-08-16 Memorylink Corporation Multiplexing of DS1 traffic across wired and wireless Ethernet devices
US8331266B2 (en) * 2006-06-14 2012-12-11 Nokia Siemens Networks Oy LAN topology detection and assignment of addresses
JP4726956B2 (ja) * 2006-06-22 2011-07-20 サンリツオートメイション株式会社 I/o装置によるネットワークシステムの通信方法
GB2454128B (en) * 2006-07-18 2011-10-26 Memorylink Corp Multiplexing of DS1 traffic across wired and wireless ethernet devices
US10013381B2 (en) 2006-08-31 2018-07-03 Bose Corporation Media playing from a docked handheld media device
US8788080B1 (en) 2006-09-12 2014-07-22 Sonos, Inc. Multi-channel pairing in a media system
US9202509B2 (en) 2006-09-12 2015-12-01 Sonos, Inc. Controlling and grouping in a multi-zone media system
US8483853B1 (en) 2006-09-12 2013-07-09 Sonos, Inc. Controlling and manipulating groupings in a multi-zone media system
US9083994B2 (en) * 2006-09-26 2015-07-14 Qualcomm Incorporated Method and system for error robust audio playback time stamp reporting
US7889191B2 (en) 2006-12-01 2011-02-15 Semiconductor Components Industries, Llc Method and apparatus for providing a synchronized video presentation without video tearing
TW200840357A (en) * 2006-12-26 2008-10-01 Sony Corp Information processing apparatus, information processing method, and program
CN101636972B (zh) * 2007-04-04 2011-12-07 三菱电机株式会社 通信系统、管理装置、通信装置以及计算机程序
US8224147B2 (en) 2007-04-15 2012-07-17 Avid Technologies, Inc. Interconnected multimedia systems with synchronized playback
CN101731011B (zh) 2007-05-11 2014-05-28 奥迪耐特有限公司 用于设置接收器延迟时间的方法
JP4724733B2 (ja) * 2008-06-06 2011-07-13 株式会社エヌ・ティ・ティ・ドコモ 映像編集システム、映像編集サーバ、通信端末
JP5216511B2 (ja) * 2008-09-30 2013-06-19 アズビル株式会社 流量計測システム
DE102009031995A1 (de) * 2009-07-06 2011-01-13 Neutrik Aktiengesellschaft Verfahren zur drahtlosen Echtzeitübertragung zumindest eines Audiosignales
CA2773825C (en) * 2009-09-10 2017-07-25 Koss Corporation Synchronizing wireless earphones
US9094564B2 (en) 2010-05-07 2015-07-28 Microsoft Technology Licensing, Llc Clock synchronization for shared media playback
DE102010029030A1 (de) * 2010-05-17 2012-03-01 Bayerische Motoren Werke Aktiengesellschaft Verfahren und Vorrichtung zur Verarbeitung von Daten in einem Fahrzeug
US11265652B2 (en) 2011-01-25 2022-03-01 Sonos, Inc. Playback device pairing
US11429343B2 (en) 2011-01-25 2022-08-30 Sonos, Inc. Stereo playback configuration and control
FR2973622B1 (fr) * 2011-03-29 2014-02-14 Awox Dispositif de diffusion de sons
WO2013034866A1 (fr) * 2011-09-07 2013-03-14 Awox Procédé et dispositif de synchronisation de sources sonores
US8938312B2 (en) 2011-04-18 2015-01-20 Sonos, Inc. Smart line-in processing
US9042556B2 (en) 2011-07-19 2015-05-26 Sonos, Inc Shaping sound responsive to speaker orientation
EP2592842A1 (en) * 2011-11-14 2013-05-15 Accenture Global Services Limited Computer-implemented method, computer system, and computer program product for synchronizing output of media data across a plurality of devices
JP5459628B2 (ja) * 2012-01-12 2014-04-02 横河電機株式会社 時刻同期システム
EP2632066B1 (de) * 2012-02-27 2016-01-06 OMS Software GmbH Verfahren und Endgeräte zur Synchronisation einer Wiedergabe von maschinenlesbaren Daten
US9729115B2 (en) 2012-04-27 2017-08-08 Sonos, Inc. Intelligently increasing the sound level of player
US9008330B2 (en) 2012-09-28 2015-04-14 Sonos, Inc. Crossover frequency adjustments for audio speakers
US9219938B2 (en) 2012-11-01 2015-12-22 Wheatstone Corporation System and method for routing digital audio data using highly stable clocks
US9330169B2 (en) 2013-03-15 2016-05-03 Bose Corporation Audio systems and related devices and methods
US9244516B2 (en) 2013-09-30 2016-01-26 Sonos, Inc. Media playback system using standby mode in a mesh network
KR101816944B1 (ko) * 2013-10-02 2018-01-09 엘에스산전 주식회사 UART Ring 통신의 ID 자동 설정방법
US9226073B2 (en) 2014-02-06 2015-12-29 Sonos, Inc. Audio output balancing during synchronized playback
US9226087B2 (en) 2014-02-06 2015-12-29 Sonos, Inc. Audio output balancing during synchronized playback
US10419497B2 (en) 2015-03-31 2019-09-17 Bose Corporation Establishing communication between digital media servers and audio playback devices in audio systems
US9928024B2 (en) 2015-05-28 2018-03-27 Bose Corporation Audio data buffering
US10248376B2 (en) 2015-06-11 2019-04-02 Sonos, Inc. Multiple groupings in a playback system
US9911433B2 (en) 2015-09-08 2018-03-06 Bose Corporation Wireless audio synchronization
EP3357252B1 (en) * 2015-09-28 2023-09-06 Google LLC Time-synchronized, multizone media streaming
US10454604B2 (en) 2015-10-02 2019-10-22 Bose Corporation Encoded audio synchronization
CN105430570B (zh) * 2015-11-27 2018-03-23 北京小鸟听听科技有限公司 播放方法及播放装置
US10303422B1 (en) 2016-01-05 2019-05-28 Sonos, Inc. Multiple-device setup
US9798515B1 (en) 2016-03-31 2017-10-24 Bose Corporation Clock synchronization for audio playback devices
US10219091B2 (en) 2016-07-18 2019-02-26 Bose Corporation Dynamically changing master audio playback device
US10439712B2 (en) * 2016-09-09 2019-10-08 Huawei Technologies Co., Ltd. System and methods for determining propagation delay
US10341083B2 (en) 2016-09-09 2019-07-02 Huawei Technologies Co., Ltd. System and methods for network synchronization
US11445001B2 (en) * 2016-10-03 2022-09-13 Avaya Inc. Synchronization of a media codec between network elements of a media communication session
US10712997B2 (en) 2016-10-17 2020-07-14 Sonos, Inc. Room association based on name
US10341792B1 (en) * 2016-11-21 2019-07-02 Amazon Technologies, Inc. System for distributing audio output using multiple devices
CN108712505B (zh) * 2018-05-31 2021-04-06 北京百度网讯科技有限公司 数据同步方法、装置、设备、系统及存储介质
US20200275149A1 (en) * 2019-02-27 2020-08-27 Novatek Microelectronics Corp. Multi-screen synchronized playback system and method thereof
US11991501B2 (en) 2019-12-03 2024-05-21 Starkey Laboratories, Inc. Audio synchronization for hearing devices
US11249655B1 (en) * 2020-12-07 2022-02-15 Rubrik, Inc. Data resychronization methods and systems in continuous data protection
US11589133B2 (en) * 2021-06-21 2023-02-21 S.A. Vitec Media content display synchronization on multiple devices

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW218062B (es) * 1991-11-12 1993-12-21 Philips Nv
US5408506A (en) * 1993-07-09 1995-04-18 Apple Computer, Inc. Distributed time synchronization system and method
FI97576C (fi) * 1995-03-17 1997-01-10 Farm Film Oy Äänentoistojärjestelmä
JP2956642B2 (ja) * 1996-06-17 1999-10-04 ヤマハ株式会社 音場制御ユニットおよび音場制御装置
JP3247330B2 (ja) * 1997-12-25 2002-01-15 株式会社神戸製鋼所 複数プロセッサシステム
AU4489400A (en) * 1999-04-26 2000-11-10 Gibson Guitar Corp. Universal audio communications and control system and method
US7068746B1 (en) * 2000-03-01 2006-06-27 Lucent Technologies Inc. Base station transceiver to radio network controller synchronization filtering function
JP3889919B2 (ja) * 2000-08-31 2007-03-07 株式会社日立製作所 情報配信方法、情報受信方法、情報配信システム、情報配信装置、受信端末及び記憶媒体
KR100533606B1 (ko) * 2000-10-05 2005-12-05 마쓰시타 덴키 산교 가부시끼 가이샤 링형 네트워크 및 데이터 전송 장치
DE10113088A1 (de) * 2001-03-17 2002-09-26 Helmut Woerner Verfahren und Vorrichtung zum Betrieb eines Beschallungssystems
FR2829655B1 (fr) * 2001-09-10 2003-12-26 Digigram Systeme de transmission de donnees audio, entre un module maitre et des modules esclaves, par l'intermediaire d'un reseau de communication numerique
JP2004128673A (ja) * 2002-09-30 2004-04-22 Toshiba Corp 電子機器およびコンテンツ再生方法
US7555017B2 (en) * 2002-12-17 2009-06-30 Tls Corporation Low latency digital audio over packet switched networks

Also Published As

Publication number Publication date
EP1559257B1 (de) 2007-08-08
CH704101B1 (de) 2012-05-31
WO2004043032A2 (de) 2004-05-21
AU2003273710A8 (en) 2004-06-07
WO2004043032A3 (de) 2004-08-05
US7710941B2 (en) 2010-05-04
ATE369690T1 (de) 2007-08-15
DE50307906D1 (de) 2007-09-20
AU2003273710A1 (en) 2004-06-07
EP1559257A2 (de) 2005-08-03
US20060013208A1 (en) 2006-01-19

Similar Documents

Publication Publication Date Title
ES2291676T3 (es) Procedimiento y dispositivo para la reproduccion sincronizada de flujos de datos.
JP7174040B2 (ja) ブルートゥースメディアデバイス時間同期
US9338208B2 (en) Common event-based multidevice media playback
US8762580B2 (en) Common event-based multidevice media playback
JP6290915B2 (ja) 共通イベントベースのマルチデバイスメディア再生
JP2016535946A (ja) オーディオ配信
JP2011517165A (ja) デジタル・サウンド再生システム内のラウドスピーカのためのデータ転送方法およびシステム
JP6178308B2 (ja) 自動再送要求および選択的パケット大量再送が可能なストリーミング無線通信
US9788140B2 (en) Time to play
US20230216910A1 (en) Audio synchronization in wireless systems
US20230070864A1 (en) Systems and Methods for Relaying Data Between Hearing Devices
JP6419340B2 (ja) 非決定論的ネットワークを介してネットワークデバイス間でデータを送信する方法
US10805664B2 (en) Wireless audio synchronization
JP2009159401A (ja) 無線通信システム
US10756844B2 (en) Devices and method for wirelessly broadcasting media packets
US20230084332A1 (en) Systems and methods for multi-protocol arbitration for hearing devices
US11937200B2 (en) Earphone synchronization method and true wireless earphone system
EP3958511B1 (en) A wireless conference system with early packet loss detection
US20230117443A1 (en) Systems and Methods for Selective Storing of Data Included in a Corrupted Data Packet
JP2009027327A (ja) データ送受信装置
JP2007235720A (ja) 無線音響システム