Method and program product for organizing data into packets
First Claim
1. A method for organizing data into packets comprising the steps of:
- dividing the data into a plurality of frames, each of said frames being described by at least a first and a second parameter, said second parameter having a high correlation between sequential ones of said second parameters;
replicating said first parameter by placing said first parameters for each of said plurality of frames in at least a first and a second data packet whereby each of said first and second data packets include said first parameter; and
, interleaving said second parameters for said plurality of frames into said first and second data packets whereby a second parameter describing a first of said plurality of frames is placed in said first data packet and a second parameter describing a second of said frames is placed in said second data packet.
1 Assignment
0 Petitions
Accused Products
Abstract
A method for communicating data over a packet switched network comprises dividing data into a plurality of frames, with each frame described by at least a first and a second parameter. The second parameter has a high correlation. The first parameter is placed in a first and a second description, while the second parameter is interleaved to the first and second descriptions. The first and second descriptions are packetized and communicated over the network. Upon reception, the first parameters for a frame sequence are extracted from one of the packets, while the interleaved second parameters are extracted from both the packets. If a packet is lost, the missing first parameter may be obtained from another packet, while the missing second parameter may be reconstructed using a second parameter from the other packet.
37 Citations
32 Claims
-
1. A method for organizing data into packets comprising the steps of:
-
dividing the data into a plurality of frames, each of said frames being described by at least a first and a second parameter, said second parameter having a high correlation between sequential ones of said second parameters;
replicating said first parameter by placing said first parameters for each of said plurality of frames in at least a first and a second data packet whereby each of said first and second data packets include said first parameter; and
,interleaving said second parameters for said plurality of frames into said first and second data packets whereby a second parameter describing a first of said plurality of frames is placed in said first data packet and a second parameter describing a second of said frames is placed in said second data packet. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 32)
communicating said plurality of data packets over a packet switched network;
receiving said plurality of data packets communicated over the packet switched network;
decoding said data by extracting said first parameters from one of said first or second data packets, and extracting said interleaved second parameters from each of said first and second data packets; and
,identifying at least one lost packet from said plurality of data packets, obtaining a replacement first parameter for said lost packet from another of said packets, and reconstructing said second parameter from for said lost packet using at least a second parameter from a packet adjacent to said lost packet.
-
-
3. A method as defined by claim 2 wherein the step of reconstructing said second parameter for said lost packet comprises using an additional second parameter from an additional packet adjacent to said lost packet.
-
4. A method as defined by claim 3 wherein the step of reconstructing said second parameter further comprises performing an interpolation.
-
5. A method as defined by claim 2 wherein said network is wireless.
-
6. A method as defined by claim 1 wherein said plurality of frames comprises at least 4 frames, and wherein the method further comprises steps of:
-
placing said first parameters for each of said frames into a third data packet and into a fourth data packet from said plurality of data packets; and
,interleaving said second parameters for said frames into said first, second, third, and fourth data packets whereby one of said second parameters for each frame of a sequence of four of said frames are placed in different of said first, second, third, and fourth data packets.
-
-
7. A method as defined by claim 6 further comprising the steps of:
-
communicating said plurality of data packets over a packet switched network;
receiving said data packets communicated over the packet switched network;
decoding said data by extracting said first parameters from one of said first, second, third, or fourth data packets, extracting said interleaved second parameters from each of said first, second, third, and fourth data packets; and
,identifying at least a burst of two lost packets from said plurality of data packets, retrieving a replacement first parameter for said lost packets from one of the remaining of said first, second, third, or fourth data packets, and reconstructing said second parameter for said lost packet using said second parameter from a prior adjacent packet to said lost packets and a subsequent adjacent packet to said lost packets.
-
-
8. A method as defined by claim 7 wherein the step of reconstructing said second parameter for said lost packet comprises performing an interpolation.
-
9. A method as defined by claim 1 wherein said second parameter comprises a plurality of parameters.
-
10. A method as defined by claim 1 wherein said first parameter comprises a plurality of first parameters.
-
11. A method as defined by claim 1 wherein the method further comprises the step of determining an intra-frame correlation and an inter frame correlation for said first and second parameters, said second parameter having one of a high inter-frame or intra-frame correlation.
-
12. A method as defined by claim 1 wherein the method further comprises coding input data with a linear predictor coder, said first and second parameters comprising linear predictor coder parameters.
-
13. A method as defined by claim 12, wherein the data comprises input samples, each of said frames having a number of samples, wherein said linear predictor coder operates at a particular bit rate and use a particular number of parameters to describe a particular number of samples, and wherein the method further comprises the step of doubling the particular number of samples described by said first parameters to maintain said particular bit rate.
-
14. A method as defined by claim 13 wherein said first parameter comprises an excitation parameter and said second parameter comprises a line spectral pair parameter.
-
15. A method as defined by claim 1 wherein the method further comprises the step of detecting a loss index for the packet network and increasing the number of description streams to a number greater than 2 if said loss index is relatively high, and decreasing said number of description streams to two if said loss index is relatively low.
-
16. A method as defined by claim 1 wherein said second parameter has a correlation coefficient having an absolute value of at least about 0.6 from parameter to parameter, of at least about 0.4 for a distance of two parameters, and of at least about 0.3 for a distance of 3 parameters.
-
17. A method as defined by claim 1 wherein each of said packets contains a plurality of parameters describing more than one of said frames.
-
18. A method as defined by claim 1 wherein the step of dividing the data into a plurality of frames comprises dividing the data into a plurality of frame sequences, each of said sequences comprising a plurality of frames, and wherein the step of sequentially encapsulating said first and second descriptions into a plurality of data packets comprises encapsulating said first and second descriptions into a plurality of reoccurring sequences of data packets, whereby a first data packet in each of said packet sequences contains parameters from said first description and a second data packet in said packet sequences contains parameters from said second description.
-
19. A method as defined by claim 1 further comprising the step of placing said first parameters in each of a first and a second description, and of interleaving said second parameters in said first and second descriptions whereby one of said second parameters is in said first description and the subsequent of said second parameters is in said second description, and wherein said descriptions are sequentially encapsulated in said plurality of data packets whereby said first data packet contains parameters from said first description and wherein said second data packet contains parameters from said second description.
-
32. A method for organizing data into packets as defined by claim 1 and further including the step of determining said first and second parameters for each of said frames by applying a model to said data in each of said frames.
-
20. A method for communicating voice data over a packet switched network, the method comprising the steps of:
-
obtaining data samples of an input voice stream;
dividing said data samples into a plurality of sequences of frames, each of said sequences comprising a plurality of frames, each of said frames representing a plurality of said samples;
modeling each of said frames using a linear predictor coder, said linear predictor coder determining at least an excitation parameter and a line spectral pair parameter for each of said frames;
placing said excitation parameter for each of said plurality of frames from each of said sequences in at least a first and a second description stream;
interleaving said line spectral pair parameters for each sequential of said frames from each of said sequences into said at least a first and a second description streams whereby a line spectral pair parameter describing a first of said plurality of sequential frames in each of said sequences is placed in said first description stream and a line spectral pair describing the next sequential frame is placed in said second description stream;
encapsulating said line spectral pair parameters and said excitation parameters from said at least a first and a second description streams into a plurality of reoccurring packet sequences whereby a first packet from each of said reoccurring packet sequences contains parameters from said first description stream and a second packet from said reoccurring packet sequences contains parameters from said second description stream; and
,communicating said plurality of reoccurring packet sequences of data packets over the packet switched network. - View Dependent Claims (21)
receiving said reoccurring plurality of packet sequences communicated over the packet switched network;
recreating said excitation parameters and said line spectral pair parameters by extracting said excitation parameters from one and only one of said first or said second packets from each of said reoccurring sequences of data packets, and extracting said interleaved line spectral pair parameter from each of said first and said second data packets in each of said reoccurring sequences of data packets;
identifying at least one lost first or second packet from one of said reoccurring sequences of data packets, obtaining a replacement excitation parameter for said lost packet using said excitation parameter from the other of said first or second packets from said reoccurring sequences, and reconstructing said line spectral pair parameter for said lost packet through an interpolation using line spectral pair parameters from packets adjacent to said at least one lost and packet; and
,decoding said data samples of said input voice stream using said excitation parameters and said line spectral pair parameters.
-
-
22. A computer program product for organizing data into packets, the program product comprising computer executable instructions stored in a computer readable medium that when executed by a computer cause the computer to:
-
divide input data into a plurality of frame sequences, each of said sequences comprising i sequential frames, modeling each of said i frames with a model that uses at least a first and a second parameter, said first parameter having a low inter-frame correlation and said second parameter having a high inter-frame correlation;
place said first parameters for each of said i frames from each of said frame sequences in one of a reoccurring data packet sequence, each of said packet sequences comprising i packets, whereby said first parameters from each of said i frames from one of said frame sequences is placed in each of said i packets in a respective packet sequence;
interleave said second parameters for each of said i frames from each of said sequences into said reoccurring data packet sequences whereby a second parameter describing each of said i frames from said one of said frame sequences is placed in a different of said i data packets in said respective packet sequence; and
,wherein i is an integer equal to or greater than 2. - View Dependent Claims (23, 24, 25, 26, 27, 28, 29)
communicate said plurality of packet sequences over a packet switched network;
receive said sequences of data packets communicated over the packet switched network;
extract said first parameters from one and only one of said i packets in each of said sequences of packets and extract said interleaved second parameters from each of said i packets from said sequences; and
,identify at least one lost packet from one of said packet sequences, obtain a replacement first parameter for said lost packet from another of said i packets in said packet sequence, and reconstruct said second parameter for said lost packet through an interpolation based on second parameters obtained from packets adjacent to said lost packet in said packet sequence.
-
-
24. A computer program product as defined by claim 23 wherein i is an integer greater than 3 and less than 9, and wherein said at least one lost packet comprises a burst of at least 3 sequential lost packets.
-
25. A computer program product as defined by claim 22 wherein said input data comprises voice data, and wherein said program product further causes the computer to code said input voice data with a linear predictor coder, and wherein said first parameter comprises an excitation parameter and said second parameter comprises a line spectral pair parameter.
-
26. A computer program product as in claim 25 wherein said linear predictor coder operates at a particular bit rate, and uses a particular number of parameters to describe a particular number of samples, and wherein the computer program product further causes the computer to increase said particular number of samples described by said first parameters by a factor of i whereby said particular bit rate is maintained.
-
27. A computer program product as defined by claim 25 wherein said first parameter comprises a plurality of parameters, said plurality comprising at least adaptive codeword parameters and stochastic codeword parameters.
-
28. A computer program product as defined by claim 22 wherein said second parameter has a correlation coefficient having an absolute value of at least about 0.6 from parameter to parameter, of at least about 0.4 for a distance of two parameters, and of at least about 0.3 for a distance of 3 parameters.
-
29. A computer program product as defined by claim 22 wherein the program product further causes the computer to:
-
place said first parameters from each of said i frames in each of said frame sequences in each of i descriptions;
interleave said second parameters from each of said i frames from each of said frame sequences in said i descriptions whereby said second parameter from each of said i frames is placed in a different of said i descriptions; and
,wherein said first and second descriptions are encapsulated in said data packet sequences whereby each of said i packets in each of said reoccurring sequences contains parameters from different of said i descriptions.
-
-
30. A computer program product for organizing voice data into packets, the program product comprising computer executable instructions stored in a computer readable medium that when executed cause the computer to:
-
obtain data samples of an input voice stream;
divide said data samples into a plurality of sequences of frames, each of said sequences comprising a plurality of frames, each of said frames representing a plurality of said samples;
model each of said frames using a linear predictor coder, said linear predictor coder determining at least an excitation parameter and a line spectral pair parameter to model each of said frames;
place said excitation parameter for each of said plurality of frames from each of said sequences in at least a first and a second description stream;
interleave said line spectral pair parameters for sequential of said frames from each of said sequences into said at least a first and a second description stream whereby a line spectral pair parameter describing a first of said plurality of sequential frames in each of said sequences is placed in said first description stream and a line spectral pair describing the next sequential frame is placed in said second description stream; and
,encapsulate said parameters from said at least a first and a second description streams into a plurality of reoccurring packet sequences whereby a first packet from each of said reoccurring packet sequences contains parameters from said first description stream and a second packet from said reoccurring packet sequences contains parameters from said second description stream. - View Dependent Claims (31)
communicate said plurality of packet sequences over a packet switched network;
receive said plurality of data packet sequences communicated over the packet switched network;
decode said data samples by using said excitation parameters extracted from one and only one of said packets in each of said sequences of packets and said interleaved line spectral pair parameters extracted from each of said packets from said sequences; and
identify at least one lost packet from one of said packet sequences, obtain a replacement excitation parameter for said lost packet from another of said packets in said packet sequence, and reconstruct said line spectral pair parameter from said lost packet through an interpolation based on line spectral pair parameters obtained from packets adjacent to said lost packet in said packet sequence.
-
Specification