Error mitigation and correction in the delivery of on demand audio
First Claim
1. A method for conveying digital audio data from a server to a client, so as to minimize errors, comprising the steps of:
- (a) dividing the digital audio data between a temporally contiguous plurality of frames, each frame including a successive portion of the digital audio data;
(b) forming a plurality of packets for use in conveying the digital audio data from the server to the client, each packet including a plurality of the frames interleaved in a predefined manner so that adjacent frames in each packet generally do not contain temporally contiguous portions of the digital audio data;
(c) transmitting the packets from the server to the client; and
(d) at the client, deinterleaving the frames included in the packets so that the portions of the digital audio data included in the frames are sequentially and temporally arranged in order.
5 Assignments
0 Petitions
Accused Products
Abstract
A method and system for mitigating and compensating for loss of digital audio data transmitted as a stream of packets to a client (30). A server (10) compresses digital audio data corresponding to a digitized analog audio signal. The compressed data are divided into N frames of data per packet. The server interleaves the frames, producing interleave packets of up to order N. The interleave operation minimizes the effect of any lost packet when the interleave packets are received, deinterleaved, and converted to an analog signal that is played on a speaker at the client. Lost frames are replaced using the data from frames that are received. As a further aspect, the frames can be scrambled at the server by applying a permutation function F that depends upon the packet number (PN) and a Key value. At the client, an inverse permutation function F-1 is applied to unscramble the frames.
-
Citations
27 Claims
-
1. A method for conveying digital audio data from a server to a client, so as to minimize errors, comprising the steps of:
-
(a) dividing the digital audio data between a temporally contiguous plurality of frames, each frame including a successive portion of the digital audio data; (b) forming a plurality of packets for use in conveying the digital audio data from the server to the client, each packet including a plurality of the frames interleaved in a predefined manner so that adjacent frames in each packet generally do not contain temporally contiguous portions of the digital audio data; (c) transmitting the packets from the server to the client; and (d) at the client, deinterleaving the frames included in the packets so that the portions of the digital audio data included in the frames are sequentially and temporally arranged in order. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method for conveying data between a first location and a second location, so as to minimize an impact of any data loss or dropout that may occur when conveying the data, comprising the steps of:
-
(a) dividing the data, which are input in a temporal sequence, into a plurality of frames, each frame include a portion of the data; (b) dispersing the frames in a data stream that is transmitted from the first location to the second location, so that frames including temporally sequential portions of the data are not adjacent to each other in the data stream; (c) receiving the data stream at the second location; (d) at the second location, recovering the portions of the data from the frames in the data stream and restoring the portions of the data to the temporal sequence; and (e) replacing the portion of the data included in any frame that was not received at the second location, using portions of the data included in the frames that were received. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17)
-
-
18. An article of manufacture adapted to be used by a computer, comprising:
-
a memory medium on which are stored machine instructions that implement a plurality of functions useful for conveying data to another location, when the machine instructions are executed by a computer, said functions including; (a) dividing data having a temporal sequence into a plurality of frames, each frame including a portion of the data; and (b) dispersing the frames in a data stream that is transmitted to a different location, so that frames including temporally sequential portions of the data are not adjacent to each other in the data stream. - View Dependent Claims (19, 20)
-
-
21. An article of manufacture adapted to be used by a computer, comprising:
a memory medium on which are stored machine instructions that implement a plurality of functions when the machine instructions are executed by a computer, said machine instructions being useful in enabling the computer to receive data transmitted from another location and to minimize an effect of any data loss or dropout, wherein portions of the data having an original temporal sequence are included in a plurality of frames that are dispersed in a data stream transmitted from the other location so that frames including temporally sequential portions of the data are not adjacent to each other in the data stream, said functions including; (a) receiving the data stream; (b) recovering the portions of the data from the frames in the data stream and restoring the portions of the data to the temporal sequence; and (c) replacing the portion of the data included in any frame that was not received at the second location, using portions of the data included in the frames that were received. - View Dependent Claims (22, 23, 24, 25)
-
26. A method for conveying digital audio data from a server to a client, so as to minimize errors, comprising the steps of:
-
(a) dividing the digital audio data between a temporally contiguous plurality of frames, each frame including a successive portion of the digital audio data; (b) forming a plurality of packets for use in conveying the digital audio data from the server to the client, each packet including a plurality of the frames interleaved in a predefined manner so that adjacent frames in each packet generally do not contain temporally contiguous portions of the digit audio data; (c) compressing the digital audio data prior to conveying the packets from the server to the client; (d) transmitting the packets from the server to the client; (e) at the client, deinterleaving the frames included in the packets so that the portions of the digital audio data included in the frames are sequentially and temporally arranged in order; and (f) decompressing the digital audio data after the packets are received at the client.
-
-
27. A method for conveying data between a first location and a second location, so as to minimize an impact of any data loss or dropout that may occur when conveying the data, comprising the steps of:
-
(a) dividing the data, which are input in a temporal sequence, into a plurality of frames, each frame include a portion of the data; (b) dispersing the frames in a data stream that is transmitted from the first location to the second location, so that frames including temporally sequential portions of the data are not adjacent to each other in the data stream; (c) compressing the data prior to conveying the frames between the first and the second locations; (d) receiving the data stream at the second location; (e) at the second location, recovering the portions of the data from the frames in the data stream and restoring the portions of the data to the temporal sequence; (f) decompressing the data after the frames are received at the second location; and (g) replacing the portion of the data included in any frame that was not received at the second location, using portions of the data included in the frames that were received.
-
Specification