Patent Description:
When handling audio signals, such as speech signals, at an encoder of a transmitting unit, the audio signals are represented digitally in a compressed form using for example Linear Predictive Coding, LPC. As LPC coefficients are sensitive to distortions, which may occur to a signal transmitted in a communication network from a transmitting unit to a receiving unit, the LPC coefficients might be transformed to envelope representation coefficients at the encoder. Further, the envelope representation coefficients may be compressed, i.e. coded, in order to save bandwidth over the communication interface between the transmitting unit and the receiving unit. <CIT> discloses an encoder of a communication system for handling input envelope representation coefficients.

A further use of the spectral envelope is to apply a mean removed normalized frequency envelope to scale a frequency domain signal prior to quantization, based on a quantized spectral envelope in order to control the frequency location and magnitude of the spectral line quantization errors introduced in the spectral line quantization for those frequency locations. The mean removed normalized frequency envelope may be represented as a vector of scale factors.

LSF coefficients provide a compact representation of a spectral envelope, especially suited for speech signals. LSF coefficients are used in speech and audio coders to represent and transmit the envelope of the signal to be coded. The LSFs are a representation typically based on linear prediction. The LSFs comprise an ordered set of angles in the range from <NUM> to pi, or equivalently a set of frequencies from <NUM> to Fs/<NUM>, where Fs is the sampling frequency of the time domain signal. The LSF coefficients can be quantized on the encoder side and are then sent to the decoder side. LSF coefficients are robust to quantization errors due to their ordering property. As a further benefit, the input LSF coefficient values are easily used to weigh the quantization error for each individual LSF coefficient, a weighing principle which coincides well with a wish to reduce the codec quantization error more in perceptually important frequency areas than in less important areas.

Legacy methods, such as AMR-WB (Adaptive Multi-Rate Wide Band), use a large stored codebook or several medium sized codebooks in several stages, such as Multistage Vector Quantizer (MSVQ) or Split MSVQ, for LSF, or Immittance Spectral Frequencies (ISF), quantization, and typically make an exhaustive search in codebooks that is computationally costly.

Alternatively, an algorithmic VQ can be used, e.g. in EVS (Enhanced Voice Service) a scaled D8+ lattice VQ is used which applies a shaped lattice to encode the LSF coefficients. The benefit of using a structured lattice VQ is that the search in codebooks may be simplified and the storage requirements for codebooks may be reduced, as the structured nature of algorithmic Lattice VQs can be used. Other examples of lattices are D8, RE8. In some EVS mode of operation, Trellis Coded Quantization, TCQ, is employed for LSF quantization. TCQ is also a structured algorithmic VQ.

There is an interest to achieve an efficient compression technique requiring low computational complexity at the encoder.

An object of embodiments herein is to provide efficient compression requiring low computational complexity at the encoder.

According to a first aspect there is presented a method performed by an audio encoder for handling input envelope representation coefficients. The method comprises applying a two-stage vector quantization (VQ), wherein the two-stage VQ comprises a first stage split VQ and a second stage pyramid vector quantization (PVQ), by quantizing the input envelope representation coefficients by applying the first stage split VQ to obtain quantized envelope representation coefficients and determining residual coefficients by subtracting quantized envelope representation coefficients from the input envelope representation coefficients. The method comprises transforming the residual coefficients obtain transformed residual coefficients. The method comprises quantizing the transformed envelope representation residual coefficients by applying the second stage PVQ, where at least one of a plurality of gain-shape coding schemes is applied on the transformed residual coefficients in order to achieve gain-shape coded residual coefficients, where the plurality of gain-shape coding schemes have mutually different trade-offs in one or more of gain resolution and shape resolution for one or more of the transformed residual coefficients. The method comprises providing the gain-shape coded residual coefficients and information on the at least one applied gain-shape coding scheme to a multiplexor to be multiplexed into a joint index for subsequent transmission to an audio decoder.

According to a second aspect there is presented an audio encoder for handling input envelope representation coefficients. The encoder is adapted to perform the method according to the first aspects.

Other objectives, features and advantages of the enclosed embodiments will be apparent from the following detailed disclosure, from the attached dependent embodiments as well as from the drawings.

Generally, all terms used in the enumerated embodiments are to be interpreted according to their ordinary meaning in the technical field, unless explicitly defined otherwise herein.

The inventive concept is now described, by way of example, with reference to the accompanying drawings.

This inventive concept may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein,
rather, these embodiments are provided by way of example so that this disclosure will be thorough and complete, and will fully convey the scope of the inventive concept to those skilled in the art.

The figures are schematic and simplified for clarity, and they merely show details for the understanding of the embodiments presented herein, while other details have been left out.

<FIG> shows a communication network <NUM> comprising a transmitting unit <NUM> and a receiving unit <NUM>. The transmitting unit <NUM> is operatively connected to the receiving unit <NUM> via a communication channel <NUM>. The communication channel <NUM> may be a direct connection or an indirect connection via one or more routers or switches. The communication channel <NUM> may be through a wireline connection, e.g. via one or more optical cables or metallic cables, or through a wireless connection, e.g. a direct wireless connection or a connection via a wireless network comprising more than one link. The transmitting unit <NUM> comprises an encoder <NUM>. The receiving unit <NUM> comprises a decoder <NUM>.

