Synchronized audio/video decoding for network devices
First Claim
1. A method of synchronizing a plurality of decoders within a network to a server by way of a processor coupled to a network interface and to the plurality of decoders, comprising:
- providing the processor coupled to the network interface and to the plurality of decoders;
receiving a set of timestamp signals, each timestamp signal within the set of timestamp signals having a value corresponding to a timestamped beacon transmitted by a network server, the network server for streaming encoded data over a network through the network interface;
receiving a set of local clock signals, each local clock signal within the set of local clock signals having a value generated by a local system time clock associated with a plurality of decoders of a network client, the plurality of decoders for decoding the encoded data;
computing a differential timestamp value based on values of timestamp signals within the set of timestamp signals by the processor;
computing a differential local clock value based on values of local clock signals within the set of local clock signals;
determining whether the differential local clock value has a predetermined relationship with respect to the differential timestamp value, wherein the predetermined relationship exists when the differential local clock value and the differential timestamp value are equal or within a predefined tolerance;
transmitting a clock rate adjustment command signal to the plurality of decoders when it is determined that the differential local clock value does not have the predetermined relationship with the differential timestamp value, the clock rate adjustment command signal for adjusting the local system time clock such that a subsequent differential local clock value will have the predetermined relationship with the differential timestamp value;
when the predetermined relationship exists, preventing sending unneeded clock rate adjustment command signals to the plurality of decoders; and
adjusting a buffer occupancy of the plurality of decoders, wherein adjusting the buffer occupancy comprises;
comparing a current buffer occupancy at each of the plurality of decoders to a predefined threshold to determine whether a relationship exists between the current buffer occupancy and the predefined threshold; and
adjusting the buffer occupancy when it is determined that the relationship exists;
thereby contemporaneously performing a clock rate adjustment while the plurality of decoders is decoding encoded data, andwherein a decoding delay between any two decoders of the plurality of decoders is maintained in a range of less than 10 milliseconds.
1 Assignment
0 Petitions
Accused Products
Abstract
A method of synchronizing decoders within a network to a server includes receiving a set of timestamps and local clock signals upon receiving the beacon interrupt signal, computing differential timestamp and local clock values based on values of timestamp and local clock signals, respectively, within the sets of timestamp and local clock signals, determining whether the differential local clock value has a predetermined relationship with the differential timestamp value, and transmitting a clock rate adjustment command signal to the decoder when differential local clock value does not have the predetermined relationship with the differential timestamp value. The clock rate adjustment command signal adjusts the local system time clock of the decoder such that a subsequent differential clock value will have the predetermined relationship with the differential timestamp value. When this method is performed for each decoder within the network, the decoders are substantially synchronized and the decoding delay can be kept below humanly perceptible levels.
-
Citations
24 Claims
-
1. A method of synchronizing a plurality of decoders within a network to a server by way of a processor coupled to a network interface and to the plurality of decoders, comprising:
-
providing the processor coupled to the network interface and to the plurality of decoders; receiving a set of timestamp signals, each timestamp signal within the set of timestamp signals having a value corresponding to a timestamped beacon transmitted by a network server, the network server for streaming encoded data over a network through the network interface; receiving a set of local clock signals, each local clock signal within the set of local clock signals having a value generated by a local system time clock associated with a plurality of decoders of a network client, the plurality of decoders for decoding the encoded data; computing a differential timestamp value based on values of timestamp signals within the set of timestamp signals by the processor; computing a differential local clock value based on values of local clock signals within the set of local clock signals; determining whether the differential local clock value has a predetermined relationship with respect to the differential timestamp value, wherein the predetermined relationship exists when the differential local clock value and the differential timestamp value are equal or within a predefined tolerance; transmitting a clock rate adjustment command signal to the plurality of decoders when it is determined that the differential local clock value does not have the predetermined relationship with the differential timestamp value, the clock rate adjustment command signal for adjusting the local system time clock such that a subsequent differential local clock value will have the predetermined relationship with the differential timestamp value; when the predetermined relationship exists, preventing sending unneeded clock rate adjustment command signals to the plurality of decoders; and adjusting a buffer occupancy of the plurality of decoders, wherein adjusting the buffer occupancy comprises; comparing a current buffer occupancy at each of the plurality of decoders to a predefined threshold to determine whether a relationship exists between the current buffer occupancy and the predefined threshold; and adjusting the buffer occupancy when it is determined that the relationship exists;
thereby contemporaneously performing a clock rate adjustment while the plurality of decoders is decoding encoded data, andwherein a decoding delay between any two decoders of the plurality of decoders is maintained in a range of less than 10 milliseconds. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 19, 21)
-
-
15. A network device, comprising:
-
a network interface for receiving encoded data transmitted over a network; a plurality of decoders, coupled to the network interface, for decoding the received encoded data; and a processor coupled to the network interface and the plurality of decoders, the processor containing circuitry for; receiving a set of timestamp signals via the network interface, wherein each timestamp signal within the set of timestamp signals has a value corresponding to a timestamped beacon transmitted by a network server; receiving a set of local clock signals, wherein each local clock signal within the set of local clock signals has a value generated by a local system time clock associated with the plurality of decoders; computing a differential timestamp value based on values of timestamp signals within the set of timestamp signals; computing a differential local clock value based on values of local clock signals within the set of local clock signals; determining whether the differential local clock value has a predetermined relationship with respect to the differential timestamp value, wherein the predetermined relationship exists when the differential local clock value and the differential timestamp value are equal or within a predefined tolerance; transmitting a clock rate adjustment command signal to the plurality of decoders when it is determined that the differential local clock value does not have the predetermined relationship with the differential timestamp value, wherein the clock rate adjustment command signal adjusts the local system time clock such that a subsequent differential local clock value will have the predetermined relationship with the differential timestamp value; when the predetermined relationship exists, preventing sending unneeded clock rate adjustment command signals to the plurality of decoders; and adjusting a buffer occupancy of the plurality of decoders, wherein adjusting the buffer occupancy comprises; determining whether a relationship exists between the current buffer occupancy and a predefined threshold; and adjusting the buffer occupancy when it is determined that the relationship exists;
whereby a clock rate adjustment is contemporaneously performable while the plurality of decoders is decoding encoded data, andwherein a decoding delay between any two decoders of the plurality of decoders is maintained in a range of less than 10 milliseconds. - View Dependent Claims (16, 17, 18, 22)
-
-
20. A method of fabricating a network device, comprising providing a processor coupled to a network interface and to the plurality of decoders, the processor
providing step comprising: -
providing a network interface for receiving encoded data transmitted over a network; coupling a plurality of decoders to the network interface for decoding the received encoded data; and coupling a processor to the network interface and the plurality of decoders, the processor coupling step comprising providing the processor containing circuitry for; receiving a set of timestamp signals via the network interface, wherein each timestamp signal within the set of timestamp signals has a value corresponding to a timestamped beacon transmitted by a network server; receiving a set of local clock signals, wherein each local clock signal within the set of local clock signals has a value generated by a local system time clock associated with the decoder; computing a differential timestamp value based on values of timestamp signals within the set of timestamp signals; computing a differential local clock value based on values of local clock signals within the set of local clock signals; determining whether the differential local clock value has a predetermined relationship with respect to the differential timestamp value, wherein the predetermined relationship exists when the differential local clock value and the differential timestamp value are equal or within a predefined tolerance; transmitting a clock rate adjustment command signal to the plurality of decoders when it is determined that the differential local clock value does not have the predetermined relationship with the differential timestamp value, wherein the clock rate adjustment command signal adjusts the local system time clock such that a subsequent differential local clock value will have the predetermined relationship with the differential timestamp value; when the predetermined relationship exists, preventing sending unneeded clock rate adjustment command signals to the plurality of decoders; and adjusting a buffer occupancy of the plurality of decoders, wherein adjusting the buffer occupancy comprises; comparing a current buffer occupancy at each of the plurality of decoders to a predefined threshold to determine whether a relationship exists between the current buffer occupancy and the predefined threshold; and adjusting the buffer occupancy when it is determined that the relationship exists;
whereby a clock rate adjustment is contemporaneously performable while the plurality of decoders is decoding encoded data, andwherein a decoding delay between any two decoders of the plurality of decoders is maintained in a range of less than 10 milliseconds. - View Dependent Claims (23)
-
-
24. A method of synchronizing a plurality of decoders within a network to a server by way of a processor coupled to a network interface and to the plurality of decoders, comprising:
-
providing the processor coupled to the network interface and to the plurality of decoders; receiving a set of timestamp signals, each timestamp signal within the set of timestamp signals having a value corresponding to a timestamped beacon transmitted by a network server, the network server for streaming encoded data over a network through the network interface; receiving a set of local clock signals, each local clock signal within the set of local clock signals having a value generated by a local system time clock associated with a plurality of decoders of a network client, the plurality of decoders for decoding the encoded data; computing a differential timestamp value based on values of timestamp signals within the set of timestamp signals by the processor; computing a differential local clock value based on values of local clock signals within the set of local clock signals; determining whether the differential local clock value has a predetermined relationship with respect to the differential timestamp value, wherein the predetermined relationship exists when the differential local clock value and the differential timestamp value are equal or within a predefined tolerance; transmitting a clock rate adjustment command signal to the plurality of decoders when it is determined that the differential local clock value does not have the predetermined relationship with the differential timestamp value, the clock rate adjustment command signal for adjusting the local system time clock such that a subsequent differential local clock value will have the predetermined relationship with the differential timestamp value; when the predetermined relationship exists, preventing sending unneeded clock rate adjustment command signals to the plurality of decoders; and adjusting a buffer occupancy of the plurality of decoders, thereby contemporaneously performing a clock rate adjustment while the plurality of decoders is decoding encoded data, and wherein a decoding delay between any two decoders of the plurality of decoders is maintained in a range of less than 10 milliseconds; wherein adjusting the buffer occupancy of the plurality of decoders comprises; determining whether a buffer occupancy of a local buffer of each decoder of the plurality of decoders is within a predetermined range of a total buffer occupancy as each decoder of the plurality of decoders decodes encoded data within the local buffer; transmitting a clock rate control command signal to the network server when it is determined that the buffer occupancy is outside the predetermined range; receiving a clock ratio adjustment signal corresponding to the clock rate control command signal, the clock ratio adjustment signal containing a clock adjustment ratio; computing the clock rate adjustment command signal based on the clock adjustment ratio by the processor to compute the differential timestamp value, wherein the differential timestamp value is defined by a parameter selected from a group consisting essentially of; a difference in values between a pair of timestamps having been consecutively transmitted by the powerline communication interface; an average difference in values between a plurality of pairs of consecutively output timestamps; and transmitting the computed clock rate adjustment command signal to each decoder of the plurality of decoders to adjust the local system time clock such that a subsequent differential local clock value is within the predetermined range of the total buffer occupancy.
-
Specification