IP Library Granted Patent US 9,602,128
Granted Patent B2
US 9,602,128 · App. 15/189,627 · Granted Mar 21, 2017

Split gain shape vector coding

Inventors: Erik Norvell (Stockholm, SE); Volodya Grancharov (Solna, SE); Tomas Jansson Toftgård (Uppsala, SE)
Assignee: TELEFONAKTIEBOLAGET LM ERICSSON (PUBL)
H03M7/3082G10L19/002G10L19/038G10L19/22H04N19/124G10L15/08H03M7/30H04B1/665H04N7/50H04N19/61H05K999/99
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,602,128
App. No.
15/189,627
Granted
Mar 21, 2017
Kind
B2
Abstract

The invention relates to an encoder and a decoder and methods therein for supporting split gain shape vector encoding and decoding. The method performed by an encoder, where the encoding of each vector segment is subjected to a constraint related to a maximum number of bits, B MAX , allowed for encoding a vector segment. The method comprises, determining an initial number, Np —init , of segments for a target vector x; and further determining an average number of bits per segment, B AVG , based on a vector bit budget and Np —init . The method further comprises determining a final number of segments to be used, for the vector x, in the gain shape vector encoding, based on energies of the Np —init segments and a difference between B MAX and B AVG . The performing of the method enables an efficient allocation of the bits of the bit budget over the target vector.

Claims (79)

1. A method for encoding performed by a media encoder, the method comprising:

for a target vector x:

determining an initial number (Np_init) of segments for the target vector x, wherein a number of bits B band have been allocated to the target vector x;

determining an average number of bits per segment (Bavg), wherein determining Bavg comprises computing: Bavg=(B band /Np_init); and

determining a final number (Np) of segments for the target vector to be used during the encoding based on energies of the Np_init segments and a difference between a maximum number of bits (Bmax) and B avg.

2. The method according to claim 1 , wherein determining Np_init comprises computing Np_init using at least Bmax and B band .

3. The method according to claim 1 , wherein Np_init is a predetermined number given to the media encoder and a media decoder.

4. The method according to claim 1 , wherein the determining of the final number of segments comprises:

determining whether a relation between the energies of the Np_init segments and the difference between Bmax and Bavg fulfills a criterion; and

setting Np=Np_init+c, wherein c is an integer greater than or equal to 1, as a result of determining that the relation fulfills the criterion.

5. The method according to claim 4 , further comprising indicating an increase of the number of segments to a media decoder.

6. The method according to claim 1 , wherein the determining of the final number of segments for the target vector comprises:

for i=1, . . . , Np_init, computing Ei, wherein Ei is the log 2 energy of segment i of the Np_init segments of the target vector;

computing Eavg=mean ({Ei}i=1 to Np_init);

computing M=max({abs(Ei−Eavg)}i=1 to Np_init);

determining whether M>Mthr, wherein Mthr is a threshold based on a difference between Bmax and Bavg;

setting Np=Np_init+1 as a result of determining that M>Mthr.

7. The method according to claim 1 , further comprising indicating the final number of segments to a media decoder.

8. The method according to claim 1 , wherein the determining of Bavg and of a final number of segments is only performed when at least one additional condition is met.

9. The method according to claim 1 , wherein the determining of Bavg and of a final number of segments is performed when a bitrate per sample is above a given limit.

10. The method according to claim 1 , wherein the determining of Bavg and of a final number of segments is performed when the initial number of segments is below a threshold and a bitrate per sample is above a given limit.

11. A non-transitory computer readable medium having instructions stored therein which, when executed on at least one processor, causes the at least one processor to perform the method according to claim 1 .

12. A method for supporting split gain shape vector decoding performed by a media decoder, where a representation of each vector segment of a gain shape vector x is subjected to a constraint related to a maximum number of bits (Bmax) allowed for encoding a vector segment, the method comprising:

determining an initial number of segments (Np-init) for a vector xq to be reconstructed;

receiving from a media encoder an indication indicating whether or not an increased number of segments is applied for the vector xq, and

determining a final number of segments (Np) for the decoding of the vector xq based on both the received indication and Np-init, wherein

determining Np based on both the received indication and Np-init comprises: calculating Np=Np-init+c as a result of determining that the indication indicates that an increased number of segments is applied for the vector xq, wherein c is an integer greater than or equal to 1.

13. The method according to claim 12 , further comprising:

decoding the vector xq based on the final number of segments.

14. The method according to claim 12 , wherein the receiving of the indication is only performed when one or more additional conditions are met.

15. The method according to claim 14 , where an additional condition is that the vector bit budget is above a threshold for additional splits.

16. The method according to claim 14 , where an additional condition is that the initial number of splits is below a threshold and/or that a bitrate per sample is above a given limit.

17. A non-transitory computer readable medium having instructions stored therein which, when executed on at least one processor, causes the at least one processor to perform the method according to claim 12 .