<FIG> depicts an exemplary wireless communications network <NUM> in which embodiments herein may be implemented. The wireless communications network <NUM> may be a wireless communications network such as an LTE (Long Term Evolution), LTE-Advanced, Next Evolution, WCDMA (Wideband Code Division Multiple Access), GSM/EDGE (Global System for Mobile communications / Enhanced Data rates for GSM Evolution), UMTS (Universal Mobile Telecommunication System) or WiFi (Wireless Fidelity), or any other similar cellular network or system.

The wireless communications network <NUM> comprises a network node <NUM>. The network node <NUM> serves at least one cell <NUM>. The network node <NUM> may be a base station, a radio base station, a nodeB, an eNodeB, a Home Node B, a Home eNode B or any other network unit capable of communicating with a wireless device within the cell <NUM> served by the network node depending e.g. on the radio access technology and terminology used. The network node may also be a base station controller, a network controller, a relay node, a repeater, an access point, a radio access point, a Remote Radio Unit, RRU, or a Remote Radio Head, RRH.

In <FIG>, a wireless device <NUM> is located within the first cell <NUM>. The device <NUM> is configured to communicate within the wireless communications network <NUM> via the network node <NUM> over a radio link, also called wireless communication channel, when present in the cell <NUM> served by the network node <NUM>. The wireless device <NUM> may e.g. be any kind of wireless device such as a mobile phone, cellular phone, Personal Digital Assistants, PDA, a smart phone, tablet, sensor equipped with wireless communication abilities, Laptop Mounted Equipment, LME, e.g. USB, Laptop Embedded Equipment, LEE, Machine Type Communication, MTC, device, Machine to Machine, M2M, device, cordless phone, e.g. DECT (Digital Enhanced Cordless Telecommunications) phone, or Customer Premises Equipment, CPEs, etc. In embodiments herein, the mentioned encoder <NUM> may be situated in the network node <NUM> and the mentioned decoder <NUM> may be situated in the wireless device <NUM>, or the encoder <NUM> may be situated in the wireless device <NUM> and the decoder <NUM> may be situated in the network node <NUM>.

Embodiments described herein may also be implemented in a short-range radio wireless communication network such as a Bluetooth based network. In a short-range radio wireless communication network communication may be performed between different short-range radio communication enabled communication devices, which may have a relation such as the relation between an access point/base station and a wireless device. However, the short-range radio enabled communication devices may also be two wireless devices communicating directly with each other, leaving the cellular network discussion of <FIG> obsolete. <FIG> shows an exemplary communication network <NUM> comprising a first and a second short-range radio enabled communication devices <NUM>, <NUM> that communicate directly with each other via a short-range radio communication channel. In embodiments described herein, the mentioned encoder <NUM> may be situated in the first short-range radio enabled communication device <NUM> and the mentioned decoder <NUM> may be situated in the second short-range radio enabled communication device <NUM>, or vice versa. Naturally both communication devices comprise an encoder as well as a decoder to enable two-way communication.

Alternatively, the communication network may be a wireline communication network.

As part of the developing of the embodiments described herein, a problem will first be identified and discussed.

When transmitting envelope representation coefficients from a transmitting unit comprising an encoder to a receiving unit comprising a decoder there is an interest to achieve a better compression technique, requiring low bandwidth for transmitting the signal and low computational complexity at the encoder and the decoder.

According to one embodiment, such a problem may be solved by a method performed by an encoder of a communication system for handling input envelope representation coefficients as presented above.

<FIG> is an illustrated example of actions or operations that may be taken or performed by an encoder, or by a transmitting unit comprising the encoder. In the disclosure, the "encoder" may correspond to "a transmitting unit comprising an encoder". The method of the example shown in <FIG> may comprise one or more of the following actions:.

According to one embodiment, such a problem may be solved by a method performed by an decoder of a communication system for handling envelope representation residual coefficients as presented above.

<FIG> is an illustrated example of actions or operations that may be taken or performed by a decoder, or by a receiving unit comprising the decoder. In the disclosure, the "decoder" may correspond to "a receiving unit comprising a decoder". The method of the example shown in <FIG> may comprise one or more of the following actions:.

According to some embodiments, the encoder performs the following actions:
The encoder applies a low bit rate first stage quantizer to the mean removed envelope representation coefficients, resulting in envelope representation residual coefficients. A lower bitrate requires smaller storage than a bitrate that is higher than the low bitrate. The mean removed envelope representation coefficients are input envelope representation coefficients with the mean value removed.

The encoder transforms the envelope representation residual coefficients to a warped domain e. g applying Hadamard transform, Rotated DCT transform, or DCT transform.

The encoder selectively applies at least one of a plurality of submode gain-shape coding schemes of the transformed envelope representation residual coefficients, where the submode schemes have different trade-offs in gain resolution and/or resolution for the shape of the coefficients (i.e. across the transformed envelope representation residual coefficients).

The gain-shape submodes may use different resolution (in bits/coefficient) for different subsets. Examples of subsets {A/B}: {even+last}/{odd-last} Hadamard coefficients, DCT{<NUM>-<NUM>} and DCT{<NUM>-<NUM>}. An outlier mode may have one single full set of all the coefficients in the residual, whereas the regular mode may have several, or restricted, subsets, covering different dimensions with differing resolutions (bits/coefficient).

In some examples, the submode scheme selection is made by a combination of low complex Pyramid Vector Quantizer-, PVQ-projection and shape fine search selection followed by an optional global mean square error, MSE, optimization. The MSE optimization is global in the sense that both gain and shape and all submodes are evaluated. This saves average complexity. The action results in a submode index and possibly a gain codeword, and shape code word(s) for the selected submode. The selectively applying may be realized by searching an initial outlier submode and subsequently a non-outlier mode.

