IP Library Patent Application 14553394
Patent Application
App. No. 14/553,394

CLOCK SYNCHRONIZATION USING WIFI BEACONS

Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US None
App. No.
14/553,394
Abstract

Provided are methods and systems for synchronizing clocks between data modules operating in parallel on an access point using Wi-Fi beacons as a reference. The methods and systems are designed to achieve and maintain highly accurate synchronization (e.g., <20 microseconds (μs)) between different modules by utilizing Wi-Fi beacons generated by the access point as a reference when estimating rendering time. Using such Wi-Fi beacons as a reference only, and not as the actual clock, ensures that all of the data modules' clocks remain synchronized, thus allowing for coherent rendering of data across all modules included in the system.

Claims (50)

1 . A computer-implemented method comprising:

receiving, at a first data module, data from a data source;

attaching a timestamp to each portion of the received data, wherein the timestamp indicates a time to process the portion of data;

sending, from the first data module to a second data module, each portion of the data with the timestamps attached, wherein the first data module is different from the second data module, and the first and second data modules are on a same network;

receiving, at the second data module from the first data module, a signal indicating a beacon associated with the network was received at the first data module and a time that the beacon was received at the first data module, wherein the time that the beacon was received at the first data module is based on a clock associated with the first data module;

determining, by the second data module, a difference between the clock associated with the first data module and a clock associated with the second data module based on the signal received from the first data module; and

adjusting the clock associated with the second data module to be in synchronization with the clock associated with the first data module based on a plurality of determined differences between the clocks filtered over a period of time.

2 . The method of claim 1 , further comprising:

receiving at the first data module and at the second data module, beacons associated with the network; and

identifying, for each of the received beacons, a time that the beacon was received at the first data module and a time that the beacon was received at the second data module, wherein the time that the beacon was received at the first data module is based on the clock associated with the first data module, and the time that the beacon was received at the second data module is based on a clock associated with the second data module.

3 . The method of claim 1 , wherein the beacon associated with the network received at the first data module is also received at the second data module, and further comprising:

recording, by the first data module, a time that the beacon was received at the first data module; and

recording, by the second data module, a time that the beacon was received at the second data module.

4 . The method of claim 2 , further comprising:

storing, for each of the first and second data modules, data representing the received beacons and corresponding times that each of the beacons was received at the first data module and at the second data module.

5 . The method of claim 4 , further comprising:

determining the difference between the clock associated with the first data module and the clock associated with the second data module based on the stored data representing the received beacons and corresponding times that each of the beacons was received at the first data module and at the second data module.

6 . The method of claim 1 , wherein determining, by the second data module, a difference between the clock associated with the first data module and a clock associated with the second data module based on the signal received from the first data module includes:

comparing the time that the beacon was received at the first data module with a time that the beacon was received at the second data module, wherein the time that the beacon was received at the second data module is based on a clock associated with the second data module; and

determining the difference between the clock associated with the first data module and the clock associated with the second data module based on the comparison.

7 . The method of claim 1 , further comprising:

processing, at the first and second data modules, each portion of the received data according to the timestamp attached to the portion of data.

8 . The method of claim 1 , wherein the data received from the data source is audio data and a timestamp is attached to each frame of the received audio data.

9 . The method of claim 8 , wherein one or both of the first data module and the second data module is an audio device.

10 . The method of claim 9 , wherein the audio device is a loudspeaker device.

11 . A system comprising:

an access point; and

a plurality of data modules connected to the access point, wherein each of the data modules is configured to:

receive data from a data source;

attach a timestamp to each portion of the received data, wherein the timestamp indicates a time to process the portion of data;

send, to each of the other data modules connected to the access point, each portion of the received data with the timestamps attached;

receive, from each of the other data modules, a signal indicating a beacon associated with the access point was received at the other data module and a time that the beacon was received at the other data module, wherein the time that the beacon was received at the other data module is based on a clock associated with the other data module;

determine a difference between a clock associated with the data module and the clocks associated with each of the other data modules based on the received signals from the other data modules; and

send, to each of the other data modules, a synchronization signal based on the determined differences between the clocks filtered over a period of time.

12 . The system of claim 11 , wherein each of the plurality of data modules connected to the access point is further configured to:

receive beacons associated with the access point; and

identify, for each of the received beacons, a time that the beacon was received at the data module and a time that the beacon was received at each of the other data modules, wherein the time that the beacon was received at the data module is based on the clock associated with the data module, and the time that the beacon was received at each of the other data modules is based on a clock associated with each of the other data modules.

13 . The system of claim 12 , wherein each of the plurality of data modules connected to the access point is further configured to:

store data representing the received beacons and corresponding times that each of the beacons was received at the data module and at each of the other data modules.

14 . The system of claim 13 , wherein each of the plurality of data modules connected to the access point is further configured to:

determine the difference between the clock associated with the receiving data module and the clocks associated with each of the other data modules based on the stored data representing the received beacons and corresponding times that each of the beacons was received at the data module and at each of the other data modules.

15 . The system of claim 11 , wherein each of the plurality of data modules connected to the access point is further configured to:

compare the time that the beacon was received at the data module with each of the times that the beacon was received at each of the other data modules, wherein the times that the beacon was received at each of the other data modules is based on a clock associated with the particular data module; and

determine the difference between the clock associated with the receiving data module and the clock associated with each of the other data modules based on the comparison.

16 . The system of claim 11 , wherein each of the plurality of data modules connected to the access point is further configured to:

process each portion of the received data according to the timestamp attached to the portion of data.

17 . The system of claim 11 , wherein the data received from the data source is audio data and a timestamp is attached to each frame of the received audio data.

18 . The system of claim 17 , wherein each of the plurality of data modules is an audio device.

19 . The system of claim 17 , wherein at least one of the plurality of data modules connected to the access point is an audio device.

20 . The system of claim 19 , wherein the audio device is a loudspeaker device.

Assignments (2)
CHANGE OF NAME Recorded Oct 5, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044129/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 10, 2014
From: SHEMER, MIKHAL; CHAN, CHI BUN; WESTIN, PATRIK GÖRAN
To: GOOGLE INC.
Reel/Frame 034451/0690 →