1. Field of the Invention
The present invention relates to methods and apparatus for encoding and decoding audio signals, particularly audio signals that may include both speech-like and non-speech-like signal components simultaneously and/or sequentially in time. Audio encoders and decoders capable of varying their encoding and decoding characteristics in response to changes in speech-like and non-speech-like signal content are often referred to in the art as “multimode” “codecs” (where a “codec” may be an encoder and a decoder). The invention also relates to computer programs on a storage medium for implementing such methods for encoding and decoding audio signals.
2. Summary of the Invention
According to a first aspect of the present invention, a method for code excited linear prediction (CELP) audio encoding employs an LPC synthesis filter controlled by LPC parameters, a plurality of codebooks each having codevectors, at least one codebook providing an excitation more appropriate for speech-like signals than for non-speech-like signals and at least one other codebook providing an excitation more appropriate for non-speech-like signals than for speech like signals, and a plurality of gain factors, each associated with a codebook. The method comprises applying linear predictive coding (LPC) analysis to an audio signal to produce LPC parameters, selecting, from at least two codebooks, codevectors and/or associated gain factors by minimizing a measure of the difference between the audio signal and a reconstruction of the audio signal derived from the codebook excitations, the codebooks including a codebook providing an excitation more appropriate for a non-speech like signal and a codebook providing an excitation more appropriate for a speech-like signal, and generating an output usable by a CELP audio decoder to reconstruct the audio signal, the output including LPC parameters, codevectors, and gain factors. The minimizing may minimize the difference between the reconstruction of the audio signal and the audio signal in a closed-loop manner. The measure of the difference may be a perceptually-weighted measure.
According to a variation, the signal or signals derived from codebooks whose excitation outputs are more appropriate for a non-speech-like signal than for a speech-like signal may not be filtered by the linear predictive coding synthesis filter.
The at least one codebook providing an excitation output more appropriate for a speech-like signal than for a non-speech-like signal may include a codebook that produces a noise-like excitation and a codebook that produces a periodic excitation and the at least one other codebook providing an excitation output more appropriate for a non-speech-like signal than for a speech-like signal may include a codebook that produces a sinusoidal excitation useful for emulating a perceptual audio encoder.
The method may further comprise applying a long-term prediction (LTP) analysis to the audio signal to produce LTP parameters, wherein the codebook that produces a periodic excitation is an adaptive codebook controlled by the LTP parameters and receiving as a signal input a time-delayed combination of at least the periodic and the noise-like excitation, and wherein the output further includes the LTP parameters.
The adaptive codebook may receive, selectively, as a signal input, either a time-delayed combination of the periodic excitation, the noise-like excitation, and the sinusoidal excitation or only a time-delayed combination of the periodic excitation and the noise-like excitation, and the output may further include information as to whether the adaptive codebook receives the sinusoidal excitation in the combination of excitations.
The method may further comprise classifying the audio signal into one of a plurality of signal classes, selecting a mode of operation in response to the classifying, and selecting, in an open-loop manner, one or more codebooks exclusively to contribute excitation outputs.
The method may further comprise determining a confidence level to the selecting a mode of operation, wherein there are at least two confidence levels including a high confidence level, and selecting, in an open-loop manner, one or more codebooks exclusively to contribute excitation outputs only when the confidence level is high.
According to another aspect of the present invention, a method for code excited linear prediction (CELP) audio encoding employs an LPC synthesis filter controlled by LPC parameters, a plurality of codebooks each having codevectors, at least one codebook providing an excitation more appropriate for speech-like signals than for non-speech-like signals and at least one other codebook providing an excitation more appropriate for non-speech-like signals than for speech-like signals, and a plurality of gain factors, each associated with a codebook. The method comprises separating an audio signal into speech-like and non-speech-like signal components, applying linear predictive coding (LPC) analysis to the speech-like signal components of the audio signal to produce LPC parameters, minimizing the difference between the LPC synthesis filter output and the speech-like signal components of the audio signal by varying codevector selections and/or gain factors associated with the or each codebook providing an excitation output more appropriate for a speech-like signal than for a non-speech-like signal, varying codevector selections and/or gain factors associated with the or each codebook providing an excitation output more appropriate for a non-speech-like signal than for a speech-like signal, and providing an output usable by a CELP audio decoder to reproduce an approximation of the audio signal, the output including codevector selections and/or gains associated with each codebook, and the LPC parameters. The separating may separate the audio signal into speech-like signal components and non-speech-like signal components.
According to two variations of an alternative, the separating may separate the speech-like signal components from the audio signal and derive an approximation of the non-speech-like signal components by subtracting a reconstruction of the speech-like signal components from the audio signal, or the separating may separate the non-speech-like signal components from the audio signal and derive an approximation of the speech-like signal components by subtracting a reconstruction of the non-speech-like signal components from the audio signal.
A second linear predictive coding (LPC) synthesis filter may be provided and the reconstruction of the non-speech-like signal components may be filtered by such a second linear predictive coding synthesis filter.
The at least one codebook providing an excitation output more appropriate for a speech-like signal than for a non-speech-like signal may include a codebook that produces a noise-like excitation and a codebook that produces a periodic excitation and the at least one other codebook providing an excitation output more appropriate for a non-speech-like signal than for a speech-like signal may include a codebook that produces a sinusoidal excitation useful for emulating a perceptual audio encoder.
The method may further comprise applying a long-term prediction (LTP) analysis to the speech-like signal components of the audio signal to produce LTP parameters, in which case the codebook that produces a periodic excitation may be an adaptive codebook controlled by the LTP parameters and it may receive as a signal input a time-delayed combination of the periodic excitation and the noise-like excitation.
The codebook vector selections and/or gain factors associated with the or each codebook providing an excitation output more appropriate for a non-speech-like signal than for a speech-like signal may be varied in response the speech-like signal.
The codebook vector selections and/or gain factors associated with the or each codebook providing an excitation output more appropriate for a non-speech-like signal than for a speech-like signal may be varied to reduce the difference between the non-speech-like signal and a signal reconstructed from the or each such codebook.
According to a third aspect of the present invention, a method for code excited linear prediction (CELP) audio decoding employs an LPC synthesis filter controlled by LPC parameters, a plurality of codebooks each having codevectors, at least one codebook providing an excitation more appropriate for non-speech-like signals than for speech-like signals and at least one other codebook providing an excitation more appropriate for non-speech-like signals than for speech-like signals, and a plurality of gain factors, each associated with a codebook. The method comprises receiving the parameters, codevectors, and gain factors, deriving an excitation signal for the LPC synthesis filter from at least one codebook excitation output, and deriving an audio output signal from the output of the LPC filter or from the combination of the output of the LPC synthesis filter and the excitation of one or more ones of the codebooks, the combination being controlled by codevectors and/or gain factors associated with each of the codebooks.
The at least one codebook providing an excitation output more appropriate for a speech-like signal than for a non-speech-like signal may include a codebook that produces a noise-like excitation and a codebook that produces a periodic excitation and the at least one other codebook providing an excitation output more appropriate for a non-speech-like signal than for a speech-like signal may include a codebook that produces a sinusoidal excitation useful for emulating a perceptual audio encoder.
The codebook that produces periodic excitation may be an adaptive codebook controlled by the LTP parameters and may receive as a signal input a time-delayed combination of at least the periodic and noise-like excitation, and the method may further comprise receiving LTP parameters.
The excitation of all of the codebooks may be applied to the LPC filter and the adaptive codebook may receive, selectively, as a signal input, either a time-delayed combination of the periodic excitation, the noise-like excitation, and the sinusoidal excitation or only a time-delayed combination of the periodic and the noise-like excitation, and wherein the method may further comprise receiving information as to whether the adaptive codebook receives the sinusoidal excitation in the combination of excitations.
Deriving an audio output signal from the output of the LPC filter may include a postfiltering.
a is a schematic conceptual block diagram of an encoder and decoder method or device according to aspects of the invention showing a way in which a combination speech-like and non-speech-like signal may be separated in an encoder into speech-like and non-speech-like signal components and encoded by respective speech-like signal and non-speech-like signal encoders and then, in a decoder, decoded in respective speech-like signal and non-speech-like signal decoders and recombined.
b is a schematic conceptual block diagram of an encoder and decoder method or device according to aspects of the invention in which the signal separation is implemented in an alternative manner from that of
a is a schematic conceptual functional block diagram of an encoder and decoder method or device according to aspects of the invention showing a modification of the arrangement of
b is a schematic conceptual functional block diagram of an encoder and decoder method or device according to aspects of the invention showing a modification of the arrangement of
a is a schematic conceptual functional block diagram of a first variation of an example of a unified speech-like signal/non-speech-like signal encoder according to aspects of the present invention. In this variation, the selection of encoding tools and their parameters may be decided by minimizing the overall reconstruction error in a closed-loop manner.
b is a schematic conceptual functional block diagram of a second variation of an example of a unified speech-like signal/non-speech-like signal encoder according to aspects of the present invention. In this variation, the selection of encoding tools is determined by a mode selection tool that operates in response to signal classification results. Parameters may be decided by minimizing the overall reconstruction error in a closed-loop manner as in the example of
c is a schematic conceptual functional block diagram of a third variation of an example of a unified speech-like signal/non-speech-like signal encoder according to aspects of the present invention. In this variation, signal separation is employed.
d is a schematic conceptual functional block diagram showing a variation of
a is a schematic conceptual functional block diagram of a decoder usable with one version of any of the encoders of the examples of
b is a schematic conceptual functional block diagram of a decoder usable with another version of any of the encoders of the examples of
Audio content analysis can help classify an audio segment into one of several audio classes such as speech-like signal, non-speech-like signal, etc. With the knowledge of the type of incoming audio signal, an audio encoder can adapt its coding mode to changing signal characteristics by selecting a mode that may be suitable for a particular audio class.
Given an input audio signal to be data compressed, a first step may be to divide it into signal sample blocks of variable length, where long block length (42.6 milliseconds, in the case of AAC (Advanced Audio Coding) perceptual coding, for example) may be used for stationary parts of the signal, and short block length (5.3 milliseconds, in the case of AAC, for example) may be used for transient parts of the signal or during signal onsets. The AAC sample block lengths are given only by way of example. Particular sample block lengths are not critical to the invention. In principle, optimal sample block lengths may be signal dependent. Alternatively, fixed-length sample blocks may be employed. Each sample block (segment) may then be classified into one of several audio classes such as speech-like, non-speech-like and noise-like. The classifier may also output a confidence measure of the likelihood of the input segment belonging to a particular audio class. As long as the confidence is higher than a threshold, which may be user defined, the audio encoder may be configured with encoding tools suited to encode the identified audio class and such tools may be chosen in an open-loop fashion. For example, if the analyzed input signal is classified as speech-like with high confidence, a multimode audio encoder or encoding function according to aspects of the invention may select a CELP-based speech-like signal coding method to compress a segment. Similarly, if the analyzed input signal is classified as non-speech-like with high confidence, a multimode audio encoder according to aspects of the present invention may select a perceptual transform encoder or encoding function such as AAC, AC-3, or an emulation thereof, to data compress a segment.
On the other-hand, when the confidence of the classifier is low, the encoder may opt for the closed-loop selection of an encoding mode. In a closed-loop selection, the encoder codes the input segment using each of the available coding modes. Given a bit budget, the coding mode that results in the highest perceived quality may be chosen. Obviously, a closed-loop mode selection is computationally more demanding than an open-loop mode selection method. Therefore, the use of confidence measure of the classifiers to switch between open-loop and closed-loop based mode selection results in a hybrid approach to mode selection that saves on computation whenever the classifier confidence is high.
In the
In the
Alternatively, it is also possible to classify the audio signal based on its statistics. In particular, different types of audio and speech-like signal encoders and decoders may provide a rich set of signal processing sets such as LPC analysis, LTP analysis, MDCT transform, etc, and in many cases each of these tools may only be suitable for coding a signal with some particular statistical properties. For example, LTP analysis is a very powerful tool for coding signals with strong harmonic energy such as voice segments of a speech-like signal. However, for other signals that do not have strong harmonic energy, applying LTP analysis usually does not lead to any coding gains. An incomplete list of speech-like signal/non-speech-like signal coding tools and the signal types for which they are suitable for and not suitable for is given below in Table. 1. Clearly, for economic bit usage it would be desirable to classify an audio signal segment based on the suitability of the available speech-like signal/non-speech-like signal coding tools, and to assign the right set of the tools for each segment. Thus, a further example of an audio classification hierarchy in accordance with aspects of the invention is shown in
In accordance with the audio classification hierarchy decision tree example of
Referring to
Continuing the description of
Consider the following examples. Type 1: Stationary audio has a dominant harmonic component. When the residual after removal of the dominant harmonic is still correlated between samples, the audio segment may be a voiced speech-like section of a speech-like signal mixed with a non-speech signal background. It may be best to code this signal with a long analysis window with LTP active to remove the harmonic energy, and encode the residual with some a transform coding such as MDCT transform coding. Type 3: Stationary audio with high correlation between samples, but does not have a significant harmonic structure. It may be a non-speech-like signal. Such a signal may be advantageously coded with an MDCT transform coding employing a long analysis window, with or without LPC analysis. Type 7: Transient-like audio waveforms with noise-like statistics within the transient. It may be burst noise in some special sound effects or a stop consonant in a speech-like signal and it may be advantageously encoded with a short analysis window, and VQ (vector quantization) with a Gaussian codebook.
After having selected one of the three example audio classification hierarchies illustrated in
where N is the total number feature vectors extracted from the training examples of the particular signal type being modeled. The parameters K and θ are estimated using an Expectation Maximization algorithm that estimates the parameters that maximize the likelihood of the data (expressed in equation (1)).
Once the model parameters for each signal type are learned during training, the likelihood of an input feature vector (to be classified for a new audio segment) under all trained models is computed. The input audio segment may be classified as belonging to one of the signal types based on maximum likelihood criterion. The likelihood of the input audio's feature vector also acts as a confidence measure.
In general, one may collect training data for each of the signal types and extract a set of features to represent audio segments. Then, using a machine learning method (generative (GMM) or discriminative (Support Vector Machine)), one may model the decision boundary between the signal types in the chosen feature space. Finally, for any new input audio segment one may measure how far it is from the learned decision boundary and use that to represent confidence in the classification decision. For instance, one may be less confident about a classification decision on an input feature vector that is closer to a decision boundary than for a feature vector that is farther away from a decision boundary.
Using a user-defined threshold on such a confidence measure, one may opt for open-loop mode selection when the confidence on the detected signal type is high and for closed-loop otherwise.
A further aspect of the present invention includes the separation of an audio segment into one or more signal components. The audio within a segment often contains, for example, a mixture of speech-like signal components and non-speech-like signal components or speech-like signal components and background noise components. In such cases, it may be advantageous to code the speech-like signal components with encoding tools more suited to a speech-like signal than to a non-speech-like signal, and the non-speech-like signal or background components with encoding tools more suited to non-speech-like signal components or background noise than to a speech-like signal. In a decoder, the component signals may be decoded separately and then recombined. In order to maximize the efficiency of such encoding tools, it may be preferable to analyze the component signals and dynamically allocate bits between or among encoding tools based on component signal characteristics. For example, when the input signal consists of a pure speech-like signal, the adaptive joint bit allocation may allocate as many bits as possible to the speech-like signal encoding tool and as few bits as possible to the non-speech-like signal encoding tool. To assist with determining an optimal allocation of bits, it is possible to use information from the signal separation device or function in addition to the component signals themselves. A simple diagram of such a system is shown in
As seen in
A variation of the
Although the examples of
Although the specific type of processing performed by a common encoding tool is not critical to the invention, one exemplary form of a common coding encoding tool is audio bandwidth extension. Many methods of audio bandwidth extension are known from the art, and are suitable for use with this invention. Furthermore, while
Referring to
Referring to
Blind source separation (“BSS”) technologies that can be used to separate speech-like signal components and non-speech-like signal components from their combination are known in the art [see, for example, reference 7 cited below]. In general, these technologies may be incorporated into this invention to implement the signal separation device or function shown in
A unified multimode audio encoder according to aspects of the present invention has various encoding tools in order to handle different input signals. Three different ways to select the tools and their parameters for a given input signal are as follows:
A first variation of an example of a unified speech-like signal/non-speech-like signal encoder according to aspects of the present invention is shown in
Referring to the details of the
For the purposes of understanding its operation, the encoder example of
Also unlike conventional CELP encoders, the closed-loop control of gain vectors associated with each of the codebooks (Ga for the adaptive codebook, Gr for the regular codebook, and Gs for the structured sinusoidal codebook) allows the selection of variable proportions of the excitations from all of the codebooks. The control loop includes a “Minimize” device or function 724 that, in the case of the Regular Codebook 718, selects an excitation codevector and a scalar gain factor Gr for that vector, in the case of the Adaptive Codebook 716, selects a scalar gain factor Ga for an excitation codevector resulting from the applied LTP pitch parameters and inputs to the LTP Buffer, and, in the case of the Structured Sinusoidal Codebook, selects a vector of gain values Gs (every sinusoidal code vector may, in principle, contribute to the excitation signal) so as to minimize the difference between the LPC Synthesis Filter (device or function) 720 residual signal and the applied input signal (the difference is derived in subtractor device or function 726), using, for example, a minimum-squared-error technique. Adjustment of the codebook gains Ga, Gr, and Gs is shown schematically by the arrow applied to block 728. For simplicity in presentation in this and other figures, selection of codebook codevectors is not shown. Calculate MSE (mean squared error) device or function (“Minimize”) 724 operates so as to minimize the distortion between the original signal and the locally decoded signal in a perceptually meaningful way by employing a psychoacoustic model that receives the input signal as a reference. As explained further below, a closed-loop search may be practical for only the regular and adaptive codebook scalar gains and an open-loop technique may be required for the structured sinusoidal codebook gain vector in view of the large number of gains that my contribute to the sinusoidal excitation.
Other conventional CELP elements in the example of
The output bitstream of the
In an alternative to the example of
A second variation of an example of a unified speech-like signal/non-speech-like signal encoder according to aspects of the present invention is shown in
For simplicity in exposition, only the differences between the example of
The example of
The output bitstream of the
As with respect to the encoder of the example of
In an alternative to the example of
A third variation of an example of a unified speech-like signal/non-speech-like signal encoder according to aspects of the present invention is shown in
Referring to the details of the
Because of the separation of speech-like signal and non-speech-like signal components, the topology of
The output bitstream of the
In an alternative to the example of
In the sub variation of
Referring to
In an alternative to the example of
The various relationships in the three examples may be better understood by reference to the following table:
The purpose of the regular codebook is to generate the excitation for speech-like signal or speech-like signal-like audio signals, particularly the “unvoiced” speech-like noisy or irregular portion of the speech-like signal. Each entry of the regular codebook contains a codebook vector of length M, where M is the length of the analysis window. Thus, the contribution from the regular codebook er[m] may be constructed as:
Here Cr[i,m], m=1, . . . , M is the ith entry of the codebook, gr[i] are the vector gains of the regular codebook, and N is the total number of the codebook entries. For economic reasons, it is common to allow the gain g, [i] to have non-zero values for a limited number (one or two) of selected entries so that it can be coded in a small amount of bits. The regular codebook can be populated by using a Gaussian random number generator (Gaussian codebook), or from vectors of multi-pulse at regular positions (Algebraic codebook). Detailed information regarding how to populate this kind of codebook can be found, for example, in reference 9 cited below.
The purpose of the Structured Sinusoidal Codebook is to generate speech-like signal and non-speech-like signal excitation signals appropriate for input signals having complex spectral characteristics, such as harmonic and multi-instrument non-speech-like signal signals, non-speech-like signal and vocals together, and multi-voice speech-like signal signals. When the order of the LPC Synthesis Filter 720 is set to zero and the Sinusoidal Codebook is used exclusively, the result is that the codec is capable of emulating a perceptual audio transform codec (including, for example, an AAC (Advanced Audio Coding) or an AC-3 encoder).”
The structured sinusoidal codebook constitutes entries of sinusoidal signals of various frequencies and phase. This codebook expands the capabilities of a conventional CELP encoder to include features from a transform-based perceptual audio encoder. This codebook generates the excitation signal that may be too complex to be generated effectively by the regular codebook, such as signals as just mentioned above. In a preferred embodiment the following sinusoidal codebook may be used where the codebook vectors may be given by:
The codebook vectors represent the impulse responses of a Fast Fourier Transform (FFT), such as a Discrete Cosine Transform (DCT) or, preferably, a Modified Discrete Cosine Transform (MDCT) transform. Here w[m] is a window function. The contribution es[m] from the sinusoidal codebook may be given by:
Thus, the contribution from the sinusoidal codebook may be a linear combination of impulse responses in which the MDCT coefficients are the vector gains gs. Here Cs[i,m], m=1, . . . , 2M is the ith entry of the codebook, gs[i] are the vector gains of the sinusoidal codebook, and N is the total number of the codebook entries. Since the excitation signals generated from this codebook have a length double the analysis window, an overlap and add stage should be used so that the final excitation signal is constructed by adding the second half of the excitation signal of previous sample block to the first half of that of the current sample block.
The purpose of the Adaptive Codebook is to generate the excitation for speech-like audio signals, particularly the “voiced” speech-like portion of the speech-like signal. In some cases the residual signal, e.g., voice segment of speech, exhibits strong harmonic structure where the residual waveform repeats itself after a period of time (pitch). This kind of excitation signal can be effectively generated with the help from the adaptive codebook. As shown in the examples of
Here r[m−1−D], m=1, . . . , M is the ith entry of the codebook, ga[i] are the vector gains of the regular codebook, and L is the total number of the codebook entries. In addition, D is the pitch period, and r[m] is the previously generated excitation signal stored in the LTP buffer. As can be seen in the examples of
r[m]=e
r
[m]+e
s
[m]+e
a
[m],
and in the latter case it may be given by
r[m]=e
r
[m]+e
a
[m]
Note that for a current sample block to be coded (m=1, . . . , M), the value of r [m] may be determined only for m≦0. If the pitch period D has a value smaller than the analysis window length M periodical extension of the LTP buffer may be needed:
Finally, the excitation signal e[n] to the LPC filter may be given the summation of the contributions of the above-described three codebooks:
e[m]=e
r
[m]+e
s
[m]+e
a
[m].
The gain vectors Gr={gr[1], gr[2], . . . , gr[N]}, Ga={ga[−L], ga[−L+1], . . . , ga[L]} and Gs={gs[1], gs[2], . . . , gs[M]} are chosen in such a way that the distortion between the original signal and the locally decoded signal, as measured by the psychoacoustic model in a perceptually meaningful way, is minimized. In principle, this can be done in a closed-loop manner where the optimal gain vectors can be decided by searching all the possible combination of the values of these gain vectors. However, in practice, such a closed-loop search method may be only feasible for the regular and adaptive codebooks, but not for the structured sinusoidal codebook since it has too many possible value combinations. In this case, it may also be possible to use a sequential search method where the regular codebook and the adaptive codebook are searched in a closed-loop manner first. The structured sinusoidal gain vector may be decided in an open-loop fashion, where the gain for each codebook entry may be decided by quantizing the correlation between the codebook entry and the residual signal after removing the contribution from the other two codebooks.
If desired an entropy encoder may be used in order to obtain a compact representation of the gain vectors before they are sent to the decoder. In addition, any gain vector for which all gains are zero may be efficiently coded with an escape code.
A decoder usable with any of the encoders of the examples of
As mentioned above, when the excitation produced by the Sinusoidal Codebook 722 is used to produce a residual error signal without LPC synthesis filtering (as in modifications of the encoding examples of
The invention may be implemented in hardware or software, or a combination of both (e.g., programmable logic arrays). Unless otherwise specified, algorithms and processes included as part of the invention are not inherently related to any particular computer or other apparatus. In particular, various general-purpose machines may be used with programs written in accordance with the teachings herein, or it may be more convenient to construct more specialized apparatus (e.g., integrated circuits) to perform the required method steps. Thus, the invention may be implemented in one or more computer programs executing on one or more programmable computer systems each comprising at least one processor, at least one data storage system (including volatile and non-volatile memory and/or storage elements), at least one input device or port, and at least one output device or port. Program code is applied to input data to perform the functions described herein and generate output information. The output information is applied to one or more output devices, in known fashion.
Each such program may be implemented in any desired computer language (including machine, assembly, or high level procedural, logical, or object oriented programming languages) to communicate with a computer system. In any case, the language may be a compiled or interpreted language.
Each such computer program is preferably stored on or downloaded to a storage media or device (e.g., solid state memory or media, or magnetic or optical media) readable by a general or special purpose programmable computer, for configuring and operating the computer when the storage media or device is read by the computer system to perform the procedures described herein. The inventive system may also be considered to be implemented as a computer-readable storage medium, configured with a computer program, where the storage medium so configured causes a computer system to operate in a specific and predefined manner to perform the functions described herein. A number of embodiments of the invention have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the invention. For example, some of the steps described herein may be order independent, and thus can be performed in an order different from that described.
The following publications are hereby incorporated by reference, each in their entirety.
The following United States patents are hereby incorporated by reference, each in its entirety:
This application claims priority to U.S. Patent Provisional Application No. 61/069,449, filed 14 Mar. 2008, which is hereby incorporated by reference in its entirety.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/US09/36885 | 3/12/2009 | WO | 00 | 9/9/2010 |
Number | Date | Country | |
---|---|---|---|
61069449 | Mar 2008 | US |