In some examples the gain-shape sub-mode selection is made by a combination of low complex Pyramid VQ (PVQ) shape fine search selection and then an optional global (mean square error) MSE optimization(global in the sense that both gain and shape and all submodes are evaluated). This saves average complexity and results in a shape-gain submode index j and possibly a gain codeword i , and shape code word(s) for the selected shape-gain submode j.

In some examples the encoder searches an initial outlier submode and eventually a non-outlier mode.

In some examples the encoder sends first stage VQ codewords over the channel to the decoder.

In some examples the encoder sends high level submode-information over the channel to the decoder.

In some examples the encoder combines gain codeword(s) with the shape index and send these over the channel to the decoder, if required by the selected gain-shape submode j.

In some examples the shape PVQ codeword(s) are indexed, optionally combined with a part of the gain codeword and/or a part of the submode index by the encoder, and sent by the encoder over the channel to the decoder.

By one or more of the embodiments of the invention one or more of the following advantages may be achieved:
Very low complexity can be achieved.

The application of a structured (energy compacting) transform allows for a strongly reduced first stage VQ. For example, the first stage VQ may be reduced to <NUM>% of its original codebook size decreasing both Table ROM (Read Only Memory) and first stage search complexity. from R=<NUM> bits/coefficient to R=<NUM> bits per coefficient. with dimensions <NUM> the bit rate can be dropped from <NUM>*. <NUM>=<NUM> bits to <NUM>*. <NUM>=<NUM> bits, which corresponds to a drop from <NUM> vectors to <NUM> vectors of dimension <NUM>.

The structured PVQ based sub-modes may be searched with an extended (low complex) linear search, even though there are several gain-shape combination sub-modes for the envelope representation coefficients available.

The structured PVQ based sub-modes may be optimized to handle both outliers, where outliers are the envelope representation residual coefficients with an atypical high and low energy, and also handle non-outlier target vectors with sufficient resolution.

In the following, an embodiment is presented. The proposed method requires as input a vector of envelope representation coefficients.

<FIG> depicts an example of a time domain signal s(t). The example shown is <NUM> of a <NUM> sampled signal. In general terms, the time signal s(t) is transformed into a frequency domain signal using the known MDCT transform, where component n of the frequency domain signal is denoted c(n) and is determined according to: c(n) = MDCT(s(t)). <FIG> shows the spectral coefficients c(n) (also known as spectral lines) obtained for the time signal in <FIG>.

In some aspects the time signal is an audio signal, such as a speech signal. An analysis window might be applied before the MDCT, see e.g. MDCT application and definition in ITU-T G. <NUM> encoder. The spectral coefficients c(n) for n=<NUM>. (Ncoded -<NUM>), where Ncoded may be e.g. <NUM> coefficients from the encoder side MDCT, are in this embodiment grouped into Nbands=<NUM> uniform bands of length Lbands = Ncoded/<NUM>. The band sizes could alternatively be logarithmic or semi- logarithmic band sizes (as in aforementioned document ITU-T G. The obtained logarithmic spectral band energies enLog(band) are normalized into a vector of target scale factors scf(band) by removing the mean of all enLog(band) values: <MAT> <MAT>.

These target scale factors scf(band) for band=<NUM>. <NUM> now represents an approximation of the mean level normalized Root Mean Square (RMS) shape for the spectral envelope of the original time domain input signal s(t). <FIG> shows the logarithmic spectral band energies enLog(band) as obtained from the spectral coefficients c(n) according to Equation (<NUM>). <FIG> shows the scale factors scf(n) as obtained from the logarithmic spectral band energies enLog(band) according to Equation (<NUM>).

The target scale factors scf(n) as obtained according the above are quantized using a two-stage vector quantizer employing a total of <NUM> bits (R = <NUM> bits/coefficient). The first stage is a <NUM> bit split VQ and the second stage is a low complex algorithmic Pyramid VQ (PVQ). To maintain low overall VQ complexity the Pyramid VQ is analyzed in a gain/shape fashion in a transformed domain, enabling an efficient shape only search, followed by a low complex total MSE evaluation in a combined gain and shape determination step. The presented VQ-scheme can typically be realized in the range of <NUM>-<NUM> bits without any drastic increase in complexity with increased bit rate.

<FIG> schematically illustrates functional modules of an encoder employing the above disclosed stage <NUM> and stage <NUM> VQ. A complementary representation of this encoder is shown in <FIG>.

The first stage is a split VQ employing two off-line trained stochastic codebooks LFCB and HFCB. Each codebook row has dimension <NUM> and the number of codebook columns is limited to <NUM>, requiring <NUM> bits for each split for transmission. The MSE distortions for the two codebooks are defined as follows: <MAT> <MAT>.

The best index for the low frequency split is found (module <NUM>; SCF VQ-stage <NUM> short/low complexity search) according to: <MAT>.

The best index for the high frequency split is found (module <NUM>; SCF VQ-stage <NUM> short/low complexity search) according to: <MAT>.

The first stage vector is composed as: <MAT> <MAT>.

The first stage residual signal is calculated (module <NUM>) as: <MAT>.

Reference is made to <FIG> illustrating an example embodiment of a stage <NUM> shape search flow with actions <NUM>-<NUM>:.

The corresponding modules in <FIG> are module <NUM>(overall direction), module <NUM> (outlier shapes), module <NUM> (regular shapes), where module <NUM> implements actions <NUM> through <NUM>, and module <NUM> implements to actions <NUM> and <NUM>, (however action <NUM> is run first with j=<NUM> and then with j=<NUM>, and then the normalization action <NUM> is run for each j) as module <NUM> results in two outlier vectors).

