IP Library Granted Patent US 10,756,755
Granted Patent B2
US 10,756,755 · App. 15/151,220 · Granted Aug 25, 2020

Adaptive audio codec system, method and article

Inventors: James D. Johnston (Redmond, WA); Stephen White (Woodinville, WA)
Assignee: IMMERSION NETWORKS, INC.
H03M7/3046G10L19/04G10L19/0017
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 10,756,755
App. No.
15/151,220
Granted
Aug 25, 2020
Kind
B2
Abstract

An encoder generates quantized signal words based on a difference signal. The encoder includes an adaptive quantizer. A step size applied by the adaptive quantizer is generated in a feedback loop and based on a loading factor and quantized signal words generated by the adaptive quantizer. The encoder includes coding circuitry which generates code words based on quantized signal words generated by the adaptive quantizer. The coding circuitry generates an escape code in response to a quantized signal word not being associated with a corresponding coding code word.

Claims (125)

1. An apparatus, comprising:

an encoder configured to generate quantized signal words by an adaptive quantizer calculating a difference signal between an input audio signal and a prediction signal, wherein a step size applied by the adaptive quantizer is generated in a feedback loop and based on a loading factor and quantized signal words generated by the adaptive quantizer; and a decoder configured to receive said quantized signal and generating said prediction signal using an inverse quantizer and a predictor circuit; and coding circuitry configured to generate code words based on a code book that includes a plurality of codes associated with quantized signal words generated by the adaptive quantizer, wherein the coding circuitry is configured to generate an escape code in response to a quantized signal word not being associated with a corresponding coding code word, the escape code indicative of a quantized signal being Included in a bit stream for a quantized value that is not included in the code book; and

a bit stream assembler configured to assemble the code words and the quantized signal into the bit stream.

2. The apparatus of claim 1 wherein the coding circuitry is configured to generate an escape code in response to at least one of:

an end of a signal channel; and

an end of a signal to be encoded; and

wherein the bit stream assembler is configured to assemble the code words and a difference between a maximum value and the quantized signal into the bit stream.

3. The apparatus of claim 1 wherein the coding circuitry is configured to use Huffman coding to generate the code words and the escape code is an embed escape code that is followed by a quantized signal value having a predetermined number of bits.

4. The apparatus of claim 1 wherein the feedback loop is configured to generate the step size according to:

d n+1 =βd n +m ( c n /L factor ),

where c n is a current quantized signal word, d n corresponds to a current step size in a log domain, L factor is the loading factor, m(c n /L factor ) is a log multiplier selected based on the current quantized signal c n and the loading factor L factor , β is a leakage coefficient, and d n+1 corresponds to a step size in the log domain to be applied to a next quantized signal word c n+1 .

5. The apparatus of claim 1 wherein the feedback loop is configured to generate the step size according to:

d n+1 max(β d n +m ( c n /L factor ), d min ),

where c n is a current quantized signal word, d n corresponds to a current step size in a log domain, L factor is the loading factor, m(c n /L factor ) is a log multiplier selected based on the current quantized signal c n and the loading factor L factor , β is a leakage coefficient, d min is a threshold step size in the log domain, and d n+1 corresponds to a step size in the log domain to be applied to a next quantized signal word c n+1 .

6. A method, comprising: encoding a signal, the encoding including: generating quantized signal words by an adaptive quantizer calculating a difference signal between an input audio signal and a prediction signal, wherein a quantization step size is determined in a feedback loop based on a loading factor and the generated quantized signal words; generating a prediction signal based on the generated quantized signal words; generating the difference signal based on the signal to be encoded and the prediction signal; and generating code words based on the quantized signal words, wherein the generating code words includes generating an escape code in response to a quantized signal word not being associated with a corresponding coding code word, wherein the escape code is followed by the quantized signal word in a bit stream.

7. The method of claim 6 , comprising:

generating an escape code in response to at least one of:

an end of a signal channel of the signal to be encoded; and

an end of the signal to be encoded.

8. The method of claim 6 , comprising:

using Huffman coding to generate the code words; and

wherein the quantized signal word in the bit stream has a predetermined number of bits.

9. The method of claim 6 , comprising:

determining the quantization step size according to:

d n+1 =βd n +m ( c n /L factor ),

