IP Library Granted Patent US 8,436,755
Granted Patent B2
US 8,436,755 · App. 13/112,597 · Granted May 7, 2013

Methods and devices for reducing sources in binary entropy coding and decoding

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 8,436,755
App. No.
13/112,597
Granted
May 7, 2013
Kind
B2
Abstract

Methods and systems are described for combining sources in a data compression system. In a system in which a context model results in the production of multiple sources or symbols, each source being associated with a probability estimate, sources may be combined by defining another, reduced size, set of probabilities. The new set of probabilities may be a subset of the predefined set of probabilities provided by the context model. Minimizing relative entropy may be a basis upon which to define a mapping of predefined probabilities to the new set of probabilities. An input sequence that was modeled using the context model may then be entropy encoded and entropy decoded using the new set of probabilities based on a mapping between the new probabilities and the predefined probabilities.

Claims (46)

1. A method for encoding an input sequence of symbols, the symbols belonging to a finite alphabet, wherein a context model specifies a predefined probability set, and wherein each symbol of the input sequence of symbols is associated with a probability from the predefined probability set on the basis of the context model, the method comprising:

selecting a new probability set, wherein the new probability set is not identical to the predefined probability set;

assigning each of the symbols of the input sequence a respective probability from the new probability set based upon a mapping, wherein the mapping maps each of the probabilities of the predefined probability set to a respective one of the probabilities from the new probability set; and

entropy encoding the input sequence of symbols, wherein the entropy encoding includes grouping symbols on the basis of their respective assigned probabilities from the new probability set.

2. The method claimed in claim 1 , wherein the new probability set is a subset of the predefined probability set.

3. The method claimed in claim 2 , wherein assigning each of the symbols includes defining the mapping by determining, for each probability of the predefined probability set, to which one of the probabilities from the new probability set it is mapped.

4. The method claimed in claim 3 , wherein determining is based on selecting the one of the probabilities from the new probability set that minimizes a relative entropy expression.

5. The method claimed in claim 1 , wherein selecting the new probability set comprises selecting the new probability set from amongst a plurality of predetermined candidate probability sets.

6. The method claimed in claim 5 , wherein entropy encoding includes including information regarding the selected new probability set in a header.

7. The method claimed in claim 1 , wherein selecting the new probability set comprises generating a set of candidate probability sets based on the most frequently occurring probabilities from the predefined probability set in the input sequence, and wherein selecting further comprises selecting the new probability set from amongst the set of candidate probability sets.

8. The method claimed in claim 7 , wherein selecting the new probability set further comprises dynamically generating the mapping by determining, for each probability of the predefined probability set, to which one of the probabilities from the new probability set it is mapped.

9. The method claimed in claim 7 , wherein entropy encoding includes identifying the probabilities in the new probability set within a header.

10. A method for decoding an encoded bitstream to obtain a sequence of symbols, the symbols belonging to a finite alphabet, wherein a context model specifies a predefined probability set, and wherein each symbol of the sequence of symbols is associated with a probability from the predefined probability set on the basis of the context model, the method comprising:

reading, from the bitstream, information identifying a new probability set, wherein the new probability set is not identical to the predefined probability set;

assigning, to each of the symbols of the sequence of symbols, a respective probability from the new probability set based upon a mapping, wherein the mapping maps each of the probabilities of the predefined probability set to a respective one of the probabilities from the new probability set; and

entropy decoding the encoded bitstream on the basis of their respective assigned probabilities from the new probability set.

11. The method claimed in claim 10 , wherein the new probability set is a subset of the predefined probability set.

12. The method claimed in claim 11 , wherein assigning a respective probability includes defining the mapping by determining, for each probability of the predefined probability set, to which one of the probabilities from the new probability set it is mapped.

13. The method claimed in claim 12 , wherein determining is based on selecting the one of the probabilities from the new probability set that minimizes a relative entropy expression.

14. The method claimed in claim 10 , wherein the information identifying the new probability set comprises information identifying one of a predefined set of candidate probability sets.

15. The method claimed in claim 10 , wherein the information identifying the new probability set specifies the probabilities from the predefined probability set that are included in the new probability set.

