IP Library Granted Patent US 7,183,951
Granted Patent B2
US 7,183,951 · App. 10/895,882 · Granted Feb 27, 2007

Method and apparatus for arithmetic coding and termination

Assignee: NTT Docomo, Inc.
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 7,183,951
App. No.
10/895,882
Granted
Feb 27, 2007
Kind
B2
Abstract

Methods and apparatuses for performing arithmetic encoding and/or decoding are disclosed. In one embodiment, an arithmetic decoder comprises a sequencer to generate a context identifier for an event of an event sequence, a probability estimator to determine a value for a LPS and a probability estimate for the LPS, and a decoding engine that includes a range register to assign a value to a range for the LPS. The value is based on the probability estimate, a value stored in the range register and the context identifier to a range for the LPS if the context identifier is not equal to an index and the value is not based on the value stored in range register if the context identifier is equal to the index. The decoding engine further determines a value of a binary event based on the value of the range for the LPS and bits from an information sequence.

Claims (71)

1. A method for decoding encoded events that indicate the termination of arithmetic coding, the method comprising:

comparing a first register value stored in the first register to a comparison value, the first register value corresponding to a binary event indicating termination of arithmetic coding in a bitstream;

setting an output result representing a decoded symbol to a first value based on magnitudes of the first register value and the comparison value being in a first relationship with each other;

setting the output result representing the decoded symbol to a second value and performing renormalization of a range to adjust a range values based on magnitudes of the first register value and the comparison value being in a second relationship with each other, the second relationship being different than the first relationship; and

outputting the output result.

2. The method defined in claim 1 wherein the comparison value is a constant.

3. The method defined in claim 2 wherein setting the output result comprises:

setting the output result to the first value if the first register value is less than the constant; and

setting the output result to a second value if the first register value is greater than the constant.

4. The method defined in claim 1 wherein the comparison value comprises a value stored in a range register.

5. The method defined in claim 4 wherein setting the output result comprises:

setting the output result to the first value if the first register value is greater than or equal to the value stored in the range register; and

setting the output result to a second value if the first register value is less than the value stored in the range register.

6. The method defined in claim 5 wherein the first register value comprises an end of slice flag.

7. The method defined in claim 5 wherein non-arithmetically encoded data follows the event in the bitstream.

8. The method defined in claim 7 additional arithmetically encoded data follows the non-arithmetically encoded data in the bitstream.

9. The method defined in claim 1 further comprising:

setting the value stored in the range register by subtracting a predetermined number from a previous value stored in the range register.

10. The method defined in claim 9 wherein the predetermined number comprises 100 Hex.

11. An article of manufacture having one or more computer-readable media with instructions stored thereon which, when executed by a system, cause the system to perform a method for decoding encoded events that indicate the termination of arithmetic coding, the method comprising:

determining whether a first register value is greater than or equal to a value stored in a range register, the first register value corresponding to a binary event indicating termination of arithmetic coding in a bitstream;

setting an output result representing a decoded symbol to a first value if the first register value is greater than or equal to the value stored in the range register;

setting the output result representing the decoded symbol to a second value and performing renormalization of the range value, if the first register value is less than the value stored in the range register; and

outputting the output result.

12. An arithmetic decoder comprising:

a sequencer to generate a context identifier for an event of an event sequence; and

a probability estimator to determine a value for a LPS and a probability estimate for the LPS; and

a decoding engine including a range register to assign a value to a range for the LPS, wherein the value is based on the probability estimate, a value stored in the range register and the context identifier to a range for the LPS if the context identifier is not equal to an index and the value is not based on the value stored in range register if the context identifier is equal to the index, and

the decoding engine further to output an output result representing a decoded symbol, the output result being a first value if a first register value stored in a first register is greater than or equal to the value stored in the range register, or the output result being a second value and to perform renormalization of the value stored in the range register if the first register value is less than the value stored in the range register.

13. An article of manufacture having one or more computer-readable media with instructions stored thereon which, when executed by a system, cause the system to perform a method for decoding encoded events that indicate the termination of arithmetic coding, the method comprising:

comparing a first register value stored in the first register to a comparison value, the first register value corresponding to a binary event indicating termination of arithmetic coding in a bitstream;

setting an output result representing a decoded symbol to a first value based on magnitudes of the first register value and the comparison value being in a first relationship with each other;

setting the output result representing the decoded symbol to a second value and performing renormalization of a range to adjust a range value, based on magnitudes of the first register value and the comparison value being in a second relationship with each other, the second relationship being different than the first relationship; and

outputting the output result.

14. The article of manufacture defined in claim 13 wherein the comparison value is a constant.

15. The article of manufacture defined in claim 14 wherein setting the output result comprises:

setting the output result to the first value if the first register value is less than the constant; and

setting the output result to a second value if the first register value is greater than the constant.

16. The article of manufacture defined in claim 13 wherein the comparison value comprises a value stored in a range register.

17. The article of manufacture defined in claim 16 wherein setting the output result comprises:

setting the output result to the first value if the first register value is greater than or equal to the value stored in the range register; and

setting the output result to a second value if the first register value is less than the value stored in the range register.

18. An arithmetic decoder comprising:

a sequencer to generate a context identifier, for an event of an event sequence; and

a probability estimator to determine a value for a LPS and a probability estimate for the LPS; and

a decoding engine including

a range register to assign a value to a range for the LPS, wherein the value stored in the range register is based on the probability estimate, a value stored in the range register and the context identifier to a range for the LPS if the context identifier is not equal to an index and the value is not based on the value stored in range register if the context identifier is equal to the index, and

a first register to store a first register value corresponding to a binary event indicating termination of arithmetic coding in a bitstream,

the decoding engine to:

output an output result representing a decoded symbol, the decoding engine setting the output result as a first value or a second value based on magnitudes of the first register value stored in a first register and the comparison value being in a first relationship with each other;

setting the output result representing the decoded symbol to a second value and performing renormalization of a range to adjust a range value, based on magnitudes of the first register value and the comparison value being in a second relationship with each other, the second relationship being different than the first relationship; and

outputting the output result.

19. The decoder defined in claim 18 wherein the comparison value is a constant.

20. The decoder defined in claim 19 wherein the decoding engine sets the output result by

setting the output result to the first value if the first register value is less than the constant; and

setting the output result to a second value if the first register value is greater than the constant.

21. The decoder defined in claim 18 wherein the comparison value comprises a value stored in a range register.

22. The decoder defined in claim 21 wherein the decoding engine sets the output result by:

setting the output result to the first value if the first register value is greater than or equal to the value stored in the range register; and

setting the output result to a second value if the first register value is less than the value stored in the range register.

23. A method for decoding encoded events that indicate the termination of arithmetic coding, the method comprising:

determining whether a first register value in a first register is greater than or equal to a value stored in a range register, the first register value corresponding to a binary event indicating termination of arithmetic coding in a bitstream;

setting an output result representing a decoded symbol to a first value if the first register value is greater than or equal to the value stored in the range register;

setting the output result representing the decoded symbol to a second value and performing renormalization of the range value, if the first register value is less than the value stored in the range register; and

outputting the output result.

24. The method defined in claim 23 further comprising:

setting the value stored in the range register by subtracting a predetermined number from a previous value stored in the range register.

25. The method defined in claim 24 wherein the predetermined number comprises 100 Hex.

26. The method defined in claim 23 wherein the first register value comprises an end of slice flag.

27. The method defined in claim 23 wherein non-arithmetically encoded data follows the event in the bitstream.

28. The method defined in claim 27 additional arithmetically encoded data follows the non-arithmetically encoded data in the bitstream.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 17, 2005
From: DOCOMO COMMUNICATIONS LABORATORIES USA, INC.
To: NTT DOCOMO, INC.
Reel/Frame 017228/0787 →
Continuity (4)
Continuation 1066563800 · Sep 18, 2003
Provisional Application 6041599900 · Oct 4, 2002
Provisional Application 6041224500 · Sep 20, 2002
Related Publication 20060017591A1 · Jan 26, 2006