IP Library Granted Patent US 7,539,219
Granted Patent B2
US 7,539,219 · App. 11/127,379 · Granted May 26, 2009

Method and apparatus for synchronization of digital multimedia packets

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 7,539,219
App. No.
11/127,379
Granted
May 26, 2009
Kind
B2
Abstract

A method and apparatus is provided for synchronizing both the initiation of playback of digital multimedia data in one or more receivers and the rate of playback of the digital multimedia data in the one or more receivers, all receiving the digital multimedia data from a single transmitter, without transmitting clock or timing signals to the receiver(s). An exemplary embodiment is described using the AC powerline as a medium of transmission, although the method and apparatus are adaptable to a variety of communication media.

Claims (117)

1. A method of synchronizing the initiation of playback of packetized multimedia data received asynchronously in a receiver from a transmitter, comprising the steps of:

providing an encoder in the transmitter and a timer and a decoder in each receiver;

defining each data packet for transmission over a medium to include at least a packet sequence number and a packet retransmit number associated with the data packet;

acknowledging, at each receiver after transmission of a data packet, receipt of a valid received data packet and a correct packet sequence number associated therewith;

determining whether a reserve buffer in the receiver configured for containing a first threshold number M received packets is full; and

synchronizing the initiation of playback of the multimedia data in each receiver according to the arrival time of a first received data packet having a zero-valued retransmit number.

2. The method of claim 1 , wherein the step of providing comprises the step of:

operating the encoder in the transmitter and the decoder in the receiver independently at the same clock rate within a predetermined tolerance.

3. The method of claim 2 , wherein the predetermined tolerance is approximately 100 ppm.

4. The method of claim 1 , wherein the step of defining comprises the steps of:

constructing a code block having a header containing the sequence number and the retransmit number;

defining the sequence number as a sequential integer value corresponding to the position of a packet in a succession of a plurality of related data packets; and

defining the retransmit number as one of the integers 0, 1, or 2 indicating that the data packet having a particular retransmit number has been retransmitted the indicated number of times.

5. The method of claim 1 , wherein the step of acknowledging comprises the steps of:

checking a CRC checksum in the data packet;

verifying that the sequence number matches the correct sequential value; and

issuing an acknowledgment (ACK) message to the transmitter.

6. The method of claim 1 , following the step of acknowledging and further comprising the steps of:

determining whether playback has started;

proceeding to the step of determining whether the reserve buffer is full if playback has not started; or

starting the timer in the receiver to measure the time between a packet arrival time for the data packet and an extraction time for the data packet if playback has started; and

queuing the current data packet in the reserve buffer.

7. The method of claim 6 , wherein the step of starting the timer further comprises:

issuing a first software interrupt from a controller in the receiver to start the timer when the sequence number in the arrived data packet has been verified and playback has already started.

8. The method of claim 1 , wherein the step of determining comprises the steps of:

defining the first threshold number M as a full buffer threshold having two data packets stored therein; and

comparing the number of packets in the reserve buffer with the full buffer threshold M.

9. The method of claim 8 , further comprising the steps of:

queuing the current data packet in the reserve buffer if the number of data packets in the reserve buffer is less than or equal to the first threshold number M; and

proceeding to the step of synchronizing if the number of data packets in the reserve buffer is greater than the first threshold number M.

10. The method of claim 1 , wherein the step of synchronizing comprises the steps of:

discarding the current data packet if the retransmit number is non-zero;

queuing the current data packet in the reserve buffer if the retransmit number is zero; and

issuing a command to initiate decoding for playback of a first data packet in the buffer when the retransmit number is zero.

11. The method of claim 10 , further comprising the step of:

decompressing the packet data for supplying an input of a digital to analog converter (DAC) in the receiver; and

outputting the converted data to a playback device.

12. A method of synchronizing the real time playback of packetized multimedia data received asynchronously in one or more receivers from a transmitter, comprising the steps of:

providing an encoder in the transmitter and a timer and a decoder in each receiver;

defining each data packet for transmission over a medium to include at least a packet sequence number and a packet retransmit number associated with the data packet;

acknowledging, at each receiver after transmission of a data packet, receipt of a valid received data packet and a correct packet sequence number associated therewith;

determining whether a reserve buffer in the receiver configured for containing a first threshold number M received packets is full; and

synchronizing the rate of playback of the multimedia data in each receiver according to a measured time difference between an operating rate of the encoder and an operating rate of the decoder;

wherein the operating rate of the encoder is represented by the time the timer is started in the receiver upon a timer start interrupt issued by a first controller in the receiver responsive to arrival of a data packet in the receiver, and;

the operating rate of the decoder is represented by the accumulated value in the timer in the receiver upon a timer interrupt issued by a second controller in the receiver responsive to entry of a data packet in the reserve buffer.

13. The method of claim 12 , wherein the step of providing comprises the step of:

operating the encoder in the transmitter and the decoder in the receiver independently at the same clock rate within a predetermined tolerance.