16. The method claimed in claim 15 , wherein reading further comprises dynamically generating the mapping by determining, for each probability of the predefined probability set, to which one of the probabilities from the new probability set it is mapped based on minimizing a relative entropy expression.

17. An encoder for encoding an input sequence of symbols, the symbols belonging to a finite alphabet, wherein a context model specifies a predefined probability set, and wherein each symbol of the input sequence of symbols is associated with a probability from the predefined probability set on the basis of the context model, the encoder comprising:

a memory storing the input sequence of symbols;

a processor; and

an encoding application executable by the processor and which, when executed, configures the processor to:

select a new probability set, wherein the new probability set is not identical to the predefined probability set,

assign each of the symbols of the input sequence a respective probability from the new probability set based upon a mapping, wherein the mapping maps each of the probabilities of the predefined probability set to a respective one of the probabilities from the new probability set, and

entropy encode the input sequence of symbols, wherein the entropy encoding includes grouping symbols on the basis of their respective assigned probabilities from the new probability set.

18. The encoder claimed in claim 17 , wherein the new probability set is a subset of the predefined probability set.

19. The encoder claimed in claim 18 , wherein the processor is configured to define the mapping by determining, for each probability of the predefined probability set, to which one of the probabilities from the new probability set it is mapped on the basis of minimizing a relative entropy expression.

20. The encoder claimed in claim 17 , wherein the processor is configured to select the new probability set from amongst a plurality of predetermined candidate probability sets.

21. The encoder claimed in claim 17 , wherein the processor is configured to select the new probability set by generating a set of candidate probability sets based on the most frequently occurring probabilities from the predefined probability set in the input sequence, and selecting the new probability set from amongst the set of candidate probability sets.

22. A decoder for decoding an encoded bitstream to obtain a sequence of symbols, the symbols belonging to a finite alphabet, wherein a context model specifies a predefined probability set, and wherein each symbol of the sequence of symbols is associated with a probability from the predefined probability set on the basis of the context model, the decoder comprising:

a memory;

a processor;

a decoding application executable by the processor and which, when executed, configures the processor to

read, from the bitstream, information identifying a new probability set, wherein the new probability set is not identical to the predefined probability set;

assign, to each of the symbols of the sequence of symbols, a respective probability from the new probability set based upon a mapping, wherein the mapping maps each of the probabilities of the predefined probability set to a respective one of the probabilities from the new probability set; and

entropy decode the encoded bitstream on the basis of their respective assigned probabilities from the new probability set.

23. The decoder claimed in claim 22 , wherein the new probability set is a subset of the predefined probability set.

24. The decoder claimed in claim 23 , wherein the processor is configured to define the mapping by determining, for each probability of the predefined probability set, to which one of the probabilities from the new probability set it is mapped based on minimizing a relative entropy expression.

25. The decoder claimed in claim 22 , wherein the information identifying the new probability set comprises information identifying one of a predefined set of candidate probability sets.

26. The decoder claimed in claim 22 , wherein the information identifying the new probability set specifies the probabilities from the predefined probability set that are included in the new probability set.

27. A non-transitory computer-readable medium storing computer-executable instructions which, when executed by one or more processors, configure the one or more processors to perform the method claimed in claim 1 .

28. A non-transitory computer-readable medium storing computer-executable instructions which, when executed by one or more processors, configure the one or more processors to perform the method claimed in claim 10 .

Assignments (5)
NUNC PRO TUNC ASSIGNMENT Recorded Jun 19, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064270/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064104/0103 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 23, 2021
From: KORODI, GERGELY FERENC; HE, DAKE
To: SLIPSTREAM DATA INC.
Reel/Frame 057254/0824 →
CHANGE OF NAME Recorded Mar 1, 2016
From: RESEARCH IN MOTION LIMITED
To: BLACKBERRY LIMITED
Reel/Frame 037963/0731 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 26, 2011
From: SLIPSTREAM DATA INC.
To: RESEARCH IN MOTION LIMITED
Reel/Frame 026646/0119 →