On a high level the overall mean square error that is minimized(<NUM>) by the second stage is: <MAT> where GgainInd,shapeInd is a scalar value, D is a16-by-<NUM> rotation matrix and xq,shape is a unit energy normalized vector of length <NUM>. The shapeInd, gainInd, unitShapeIdxs indices results in a total of <NUM><NUM> possible gain-shape combinations, the target of the second stage search is to find the set of indices that results in a minimum dMSE distortion value. In <FIG> this overall gain-shape MSE minimization and analysis is implemented by the normalized shape selector module <NUM>, the adjustment gain application module <NUM>, the subtraction module <NUM> and the MSE minimization module <NUM>. The MSE minimization module <NUM> as depicted in <FIG> may also include varying the shapes yj, (a unit energy normalized yj, would be xq,shape,). This general error minimization loop indicated in <FIG> and by Equation <NUM> indicates that the MSE error is evaluated in the original scale factor domain, however given that the implemented analysis transform and synthesis transform is of high enough numerical precision the gain-shape MSE optimization may preferably be made in the transformed scale factor domain (See Equation <NUM>, <FIG>) to save encoder side processing complexity.

The second stage employs a <NUM>-dimensional DCT-rotation using a <NUM>-by-<NUM> matrix D. The matrix D has been determined off-line for efficient scale factor quantization, it has the property that DT·D = I, where I is the identity matrix. To reduce the encoder side search complexity the reverse (i.e., analysis) transform D (i.e. DCT) may be used prior to the shape and gain determination, while on the decoder side only the forward(synthesis) transform DT (i.e. IDCT) is required. The coefficients of the full D rotation matrix are listed below. It should be noted that the conventional DCT() and IDCT() functions could be used to realize these transformations. Possible alternatives that also are able to handle a mean value component in the residual signal, are to use e. g the Hadamard transform with very low processing and storage requirements or even a trained Rotation Matrix. In <FIG> the move of a candidate signal from the transformed scale factor domain to the original scale factor domain is implemented by the synthesis transform module <NUM>. <FIG> shows how the MSE-shape and gain search is preferably moved to the transformed domain by the analysis transform in module <NUM>, this is also explicitly shown in Equation <NUM>.

There are four different <NUM>-dimensional unit energy normalized shape candidates evaluated, where the normalization is always performed over <NUM> coefficients. The pulse configurations for two sets (denoted A and B) of scale factors for each candidate shape index(j) are given in Table <NUM>.

Shape index j=<NUM> pulse configuration is a hybrid PVQ shape configuration, with KA=<NUM> over Na=<NUM> scale factors and Ka=<NUM> over the remaining NB=<NUM> scale factors. For shape index <NUM>, it the two sets of unit pulses are unit energy normalized over the full target dimension N=NA+NB=<NUM>, even though the PVQ integer pulse and sign enumeration is performed separately for each scale factor set.

The shape search target preparation consists of a 16x16 dimensional matrix analysis rotation (a DCT implemented using matrix D) as follows: <MAT>.

The goal of a generic PVQ(N, K) shape search procedure is to find the best normalized vector xq(n). In vector notation, xq(n) is defined as: <MAT> where y = yN. K belongs to PVQ(N, K) and is a deterministic point on the surface of an N-dimensional hyper-pyramid, the L1 norm of yN,K is K. In other words, yN. K is the selected integer shape code vector of size N according to: <MAT> I. xq is the unit energy normalized integer vector y, a deterministic point on the unit energy hypersphere. The best integer y vector is the one minimizing the mean squared shape error between the second stage target vector t2rot(n) = x(n) and the normalized quantized output vector xq. The shape search is achieved by minimizing the following
distortion: <MAT>.

Equivalently, by squaring numerator and denominator, by maximizing the quotient QPVQ-shape: <MAT> where corrxy is the correlation between vector x and vector y. In the search of the optimal PVQ vector shape y(n) with L1-norm K, iterative updates of the QPVQ. -shape variables for each unit pulse position candidate nc, may be made in the all positive "quadrant" in N-dimensional space according to: <MAT> <MAT> where corrxy(k-<NUM>) signifies the correlation achieved so far by placing the previous k-<NUM> unit pulses, and energyy(k-<NUM>) signifies the accumulated energy achieved so far by placing the previous k-<NUM> unit pulses, and y(k-<NUM>, nc) signifies the amplitude of y at position nc from the previous placement of a total of k-<NUM> unit pulses: <MAT>.

The best position nbest for the k'th unit pulse, is iteratively updated by increasing nc from <NUM> to N-<NUM>: <MAT>.

To avoid division operations (which might be especially important in fixed point arithmetic) the QPVQ-shape maximization update decision may be performed using a cross-multiplication of a saved best squared correlation numerator bestCorrSq so far and the saved best energy denominator bestEn so far: <MAT>.

The iterative maximization of QPVQ-shape(k, nc) may start from a zero number of initially placed unit pulses (ystart(n) = <NUM>, for n=<NUM>. <NUM>) or alternatively from a low cost pre-placement number of unit pulses based on an projection to a integer valued point below the K'th-pyramid's surface, with a guaranteed undershoot of unit pulses in the target L1 norm K. Such a projection may be made as follows: <MAT> <MAT>.

