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.
Claims15
A method performed by an audio encoder, the method comprising:
- receiving an input vector (S) representing an input audio signal;
- and
- enabling a decoder to produce a reconstructed vector (S{circumflex over ( )}) for use in obtaining an output audio signal corresponding to the input audio signal, wherein enabling the decoder to produce the reconstructed vector (S{circumflex over ( )}) comprises:
- using the input vector (S), obtaining a target vector (x), wherein x represents a shape of the input audio signal;
- using the target vector (x), generating an integer shape code vector (y) of length N, where N>0;
- using the integer shape code vector (y), generating a Pyramid Vector Quantizer (PVQ) index;
- and
- producing a bitstream for the decoder, wherein the bitstream includes the PVQ index and the PVQ index can be used by the decoder to produce said integer shape code vector (y), which can be used by the decoder to produce a reconstructed target vector (xq), and the reconstructed target vector (xq) can be used to produce the reconstructed vector (S{circumflex over ( )}), thereby enabling the decoder to produce S{circumflex over ( )}, wherein
- generating the integer shape code vector (y) comprises:
- initializing the vector y;
- determining a first accumulated correlation value based on vectors x and y;
- determining, based on a maximum absolute value of the target vector (xabsmax) and the first accumulated correlation value, a first upshift value;
- using the first upshift value, determining a first correlation value (corr_xy_1);
- using corr_xy_1, determining a first best position (nbest1) within the vector y;
- adding a first unit pulse to the vector y at position nbest1;
- after adding the first unit pulse to the vector y at position nbest1, determining a second accumulated correlation value based on vectors x and y;
- determining, based on the maximum absolute value of the target vector (xabsmax) and the second accumulated correlation value, a second upshift value;
- using the second upshift value, determining a second correlation value (corr_xy_2);
- using corr_xy_2, determining a second best position (nbest2) in the vector y for addition of a second unit pulse;
- and
- adding the second unit pulse to the vector y at position nbest2.
An audio encoder, the audio encoder comprising:
- a first determining unit coupled to a memory, the first determining unit configured to perform a process comprising:
- the method comprising:
- receiving an input vector (S) representing an input audio signal;
- and
- enabling a decoder to produce a reconstructed vector (S{circumflex over ( )}) for use in obtaining an output audio signal corresponding to the input audio signal, wherein enabling the decoder to produce the reconstructed vector (S{circumflex over ( )}) comprises:
- using the input vector (S), obtaining a target vector (x), wherein x represents a shape of the input audio signal;
- using the target vector (x), generating an integer shape code vector (y) of length N, where N>0;
- using the integer shape code vector (y), generating a Pyramid Vector Quantizer (PVQ) index;
- and
- producing a bitstream for the decoder, wherein the bitstream includes the PVQ index and the PVQ index can be used by the decoder to produce said integer shape code vector (y), which can be used by the decoder to produce a reconstructed target vector (xq), and the reconstructed target vector (xq) can be used to produce the reconstructed vector (S{circumflex over ( )}), thereby enabling the decoder to produce S{circumflex over ( )}, wherein
- generating the integer shape code vector (y) comprises:
- initializing the vector y;
- determining a first accumulated correlation value based on vectors x and y;
- determining, based on a maximum absolute value of the target vector (xabsmax) and the first accumulated correlation value, a first upshift value;
- using the first upshift value, determining a first correlation value (corr_xy_1);
- using corr_xy_1, determining a first best position (nbest1) within the vector y;
- adding a first unit pulse to the vector y at position nbest1;
- after adding the first unit pulse to the vector y at position nbest1, determining a second accumulated correlation value based on vectors x and y;
- determining, based on the maximum absolute value of the target vector (xabsmax) and the second accumulated correlation value, a second upshift value;
- using the second upshift value, determining a second correlation value (corr_xy_2);
- using corr_xy_2, determining a second best position (nbest2) in the vector y for addition of a second unit pulse;
- and
- adding the second unit pulse to the vector y at position nbest2.
Dependencies are inferred from the claim text.