14. The method of claim 13 , wherein the predetermined tolerance is approximately 100 ppm.

15. The method of claim 12 , wherein the step of defining comprises the steps of:

constructing a code block having a header containing the sequence number and the retransmit number;

defining the sequence number as a sequential integer value corresponding to the position of a packet in a succession of a plurality of related data packets; and

defining the retransmit number as one of the integers 0, 1, or 2 indicating that the data packet having a particular retransmit number has been retransmitted the indicated number of times.

16. The method of claim 12 , wherein the step of acknowledging comprises the steps of:

checking a CRC checksum in the data packet;

verifying that the sequence number matches the correct sequential value; and

issuing an acknowledgment (ACK) message to the transmitter.

17. The method of claim 12 , following the step of acknowledging and further comprising the steps of:

determining whether playback has started;

proceeding to the step of determining whether the reserve buffer is full if playback has not started; or

starting the timer in the receiver to measure the time between a packet arrival time for the data packet and an extraction time for the data packet if playback has started; and

queuing the current data packet in the reserve buffer.

18. The method of claim 12 , wherein the step of determining comprises the steps of:

defining the first threshold number M as a full buffer threshold having two data packets stored therein; and

comparing the number of packets in the reserve buffer with the full buffer threshold M.

19. The method of claim 18 , further comprising the steps of:

queuing the current data packet in the reserve buffer if the number of data packets in the reserve buffer is less than or equal to the first threshold number M data packets; and

proceeding to the step of synchronizing if the number of data packets in the reserve buffer is greater than the first threshold number M data packets.

20. The method of claim 12 , wherein the step of synchronizing comprises the

comparing the measured time difference with a second threshold value N; and

issuing a SKIP command if the measured time difference is greater than the second threshold value N; or

issuing a REPEAT command if the measured time difference is less than or equal to the second threshold value N.

21. The method of claim 20 , wherein the second threshold value N is approximately 500 microseconds.

22. A method of synchronizing the real time playback of packetized multimedia data received asynchronously in one or more receivers from a transmitter, comprising the steps of:

providing an encoder in the transmitter and a timer and a decoder in each receiver;

defining each data packet for transmission over a medium to include at least a packet sequence number and a packet retransmit number associated with the data packet;

acknowledging, at each receiver after transmission of a data packet, receipt of a valid received data packet and a correct packet sequence number associated therewith;

determining whether a reserve buffer in the receiver configured for containing a first threshold number M received packets is full;

synchronizing the initiation of playback of the multimedia data in each receiver according to the arrival time of a first received data packet having a zero-valued retransmit number; and

synchronizing the rate of playback of the multimedia data in each receiver according to a measured time difference between an operating rate of the encoder and an operating rate of the decoder.

23. The method of claim 22 , wherein the step of providing comprises the step of:

operating the encoder in the transmitter and the decoder in the receiver independently at the same clock rate within a predetermined tolerance.

24. The method of claim 22 , wherein the predetermined tolerance is approximately 100 ppm.

25. The method of claim 22 , wherein the step of synchronizing the initiation of playback comprises the steps of:

discarding the current data packet if the retransmit number is non-zero;

queuing the current data packet in the reserve buffer if the retransmit number is zero; and

issuing a command to initiate decoding for playback of a first data packet in the buffer when the retransmit number is zero.

26. The method of claim 22 , wherein the step of synchronizing the rate of playback comprises the steps of:

comparing the measured time difference with a second threshold value N; and

issuing a SKIP command if the measured time difference is greater than the second threshold value N; or

issuing a REPEAT command if the measured time difference is less than or equal to the second threshold value N.

27. The method of claim 26 , wherein the second threshold value N is approximately 500 microseconds.

28. The Method of claim 22 , wherein the operating rate of the encoder is represented by the time the timer is started in the receiver upon a timer start interrupt issued by a first controller in the receiver responsive to arrival of a data packet in the receiver.

29. The Method of claim 22 , wherein the operating rate of the decoder is represented by the accumulated value in the timer in the receiver upon a timer interrupt issued by a second controller in the receiver responsive to entry of a data packet in the reserve buffer.

30. Apparatus for synchronizing the initiation of playback of packetized multimedia data received asynchronously from a transmitter, comprising:

a data packet defined for transmission over a medium and having at least a packet sequence number and a packet transmit number associated with the data packet;

a receiver having a timer and a decoder, wherein the decoder operates at a clock rate that is the same as the clock rate of an encoder in the transmitter but independent therefrom;

means for acknowledging, at each receiver after transmission of a data packet, receipt of a valid received data packet and a correct packet sequence number associated therewith; and

means for synchronizing the initiation of playback of the multimedia data in each receiver according to the arrival time of a first received data packet having a zero-valued retransmit number.

31. The apparatus of claim 30 , further comprising:

a reserve buffer in the receiver configured for containing a first threshold number M of received data packets.

32. The apparatus of claim 30 , wherein the means for synchronizing comprises:

interrupt means responsive to entry of a packet into the reserve buffer in the receiver for initiating decoding of packets to be extracted from the reserve buffer when the reserve buffer is full; and

extraction means for obtaining a data packet from the reserve buffer responsive to initiation of decoding.

33. Apparatus for synchronizing real time playback of packetized multimedia data received asynchronously in one or more receivers from a transmitter, comprising:

a data packet defined for transmission over a medium and having at least a packet sequence number and a packet transmit number associated with the data packet;

a receiver having a timer and a decoder, wherein the decoder operates at a clock rate that is the same as the clock rate of an encoder in the transmitter but independent therefrom;

means for acknowledging, at each receiver after transmission of a data packet, receipt of a valid received data packet and a correct packet sequence number associated therewith;

means for synchronizing the rate of playback of the multimedia data in each receiver according to a measured time difference between an operating rate of the encoder and an operating rate of the decoder;

wherein the means for synchronizing comprises:

first interrupt means responsive to arrival of a packet in the receiver for initiating a count up timer if playback has not already started;

second interrupt means responsive to entry of a packet into the reserve buffer in the receiver for initiating decoding of packets extracted from the reserve buffer when the reserve buffer is full; and;

comparison means for determining whether accumulated time in the timer, at the instant extraction for decoding begins, exceeds a predetermined second threshold value N.

34. The apparatus of claim 33 , further comprising:

a reserve buffer in the receiver configured for containing a first threshold number M of received data packets.

35. The apparatus of claim 33 , wherein the predetermined second threshold value N is approximately 500 microseconds.

36. The apparatus of claim 33 , wherein the comparison means further comprises:

means for issuing a command to skip the decoding of a sample if the accumulated value in the timer exceeds the predetermined threshold or issuing a command to repeat the decoding of a sample if the value in the timer is less than or equal to the predetermined threshold.

Assignments (14)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 24, 2023
From: GENERAL WIRELESS IP HOLDINGS LLC
To: GLOBAL FRANCHISING CORPORATION
Reel/Frame 063749/0457 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 28, 2021
From: GENERAL WIRELESS IP HOLDINGS LLC
To: RADIOSHACK ONLINE IPCO, LLC
Reel/Frame 055064/0946 →
SECURITY INTEREST Recorded Nov 12, 2020
From: RADIOSHACK ONLINE IPCO, LLC
To: GENERAL WIRELESS IP HOLDINGS LLC
Reel/Frame 054353/0209 →
CORRECT AN ERROR IN A COVER SHEET PREVIOUSLY RECORDED Recorded Jul 16, 2015
From: RADIOSHACK CORPORATION; TANDY RADIOSHACK LIMITED
To: GENERAL WIRELESS IP HOLDINGS LLC
Reel/Frame 036142/0142 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 8, 2015
From: RADIOSHACK CORPORATION; TANDY RADIOSHACK LIMITED
To: GENERAL WIRELESS IP HOLDINGS LLC; GENERAL WIRELESS OPERATIONS INC
Reel/Frame 036079/0425 →
SECURITY INTEREST Recorded Jul 8, 2015
From: GENERAL WIRELESS IP HOLDINGS LLC
To: KENSINGTON TECHNOLOGY HOLDINGS, LLC
Reel/Frame 036079/0487 →
AGENCY TRANSFER AGREEMENT (CREDIT AGREEMENT) Recorded Nov 6, 2014
From: GENERAL ELECTRIC CAPITAL CORPORATION, AS AGENT
To: CANTOR FITZGERALD SECURITIES, AS SUCCESSOR AGENT
Reel/Frame 034181/0001 →
RELEASE OF SECURITY INTEREST Recorded Dec 12, 2013
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS AGENT
To: RADIOSHACK CORPORATION
Reel/Frame 031796/0969 →
RELEASE OF SECURITY INTEREST Recorded Dec 12, 2013
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: RADIOSHACK CORPORATION
Reel/Frame 031796/0978 →
SECURITY AGREEMENT Recorded Dec 11, 2013
From: RADIOSHACK CORPORATION
To: GENERAL ELECTRIC CAPITAL CORPORATION
Reel/Frame 031795/0287 →
SECURITY AGREEMENT Recorded Dec 10, 2013
From: RADIOSHACK CORPORATION
To: SALUS CAPITAL PARTNERS, LLC, AS AGENT
Reel/Frame 031793/0554 →
SECURITY AGREEMENT Recorded Sep 27, 2012
From: RADIOSHACK CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 029038/0481 →
SECURITY AGREEMENT Recorded Sep 27, 2012
From: RADIOSHACK CORPORATION
To: BANK OF AMERICA, N.A.
Reel/Frame 029040/0818 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 12, 2005
From: KWONG, SZE MING PATRICK; LAM, MAN LUNG ALAN; MAUNG, TUN OO
To: RADIOSHACK CORPORATION
Reel/Frame 017067/0024 →