A projection to K (on the PVQ(N,K) pyramids surface) might also be used. It numerical precision issues result in a point above the pyramids surface, a new valid projection at or below the surface needs to be performed, or alternatively unit pulses are removed until the surface of the pyramid is reached.

For shape j=<NUM>, the set B positions only contain one single non-stacked unit pulse with a fixed energy contribution. This means that the search for the single pulse in set B may be simplified to search only for the maximum absolute value in the six set B locations.

Four signed integer pulse configurations vectors yj are established by using distortion measure dPVQ-shape and then their corresponding unit energy shape vectors xq,j are computed according to Equation (<NUM>). As each total pulse configuration yj always spans <NUM> coefficients, the energy normalization is always performed over dimension <NUM>, even though two shorter sets are used for enumeration of the y<NUM> integer vector.

An efficient overall unit pulse search (for all four shape candidates) may be achieved by searching the shapes in the order from shape j=<NUM> to shape j=<NUM>, by making a first projection to a point on or below the pyramid K=<NUM>, and then sequentially add unit pulses and save intermediate shape results until K is correct for each of the shape candidates with a higher number of unit pulses K. Note that as the regular set A shapes j=<NUM>,<NUM> spans over different allowed scale factor regions than the two outlier shapes (j=<NUM>, <NUM> ), the search start pulse configuration for the two regular shapes is handled by removing any unit pulses which are not possible to index in the regular shape sets A (for j=<NUM>,<NUM>). As the pulse search is performed in the all positive orthant, a final step of setting the signs of the non-zero entries in yj(n) based on the corresponding sign of the target vector x(n) is performed.

An example of a search procedure corresponding to the above PVQ search strategy for the described PVQ based shapes is summarized in Table <NUM>.

An example of potentially available integer vectors yj and unit energy normalized vectors xq,j, after the PVQ search are summarized in Table <NUM>.

There are four different adjustment gain candidate sets, one set corresponding to each overall shape candidate j. The adjustment gain configuration for each of the shapes are given in Table <NUM>.

The best possible shape and gain is determined among the possible shape candidates and each corresponding gain set. To minimize complexity the MSE versus the target may be evaluated in the rotated domain, i.e. the same domain as the shape search was performed in: <MAT>.

Out of the total <NUM>(<NUM>+<NUM>+<NUM>+<NUM>) possible gain-shape combinations, the shape_index(=j) and adjustment gain index gain_index(=i) that results in the minimum MSE are selected for subsequent enumeration and multiplexing: <MAT>.

The pulse configuration(s) of the selected shape are enumerated using an efficient scheme which separates each PVQ(N, K) pulse configuration into two short codewords; a leading sign index bit and an integer MPVQ-index codeword. The MPVQ-index bit-space is typically fractional (i.e. a non-power of <NUM> total number of pulse configurations). In <FIG> the enumeration of the selected integer vector yj into leading sign index bit LS_indA and MPVQ-index idxA (and additionally for shape j=<NUM>, into leading sign index bit LS_indB and MPVQ-index idxB) is implemented by the MPVQ-enumeration module <NUM>.

The largest sized MPVQ integer shape index (j=<NUM>, 'outlier_near' ) fits within a <NUM> bit unsigned word, enabling fast implementations of MPVQ enumeration and de-enumeration on platforms supporting unsigned integer arithmetic of <NUM> bits or higher.

The enumeration scheme uses an indexing offsets table A(n, k) which may be found as tabled unsigned integer values below. The offset values in A (dimension n, L1-norm k) are defined recursively as: <MAT> with initial conditions A(n, k=<NUM>) = <NUM> for n>=<NUM>, A(n=<NUM>, k) =<NUM> for k><NUM>.

The actual enumeration of a signed integer vector y (=vec_in) with an L1 norm of K(=k_val_in) over dimension N (=dim_in), into an MPVQ shape index index an and a leading sign index lead_sign_ind is shown in pseudo-code below:
<IMG>.

MPVQ enumeration calls for a selected shape (j) are summarized in Table <NUM>:.

The stage <NUM> indices are multiplexed in the following order: ind_LF (<NUM> bits) followed by ind_HF (<NUM> bits).

To efficiently use the available total bit space for the scale factor quantizer (<NUM> bits), in combination with the fractional sized MPVQ-indices, the shape index j, the second stage shape codewords and potentially an LSB of the gain codeword are jointly encoded. The overall parameter encoding order for the second stage multiplexing components is shown in Table <NUM>.

In the multiplexing of leading signs LeadSignA and/or LeadSignB, each leading sign is multiplexed as <NUM> if the leading sign is negative and multiplexed as a <NUM> if the leading sign is positive. Table <NUM> shows submode bit values, sizes of the various second stage MPVQ shape indices, and the adjustment gain separation sections for each shape index (j).

For a selected shape with shape index j=<NUM> and j=<NUM>, the selected gain index is sent without modification as index i, for gain value Gi,j , requiring <NUM> bit for j=<NUM> and <NUM> bits for j=<NUM>.

For a selected shape with shape index j=<NUM> and j=<NUM>, and a selected gain value Gi,j with gain index i , the MSB part of the gain index is first sent by a removal of the LSBgain bit. iMSBs = i>><NUM>; LSBgain = i&0x1; The multiplexing of iMSBs will require <NUM> bit for j=<NUM> and <NUM> bits for j=<NUM>. The LSBgain bit will be multiplexed into the joint index.

