Pyramid vector quantizer shape search
Abstract
An encoder and a method therein for Pyramid Vector Quantizer, PVQ, shape search, the PVQ taking a target vector x as input and deriving a vector y by iteratively adding unit pulses in an inner dimension search loop. The method comprises, before entering a next inner dimension search loop for unit pulse addition, determining, based on the maximum pulse amplitude, maxamp y , of a current vector y, whether more than a current bit word length is needed to represent enloop y , in a lossless manner in the upcoming inner dimension loop. The variable enloop y is related to an accumulated energy of the vector y. The performing of this method enables the encoder to keep the complexity of the search at a reasonable level.
Claims
exact text as granted — not AI-modified1 . A method for Pyramid Vector Quantizer (PVQ) shape search, performed by an audio encoder, the PVQ taking a target vector x as input and deriving a vector y by iteratively adding unit pulses in an inner dimension search loop, the method comprising:
before entering a next inner dimension search loop for unit pulse addition, determining, based on a maximum pulse amplitude, maxamp y , of a current vector y, whether more than a current bit word length is needed to represent, in a lossless manner, a variable, enloop y , related to an accumulated energy of y, in the next inner dimension search loop.
2 . The method according to claim 1 , wherein the method further comprises:
before entering the next inner dimension search loop for unit pulse addition, determining, based on a maximum absolute value, xabs max , of the input vector, x, a possible upshift, in a bit word, of the next loop's accumulated in-loop correlation value, corr xy , between x and the vector y.
3 . The method according to claim 1 , further comprising:
when more than the current bit word length is needed to represent enloop y , performing the inner loop calculations using a longer bit word length to represent enloop y .
4 . The method according to claim 1 , further comprising:
when more than the current bit word length is needed to represent enloop y , performing the inner loop calculations using a longer bit word length to represent a squared accumulated in-loop correlation value, corr xy 2 , between x and the vector y, in the inner loop.
5 . The method according to claim 1 , further comprising:
when more than the current bit word length is not needed to represent enloop y , performing the inner loop calculations by employing a first unit pulse addition loop using a first bit word length to represent enloop y ; and when more than the current bit word length is needed to represent enloop y , performing the inner loop calculations by employing a second unit pulse addition loop using a longer bit word length to represent enloop y than the first unit pulse addition loop.
6 . The method according to claim 1 further comprising:
when more than the current bit word length is not needed to represent enloop y , performing the inner loop calculations by employing a first unit pulse addition loop having a certain precision; and
when more than the current bit word length is needed to represent enloop y , performing the inner loop calculations by employing a second unit pulse addition loop having a higher precision than the first unit pulse addition loop.
7 . The method according to claim 1 , wherein the determining, based on maxamp y , of whether more than the current bit word length is needed to represent enloop y comprises determining characteristics of the case when, in the next inner dimension search loop, aunit pulse is added to the position in y being associated with maxamp y .
8 . The method according to claim 1 , further comprising:
in the inner dimension search loop for unit pulse addition: determining a position, n best , in y for addition of a unit pulse by evaluating a cross-multiplication, for each position n in y, of a correlation and energy value for the current n; and a squared correlation, BestCorrSq and an energy value, bestEn, saved from previous values of n, as:
corr xy 2 *bestEn>BestCorrSq*enloop y
where
n
best
=
n
bestEn
=
enloop
y
BestCorrSq
=
corr
xy
2
}
,
when
corr
xy
2
*
bestEn
>
BestCorrSq
*
enloop
y
9 . The method according to claim 1 , further comprising:
keeping track of maxamp y when a final value of K, associated with the target vector x, exceeds a threshold value.
10 . A computer program product comprising a non-transitory computer readable medium storing a computer program comprising instructions which, when executed on at least one processor, cause the at least one processor to carry out the method according to claim 1 .
11 . The computer program product according to claim 12 , wherein at least one of the at least one processors is a Digital Signal Processor.
12 . An audio encoder configured for Pyramid Vector Quantization (PVQ) shape search, the PVQ taking a target vector x as input and deriving a vector y by iteratively adding unit pulses in an inner dimension search loop, the audio encoder being configured to:
before entering a next inner dimension search loop for unit pulse addition, determine, based on a maximum pulse amplitude, maxamp y , of a current vector y, whether more than a current bit word length is needed to represent, in a lossless manner, a variable, enloop y , related to an accumulated energy of y, in the next inner dimension loop.
13 . The audio encoder according to claim 12 , being further configured to:
before entering the next inner dimension loop for unit pulse addition, determine, based on a maximum absolute value, xabs max , of the input vector, x, a possible upshift, in a bit word, of the next loop's accumulated in-loop correlation value, corr xy , between x and the vector y.
14 . The audio encoder according to claim 12 , being further configured to:
perform the inner loop calculations using a longer bit word length to represent enloop y , when more than the current bit word length is needed to represent enloop y .
15 . The audio encoder according to claim 12 , being further configured to:
perform the inner loop calculations by employing a first unit pulse addition loop using a first bit word length when more than the current bit word length is not needed to represent enloop y , and perform the inner loop calculations by employing a second unit pulse addition loop using a longer bit word length than the first unit pulse addition loop when more than the current bit word length is needed to represent enloop y .
16 . The audio encoder according to claim 12 , being further configured to:
perform the inner loop calculations by employing a first unit pulse addition loop, having a certain precision, when more than the current bit word length is not needed to represent enloop y ; and perform the inner loop calculations by employing a second unit pulse addition loop, having a higher precision than the first unit pulse addition loop, when more than the current bit word length is needed to represent enloop y .
17 . The audio encoder according to claim 12 , wherein the determining, based on maxamp y , of whether more than the current bit word length is needed to represent enloop y is configured to comprise determining characteristics of the case when, in the next inner dimension search loop, aunit pulse is added to the position in y being associated with maxamp y .
18 . The audio encoder according to claim 12 , being further configured to:
in the inner dimension search loop for unit pulse addition, determine a position, n best , in y for addition of a unit pulse by evaluating a cross-multiplication, for each position n in y, of a correlation and energy value for the current n; and a correlation, BestCorrSq, and energy value, bestEn, saved from previous values of n, as:
corr xy 2 *bestEn>BestCorrSq*enloop y
where
n
best
=
n
bestEn
=
enloop
y
BestCorrSq
=
corr
xy
2
}
,
when
corr
xy
2
*
bestEn
>
BestCorrSq
*
enloop
y
19 . The audio encoder according to claim 12 , being further configured to keep track of maxamp y when a number of final unit pulses, K, associated with the target vector x, exceeds a threshold value.
20 . A communication device comprising the audio encoder according to claim 12 .Join the waitlist — get patent alerts
Track US2017301359A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.