where c n is a current quantized signal word, d n corresponds to a current step size in a log domain, L factor is the loading factor, m(c n /L factor ) is a log multiplier selected based on the current quantized signal c n and the loading factor L factor , β is a leakage coefficient, and d n+1 corresponds to a step size in the log domain to be applied to a next quantized signal word c n+1 .

10. The method of claim 6 , comprising:

determining the quantization step size according to:

d n+1 =max(β d n +m ( c n /L factor ), d min ),

where c n is a current quantized signal word, d n corresponds to a current step size in a log domain, L factor is the loading factor, m(c n /L factor ) is a log multiplier selected based on the current quantized signal c n and the loading factor L factor , β is a leakage coefficient, d min is a threshold step size in the log domain, and d n+1 corresponds to a step size in the log domain to be applied to a next quantized signal word c n+1 .

11. A non-transitory computer-readable medium having contents which configure signal processing circuitry to encode a signal, the encoding comprising:

generating quantized signal words based on a difference signal, wherein a quantization step size is determined in a feedback loop based on a loading factor and the generated quantized signal words;

generating a prediction signal based on the generated quantized signal words;

generating the difference signal based on the signal to be encoded and the prediction signal; and

generating code words based on the quantized signal words, wherein the generating code words includes generating an embed escape code in response to a quantized signal word not being associated with a corresponding coding code word and embedding the quantized signal word in a bit stream.

12. The non-transitory computer-readable medium of claim 11 wherein the encoding comprises:

generating an escape code in response to at least one of:

an end of a signal channel of the signal to be encoded; and

an end of the signal to be encoded.

13. The non-transitory computer-readable medium of claim 11 wherein the encoding comprises:

using Huffman coding to generate the code words; and

the embedding comprises embedding a predetermined number of bits in the bit stream.

14. The non-transitory computer-readable medium of claim 11 wherein the encoding comprises:

determining the quantization step size according to:

d n+1 =βd n +m ( c n /L factor ),

where c n is a current quantized signal word, d n corresponds to a current step size in a log domain, L factor is the loading factor, m(c n /L factor ) is a log multiplier selected based on the current quantized signal c n and the loading factor L factor , β is a leakage coefficient, and d n+1 corresponds to a step size in the log domain to be applied to a next quantized signal word c n+1 .

15. The non-transitory computer-readable medium of claim 11 wherein the encoding comprises:

determining the quantization step size according to:

d n+1 =max(β d n +m ( c n /L factor ), d min ),

where c n is a current quantized signal word, d n corresponds to a current step size in a log domain, L factor is the loading factor, m(c n /L factor ) is a log multiplier selected based on the current quantized signal c n and the loading factor L factor , β is a leakage coefficient, d min is a threshold step size in the log domain, and d n+1 corresponds to a step size in the log domain to be applied to a next quantized signal word c n+1 .

16. A system, comprising:

means for generating quantized signal words based on a difference signal, wherein a quantization step size is determined based on a loading factor and the generated quantized signal words;

means for generating a prediction signal based on the generated quantized signal words;

means for generating the difference signal based on the signal to be encoded and the prediction signal; and

means for generating code words based on the quantized signal words, wherein the generating code words includes generating an embed escape code in response to a quantized signal word not being associated with a corresponding coding code word.

17. The system of claim 16 wherein the means for generating code words generates an escape code in response to at least one of:

an end of a signal channel of the signal to be encoded; and

an end of the signal to be encoded.

18. The system of claim 16 wherein the means for generating code words uses Huffman coding to generate code words.

19. The system of claim 16 wherein the means for generating quantized signal words determines the quantization step size according to:

d n+1 =βd n +m ( c n /L factor ),

where c n is a current quantized signal word, d n corresponds to a current step size in a log domain, L factor is the loading factor, m(c n /L factor ) is a log multiplier selected based on the current quantized signal c n and the loading factor L factor , β is a leakage coefficient, and d n+1 corresponds to a step size in the log domain to be applied to a next quantized signal word c n+1 .

20. The system of claim 16 wherein the means for generating quantized signal words determines the quantization step size according to:

d n+1 =max(β d n +m ( c n /L factor ), d min ),

