Data compression for use in communication systems
View Patent ↗Techniques for data compression are provided. A data compression technique may include selecting a symbol string, being one or more characters, that occurs within a data set, generating a symbol string code corresponding to respective positions of the symbol string within the data set, successively repeating the above procedure for any additional symbol strings that occur within the data set to produce any additional respective symbol string codes, and generating a compressed data code through combining the respective symbol string codes.
1. A method of compressing a data set, comprising:
selecting a symbol string, being one or more characters, that occurs within the data set;
generating a symbol string code corresponding to respective positions of the symbol string within the data set;
repeating the selecting a symbol string and the generating a symbol string code for any additional symbol strings that occur within the data set to produce any additional respective symbol string codes; and
generating a compressed data code through combining the respective symbol string codes.
2. The method of claim 1 , further comprising for at least one of the respective symbol string codes, coding respective positions of the symbol string using run length coding.
3. The method of claim 2 , wherein the coding comprises Golomb coding.
4. The method of claim 2 , wherein the coding comprises binary arithmetic coding.
5. The method of claim 1 , further comprising terminating the symbol string code with an End of Group (EOG) symbol.
6. The method of claim 1 , wherein the generating a symbol string code comprises determining distances between occurrences of the symbol string within the data set and generating the symbol string code based on the distances.
7. The method of claim 6 , wherein the generating a symbol string code comprises determining the distances between occurrences of the symbol string within the data set when positions of previously coded symbol strings are omitted.
8. The method of claim 1 , wherein the selecting a symbol string includes selecting a symbol string from a data set having a known length.
9. The method of claim 8 , wherein the generating a symbol string code does not include generating a symbol string code for a last symbol string.
10. The method of claim 1 , wherein the selecting a symbol string includes selecting a symbol string from a data set having a standard length.
11. The method of claim 1 , further comprising prefixing a length of the data set to the compressed data code.
12. The method of claim 1 , further comprising receiving an indication of a length of the data set before coding.
13. The method of claim 1 , further comprising employing a predetermined order of the symbol strings.
14. The method of claim 13 , further comprising ordering the symbol strings relative to their frequency of occurrence.
15. The method of claim 1 , wherein the selecting a symbol string includes selecting a symbol string that has a fixed predefined form.
16. The method of claim 1 , wherein the selecting a symbol string includes selecting a symbol string that has flexibility in form.
17. The method of claim 1 , further comprising prefixing the symbol string code with the symbol string.
18. The method of claim 1 , further comprising postfixing the symbol string code with the symbol string.
19. The method of claim 1 , further comprising:
generating the symbol string codes in a predetermined order during a first mode; and
embedding the symbol strings in the compressed data code in a second mode.
20. The method of claim 1 , further comprising interpreting a No More Groups signal as the end of the data set.
21. The method of claim 1 , further comprising combining additional information about the symbol string with the symbol string to form a new symbol string.
22. The method of claim 1 , further comprising storing the compressed data code or transmitting the compressed data code across a communications channel.
23. A system, comprising:
an analyzer configured to:
select a symbol string, being one or more characters, that occurs within a data set,
generate a symbol string code corresponding to respective positions of the symbol string within the data set,
repeat the select a symbol string and the generate a symbol string code for any additional symbol strings that occur within the data set to produce any additional respective symbol string codes, and
generate a compressed data code through combining the respective symbol string codes.
24. A tangible computer-readable medium having stored thereon, computer-executable instructions that, in response to execution by a computing device, cause the computing device to perform a method comprising:
selecting a symbol string, being one or more characters, that occurs within a data set;
generating a symbol string code corresponding to respective positions of the symbol string within the data set;
repeating the selecting a symbol string and the generating a symbol string code for any additional symbol strings that occur within the data set to produce any additional respective symbol string codes; and
generating a compressed data code through combining the respective symbol string codes.
25. A tangible computer-readable medium having instructions stored thereon, the instructions comprising:
instructions to select a symbol string, being one or more characters, that occurs within a data set;
instructions to generate a symbol string code corresponding to respective positions of the symbol string within the data set;
instructions to repeat the selecting a symbol string and the generating a symbol string code for additional symbol strings that occur within the data set to produce any additional respective symbol string codes; and
instructions to generate a compressed data code through combining the respective symbol string codes.
26. A system comprising:
means for selecting a symbol string, being one or more characters, that occurs within a data set;
means for generating a symbol string code corresponding to respective positions of the symbol string within the data set;
means for repeating the selecting a symbol string and the generating a symbol string code for any additional symbol strings that occur within the data set to produce any additional respective symbol string codes; and
means for generating a compressed data code through combining the respective symbol string codes.
27. A method comprising:
selecting a symbol string, being one or more characters, that occurs within a data set;
generating a symbol string code corresponding to respective positions of the symbol string within the data set through determining distances between occurrences of the symbol string within the data set;
repeating the selecting a symbol string and the generating a symbol string code for any additional symbol strings that occur within the data set to produce any additional respective symbol string codes; and
generating a compressed data code through combining the respective symbol string codes.
28. The method of claim 27 , wherein the generating a symbol string code further comprises determining the distances between occurrences of the symbol string within the data set in response to determining that positions of previously coded symbol strings are omitted.