System and method for data compression and decompression
AssigneeAvast Software s.r.o.
InventorsPeter Kubov, Peter Matula
Life of this patent
Estimating the term…
Abstract
A data processing method in the form of a data compression method is provided in which a plurality of integers are accessed. Each of the plurality of integers is split to generate a first plurality of numbers respectively paired with a second plurality of numbers. A first tuple is generated based on the first plurality of numbers. A second tuple is generated based on the second plurality of numbers and the first plurality of numbers. The first tuple and the second tuple are stored. A system and computer readable medium enabling the data processing method are further provided.
Claims21
A data compression method comprising:
- accessing a plurality of integers of a number (K);
- splitting each of the plurality of integers to generate a first plurality of numbers respectively paired with a second plurality of numbers;
- comparing a plurality of values over a range to the first plurality of numbers to generate a plurality of quantities;
- storing a first tuple including the plurality of quantities, the plurality of quantities respectively ordered as elements of the first tuple based on the respective value represented by each of the plurality of quantities;
- and
- storing a second tuple including the second plurality of numbers in elements of the second tuple, each one of the second plurality of numbers included as a sub-element in a respective element of the second tuple based on the respective one of the first plurality of numbers to which the one of the second plurality of numbers is paired;
- wherein the number (K) of the plurality of integers is greater than (2BA*BI)/BA, wherein the BA is equal to a bit size of each of the plurality of values, and wherein the BI is equal to a bit size of each of the elements of the first tuple, to achieve a sum (SC) of the first tuple and the second tuple which is less than the number (K) of the plurality of integers times a bit size (B) of each of the plurality of integers to achieve a compression ratio greater than 1, wherein the compression ratio is equal to (K*B)/SC.
A data compression method comprising:
- accessing a plurality of integers of a number (K);
- splitting each of the plurality of integers to generate a first plurality of numbers respectively paired with a second plurality of numbers;
- determining a quantity of each value of a plurality of values represented by the first plurality of numbers to generate a plurality of quantities;
- storing a first tuple including the plurality of quantities, the plurality of quantities respectively ordered as elements of the first tuple based on the respective value represented by each of the plurality of quantities;
- and
- storing a second tuple including the second plurality of numbers in elements of the second tuple, each one of the second plurality of numbers included as a sub-element in a respective element of the second tuple based on an order in the first tuple of the quantity of the respective one of the first plurality of numbers to which the one of the second plurality of numbers is paired;
- wherein the number (K) of the plurality of integers is greater than (2BA*BI)/BA, wherein the BA is equal to a bit size of each of the plurality of values, and wherein the BI is equal to a bit size of each of the elements of the first tuple, to achieve a sum (SC) of the first tuple and the second tuple which is less than the number (K) of the plurality of integers times a bit size (B) of each of the plurality of integers to achieve a compression ratio greater than 1, wherein the compression ratio is equal to (K*B)/SC.
A system for data compression, comprising:
- one or more processors;
- and
- memory storing executable instructions that, as a result of being executed, cause the system to perform operations comprising:
- accessing a plurality of integers of a number (K);
- splitting each of the plurality of integers to generate a first plurality of numbers respectively paired with a second plurality of numbers;
- providing a plurality of values over a range;
- comparing the plurality of values to the first plurality of numbers to determine for each of the plurality of values a quantity of matches in the first plurality of numbers to generate a plurality of quantities;
- storing a first tuple including the plurality of quantities, the plurality of quantities respectively ordered as elements of the first tuple based on the respective value represented by each of the plurality of quantities;
- and
- storing a second tuple including the second plurality of numbers in elements of the second tuple, wherein each one of the second plurality of numbers is inserted as a sub-element in a respective element of the second tuple based on the respective one of the first plurality of numbers to which the one of the second plurality of numbers is paired;
- wherein the number (K) of the plurality of integers is greater than (2BA*BI)/BA, wherein the BA is equal to a bit size of each of the plurality of values, and wherein the BI is equal to a bit size of each of the elements of the first tuple, to achieve a sum (SC) of the first tuple and the second tuple which is less than the number (K) of the plurality of integers times a bit size (B) of each of the plurality of integers to achieve a compression ratio greater than 1, wherein the compression ratio is equal to (K*B)/SC.
A non-transitory computer-readable storage medium storing executable instructions that, as a result of execution by one or more processors of a computer system, cause the computer system to perform operations comprising:
- accessing a plurality of integers of a number (K);
- splitting each of the plurality of integers to generate a first plurality of numbers respectively paired with a second plurality of numbers;
- determining a quantity of each value of a plurality of values represented by the first plurality of numbers to generate a plurality of quantities;
- storing a first tuple including the plurality of quantities, the plurality of quantities respectively ordered as elements of the first tuple based on the respective value represented by each of the plurality of quantities;
- and
- storing a second tuple including the second plurality of numbers in elements of the second tuple, each one of the second plurality of numbers included in a respective element of the second tuple based on an order in the first tuple of the quantity of the respective one of the first plurality of numbers to which the one of the second plurality of numbers is paired;
- wherein the number (K) of the plurality of integers is greater than (2BA*BI)/BA, wherein the BA is equal to a bit size of each of the plurality of values, and wherein the BI is equal to a bit size of each of the elements of the first tuple, to achieve a sum (SC) of the first tuple and the second tuple which is less than the number (K) of the plurality of integers times a bit size (B) of each of the plurality of integers to achieve a compression ratio greater than 1, wherein the compression ratio is equal to (K*B)/SC.
A data compression method comprising:
- accessing a plurality of integers of a number (K);
- performing a compression of the plurality of integers, the performing the compression comprising:
- splitting each of the plurality of integers to generate a first plurality of numbers respectively paired with a second plurality of numbers;
- comparing a plurality of values over a range to the first plurality of numbers to generate a plurality of quantities;
- storing as a data structure in a memory a first tuple including the plurality of quantities, the plurality of quantities respectively ordered as elements of the first tuple based on the respective value represented by each of the plurality of quantities;
- and
- storing as the data structure in the memory a second tuple including the second plurality of numbers in elements of the second tuple, each one of the second plurality of numbers included as a sub-element in a respective element of the second tuple based on the respective one of the first plurality of numbers to which the one of the second plurality of numbers is paired;
- and
- wherein the number (K) of the plurality of integers is greater than (2BA*BI)/BA, wherein the BA is equal to a bit size of each of the plurality of values, and wherein the BI is equal to a bit size of each of the elements of the first tuple, to achieve a sum (SC) of the first tuple and the second tuple which is less than the number (K) of the plurality of integers times a bit size (B) of each of the plurality of integers to achieve a compression ratio greater than 1, wherein the compression ratio is equal to (K*B)/SC.
Dependencies are inferred from the claim text.