where c n is a current quantized signal word, d n corresponds to a current step size in a log domain, L factor is the loading factor, m(c n /L factor ) is a log multiplier selected based on the current quantized signal c n and the loading factor L factor , β is a leakage coefficient, d min is a threshold step size in the log domain, and d n+1 corresponds to a step size in the log domain to be applied to a next quantized signal word c n+1 .

21. The system of claim 16 , comprising:

means for decoding code words generated by the means for generating code words.

22. An apparatus, comprising:

decoding circuitry configured to generate quantized signal words based on code words included in a bit stream, wherein the decoding circuitry is configured to respond to an escape code in the bit stream indicative of a quantized signal word being included in the bit stream;

an inverse quantizer, wherein a step size applied by the inverse quantizer is generated in a feedback loop and based on a loading factor and quantized signal words received by the inverse quantizer from the decoding circuitry; and

a predictor circuit coupled to the inverse quantizer.

23. The apparatus of claim 22 wherein the coding circuitry is configured to respond to at least one of:

an escape code indicating an end of a signal channel; and

an escape code indicating an end of a signal to be encoded.

24. The apparatus of claim 22 wherein the coding circuitry is configured to use Huffman coding to generate the quantized signal words.

25. The apparatus of claim 22 wherein the feedback loop is configured to generate the step size according to:

d n+1 =dn+m ( c n /L factor ),

where c n is a current quantized signal word, d n corresponds to a current step size in a log domain, L factor is the loading factor, m(c n /L factor ) is a log multiplier selected based on the current quantized signal c n and the loading factor L factor , β is a leakage coefficient, and d n+1 corresponds to a step size in the log domain to be applied to a next quantized signal word c n+1 .

26. The apparatus of claim 22 wherein the feedback loop configured to generate the step size according to:

d n+1 =max(β d n +m ( c n /L factor ), d min ),

where c n is a current quantized signal word, d n corresponds to a current step size in a log domain, L factor is the loading factor, m(c n /L factor ) is a log multiplier selected based on the current quantized signal c n and the loading factor L factor , β is a leakage coefficient, d min is a threshold step size in the log domain, and d n+1 corresponds to a step size in the log domain to be applied to a next quantized signal word c n+1 .

27. A method, comprising:

generating quantized signal words based on code words included in a bit stream, the generating quantized signal words including responding to an escape code in the bit stream indicative of a quantized signal word being included in the bit stream;

inverse quantizing the generated quantized signal words, wherein a step size applied in the inverse quantizing is determined in a feedback loop and based on a loading factor and the generated quantized signal words; and

generating a prediction signal based on the generated quantized signal words.

28. The method of claim 27 wherein the generating quantized signal words includes responding to at least one of:

an escape code indicating an end of a signal channel; and

an escape code indicating an end of a signal to be encoded.

29. The method of claim 27 wherein the generating quantized signal words includes using Huffman coding.

30. The method of claim 27 wherein the feedback loop determines the step size according to:

d n+1 =βd n +m ( c n /L factor ),

where c n is a current quantized signal word, d n corresponds to a current step size in a log domain, L factor is the loading factor, m(c n /L factor ) is a log multiplier selected based on the current quantized signal c n and the loading factor L factor , βd n is a leakage coefficient, and d n+1 corresponds to a step size in the log domain to be applied to a next quantized signal word c n+1 .

31. The method of claim 27 wherein the feedback loop determines the step size according to:

d n+1 =max(β d n +m ( c n /L factor ), d min ),

where c n is a current quantized signal word, d n corresponds to a current step size in a log domain, L factor is the loading factor, m(c n /L factor ) is a log multiplier selected based on the current quantized signal c n and the loading factor L factor , β is a leakage coefficient, d min is a threshold step size in the log domain, and d n+1 corresponds to a step size in the log domain to be applied to a next quantized signal word c n+1 .

32. A non-transitory computer-readable medium having contents which configure signal processing circuitry to decode a signal, the decoding including:

generating quantized signal words based on code words included in a bit stream, the generating quantized signal words including responding to an escape code in the bit stream indicative of a quantized signal word being included in the bit stream;

inverse quantizing the generated quantized signal words, wherein a step size applied in the inverse quantizing is determined in a feedback loop and based on a loading factor and the generated quantized signal words; and

generating a prediction signal based on the generated quantized signal words.

33. The non-transitory computer-readable medium of claim 32 wherein the generating quantized signal words includes responding to at least one of:

an escape code indicating an end of a signal channel; and

