Methods and apparatus for performing adaptive compression
First Claim
1. A method of compressing a file including a plurality of data segments, comprising:
- dividing the file into a plurality of segments of data;
compressing one of the plurality of segments of data;
determining whether compression of the one of the plurality of segments of data was successful; and
when the compression of the one of the plurality of segments of data was not successful, skipping one or more of the plurality of segments of data in proximity to the one of the plurality of segments of data that has been unsuccessfully compressed before applying the compressing step to another one of the plurality of segments of data.
8 Assignments
0 Petitions
Accused Products
Abstract
Methods and apparatus for performing adaptive compression are disclosed. A data stream is divided into a plurality of data segments. When one of the plurality of data segments is compressed, it is determined whether the compression has been successful. When the compression has been successful, a data segment in proximity to the compressed segment (e.g., the next data segment in the plurality of data segments) is compressed. However, when the compression has been unsuccessful, one or more of the plurality of data segments are skipped (i.e., not compressed) before compression is attempted on another one of the plurality of data segments. When a data segment is compressed, the compression algorithm (and any associated parameter(s)) that is applied is selected based upon a variety of factors, such as the length of the data segment, CPU speed, CPU availability, and/or data throughput such as the network bandwidth or network availability (e.g., where data is to be transmitted via a network interface). The compression algorithm (and any associated parameter(s)) may also be selected, at least in part, based upon a set of user preferences that indicate a preference between the speed with which compression is performed and the amount that a data segment is compressed.
79 Citations
50 Claims
-
1. A method of compressing a file including a plurality of data segments, comprising:
-
dividing the file into a plurality of segments of data;
compressing one of the plurality of segments of data;
determining whether compression of the one of the plurality of segments of data was successful; and
when the compression of the one of the plurality of segments of data was not successful, skipping one or more of the plurality of segments of data in proximity to the one of the plurality of segments of data that has been unsuccessfully compressed before applying the compressing step to another one of the plurality of segments of data. - View Dependent Claims (2)
-
-
3. A method of compressing a data stream, comprising:
-
dividing the data stream into a plurality of segments of data;
compressing one of the plurality of segments of data;
determining whether compression of the one of the plurality of segments of data was successful; and
when the compression of the one of the plurality of segments of data was not successful, skipping one or more of the plurality of segments of data following the one of the plurality of segments of data that has been unsuccessfully compressed before applying the compressing step to another one of the plurality of segments of data. - View Dependent Claims (4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33)
-
-
34. A method of identifying a type of compression to apply to one or more data segments of a data stream, comprising:
-
determining at least one of data throughput, network bandwidth, network availability, CPU availability, and CPU speed;
identifying a type of compression to apply to one or more data segments of the data stream based upon at least one of the data throughput, network bandwidth, network availability, CPU availability, and CPU speed; and
applying the type of compression to one or more data segments of the data stream. - View Dependent Claims (35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48)
-
-
49. An apparatus for compressing a file including a plurality of data segments, comprising:
-
a processor; and
a memory, at least one of the processor or the memory being adapted for;
dividing the file into a plurality of segments of data;
compressing one of the plurality of segments of data;
determining whether compression of the one of the plurality of segments of data was successful; and
when the compression of the one of the plurality of segments of data was not successful, skipping one or more of the plurality of segments of data in proximity to the one of the plurality of segments of data that has been unsuccessfully compressed before applying the compressing step to another one of the plurality of segments of data.
-
-
50. A computer-readable medium storing thereon computer-readable instructions for compressing a file including a plurality of data segments, comprising:
-
instructions for dividing the file into a plurality of segments of data;
instructions for compressing one of the plurality of segments of data;
instructions for determining whether compression of the one of the plurality of segments of data was successful; and
instructions for skipping one or more of the plurality of segments of data in proximity to the one of the plurality of segments of data that has been unsuccessfully compressed before applying the compressing step to another one of the plurality of segments of data when the compression of the one of the plurality of segments of data was not successful.
-
Specification