In <FIG> the joint index composition based on the selected shape j and the selected gain index i and the enumerated leading sign index bit LS_indA and MPVQ-index idxA (and for shape j=<NUM>, leading sign index bit LS_indB and MPVQ-index idxB) is performed by the joint index composition module <NUM>, and further the result of the joint composition is sent to the encoder multiplexor module <NUM> for subsequent transmission to the decoder.

Composition of the joint index for a selected shape index of j=<NUM> ('regular') is determined as: <MAT>.

Composition of the joint index for a selected shape index of j=<NUM> ('regular_lf') is determined as: <MAT>.

Composition of the joint index for a selected shape index of j=<NUM> ('outlier_near') is determined as: <MAT>.

Composition of the joint index for a selected shape index of j=<NUM> ('outlier_far') <MAT>.

The quantized first stage vector st1, the quantized second stage unit energy shape vector xq,j and the quantized adjustment gain Gi,j (with gain index i) are used to establish the quantized scale factor vector scfQ(n) as follows: <MAT> <MAT>.

In equation (<NUM>, the xq. j(n) · DT vector times matrix multiplication realizes the IDCT synthesis transform. Even though this (Equations <NUM> and <NUM>) quantized scale factor generation takes place on the encoder side, the corresponding steps are performed the same way in the decoder, see <FIG> modules <NUM>; SCF VQ-stage <NUM> contribution, <NUM>; Inverse warping/ transform, the adjustment gain in module <NUM>, and the addition in module <NUM>.

The quantized scale factor vector scfQ(n) is now used to scale/normalize the MDCT coefficients c(n) into cnorm(n) as follows: <MAT>.

The normalized coefficients cnorm(n) may be quantized using a logarithmic PCM quantizer, like ITU-T G. <NUM>, where G. <NUM> is defined for using <NUM> bits per coefficient, into normQ(n) for n=(<NUM>. Ncoded-<NUM>). And G711 mu-law may handle a dynamic range of <NUM> bits.

The resulting residual spectrum parameter bytes spec(n) for n=(<NUM>. Ncoded-<NUM>) are forwarded on the transport channel, where each spec(n) is a G. <NUM><NUM> bit index.

In some aspects the decoder performs the following steps. A set of <NUM> quantized scale factors is first decoded as described for/in the encoder. These quantized scale factors are the same as the quantized scale factors obtained in the encoder. The quantized scale factors are then used to shape the received MDCT normalized spectrum coefficient as described below.

<FIG> schematically illustrates functional modules of a corresponding decoder for the encoder employing the above disclosed stage <NUM> and stage <NUM> VQ. A complementary representation of this decoder is shown in <FIG>.

The first stage parameters are decoded, in <FIG> this is performed by the demultiplexor module <NUM>; and in <FIG> this is performed by the bitstream demultiplexor module <NUM> as follows:.

The first stage indices ind_LF and ind_HF are converted to signal st1(n) according to Equations (<NUM>) and (<NUM>) above, in <FIG> this is performed in the stage <NUM> contribution module <NUM>; and in <FIG> this is performed by the stage <NUM> inverse split VQ module <NUM>.

To efficiently use the available total bit space for the scale factor quantizer (<NUM> bits), in combination with the fractional sized MPVQ-indices, the shape selection, the second stage shape codewords and the adjustment gain least significant bit are jointly encoded as described in Table <NUM>. On the decoder/receiver side the reverse process takes place. The second stage submode bit, initial gain index and the Leading Sign index are first read from the bitstream decoded as follows:
<IMG>.

If subModeMSE equals <NUM>, corresponding to one of the shapes (j=<NUM> or j=<NUM>), the following demultiplexing procedure is followed:
<IMG>.

If subModeMSB equals <NUM>, ('outlier_near' or 'outlier_far' submodes) the following demultiplexing procedure is followed:
<IMG>.

Finally the decombined/demultiplexed second stage indices j and i are determined as follows:
<IMG>.

In <FIG> the <NUM>- or <NUM>-bit joint index is read from the demux module <NUM>, where the joint index is denoted tmp32 in the pseudo code above, decomposition is performed by the joint shape index decomposition module <NUM>, and the resulting decoded shape index j and the resulting shape indices (idxA, LS_indB ,indxB)) are forwarded to the de-enumeration module <NUM>. When the LS_indA index bit is a single bit it may be obtained directly from the demux module <NUM>. For j=<NUM> and j=<NUM>, the joint shape index decomposition module <NUM> also outputs the least significant gain bit gainLSB and combines that into a final gain index i. After the MPVQ-inverse enumeration has been performed by the de-enumeration module <NUM>, the vector yj is normalized into a unit energy vector xq,j by the PVQ unit energy normalization module <NUM>. Subsequently, the forward synthesis transform (DCT) is applied by the inverse warping/transform module <NUM>, and the resulting vector is then by the adjustment gain module <NUM> scaled by gain Gi,j. The quantized scale factor signal is obtained by adding the scaled vector, by the adder module <NUM>, to the SCF VQ-stage <NUM> contribution module702.

If shape_j is <NUM>, two shapes A(LS_indA, idxA), B(LS_indB, idxB), are de-enumerated into signed integer vectors, otherwise (shape_j is not <NUM>) only one shape is de-enumerated. The setup of the four possible shape configurations are described in Table <NUM>.

