METHODANDPROGRAMPRODUCTFOR ORGANIZINGDATAINTOPACKETS
TECHNICAL FIELD The present invention is related to network communications. More particularly, the present invention is related to methods and program products for achieving reduced effects due to packet losses.
BACKGROUND ART
Packet network communications are often performed using a packet switched protocol, in which data is packaged into discrete packets that are then transmitted individually across the network. Each packet is individually addressed to one or more recipient addresses, and may also include routing instructions for traversing the network. A widely used example of a packet based network communications protocol includes Internet Protocol
("IP"), which may be used for real-time interactive communications, for instance, over the Internet. Because of the widespread and relatively low cost access to the Internet, IP has become a popular protocol for use in a variety of applications.
By way of example, real-time communication of voice, video, and music data over networks is often accomplished in a packet-switched protocol such as IP. Generally, these applications involve coding a temporal stream of real-time input data such as spoken words, music, or a video clip into digital format, packaging into discrete packets, transmission over the network,
reception at a receiver site, unpacking, and decoding back to its original voice, video, or music format. Many particular algorithms for accomplishing these tasks are known.
One type of algorithm for coding and decoding speech data is known generally as a linear predictive coding. Linear predictive coding analyzes the input speech data to build a model of the speech. It is advantageous in that it combines relatively high quality performance with low bit rate requirements. Since speech is simply the acoustic wave that is radiated from lips when air is expelled from the lungs, adjusted at the glottis, and passed through the vocal tract, a linear predictor speech coding method decouples vocal-cord vibration or turbulence in the glottis with the frequency shaping effect of the vocal tract. The vocal-cord vibration or turbulence in the glottis is usually referred to as excitation, or residue, whereas the vocal tract is modeled as a linear predictor. Because speech signals vary with time, modeling is done on short chunks of the signal, called frames.
A numerical model is built to model the vocal tract and the residue within each frame. The model itself in linear prediction coding uses a linear prediction analysis to predict each sample as a linear combination of previous samples. Line spectral pairs ("LSPs"), often coded as a vector, are an equivalent representation of the coefficients of the model's linear equation. Speech signals are also characterized by additional parameters that may generally be referred to as excitations. Excitations may be coded in any of a number of formats, with an example being stochastic and adaptive codewords used in Federal Standard 1016 CELP (Code Excited Linear Predictor). Regardless of the particular algorithm used in packet-based communication to code speech, music, or video data, the decoded data is subject to errors and low quality due to packet loss or delay. Packet loss or delay occurs when packets of data are lost between the transmission point and the reception point, or are delayed such that they arrive beyond the time they are supposed to be used. As used herein, it will be understood that the term "packet loss" refers to both packet loss and delay. Packet loss may be a
particularly acute problem on networks with no quality of service guarantee such as the Internet. Packets may be lost in a "random" pattern where individual packets tend to turn up missing, or in a "bursty" pattern where sequences of packets are missing. In the case of voice, video, and music transmission, packet loss problems are particularly disadvantageous. They can result in what is perceived as a "choppy" or "jumpy" decoded stream to the end user recipient, with pauses, frozen frames, missing frames, and the like encountered. In addition, many coding algorithms utilize temporal differences to achieve coding efficiency, thereby introducing sequential packet-to-packet dependencies into the packets transmitted. Packet losses under such circumstances can be particularly troublesome.
Methods for preventing packet loss and otherwise alleviating packet loss effects have been proposed. For example, highly reliable networks can be developed with relatively low rates of packet loss. Such networks, however, tend to require expensive resources to build and maintain to the extent that they are often not practical, especially in a wireless environment. Other proposed solutions involve introducing redundancies to transmission, wherein data is transmitted multiple times so that if one packet is lost the data may be recovered from a second. Again, however, these solutions may require substantially increased resources in the form of costly additional bandwidth and resources. Priority based methods assign different priorities to different packets, with the highest priority packets given more resources in the network in order to have a higher chance to travel to the destination. Even these high- priority packets are subject to loss and delay, however. Further, these methods require an underlying network protocol having priority level support.
Other proposed methods include those that require some real time cooperation between sender and receiver. If a packet is lost, the receiver notifies the sender so that the packet may be resent. Such schemes may not be useful, however, with real time interactive communications because of the time limitations on data delivery. Also, reliable communications between the
receiver and sender are often not available, making such feedback based methods difficult.
Still additional methods for alleviating packet loss/delay problems focus on "concealing" loss by re-constructing missing packets at the receiver. Some of these algorithms use information based on preceding and/or succeeding packets to estimate the contents of the missing packet. Other algorithms fill missing packets with "background" data, with an example being inserting white noise or static, or replaying previously received packets in the case of voice data. Clearly, such practices can be disadvantageous for speech, music, or video as the data in an individual packet does not always flow "smoothly" from the preceding to the succeeding, and is therefore often difficult to accurately reconstruct.
One type of packet loss concealment method is known as multi- description coding ("MDC"). MDC divides data into equally important streams so that either stream may be decoded for acceptable replay of the input data and that more streams will result in higher decoding quality than one stream. A straightforward way to implement MDC is sample-based MDC that relies on strong inter sample correlations. Interleaving is used to distribute adjacent samples (e.g., sequential odd and even) of voice, video, or music data to different packets, as opposed to a sequence of adjacent samples being packaged in the same packet. MDC accordingly results in much smaller "gaps" being left to fill when a packet is lost, with interpolation of samples in packets received that is much more effective. Examples of MDC can be found in US Patent No. 6,215,787 to Kovacevic et al., US Patent no. 6,163,868 to Kondo et al., both of which are hereby incorporated by reference.
The use of MDC for LP coding of data, however, has been to date limited and not well refined. Many problems remain unresolved. Experiments performed to investigate the use of traditional sample-based MDC with LP coders for voice, for instance, resulted in poor results. In order to provide multiple descriptions using many MDC methods of the prior art, increased bandwidth was disadvantageously required. As a proposed solution, the
sampling rate was decreased so that the bit rate remained constant with the pre- MDC coding scheme. These proposed solutions, however, met with Umited success in that resulting speech quality was degraded due to the reduced sampling rate. Unresolved needs in the art therefore exist.
DISCLOSURE OF THE INVENTION The present invention is directed to a method and a program product for organizing data into packets. An embodiment of the present invention comprises the steps of dividing the data into a plurality of frames, with each frame being described by at least a first and a second parameter. The second parameter has a high correlation from parameter to parameter. The first parameter for each of the frames is placed in a first and a second data packet, while the second parameter is interleaved into the first and second data packets. An additional embodiment of the invention comprises additional steps of communicating the data packets over a packet switched network, receiving the communicated packets, and extracting the first parameter from only one of the first or second packets, and extracting the interleaved second parameters from both of the first and second packets. If one of the first or second packets is discovered to be lost, the first parameters may be replaced using the first parameters from the other of the first or second packets in the sequence. The second parameter may be reconstructed using at least the second parameter from the other packet in the sequence, as the second parameter has a high correlation. Through embodiments of the invention, then, data such as voice, video, music or the like are communicated in a manner that substantially increases the quality of the data under conditions of lossy networks. Otherwise unresolved problems in the art are thereby solved.
BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 is a flowchart illustrating steps of an invention embodiment.
FIG. 2 is a schematic helpful for discussing the embodiment of FIG. 1.
FIG. 3 is a flowchart illustrating steps of an additional invention embodiment.
FIGS. 4(a)-(b) are schematics helpful for discussing the embodiment of FIG. 3. FIG. 5 is a schematic illustrating a FS CELP coder of the prior art.
FIG. 6 is a schematic illustrating a 2 description MDC CELP coder embodiment of the present invention.
FIG. 7 is a schematic illustrating a 4 description MDC CELP coder embodiment of the present invention.
BEST MODE OF CARRYING OUT THE INVENTION
In order to illustrate the best known modes of practice of embodiments of the present invention, it will be useful to first describe a general embodiment of a method of the invention. Accordingly, reference is made to the flowchart of FIG. 1 illustrating a method embodiment 2, as well as to the schematic of FIG. 2. An embodiment step comprises dividing input data into a plurality of frames 48 and 50 (block 10). Each frame is described by a plurality of parameters (block 12), illustrated in FIG. 2 as X, Y, and Z. The term "parameter" as used herein is intended to broadly refer to data. The parameters may comprise, by way of example, model coefficients representative of the data in the frames 48 and 50. The method embodiment 2 further comprises a step of determining a correlation for each of the parameters describing the frames 48 and 50 (block 14). As used herein, the term "correlation" is intended to broadly refer to a measure of the variation of a parameter from parameter to parameter. By
way of example, a parameter having a high correlation may generally be thought of as having a relatively close linkage between sequential parameters. Correlations may be determined on an intra or inter frame basis, for example, with an intra frame correlation referring to the correlation between the respective parameters in a particular frame, and an inter frame correlation referring to the correlation between parameters of different frames.
In the embodiment illustrated in FIG. 2, an inter frame correlation is determined. It is noted that it may be useful to consider a plurality of frames that numbers greater than the two illustrated in FIG. 2; indeed it will be appreciated that accurate determination of inter frame correlations will often require a consideration of a multiplicity of frames. Likewise, determination of an intra frame correlation may comprise consideration of a multiplicity of parameters in a frame.
For this reason it may be convenient to perform the step of determining a correlation prior to other method steps. Further, the step of determining a correlation may simply comprise obtaining pre-determined correlations from a lookup table, user input, or other reference. In the method embodiment 2 as applied to the schematic of FIG.2, the parameter Z has been determined to have a high inter frame correlation, and the parameters X and Y to have a low inter frame correlation.
The method embodiment 2 further comprises creating at least two descriptions 52 and 54 of the frames. In creating the descriptions 52 and 54, the method comprises a step of placing parameters for both frames having a low correlation, which in this embodiment comprises an inter frame correlation, in both descriptions (block 16), and of interleaving parameters having a high inter frame correlation in the two descriptions 52 and 54 (block 18). This results in the description 52 having the Z0 parameter describing the frame 48, in addition to the X and Y parameters that describe both the frames 48 and 50. Likewise, the description 54 contains the Zi parameter describing the frame 50, as well as all of the X and Y parameters that describe both the frames 48 and 50.
The two descriptions 52 and 54 are then encapsulated in a sequence of data packets 56 and 58 (step 20). The sequence is reoccurring in that subsequent frames from the first and second descriptions will be encapsulated in the same order in subsequent packet sequences. By way of example, parameters from the description 52 may always be encapsulated in even numbered packets, while parameters from the description 54 may always be encapsulated in odd numbered packets. The data packets are then communicated over the packet switched network (block 22).
It will be appreciated that embodiments of the invention will also be useful in manipulating intra-frame correlations. It is noted, however, that the designation of a correlation as "intra" or "inter" frame is somewhat arbitrary in that definition of a frame size will change this designation. That is, an "intra-frame" correlation could conceivably be called an "inter-frame" correlation depending on the definition of a frame size. Accordingly, it will be appreciated that the precise characterization of what kind of correlation (e.g., inter frame or intra frame) is being used in different embodiments of the present invention is not important to the invention.
The method embodiment 2 further comprises steps of receiving the packets over the network and of extracting the data from the packets, as generally shown in the flowchart of FIG. 3 and in the schematics of FIG. 4. The packets 56 and 58 are first received (block 24), with the data then recreated from the packets 56 and 58. If it is determined that no packets from a sequence are lost (block 26), the data may be recreated by extracting the low inter frame correlation parameters from only one of the packets 56 or 58 (block 28), and the interleaved parameters extracted from both packets 56 and 58 (block 30). As illustrated by FIG. 4(a), for example, the X and Y parameters are extracted from the packet 58 only, while the interleaved Z parameters are extracted from both data packets 56 and 58. The data may then be reconstructed using the extracted parameters. The method embodiment 2 further contemplates accommodating lost packets. In particular, if it is determined that one of the packets from a
sequence has been lost (block 26), the low correlation parameters may be obtained from the other packet in the sequence as this data has been placed in each packet. In particular, the low correlation parameter for the lost packet may be obtained from the other packet in the sequence (block 32), and the high inter frame correlation parameter reconstructed using at least the high correlation parameter from the other packet in the sequence (block 34). More preferably, a plurality of high correlation parameters are used to reconstruct the lost parameter.
With reference to the schematic of FIG. 4(b) by way of example, the X and Y parameters are obtained from the frame 56 when frame 58 is determined to be lost. The high inter frame correlation parameter is of course not available from the other frame in the sequence. Because it is of a high inter frame correlation, however, it may be reconstructed using high inter frame correlations from at least one other packet. The schematic of FIG. 4(b), for example, illustrates a step of reconstructing the lost parameter ZN for the lost packet 58 using at least the parameter ZN+1 from the packet 56. It is noted that other invention embodiments may comprise reconstructing the high inter frame correlation parameter using parameters from a plurality of other packets, with packets adjacent to the lost packet preferred. With this general invention having been now discussed, a more detailed embodiment may be illustrated. In particular, it has been discovered that embodiments of the invention are of particular utility when directed to speech coding methods, and more particularly to use with linear predictor coders ("LPC"). For example, an invention embodiment comprises steps of multiple description coding in combination with a code excited linear predictor ("CELP") method. Before describing this embodiment in detail, basic operation of a CELP coder, in the form of the FS CELP coder, will be helpful.
FIG. 5 is a schematic useful for describing a FS CELP single description coder ("SDC") operation of the prior art. In the original SDC FS CELP coder, a 34-bit line spectral pair ("LSP") vector parameter 100 describes each 240-sample speech frame 102. The 240 sample frame is further divided
into four sub-frames 104 of 60 samples each, with excitation parameters in the form of adaptive and stochastic codewords (with 110 bits total), ac and sc, respectively, used to describe each of the sub-frames 104. The frame parameters totaling 144-bits are encapsulated in a UDP packet and sent to the receiver over a network.
The single-description CELP decoding process is generally the reverse process as that illustrated by FIG. 5. In general, the packets are received, and the LSP vector parameters and the adaptive and stochastic codewords are extracted and used to generate speech. If communication occurs over a lossy network and one or more consecutive packets are lost, the receiver may not be able to recover the parameters in the corresponding coded frames and will play silence in the decoded speech frames. When valid packets are received once again, the receiver will extract the parameters and feed them to the CELP decoder. Since decoding is state dependent, there will be several frame delays before the proper states of the decoder are restored and satisfactory playback quality is achieved. As a result, the performance of an SDC CELP coder is very sensitive to packet losses and burst lengths.
With this general description of SDC operation for the CELP coder, an embodiment of the present invention that comprises two-way MDC CELP may be illustrated. With reference to the schematic of FIG. 6, an embodiment of the present invention comprises a step of dividing input data into a pluraUty of frames 102 and 104. In this invention embodiment, each frame comprises 240 speech samples. The CELP coder 106 comprises a coder modified to perform steps of the invention embodiment in addition to general steps of CELP coding, such as generation of LSPs, and adaptive and stochastic codewords. The modified CELP coder 106 codes each pair of 240-sample frames in the original speech sequence to generate an LSP vector for each frame, as well as an adaptive and stochastic codeword set for each sub frame of size 120 samples, as represented by the box 108. The modified CELP multi-description coder 106 then places all of the adaptive and stochastic codewords from each of the sub-frames into two
description streams 110 and 112. The LSP parameters, however, are interleaved into the two description streams 110 and 112 so that the LSP0 parameter vector is placed in the stream 110 and the LSPi parameter vector is placed in the stream 112. It has been discovered that interleaving LSP parameters in LP speech processors in this manner is an advantageous step for error concealment resulting from packet loss because a missing LSP parameter vector may be relatively accurately reconstructed. The difference between LSP parameters for adjacent frames or sub-frames is closely related to the formant bandwidths of speech, which suffice to specify the entire spectral envelope for vowels. This close relationship suggests that linear interpolations of LSPs, which are equivalent to the interpolation of the difference of adjacent LSPs, are closely related to the generation of smooth format information.
It has been discovered that LSPs in LP speech coding change slowly from one frame to the next and thus have high inter-frame correlations. Those skilled in the art will appreciate that there are many methods known for evaluating correlations of variables between samples. As used herein, the term "high correlation" is intended to broadly refer to a condition of relative smoothness and constant change between sequential parameters. In statistics, the correlation between two sequences X = {xl,...,xn} and Y = {y ...,yn} may be represented as: _ E(X -μx)(Y-μy) jVar(X)Var(Y) where μ, and Var(I) are the mean and variance of sequence / , and C is a correlation coefficient. Those skilled in the art will appreciate that many other methods for calculating a correlation are known and suitable for practice with the present invention.
Invention embodiments have been found to perform well when the correlation coefficient of LSP parameters using a linear predictor coder and multiple individual input speech patterns achieves:
TABLE 1: LSP Correlation Factors It will be noted in reference to Table 1 that "Parameter Distance" refers to the sequential distance between parameters. Further, the term "parameter" as used herein is intended to be broadly interpreted as encompassing a plurality or a set of parameters as well as a single parameter. Accordingly, "parameter distance" may refer, for example, to distances between sets of parameters, parameter vectors, or to distances between frames (as is the case when considering LSPs), or to distances between parameters within a frame. The results illustrated by Table 1 suggest that an LSP from one or more lost packets can be accurately reconstructed from those received in adjacent/proximate packets using relatively straightforward methods such as linear interpolation and sign changes. Also, the vector of LSP indices in a frame is monotonically increasing (0 < Xi < X2 < ... < Xι0). This means that it is equivalent to a stable linear predictor, and that a vector of interpolated LSPs will also be a stable linear predictor when using linear interpolations to reconstruct lost LSPs.
Accordingly, linear interpolation of LSPs has been discovered to be accurate for approximating the positive correlation and smooth changing of LSPs, and has accordingly been discovered to be a useful method step for concealing packet losses. Further, the interleaving of LSPs is thus an acceptable practice for LP coding in that the loss of one or more LSPs may be overcome through reconstruction.
The excitation parameters in the form of the adaptive and stochastic codewords, however, have been discovered to be not well correlated from frame to frame. Accordingly, they will not be able to be well
reconstructed when lost. Thus these parameters are placed in both description streams 110 and 112.
It will be appreciated that other invention embodiments may be practiced using other discovered correlation relationships than inter or intra frame correlations. Indeed, virtually any pattern of correlation, once discovered, can be manipulated through an invention embodiment to achieve multiple descriptions through interleaving.
The MDC CELP coder based embodiment of the invention described in FIG. 6 differs from the standard SDC CELP coder in the size of sub-frames used for modeling with adaptive and stochastic codewords. This is done so that the bit rate of transmission remains constant with the original CELP coder of the prior art, and accordingly so that increased bandwidth is not required for practice of this method embodiment.
In particular, the modified CELP coder 106 doubles the prior art sub-frame size of 60 samples to 120 samples, and then generates a total of 110- bit codewords for the four 120-sample sub-frames. This allows the frame size in each description to be 144 bits, the same size as a coded frame in SDC CELP of the prior art. Thus, the modified CELP coder 106 models sub-frame sizes of twice the size of the SDC CELP coder, resulting in some quality degradation. Experiments have shown, however, that the degradation in quality is acceptable, and thus represents a worthwhile tradeoff for the loss concealment capabilities resulting form the interleaved descriptions.
After coding and parameter interleaving, each of the description streams 110 and 112 has an LSP parameter vector that describes one of the frames 102 and 104, and adaptive and stochastic codewords that describe both of the frames 102 and 104. Each frame of these description streams 110 and 112 is then encapsulated in an individual UDP packet 114 or 116. By way of example, the description stream frame 110 is placed in the UDP packet 116, while the description stream frame 112 is placed in the UDP packet 114. The sequence of packets 114 and 116 is maintained in sending the packets to the network. Note that the invention embodiment has maintained the same frame
size of 240 in linear prediction analysis, while providing multiple descriptions of the samples.
At the receiver side, if all the packets in both descriptions are received, the receiver carries out the reverse process generally illustrated in FIG. 6. It first de-interleaves the information received into a single coded stream by extracting the LSPs from frames in both descriptions and the codewords from frames in either description, before decoding the coded stream. It is noted that the quality of the decoded stream is equivalent to a coder with a frame size of 240 and a sub-frame size of 120. The precision of linear prediction analysis has been preserved, however, so the decoded stream can be guaranteed to have better quality than sample-based MDC.
When some packets in one description are lost, the receiver only needs to reconstruct the lost LSPs using the LSPs in those packets received in the other description. It does not reconstruct the codewords because they are replicated in both descriptions. For example, if a frame from the description 110 of FIG. 6 is lost, then the receiver reconstructs the LSPs in the lost frame by averaging the LSPs of the immediately preceding and following frames in the description 112. It is easy to see that such reconstructions based on averaging result in stable linear predictors. Moreover, since the receiver reconstructs the coding parameters of lost frames before decoding, it does not need to estimate the decoding states of lost frames as is done in SDC.
When the loss of a burst of packets leads to the loss of all the frames corresponding to those of an interleaving set, the receiver may not be able to reconstruct the lost LSPs and codewords with required accuracy, and may have to resort to other concealment methods such as, for instance, generating silence in the decoded speech sequence. However, the chance for such bursty losses is much smaller than that in SDC because all losses of burst length one and some losses of burst lengths two can be recovered using the method embodiment as illustrated in FIG. 6. Other embodiments of the present invention will comprise steps of using a degree of replication greater than 2. By way of example, invention
embodiments may comprise MDC LSP coding using 3, 4, 5, or more description streams. By way of more particular example, the schematic of FIG. 7 is presented to illustrate a four-way LSP-based MDC CELP method embodiment. FIG. 7 shows the way that the sender interleaves the LSPs of four
240- sample frames in an interleaved set into four frames in the four descriptions. Here, the frame size of frames 202-208 in linear prediction analysis remains at 240 samples, but the sub-frame size has been increased to 240 samples (from 60 samples in the SDC CELP coder of the prior art) in order to maintain the same 144-bit description frame size of description frames 212- 218 after the adaptive and stochastic codewords are replicated in each description and the LSPs are interleaved. After coding and parameter interleaving, the description i, i = 0,1,2,3, contains the LSPs of frame 4n + i and the codewords from all the coded frames. Note that the quality of four-way MDC is expected to be worse than that of two-way MDC due to its longer sub- frame size.
In four-way MDC, there are five loss patterns of frames in an interleaving set in which losses can be concealed at the receiver: one out of four frames received (0, 1, 2, or 3), two consecutive frames received (0-1, 1-2, 2-3, or 3-0), two disjoint frames received (0-2, or 1-3), three frames received (0-1-2, or 1-2-3, or 2-3-0, or 3-0-1), and all four frames received. If four frames are received, then the receiver de-interleaves the parameters before decoding. In all the other cases, the receiver can recover a lost LSP(s) by interpolating the LSPs received in immediately preceding and following frames. Similar to two-way MDC, linear interpolations result in stable linear predictors in 4-way MDC.
The selection of a degree of replication may be based on the degree of "burstiness" of packet loss experienced on the packet switched network used for communication. It has been discovered that the Internet has a high preponderance of one or two burst losses for communications carried out in the United States. Accordingly, a degree of replication of 2 (i.e., two
descriptions) is suggested to be suitable for intra-US Internet communications. Some international Internet communications have been discovered to have a substantial occurrence of loss bursts greater than 2, however, so a degree of replication of 3 or 4 may be preferred. It is suggested that for most Internet based LP voice coding operations, a degree of replication of 4 will be the maximum that is required.
Other invention embodiments may comprise determining dynamically the packet loss burst length behavior of the network being used, and using this information to set the degree of replication. By way of example, an invention embodiment may comprise a step of sending periodically one or more "ping" signals to the receiver to determine the packet loss burst size distribution, and setting the degree of replication accordingly. Other invention embodiments may comprise a feedback-based selection whereby the receiver may indicate periodically that the quality of the received signal is low, and that the degree of replication accordingly should be increased.
Those knowledgeable in the art will appreciate that the present invention lends itself well to practice in the form of computer program products. Accordingly, additional embodiments of the invention may comprise computer program products comprising computer executable instructions stored on a computer readable medium that when executed by a computer cause the computer to perform steps of a method embodiment of the invention. It will thus be appreciated that description of invention method embodiments made herein may also be considered to be description of a computer program product invention embodiment in that the method steps may be performed by a computer.
Further, the term "computer" as used herein is intended to broadly refer to any device capable of executing instructions, with examples including, but not limited to desktop computers, servers, portable computer devices, portable processor based communications devices such as a cellular phone or a personal digital assistant, other portable processor based devices, and the like. Examples of computer readable mediums suitable for use with
practice of invention embodiments include, but are not limited to, optical storage mediums, magnetic storage mediums, dynamic and static memory mediums, and the like.
Those knowledgeable in the art will appreciate that the invention embodiments discussed herein are presented only to illustrate the best known modes of practice of the present invention, and that many additional embodiments are possible. Indeed, modifications to the invention embodiments discussed herein will be obvious to those knowledgeable in the art. By way of example, the sequence of method steps as discussed herein may be altered within the scope of the invention. In addition, steps of using descriptions may be eUminated, with parameters instead simply placed directly in data packets.
Also, other linear predictor coders may be used with methods of the invention in addition to the CELP coder described herein. By way of example and not limitation, those knowledgeable in the art will appreciate that embodiments of the present invention may be practiced using MELP, MP- MLQ, and ACELP speech coders. It will be further appreciated that when practicing the invention with any of these speech coders, it may be desirable to decrease the parameter to sample ratio for replicated parameters in order to maintain the bit rate of the original coder while practicing MDC. That is, the number of samples described per parameter for replicated parameters may be decreased by a factor equal to the degree of replication so that the bit rate of the coder with multi description coding is consistent with the bit rate when using SDC. By way of still additional example, although method of embodiments have been discussed in relation to communicating voice data, it will be appreciated that the present invention will be useful for communicating a wide variety of data, including, but not limited to, images, video, music, and that like. Methods of the present invention may prove of particular utility with wireless networks, as it may be more difficult to provide a high degree of reliability for a wireless than for a land based network.
Also, it will be appreciated that one invention embodiment may comprise steps of coding and interleaving parameters only, and, while a second embodiment may comprise additional steps of communicating the data over a network, and receiving, de-interleaving, and decoding the data. It is intended that the specific embodiments and configurations herein disclosed are illustrative of the preferred and best modes for practicing the invention, and should not be interpreted as limitations on the scope of the invention as defined by the appended claims.