IP Library Granted Patent US 7,154,416
Granted Patent B1
US 7,154,416 · App. 11/233,872 · Granted Dec 26, 2006

Adaptive control of codebook regeneration in data compression mechanisms

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,154,416
App. No.
11/233,872
Granted
Dec 26, 2006
Kind
B1
Abstract

Adaptive control of codebook regeneration in data compression mechanisms. In one implementation, the present invention provides a means controlling the frequency of codebook updates based on expected performance gains resulting from codebook regeneration. The present invention, in one implementation, employs a mechanism that simulates the expected compression performance of a hypothetically, updated codebook. A compression module compares the simulated compression performance to the actual performance of the codebook used to compress the data, and updates the codebook if a threshold condition is satisfied.

Claims (56)

1. In a data compression mechanism, a method for controlling updates to a codebook used to compress data, the method comprising

receiving input data comprising at least one input symbol;

transforming at least a portion of the input data to compressed output data using a first codebook, the compressed output data having a length;

computing, according to a simulated codebook process, a simulated output length based on the input data;

maintaining an aggregate output length deviation between the length of the compressed output data and the simulated output length;

conditionally updating the first codebook based at least in part on the aggregate output length deviation.

2. The method of claim 1 further comprising

maintaining an input data history comprising a sliding window of the input symbols in the received input data.

3. The method of claim 2 wherein the simulated codebook process computes the simulated output length based at least in part on the input data history.

4. The method of claim 1 further comprising transmitting the compressed output data to a remote host.

5. The method of claim 1 wherein the input data comprises at least one packet transmitted from a destination host to a source host.

6. The method of claim 5 further comprising transmitting the compressed output data in at least one packet to a remote host.

7. In a data compression mechanism, a method for controlling updates to a codebook used to compress data, the method comprising

receiving an input symbol;

generating an output based on a first codebook and the input symbol, wherein the output has a length;

updating an input symbol history based on the received input symbol;

computing, according to a simulated codebook process, a simulated output length based on the input symbol and the input symbol history;

adjusting an aggregate deviation value based on the difference between the length of the generated output and the simulated output length;

conditionally updating the first codebook based at least in part on the deviation value.

8. The method of claim 7 wherein updating an input symbol history comprises

storing previously received input symbols in a queue of input symbols; and

popping, in response to the receiving step, a first input symbol in the queue; and

placing the received input symbol on the queue.

9. The method of claim 7 wherein computing the length of the simulated output comprises

determining, based on the input symbol history, an occurrence probability of the received input symbol;

computing the simulated length of the output symbol based on the occurrence probability of the received input symbol.

10. The method of claim 8 wherein the simulated length of the output symbol is computed according to the relation:

simulated_output_length=−1×log 2 (symbol_occurrence_probability).

11. An apparatus including compression functionality, comprising

a processor;

at least one network interface,

a memory;

a compression module, physically stored in the memory, comprising instructions operable to cause the processor and the apparatus to:

receive input data comprising at least one input symbol;

transform at least a portion of the input data to compressed output data using a first codebook, the compressed output data having a length;

compute, according to a simulated codebook process, a simulated output length based on the input data;

maintain an aggregate output length deviation between the length of the compressed output data and the simulated output length;

conditionally update the first codebook based at least in part on the aggregate output length deviation.

12. The apparatus of claim 11 wherein the compression module further comprises instructions operative to cause the processor and the apparatus to

maintain an input data history comprising a sliding window of the input symbols in the received input data.

13. The apparatus of claim 12 wherein the simulated codebook process computes the second simulated output length based at least in part on the input data history.

14. The apparatus of claim 11 wherein the compression module further comprises instructions operative to cause the processor and the apparatus to

transmit the compressed output data to a remote host.

15. The apparatus of claim 11 wherein the input data comprises at least one packet transmitted from a destination host to a source host.

16. The apparatus of claim 15 wherein the compression module further comprises instructions operative to cause the processor and the apparatus to

transmit the compressed output data in at least one packet to a remote host.

17. The apparatus of claim 11 wherein the compression module further comprises instructions operative to cause the processor and the apparatus to

establish compression tunnels with a remote network device in the communications path to one or more destination hosts; and

intercept outgoing data packets to the one or more destination hosts.

18. The apparatus of claim 11 further comprising

a tunnel probing module, physically stored in the memory, comprising instructions operable to cause the processor and the apparatus to:

dynamically probe a communications path to a destination host for at least one network device having compression capabilities; and

establish a compression tunnel with an identified network device in the communications path.

19. The apparatus of claim 18 wherein the tunnel probing module is operative to

transmit probe requests along the communications path to the destination host; and

receive probe responses from network devices in the communications path to the destination host.

Assignments (8)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 21, 2019
From: SYMANTEC CORPORATION
To: CA, INC.
Reel/Frame 051144/0918 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 27, 2016
From: BLUE COAT SYSTEMS, INC.
To: SYMANTEC CORPORATION
Reel/Frame 039851/0044 →
RELEASE OF SECURITY INTEREST Recorded Aug 1, 2016
From: JEFFERIES FINANCE LLC
To: BLUE COAT SYSTEMS, INC.
Reel/Frame 039516/0929 →
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 30740/0181 Recorded May 29, 2015
From: JEFFERIES FINANCE LLC
To: BLUE COAT SYSTEMS, INC.
Reel/Frame 035797/0280 →
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 27727/0144 Recorded May 29, 2015
From: JEFFERIES FINANCE LLC
To: BLUE COAT SYSTEMS, INC.
Reel/Frame 035798/0006 →
SECURITY INTEREST Recorded May 22, 2015
From: BLUE COAT SYSTEMS, INC.
To: JEFFERIES FINANCE LLC, AS THE COLLATERAL AGENT
Reel/Frame 035751/0348 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Jul 3, 2013
From: BLUE COAT SYSTEMS, INC.
To: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 030740/0181 →
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL RECORDED AT R/F 027727/0178 Recorded Oct 16, 2012
From: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
To: BLUE COAT SYSTEMS, INC.
Reel/Frame 029140/0170 →