The actual de-enumeration of a leading sign index LS_ind and an MPVQ shape index MPVQ_ind into an signed integer vector y (denoted vec_out) with an L1 norm of K (denoted k_val_in) over dimension N (denoted dim_in), is shown in pseudo code below.

MPVQ de-enumeration calls according to Table <NUM> are made for the demultiplexed shape (j).

The de-enumerated signed integer vector yj is normalized to an unit energy vector xq,j over dimension <NUM> according to Equation (<NUM>).

The adjustment gain value Gi,j for gain index i and shape index j is determined based on table lookup (see encoder Table <NUM>).

Finally, the synthesis of the quantized scale factor vector scfQ(n) is performed the same way as on the encoder side (see, Equations <NUM> and <NUM>).

The final quantized scale factor generation is in <FIG> performed by modules <NUM> (stage <NUM> contribution), <NUM> (forward synthesis transform) and <NUM> (gain application) together with the vector addition in module <NUM>. The quantized scale factor generation is also illustrated in <FIG> modules <NUM> (stage <NUM> inverse VQ), <NUM> (inverse synthesis transform), <NUM> (adjustment gain application), and <NUM> (vector addition).

The spectrum parameter bytes spec(n) for n=(<NUM>. Ncoded-<NUM>), received over a communications channel are dequantized using an inverse logarithmic pcm quantizer, like ITU-T G. <NUM> (using <NUM> bits per coefficient) into cnormQ(n) for n=(<NUM>. Ncoded-<NUM>). The quantized scale factor vector scfQ(n) is now used to scale the quantized normalized MDCT coefficients cnormQ(n) into cQ(n) as follows: <MAT>.

Finally the inverse MDCT (see e.g. ITU-T G. <NUM> decoder) is applied to the scaled quantized spectrum as follows: <MAT>.

Further after the IMDCT the signal sQ(t) is windowed and the required MDCT overlap add (OLA) operation is performed to obtain the final synthesized time domain signal, see e.g. ITU-T G. <NUM> decoder where a sine window is applied before the MDCT OLA.

<FIG> shows example results in terms of Spectral Distortion (SD) for <NUM> bit quantization of the envelope representation coefficients. In the figure a reference <NUM> bit Multistage-Split VQ ('MSVQ') based VQ performs slightly better (having lower Median SD at about <NUM> dB), than the proposed example quantizer, which has slightly higher median SD at about <NUM>. In these statistical SD boxplots the median is given as the center line in each box, and the complete box shows the <NUM> and <NUM> percentiles, and crosses show outlier points. The example fully quantized 'PVQ-D-Q' <NUM> bit quantizer provides much lower complexity in terms of both Weighted Million Operations per Second (WMOPS) and required table Read Only Memory (ROM). As can be seen in <FIG>, the second stage reduces the SD from the first stage (<NUM> dB) to about <NUM> dB when both the first and the second stage are employed.

Below follows listings of first stage scale factors (LFCB and HFCB), MPVQ indexing offset table A, and a DCT rotation matrix D.

In accordance with the above, an efficient low complexity method is provided for quantization of envelope representation coefficients.

According to embodiments, application of a transform to the envelope representation residual coefficients enables a very low rate and low complex first stage in the VQ without sacrificing performance.

According to embodiments, selection of an outlier sub-mode in a multimode PVQ quantizer enables efficient handling of envelope representation residual coefficient outliers. Outliers have very high or very low energy/gains or an atypical shape.

According to embodiments, selection of a regular sub-mode in a multimode PVQ quantizer enables higher resolution coding of the most frequent/typical envelope representation residual coefficients/shapes.

According to embodiments, for enabling an efficient PVQ-search scheme, the outlier mode employs a non-split VQ while the regular non-outlier submode employs a split-VQ, with different bits/coefficient in each split segment. Further the split segments may preferably be a nonlinear sample of the transformed vector.

According to embodiments, application of an efficient dual/multi-mode PVQ-search enables a very efficient search and sub-mode selection in a multimode PVQ-based gain-shape structure.

According to embodiments, the herein disclosed methods enable efficient usage of a fractional bitspace through the use joint combination of shape indices, LSB gains and LSB of submode indications.

To perform the methods and actions herein, an encoder <NUM> and a decoder <NUM> are provided. <FIG> are block diagrams depicting the encoder <NUM>. <FIG> are block diagrams depicting the decoder <NUM>. The encoder <NUM> is configured to perform the methods described for the encoder <NUM> in the embodiments described herein, while the decoder <NUM> is configured to perform the methods described for the decoder <NUM> in the embodiments described herein.

For the encoder, the embodiments may be implemented through one or more processors <NUM> in the encoder depicted in <FIG>, together with computer program code <NUM> for performing the functions and/or method actions of the embodiments herein. The program code mentioned above may also be provided as a computer program product, for instance in the form of a data carrier carrying computer program code for performing embodiments herein when being loaded into the encoder <NUM>. One such carrier may be in the form of a CD ROM disc. It is however feasible with other data carriers such as a memory stick. The computer program code may furthermore be provided as pure program code on a server and downloaded to the encoder <NUM>. The encoder <NUM> may further comprise a communication unit <NUM> for wireline or wireless communication with e.g. the decoder <NUM>. The communication unit may be a wireline or wireless receiver and transmitter or a wireline or wireless transceiver. The encoder <NUM> further comprises a memory <NUM>. The memory <NUM> may, for example, be used to store applications or programs to perform the methods herein and/or any information used by such applications or programs. The computer program code may be downloaded in the memory <NUM>.

