IP Library Granted Patent US 8,856,209
Granted Patent B2
US 8,856,209 · App. 12/600,965 · Granted Oct 7, 2014

Systems and methods for synchronization in a networked environment

View Patent ↗
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 8,856,209
App. No.
12/600,965
Granted
Oct 7, 2014
Kind
B2
Abstract

Described herein are systems and methods for synchronization in a networked environment. For example, some embodiments provide methods for synchronizing a client device having a client media time reference with a server device having a server media time reference. In some cases such methods are embodied in computer readable code that is executable on one or more processors. Furthermore, some embodiments provide hardware, such as networked media devices that are configured to perform such methods. In overview, in some embodiments a client obtains timing information from a server and, on the basis of this timing information, applies an adjustment to a client control time reference, thereby to synchronize the client media time reference with the server media time reference. Some embodiments are particularly directed to the situation where there is a desire to synchronize networked media devices across a combination of wired and wireless networks.

Claims (47)

1. A method for operating a non-wireless media playback client device, the method comprising:

performing the following steps via execution of software instructions by the non-wireless media device thereby to provide synchronized media playback, such that the non-wireless media playback device is synchronized with a plurality of wireless playback nodes that are associated with a common wireless network, the plurality of playback nodes having access to a common global clock of the wireless network and being synchronized relative to the common global clock of the wireless network, wherein the non-wireless media playback device does not have access to the common global clock of the wireless network:

(a) sending, via a wired network connection, a request to a server device, the server device being associated with the wireless network and having access to the common global clock of the wireless network, the request being indicative of an instruction to provide timing information indicative of a server control time reference and a server media time reference, wherein the timing information includes a ratio between the frequency of the server control time reference and the server media time reference, wherein the server control time reference is defined relative to the common global clock of the wireless network;

(b) storing, in respect of the request sent to the server device, according to a client control time reference, a respective first client value indicative of the time at which that request was sent;

(c) receiving from the server device, in respect of the request sent to the server device, a respective response including the timing information;

(d) storing, according to the client control time reference, a respective second client value indicative of the time at which the corresponding response was received;

each of step (a) to step (d) being repeated on one or more occasions;

(e) processing, for each request and corresponding response, the first client value, the second client value, and the timing information, thereby to derive adjustment information, wherein the adjustment information is indicative of a first frequency ratio between the server control time reference and the client control time reference and a second frequency ratio between the server media time reference and the server control time reference;

(f) generating a client media time reference by applying the adjustment information to the client control time reference, thereby to frequency synchronize the client media time reference with the server media time reference; and

(g) providing media playback by rendering a stream of media data based on the client media time reference.

2. A method according to claim 1 , wherein the server device is coupled to the client device, at least in part, by a wired network.

3. A method according to claim 1 , wherein the server device is coupled to and synchronized with one or more further devices on a synchronized wireless network.

4. A method according to claim 1 , wherein the synchronized wireless network is synchronized based on any one of the server control time reference.

5. A method according to claim 1 , wherein the client control time reference is adjusted in a frequency locked loop to synchronize the client media time reference to the server media time reference.

6. A method according to claim 1 , wherein the timing information includes:

a first server value, according to the server control time reference, indicative of the time at which the server device received the request;

a second server value, according to the server control time reference, indicative of the time at which the server device sent the corresponding response; and

a ratio between the frequency of the server control time reference and the server media time reference.

7. A method according to claim 1 , wherein the timing information includes:

a first server value, according to the server control time reference, indicative of a time at which the server device processed the response; and

a ratio between the frequency of the server control time reference and the server media time reference.

8. A method according to claim 6 , wherein the first server value and the second server value are each associated with a Time Synchronization Function Protocol.

9. A method according to claim 6 , wherein the client control time reference is adjusted in a frequency locked loop to synchronize the client media time reference to the server media time reference.

10. A method according to claim 6 , wherein the frequency ratio between the server control time reference and the client control time reference is calculated from a linear regression between the mean of the first and second server value and the mean of the first and second client value for each request and corresponding response.

11. A method according to claim 6 , wherein the server control time reference and the server media time reference are defined by a first common timing reference.

12. A method according to claim 6 , wherein the client control time reference and the client media time reference are defined by a second common timing reference.

13. A non-transitory computer-readable carrier medium carrying a set of instructions that when executed by one or more processors cause the one or more processors to carry out a method of operating a non-wireless media playback client device thereby to provide synchronized media playback, the method comprising:

executing the following steps at the non-wireless media playback device thereby to synchronize with a plurality of wireless playback nodes that are associated with a common wireless network, the plurality of playback nodes having access to a common global clock of the wireless network and being synchronized relative to a common global clock of the wireless network, wherein the non-wireless media playback device does not have access to the common global clock of the wireless network:

(a) sending, via a wired network connection, a request to a server device, the server device being associated with the wireless network and having access to the common global clock of the wireless network, the request being indicative of an instruction to provide timing information indicative of a server control time reference and a server media time reference, wherein the timing information includes a ratio between the frequency of the server control time reference and the server media time reference, wherein the server control time reference is defined relative to the common global clock of the wireless network;

