Data compression for communication between two or more components in a system
View Patent ↗A method includes generating a first symbol string code indicative of one or more positions of a first symbol string within data to be compressed. A second symbol string code indicative of one or more positions of a second symbol string within the data is also generated. The first symbol string code and the second symbol string code are combined into a compressed data code.
1. A method comprising:
generating a first symbol string code indicative of one or more positions of a first symbol string within data to be compressed;
generating a second symbol string code indicative of one or more positions of a second symbol string within the data; and
combining the first symbol string code and the second symbol string code into a compressed data code.
2. The method of claim 1 , wherein a first value of the first symbol string code corresponds to a first position of a first occurrence of the first symbol string within the data.
3. The method of claim 1 , wherein the second symbol string code is generated based at least in part on a length of the data.
4. The method of claim 3 , wherein the length of the data is a number of positions of the data that are not yet coded.
5. The method of claim 1 , wherein the second symbol string code is generated based at least in part on a last position of the first symbol string in the data.
6. The method of claim 1 , wherein a first value of the second symbol string code corresponds to a first position of the second symbol string, and further wherein the first value is based at least in part on a first distance from a last position of the first symbol string to an end of the data and at least in part on a second distance from a beginning of the data to the first position of the second symbol string.
7. The method of claim 1 , further comprising determining a number of symbols between a beginning of the data and a first position of the first symbol string, wherein the number of symbols comprises a first value of the first symbol string code.
8. The method of claim 1 , further comprising using run length coding to generate the second symbol string code.
9. The method of claim 8 , wherein the run length coding comprises adaptive coding.
10. The method of claim 1 , wherein the first symbol string and the second symbol string are coded in a predetermined order.
11. The method of claim 1 , further comprising transmitting the compressed data code to a decoder.
12. The method of claim 1 , wherein the first symbol string code identifies a run of occurrences of the first symbol string.
13. The method of claim 1 , wherein the first symbol string code includes a length of the data.
14. The method of claim 1 , wherein the first symbol string code identifies one or more positions where the first symbol string does not occur within the data.
15. An apparatus comprising:
a processor configured to:
generate a first symbol string code indicative of one or more positions of a first symbol string within data to be compressed,
generate a second symbol string code indicative of one or more positions of a second symbol string within the data, and
combine the first symbol string code and the second symbol string code into a compressed data code; and
a transmitter operatively coupled to the processor and configured to transmit the compressed data code to a decoder.
16. The apparatus of claim 15 , wherein the second symbol string is generated based at least in part on a length of the data, and further wherein the length of the data comprises a number of positions of the data that are not yet coded.
17. The apparatus of claim 15 , wherein a first value of the second symbol string code corresponds to a first position of the second symbol string, and further wherein the first value is based at least in part on a first difference between an end of the data and a last position of the first symbol string, and at least in part on a second difference between the first position of the second symbol string and a beginning of the data.
18. The apparatus of claim 15 , wherein the processor is further configured to determine a number of symbols between a beginning of the data and a first position of the first symbol string, wherein the number of symbols comprises a first value of the first symbol string code.
19. The apparatus of claim 15 , wherein the processor is further configured to use run length coding to generate the second symbol string code.
20. A tangible computer-readable medium having stored thereon, computer-executable instructions that, if executed by a computing device, cause the computing device to perform a method comprising:
generating a first symbol string code indicative of one or more positions of a first symbol string within data to be compressed;
generating a second symbol string code indicative of one or more positions of a second symbol string within the data; and
combining the first symbol string code and the second symbol string code into a compressed data code.
21. The tangible computer-readable medium of claim 20 , wherein a first value of the first symbol string code comprises a number of symbols between a beginning of the data and a first position of the first symbol string.
22. The tangible computer-readable medium of claim 20 , wherein the second symbol string code is determined based at least in part on a length of the data and at least in part on the first symbol string code.
23. The tangible computer-readable medium of claim 22 , wherein the length of the data is a number of positions of the data that are not yet coded.
24. The tangible computer-readable medium of claim 20 , wherein a first value of the second symbol string code comprises a sum of a first difference between a length of the data and an end position of the first symbol string and a second difference between a first position of the second symbol string and a beginning position of the data.