Pyramid vector quantizer shape search
AssigneeTelefonaktiebolaget LM Ericsson (publ)
InventorJonas Svedberg
Life of this patent
Estimating the term…
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, maxampy, of a current vector y, whether more than a current bit word length is needed to represent enloopy, in a lossless manner in the upcoming inner dimension loop. The variable enloopy 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.
Claims24
A method for Pyramid Vector Quantizer, (PVQ) shape search, performed by an audio encoder including a digital signal processor, the method comprising:
- the digital signal processor receiving a target vector x as input;
- the digital signal processor deriving a vector y using the target vector x by iteratively adding unit pulses in an inner dimension search loop;
- before entering a next inner dimension search loop for unit pulse addition, the digital signal processor determining, (i) based on a maximum pulse amplitude, maxampy, of a current vector y, whether more than a current bit word length is needed to represent, in a lossless manner, a variable, enloopy, related to an accumulated energy of y, in the next inner dimension search loop, and (ii) based on a maximum absolute value, xabsmax, of the input vector, x, a possible upshift, in a bit word, of the next loop's accumulated in-loop correlation value, corrxy, between x and the vector y;
- the digital signal processor executing, in accordance with the determined current bit word length and the determination of the possible shift, the next inner dimension search loop for deriving the vector y, wherein
- executing the next inner dimension search loop comprises:
- the digital signal processor determining a position, nbest 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
- ,
- and
- the digital signal processor executes the next inner dimension search loop using a longer bit word length to represent a squared accumulated in-loop correlation value, corrxy2, between x and the vector y, in the inner loop as a result of determining that more than the current bit word length is needed to represent enloopy.
An audio encoder configured for Pyramid Vector Quantization (PVQ) shape search, the audio encoder comprising:
- a digital signal processor coupled to the memory, the processor configured to:
- receive a target vector x as input,
- derive a vector y using the target vector x by iteratively adding unit pulses in an inner dimension search loop,
- before entering a next inner dimension search loop for unit pulse addition,
- determine, (i) based on a maximum pulse amplitude, maxampy, of a current vector y, whether more than a current bit word length is needed to represent, in a lossless manner, a variable, enloopy, related to an accumulated energy of y, in the next inner dimension search loop, and (ii) based on a maximum absolute value, xabsmax, of the input vector, x, a possible upshift, in a bit word, of the next loop's accumulated in-loop correlation value, corrxy, between x and the vector y,
- execute, in accordance with the determined current bit word length and the determination of the possible shift, the next inner dimension search loop for deriving the vector y, wherein
- the processor is configured to execute the next inner dimension search loop by performing steps comprising:
- determining a position, nbest 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
- ,
- and
- using a longer bit word length to represent a squared accumulated in-loop correlation value, corrxy2, between x and the vector y, in the inner loop as a result of determining that more than the current bit word length is needed to represent enloopy.
An audio encoder configured for Pyramid Vector Quantization (PVQ) shape search, the audio encoder comprising:
- a first determining unit coupled to a memory, the first determining unit configured to:
- receive a target vector x as input;
- derive a vector y using the target vector x by iteratively adding unit pulses in an inner dimension search loop;
- before entering a next inner dimension search loop for unit pulse addition:
- determine, (i) based on a maximum pulse amplitude, maxampy, of a current vector y, whether more than a current bit word length is needed to represent, in a lossless manner, a variable, enloopy, related to an accumulated energy of y, in the upcoming inner dimension loop, and (ii) based on a maximum absolute value, xabsmax, of the input vector, x, a possible upshift, in a bit word, of the next loop's accumulated in-loop correlation value, corrxy, between x and the vector y, and
- execute, in accordance with the determined current bit word length and the determination of the possible shift, the next inner dimension search loop for deriving the vector y in accordance with the determination of the possible shift, wherein
- the audio encoder further comprises a fine search unit configured to, in the next inner dimension search loop for unit pulse addition, determine a position, nbest, 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
- ,
- and
- the fine search unit is further configured to use a longer bit word length to represent a squared accumulated in-loop correlation value, corrxy2, between x and the vector y, in the inner loop as a result of determining that more than the current bit word length is needed to represent enloopy.
Dependencies are inferred from the claim text.