(b) storing, in respect of the request sent to the server device, according to a client control time reference, a respective first client value indicative of the time at which that request was sent;

(c) receiving from the server device, in respect of the request sent to the server device, a respective response including the timing information;

(d) storing, according to the client control time reference, a respective second client value indicative of the time at which the corresponding response was received;

(e) repeating step (a) to step (d) on one or more occasions;

(f) processing, for each request and corresponding response, the first client value, the second client value, and the timing information, thereby to derive adjustment information, wherein the adjustment information is indicative of a first frequency ratio between the server control time reference and the client control time reference and a second frequency ratio between the server media time reference and the server control time reference; and

(g) generating a client media time reference by applying the adjustment information to the client control time reference, thereby to frequency synchronize the client media time reference with the server media time reference;

(h) providing media playback by rendering a stream of media data based on the client media time reference.

14. A client device comprising:

a network interface for allowing the client device to communicate with a server device via a data network, the server device having a server media time reference;

a processor coupled to the network interface for performing a method of operating a non-wireless media playback client device thereby to provide synchronized media playback, the method being stored in memory as instructions executable by the processor, the media playback being synchronized with a plurality of wireless playback nodes that are associated with a common wireless network, the plurality of nodes being synchronized relative to a global clock of the wireless network, wherein the non-wireless playback device does not have access to the global clock of the wireless network, the method comprising:

(a) sending, via a wired network connection, a request to a server device, the server device being associated with the wireless network and having access to the global clock of the wireless network, the request being indicative of an instruction to provide timing information indicative of a server control time reference and the server media time reference, wherein the timing information includes a ratio between the frequency of the server control time reference and the server media time reference, wherein the server control time reference is defined relative to the global clock of the wireless network;

(b) storing, in respect of the request sent at (a), according to a client control time reference, a respective first client value indicative of the time at which that request was sent;

(c) receiving from the server device, in respect of the request sent at (a), a respective response including the timing information;

(d) storing, according to the client control time reference, a respective second client value indicative of the time at which the corresponding response was received;

(e) repeating steps (a) to (d) on one or more occasions;

(f) processing, for each request and corresponding response, the first client value, the second client value, and the timing information, thereby to derive adjustment information, wherein the adjustment information is indicative of a first frequency ratio between the server control time reference and the client control time reference and a second frequency ratio between the server media time reference and the server control time reference;

(g) generating a client media time reference by applying the adjustment information to the client control time reference, thereby to frequency synchronize the client media time reference with the server media time reference; and

(h) providing media playback by rendering a stream of media data based on the client media time reference.

Assignments (12)
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL (REEL/FRAME 057187/0713) Recorded Apr 12, 2022
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: D&M HOLDINGS INC.
Reel/Frame 059988/0537 →
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL (REEL/FRAME 057187/0736) Recorded Apr 12, 2022
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: D&M HOLDINGS INC.
Reel/Frame 059988/0585 →
RELEASE OF SECURITY INTEREST IN INTELLECTUAL PROPERTY Recorded Feb 14, 2022
From: CERBERUS BUSINESS FINANCE, LLC, AS AGENT
To: POLK AUDIO, LLC; DIRECTED, LLC; DEFINITIVE TECHNOLOGY, LLC; BOSTON ACOUSTICS, INC.; D&M EUROPE B.V.; B & W GROUP LTD; SOUND UNITED, LLC; B & W LOUDSPEAKERS LTD; D&M HOLDINGS INC.
Reel/Frame 059127/0278 →
ABL PATENT SECURITY AGREEMENT Recorded Aug 16, 2021
From: D&M HOLDINGS INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 057187/0736 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Aug 16, 2021
From: D&M HOLDINGS INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 057187/0713 →
NOTICE OF SECURITY INTEREST - - PATENTS Recorded Dec 30, 2020
From: D&M HOLDINGS INC.
To: CERBERUS BUSINESS FINANCE, LLC, AS COLLATERAL AGENT
Reel/Frame 054874/0184 →
RELEASE OF SECURITY INTEREST IN PATENTS Recorded Dec 28, 2020
From: SOUND UNITED, LLC
To: D&M HOLDINGS INC
Reel/Frame 054858/0361 →
GRANT OF SECURITY INTEREST Recorded May 30, 2017
From: D&M HOLDINGS INC.
To: SOUND UNITED, LLC
Reel/Frame 042622/0011 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 28, 2015
From: TYMPHANY HONG KONG LIMITED
To: D&M HOLDINGS, INC.
Reel/Frame 036444/0715 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 30, 2013
From: AL SHELLCO, LLC; ALTEC LANSING AUSTRALIA PTY LIMITED
To: TYMPHANY HONG KONG LIMITED
Reel/Frame 030515/0562 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 15, 2011
From: AVEGA SYSTEMS PTY LTD
To: ALTEC LANSING AUSTRALIA PTY LIMITED
Reel/Frame 025811/0686 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 19, 2009
From: BRYCE, STUART; KENT, ADAM J.
To: AVEGA SYSTEMS PTY LTD
Reel/Frame 023545/0109 →