Adaptive compression
First Claim
1. A non-transitory computer-readable storage medium having computer-executable instructions for use in communicating a file between a client and a server over a network, the computer-executable instructions comprising program code for performing actions comprising:
- receiving a file having a file length and a header having a file length number representing the file length;
compressing at least a portion of the file using a first compression mode;
determining an expected file length based, in part, on a second compression mode, wherein the expected file length is less than the received file length number and is based on another portion of the file that is currently uncompressed using the second compression mode, the second and first compression modes being different;
sending the expected file length towards the client;
after sending the expected file length toward the client, compressing at least some of the other portion of the file using the second compression mode; and
sending the compressed portions of the file towards the client.
1 Assignment
0 Petitions
Accused Products
Abstract
A method, system, and apparatus are directed towards compression of content over a network. The content may include content length information, such as within a header. In one embodiment, a portion of the content may be compressed to approximately fill a buffer of a predefined size. If there remains additional uncompressed content, a new content length may be determined based in part on the length of the compressed content and the remaining uncompressed content. The buffered content and the new content length may then be forwarded in response to the request. The remaining uncompressed content may be split into predefined blocks using identity compression. Identity compression may then be applied to the remaining uncompressed content which is then forwarded to a destination in response to the request.
124 Citations
18 Claims
-
1. A non-transitory computer-readable storage medium having computer-executable instructions for use in communicating a file between a client and a server over a network, the computer-executable instructions comprising program code for performing actions comprising:
-
receiving a file having a file length and a header having a file length number representing the file length; compressing at least a portion of the file using a first compression mode; determining an expected file length based, in part, on a second compression mode, wherein the expected file length is less than the received file length number and is based on another portion of the file that is currently uncompressed using the second compression mode, the second and first compression modes being different; sending the expected file length towards the client; after sending the expected file length toward the client, compressing at least some of the other portion of the file using the second compression mode; and sending the compressed portions of the file towards the client. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. An apparatus for managing a communication, comprising:
-
a processor executing program code that; compresses at least a portion of a file into a buffer using a first compression mode; determines a file length such that when the file incompletely compresses into the buffer to determine an expected file length based on a remaining portion of the file that incompletely compresses into the buffer and prior to the remaining portion being compressed using a different compression mode, wherein determining the expected file length is based on a size of previously compressed portions, a size of remaining uncompressed portions, and at least one of a block header or size of a compression trailer; and a transceiver to receive the file over a network, and to send the expected file length and compressed portions of the file over the network. - View Dependent Claims (8, 9, 10, 11, 12, 13)
-
-
14. An apparatus for managing a communication between a client device and a server device, comprising:
-
a processor having instructions that perform actions, including; compressing portions of a file by employing at least two different compression modes and determining an expected content length based on at least one of the compression modes and prior to completing the compression of the file, wherein determining the expected file length is based on a size of previously compressed portions, a size of remaining uncompressed portions, and at least one of a block header or size of a compression trailer; and a transceiver to receive the file over the network and to send the compressed portions of the file and to further send the expected content length over the network. - View Dependent Claims (15, 16, 17, 18)
-
Specification