EP1293967B1 - Quantisation robuste avec recherche WMSE d'une table de codes indice-forme utilisant un espace illégal - Google Patents
Quantisation robuste avec recherche WMSE d'une table de codes indice-forme utilisant un espace illégal Download PDFInfo
- Publication number
- EP1293967B1 EP1293967B1 EP02255723A EP02255723A EP1293967B1 EP 1293967 B1 EP1293967 B1 EP 1293967B1 EP 02255723 A EP02255723 A EP 02255723A EP 02255723 A EP02255723 A EP 02255723A EP 1293967 B1 EP1293967 B1 EP 1293967B1
- Authority
- EP
- European Patent Office
- Prior art keywords
- codevector
- sub
- quantizer
- illegal
- codevectors
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 238000013139 quantization Methods 0.000 title description 128
- 238000000034 method Methods 0.000 claims description 244
- 239000013598 vector Substances 0.000 claims description 174
- 230000006870 function Effects 0.000 claims description 33
- 230000003595 spectral effect Effects 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 14
- 230000005236 sound signal Effects 0.000 claims description 13
- 230000001131 transforming effect Effects 0.000 claims description 9
- 239000002131 composite material Substances 0.000 description 93
- 230000005540 biological transmission Effects 0.000 description 70
- 238000010586 diagram Methods 0.000 description 26
- 238000004891 communication Methods 0.000 description 22
- 230000015654 memory Effects 0.000 description 21
- 238000001514 detection method Methods 0.000 description 18
- 230000008569 process Effects 0.000 description 16
- 238000012545 processing Methods 0.000 description 16
- 230000009466 transformation Effects 0.000 description 12
- 230000001360 synchronised effect Effects 0.000 description 7
- 238000012795 verification Methods 0.000 description 7
- 230000003044 adaptive effect Effects 0.000 description 6
- 230000014509 gene expression Effects 0.000 description 6
- 238000013507 mapping Methods 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 3
- 230000007774 longterm Effects 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000003786 synthesis reaction Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000000593 degrading effect Effects 0.000 description 2
- 230000008447 perception Effects 0.000 description 2
- 102100029469 WD repeat and HMG-box DNA-binding protein 1 Human genes 0.000 description 1
- 101710097421 WD repeat and HMG-box DNA-binding protein 1 Proteins 0.000 description 1
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/04—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
- G10L19/06—Determination or coding of the spectral characteristics, e.g. of the short-term prediction coefficients
- G10L19/07—Line spectrum pair [LSP] vocoders
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L2019/0001—Codebooks
- G10L2019/0007—Codebook element generation
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L2019/0001—Codebooks
- G10L2019/0013—Codebook search algorithms
Definitions
- the invention relates generally to digital communications, and more particularly, to digital coding and decoding of signals, such as speech and/or audio signals.
- predictive coding is a popular technique. Prediction of the input waveform is used to remove redundancy from the waveform, and instead of quantizing the input waveform directly, the waveform of the residual signal is quantized.
- the predictor(s) can be either backward adaptive or forward adaptive. Backward adaptive predictors do not require any side information as they are derived from the previously quantized waveform, and therefore can be derived at the decoder. On the other hand, forward adaptive predictor(s) require side information to be transmitted to the decoder as they are derived from the input waveform, which is not available at the decoder.
- two types of predictors are commonly used. The first is called the short-term predictor.
- the second is often referred as the long-term predictor. It removes redundancy between samples further apart, typically spaced by a time difference that is constant for a suitable duration. For speech this time distance is typically equivalent to the local pitch period of the speech signal, and consequently the long-term predictor is often referred as the pitch predictor.
- the long-term predictor removes the harmonic structure of the input waveform. The residual signal after the removal of redundancy by the predictor(s) is quantized along with any information needed to reconstruct the predictor(s) at the decoder.
- the necessity to communicate predictor information to the decoder calls for efficient and accurate methods to compress, or quantize, the predictor information. Furthermore, it is advantageous if the methods are robust to communication errors, i.e. minimize the impact to the accuracy of the reconstructed predictor if part of the information is lost or received incorrectly.
- the spectral envelope of the speech signal can be efficiently represented with a short-term Auto-Regressive (AR) predictor.
- AR Auto-Regressive
- Human speech commonly has at most 5 formants in the telephony band (narrowband - 100 Hz to 3400 Hz).
- the order of the predictor is constant, and in popular predictive coding using forward adaptive short-term AR prediction, a model order of approximately 10 for an input signal with a bandwidth of approximately 100 Hz to 3400 Hz is a common value.
- a 10 th order AR-predictor provides an all-pole model of the spectral envelope with 10 poles and is capable of representing approximately 5 formants.
- N prediction coefficients which provides a complete specification of the predictor. Consequently, these N prediction coefficients need to be communicated to the decoder along with other relevant information in order to reconstruct the speech signal.
- the N prediction coefficients are often referred as the Linear Predictive Coding (LPC) parameters.
- LSP Line Spectral Pair
- the LSP parameters were introduced by F. Itakura, "Line Spectrum Representation of Linear Predictor Coefficients for Speech Signals", J. Acoust. Soc. Amer., Vol. 57, S35(A),1975 , and is the subject of U.S. Patent No. 4,393,272 entitled “Sound Synthesizer”.
- the LSP parameters are derived as the roots of two polynomials, P(z) and Q(z), that are extensions of the z-transform of the AR prediction error filter.
- the LSP parameters are also referred as the Line Spectral Frequency (LSF) parameters, and have been shown to possess advantageous properties for quantization and interpolation of the spectral envelope in LPC.
- LSF Line Spectral Frequency
- LSP Long Spectral Frequencies Using Chebyshev Polynomials
- P. Kabal and R.P. Ramachandran "The Computation of Line Spectral Frequencies Using Chebyshev Polynomials", IEEE Transactions on Acoustics, Speech, and Signal Processing, Vol. 34, No. 6, December 1986 .
- LSF representation of the LPC parameters in order to take advantage of the quantization and interpolation properties of the LSF parameters.
- One additional advantageous property of the LSF parameters is the inherent ordering property. It is known that for a stable LPC filter (N th order all-pole filter) the roots of the two polynomials P(Z) and Q(Z) are interleaved, referred as "in-order", or "ordered". Consequently, stability of the LPC filter can be verified by checking if the ordering property of the LSF parameters is fulfilled, that is, if the LSF parameters are in-order, and representations of unstable filters can be rectified. Commonly, the autocorrelation method, see L.R. Rabiner and R.W.
- a common method to correct unstable LSF parameters due to both quantization and transmission is to simply reorder LSF pairs that are out of order immediately following quantization at the encoder and reconstruction at the decoder (mapping of the received bits to the LSF parameters). It guarantees that the encoder and decoder will observe the identical quantized LSF parameters if a mis-ordering is due to the quantization, i.e. remain synchronized, and it will prevent the decoder from using an unstable LPC filter if a miss-ordering is due to the transmission, i.e. transmission errors. However, such methods are unable to distinguish, at the decoder, mis-ordering due to quantization and mis-ordering due to transmission errors.
- Document EP-A-0 573 216 discloses a linear predictive coder and decoder to speech recording, transmission and reproduction in voice messaging systems. To identify a quantized speech vector being closest to an input speech vector, said system searches through candidate codevectors in a codebook. Said search being performed with respect to a Weighted Mean Square Error Metric.
- the invention provides quantization techniques that enable the decoder to identify if mis-ordering is due to transmission errors hereby allowing the decoder to take corrective actions. More generally, they provide quantization techniques that facilitate some level of transmission error detection capability while maintaining a high intrinsic quality of the quantization. They also provide inverse quantization techniques that exploit the transmission error detection capability to conceal the detected transmission errors. Moreover they achieve the above with a low computational complexity.
- Embodiments of the present invention include methods and systems that facilitate detection capability and concealment of transmission errors occurring during communication of quantization indices. Furthermore, embodiments of the present invention address the necessity to maintain a manageable complexity and high quality of the quantization.
- Embodiments of the present invention include generalized quantization methods and systems for quantizing (typically at an encoder) a vector including element(s)/parameter(s), such that the bits/indices, or index, representing the quantized version of the vector provides a vector constrained to have given properties. Consequently, if the vector reconstructed during inverse quantization (typically at a decoder) from the received bits/indices, or index, does not possess the given properties, it is given that the bits/indices, or index, have been corrupted while being communicated between the quantizer and inverse quantizer (typically during transmission between an encoder and a decoder).
- Embodiments of the present invention also apply to composite quantizers including multiple sub-quantizers, and to sub-quantization methods and systems.
- Embodiments of the present invention also include specific quantization methods and systems as applied to the quantization of LSF parameters related to an audio or speech signal.
- Examples of the present invention also include generalized inverse-quantization methods and systems that reconstruct a vector, including element(s)/parameter(s), from bits/indices, or index, originating from a quantization where the quantized version of the vector is constrained to have desired properties.
- Embodiments of the present invention also apply to composite inverse quantizers including multiple inverse sub-quantizers, and to inverse sub-quantization methods and systems.
- Embodiments of the present invention also include specific inverse quantization methods and systems as applied to LSF parameters related to an audio or speech signal.
- An aspect of the present invention includes a quantization method that purposely enforces the ordering property (that is, the desired property) of the quantized LSF during quantization. This requires the quantization scheme of known LSF quantizers to be revised since they may produce quantized parameters representative of out-of-order LSF parameters.
- the quantization method of an embodiment of the present invention produces bits representing a quantized LSF, where the quantized LSF are ordered.
- An example of encoder using the quantization method of the present invention transmits the ordered LSF parameters (represented by bits produced by the quantizer, for example) produced during quantization to a decoder.
- any LSF pair that is, a pair of LSF parameters
- the received bits corresponding to the bits transmitted by the encoder
- the method applies to any LSF quantizer structure that contains a set of quantizer output(s), which if selected, would result in a set of LSF parameters that are out-of-order.
- the method effectively exploits the property of being out-of-order by labeling such possible out-of-order outputs as illegal and preventing the quantizer from selecting them and actually outputting them.
- the quantizer is constrained to produce in-order quantized parameters, that is, bits that represent a set of ordered LSF parameters.
- an illegal or non-valid set of quantizer outputs provides an "illegal space" where if a transmission error transition a legal quantizer output into this illegal space the transmission error is detectable.
- the illegal space is defined arbitrarily, the performance of the quantizer will degrade in conditions without transmission errors, since effectively, the number of codevectors, and thereby, the resolution of the quantizer is reduced.
- the LSF parameters a suitable illegal space exists. It is known that, first, the LSF parameters entering the quantizer at the encoder are ordered if the autocorrelation method is used to derive the LPC parameters, and secondly, eventually, the decoder will need a stable LPC filter equivalent to a set of ordered LSF parameters, anyway. Consequently, it appears that defining the illegal space as any quantizer output resulting in a set of quantized LSF parameters with one or more pairs out-of-order, has little, if any, impact on the performance of the quantizer in conditions without transmission errors.
- embodiments of the invention exploits that a quantizer has a set of outputs that are undesirable, defines an illegal space as this set of outputs, and prevents the quantizer from selecting and then outputting these outputs.
- the illegal space facilitates transmission error detection capability at the decoder. It may surprise that a quantizer has a set of outputs that are undesirable. However, as will become apparent from the detailed description, this is common and normal.
- the illegal space is suggested to define the joint set of any quantizer outputs that result in one or more LSF pairs being out-of-order.
- the illegal space can be defined as one or more LSF pairs of a subset of the LSF pairs being out-of-order, e.g. only the lower 4 LSF parameters from an 8 th order LPC are considered.
- the illegal space can be defined as the joint set of any LSF pair that is closer than a certain minimum distance. The minimum distance can be unique for each pair and related to the minimum distance appearing in the unquantized LSF parameters in a large amount of input data.
- the definition of the illegal space according to one or more pairs being out-of-order is equivalent to a definition of the illegal space according to any LSF pair being closer than a minimum distance, where the minimum distance is defined as zero. Consequently, if the minimum distance is defined to be greater than zero the illegal space is increased, and the error detection capability is improved. However, as will become apparent from the detailed description, this may increase the complexity.
- embodiments of the invention render the common LSF parameter ordering procedure at the decoder unnecessary since any disordered LSF pairs flag the occurrence of transmission errors and employ concealment methods to replace the LSF parameters. However, if only a subset of the LSF pairs are considered then the remaining LSF pairs should be subject to an ordering procedure.
- embodiments of the present invention include quantization techniques that produce a high quality quantization of an input vector while maintaining a low computational complexity.
- VQ Vector Quantization
- WMSE Weighted Mean Squared Error
- This method is based on an expansion of the WMSE term, omission of the invariant term, arranging the computations such that only the vector corresponding to one of the signs needs to be checked. Effectively, only half of the total number of codevectors in the signed codebook needs to be searched.
- This method can be utilized to further minimize complexity if the idea of creating an illegal space during quantization is adopted in the context of a signed codebook.
- An embodiment of the present invention includes a method of searching a signed codebook to quantize an input vector.
- the signed codebook includes a set of shape codevectors. Each shape codevector is associated with a positive signed codevector and a negative signed codevector.
- the method comprises: weighting a shape codevector in the set of shape codevectors with a weighting function for a Weighted Mean Square Error (WMSE) criteria, to produce a weighted shape codevector; wherein the weighting function weights high-energy areas of the spectral envelope stronger than areas of low energy; correlating the weighted shape codevector with the input vector to produce a weighted correlation term; and determining, based on a sign of the weighted correlation term, a preferred one of the positive and negative signed codevectors associated with the shape codevector.
- WMSE Weighted Mean Square Error
- the method further comprises determining a minimization term corresponding to the preferred signed codevector.
- the method further comprises: performing the above mentioned steps for each shape codevector in the set of shape codevectors, thereby determining for each shape codevector a preferred signed codevector and a corresponding minimization term; and determining a best signed codevector among the preferred signed codevectors based on their corresponding minimization terms, whereby the best signed codevector represents a quantization corresponding to the input vector
- the method further comprises creating an illegal space during quantization and exploiting it for bit-error detection during decoding is applied to the quantization of the spectral envelope in form of the LSF parameters.
- the main task is to define a suitable sub-space as illegal. Ideally, this is achieved by exploiting a sub-space that the parameter(s) do not occupy.
- Such a space can be identified either through mathematical analysis, as it is the case for the ordering property of the LSF parameters, or through statistical analysis of the parameter(s), as it is the case for a minimum distance property between adjacent LSF parameters.
- a compromise between enabling bit-error detection and degrading error-free transmission performance justifies a larger illegal space in order to improve performance under transmission errors.
- Each of the encoder and/or quantizer systems of FIGs. 2 , 4A , 4B , 15 and 19 perform one or more of the encoder and/or quantizer and/or sub-quantizer methods of FIGs. 6A-6F , 9 , 10, 10A , 13 and 17A-18D .
- Each of these encoder and/or quantizer systems and associated methods may be implemented in the computer system/environment of FIG. 21 .
- Each of the decoder and/or inverse quantizer systems of FIGs. 3 , 5A , 5B , 16 and 20 perform one or more of the decoder and/or inverse quantizer and/or inverse sub-quantizer methods of FIGs. 7 , 8 , 11 , 12 , 14 and 17A-18D .
- Each of these decoder and/or inverse quantizer systems and associated methods may be implemented in the computer system/environment of FIG. 21 .
- the spectral envelope is modeled with an all-pole filter.
- the filter coefficients of the all-pole model are estimated using linear prediction analysis, and the predictor is referred as the short-term predictor.
- a ( z ) is minimum phase
- the roots of P ( z ) and Q ( z ) are interleaved
- the invention in general applies to any quantizer structure, predictive, multi-stage, composite, split, signed, etc., or any combination thereof. However, inherently, certain structures are more suitable for the definition of an illegal space. If a simple quantizer (with codevectors being fixed vectors from a codebook) is applied directly to the parameter(s), then any well designed codebook will be a sampling of the probability density function of the parameter(s), and therefore, no codevectors should populate a sub-space that can be regarded as negligible to the performance.
- the present invention makes use of such a sub-space, which is essentially a waste of bits, to enable some transmission error detection capability at the decoder.
- transmission is used as a generic term for common applications of speech and audio coding where information is communicated between an encoder and a decoder. This includes wire-line and wire-less communication as well as storage applications.
- the codevector, c I e is also referred as the quantized set of parameters, x ⁇ e .
- the process of quantization takes place at the encoder and produces an index, or a series of indices or bits, for transmission to the decoder.
- a vector forms a part, or portion, of a signal.
- the signal may be an input signal applied to a quantization system.
- the signal may be an intermediate signal derived from such an input signal.
- the signal, and thus vector relates to a speech and/or audio signal.
- the signal may be in input speech and/or audio signal.
- the signal may be a signal derived from the input speech and/or audio signal, such as a residual signal, LSF parameters, and so on.
- the vector may form part of a speech and/or audio signal or a residual signal (for example, include samples of the input or residual signal), or may include parameters derived from the speech and/or audio signal, such as LSF parameters.
- This may be a composite code, i.e. a product code of other codes.
- the codevectors, c n are a composite of multiple contributions, and the index, I e , is a combination or set of multiple sub-indices, i.e.
- I e I e , 1 ⁇ I e , 2 ... I e , M
- c ⁇ I e F c ⁇ I e , 1 , c ⁇ I e , 2 , ... c ⁇ I e , M , where M is the number of sub-codes, and c ⁇ I e ⁇ C 1 ⁇ C 2 ⁇ ... ⁇ C M .
- the three sub-quantizers can be searched jointly or independently.
- the two stages are searched sequentially with the possibility of a joint search of a limited number of combined candidates.
- the split into sub-vectors in the second stage provides for a joint optimal search, by searching the sub-vectors independently.
- the memory at the encoder and decoder is typically synchronized except immediately following transmission errors.
- I d T error I e ⁇ I e ⁇ x ⁇ ⁇ d ⁇ x ⁇ ⁇ e
- the detection of transmission errors is facilitated by the definition of an illegal space of the quantizer.
- Eq. 29 is a special case of the more general definition of the illegal space given by Eq. 30.
- the illegal space of Eq. 29 is a discrete finite size set while the illegal space of Eq. 30 can be both discrete and continuous, and therefore be of both finite and infinite size, and consequently provide greater flexibility.
- the space of the composite codevectors is dynamic due to a varying term. This complicates the definition of the illegal space according to Eq. 29 since the illegal space in the composite domain would also be dynamic, hereby excluding exploiting that the illegal space is often advantageously defined as a sub-space where the probability density function of the input vector has low probability.
- the illegal space facilitates the definition of the illegal space in the same domain as the input vector, and the illegal space can easily be defined as a sub-space where the probability density function of the input vector has low probability. Consequently, the illegal space is advantageously defined by studying the probability density function of the parameters to which the quantizer is applied. This can be done mathematically as well as empirically.
- the decoder receives a set of indices that represents a composite codevector that resides in the illegal space a transmission error has occurred, x ⁇ d ⁇ X ill ⁇ T error ⁇ , and error concealment is invoked.
- the quantizer at the encoder is unable to select a codevector that resides in the legal space, and consequently, the decoder will declare a transmission error and invoke error concealment regardless of the transmitted set of indices.
- the encoder will have to adopt a suitable strategy that to some extent depends on the parameters being quantized.
- One solution is to take advantage of the knowledge that the decoder will perform error concealment, and repeat the error concealment procedure at the encoder. It may seem odd to perform error concealment the encoder. However, it will ensure that the quantizers at the encoder and decoder will remain synchronized during error-free transmission.
- the quantizer at the encoder can be allowed to select and proceed with an illegal codevector accepting that synchronization with the quantizer at the decoder will be lost briefly when the error concealment is invoked at the decoder.
- Yet another solution is to reserve a specific code to communicate this condition to the decoder hereby enabling the encoder and decoder to take a pre-agreed action in synchrony.
- the most suitable approach to handle an empty set of legal codevectors during quantization will generally depend on the quantizer and the parameters being quantized. For some quantizers and parameters it may not be an issue. Alternatively, it may be possible to take the problem into account when the quantizer is designed.
- a suitable illegal space will depend on the parameters being quantized, and to some extent the quantizer.
- an illegal space can be defined for, any sub-quantizer, a combination of sub-quantizers, or for the composite quantizer. This is illustrated by the example from above.
- an illegal sub-space can be defined for the sub-quantizers Q 2 and Q 3 either independently or jointly with the sub-quantizer Q 1 .
- the indices, k 1 , k 2 ,... k L specify the dimensions of the input space that constitute the illegal space, and L is the dimension of the illegal space.
- the definition of the illegal space can be further generalized to be in the domain of a function of any sub-dimensional space. It is advantageous to have a simple definition of the illegal space from a viewpoint of computational complexity since it is necessary to verify if a candidate codevector belongs to the illegal space during quantization.
- FIG. 1 is a block diagram of an example coder-decoder (codec) system.
- An external source (not shown) applies an input signal 102 to-be-encoded to an encoder 104.
- Input signal 102 may include a speech and/or audio signal, for example. More generally, input signal 102 may also be any signal, such as an electrical signal, representative of one or more physical parameters.
- Encoder 104 encodes input signal 102 into a bit-stream 106, including a stream of digital bits, for example. Encoder 104 transmits bit-stream 106 through a communication medium 108.
- Communication medium 108 may include wireline and wireless transmission media, and may include communication networks such as the Public Switched Telephone Network (PSTN) and Packet Switched Data Networks (PSDNs) including the internet.
- Communication medium 108 delivers a bit-stream 110, corresponding to transmitted signal 106, to decoder 112. Decoder 112 decodes the bit-stream 110 to provide a decoded output signal 114.
- PSTN Public Switched Telephone Network
- PSDNs Packet Switched Data Networks
- FIG. 2 is a block diagram of an example arrangement of encoder 104.
- Encoder 104 includes a quantizer portion 202 followed by a multiplexer 204.
- parameters P1 ... PJ may be derived, such as to represent the input signal, or at least a portion of the input signal, for quantization.
- parameter P1 may represent a speech pitch period
- parameter P2 may represent the spectral envelope, samples of the input signal, and so on.
- Parameter Pi may be in the form of an input vector with multiple elements, the vector having a dimension of N, e.g. the parameter P2 above represents the spectral envelope which may be specified by a vector including the LSF parameters.
- the vector represents a portion of the input signal, and thus is a signal vector.
- quantizer portion 202 includes a single quantizer. More generally, quantizer portion 202 includes multiple quantizers Q 1 ... Q J (also referred to as quantizers 203 1 ... 203 J ) for quantizing respective parameters P 1 ... P J . Each quantizer Q i may operate independent of the other quantizers. Alternatively, quantizers Q 1 ... Q J may interact with each other, for example, by exchanging quantization signals with each other. Each quantizer 203 1 ... 203 J may be considered a composite quantizer including multiple sub-quantizers that together quantize a single input parameter. Also, each sub-quantizer may itself be a composite quantizer including multiple sub-quantizers.
- Each quantizer Q i quantizes a respective input parameter P i derived from the input signal possibly in combination with quantization signals from other quantizers. This includes searching for and selecting a best or preferred candidate codevector to represent the respective input parameter P i . In other words, each quantizer Q i quantizes the respective input parameter P i into a preferred codevector. Various quantization techniques are described in detail below. Typically, quantizer Q i outputs the selected codevector, which corresponds to (for example, represents) a quantized version (or quantization) of the respective input parameter P i , along with an index I i identifying the selected codevector.
- the index I i would be a set of indices, also referred as sub-indices.
- quantizer portion 202 provides indices, or sets of sub-indices, I 1 ... I J to multiplexer 204.
- Multiplexer 204 converts indices I 1 ... I J into a bit-stream 106, representing the indices, or sets of sub-indices.
- FIG. 3 is a block diagram of an example arrangement of decoder 112.
- Decoder 112 includes a demultiplexer 302 followed by an inverse quantizer portion 304. Decoder 112 receives bit-stream 110.
- Bit-stream 110 represents the indices, or sets of sub-indices, I 1 ... I J transmitted by encoder 104. The indices may or may not have been corrupted during transmission through communication medium 108.
- Demultiplexer 302 converts the received bits (corresponding to indices I 1 ... I J ) into indices, or sets of sub-indices.
- Demultiplexer 302 provides indices to inverse quantizer portion 304.
- inverse quantizer portion 304 includes a single inverse quantizer. More generally, inverse quantizer portion 304 includes multiple inverse quantizers 306 1 ... 306 J . Each inverse quantizer 306 i , Q i -1 ,may operate independent of the other inverse quantizers. Alternatively, inverse quantizers 306 1 ... 306 J may interact with each other, for example, by exchanging inverse quantization signals with each other. Each inverse quantizer 306 1 ... 306 J may be considered an inverse composite quantizer including multiple inverse sub-quantizers that together inverse quantize a single quantized input parameter. Also, each sub-quantizer may itself be a composite inverse quantizer including multiple inverse sub-quantizers.
- Each inverse quantizer 306 i performs an inverse quantization based on the respective index I i from demultiplexer 302.
- the respective index I i is a set of sub-indices, for the sub-quantizers.
- Each inverse quantizer reconstructs respective parameter P i from index I i and outputs the reconstructed parameter.
- a parameter P i may be a vector with multiple elements as in the example of the spectral envelope mentioned above.
- Output signal 114 is reconstructed from the parameters representative of parameters Pi that were encoded at encoder 104.
- FIG. 4A is a block diagram of an example arrangement 400 of a quantizer Q i of FIG. 2 .
- Quantizer 400 may also represent a sub-quantizer of a composite quantizer Q i .
- Quantizer 400 quantizes an input vector 401 representing one or more parameters P i .
- P i parameters
- the parameter P may have multiple elements.
- the spectral envelope is typically specified by N prediction coefficients, and the parameter P i could then contain these N prediction coefficients arranged in the input vector x .
- multiple parameters could be grouped together in a vector for joint quantization.
- Quantizer 400 includes a codebook 402 for storing codebook vectors.
- Codebook 402 provides codebook vector(s) 404 to a codevector generator 406.
- Codevector generator 406 generates candidate codevector(s) 408 ( c n : see Eqs. 17 and 55, for example) based on, for example, as a function of, one or more of codebook vectors 404, a predicted vector, and a mean vector, for example see Eq. 21.
- An error calculator 409 generates error terms 411 according to the error criterion (d( x , c n ): see Eqs 74 and 86 for example) based on input parameter (P i ) in the input vector 401, x , and candidate codevectors 408, c n .
- Quantizer 400 includes a legal status tester 412 associated with one or more illegal space definitions or criteria 420 ( X ill : see Eqs. 30, 46, 48, and 52, for example). Legal status tester 412 determines whether candidate codevectors 408 are legal, or alternatively, illegal, using the one or more illegal space definitions 420.
- legal status tester 412 compares each of the candidate codevectors 408 to an illegal space criterion 420 representing, for example, illegal vectors.
- Legal status tester 412 generates an indicator or signal 422 indicating whether each of the candidate codevectors 408 is legal, or alternatively, illegal. For example, if legal status tester 412 determines that a candidate codevector (408) belongs to the illegal space defined in illegal space definitions 420, then legal status tester 412 generates an illegal indicator. Conversely, if legal status tester 412 determines that the candidate codevector 408 does not belong to the illegal space defined in illegal spaces 420, then legal status tester generates a legal indicator corresponding to the candidate codevector.
- Quantizer 400 includes a codevector selector 424 for selecting a best or preferred one ( c Ie : see Eq. 32, or c Ie,m : see Eq. 56, for example) of the candidate codevectors 408 based on error terms 411 corresponding to the candidate codevectors and the legal/illegal indicator 422 also corresponding to the candidate codevectors, see Eqs. 32 and 56.
- Codevector selector 424 outputs at least one of the best codevector 426 and an index 428 representative of the best codevector. Instead of outputting the best codevector, the codebook vector corresponding to the best codevector may be outputted.
- legal status tester 412 determines the legality of candidate codevectors 408 based on illegal space definitions 420. Therefore, candidate codevectors 408 and illegal vectors defined by illegal space definitions 420 are said to be in the same "domain". For example, when candidate codevectors 408 include LSF vectors, for example LSF parameters, illegal space definitions 420 represent illegal LSF vectors. For example, illegal space definitions 420 may define invalid ordering and/or spacing characteristics of LSF parameters, and so on. The illegal space is said to be in the domain of LSF parameters.
- FIG. 4B is a block diagram of another example quantizer 430 corresponding to quantizer Q i of FIG. 2 .
- Quantizer 430 may also represent a sub-quantizer.
- quantizer 400 may quantize an input vector x , see Eq. 14, in accordance with Eq. 56 or an input vector r 1,1 , see Eq. 76, in accordance with Eq. 85.
- Quantizer 430 is similar to quantizer 400, except quantizer 430 includes a composite codevector generator 406a for generating candidate composite codevector(s) 408a, see Eqs. 19, 21, 55, and 57 for example.
- legal status tester 412 determines whether candidate composite codevectors 408a are legal or illegal based on illegal space definitions 420, see Eqs. 36 - 39, 60, 63, and 82, for example. In this case, illegal space definitions 420 are in the same domain as candidate composite codevectors 408a.
- FIG. 4C is a pictorial representation of a codevector "space" 450 encompassing both a legal space 454 and an illegal space 456.
- Codevectors within legal space 454 are legal codevectors
- codevectors within illegal space 456 are illegal codevectors.
- illegal space definitions for example, definitions 420 (and definitions 514, discussed below), define the extent, or size, and boundary(s) of illegal space 460.
- FIG. 5A is a block diagram of an example arrangement 500 of an inverse quantizer 306 i of FIG. 3 , or an inverse sub-quantizer of an inverse composite quantizer 306 i .
- Inverse quantizer 500 receives an index 502 (also referred to as a received index 502) generated from received bit-stream 110.
- index 502 corresponds to one of indices I i . If 306 i is an inverse composite quantizer and 500 is an inverse sub-quantizer this would be a sub-index of the set of sub-indices.
- a codebook 504 for storing a set of codebook vectors generates a codebook vector 506 in response to index 502, or one of the indices in the set of indices, the sub-index, corresponding to the inverse sub-quantizer in an inverse composite quantizer.
- a codevector generator 508 generates a "reconstructed" codevector 510 as a function of the codebook vector 506 in parallel to the quantizer, see Eqs. 21 and 55. Codevector generator 508 may be eliminated, whereby codevector 510 may be the codebook vector 506 itself.
- Inverse quantizer 500 also includes a legal status tester 512 associated with one or more illegal space definitions 514. Typically, but not always, illegal space definitions 514 match illegal space definitions 420 in quantizers 400 and 430. Legal status tester 512 determines whether codevector 510 is legal, or alternatively illegal, based on illegal space definitions 514. Legal status tester generates a legal/illegal indicator or signal 516 to indicate whether codevector 510 is legal/illegal.
- Inverse quantizer 500 also includes a decisional logic module 520 responsive to codevector 510 and legal/illegal indicator 516. If codevector 510 is declared legal, that is, indicator 516 indicates that codevector 510 is legal, then module 520 releases (that is, outputs) legal codevector 510. It may also output the codebook vector. Alternatively, if legal status tester 512 declares codevector 510 illegal, that is, indicator 516 indicates that codevector 510 is illegal, then module 520 declares a transmission error. Module 520 may perform an error concealment technique responsive to the transmission error.
- FIG. 5B is a block diagram of another example arrangement 530 of inverse quantizer 306 i of FIG. 3 .
- Inverse quantizer 530 is similar to inverse quantizer 500, except inverse quantizer 530 includes a composite codevector generator 508a for generating a composite codevector 510a.
- Legal status tester 512 determines whether composite codevector 510a is legal/illegal based on illegal space definitions 514.
- each codevector generator 406, 406a, 508 and 508a mentioned above derive candidate codevectors as a function of at least their corresponding codebook vectors 404 and 506. More generally, each codevector generator is a complex structure, including one or more signal feedback arrangements and memory to "remember" signals that are fed-back, that derives a respective codevector as a function of numerous inputs, including the fed-back signals.
- each codevector generator can derive each codevector, that is a current codevector, as a function of (1) a current and one or more past codebook vectors, and/or (2) one or more past best codevectors (in the case of generators 406 and 406a) or one or more past reconstructed codevectors (in the case of generators 508 and 508a). Examples of such codevector generators in a quantizer and an inverse quantizer are provided in FIGs. 15 / 19 and 16 / 20 , respectively, described below. Due to the complexity of the codevector generators, determining apriori whether each codevector generator will generate a legal codevector can be a non-trivial matter. Thus, comparing the codevectors to an illegal space after they are generated is a convenient way to eliminate illegal, and thus, undesired, codevectors.
- FIG. 6A is a flowchart of an example method 600 of quantizing a parameter using a quantizer associated with an illegal space (that is, with one or more illegal space definitions or criteria).
- method 600 quantizes the input vector 401 representative of input parameter P i .
- An initial step 602 includes establishing a first candidate codevector that is to be processed among a set of candidate codevectors to be processed.
- the first candidate codevector may already exist, that is, has already been generated, or may need to be generated.
- codevector generator 406 (or 406a) may generate a candidate codevector from one or more codebook vectors 404.
- a next step 604 includes determining a minimization term (also referred to equivalently as either a minimization value or an error term) corresponding to the codevector.
- Step 604 includes determining the error term as a function of the codevector and another vector, such as an input vector.
- the input vector may represent the input parameter(s) that is to be quantized by method 600, or a derivative thereof.
- error calculator 409 generates error term 411 as a function of codevector 408 and an input vector 401 representative of the input parameter P i or a derivative thereof.
- a next step 606 includes evaluating a legal status of the codevector.
- Step 606 includes determining whether the candidate codevector corresponds to an illegal space representing illegal vectors.
- legal status tester 412 determines the legal status of candidate codevector 408 (or 408a) based on one or more illegal space definitions 420, and generates indicator 422 to indicate the legal/illegal status of the codevector.
- Step 606 may include determining whether the candidate codevector belongs to the illegal space. This includes comparing the candidate codevector to the illegal space. Step 606 also includes declaring the candidate codevector legal when the candidate codevector does not correspond to the illegal space (for example, when the candidate codevector does not belong to the illegal space). Step 606 may also include declaring the candidate codevector illegal when it does correspond to the illegal space (for example, when it belongs to the illegal space). Step 606 may include outputting a legal/illegal indicator indicative of the legal status of the candidate codevector. In quantizer 400, legal status tester 412 determines the legal status of candidate codevector 408 (or 408a) based on one or more illegal space definitions 420, and generates indicator 422 to indicate the legal/illegal status of the codevector.
- the illegal space definition is represented by one or more criteria.
- the illegal space is represented by an illegal vector criterion.
- step 606 includes determining whether the candidate codevector satisfies the illegal vector criterion.
- the illegal space may represent an illegal vector criterion corresponding to only a portion of a candidate codevector.
- step 606 includes determining whether only the portion of the candidate codevector, corresponding to the illegal vector criterion, satisfies the illegal vector criterion.
- a next step 608 includes determining whether (1) the error term (calculated in step 604) corresponding to the candidate codevector is better than a current best error term, and (2) the candidate codevector is legal (as indicated by step 606).
- codevector selector 424 determines whether error term 411 corresponding to codevector 408 is better than the current best error term.
- Step 610 includes updating the current best error term with the error term calculated in step 604, and declaring the candidate codevector a current best candidate codevector. Flow proceeds from step 610 to a next step 612. Codevector selector 424 performs these steps.
- step 608 If at step 608, either of conditions (1) or (2) is not true, then flow bypasses step 610 and proceeds directly to step 612.
- Step 612 includes determining whether a last one of the set of candidate codevectors has been processed. If the last candidate codevector has been processed, then the method is done. On the other hand, if more candidate codevectors need to be processed, then flow proceeds to a next step 614. At step 614, a next one of the candidate codevectors in the set of candidate codevectors is chosen, and steps 604-612 are repeated for the next candidate codevector.
- Processing the set of candidate codevectors according to method 600 results in selecting a legal candidate codevector corresponding to a best error term from among the set of legal candidate codevectors.
- codevector selector 424 selects the best candidate codevector. This is considered to be the best legal candidate codevector among the set of candidate codevectors.
- the best legal candidate codevector corresponds to a quantized version of the parameter (or vector).
- the best legal candidate codevector represents a quantized version of the parameter (or vector).
- method 600 quantizes the parameter (or vector) into the best legal candidate codevector.
- the best legal candidate codevector may be transformed into a quantized version of the parameter (or vector), for example, by combining the best legal candidate codevector with another parameter (or vector).
- the best legal candidate codevector "corresponds to" a quantization or quantized version of the parameter.
- the method also includes outputting at least one of the best legal candidate codevector, and an index identifying the best legal candidate codevector.
- codevector selector 424 outputs index 428 and best codevector 426.
- FIG. 6B is a flowchart of another method 620 of quantizing a parameter using a quantizer associated with an illegal space.
- Methods 620 and 600 include many of the same steps. For convenience, such steps are not re-described in the context of method 620.
- Method 620 is similar to method 600, except method 620 reverses the order of steps 604 and 606.
- Method 620 includes evaluating the legal status (step 606) of the candidate codevector before calculating the error term (step 604) corresponding to the candidate codevector. Method 620 also adds a step 606a between legality-checking step 606 and error term calculating step 604. Together, steps 606 and 606a include determining whether the candidate codevector is legal.
- step 604 If the candidate codevector is legal, then flow proceeds to step 604, where the corresponding error term is calculated.
- step 606a proceeds directly from step 606a to step 612, thereby bypassing steps 604, 608a and 610.
- method 620 determines error terms only for legal candidate codevectors, thereby minimizing computational complexity in the case where some of the candidate codevectors may be illegal.
- Step 608a in method 620 need not determine the legality of a candidate codevector (as is done in step 608 of method 600) because prior steps 606 and 606a make this determination before flow proceeds to step 608a.
- a summary method corresponding to methods 600 and 620 includes:
- FIG. 6C is a flowchart of another example method 650 of quantizing a parameter using a quantizer associated with an illegal space.
- Method 650 is similar to method 620, except that method 620 reverses the order in which steps 604 and 606 are executed.
- Method 620 includes:
- FIG. 6D is a flowchart of an example method 660 of quantizing a parameter using a quantizer having an illegal space, and having protection against an absence of a legal candidate codevector.
- the codevector loop of method 660 includes a first branch to identify a best legal candidate codevector among a set of candidate codevectors based on their corresponding error terms, if it exists. This branch includes steps 608b, 606 and 606a, and 610,.
- Method 660 includes a second branch, depicted in parallel with the first branch, to identify a candidate codevector among the set of candidate codevectors corresponding to a best error term, independent of whether the codevector is legal.
- This branch includes steps 662 and 664.
- the second branch updates a current best global candidate codevector and a corresponding current best global error term (see step 664).
- Step 662 determines whether the error term calculated in step 604 is better than a current best error term for the current best global codevector, independent of whether the corresponding candidate codevector is legal.
- Step 668 includes determining whether all of the candidate codevectors are illegal. If all of the candidate codevectors are illegal, then a next step 670 includes releasing/outputting the best global (illegal) candidate codevector (as determined by the second branch) and/or an index identifying the best global candidate codevector.
- Step 672 includes releasing the best legal candidate codevector among the set of candidate codevectors (as determined by the first branch) and/or an index identifying the best legal candidate codevector.
- the loop including the first branch of method 660 in FIG. 6D and step 604, 610, and 612 is similar to the loop depicted in method 650, discussed above in connection with FIG. 6C .
- the first branch in method 660 may be rearranged to be more similar to the loops of methods 600 and 620 discussed above in connection with FIGs. 6A and 6B , as would be apparent to one of ordinary skill in the relevant art(s) after having read the description herein.
- FIG. 6E is a flowchart of another example method 680 of quantizing a parameter using a quantizer associated with an illegal space, and having protection against an absence of legal codevectors.
- Method 680 is similar to method 600 discussed above in connection with FIG. 6A . However, method 680 adds step 668 to determine whether all of the candidate codevectors are illegal. If all of the candidate codevectors are illegal, then flow proceeds to a next step 682. Step 682 includes applying a concealment technique. Otherwise, the method terminates without the need for concealment.
- Each method described above, and further methods described below includes a processing loop, including multiple steps, for processing one candidate codevector or sub-codevector at a time.
- the loop is repeated for each codevector or sub-codevector in a set of codevectors.
- An alternative arrangement for these methods includes processing a plurality of codevectors or sub-codevectors while eliminating such processing loops.
- FIG. 6F is a block diagram of an example summary method 690, corresponding to methods 600 and 630, that eliminates such processing loops.
- a first step 692 includes determining legal candidate codevectors among a set of candidate codevectors. This is equivalent to performing steps 606 and 606a repeatedly. This is a form of block-processing the set of codevectors to determine their legal statuses.
- a next step 694 includes deriving a separate error term corresponding to each legal candidate codevector, each error term being a function of the input vector and the corresponding legal candidate codevector. This is equivalent to performing step 604 repeatedly.
- a next step 696 includes determining a best legal candidate codevector among the legal candidate codevectors based on the error terms.
- a next step includes outputting at least one of the best legal candidate codevector and an index identifying the best legal candidate codevector.
- Other alternative method arrangements include combining loops with block-processing steps.
- FIG. 7 is a flowchart of an example method 700, performed by a decoder using an illegal space.
- Method 700 may be performed by an inverse quantizer residing in the decoder.
- Method 700 begins when an index is received at the decoder.
- a first step 702 includes reconstructing a codevector from the received index.
- codevector generator 508 (or 508a) generates reconstructed codevector 510 (or 510a) from received index 502.
- steps 704 and 706 include evaluating a legal status of the reconstructed codevector. For example, steps 704 and 706 include determining whether the reconstructed codevector is legal or illegal, using the illegal space. These steps are similar to steps 606 and 608a in method 680, for example. For example, legal status tester 512 determines whether reconstructed codevector 510 (or 510a) is legal using one or more illegal space definitions 514.
- a next step 708 declares a transmission error. For example, decisional logic block 520 performs this step. Otherwise, the method is done.
- FIG. 8 is a flowchart of an example method 800 of inverse quantization performed by an inverse quantizer.
- Method 800 includes steps 702-706 similar to method 700.
- step 706 if the reconstructed codevector is illegal, that is, the reconstructed codevector corresponds to the illegal space, then flow proceeds to step 708.
- Step 708 includes declaring a transmission error.
- a next step 710 includes invoking an error concealment technique in response to the transmission error.
- Step 712 includes releasing/outputting the legal reconstructed codevector.
- FIG. 9 is a flowchart of an example method 900 of quantization performed by a composite quantizer including a plurality of sub-quantizers.
- Method 900 applies illegal spaces to selected ones of the sub-quantizers of the composite quantizer.
- a step 902 selects a first one of the plurality of sub-quantizers.
- a next step 904 includes determining whether an illegal space is associated with the selected sub-quantizer. If an illegal space is associated with the selected sub-quantizer, then a next step 906 includes sub-quantization with the illegal space, using the selected sub-quantizer.
- a next step 908 includes sub-quantization without an illegal space, using the selected sub-quantizer.
- Step 910 includes releasing/outputting at least one of (1) a best sub-codevector, and (2) a sub-index identifying the best sub-codevector as established at either of steps 906 and 908.
- a next step 912 includes determining whether a last one of the plurality of sub-quantizers has been selected (and subsequently processed). If the last sub-quantizer has been selected, the method is done. Otherwise, a next step 914 includes selecting the next sub-quantizer of the plurality of sub-quantizers.
- FIG. 10 is a flowchart of an example method 1000 of sub-quantization using an illegal space, as performed by a sub-quantizer.
- Method 1000 quantizes an input vector.
- quantizer 1000 may quantize an input vector x , see Eq. 14, in accordance with Eq. 56 or an input vector r 1,1 , see Eq. 76, in accordance with Eq. 85.
- Method 1000 expands on step 906 of method 900.
- the general form of method 1000 is similar to that of method 650, discussed above in connection with FIG. 6C .
- Method steps in method 1000 are identified by reference numerals increased by 400 over the reference numerals identifying corresponding method steps in FIG. 6C .
- step 604 in FIG. 6C corresponds to step 1004 in FIG. 10 .
- An initial step 1002 includes establishing a first one of a plurality or set of sub-codevectors that needs to be processed.
- a next step 1004 includes determining an error term corresponding to the sub-codevector. For example, when sub-quantization is being performed in accordance with Eq. 85, step 1004 determines the error term in accordance with Eq. 86.
- a next step 1008 includes determining whether the error term is better than a current best error term. If the error term is better than the current best error term, then a next step 1020 includes transforming the sub-codevector into a corresponding candidate codevector residing in the same domain as the illegal space associated with the sub-quantizer. Step 1020 may include combining the sub-codevector with a transformation vector to produce the candidate codevector. For example, when sub-quantization is being performed in accordance with Eq. 85, step 1004 includes transforming sub-codevector c n 2 into candidate codevector c n ,2 in accordance with Eq. 83, or more generally, when sub-quantization is being performed according to Eq. 56, step 1004 includes transforming sub-codevector c n m into candidate codevector c n , m in accordance with Eq. 55.
- Step 1006 and 1006a together include determining whether the candidate codevector is legal. For example, when sub-quantization is being performed in accordance with Eq. 85, step 1006 includes determining whether codevector c n ,2 is legal using the illegal space defined by Eq. 87.
- next step 1010 includes updating the current best error term with the error term calculated in step 1004. Flow proceeds to step 1012.
- step 1012 if the error term is not better than the current best error term, then flow proceeds directly to step 1012.
- Steps 1004, 1008, 1020, 1006, 1006a, and 1010 are repeated for all of the candidate sub-codevectors.
- Method 1000 identifies a best one of the sub-codevectors corresponding to a legal candidate codevector, based on the error terms.
- Method 1000 includes outputting at least one of the best sub-codevector and an index identifying the best sub-codevector.
- the best sub-codevector is a quantized version (or more specifically, a sub-quantized version) of the input vector.
- method 1000 may be rearranged to be more similar to the forms of methods 600 and 620 discussed above in connection with FIGs. 6A and 6B , respectively.
- FIG. 10A is a flowchart of another example method 1030 of sub-quantizing an input vector with an illegal space performed by a sub-quantizer.
- a first step 1034 includes transforming each sub-codevector of a set of sub-codevectors into a corresponding transformed candidate codevector residing in the same domain as the illegal space associated with the sub-quantizer.
- Step 1034 may include combining each sub-codevector with a transformation vector.
- Step 1034 produces a set of transformed candidate codevectors.
- a next step 1036 includes determining legal transformed candidate codevectors among the set of transformed candidate codevectors.
- a next step 1038 includes deriving a separate error term corresponding to each legal transformed candidate codevector, and thus, to each sub-codevector.
- Each error term is a function of the input vector and the corresponding sub-codevector.
- a next step 1040 includes determining a best candidate sub-codevector among the sub-codevectors that correspond to legal transformed codevectors, based on the error terms. For example, step 1040 includes determining the best candidate sub-codevector corresponding to a legal transformed codevector and a best error term among the error-terms corresponding to legal transformed codevectors. For example, assume there are a total of N candidate sub-codevectors, but only M of the sub-codevectors correspond to legal transformed candidate codevectors after step 1036, where M ⁇ N .
- Step 1040 may include determining the best sub-codevector among the M sub-codevectors as that sub-codevector corresponding to the best (for example, lowest) error term among the M sub-codevectors. Other variations of this step are envisioned in the present invention.
- a next step 1042 includes outputting at least one of the best sub-codevector and an index identifying the best sub-codevector.
- FIG. 11 is a flowchart of an example method 1100 of inverse composite quantization including multiple inverse sub-quantizers. At least one of the inverse sub-quantizers is associated with an illegal space, and thus performs inverse sub-quantization with an illegal space.
- Method 1100 is similar to method 900, except method 1100 applies to inverse composite quantization instead of composite quantization.
- An initial step 1102 includes selecting a first inverse sub-quantizer from the multiple inverse sub-quantizers of the composite inverse quantizer.
- a next step 1104 includes determining whether an illegal space is specified for the selected inverse sub-quantizer. If an illegal space is specified for, and thus, associated with, the selected inverse sub-quantizer, then a next step 1106 includes inverse sub-quantization with the illegal space, using the selected inverse sub-quantizer.
- a next step 1108 includes determining whether a transmission error was detected in step 1106. If a transmission error was detected, then a next step 1110 includes applying an error concealment technique.
- step 1108 determines that a transmission error was not detected, then a next step 1112 includes outputting/releasing a reconstructed sub-codevector produced by the inverse sub-quantization in step 1106.
- Step 1114 includes sub-quantization without an illegal space. Flow proceeds from step 1114 to step 1112.
- Step 1116 includes determining whether any of the inverse sub-quantizers in the composite inverse quantizer have not yet been selected. If all of the inverse sub-quantizers have been selected (and subsequently processed), then method 1100 ends. Otherwise, flow proceeds to a step 1118. Step 1118 includes selecting a next one of the inverse sub-quantizers.
- FIG. 12 is a flowchart of an example method 1200 of inverse sub-quantization with an illegal space, performed by an inverse sub-quantizer. Method 1200 expands on step 1106 of method 1100.
- a first step 1202 includes reconstructing a sub-codevector from a received sub-index.
- a next step 1204 includes transforming the reconstructed sub-codevector into a transformed codevector. This step may include combining the reconstructed sub-codevector with one or more other vectors (for example, adding/subtracting other vectors to the reconstructed sub-codevector).
- Next steps 1206 and 1208 together include determining whether the transformed codevector is illegal, or alternatively, legal, based on an illegal space that is defined in the domain of the transformed codevector. If the transformed codevector is illegal, then a next step 1210 includes declaring a transmission error.
- ⁇ ⁇ df ⁇ ⁇ df 1 , ⁇ ⁇ df 2 , ... , ⁇ ⁇ df K .
- the encoder-decoder synchronized operation of re-ordering and/or spacing is required since a complex quantizer structure does not necessarily result in an ordered set of LSF parameters even if the unquantized set of LSF parameters are ordered and properly spaced.
- ⁇ ill ⁇ ⁇
- ⁇ 1 ⁇ ⁇ 1 ⁇ ⁇ 2 - ⁇ 1 ⁇ ⁇ 2 ⁇ ... ⁇ ⁇ K - ⁇ ⁇ K - 1 ⁇ ⁇ k ⁇ ⁇ - ⁇ K ⁇ ⁇ ⁇ K + 1 , where ⁇ ⁇ ⁇ 1 , ⁇ 2 , ... , ⁇ ⁇ K + 1 specifies the minimum spacing.
- ⁇ ill ⁇ ⁇
- the minimum spacing of the input LSF parameters is typically greater than zero, and the expansion of the illegal space given by Eq. 48 may prove advantageous, increasing the probability of detecting transmission errors.
- the proper minimum spacing, ⁇ defining the illegal space, can be determined based on an empirical analysis of the minimum spacing of the input LSF parameters in conjunction with a compromise between increasing the probability of detecting transmission errors and degrading the performance for error-free transmission.
- a minimum spacing of zero should have little, if any, impact to the performance of the quantizer under error-free conditions.
- some degradation to the performance under error-free conditions should be expected. This will, to some extent, depend on the quantizer.
- An LSF quantizer according to Eq. 32 with an illegal space defined according to Eq. 48 will enable the detection of transmission errors that map codevectors into the illegal space.
- Eq. 56 demonstrates how the illegal space in the domain of the composite codevector can be applied to any sub-quantization, Q m [ ⁇ ] in the quantization.
- the decoder can then detect transmission errors based on the inverse sub-quantization, Q m - 1 ⁇ , according to z ⁇ + c ⁇ I d , m ⁇ ⁇ ill ⁇ T error ⁇ .
- an illegal space can be applied to an arbitrary number of sub-quantizations enabling detection of transmission errors at the decoder based on verification of the intermediate composite codevector after multiple inverse sub-quantizations.
- ⁇ denotes logical "and" between the elements.
- FIG. 13 is a flowchart of an example method 1300 of quantization with an illegal space, performed by a sub-quantizer for sub-quantizing LSF parameters (that is, performed by an LSF sub-quantizer). For example, method 1300 quantizes an input vector r 1,1 , Eq. 76, in accordance with Eq. 85. Method 1300 is similar in form to method 1000.
- An initial step 1301 includes forming a current approximation of LSF parameters, for example in accordance with Eq. 84 or Eq. 134.
- the remaining steps of method 1300 are identified by reference numbers increased by 300 over the reference numbers that identify corresponding method steps in method 1000.
- Step 1306 of method 1300 corresponds to both steps 1006 and 1006a in method 1000.
- Step 1320 of method 1300 includes transforming the sub-codevector chosen for processing at step 1302 (or step 1314) to a domain of LSF parameters.
- step 1320 includes calculating a candidate approximation of LSF parameters as a sum of the sub-codevector and the current approximation of LSF parameters (from step 1301). For example, in accordance with Eq. 83, Eq. 133, or in general Eq. 55.
- Next step 1306 includes determining whether the candidate approximation of LSF parameters is legal, for example, using the illegal space defined by Eq. 87, or Eq. 140. This includes determining whether the LSF parameters in the candidate approximation correspond to (for example, belong to) the illegal space that is in the domain of the LSF parameters.
- FIG. 14 is a flowchart of an example method 1400 of inverse sub-quantization with an illegal space, performed by an inverse LSF sub-quantizer.
- Method 1400 is similar to method 1200.
- the steps of method 1400 are identified by reference numerals increased by 200 over the reference numerals identifying corresponding steps of method 1200.
- a first step 1402 includes reconstructing a sub-codevector from a received sub-index.
- a next step 1404 includes reconstructing a new approximation of LSF parameters as a sum of the reconstructed sub-codevector and a current approximation of LSF parameters.
- a next step 1406 includes determining whether the reconstructed new approximation of LSF parameters is illegal based on the illegal space that is in the domain of LSF parameters.
- a next step 1410 includes declaring a transmission error.
- FIG. 15 is a block diagram of an example LSF quantizer 1500 at an encoder.
- Quantizer 1500 includes the following functional blocks: a plurality of signal combiners 1502a-1502d, which may be adders or subtractors; an 8th order MA predictor 1504 coupled between combiners 1502b and 1502d; a regular 8-dimentional MSE sub-quantizer 1506 coupled between combiners 1502b and 1502c; a vector splitter 1508 following combiner 1502c; a 3-dimensional WMSE sub-quantizer with illegal space 1510; and a regular 5-dimensional WMSE sub-quantizer 1512 both following vector splitter 1508; a sub-vector appender 1514 coupled to outputs of both sub-quantizers 1510 and 1512, and having an output coupled to combiner 1502d.
- Quantizer 1500 (also referred to as LSF VQ 1500) is a mean-removed, predictive VQ with a two-stage quantization with a split in the second stage. Hence, it has three sub-quatizers (1506, 1510 and 1512).
- the respective codebooks associated with sub-quantizers 1506, 1510 and 1512, are denoted C 1 , C 2 , and C 3 .
- the MA prediction coefficients are denoted a k,i , and the index i indicates the previous i th quantization. Consequently, r ⁇ e,i ( k ) is the k th element of the quantized residual vector at the previous i th quantization.
- the quantization of the residual vector is performed in two stages with a split in the second stage.
- MSE Mean Squared Error
- the sub-quantization, Q 2 [ ⁇ ], of the lower split sub-vector r 1,1 (that is, the sub-quantization performed by sub-quantizer 1510) is subject to an illegal space in order to enable detection of transmission errors at the decoder.
- the illegal space defined by Eq. 82 comprises all LSF vectors for which any of the three lower pairs are out order.
- c ⁇ ⁇ C 2 , z ⁇ + c ⁇ ⁇ ⁇ ill d WMSE r ⁇ 1 , 1 ⁇ c ⁇ n 2 , where d WMSE x ⁇ y ⁇ ⁇ k k ⁇ x k - y k 2 is the Weighted Mean Squared Error (WMSE) criterion.
- WMSE Weighted Mean Squared Error
- the weighting function w is typically introduced to obtain an error criterion that correlates better with the perception of the human auditory system than the MSE criterion. For the quantization of the spectral envelope, such as represented by the LSFs, this typically involves weighting errors in high-energy areas of the spectral envelope stronger than areas of low energy. Such a weighting function can advantageously be derived from the input LSF vector, or corresponding prediction coefficient vector, and thus changes from one input vector to the next.
- the error criterion is in the domain of the sub-codevector, and not in the domain of the composite codevector as in Eq. 56. Combination of Eq. 60 and Eq.
- This expression is evaluated along with the WMSE in order to select the sub-codevector, c I e,2 , that minimizes the WMSE and provides a final composite codevector that does not belong to the illegal space. If no candidate sub-codevector can provide a final composite candidate vector that does not belong to the illegal space, then, in an arrangement of quantizer 1500, the optimal sub-codevector is selected disregarding (that is, independent of) the illegal space.
- FIG. 15A is a block diagram of an example generalized sub-quantizer 1548.
- Sub-quantizer 1548 has a general form similar to that of quantizer 430 discussed in connection with FIG. 4A , except a sub-codevector generator 1552 and a transformation logic module 1556a in sub-quantizer 1548 replace codebook 402 and composite codevector generator 406a of quantizer 430, respectively.
- Sub-codevector generator 1552 generates a candidate sub-codevector sub-CV 1 .
- Generator 1552 may generate the candidate sub-codevector based on one or more codebook vectors stored in a codebook.
- the sub-codevector may be a codebook vector, similar to the arrangement of FIG. 4B .
- Transformation logic module 1556a transforms candidate sub-codevector sub-CV 1 into a corresponding candidate codevector CV 1 .
- the transforming step includes separately combining a transformation vector 1580 with the candidate sub-codevector sub-CV 1 , thereby generating candidate codevector CV 1 .
- Transformation logic module 1556a may be part of a composite codevector generator, as in the arrangement depicted in FIG. 4B .
- Legal status tester 1562 determines the legal status of candidate codevector CV 1 using illegal space definition(s) 1570, to generate a legal/illegal indicator L/Ill 1 .
- Error Calculator 1559 generates an error term e 1 corresponding to candidate sub-codevectors sub-CV 1 .
- Error term e 1 is a function of candidate sub-codevector sub-CV 1 and input vector 1551. From the above, it can be appreciated that candidate sub-CV 1 corresponds to each of (1) error term e 1 , (2) candidate CV 1 , and (3) indicator L/Ill 1 .
- Sub-codevector generator 1552 generates further candidate sub-codevectors sub-CV 2..N , and in turn, transformation logic 1556a, legal status tester 1562, and error calculator 1559 repeat their respective functions in correspondence with each of candidate sub-codevectors sub-CV 2..N .
- sub-quantizer 1548 generates a set of candidate sub-codevectors sub-CV 1..N (singly and collectively referred to as sub-codevector(s) 1554).
- sub-quantizer 1548 In correspondence with candidate sub-codevectors sub-CV 1..N , sub-quantizer 1548 generates: a set of candidate codevectors CV 1..N (singly and collectively referred to as candidate codevector(s) 1558a); a set of legal/illegal indicators I/Ill 1..N (singly and collectively referred to as indicators 1572); a set of error terms e 1..N (singly and collectively referred to as error term(s) 1561).
- Sub-quantizer 1548 determines legality in the domain of the candidate codevectors 1558a, and determines error terms in the domain of the candidate sub-codevectors 1554. More generally, a sub-quantizer may determine legality in a first domain (for example, the domain of the candidate codevectors 1558a), and determine error terms in a second domain different from the first domain (for example, in the domain of the candidate sub-codevectors 1554).
- Sub-codevector selector 1574 receives error terms 1561, candidate sub-codevectors 1554, and legal/illegal indicators 1572. Based on all of these inputs, selector 1524 determines a best sub-codevector 1576 (indicated as Sub-CV Best ) (and its index 1578) among the candidate sub-codevectors 1554 corresponding to a legal one of codevectors 1558a and a best one of error terms 1561. In an arrangement, only error terms corresponding to sub-codevectors corresponding to legal codevectors are considered. For example, sub-CV 1 may be selected as the best sub-codevector, if CV 1 is legal and error term e 1 is better than any other error terms corresponding to sub-codevectors corresponding to legal codevectors.
- transformation vector 1580 may be derived from one or more past, best sub-codevectors Sub-CV Best .
- Determining legality and error terms in different domains leads to an "indirection" between sub-codevectors and legality determinations. This is because a best sub-codevector is chosen based on error terms corresponding directly to the candidate sub-codevectors, and based on legality determinations that correspond indirectly to the sub-codevectors. That is, the legality determinations do not correspond directly to the sub-codevectors. Instead, the legality determinations correspond directly to the candidate codevectors (which are determined to be legal or illegal), and the candidate codevectors correspond directly to the sub-codevectors, through the transformation process performed at 1556a.
- FIG. 16 is a block diagram of an example inverse LSF quantizer 1600 at a decoder.
- Inverse quantizer 1600 includes a regular 8-dimensional inverse sub-quantizer 1602, 3-dimensional inverse sub-quantizer 1604 with illegal space in the domain of the final reconstructed LSF vector (also referred to as "inverse sub-quantizer 1604 with illegal space"), and a regular 5-dimensional inverse sub-quantizer 1606.
- Quantizers 1602, 1604, and 1606 receive respective indices I d ,1 , I d ,2 , and I d ,3 . In response to these received indices, quantizers 1602-1606 produce respective sub-codevectors.
- Quantizer 1600 also includes a combiner 1608 coupled to a sub-vector appender 1610. Combiner 1608 and appender 1610 combine and append sub-codevectors in the manner depicted in FIG. 16 to produce a reconstructed residual vector 1612.
- Quantizer 1600 further includes first and second switches or selectors 1620a and 1620b controlled in response to a transmission error indicator signal 1622.
- Quantizer 1600 further includes an 8th order MA predictor 1624, a plurality of combiners 1626a-1626c, which may be adders or subtractors, an error concealment module 1628, and an illegal status tester 1630.
- MA predictor 1624 generates a predicted vector 1632 based on past reconstructed residual vectors.
- Combiners 1626a and 1626b together combine predicted vector 1632, a mean LSF vector 1634, and reconstructed residual vector 1612, to produce a reconstructed LSF codevector 1636, which is a composite codevector.
- Legal status tester 1630 determines whether reconstructed LSF codevector 1636 is legal using an illegal space.
- the illegal space includes an illegal codevector criterion defining an illegal ordering property of the lower three LSF pairs in a codevector.
- Inverse sub-quantizer 1604 with illegal space includes inverse sub-quantizer 1604 in combination with illegal status tester 1630, and in further combination with the illegal space definition(s) associated with tester 1630.
- Inverse sub-quantizer 1604 with illegal space corresponds to sub-quantizer 1510 with illegal space, discussed above in connection with FIG. 15 .
- illegal status tester 1630 If reconstructed codevector 1636 is legal, then illegal status tester 1630 generates a negative transmission error indicator (indicating no transmission error has been identified) and switches 1620a and 1620b are in their left position, routing 1636 to 1642 and 1612 to 1624, respectively.
- Concealment module 1628 generates the alternative output vector 1640 to be used as an alternative to reconstructed LSF codevector 1636 (that has been declared illegal by tester 1630).
- the alternative reconstructed LSF codevector may be a past, legal reconstructed LSF codevector.
- the alternative vector 1644 to update the MA predictor memory is obtained by subtracting the mean and predicted vectors from the alternative reconstructed LSF codevector 1640 in subtractor 1626c.
- This section presents an efficient method to search a signed VQ using the WMSE (Weighted Mean Squared Error) criterion.
- the weighting in WMSE criterion is typically introduced in order to obtain an error criterion that correlates better with the perception of the human auditory system than the MSE criterion, and hereby improve the performance of the VQ by selecting a codevector that is perceptually better.
- the weighting typically emphasizes perceptually important feature(s) of the parameter(s) being quantized, and often varies from one input vector to the next.
- the effectiveness of the methods is measured in terms of the floating point DSP-like operations required to perform the search, and is referred as floating point operations.
- An Addition, a Multiply, and a Multiply-and-Accumulate are all counted as requiring 1 operation.
- a size N (total of N possible codevectors) signed VQ of dimension K is defined as a product code of two codes, referred as a sign-shape code.
- C C sign ⁇ C shape
- the search involves finding the optimal sign, s opt ⁇ C sign , and optimal shape vector, c n opt ⁇ C shape , that provides the optimal joint codevector, c n opt , s opt .
- Eq. 109 the error criterion has been expanded into three terms, the weighted energy of the input vector, E w ( x ), the weighted energy of the shape vector, E w ( c n ), and the sign multiplied by two times the weighted cross-correlation between the input vector and the shape vector, R w ( c n , x ).
- the weighted energy of the input vector is independent of the sign and shape vector and therefore remains constant for all composite codevectors. Consequently, it can be omitted from the search, and the search of Eq.
- c ⁇ ⁇ C shape , i sgn R w c ⁇ ⁇ x ⁇ E w c ⁇ n - s ⁇ R w c ⁇ n ⁇ x ⁇ , where the function sgn returns the sign of the argument.
- E w ( c n ) is calculated according to Eq. 117 under either step a or b above.
- FIG. 17A is a flowchart of an example quantization search method 1700.
- method 1700 represents a WMSE search of a signed codebook.
- method 1700 performs the search in accordance with Eq. 113 or Eq. 115.
- the codebook includes:
- each shape codevector c n can be considered to be associated with:
- the positive and negative signed codevectors associated with each shape codevectors c n each represent a product of the shape codevector c n and a corresponding one of the sign values.
- An initial step 1702 includes identifying a first shape codevector to be processed among a set of shape codevectors.
- Method 1700 includes a loop for processing the identified shape codevector.
- a step 1704 includes calculating a weighted energy of the shape codevector, for example, in accordance with Eq. 111.
- a next step 1706 includes calculating a weighted cross-correlation term between the shape codevector and an input vector, for example, in accordance with Eq. 112.
- a next step 1708 includes determining, based on a sign (or sign value) of the weighted cross-correlation term, a preferred one of the positive and negative signed codevectors associated with the shape codevector. Thus, step 1708 includes determining the sign of the cross-correlation term.
- a negative cross-correlation term indicates the negative signed codevector is the preferred one of the positive and negative signed codevectors.
- a positive weighted cross-correlation term indicates the positive signed codevector is the preferred one of the positive and negative signed codevectors.
- a next step 1710 includes calculating a minimization term corresponding to the negative signed codevector as the sum of (1) the weighted energy of the shape codevector, and (2) the weighted cross-correlation term.
- the minimization term is calculated in accordance with Eq. 114.
- a next step 1712 includes calculating a minimization term corresponding to the positive signed codevector as the weighted energy of the shape codevector minus the weighted cross-correlation term.
- the minimization term is calculated in accordance with Eq. 114.
- Step 1714 includes determining whether the minimization term calculated in either step 1710 or step 1712 is better than a current best minimization term.
- step 1710 If the minimization term calculated at step 1710 or 1712 is better than the current best minimization term, then flow proceeds to a next step 1716.
- the minimization term replaces the current best minimization term, and the preferred signed codevector, determined at step 1708, becomes the current best signed codevector .
- Flow proceeds to a next step 1718.
- step 1710 or step 1712 if the minimization term calculated at step 1710 or step 1712 is not better than the current best minimization term, than flow proceeds directly from step 1714 to step 1718.
- Step 1718 includes determining whether all of the shape codevectors in the shape codebook have been processed. If all of the codevectors in the shape codebook have been processed, then the method is done. If more shape codevectors need to be processed, then a next step 1720 includes identifying the next codevector to be processed in the loop comprising steps 1704-1720, and the loop repeats.
- steps 1704-1720 repeats for each shape codevector in the set of shape codevectors, thereby determining for each shape codevector a preferred signed codevector and a corresponding minimization term.
- steps 1714 and 1716 together include determining a best signed codevector among the preferred signed codevectors based on their corresponding minimization terms.
- the best signed codevector represents a quantized vector corresponding to the input vector.
- FIG. 17B is a flowchart of a method 1730 of performing a WMSE search of a signed codebook.
- Method 1730 is similar to method 1700, except method 1730 includes an additional step 1701 included within the search loop.
- Step 1701 includes calculating a weighted shape codevector, for the shape codevector being processed in the loop, with the weighting function for the WMSE criteria, to produce a weighted shape codevector. For example, in accordance with Eq. 119.
- Subsequent steps 1704 and 1706 use the weighted shape codevector in calculating the weighted energy and the weighted cross-correlation term.
- the efficient WMSE search method of the previous section provides a result that is mathematically identical to performing an exhaustive search of all combinations of signs and shapes.
- this is not necessarily the case since the sign providing the lower WMSE may be eliminated by the illegal space, and the alternate sign may provide a legal codevector though of a higher WMSE yet better than any alternative codevector.
- checking only the codevector of the sign according to the cross-correlation term as indicated by Eq. 115 provides satisfactory performance and saves significant computational complexity.
- c ⁇ ⁇ C shape , i sgn R w c ⁇ ⁇ x ⁇ , z ⁇ + i ⁇ c ⁇ ⁇ C ill E w c ⁇ n - s ⁇ R w c ⁇ n ⁇ x ⁇ , where is should be noted that the transformation vector, z , has a similar meaning as in Eq. 55.
- FIGs. 18A through 18D are flow chart illustrations of the search procedure, performed in accordance with Eq. 121, for example.
- FIG. 18A is a flowchart of an example method 1800 of performing a WMSE search of a signed codebook associated with an illegal space.
- Method 1800 has the same general form as methods 1700 and 1730, except method 1800 replaces steps 1710, 1712, 1714, and 1716 with corresponding steps 1810, 1812, 1814, and 1816.
- Step 1810 includes calculating the minimization term as in step 1710.
- step 1810 includes determining whether the preferred signed codevector, or a transformation thereof (if z ⁇ 0 ), does not belong to an illegal space defining illegal vectors.
- Step 1810 also includes declaring the preferred signed codevector legal when the preferred signed codevector, or a transformation thereof, does not belong to the illegal space.
- step 1812 includes these additional two steps.
- Step 1814 includes determining whether the minimization term corresponding to the preferred signed shape codevector is better than the current best minimization term AND whether the preferred signed shape codevector is legal.
- step 1816 updates (1) the current best minimization term with the minimization term determined at either step 1810 or 1812, and (2) the current best preferred signed shape codevector with the signed codevector determined at step 1708 (that is, corresponding to the minimization term). Otherwise, neither the current best minimization term nor the current best signed codevector is updated.
- FIG. 18B is a flowchart of another example method 1818 of performing a WMSE search of a signed codebook with an illegal space.
- Method 1818 is similar to method 1800 except that method 1818 determines the legal status of the preferred signed codevector at a step 1815, after steps 1710, 1712, and 1714, as depicted in FIG. 18B .
- method 1818 includes a separate step 1820 following step 1815 to determine whether to update the current best minimization term and the current best preferred signed codevector.
- FIG. 18C is a flowchart of another example method 1840 of performing a WMSE search of a signed codebook with an illegal space.
- Method 1840 is similar to method 1818, except method 1840 reverses the order of determining legality (steps 1815/1820) and determining error terms (1714) compared to method 1818.
- FIG. 18D is a flowchart of another example method 1860 of performing a WMSE search of a signed codebook with illegal space.
- Method 1860 is similar to methods 1800 and 1830, except method 1860 includes steps 1862, 1864, and 1866.
- Step 1862 includes transforming the preferred signed shape codevector into a transformed codevector that corresponds to the preferred signed codevector, and that is in a domain of the illegal space representing illegal vectors.
- a next step 1864 includes determining whether the transformed codevector does not belong to the illegal space defining illegal vectors. Step 1864 also includes declaring the transformed codevector legal when the transformed codevector does not belong to the illegal space.
- step 1866 includes determining whether the minimization term calculated in either step 1710 or step 1712 is better than a current best minimization term AND whether the transformed codevector is legal.
- Step 1816 includes updating the current best signed codevector with the preferred signed codevector determined at step 1708, and updating the current best minimization term with the minimization term determined at step 1710 or 1712.
- Methods 1800, 1818, 1840 and 1860 may be performed in any of the quantizers described herein, including sub-quantizers and composite quantizers.
- the methods may represent methods of quantization performed by a quantizer and methods of sub-quantization performed by a sub-quantizer that is part of a composite quantizer.
- the index for the sign requires only one bit while the size of the shape codebook determines the number of bits needed to uniquely specify the shape codevector.
- a second embodiment of the invention to the LSF VQ is described in detail in the context of a narrowband LPC system.
- FIG. 19 is a block diagram of an example LSF quantizer 1900 at an encoder.
- Quantizer 1900 utilizes both a search using an illegal space and a search of a signed codebook.
- Quantizer 1900 is similar to quantizer 1500 discussed above in connection with FIG. 15 .
- Quantizer 1500 is a mean-removed, predictive VQ with a two-stage quantization of the residual vector.
- the second stage sub-quantization (represented at 1912) is a signed VQ of the full dimensional residual vector as opposed to the quantizer 1500 that employs a split VQ. Consequently, quantizer 1900 has only two sub-quantizers 1506 and 1912. With reference to FIG.
- the respective codebooks are denoted C 1 and C 2 , where the second stage sign and shape codebooks making up C 2 are denoted C sign and C shape , respectively.
- the quantization of the residual vector is performed in two stages.
- the sub-quantization, Q 2 [ ⁇ ], of the first stage residual vector, r 1 is subject to an illegal space in order to enable detection of transmission errors at the decoder.
- the illegal space defined by Eq. 132 comprises all LSF vectors for which any of the three lower pairs are out-of-order.
- the mapping of Eq. 123 is applied to generate the joint index, I e ,2 , of the sign and shape indices, I e ,2, sign and I e ,2, shape , of the second stage signed VQ.
- FIG. 20 is a block diagram of an example inverse LSF quantizer 2000, Q -1 [ ⁇ ], at a decoder.
- the MA prediction at the decoder, e ⁇ ⁇ d is given by Eq. 92.
- This inverse sub-quantizer with illegal space corresponds to sub-quantizer with illegal space 1912 of quantizer 1900.
- the following description of a general purpose computer system is provided for completeness.
- the present invention can be implemented in hardware, or as a combination of software and hardware. Consequently, the invention may be implemented in the environment of a computer system or other processing system.
- An example of such a computer system 2100 is shown in FIG. 21 .
- the computer system 2100 includes one or more processors, such as processor 2104.
- Processor 2104 can be a special purpose or a general purpose digital signal processor.
- the processor 2104 is connected to a communication infrastructure 2106 (for example, a bus or network).
- Various software implementations are described in terms of this exemplary computer system. After reading this description, it will become apparent to a person skilled in the relevant art how to implement the invention using other computer systems and/or computer architectures.
- Computer system 2100 also includes a main memory 2108, preferably random access memory (RAM), and may also include a secondary memory 2110.
- the secondary memory 2110 may include, for example, a hard disk drive 2112 and/or a removable storage drive 2114, representing a floppy disk drive, a magnetic tape drive, an optical disk drive, etc.
- the removable storage drive 2114 reads from and/or writes to a removable storage unit 2118 in a well known manner.
- Removable storage unit 2118 represents a floppy disk, magnetic tape, optical disk, etc. which is read by and written to by removable storage drive 2114.
- the removable storage unit 2118 includes a computer usable storage medium having stored therein computer software and/or data.
- secondary memory 2110 may include other similar means for allowing computer programs or other instructions to be loaded into computer system 2100.
- Such means may include, for example, a removable storage unit 2122 and an interface 2120.
- Examples of such means may include a program cartridge and cartridge interface (such as that found in video game devices), a removable memory chip (such as an EPROM, or PROM) and associated socket, and other removable storage units 2122 and interfaces 2120 which allow software and data to be transferred from the removable storage unit 2122 to computer system 2100.
- Computer system 2100 may also include a communications interface 2124.
- Communications interface 2124 allows software and data to be transferred between computer system 2100 and external devices. Examples of communications interface 2124 may include a modem, a network interface (such as an Ethernet card), a communications port, a PCMCIA slot and card, etc.
- Software and data transferred via communications interface 2124 are in the form of signals 2128 which may be electronic, electromagnetic, optical or other signals capable of being received by communications interface 2124. These signals 2128 are provided to communications interface 2124 via a communications path 2126.
- Communications path 2126 carries signals 2128 and may be implemented using wire or cable, fiber optics, a phone line, a cellular phone link, an RF link and other communications channels.
- signals that may be transferred over interface 2124 include: signals and/or parameters to be coded and/or decoded such as speech and/or audio signals; signals to be quantized and/or inverse quantized, such as speech and/or audio signals, LPC parameters, pitch prediction parameters, and quantized versions of the signals/parameters and indices identifying same; any signals/parameters resulting from the encoding, decoding, quantization, and inverse quantization processes described herein.
- computer program medium and “computer usable medium” are used to generally refer to media such as removable storage drive 2114, a hard disk installed in hard disk drive 2112, and signals 2128. These computer program products are means for providing software to computer system 2100.
- Computer programs are stored in main memory 2108 and/or secondary memory 2110. Also, quantizer (and sub-quantizer) and inverse quantizer (and inverse sub-quantizer) codebooks, codevectors, sub-codevectors, and illegal space definitions used in the present invention may all be stored in the above-mentioned memories. Computer programs may also be received via communications interface 2124. Such computer programs, when executed, enable the computer system 2100 to implement the present invention as discussed herein. In particular, the computer programs, when executed, enable the processor 2104 to implement the processes of the present invention, such as the methods implemented using either quantizer or inverse quantizer structures, such as the methods illustrated in FIGs. 6A-14 , and 17A-18D , for example.
- Such computer programs represent controllers of the computer system 2100.
- the processes/methods performed by signal processing blocks of quantizers and/or inverse quantizers can be performed by computer control logic.
- the software may be stored in a computer program product and loaded into computer system 2100 using removable storage drive 2114, hard drive 2112 or communications interface 2124.
- features of the invention are implemented primarily in hardware using, for example, hardware components such as Application Specific Integrated Circuits (ASICs) and gate arrays.
- ASICs Application Specific Integrated Circuits
- gate arrays gate arrays.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Human Computer Interaction (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Transmission Systems Not Characterized By The Medium Used For Transmission (AREA)
- Image Analysis (AREA)
Claims (7)
- Procédé de recherche d'un livre de code signé pour quantifier un vecteur d'entrée représentant une portion d'un signal qui concerne un signal vocal ou audio, et étant représentatif d'une portion d'un signal d'entrée, le livre de code signé comprenant un jeu de vecteurs de code de forme, chaque vecteur de code de forme étant associé à un vecteur de code de signe positif et un vecteur de code de signe négatif, comprenant les étapes consistant à :(a) pondérer un vecteur de code de forme dans le jeu de vecteurs de code de forme avec une fonction de pondération pour un critère d'erreur quadratique moyenne pondérée, dit critère WMSE (Weighted Mean Square Error), pour produire un vecteur de code de forme pondéré, dans lequel le critère WMSE est exprimé sous la forme de :
où k est un indice de vecteur et w(k) est la fonction de pondération, et dans lequel w(k) pondère des zones de grande énergie de l'enveloppe spectrale dudit signal plus fortes que des zones de faible énergie ;(b) corréler le vecteur de code de forme pondéré avec le vecteur d'entrée pour produire un terme de corrélation pondéré ;(c) déterminer l'un des vecteurs de code de signe positif et de signe négatif préféré associé au vecteur de code de forme, sur la base d'un signe du terme de corrélation pondéré ;(d) déterminer un terme de minimisation correspondant au vecteur de code de signe préféré ;(e) transformer le vecteur de code de signe préféré en un vecteur de code transformé qui correspond au vecteur de code de signe préféré ;(f) déterminer si le vecteur de code transformé n'appartient pas à un espace illégal définissant des vecteurs illégaux ;(g) déclarer le vecteur de code transformé légal lorsque le vecteur de code transformé n'appartient pas à l'espace illégal ;(h) effectuer les étapes (a) à (g) pour chaque vecteur de code de forme dans le jeu de vecteurs de code de forme ; et(i) déterminer, sur la base des termes de minimisation, un meilleur vecteur de code signé parmi les vecteurs de code de signe préférés correspondant aux vecteurs transformés respectifs qui sont déclarés légaux,dans lequel l'espace illégal est dans le domaine des fréquences spectrales de ligne, dites fréquences LSF, associé au signal vocal ou audio ; et
le vecteur de code transformé comprend des fréquences LSF. - Procédé selon la revendication 1, comprenant en outre les étapes consistant à :(c1) dériver un premier terme de minimisation correspondant au vecteur de code positif associé au vecteur de code de forme lorsqu'un signe du terme de corrélation pondéré est une première valeur ; et(d1) dériver un deuxième terme de minimisation correspondant au vecteur de code négatif associé au vecteur de code de forme lorsqu'un signe du terme de corrélation pondéré est une deuxième valeur.
- Procédé selon la revendication 2, comprenant en outre les étapes consistant à :- déterminer si le vecteur de code positif appartient à un espace illégal représentant des vecteurs illégaux lorsque le terme de corrélation pondéré est la première valeur ; et- déterminer si le vecteur de code négatif appartient à l'espace illégal représentant des vecteurs illégaux lorsque le terme de corrélation pondéré est la deuxième valeur.
- Procédé selon la revendication 1, dans lequel la recherche est effectuée dans un sous-quantificateur, et dans lequel les vecteurs de code de signe positif et de signe négatif représentent des sous-vecteurs de code associés au sous-quantificateur.
- Produit de programme d'ordinateur, dit CPP, comprenant un support utilisable par ordinateur ayant des moyens de code de programme lisible par ordinateur, dits moyens CRPC, intégrés au support pour amener un programme d'application lorsqu'il est exécuté sur un processeur d'ordinateur à effectuer la recherche d'un livre de code signé pour quantifier un vecteur d'entrée représentant une portion d'un signal qui concerne un signal vocal ou audio, et étant représentatif d'une portion d'un signal d'entrée, le livre de code signé comprenant un jeu de vecteurs de code de forme, chaque vecteur de code de forme étant associé à un vecteur de code de signe positif et un vecteur de code de signe négatif, les moyens CRPC comprenant :des premiers moyens CRPC pour amener le processeur à pondérer un vecteur de code de forme dans le jeu de vecteurs de code de forme avec une fonction de pondération pour un critère d'erreur quadratique moyenne pondérée, dit critère WMSE (Weighted Mean Square Error), pour produire un vecteur de code de forme pondéré, dans lequel le critère WMSE est exprimé sous la forme de :où k est un indice de vecteur et w(k) est la fonction de pondération, et dans lequel w(k) pondère des zones de grande énergie de l'enveloppe spectrale dudit signal plus fortes que des zones de faible énergie ;des deuxièmes moyens CRPC pour amener le processeur à corréler le vecteur de code de forme pondéré avec le vecteur d'entrée pour produire un terme de corrélation pondéré ;des troisièmes moyens CRPC pour amener le processeur à déterminer, sur la base d'un signe du terme de corrélation pondéré, l'un des vecteurs de code de signe positif et de signe négatif préféré associé au vecteur de code de forme ;des quatrièmes moyens CRPC pour amener le processeur à déterminer un terme de minimisation correspondant au vecteur de code de signe préféré ;des cinquièmes moyens CRPC pour amener le processeur à transformer le vecteur de code de signe préféré en un vecteur de code transformé qui correspond au vecteur de code de signe préféré ;des sixièmes moyens CRPC pour amener le processeur à déterminer si le vecteur de code transformé n'appartient pas à un espace illégal définissant des vecteurs illégaux ; etdes septièmes moyens CRPC pour amener le processeur à déclarer le vecteur de code transformé légal lorsque le vecteur de code transformé n'appartient pas à l'espace illégal ;dans lequel les premiers aux septièmes moyens CRPC effectuent leurs fonctions respectives pour chaque vecteur de code de forme dans le jeu de vecteurs de code de forme, le CPP comprenant en outre :des huitièmes moyens CRPC pour amener le processeur à déterminer, sur la base des termes de minimisation, un meilleur vecteur de code signé parmi les vecteurs de code de signe préférés correspondant aux vecteurs transformés respectifs qui sont déclarés légaux, et dans lequel :l'espace illégal est dans le domaine des fréquences spectrales de ligne, dites fréquences LSF, associé au signal vocal ou audio ; etle vecteur de code transformé comprend des fréquences LSF.
- Codeur de signal comprenant des moyens aptes à effectuer chaque étape du procédé selon les revendications 1 à 4.
- Programme d'ordinateur comprenant un code pour amener un dispositif programmable à effectuer chaque étape du procédé selon l'une quelconque des revendications 1 à 4, lorsque le programme d'ordinateur est exécuté sur le dispositif programmable.
Applications Claiming Priority (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US31254301P | 2001-08-16 | 2001-08-16 | |
US312543P | 2001-08-16 | ||
US163995 | 2002-06-07 | ||
US10/163,344 US7610198B2 (en) | 2001-08-16 | 2002-06-07 | Robust quantization with efficient WMSE search of a sign-shape codebook using illegal space |
US163344 | 2002-06-07 | ||
US10/163,995 US7647223B2 (en) | 2001-08-16 | 2002-06-07 | Robust composite quantization with sub-quantizers and inverse sub-quantizers using illegal space |
US10/163,378 US7617096B2 (en) | 2001-08-16 | 2002-06-07 | Robust quantization and inverse quantization using illegal space |
US163378 | 2002-06-07 |
Publications (3)
Publication Number | Publication Date |
---|---|
EP1293967A2 EP1293967A2 (fr) | 2003-03-19 |
EP1293967A3 EP1293967A3 (fr) | 2004-08-25 |
EP1293967B1 true EP1293967B1 (fr) | 2008-11-05 |
Family
ID=27496557
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP02255722A Expired - Lifetime EP1293966B1 (fr) | 2001-08-16 | 2002-08-16 | Quantisation avec des sous-quantificateurs utilisant des codes invalides |
EP02255723A Expired - Lifetime EP1293967B1 (fr) | 2001-08-16 | 2002-08-16 | Quantisation robuste avec recherche WMSE d'une table de codes indice-forme utilisant un espace illégal |
EP02255719A Expired - Lifetime EP1293965B1 (fr) | 2001-08-16 | 2002-08-16 | Quantisation et quantisation inverse utilisant des codes invalides |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP02255722A Expired - Lifetime EP1293966B1 (fr) | 2001-08-16 | 2002-08-16 | Quantisation avec des sous-quantificateurs utilisant des codes invalides |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP02255719A Expired - Lifetime EP1293965B1 (fr) | 2001-08-16 | 2002-08-16 | Quantisation et quantisation inverse utilisant des codes invalides |
Country Status (2)
Country | Link |
---|---|
EP (3) | EP1293966B1 (fr) |
DE (3) | DE60227753D1 (fr) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5327520A (en) * | 1992-06-04 | 1994-07-05 | At&T Bell Laboratories | Method of use of voice message coder/decoder |
AU7960994A (en) * | 1993-10-08 | 1995-05-04 | Comsat Corporation | Improved low bit rate vocoders and methods of operation therefor |
-
2002
- 2002-08-16 DE DE60227753T patent/DE60227753D1/de not_active Expired - Lifetime
- 2002-08-16 DE DE60234561T patent/DE60234561D1/de not_active Expired - Lifetime
- 2002-08-16 EP EP02255722A patent/EP1293966B1/fr not_active Expired - Lifetime
- 2002-08-16 EP EP02255723A patent/EP1293967B1/fr not_active Expired - Lifetime
- 2002-08-16 DE DE60229702T patent/DE60229702D1/de not_active Expired - Lifetime
- 2002-08-16 EP EP02255719A patent/EP1293965B1/fr not_active Expired - Lifetime
Non-Patent Citations (1)
Title |
---|
ATAL; SCHROEDER: "Predictive Coding of Speech Signals and Subjective Error Criteria", IEEE TRANSACTIONS ON ACOUSTICS, SPEECH AND SIGNAL PROCESSING, IEEE INC., NEW YORK, US * |
Also Published As
Publication number | Publication date |
---|---|
EP1293965A3 (fr) | 2004-08-18 |
EP1293967A2 (fr) | 2003-03-19 |
EP1293965B1 (fr) | 2009-12-02 |
DE60229702D1 (de) | 2008-12-18 |
DE60234561D1 (de) | 2010-01-14 |
EP1293966B1 (fr) | 2008-07-23 |
DE60227753D1 (de) | 2008-09-04 |
EP1293966A2 (fr) | 2003-03-19 |
EP1293967A3 (fr) | 2004-08-25 |
EP1293965A2 (fr) | 2003-03-19 |
EP1293966A3 (fr) | 2004-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1576585B1 (fr) | Procede et dispositif pour une quantification fiable d'un vecteur de prediction de parametres de prediction lineaire dans un codage vocal a debit binaire variable | |
EP0747882B1 (fr) | Modification du délai de fréquence fondamentale en cas de perte des paquets de données | |
EP0673017B1 (fr) | Synthèse de signal d'excitation en cas d'effacement des trames ou de perte des paquets de données | |
RU2389085C2 (ru) | Способы и устройства для введения низкочастотных предыскажений в ходе сжатия звука на основе acelp/tcx | |
EP0747883B1 (fr) | Classification voisé/non voisé de parole utilisée pour décoder la parole en cas de pertes de paquets de données | |
EP0673018B1 (fr) | Génération des coefficients de prédiction linéaire en cas d'effacement des trames de données ou de perte des paquets de données | |
US5339384A (en) | Code-excited linear predictive coding with low delay for speech or audio signals | |
US20070147518A1 (en) | Methods and devices for low-frequency emphasis during audio compression based on ACELP/TCX | |
US7617096B2 (en) | Robust quantization and inverse quantization using illegal space | |
US7610198B2 (en) | Robust quantization with efficient WMSE search of a sign-shape codebook using illegal space | |
RU2741518C1 (ru) | Кодирование и декодирование аудиосигналов | |
EP0673015B1 (fr) | Réduction de la complexitée de calcul en cas d'effacement des trames de données ou de perte des paquets de données | |
US5754733A (en) | Method and apparatus for generating and encoding line spectral square roots | |
US7647223B2 (en) | Robust composite quantization with sub-quantizers and inverse sub-quantizers using illegal space | |
EP0747884B1 (fr) | Atténuation de gain de dictionnaire en cas de pertes des paquets de données | |
EP0950238B1 (fr) | Systeme de codage et decodage de parole | |
US5704001A (en) | Sensitivity weighted vector quantization of line spectral pair frequencies | |
EP1293967B1 (fr) | Quantisation robuste avec recherche WMSE d'une table de codes indice-forme utilisant un espace illégal | |
AU702506C (en) | Method and apparatus for generating and encoding line spectral square roots |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
AK | Designated contracting states |
Kind code of ref document: A2 Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR IE IT LI LU MC NL PT SE SK TR |
|
AX | Request for extension of the european patent |
Extension state: AL LT LV MK RO SI |
|
PUAL | Search report despatched |
Free format text: ORIGINAL CODE: 0009013 |
|
AK | Designated contracting states |
Kind code of ref document: A3 Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR IE IT LI LU MC NL PT SE SK TR |
|
AX | Request for extension of the european patent |
Extension state: AL LT LV MK RO SI |
|
17P | Request for examination filed |
Effective date: 20050225 |
|
AKX | Designation fees paid |
Designated state(s): DE FR GB |
|
17Q | First examination report despatched |
Effective date: 20050524 |
|
RBV | Designated contracting states (corrected) |
Designated state(s): DE FR GB |
|
RAP1 | Party data changed (applicant data changed or rights of an application transferred) |
Owner name: BROADCOM CORPORATION |
|
GRAP | Despatch of communication of intention to grant a patent |
Free format text: ORIGINAL CODE: EPIDOSNIGR1 |
|
RTI1 | Title (correction) |
Free format text: ROBUST QUANTIZATION WITH EFFICIENT WMSE SEARCH OF A SIGN-SHAPE CODEBOOK USING ILLEGAL SPACE |
|
GRAS | Grant fee paid |
Free format text: ORIGINAL CODE: EPIDOSNIGR3 |
|
GRAA | (expected) grant |
Free format text: ORIGINAL CODE: 0009210 |
|
AK | Designated contracting states |
Kind code of ref document: B1 Designated state(s): DE FR GB |
|
REG | Reference to a national code |
Ref country code: GB Ref legal event code: FG4D |
|
REF | Corresponds to: |
Ref document number: 60229702 Country of ref document: DE Date of ref document: 20081218 Kind code of ref document: P |
|
PLBE | No opposition filed within time limit |
Free format text: ORIGINAL CODE: 0009261 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT |
|
26N | No opposition filed |
Effective date: 20090806 |
|
REG | Reference to a national code |
Ref country code: FR Ref legal event code: ST Effective date: 20100430 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: FR Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20090831 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: DE Payment date: 20130831 Year of fee payment: 12 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: GB Payment date: 20130823 Year of fee payment: 12 |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R119 Ref document number: 60229702 Country of ref document: DE |
|
GBPC | Gb: european patent ceased through non-payment of renewal fee |
Effective date: 20140816 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: GB Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20140816 Ref country code: DE Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20150303 |