an escape code indicating an end of a signal to be encoded.

34. The non-transitory computer-readable medium of claim 32 wherein the generating quantized signal words includes using Huffman coding.

35. The non-transitory computer-readable medium of claim 32 wherein the feedback loop determines the step size according to:

d n+1 =βd n +m ( c n /L factor ),

where c n is a current quantized signal word, d n corresponds to a current step size in a log domain, L factor is the loading factor, m(c n /L factor ) is a log multiplier selected based on the current quantized signal c n and the loading factor L factor , τd n is a leakage coefficient, and d n+1 corresponds to a step size in the log domain to be applied to a next quantized signal word c n+1 .

36. The non-transitory computer-readable medium of claim 32 wherein the feedback loop determines the step size according to:

d n+1 =max(β d n +m ( c n /L factor ), d min ),

where c n is a current quantized signal word, d n corresponds to a current step size in a log domain, L factor is the loading factor, m(c n /L factor ) is a log multiplier selected based on the current quantized signal c n and the loading factor L factor , β is a leakage coefficient, d min is a threshold step size in the log domain, and d n+1 corresponds to a step size in the log domain to be applied to a next quantized signal word c n+1 .

37. A system, comprising:

means for generating quantized signal words based on code words included in a bit stream, the generating quantized signal words including responding to an escape code in the bit stream indicative of a quantized signal word being included in the bit stream;

means for inverse quantizing the generated quantized signal words, wherein a step size applied in the inverse quantizing is determined in a feedback loop and based on a loading factor and the generated quantized signal words; and

means for generating a prediction signal based on the generated quantized signal words.

38. The system of claim 37 wherein the generating quantized signal words includes responding to at least one of:

an escape code indicating an end of a signal channel; and

an escape code indicating an end of a signal to be encoded.

39. The system of claim 37 wherein the generating quantized signal words includes using Huffman coding.

40. The system of claim 37 wherein the feedback loop determines the step size according to:

d n+1 =βd n +m ( c n /L factor ),

where c n is a current quantized signal word, d n corresponds to a current step size in a log domain, L factor is the loading factor, m(c n /L factor ) is a log multiplier selected based on the current quantized signal c n and the loading factor L factor , β is a leakage coefficient, and d n+1 corresponds to a step size in the log domain to be applied to a next quantized signal word c n+1 .

41. The system of claim 37 wherein the feedback loop determines the step size according to:

d n+1 =max(β d n +m ( c n /L factor ), d min ),

where c n is a current quantized signal word, d n corresponds to a current step size in a log domain, L factor is the loading factor, m(c n /L factor ) is a log multiplier selected based on the current quantized signal c n and the loading factor L factor , β is a leakage coefficient, d min is a threshold step size in the log domain, and d n+1 corresponds to a step size in the log domain to be applied to a next quantized signal word c n+1 .

42. The system of claim 37 , comprising:

means for generating a decoded signal based on inverse quantized signal words and the prediction signal.

Assignments (5)
ORDER GRANTING RECEIVER’S MOTION TO APPROVE SALE OF IP ASSETS, BID PROCEDURES, AND SALE DOCUMENTS Recorded Oct 23, 2025
From: SUPERIOR COURT FOR THE STATE OF WASHINGTON IN AND FOR THE COUNTY OF KING
To: TURNINGPOINTE, LLC
Reel/Frame 073238/0447 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 23, 2025
From: TURNINGPOINTE, LLC
To: SPOTIFY AB
Reel/Frame 072663/0038 →
ORDER APPOINTING GENERAL RECEIVER Recorded Oct 22, 2025
From: SUPERIOR COURT FOR THE STATE OF WASHINGTON IN AND FOR THE COUNTY OF KING
To: TURNINGPOINTE, LLC
Reel/Frame 073170/0289 →
MERGER AND CHANGE OF NAME Recorded Jan 21, 2019
From: IMMERSION SERVICES LLC; IMMERSION NETWORKS, INC.
To: IMMERSION NETWORKS, INC.
Reel/Frame 048104/0179 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 11, 2016
From: JOHNSTON, JAMES D.; WHITE, STEPHEN
To: IMMERSION SERVICES LLC
Reel/Frame 038675/0994 →
Continuity (1)
Related Publication 20170330572A1 · Nov 16, 2017