The present embodiments generally relate to speech and audio encoding and decoding, and in particular to quantization of Line Spectral Frequency coefficients.
When handling audio signals such as speech 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 are transformed to Line Spectral Frequencies, LSF, or LSF coefficients, at the encoder. Further, the LSFs may be compressed, i.e. coded, in order to save bandwidth over the communication interface between the transmitting unit and the receiving unit.
The 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 0 to pi, or equivalently a set of frequencies from [0 to Fs/2], 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 Immitance 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 computationally efficient and compression efficient handling of the LSF coefficients.
According to an aspect there is presented a method performed by an encoder for handling input Line Spectral Frequency, LSF, coefficients. The method comprises determining LSF residual coefficients as first compressed LSF coefficients subtracted from the input LSF coefficients, and transforming the LSF residual coefficients into a warped domain. One of a plurality of gain-shape coding schemes is applied on the transformed LSF residual coefficients in order to achieve gain-shape coded LSF 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 LSF residual coefficients. A representation of the first compressed LSF coefficients, the gain-shape coded LSF residual coefficients, and information on the applied gain-shape coding scheme are transmitted over a communication channel to a decoder.
According to an aspect there is presented a method performed by a decoder for handling input Line Spectral Frequency, LSF, coefficients. The method comprises receiving, over a communication channel from an encoder, a representation of first compressed LSF coefficients, gain-shape coded LSF residual coefficients, and information on an applied gain-shape coding scheme, applied by the encoder. One of a plurality of gain-shape decoding schemes is applied on the received gain-shape coded LSF residual coefficients according to the received information on applied gain-shape coding scheme, in order to achieve LSF 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 LSF residual coefficients. The LSF residual coefficients are transformed from a warped domain into an LSF original domain, and LSF coefficients are determined as the transformed LSF residual coefficients added with the received first compressed LSF coefficients.
According to an aspect there is presented an encoder configured to perform the method for handling input Line Spectral Frequency, LSF, coefficients.
According to an aspect there is presented a decoder configured to perform the method for handling input Line Spectral Frequency, LSF, coefficients.
According to an aspect there is presented an apparatus for handling input Line Spectral Frequency, LSF, coefficients. The apparatus is configured to determine LSF residual coefficients as first compressed LSF coefficients subtracted from the input LSF coefficients, and to transform the LSF residual coefficients into a warped domain. It is further configured to apply one of a plurality of gain-shape coding schemes on the transformed LSF residual coefficients in order to achieve gain-shape coded LSF 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 LSF residual coefficients. The apparatus is further configured to transmit, over a communication channel to a decoder, a representation of the first compressed LSF coefficients, the gain-shape coded LSF residual coefficients, and information on the applied gain-shape coding scheme.
According to an aspect there is presented an apparatus for handling input Line Spectral Frequency, LSF, coefficients. The apparatus is configured to receive, over a communication channel from an encoder, a representation of first compressed LSF coefficients, gain-shape coded LSF residual coefficients, and information on an applied gain-shape coding scheme, applied by the encoder. The apparatus is further configured to apply one of a plurality of gain-shape decoding schemes on the received gain-shape coded LSF residual coefficients according to the received information on applied gain-shape coding scheme, in order to achieve LSF 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 LSF residual coefficients. The apparatus is further configured to transform the LSF residual coefficients from a warped domain into an LSF original domain, and to determine LSF coefficients as the transformed LSF residual coefficients added with the received first compressed LSF coefficients.
According to an aspect there is provided a computer program, comprising instructions which, when executed by a processor, cause an apparatus to perform the actions of the method for handling input Line Spectral Frequency, LSF, coefficients.
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.
The wireless communications network 100 comprises a network node 110. The network node 110 serves at least one cell 112. The network node 110 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 112 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
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
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 LSFs 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 LSF coefficients, LSFin. The method comprises determining LSF residual coefficients as first compressed LSF coefficients subtracted from the input LSF coefficients and transforming the LSF residual coefficients into a warped domain. The method further comprises applying one of a plurality of gain-shape coding schemes on the transformed LSF residual coefficients in order to achieve gain-shape coded LSF 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 LSF residual coefficients; and transmitting, over a communication channel to a decoder, a representation of the first compressed LSF coefficients, the gain-shape coded LSF residual coefficients, and information on the applied gain-shape coding scheme.
Action 202. Quantizing the input LSF coefficients using a first number of bits, resulting the first compressed LSF coefficients.
Action 204. Determining LSF residual coefficients, LSFR2, as first compressed LSF coefficients subtracted from the input LSF coefficients.
Action 206. Transforming the LSF residual coefficients, LSFR2, into a warped domain, resulting transformed LSF residual coefficient, LSFR2T.
Action 208. Applying, one of a plurality of gain-shape coding schemes on the transformed LSF residual coefficients in order to achieve gain-shape coded LSF residual coefficients. 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 LSF residual coefficients.
Action 210. Transmitting, over a communication channel to a decoder, the first compressed LSF coefficients, the gain-shape coded LSF residual coefficients, and information on the applied gain-shape coding scheme. As the compressed or coded parameters are represented by the indices set {iL, iH, isubmode, igain, ishapeO/(ishapeA, ishapeB)} as will be discussed below, it can be said that representations of the first compressed LSF coefficients and the gain-shape coded LSF residual coefficients are transmitted over a communication channel.
Action 302. Receiving, over a communication channel from an encoder, first compressed LSF coefficients, gain-shape coded LSF residual coefficients, and information on an applied gain-shape coding scheme, applied by the encoder.
Action 304. Applying, one of a plurality of gain-shape decoding schemes on the received gain-shape coded LSF residual coefficients according to the received information on applied gain-shape coding scheme, in order to achieve LSF residual coefficients. The plurality of gain-shape decoding schemes may have mutually different trade-offs in one or more of gain resolution and shape resolution for one or more of the gain-shape coded LSF residual coefficients.
Action 306. Transforming the LSF residual coefficients from a warped domain into an LSF original domain.
Action 308. Determining LSF coefficients as the transformed LSF residual coefficients added with the received first compressed LSF coefficients.
Action 307. De-quantizing possibly quantized LSF coefficients using a first number of bits similar to the number of bits used for quantizing LSF coefficients at a quantizer of the encoder.
According to another embodiment, the encoder performs the following steps:
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 25% of its original codebook size decreasing both Table ROM (Read Only Memory) and first stage search complexity. E.g. from R=0.875 bits/coefficient to R=0.625 bits per coefficient. E.g. with dimensions 8 one may drop from 8*0.875=7 bits to 8*0.625=5 bits, which corresponds to a drop from 128 vectors to 32 vectors of dimension 8.
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 LSFs available.
The structured PVQ based sub-modes may be optimized to handle both outliers, where outliers are the LSF residuals 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 LSF coefficients.
At the encoder, the following may be performed. First, LSF coefficients are obtained from the input signal representation, as LSFin e.g. by a known algorithm such as an algorithm described in EVS algorithmic specification 3GPP TS 26.445 v13.0.0 section 5.1.9 “Linear prediction analysis”. Then an LSF global mean LSFMean vector is subtracted from the input LSFs and this LSF global mean subtracted input LSF vector (denoted LSFR1) is split into two parts, denoted as low (Ltarget) and high-frequency (Htarget) parts. As an example for a 16 dimensional LSF vector, the first 8 coefficients may be used for the Ltarget subvector and the remaining coefficients may be used for the Htarget subvector.
In an alternative implementation, the LSF vector might be converted to LSP (Line Spectral Pairs) or ISF (Immittance Spectral Frequencies) or ISP (Immittance Spectral Pairs) domain instead of LSFs. This will cause slight implementation variation, but the method steps, described in the following, apply to all these alternative representations.
The Ltarget and Htarget target vectors are presented to a low rate first stage 8-dimensional VQ of eg. size 3-5 bits for each split. Two indices are obtained: iL an iH. This is achieved by employing an MSE search, or a weighted MSE search of the stage 1 codebooks.
The complete LSF-residual after the first stage LSFR2 is now computed as:
LSFR2=[LSFin]−[LSFmean]−[LiL HiH],
LSFR2 is transformed into a warped quantization domain using Hadamard, RDCT or DCT, resulting in the warped signal LSFR2T. Hadamard, RDCT and DCT all have the capacity to compact energy, especially for LSF residual signals with a strong positive or negative DC-offset
LSFR2T vector is presented to a memoryless (not employing frame error sensitive interframe prediction) stage 2 multimode PVQ based quantizer, resulting in a submode index imode, a gain index igain, indicating a gain applied for the whole vector, one or several PVQ shape indices ishapeA, {ishapeB}, where the shape indices together form a unit energy PVQ-vector LSFR2T,en1 of size 16, in case of a 16 dimensional LSF vector.
The stage 2 vector quantizer also returns the gain values ghat and GMEANST2 and the unit energy quantized and normalized LSF shape vector LSFR2T,en1. GMEANST2 is a global mean gain for the 2nd stage and ghat is an adjustment gain for fine scaling the 2nd stage residual vector.
The shape vector LSFR2T,en1 is warped back to the LSF domain using the Hadamard, the inverse RDCT, IRDCT, or the IDCT (inverse discrete cosine transform) transforms, to obtain an unwarped unit energy LSF-residual domain vector LSFR2,en1.
The quantized LSFs are obtained as:
LSFq=[LSFMean]+[LiLHiH]+ghat*GMEANST2*[LSFR2,en1], (2)
Here it is to be noted that the stage 1 split quantization may also be made in the transformed domain. However, there are a few complexity benefits of staying in the LSF/LSF residual domain for stage 1, as then individual LSF coefficient frequency dependent weighting may easily be applied to the stage 1 search, and further a non-transformed stage 1 will reduce the dynamic range of the residual signal to be transformed, so that the transform calculations may be applied using high enough precision with low complexity instructions.
The Ltarget and Htarget target vectors are presented to a low rate first stage VQ 610 to obtain two indices: iL an iH.
The shape quantization is made in a warped/transformed domain 600a, using two spherical unit energy PVQ submodes: an outlier(outl) submode 601 and a regular(reg) submode 602, which have different shape resolution properties over different dimensions, but with sufficient similarities so that the regular finer resolution shape search may use the preliminary result of the lower shape resolution outlier submode shape search (rtoutl) to obtain rtreg. These two integer vectors are searched by adding unit pulses, and after all the allowed unit pulses have been found, the integer vectors are normalized to (float) unit energy vectors rten1,outl and rten1,reg, which are sent to the submode selector 603. The submode selector 603 acts as a switch and forwards either rten1,outl or rten1,reg, as rten1 to the inverse warping block 604, depending on which submode (given by isubmode) being evaluated by the W(MSE) minimization block.
In the synthesis model the candidate shape vector is warped back to the LSF-residual domain 600b and scaled with a gain ghat given by a gain index igain, in a gain amplifier 605 (and possibly also by a global gain G_MEANST2 in a global gain amplifier 606). In the actual optimized stage 2 search, the shape is searched in the warped LSF-domain, using an efficient PVQ-search. The final gain-shape minimization is preferably performed in the LSF-residual domain.
The global search uses MSE or WMSE minimization to find the best submode and gain combination resulting in a shape dem and the best gain ghat with index igain.
The integer vector rt of length N corresponding to the total selected unit energy shape rten1 is indexed by a PVQ enumeration scheme 607. In case of the outlier mode there is only one resulting PVQ-index, ishapeO and in case of the regular mode there are two resulting shape indeces ishapeA and ishapeB. The dimension Nx and number of unity pulses Kx for each shape index is obtained by table lookup based on isubmode.
The set of LSF-indices {iL, iH, isubmode, igain, ishapeO/(ishapeA, ishapeB)} are forwarded to a ARE/MUX (multiplexing) unit 608 which contains an arithmetic/range encoder (ARE) unit if fractional bits are used, and a regular bit level multiplexing unit if whole integer bits are employed for the set of LSF-indices. The thick arrow in the figure indicates the LSF indices being sent to the decoder.
At the decoder side, the following may be performed. The LSFR2T,en1,dec vector is obtained from the PVQ inverse quantizer using the submode index isubmode and the PVQ-indexed shape indices ishapeO,/{ishapeA, ishapeB}.
The adjustment gainhat,dec is obtained from the index igain
The LSFR2T,en1,dec vector is warped to the LSF domain, to obtain the LSFR2,en1,dec vector.
First stage subvectors LiL,dec and Hil,dec are obtained from the stage 1 inverse VQ (codebook lookup), using indices iL and iH.
The decoded LSF vector LSFq,dec is obtained as:
LSFq,dec=[LSFmean]+[LiL,dec HiH,dec]+ghat,dec*G_MEANST2*[LSFR2,en1,dec], (3)
where the [LSFmean] vector and the G_MEANST2 gain are constants stored in the decoder, e.g. at a Read Only Memory, ROM, of the decoder. Further, the vectors LiL,dec and HiH,dec may also be stored at the decoder, e.g. as ROM-tables.
The two stage 1 indices iL, iH are decoded into the N dimensional vector LSFST1,dec by table lookup 702.
The inverse enumerated/(deindexed) PVQ de-enumeration scheme 703 is applied to the shape indices as follows; in case of isubmode indicating the outlier mode (when submode shape-index scheme 704 is applied) the PVQ-index, ishapeO is de-indexed using dimension No and Ko unit pulses; in case isubmode indicates the regular mode ishapeB are de-indexed using the (dimension, unit pulse) pairs (Na,Ka)(Nb,Kb), into the integer N=Na+Nb dimensional vector rtdec. Subsequently the vector rtdec is normalized 705 into a unit energy shape vector rten1,dec.
The decoded shape vector rten1,dec is warped 706 back from a warped/transformed domain 700a to the LSF-residual domain 700b and scaled 707 with a gain ghat given by a gain index igain. (and also scaled 708 by the global gain G_MEANST2, if necessary) and stored as LSFST2,dec. Finally the quantized LSFq,dec vector is obtained by adding LSFmean, LSFST1,dec and the decoded stage 1 vector to LSFST2,dec.
In the following, a lower level detailed description of an embodiment is given.
Stage 1 search. The stored stage 1 codebooks LCbk and Hcbk each of size N1*23 values, (8 coefficients×N1 vectors per codebook) are searched in each target section L/H by using an MSE search.
Examples of off-line trained LSF-residual stage 1 codebooks Lcbk and Hcbk are given in further down (In the example, 38 bit case with 5 bit stage 1 codebooks case, N1 is 25=32).
If the complexity requirement allows for it, the stage 1 codebook may also be searched with frequency dependent weights wn:
Where wn may be a fixed vector addressing the human ear's lower sensitivity to high frequencies. E.g. wn=[1 0.968 0.936 0.904 0.872 0.840 0.808 0.776 0.744 0.712 0.680 0.648 0.6160 0.584 0.552 0.520], or one may apply a more advanced weighting like IHM (Inverse Harmonic Mean).
Warping Transformation. The target stage2 LSF-residual is transformed to the warped domain using e.g. a Matrix operation, e.g. 16 by 16 matrix operation in case of 16 dimensional LSF vector.
Given R as the normalized RDCT matrix, and with an example:
LSFR2 stage 2 target vector=[−7 −6 −5 −4 −3 −2 −1 0 1 2 3 4 5 6 7 8] (in this case a line with near zero mean), then LSFR2T=LSFR2′R becomes (forward transform)
Given H as the normalized Hadamard matrix, and with an example
LSFR2 stage 2 target vector=[−7 −6 −5 −4 −3 −2 −1 0 1 2 3 4 5 6 7 8] (in this case a line with near zero mean), then LSFR2T=LSFR2H becomes (forward transform)
Given D as the normalized DCT matrix and with an example
LSFR2 stage 2 target vector=[−7 −6 −5 −4 −3 −2 −1 0 1 2 3 4 5 6 7 8] (in this case a line with near zero mean), then LSFR2T=LSFR2D becomes (forward transform)
Stage 2 Gain-Shape Setup for Each Sub Mode.
The regular submode is a dimensional targeted high resolution mode, with reconstructions points on or close to a global long term average energy shell, given by the global gain 1.0*G_MEANsT2, with energy G_MEANST22. The regular mode has higher shape resolution than the outlier mode in a subset/section of given dimensions.
To further enhance the regular mode possibility to match the shape, it is made possible to zero all unit pulses in Subset/Section B (given by Table 1), this is indexed as the first index 0 in the PVQ-shape index for subset/section B.
Due to the unit pulse granularity of a PVQ-VQ, there may also be a possibility that the regular mode may use 2-4 additional gain levels. For the case of one or two additional bits available this code space is given to a gain adjustment index of the regular mode near 1.0. e.g. [2−1/12, 21/12] in case of 1 bit and [2−2/24 2−1/24, 21/24, 22/24] in case of 2 bits. These levels are positioned between the neighbouring outlier energy shells, and the selection is made by MSE evaluation of the gain-shape combinations.
The outlier submode is an all-dimensional lower resolution mode, lower resolution in relation to the regular submode. The outlier submode has reconstruction points further away from the global long term average energy shell, given by the global gain 1.0*G_MEANST2, with energy G_MEANST22. The outlier mode has the same shape resolution for all possible energy/gain shells, and it may correct errors equally well in all dimensions.
Regular Submode (38 Bit Example):
Outlier Submode (38 Bit Example):
Regular Submode (42 Bit Example):
Outlier Submode (42 Bit Example):
Stage 2 Shape Search:
One may search each submode shape (the full 16 dimesional outlier section, regular section A, regular section B) using a complete PVQ shape search for that section, however to avoid several PVQ shape-searches for the various submodes in some cases.
The stage 2 search may be performed by the following steps:
At the end of the stage 2 shape search the section rearranged vectors rtoutl_en1norm,lin, rtregAB_en1norm,lin, rtregA_en1norm,lin are arranged back to the original LSF differential domain coefficient order as rtoutl_en1norm, rtregAB_en1norm, rtregA_en1norm, and the corresponding coefficients in vectors rtoutl,lin, rtregAB,lin and rtregA,lin are arranged back into integer vectors rtout1, rtregAB and rtregA (step 810).
E.g. for the 38 bit LSF quantizer, example sets {A, B} above it is now possible to swap places between the shape result position 15 coefficient and the shape result position 9 coefficient in the result vector(s), {rtoutl, rtregAB and rtregA.}
The integer vectors rtoutl,lin, rtregAB,lin and rtregA,lin are saved to be able to easily enumerate these vectors into indices, using a PVQ-enumeration technique for subsequent transmission, which will be performed after the best available combination of a gain-value and a PVQ shape(s) option has been selected.
PVQ Shape Search Projection and PVQ Fine Search Equations.
This part may be seen as a generic description of a PVQ shape search including initial low cost projection and a pulse by pulse fine shape search.
The PVQ-coding concept was introduced by R. Fischer in the time span 1983-1986 (Fisher T. R.: “A pyramid vector quantizer”, IEEE Transactions on information theory, vol. IT-32, no. 4, July 1986) and has evolved to practical use since then with the advent of efficient digital signal processors, DSPs. The PVQ encoding concept involves locating/searching and then enumerating a point on the N-dimensional hyper-pyramid with the integer L1-norm of K unit pulses. The L1-norm is the sum of the absolute values of the vector, i.e. the absolute sum of the signed integer PVQ vector is restricted to be K, where a unit pulse is represented by an integer value of “1”.
One of the interesting benefits with the PVQ-coding approach in contrast to many other structured VQs is that there is no inherent limit to use a specific dimension N, so the search methods developed for PVQ-coding is applicable to any dimension N and to any K value.
For an L1-norm structured PVQ-quantizer an L1-norm of K for PVQ(N,K) signifies that the absolute sum of all elements in the PVQ-integer vector y(n) has to be K. The structured PVQ(N,K) allows for several search optimizations, where the primary optimization is to move the target to the all positive “quadrant” in N-dimensional space and the second optimization is to use an L1-norm projection to the pyramid neighborhood as a starting approximation for y(n), before entering into a fine search to reach K.
A third optimization is to iteratively update the QPVQ quotient terms, instead of re-computing Eq. 15 below over the whole vector space N, for every evaluated change to the vector y(n) in pursuit of reaching the L1-norm K, where an exact K is required for the subsequent PVQ-enumeration step.
Unit Energy Normalized PVQ-Shape Search Introduction.
The goal of the PVQ(N,K) shape search procedure is to find the best scaled and unit energy normalized vector xq(n)·xq(n) is defined as:
where y=yN.K is a point on the surface of an N-dimensional hyper-pyramid and the L1 norm of yN,K is K. I.e. yN.K is the selected integer shape code vector of size N according to:
I.e. xq is the unit energy normalized integer sub vector yN.K.
The best integer shape y vector is the one minimizing the mean squared shape error between the target vector x(n) and the scaled unit energy normalized quantized output vector xq. This is achieved by minimizing the following shape distortion:
or equivalently maximizing the quotient QPVQ, e.g. by squaring numerator and denominator:
where corrxy is the correlation between target x and PVQ integer vector y. In the search of the optimal PVQ vector shape for integer vector y(n) with L1-norm K, iterative updates of the QPVQ variables are made in the all positive “quadrant” in N-dimensional space according to:
corrxy(k,n)=corrxy(k−1)+1·x(n) (16)
energyy(k,n)=energyy(k−1)+2·12−y(k−1,n)+12 (17)
where corrxy(k−1) signifies the correlation achieved so far by placing the previous k−1 unit pulses, and energyy(k−1) signifies the accumulated energy achieved so far by placing the previous k−1 unit pulses, and y(k−1, n) signifies the amplitude of y at position n from the previous placement of k−1 unit pulses. To allow flexible dynamic scaling of the energy denominator, an optional temporary inloop energy value enloopy(k,n) may be used instead of energyy(k,n) (Eq. 17) and thus for energyy in (Eq. 15) however in this description they have the same value.
In the fine shape search the best position nbest for the k′th unit pulse, is iteratively updated by increasing n linearly from 0 to N−1:
n
best
=n, if QPVQ(k,n)>QPVQ(k,nbest) (19)
To avoid costly divisions, which is especially important in fixed point arithmetic, the QPVQ maximization update decision is performed using a cross-multiplication of the saved best squared correlation numerator bestCorrSq and the saved best energy denominator bestEn so far.
The iterative maximization of QPVQ(k, n) may start from a zero number of placed unit pulses or from an adaptive lower cost pre-placement number of unit pulses, based on a projection to a point on or below the K′th-pyramid's surface, with a guaranteed hit or undershoot of unit pulses in the target L1 norm K.
PVQ Pre-Search Projection.
A low cost projection to the K or K−1 sub pyramid may be made and used as a starting point for y. This will save the number of operations an iterative fine PVQ-search will need to perform to reach K. The low cost projection to “K” or slightly lower than K is typically less computationally expensive in DSP cycles than repeating an iterative unit pulse inner loop test (Eq 20) N*K times, however there is a drawback with the low cost projection that it may produce an inexact result due to the use of a non-linear N-dimensional floor application. The resulting L1-norm of the low cost projection may typically be anything between “K” to roughly “K−4”, i.e. the result after the projection usually needs to be fine searched to reach the required target L1-norm of K.
The low cost projection may be performed as:
In preparation for the fine search to reach the K′th-pyramid's surface, the accumulated number of unit pulses pulsetot, the accumulated correlation corrxy(pulsetot) and the accumulated energy energyy(pulsetot) for the starting point is computed as:
PVQ Fine Shape Search.
The final integer shape vector y(n) of dimension N should adhere to the L1 norm of K pulses. The fine search starts from a lower point in the pyramid and iteratively finds its way to the surface of the N-dimensional K′th hyperpyramid. The K-value in the fine search can typically range from 1 to 512 unit pulses. I.e. by employing (Eq. 20) until the desired L1-norm of K has been reached.
PVQ Shape-Vector Finalization and Normalization.
After the fine shape search each non-zero PVQ-sub-vector element is assigned its proper sign and the xq(n) vector is L2-normalized to unit energy.
Inverse Transform.
The obtained shape vectors rtoutl_en1norm, rtregAB_en1norm, rtregA_en1norm are transformed back to the unwarped domain by applying the inverse warping/transform. In case of RDCT (“R”) the inverse RDCT, RIDCT(“RT”) is applied, in case of DCT (“D”), the inverse DCT, IDCT (“DT”) is applied. I.e. here we make use of the fact that R·RT=I and D·DT=I, in matrix notation, where I is the identity matrix. In case of the second stage LSF residual quantizer using Hadamard, the Hadamard transform (H) is applied again, making use of the fact that H·H=I in matrix notation.
The resulting unwarped vectors in the LSF residual domain are called routl_en1norm, rregAB_en1norm and rregA_en1norm. In case the shape search was discontinued after determining rtoutl_en1norm, only the vector routl_en1norm, will need to be transformed into the LSF residual domain, saving average complexity when outlier vectors are identified early in the search process.
Given R as the normalized RDCT matrix and with an example unit energy stage 2 vector,
rten1=[6.6691 −16.4483 5.0226 −0.8074 1.6795 −0.2607 0.3087 −0.2174 . . . 0.1582−0.1421 0.0911−0.0823 0.0505−0.0432 0.0235−0.0128]/(3440.5)
then LSFR2,en1=rten1·RT becomes (inverse warping, IRDCT)
Given H as the normalized Hadamard matrix, and with an example stage 2 unit energy normalized vector
rten1=[2 −2 −4 0 −8 0 0 0 −16 0 0 0 0 0 0 0] (3440.5),
then LSFST2,en1=rten1′H becomes (inverse warping as HH=I)
Given D as the normalized DCT matrix and with an example unit energy stage 2 vector
rten1=[2.0000 −18.3115 0.0000 −2.0075 −0.0000 −0.7016 0 −0.3395 0 −0.1877 0 −0.1071 −0.0000 −0.0560 0.0000 −0.0175]/(3440.5)
then LSFR2,en1=rten1·DT becomes (inverse warping DCT)
Stage 2 Final Shape and Gain Determination in the LSF Residual Domain.
A Weighted MSE determination is made to determine the best quantized stage 2 LSF residual vector gi_best_comb*GMEANST2*[rst2,i_be st_comb] among the available scalar gain-factors and the available shape-vector alternatives.
err
wmse,i_comb=Σn=015(wn)2([LSFR2(n)]−gi
the allowed gain shape combinations are made up of the allowed gain and shape combinations. Further it should be noted that by setting all the weights wn to 1.0 one will get the MSE criterion. E.g. for the 38 bit LSF-residual quantizer setup the following set of eight combinations are evaluated.
2−1/12
2−1/12
Note that this evaluation can be performed in a closed search loop over all allowed combination alternatives (icomb), resulting in an index i_best_comb, indicating the combination with the lowest mean square error.
However, one may, alternatively, first establish the best quantized gain alternative for each shape of the three shape alternatives ([routl_en1norm], [rregAB_en1norm], [rregA_en1norm]), and then determine the minimum weighted MSE, WMSE, among the then three remaining gain-shape options according to the errWMSE equation above.
After the encoder side WMSE or MSE minimization the following assignments are made:
g
hat
=g
i_best_comb
LSFR2,en1=rst2,i_best_comb
Further, Isubmode, Igain and Ishape,B are set corresponding to the established Ibest_comb
Stage 2 Shape and Gain Determination in the Warped LSF Residual Domain.
Another complexity-wise attractive alternative to establish ghat and LSFR2,en1 is to evaluate the possible gain-shape combination in the warped domain as this will then only require one transformation of one single selected best gain-shape combination. The drawback is that the weights wn will no longer represent a single frequency point in the LSF-residual domain, for that reason all the weights may be set to 1.0 in a lowest complexity solution.
err
t-wmse,i_comb=
Σn=015(wn([LSFRT2(n)]−gi
After the selection of ibest_comb based on errt-wmse,i_comb the warped domain vector rtst2,i_comb is warped back to the unwarped LSF-residual domain by applying the IRDCT, IDCT or Hadamard, resulting in rst2,i_best_comb. The table 6 shows the gain-shape combinations for a warped domain (W)MSE search in the 38 bit example case.
2−1/12
2−1/12
Synthesis of the Final Quantized LSF-Vector LSFg.
The quantized LSF vector is obtained by combining the mean vector, the stage 1 contribution and a scaled unit energy stage 2 contribution.
LSFq=[LSFMean]+[LiL HiH]+ghat*GMEANST2*[LSFR2,en1]
In the decoder
Enumeration of the PVQ Integer Vectors into Shape Indices.
In case of the outlier mode, the integer vector rtoutl,lin, is enumerated into an index Ishape,outl, using known PVQ-enumeration techniques, such as the computationally efficient Modular PVQ enumeration scheme, MPVQ-scheme, described below, or possibly a variation of Fischer's original PVQ-enumeration.
In case the regular submode is selected, the 16 dimensional integer vector rtregAB,lin or rtregA,lin is enumerated into two PVQ-indices Ishape,A, Ishape,B, using known PVQ-enumeration techniques, such as the computationally efficient MPVQ-scheme described below, or possibly a variation of Fischer's original enumeration.
In case only the first set of coefficients A is to be transmitted, e.g. when icomb is 6 or 7 in the 38 bit example above, the Ishape,B Index is set to 0, and no PVQ enumeration for the second set of coefficients B takes place. Ishape,A is obtained by PVQ-enumerating the set A coefficients in rtregA,lin.
In case both sets of coefficients {A, B} are to be transmitted, e.g. when icomb is 4 or 5 in the 38 bit example above, the Ishape,B index is initially obtained by PVQ-enumerating the set B coefficients in rtregAB,lin. Following this enumeration, an offset of 1 is added to Ishape,B to make code space for the all zero B-shape. An “all zero” means no shape at all for the set B points, i.e. when zeroed the second set of coefficients B do not have any energy, nor any shape/direction.
The Ishape,A index is obtained by PVQ-enumerating the set A coefficients in rtregAB,lin.
Example PVQ enumeration scheme: MPVQ short codeword enumeration of integer vector ZN.K
The zN,K integer vector with dimension N and an L1-norm of K, where K is K unit pulses, may be enumerated using a method that divides the PVQ shape index into two shorter codewords which are composed as follows:
a first codeword representing the first sign encountered in the integer vector independent of its position;
a second codeword representing, in a recursive fashion, all the remaining pulses in the remaining vector which is now guaranteed to have a leading positive pulse. The second codeword is enumerated using the recursive structure displayed in Table 7 below. The recursive structure defines an U(N,K)offset matrix and enables the recursion computations to stay within the B−1 dynamics of a B bits signed integer.
From Table 7 it can be seen that the total number of entries, with the very first leading sign information removed, can be expressed as:
N
MPVQ(N,K)=1+2·U(N,K)+NMPVQ(N−1,K) (32)
Combining (32) with Fischer's original PVQ-recursion, the total number of entries can be expressed as:
N
MPVQ(N,K)=1+U(N,K)+U(N,K+1) (33)
Runtime computed or stored values of the U(N,K) matrix may now be used as the basis for the MPVQ-enumeration and the update of the symmetric U matrix from row N−1 to row N can be performed as:
U(N,K+1)=1+U(N−1,K)+U(N−1,K+1)+U(N,K), (34)
with initial conditions, U(N,0)=U(N,1)=U(0,K)=U(1,K)=0.
The two short MPVQ codewords may now be combined into a joint PVQ-index indexd, (indexshape,=codeword(1)+2*codeword(2)), a PVQ index which is uniquely decodable to the integer vector ZN.K.
The bits that are to be transmitted are, in the embodiment, first sent to a multiplexing unit of the encoder where the bits are multiplexed. Thereafter, the multiplexed bits are transmitted over a communication channel to the decoder.
Stage 1 indices iL and iH, are sent to the multiplexing unit. It is noted that the [LSFMean] vector, i.e. the long term average LSF coefficient vector, is not transmitted, it is stored in a ROM in both the encoder an the decoder.
If the selected submode is the regular submode, a single bit with value 1 is transmitted to the multiplexing unit. This is for the exemplary embodiment where there are only two submodes to select from: a regular submode and an outlier submode. If there are more than two submodes to select from, a corresponding number of bits are needed.
If the selected submode is the outlier submode, a single bit with value 0 is transmitted to the multiplexing unit. Of course it may also be the opposite, i.e. a 1 is transmitted when the outlier submode is selected and a 0 is transmitted when the regular submode is selected. Anyhow, the decoder needs to know in advance the interpretation of a “0” and a “1”.
The fine gain index igain (see Table 5) corresponding to the determined fine gain gi is sent to the multiplexing unit. It is noted that the value GMEANST2, i.e. the long term average stage 2 gain, is in this embodiment not transmitted, it is stored in ROM in both encoder an decoder.
The integer pulse vector (rt in
For the outlier mode there is, in one embodiment, one shape index to transmit Ishape,outl
The number of possible values for Ishape,outl is given by SIZEshape,outl=NPVQ(N=16,K=Ko) preferably stored in ROM.
For example, for the 38 bit case, N is 16 and Ko is 8, which results in a PVQ total dimension of NPVQ(16,8)=30316544, i.e. SIZEshape,outl=30316544.
In the case there is an arithmetic or range encoder that supports fractional bit resolution available in the encoder, the value of Ishape,outl and the size parameter SIZEshape,outl, are forwarded to the arithmetic (or range) encoder, for multiplexing into the bit-stream. The arithmetic/range encoder may use a uniform Probability Density Function, PDF, to encode the shape index.
In the case no arithmetic or range encoder is available in the encoder, the index Ishape,outl, is sent to the multiplex unit and multiplexed using ceil(log 2(SIZEshape,outl)) bits, (25 bits in the 38 bit example)
For the regular mode there are two shape indices to transmit IshapeA and IshapeB.
The number of possible values for of IshapeA is given by SIZEshapeA=NPVQ(Na=10,K=Ka), preferably stored in the ROM. The number of possible values for of IshapeB is given by SIZEshapeB=1+NPVQ(Nb=6,K=Kb), preferably stored in the ROM.
For example, for the 38 bit case, Na is 10 and Ka is 10, which results in a PVQ total dimension of NPVQ(10,10)=4780008 i.e. SIZEshapeA=4780008, and Nb is 6 and Kb is 1, which results in a PVQ total dimension of 1+NPVQ(6,1)=1+12, i.e. SIZEshapeB=12+1=13.
In the case there is an arithmetic or range encoder that supports fractional resolution available in the encoder, the values of shape indices Ishape,A, Ishape,B and the size parameters SIZEshapeA SIZEshapeB are forwarded to the arithmetic (or range) encoder, for multiplexing into the bit-stream. The arithmetic/range encoder may use a uniform PDF to encode these shape indices.
In the case no arithmetic or range encoder is available, the index Ishape,A is sent to the multiplex unit and multiplexed using ceil(log 2(SIZEshapeA)) bits, (23 bits in the 38 bit example).
In the case no arithmetic or range encoder is available the index Ishape,B is sent to the multiplex unit and multiplexed using ceil(log 2(SIZEshapeB)) bits, (4 bits in the 38 bit example).
Table 8 gives on overview of encoded bits as sent to the multiplexing unit, for the 38 bit example.
In general the decoder performs a submode index isubmode, guided operations of the encoder results, to end up with the quantized LSFs (denoted LSFq), as the required information for constructing the quantized LSFs has been transmitted from the encoder to the decoder, for example as indices.
Receiving and De-Multiplexing the Bits into Signals.
Decoder Synthesis of the Final Quantized LSF-Vector LSFg.
To obtain the quantized version of LSFin, denoted LSFq, at the decoder side, the following summation of the mean LSF and the stage 1 and stage 2 contribution is made.
LSFq=[LSFMean]+[LiL HiH]+ghat*GMEANST2*[LSFR2,en1,dec]
LSFq is now available in the decoder, for use by the overall decoding process, e.g. to represent the Direct-form AR-coefficients in 1/A(z) in a Linear Predictive time domain decoder or to represent a frequency envelope shape in a frequency domain decoder.
In the following, example tables for stage1 and stage 2 scaling operations and transforms in ANSI-C syntax are given.
{0.250, 0.250, 0.250, 0.250, 0.250, 0.250, 0.250, 0.250, 0.250, 0.250, 0.250, 0.250, 0.250, 0.250, 0.250, 0.250, 0.250, −0.250, 0.250, −0.250, 0.250, −0.250, 0.250, −0.250, 0.250, −0.250, 0.250, −0.250, 0.250, −0.250, 0.250, −0.250, 0.250, 0.250, −0.250, −0.250, 0.250, 0.250, −0.250, −0.250, 0.250, 0.250, −0.250, −0.250, 0.250, 0.250, −0.250, −0.250, 0.250, −0.250, −0.250, 0.250, 0.250, −0.250, −0.250, 0.250, 0.250, −0.250, −0.250, 0.250, 0.250, −0.250, −0.250, 0.250, 0.250, 0.250, 0.250, 0.250, −0.250, −0.250, −0.250, −0.250, 0.250, 0.250, 0.250, 0.250, −0.250, −0.250, −0.250, −0.250, 0.250, −0.250, 0.250, −0.250, −0.250, 0.250, −0.250, 0.250, 0.250, −0.250, 0.250, −0.250, −0.250, 0.250, −0.250, 0.250, 0.250, 0.250, −0.250, −0.250, −0.250, −0.250, 0.250, 0.250, 0.250, 0.250, −0.250, −0.250, −0.250, −0.250, 0.250, 0.250, 0.250, −0.250, −0.250, 0.250, −0.250, 0.250, 0.250, −0.250, 0.250, −0.250, −0.250, 0.250, −0.250, 0.250, 0.250, −0.250, 0.250, 0.250, 0.250, 0.250, 0.250, 0.250, 0.250, 0.250, −0.250, −0.250, −0.250, −0.250, −0.250, −0.250, −0.250, −0.250, 0.250, −0.250, 0.250, −0.250, 0.250, −0.250, 0.250, −0.250, −0.250, 0.250, −0.250, 0.250, −0.250, 0.250, −0.250, 0.250, 0.250, 0.250, −0.250, −0.250, 0.250, 0.250, −0.250, −0.250, −0.250, −0.250, 0.250, 0.250, −0.250, −0.250, 0.250, 0.250, 0.250, −0.250, −0.250, 0.250, 0.250, −0.250, −0.250, 0.250, −0.250, 0.250, 0.250, −0.250, −0.250, 0.250, 0.250, −0.250, 0.250, 0.250, 0.250, 0.250, −0.250, −0.250, −0.250, −0.250, −0.250, −0.250, −0.250, −0.250, 0.250, 0.250, 0.250, 0.250, 0.250, −0.250, 0.250, −0.250, −0.250, 0.250, −0.250, 0.250, −0.250, 0.250, −0.250, 0.250, 0.250, −0.250, 0.250, −0.250, 0.250, 0.250, −0.250, −0.250, −0.250, −0.250, 0.250, 0.250, −0.250, −0.250, 0.250, 0.250, 0.250, 0.250, −0.250, −0.250, 0.250, −0.250, −0.250, 0.250, −0.250, 0.250, 0.250, −0.250, −0.250, 0.250, 0.250, −0.250, 0.250, −0.250, −0.250, 0.250};
I.e. the first column of had_fwd_st2_fl (all values equal to +0.25), produces the DC coefficient when applying the Hadamard transform.
The first row column of had_fwd_st2_fl, (also with all values equal to +0.25), produces the first coefficient when applying the inverse Hadamard transform.
It should be noted that for the Hadamard matrix case, the transpose of the Hadamard matrix is the Hadamard matrix itself.
This Hadamard table can be saved in ROM as 16 16-bit words, as all the values have the same magnitude “0.25”. The only difference is the signs, which may be represented by a single bit per matrix coefficient.
The RDCT coefficients were obtained by offline matching the LSF-residual inter-coefficient amplitude correlation to its neighbouring coefficients (e.g ACF(1) analysis of on a large database given that abs(LSFR2(n)) is 1.0, abs(LSFR2(n−1)) and abs (LSFR2(n+1)) both will approximately have a value of 0.25). The RDCT matrix is created by designing a first rotational warping matrix R creating an approximation of these inter-coefficient amplitude correlations, and then combining matrix R with a set of DCT basis vectors into the single RDCT(16×16) matrix named st2_rdct_fwd_fl
In the table, the RDCT scaling factors are stored column wise, and the IRDCT scaling factors stored row wise.
{0.115, 0.473, 0.104, 0.475, 0.069, 0.437, 0.062, 0.382, 0.050, 0.313, 0.041, 0.233, 0.028, 0.143, 0.012, 0.051, 0.129, 0.449, 0.115, 0.312, 0.040, 0.048, −0.020, −0.231, −0.072, −0.431, −0.101, −0.487, −0.095, −0.377, −0.049, −0.149, 0.154, 0.400, 0.112, 0.046, −0.058, −0.368, −0.150, −0.456, −0.105, −0.138, 0.030, 0.301, 0.141, 0.472, 0.114, 0.236, 0.183, 0.331, 0.065, −0.215, −0.195, −0.432, −0.118, 0.045, 0.150, 0.451, 0.176, 0.132, −0.082, −0.396, −0.191, −0.302, 0.210, 0.252, −0.033, −0.376, −0.247, −0.121, 0.149, 0.421, 0.187, −0.041, −0.222, −0.405, −0.102, 0.196, 0.242, 0.343, 0.230, 0.174, −0.158, −0.395, −0.117, 0.250, 0.303, 0.113, −0.219, −0.377, −0.060, 0.305, 0.285, 0.042, −0.235, −0.361, 0.242, 0.101, −0.270, −0.292, 0.129, 0.370, 0.065, −0.329, −0.236, 0.175, 0.328, 0.036, −0.309, −0.239, 0.163, 0.365, 0.248, 0.031, −0.338, −0.110, 0.323, 0.170, −0.289, −0.227, 0.247, 0.277, −0.194, −0.315, 0.133, 0.346, −0.046, −0.358, 0.253, −0.039, −0.352, 0.094, 0.332, −0.164, −0.297, 0.222, 0.254, −0.269, −0.199, 0.307, 0.138, −0.336, −0.091, 0.340, 0.260, −0.107, −0.313, 0.251, 0.143, −0.333, 0.072, 0.294, −0.263, −0.158, 0.364, −0.032, −0.344, 0.214, 0.225, −0.305, 0.272, −0.163, −0.225, 0.299, −0.149, −0.197, 0.385, −0.090, −0.279, 0.296, −0.076, −0.239, 0.364, −0.032, −0.342, 0.251, 0.288, −0.198, −0.091, 0.227, −0.388, 0.078, 0.236, −0.265, 0.299, 0.026, −0.352, 0.256, −0.163, −0.125, 0.426, −0.181, 0.305, −0.205, 0.080, 0.091, −0.416, 0.204, −0.251, −0.020, 0.321, −0.211, 0.376, −0.062, −0.172, 0.187, −0.451, 0.109, 0.318, −0.187, 0.258, −0.024, −0.179, 0.118, −0.467, 0.145, −0.336, 0.044, 0.093, −0.096, 0.439, −0.152, 0.400, −0.050, 0.325, −0.159, 0.401, −0.074, 0.191, −0.010, −0.096, 0.047, −0.346, 0.090, −0.480, 0.102, −0.451, 0.080, −0.274, 0.015, 0.329, −0.140, 0.480, −0.080, 0.460, −0.064, 0.412, −0.056, 0.350, −0.046, 0.274, −0.035, 0.189, −0.022, 0.097, −0.002};
I.e. the values in the first column of rdct_fwd_st2_fl (all positive values [0.115 . . . 0.329]), produces the zeroth RDCT coefficient when applying the RDCT transform as matrix operation. Further, the first row column of rdct_fwd_st2_fl, produces the first inverse transformed coefficient IRDCT(1) when applying the IRDCT transform as a matrix operation.
In the table, DCT scaling factors are stored column wise, IDCT scaling factors are stored row wise.
{0.250, 0.352, 0.347, 0.338, 0.327, 0.312, 0.294, 0.273, 0.250, 0.224, 0.196, 0.167, 0.135, 0.103, 0.069, 0.035, 0.250, 0.338, 0.294, 0.224, 0.135, 0.035, −0.069, −0.167, −0.250, −0.312, −0.347, −0.352, −0.327, −0.273, −0.196, −0.103, 0.250, 0.312, 0.196, 0.035, −0.135, −0.273, −0.347, −0.338, −0.250, −0.103, 0.069, 0.224, 0.327, 0.352, 0.294, 0.167, 0.250, 0.273, 0.069, −0.167, −0.327, −0.338, −0.196, 0.035, 0.250, 0.352, 0.294, 0.103, −0.135, −0.312, −0.347, −0.224, 0.250, 0.224, −0.069, −0.312, −0.327, −0.103, 0.196, 0.352, 0.250, −0.035, −0.294, −0.338, −0.135, 0.167, 0.347, 0.273, 0.250, 0.167, −0.196, −0.352, −0.135, 0.224, 0.347, 0.103, −0.250, −0.338, −0.069, 0.273, 0.327, 0.035, −0.294, −0.312, 0.250, 0.103, −0.294, −0.273, 0.135, 0.352, 0.069, −0.312, −0.250, 0.167, 0.347, 0.035, −0.327, −0.224, 0.196, 0.338, 0.250, 0.035, −0.347, −0.103, 0.327, 0.167, −0.294, −0.224, 0.250, 0.273, −0.196, −0.312, 0.135, 0.338, −0.069, −0.352, 0.250, −0.035, −0.347, 0.103, 0.327, −0.167, −0.294, 0.224, 0.250, −0.273, −0.196, 0.312, 0.135, −0.338, −0.069, 0.352, 0.250, −0.103, −0.294, 0.273, 0.135, −0.352, 0.069, 0.312, −0.250, −0.167, 0.347, −0.035, −0.327, 0.224, 0.196, −0.338, 0.250, −0.167, −0.196, 0.352, −0.135, −0.224, 0.347, −0.103, −0.250, 0.338, −0.069, −0.273, 0.327, −0.035, −0.294, 0.312, 0.250, −0.224, −0.069, 0.312, −0.327, 0.103, 0.196, −0.352, 0.250, 0.035, −0.294, 0.338, −0.135, −0.167, 0.347, −0.273, 0.250, −0.273, 0.069, 0.167, −0.327, 0.338, −0.196, −0.035, 0.250, −0.352, 0.294, −0.103, −0.135, 0.312, −0.347, 0.224, 0.250, −0.312, 0.196, −0.035, −0.135, 0.273, −0.347, 0.338, −0.250, 0.103, 0.069, −0.224, 0.327, −0.352, 0.294, −0.167, 0.250, −0.338, 0.294, −0.224, 0.135, −0.035, −0.069, 0.167, −0.250, 0.312, −0.347, 0.352, −0.327, 0.273, −0.196, 0.103, 0.250, −0.352, 0.347, −0.338, 0.327, −0.312, 0.294, −0.273, 0.250, −0.224, 0.196, −0.167, 0.135, −0.103, 0.069, −0.035}
I.e. the values in the first column of dct_fwd_st2_fl, i.e. all values equal to 0.25=1/sqrt(16), produces the DC coefficient when applying the DCT transform as a matrix operation.
Further, the first row column of dct_fwd_st2_fl, produces the first inverse transformed coefficient IDCT(x) when applying the IDCT transform as a matrix operation.
G_MEANST2 TABLE for various first stage base VQ-layer sizes 0 to 7 bits. G_MEANST2 contains experimentally obtained values over a very large database for mean scaling of a 2nd stage quantized residual vector, given a unit energy scaled PVQ-vector.
The gain-table may be produced by this function:
MeanGain_st2=2(x*−0.111645+−3.431255), which is using a log 2 linear relation for the mean gain and first stage base bits x, with x bits for each split.
float MeanGain_st2_fl[8]={0.0927047729f, 0.0794105530f, 0.0680236816f, 0.0582695007f, 0.0499153137f, 0.0427551270f, 0.0366249084f, 0.0313720703f};
I.e. G_MEANST2 when using a 2×5 bit first stage LSF-VQ is MeanGain_s2_fl[5]=0.0427551270f.
The LSFmean table may be trained off-line or simply use a linear spread of points over the normalized frequency unit circle range [0 . . . 1.0], where 1.0 corresponds to Fs/2, i.e. half the sampling frequency. An example of an LSFmean table:
{0.0604248047f, 0.1060791016f, 0.1582641602f, 0.2119750977f, 0.2736206055f, 0.3338623047f, 0.3935546875f, 0.4495849609f, 0.5078125000f, 0.5642089844f, 0.6213378906f, 0.6777343750f, 0.7379150391f, 0.7984619141f, 0.8619995117f, 0.9247436523f}
LSF-residual codebooks L and H are typically trained offline on a large data set.
{−0.013, −0.018, −0.018, −0.012, 0.009, 0.029, 0.043, 0.046, −0.008, −0.012, −0.015, −0.018, −0.022, −0.028, −0.031, −0.032, −0.023, −0.036, −0.050, −0.060, −0.062, −0.041, −0.014, 0.001, 0.020, 0.024, 0.026, 0.018, −0.003, −0.023, −0.041, −0.049, 0.048, 0.091, 0.102, 0.099, 0.079, 0.063, 0.051, 0.042, −0.003, 0.001, 0.013, 0.016, 0.007, −0.005, −0.016, −0.023, −0.009, −0.004, 0.014, 0.046, 0.074, 0.085, 0.092, 0.093, −0.021, −0.031, −0.044, −0.056, −0.070, −0.073, −0.069, −0.055, 0.009, 0.007, 0.001, −0.009, −0.020, −0.020, −0.004, −0.001, −0.018, −0.027, −0.036, −0.040, −0.041, −0.037, −0.029, −0.020, −0.016, −0.017, −0.009, 0.009, 0.039, 0.056, 0.066, 0.070, −0.014, −0.019, −0.020, −0.013, 0.003, 0.013, 0.014, 0.015, 0.005, 0.016, 0.026, 0.032, 0.031, 0.031, 0.031, 0.031, 0.062, 0.073, 0.068, 0.065, 0.058, 0.047, 0.039, 0.036, −0.010, −0.014, −0.014, −0.011, −0.008, −0.007, −0.008, −0.008, 0.049, 0.050, 0.043, 0.050, 0.040, 0.029, 0.060, 0.060, −0.015, −0.023, −0.033, −0.036, −0.024, 0.004, 0.031, 0.038, 0.002, 0.004, 0.005, 0.003, 0.004, 0.003, 0.004, 0.003, 0.032, 0.039, 0.045, 0.045, 0.043, 0.032, 0.022, 0.014, 0.004, 0.003, −0.004, −0.015, −0.030, −0.042, −0.055, −0.059, 0.024, 0.028, 0.027, 0.024, 0.021, 0.016, 0.011, 0.007, 0.052, 0.067, 0.061, 0.049, 0.028, 0.012, −0.001, −0.010, 0.026, 0.029, 0.027, 0.019, 0.008, −0.003, −0.010, −0.016, 0.018, 0.036, 0.055, 0.081, 0.095, 0.098, 0.098, 0.096, 0.019, 0.027, 0.031, 0.038, 0.048, 0.052, 0.053, 0.055, 0.011, 0.010, 0.004, −0.005, −0.015, −0.020, −0.027, −0.032, −0.008, −0.004, 0.010, 0.023, 0.036, 0.042, 0.045, 0.046, −0.007, −0.004, 0.005, 0.014, 0.016, 0.014, 0.017, 0.020, 0.012, 0.027, 0.045, 0.064, 0.072, 0.075, 0.067, 0.058, 0.000, 0.028, 0.060, 0.094, 0.080, 0.053, 0.023, −0.001, −0.008, −0.015, −0.024, −0.034, −0.046, −0.057, −0.064, −0.060, −0.018, −0.026, −0.035, −0.038, −0.030, −0.011, 0.000, 0.005};
i.e. index iL=0 in codebook L yields vector:
{−0.013, −0.018, −0.018, −0.012, 0.009, 0.029, 0.043, 0.046}
and index iL=31 in codebook L yields vector:
{−0.018, −0.026, −0.035, −0.038, −0.030, −0.011, 0.000, 0.005}; {−0.066, −0.069, −0.071, −0.061, −0.035, −0.013, −0.002, 0.003, 0.026, 0.037, 0.048, 0.061, 0.063, 0.055, 0.041, 0.025, −0.083, −0.080, −0.057, −0.026, −0.002, 0.006, 0.009, 0.009, −0.037, −0.041, −0.046, −0.049, −0.036, −0.014, −0.008, −0.002, −0.002, −0.006, −0.017, −0.029, −0.046, −0.049, −0.010, 0.001, 0.029, 0.024, 0.017, 0.009, −0.003, −0.015, −0.022, −0.020, 0.057, 0.074, 0.093, 0.104, 0.091, 0.073, 0.050, 0.028, −0.002, 0.006, 0.018, 0.026, 0.032, 0.030, 0.023, 0.015, 0.024, 0.030, 0.035, 0.038, 0.036, 0.031, 0.023, 0.015, −0.054, −0.049, −0.040, −0.030, −0.022, −0.019, −0.011, −0.003, −0.038, −0.042, −0.045, −0.048, −0.050, −0.048, −0.042, −0.020, −0.029, −0.030, −0.038, −0.046, −0.059, −0.055, −0.005, 0.004, 0.024, 0.021, 0.018, 0.017, 0.014, 0.011, 0.008, 0.004, 0.001, 0.003, 0.005, 0.006, 0.008, 0.008, 0.007, 0.004, 0.113, 0.118, 0.111, 0.101, 0.082, 0.064, 0.044, 0.024, 0.066, 0.035, 0.000, −0.025, −0.024, 0.005, 0.010, 0.009, 0.060, 0.057, 0.050, 0.043, 0.030, 0.019, 0.009, 0.002, 0.038, 0.037, 0.034, 0.028, 0.019, 0.011, 0.005, 0.001, 0.109, 0.096, 0.058, 0.018, −0.015, −0.030, 0.003, 0.009, −0.032, −0.023, −0.008, 0.006, 0.017, 0.017, 0.014, 0.010, −0.022, −0.027, −0.031, −0.035, −0.032, −0.030, −0.029, −0.020, 0.095, 0.093, 0.085, 0.076, 0.060, 0.046, 0.030, 0.015, −0.001, −0.008, −0.016, −0.018, −0.006, 0.010, 0.012, 0.009, 0.012, 0.010, 0.003, −0.004, −0.010, −0.013, −0.006, −0.002, −0.025, −0.019, −0.011, −0.005, −0.003, −0.007, −0.008, −0.007, −0.013, −0.019, −0.030, −0.043, −0.050, −0.012, −0.004, −0.005, −0.035, −0.036, −0.034, −0.022, −0.004, 0.004, 0.006, 0.005, −0.018, −0.021, −0.027, −0.034, −0.049, −0.061, −0.066, −0.037, −0.052, −0.057, −0.063, −0.067, −0.067, −0.045, −0.024, −0.007, 0.003, −0.001, −0.007, −0.013, −0.023, −0.031, −0.036, −0.026, −0.011, −0.013, −0.017, −0.021, −0.020, −0.019, −0.016, −0.010, 0.061, 0.066, 0.066, 0.062, 0.052, 0.042, 0.030, 0.017};
i.e. index iH=0 in codebook H yields vector:
{−0.066, −0.069, −0.071, −0.061, −0.035, −0.013, −0.002, 0.003};
and index iH=31 in codebook H yields vector:
{0.061, 0.066, 0.066, 0.062, 0.052, 0.042, 0.030, 0.017};
In the following, Spectral distortion (with and without transforms) for Outlier mode, Regular mode, Combined mode will be discussed.
In
From left to right is shown:
5. A dual stage trained Multistage Split Vector Quantizer, MS-SVQ, realization, SD-performance, with 2×7b stage1 quantization, and 24 bit stage 2 quantization. Where stage 2 is a Split-VQ to maintain reasonable complexity.
Weighted Million Operations per Second, WMOPS, figures are given for (3,4,5) in the list above. It can be seen that the 1.0 WMOPS combined mode(4) performs nearly as well as the 1.7 WMOPS MS-SVQ(5) and with fewer outlier points, and further it can be seen that the combined mode performs at least as well as a mode with a larger first stage(3), using 50% higher total complexity.
Table 9 shows complexity estimation for an LSF update rate of 100 Hz (every 10 ms),
To maintain a low complexity, the search is first performed in the shape-only direction assuming optimal gain with the outlier submode resolution, and when that resolution has been achieved, the shape resolution is extended in the regular resolution set{A} dimensions, and possibly reduced in the regular resolution set{B} dimensions. In a second search step the total gain-shape error is evaluated for all the available energy shells.
In
In
In accordance with the above, an efficient low complexity method is provided for quantization of LSF coefficients.
According to embodiments, application of a Transform to the LSF-residual 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 LSF-residual 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 LSF-residual 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.
To perform the methods and actions herein, an encoder 1600 and a decoder 1800 are provided.
For the encoder, the embodiments may be implemented through one or more processors 1603 in the encoder depicted in
An audio encoder 1600 may comprise an apparatus for handling input Line Spectral Frequency, LSF, coefficients (LSFin), wherein the apparatus is configured to determine LSF residual coefficients (LSFR2) as first compressed LSF coefficients subtracted from the input LSF coefficients, and to transform the LSF residual coefficients (LSFR2) into a warped domain (LSFR2T); to apply one of a plurality of gain-shape coding schemes on the transformed LSF residual coefficients in order to achieve gain-shape coded LSF 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 LSF residual coefficients; and transmit, over a communication channel to a decoder, the first compressed LSF coefficients, the gain-shape coded LSF residual coefficients, and information on the applied gain-shape coding scheme.
The apparatus my further be configured to quantize the input LSF coefficients using a first number of bits and determine LSF residual coefficients (LSFR2) by subtracting the quantized LSF coefficients from the input LSF coefficients, wherein the transmitted first compressed LSF coefficients are the quantized LSF coefficients. The apparatus my further be configured to selectively apply one of the plurality of gain-shape coding schemes on the transformed LSF residual coefficients. The apparatus my further be configured to remove a mean from the input LSF coefficients. The apparatus my further be configured to transform the first compressed LSF coefficients into a warped domain.
The encoder 1600 may according to the embodiment of
For the decoder 1800, the embodiments herein may be implemented through one or more processors 1803 in the decoder 1800 depicted in
An audio decoder 1800 may comprise an apparatus for handling input Line Spectral Frequency, LSF, coefficients (LSFin), wherein the apparatus is configured to receive, over a communication channel from an encoder (1600), a representation of first compressed LSF coefficients, gain-shape coded LSF residual coefficients, and information on an applied gain-shape coding scheme, applied by the encoder; to apply, one of a plurality of gain-shape decoding schemes on the received gain-shape coded LSF residual coefficients according to the received information on applied gain-shape coding scheme, in order to achieve LSF 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 LSF residual coefficients; to transform the LSF residual coefficients from a warped domain into an LSF original domain, and to determine LSF coefficients as the transformed LSF residual coefficients added with the received first compressed LSF coefficients.
The apparatus may further be configured to de-quantize the quantized LSF coefficients using a first number of bits corresponding to the number of bits used for quantizing LSF coefficients at a quantizer of the encoder, and to determine the LSF coefficients as the transformed LSF residual coefficients added with the de-quantized LSF coefficients, wherein the received first compressed LSF coefficients are quantized LSF coefficients. The apparatus may further be configured to receive, over the communication channel from the encoder, the first number of bits used at a quantizer of the encoder.
The decoder 1800 may according to the embodiment of
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 1603 or 1803, 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.
Although the description above contains a plurality of specificities, these should not be construed as limiting the scope of the concept described herein but as merely providing illustrations of some exemplifying embodiments of the described concept. It will be appreciated that the scope of the presently described concept fully encompasses other embodiments which may become obvious to those skilled in the art, and that the scope of the presently described concept is accordingly not to be limited. Reference to an element in the singular is not intended to mean “one and only one” unless explicitly so stated, but rather “one or more.” All structural and functional equivalents to the elements of the above-described embodiments that are known to those of ordinary skill in the art are expressly incorporated herein by reference and are intended to be encompassed hereby. Moreover, it is not necessary for an apparatus or method to address each and every problem sought to be solved by the presently described concept, for it to be encompassed hereby. In the exemplary figures, a broken line generally signifies that the feature within the broken line is optional.
The steps of handling the LSF residual coefficients has an advantage in that it provides a computationally efficient handling that at the same time results in an efficient compression of the LSF residual. Consequently, the method results in a computation efficient and compression efficient handling of the LSF coefficients.
The LSF coefficients may also be called an LSF coefficient vector. Similarly, the LSF residual coefficients may be called an LSF residual coefficient vector. The warped domain may be a warped quantization domain. The application of one of the plurality of gain-shape coding schemes may be performed per LSF residual coefficient basis. For example, a first scheme may be applied for a first group of LSF residual coefficients and a second scheme may be applied for a second group of LSF residual coefficients.
The wording “resolution” above signifies number of bits used for a coefficient. In other words, gain resolution signifies number of bits used for defining gain for a coefficient and shape resolution signifies number of bits used for defining shape for a coefficient.
The above method has the advantage that it enables a low first number of bits used in the quantizing step.
By selectively applying a gain-shape coding scheme the encoder can select the gain-shape coding scheme that is best suited for the individual coefficient.
The above embodiment has the advantage that it lowers average computational complexity.
In other words, in PVQ regular coding scheme, as the coefficient gain here is said to be approximately constant at 1.0, bits can be used only, or at least mainly, for defining shape. In PVQ outlier mode, on the other hand, bits are used both for defining gain and shape. As an example, the first value of the second gain coefficient may be 0.5 and the second value of the second gain coefficient may be 2,0. The PVQ regular coding scheme may be called PVQ regular mode, or sub-mode. Similarly, the PVQ outlier coding scheme may be called PVQ outlier mode, or sub-mode. The coefficient gain above is a linear adjustment gain of a given long term mean gain (G_MEANST2) for the gain-shape stage. (If one would define the adjustment gain in a logarithmic domain, the value “1.0” in the linear domain above, would correspond to 0 dB.)
According to another embodiment, an encoder is provided that is configured to perform any of the mentioned embodiments above.
To transform the coefficients from a warped domain into an LSF original domain signifies that the coefficients are warped back to the LSF residual domain in which they were before they were transformed into the warped domain at the encoder.
Method according to embodiment 11, further comprising receiving, over the communication channel from the encoder, the first number of bits used at a quantizer of the encoder.
The first number of bits may be predetermined between encoder and decoder. If not, information of the first number of bits is sent from the encoder to the decoder.
According to another embodiment, a decoder is provided that is configured to perform any of the embodiments above performed by the decoder.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/EP2017/080678 | 11/28/2017 | WO | 00 |
Number | Date | Country | |
---|---|---|---|
62435173 | Dec 2016 | US |