18. A media encoder for performing split gain shape vector encoding, the media encoder being configured to:

for a target vector x:

determine an initial number (Np_init) of vector segments for the target vector x;

determine a threshold (Mthr) using Bmax and Np_init, wherein Bmax is a maximum number of bits allowed for encoding a vector segment; and

determine a final number (Np) of segments for the target vector to be used during the encoding based on energies of the Np_init segments and Mthr.

19. The media encoder according to claim 18 , being configured to determine Np based on energies of the Np_init segments and Mthr by setting Np=Np_init+1 as a result of determining that a relation between the energies of the Np_init segments and Mthr fulfills a criterion.

20. The media encoder according to claim 19 , being further configured to indicate the increase of the number of segments to a media decoder.

21. The media encoder according to claim 18 , wherein the media encoder is configured such that the media encoder determines Np based on energies of the Np_init segments and Mthr by:

for i=1, . . . , Np_init, computing Ei, wherein Ei is the log 2 energy of segment i of the Np_init segments of the target vector;

computing Eavg=mean ({Ei}i=1 to Np_init);

computing M=max({abs(Ei−Eavg)} i=1 to Np_init);

determining whether M>Mthr, wherein Mthr is a threshold based on a difference between Bmax and a value determined using Np_init; and

setting Np=Np_init+1 as a result of determining that M>Mthr.

22. The media encoder according to claim 18 , being further configured to indicate the final number of segments to a media decoder.

23. The media encoder according to claim 18 , being further configured to determine Np only when at least one additional condition is met.

24. The media encoder according to claim 18 , being configured to determine Np when a bitrate per sample is above a given limit.

25. The media encoder according to claim 18 , being configured to determine Np when the initial number of segments is below a threshold and a bitrate per sample is above a given limit.

26. A wireless device comprising a media encoder according to claim 18 .

27. A media decoder operable to perform gain shape vector decoding, where a representation of each vector segment of a gain shape vector x is subjected to a constraint related to a maximum number of bits (Bmax) allowed for encoding a vector segment; the media decoder being configured to:

determine an initial number of segments (Np-init) for a vector xq to be reconstructed;

receive from a media encoder an indication,

determine whether the indication indicates that an increased number of segments is applied for the vector xq, and

calculate Np=Np-init+c as a result of determining that the indication indicates that an increased number of segments is applied for the vector xq, wherein c is an integer greater than or equal to 1 and Np is a final number of segments for the decoding of the vector xq.

28. A wireless device comprising a media decoder according to claim 27 .

29. The media decoder according to claim 27 , being further configured to decode the vector xq based on Np.

30. The media decoder according to claim 27 , being further configured to receive the indication only when one or more additional conditions are met.

31. The media decoder according to claim 30 , where an additional condition is that the vector bit budget is above a threshold for additional splits.

32. The media decoder according to claim 30 , where an additional condition is that the initial number of splits is below a threshold and/or that a bitrate per sample is above a given limit.

33. A method for encoding performed by a media encoder, the method comprising:

determining an initial number of segments (Np_init) for a split Pyramid Vector Quantization (PVQ) vector; and

determining a final number of segments (Np) for the split PVQ vector based on a computed energy measure (M), a threshold (Mthr), and Np_init, wherein

the step of determining Np comprises:

determining whether M>Mthr; and

as a result of determining that M>Mthr, setting Np equal to Np_init+1.

34. The method of claim 33 , wherein Mthr is a function of Np_init, a maximum number of bits (Bmax), and a bit budget (Bband).

35. The method of claim 34 , wherein Mthr=Bmax−(Bband/Np_init).

36. The method of claim 33 , further comprising:

for i=1, . . . , Np_init, computing Ei, wherein Ei is the log 2 energy of segment i of the Np_init segments; and

computing Eavg=mean ({Ei}i=1 to Np_init), wherein

M=max({abs(Ei−Eavg)}i=1 to Np_init).

37. A media encoder for performing band splitting, the media encoder comprising a processing unit comprising one or more processors, wherein the processing unit is configured to perform a method comprising:

determining an initial number of segments (Np_init) for a split Pyramid Vector Quantization (PVQ) vector by computing Np_init or obtaining information indicating Np_init; and

determining a final number of segments (Np) for the split PVQ vector based on a computed energy measure (M), a threshold (Mthr), and Np_init, wherein

the step of determining Np comprises:

determining whether M>Mthr; and

as a result of determining that M>Mthr, setting Np equal to Np_init+1.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 8, 2016
From: GRANCHAROV, VOLODYA; NORVELL, ERIK; TOFTGÅRD, TOMAS
To: TELEFONAKTIEBOLAGET LM ERICSSON (PUBL)
Reel/Frame 039676/0311 →
Continuity (3)
Continuation 14440713
Provisional Application 61903024 · Nov 12, 2013
Related Publication 20160308554A1 · Oct 20, 2016