The encoder <NUM> may according to the embodiment of <FIG> comprises a determining module <NUM> for determining envelope representation residual coefficients as first compressed envelope representation coefficients subtracted from the input envelope representation coefficients, a transforming module <NUM> for the envelope representation residual coefficients into a warped domain so as to obtain transformed envelope representation residual coefficients, an applying module for <NUM> for applying at least one of a plurality of gain-shape coding schemes on the transformed envelope representation residual coefficients in order to achieve gain-shape coded envelope representation residual coefficients, where the plurality of gain-shape coding schemes have mutually different trade-offs in one or more of gain resolution and shape resolution for one or more of the transformed envelope representation residual coefficients, and a transmitting module <NUM> for transmitting, over a communication channel to a decoder, a representation of the first compressed envelope representation coefficients, the gain-shape coded envelope representation residual coefficients, and information on the at least one applied gain-shape coding scheme. The encoder <NUM> may optionally further comprise a quantizing module <NUM> for quantizing the input envelope representation coefficients using a first number of bits.

For the decoder <NUM>, the embodiments herein may be implemented through one or more processors <NUM> in the decoder <NUM> depicted in <FIG>, together with computer program code <NUM> for performing the functions and/or method actions of the embodiments herein. The program code mentioned above may also be provided as a computer program product, for instance in the form of a data carrier carrying computer program code for performing embodiments herein when being loaded into the decoder <NUM>. One such carrier may be in the form of a CD ROM disc. It is however feasible with other data carriers such as a memory stick. The computer program code may furthermore be provided as pure program code on a server and downloaded to the decoder <NUM>. The decoder <NUM> may further comprise a communication unit <NUM> for wireline or wireless communication with the e.g. the encoder <NUM>. The communication unit may be a wireline or wireless receiver and transmitter or a transceiver. The decoder <NUM> further comprises a memory <NUM>. The memory <NUM> may, for example, be used to store applications or programs to perform the methods herein and/or any information used by such applications or programs. The computer program code may be downloaded in the memory <NUM>.

The decoder <NUM> may according to the embodiment of <FIG> comprise a receiving module <NUM> for receiving, over a communication channel from an encoder <NUM>, a representation of first compressed envelope representation coefficients, gain-shape coded envelope representation residual coefficients, and information on at least one applied gain-shape coding scheme, applied by the encoder, an applying module <NUM> for applying at least one of a plurality of gain-shape decoding schemes on the received gain-shape coded envelope representation residual coefficients according to the received information on at least one applied gain-shape coding scheme, in order to achieve envelope representation residual coefficients, where the plurality of gain-shape decoding schemes have mutually different trade-offs in one or more of gain resolution and shape resolution for one or more of the gain-shape coded envelope representation residual coefficients, a transforming module <NUM> for transforming the envelope representation residual coefficients from a warped domain into an envelope representation original domain so as to obtain transformed envelope representation residual coefficients, and a determining module <NUM> for determining envelope representation coefficients as the transformed envelope representation residual coefficients added with the received first compressed envelope representation coefficients. The decoder <NUM> may optionally further comprise a de-quantizing module <NUM> for de-quantizing the quantized envelope representation coefficients using a first number of bits corresponding to the number of bits used for quantizing envelope representation coefficients at a quantizer of the encoder.

As will be readily understood by those familiar with communications design, functions from other circuits may be implemented using digital logic and/or one or more microcontrollers, microprocessors, or other digital hardware. In some embodiments, several or all of the various functions may be implemented together, such as in a single application-specific integrated circuit (ASIC), or in two or more separate devices with appropriate hardware and/or software interfaces between them.

From the above it may be seen that the embodiments may further comprise a computer program product, comprising instructions which, when executed on at least one processor, e.g. the processors <NUM> or <NUM>, cause the at least one processor to carry out any of the methods described. Also, some embodiments may, as described above, further comprise a carrier containing said computer program, wherein the carrier is one of an electronic signal, optical signal, radio signal, or computer readable storage medium.

Claim 1:
A method performed by an audio encoder (<NUM>) for handling input envelope representation coefficients, the method comprising:
applying a two-stage vector quantization (VQ), wherein the two-stage VQ comprises a first stage split VQ and a second stage pyramid vector quantization (PVQ), by:
quantizing (<NUM>) the input envelope representation coefficients by applying the first stage split VQ to obtain quantized envelope representation coefficients;
determining (<NUM>) envelope representation residual coefficients by subtracting the quantized envelope representation coefficients from the input envelope representation coefficients;
transforming (<NUM>) the envelope representation residual coefficients into a warped domain to obtain transformed envelope representation residual coefficients;
quantizing the transformed envelope representation residual coefficients by applying (<NUM>) the second stage PVQ, where at least one of a plurality of gain-shape coding schemes is applied on the transformed envelope representation residual coefficients in order to achieve gain-shape coded envelope representation residual coefficients, where the plurality of gain-shape coding schemes have mutually different trade-offs in one or more of gain resolution and shape resolution for one or more of the transformed envelope representation residual coefficients; and
providing (<NUM>) the gain-shape coded envelope representation residual coefficients and information on the at least one applied gain-shape coding scheme to a multiplexor (<NUM>, <NUM>) to be multiplexed into a joint index for subsequent transmission to an audio decoder.