IP Library Granted Patent US 7,126,500
Granted Patent B2
US 7,126,500 · App. 10/180,260 · Granted Oct 24, 2006

Method and system for selecting grammar symbols for variable length data compressors

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,126,500
App. No.
10/180,260
Granted
Oct 24, 2006
Kind
B2
Abstract

A data compression method and system replaces pairs of symbols in a string of symbols by a single new symbol. A method for selecting the pairs of symbols to be replaced employs a modified greedy algorithm. The method selects a next best pair of symbols for replacement by considering pairs that have a potential for usurping a current best candidate pair of symbols, due to their frequency of occurrence. A minimum savings threshold is evaluated to further avoid exhaustive searches of all possible pairs of symbols.

Claims (51)

1. A computer-readable medium having computer executable instructions for compressing symbols in a string of symbols, comprising:

generating sequences of symbols from the string of symbols, wherein the sequences of symbols are ordered according to an associated frequency of occurrence of each sequence of symbols in the string of symbols;

selecting a current candidate replacement sequence from the ordered sequences of symbols;

determining a target cost savings and a minimum frequency of occurrence associated with the current candidate replacement sequence, the target cost savings being associated with a reduction in an encoded length in the string of symbols resulting from replacing the candidate replacement sequence with another symbol; and

for other sequences of symbols in the ordered sequence of symbols having an associated frequency of occurrence that is greater than the minimum frequency of occurrence, performing actions including:

identifying an alternative candidate replacement sequence, wherein the identified alternative candidate sequence has an associated cost savings that is greater than the target cost savings; and

replacing the identified alternative candidate replacement sequence in the string of symbols by the other symbol.

2. The computer-readable medium of claim 1 , further comprising distinguishing candidate replacement sequences based on segregating patterns of sequences of symbols in the string of symbols.

3. The computer-readable medium of claim 1 , further comprising repeating the executable instructions until a predetermined minimum threshold is achieved.

4. The computer-readable medium of claim 3 , wherein the predetermined minimum threshold is determined to include at least a sum of bits to encode a grammar rule and the other symbol.

5. The computer-readable medium of claim 1 , wherein the sequence of symbols are re-ordered by examining new sequences created by replacing the identified alternative candidate replacement sequence with the other symbol.

6. The computer-readable medium of claim 1 , wherein the minimum frequency of occurrence corresponds to a value below which a sequence of symbols cannot have a superior cost savings.

7. The computer-readable medium of claim 1 , wherein the minimum frequency of occurrence is computed using a numerical method for converging on a solution to a non-linear problem.

8. The computer-readable medium of claim 7 , wherein the numerical method is selected from a group consisting of newton's, secant, and bisection methods.

9. A computer-readable medium having computer executable components for compressing symbols in a string of symbols, comprising:

a symbol sequence picker configured to:

generate sequences of symbols from the string of symbols, wherein the sequences of symbols are ordered according to an associated frequency of occurrence in the string of symbols;

select a current candidate replacement sequence from the ordered sequences of symbols as;

determine a target cost savings and a minimum frequency of occurrence associated with the current candidate replacement sequence, the target cost savings being associated with a reduction in an encoded length of the string of symbols resulting from replacing the candidate replacement sequence with another symbol; and

for other sequences of symbols in the ordered sequence of symbols having an associated frequency of occurrence that is greater than the minimum frequency of occurrence:

identify an alternative candidate replacement sequence, wherein the identified alternative candidate sequence has an associated cost savings that is greater than the target cost savings; and

replace the identified alternative candidate replacement sequence in the string of symbols by the other symbol.

10. The computer-readable medium of claim 9 , further comprising distinguishing candidate replacement sequences by segregating patterns of sequences of symbols in the string of symbols.

11. The computer-readable medium of claim 9 , wherein the symbol sequence picker is further configured to:

repeat the executable instructions until a predetermined minimum threshold is achieved.

12. The computer-readable medium of claim 11 , wherein the predetermined minimum threshold is determined to include at least a sum of bits to encode a grammar rule and the other symbol.

13. The computer-readable medium of claim 9 , wherein the sequence of symbols are re-ordered by examining new sequences created by replacing the identified alternative candidate replacement sequence with the single symbol.

14. The computer-readable medium of claim 9 , wherein the minimum frequency of occurrence corresponds to a value below which a sequence of symbols cannot have a superior cost savings.

15. The computer-readable medium of claim 9 , wherein the minimum frequency of occurrence is computed using a numerical method for converging on a solution to a non-linear problem.

16. The computer-readable medium of claim 15 , wherein the numerical method is selected from a group consisting of newton's, secant, and bisection methods.

17. A computer-implemented method for transmitting a compressed data file, comprising:

building a list of decompression information that has relevance to each of a plurality of strings of symbols; wherein building the list of decompression information comprises evaluating the plurality of strings of symbols to identify a candidate replacement sequence of symbols common to the plurality of strings of symbols; generating sequences of symbols from the plurality of strings of symbols; selecting an initial candidate replacement sequence of symbols from the sequences of symbols; determining a target cost savings and a minimum frequency of occurrence associated with the initial candidate replacement sequence of symbols; and analyzing the other sequences of symbols in the sequence of symbols that have a frequency of occurrence that is greater than the minimum frequency of occurrence; and

transmitting the list of decompression information in conjunction with a request for at least one of the plurality of strings of symbols.

18. The computer-implemented method of claim 17 , wherein building the list of decompression information comprises ordering the sequences of symbols according to an associated frequency of occurrence in the plurality of strings of symbols.

19. The computer-implemented method of claim 18 , wherein evaluating the plurality of strings of symbols, further comprises:

performing actions including:

identifying an alternative candidate replacement sequence of symbols, wherein the identified alternative candidate sequence of symbols has an associated cost savings that is greater than the target cost savings; and

replacing the identified alternative candidate replacement sequence of symbols in the plurality of strings of symbols by another symbol.

20. The computer-implemented method of claim 19 , wherein the sequence of symbols are re-ordered by examining new sequences created by replacing the identified alternative candidate replacement sequence with the other symbol.

21. The computer-implemented method of claim 19 , wherein the minimum frequency of occurrence corresponds to a value below which a sequence of symbols cannot have a superior cost savings.

22. The computer-implemented method of claim 19 , wherein the minimum frequency of occurrence is computed using a selected numerical method for converging on a solution to a non-linear problem.

23. The computer-readable medium of claim 22 , wherein the numerical method is selected from a group consisting of newton's, secant, and bisection methods.

24. An apparatus for transmitting a compressed data file, comprising:

a means for building a list of decompression information, wherein the means for building the list of decompression information comprises:

a means for generating sequences of symbols from a string of symbols;

a means selecting a current candidate replacement sequence from the sequences of symbols;

a means determining a target cost savings and a minimum frequency of occurrence associated with the current candidate replacement sequence, the target cost savings being associated with a reduction in an encoded length in the string of symbols resulting from replacing the candidate replacement sequence with another symbol; and

a means attempting to identify an alternative candidate replacement sequence when other sequences of symbols in the ordered sequence of symbols have an associated frequency of occurrence that is greater than the minimum frequency of occurrence; and

a means for transmitting the list of decompression information in conjunction with a request for at least one of the plurality of strings of symbols.

25. The apparatus of claim 24 , wherein the means for building the list of decompression information comprises:

a means for ordering the sequences of symbols according to an associated frequency of occurrence in the plurality of strings of symbols.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034541/0477 →