IP Library Granted Patent US 9,727,574
Granted Patent B2
US 9,727,574 · App. 14/795,408 · Granted Aug 8, 2017

System and method for applying an efficient data compression scheme to URL parameters

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 9,727,574
App. No.
14/795,408
Granted
Aug 8, 2017
Kind
B2
Abstract

Disclosed is a system and methods for data compression and decompression. The systems and methods discussed herein include an encoder, dictionary, decoder, literal string and control output. The discussed systems and methods encode data transmitted over a communications channel through the use of a dynamically compiled dictionary. Upon reviewing the characters within the transmitted data in view of the dictionary, an encoded/compressed output string is created. Such output string may also be decoded in a similar fashion via a dynamically compiled dictionary.

Claims (65)

1. A method comprising:

initializing, via a computing device, a dictionary with a character string based in part upon an encoded character string, the encoded character string comprising control characters and literal characters;

initializing, via the computing device, a control index to zero;

determining, via the computing device, the length of the encoded character string;

initializing, via the computing device, a literal index to the determined length of the encoded character string;

reading, via the computing device, the encoded character string, said reading comprises identifying and reading the control characters and the literal characters, said control characters are read from the beginning of the encoded character string, wherein the control index is updated in relation to each control character read, said literal characters are read from the end of the encoded character string, wherein the literal index is updated in relation to each literal character read; and

decompressing, via the computing device, the encoded character string based upon said reading of the encoded character string, wherein said decompression is complete when the control index is greater than the literal index.

2. The method of claim 1 , further comprising:

receiving an input data string comprising a plurality of characters; and

encoding the input data string based in part on the initialized dictionary.

3. The method of claim 2 , wherein said encoding of the input data string comprises:

comparing the characters of the input data string with the dictionary character string, said comparison comprising sequentially comparing each character of the input data string and the dictionary.

4. The method of claim 2 , wherein said writing of the first string further comprises:

determining a first string based on said comparison, said first string comprising one instance of matching characters in the input string and dictionary string; and

writing the first string to the dictionary string, said writing comprising appending the first string to a control output string of the dictionary string comprising said control characters.

5. The method of claim 4 , wherein writing the first string further comprises:

converting the first string to a first alpha-numeric representation comprising a first

number and a second number, said first number representing the number of characters from the end of the dictionary from where the first string was identified, said second number representing the length of the first string; and

writing the first string to the control output string based on said first alpha-numeric representation.

6. The method of claim 4 , further comprising:

determining a second string comprising at least one consecutive character in the input data string not present within the dictionary character string; and

writing the second string to the dictionary string, said writing comprising appending the second string a literal output string of the dictionary string comprising said literal characters.

7. The method of claim 6 , further comprising:

generating said encoded string based on the control output string and the literal output string.

8. The method of claim 6 , wherein writing the second string further comprises:

converting the second string to a second alpha-numeric representation comprising a number of characters in the second string; and

writing the second string to the control output string based on the second alpha-numeric representation, wherein said second alpha-numeric representation is prepended to the first alpha-numeric representation in the control output string.

9. The method of claim 6 , wherein the said initialization of the dictionary comprises 128 characters, wherein based on said appending of the first and second strings, determining a number of characters to remove from the 128 characters based on the number of characters being appended.

10. The method of claim 1 , wherein the encoded character string is a Uniform Resource Locator (URL).

11. A non-transitory computer-readable storage medium tangibly encoded with computer-executable instructions, that when executed by a processor associated with a computing device, perform a method comprising:

initializing a dictionary with a character string based in part upon an encoded character string, the encoded character string comprising control characters and literal characters;

initializing a control index to zero;

determining the length of the encoded character string;

initializing a literal index to the determined length of the encoded character string;

reading the encoded character string, said reading comprises identifying and reading the control characters and the literal characters, said control characters are read from the beginning of the encoded character string, wherein the control index is updated in relation to each control character read, said literal characters are read from the end of the encoded character string, wherein the literal index is updated in relation to each literal character read; and

decompressing the encoded character string based upon said reading of the encoded character string, wherein said decompression is complete when the control index is greater than the literal index.

12. The non-transitory computer-readable storage medium of claim 11 , further comprising:

receiving an input data string comprising a plurality of characters; and

encoding the input data string based in part on the initialized dictionary.

13. The non-transitory computer-readable storage medium of claim 12 , wherein said encoding of the input data string comprises:

comparing the characters of the input data string with the dictionary character string, said comparison comprising sequentially comparing each character of the input data string and the dictionary.

14. The non-transitory computer-readable storage medium of claim 13 , wherein said writing of the first string further comprises:

determining a first string based on said comparison, said first string comprising one instance of matching characters in the input string and dictionary string; and

writing the first string to the dictionary string, said writing comprising appending the first string to a control output string of the dictionary string comprising said control characters.

15. The non-transitory computer-readable storage medium of claim 14 , wherein writing the first string further comprises:

converting the first string to a first alpha-numeric representation comprising a first number and a second number, said first number representing the number of characters from the end of the dictionary from where the first string was identified, said second number representing the length of the first string; and

writing the first string to the control output string based on said first alpha-numeric representation.

16. The non-transitory computer-readable storage medium of claim 14 , further comprising:

determining a second string comprising at least one consecutive character in the input data string not present within the dictionary character string; and

writing the second string to the dictionary string, said writing comprising appending the second string a literal output string of the dictionary string comprising said literal characters.

17. The non-transitory computer-readable storage medium of claim 16 , further comprising:

generating said encoded string based on the control output string and the literal output string.

18. The non-transitory computer-readable storage medium of claim 16 , wherein writing the second string further comprises:

converting the second string to a second alpha-numeric representation comprising a number of characters in the second string; and

writing the second string to the control output string based on the second alpha-numeric representation, wherein said second alpha-numeric representation is prepended to the first alpha-numeric representation in the control output string.

19. The non-transitory computer-readable storage medium of claim 16 , wherein the said initialization of the dictionary comprises 128 characters, wherein based on said appending of the first and second strings, determining a number of characters to remove from the 128 characters based on the number of characters being appended.

20. A system comprising:

a processor;

a non-transitory computer-readable storage medium for tangibly storing thereon program logic for execution by the processor, the program logic comprising:

initialization logic executed by the processor for initializing a dictionary with a character string based in part upon an encoded character string, the encoded character string comprising control characters and literal characters;

initialization logic executed by the processor for initializing a control index to zero;

determination logic executed by the processor for determining the length of the encoded character string;

initialization logic executed by the processor for initializing a literal index to the determined length of the encoded character string;

reading logic executed by the processor for reading the encoded character string, said reading comprises identifying and reading the control characters and the literal characters, said control characters are read from the beginning of the encoded character string, wherein the control index is updated in relation to each control character read, said literal characters are read from the end of the encoded character string, wherein the literal index is updated in relation to each literal character read; and

decompressing logic executed by the processor for decompressing the encoded character string based upon said reading of the encoded character string, wherein said decompression is complete when the control index is greater than the literal index.

Assignments (8)
CORRECTIVE ASSIGNMENT TO CORRECT THE THE ASSIGNOR NAME PREVIOUSLY RECORDED AT REEL: 052853 FRAME: 0153. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Mar 29, 2021
From: R2 SOLUTIONS LLC
To: STARBOARD VALUE INTERMEDIATE FUND LP, AS COLLATERAL AGENT
Reel/Frame 056832/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 12, 2021
From: EXCALIBUR IP, LLC
To: R2 SOLUTIONS LLC
Reel/Frame 055283/0483 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED ON REEL 053654 FRAME 0254. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST GRANTED PURSUANT TO THE PATENT SECURITY AGREEMENT PREVIOUSLY RECORDED. Recorded Dec 30, 2020
From: STARBOARD VALUE INTERMEDIATE FUND LP
To: R2 SOLUTIONS LLC
Reel/Frame 054981/0377 →
RELEASE OF SECURITY INTEREST IN PATENTS Recorded Jul 8, 2020
From: STARBOARD VALUE INTERMEDIATE FUND LP
To: ACACIA RESEARCH GROUP LLC; AMERICAN VEHICULAR SCIENCES LLC; BONUTTI SKELETAL INNOVATIONS LLC; CELLULAR COMMUNICATIONS EQUIPMENT LLC; INNOVATIVE DISPLAY TECHNOLOGIES LLC; LIFEPORT SCIENCES LLC; LIMESTONE MEMORY SYSTEMS LLC; MOBILE ENHANCEMENT SOLUTIONS LLC; MONARCH NETWORKING SOLUTIONS LLC; NEXUS DISPLAY TECHNOLOGIES LLC; PARTHENON UNIFIED MEMORY ARCHITECTURE LLC; R2 SOLUTIONS LLC; SAINT LAWRENCE COMMUNICATIONS LLC; STINGRAY IP SOLUTIONS LLC; SUPER INTERCONNECT TECHNOLOGIES LLC; TELECONFERENCE SYSTEMS LLC; UNIFICATION TECHNOLOGIES LLC
Reel/Frame 053654/0254 →
PATENT SECURITY AGREEMENT Recorded Jun 5, 2020
From: ACACIA RESEARCH GROUP LLC; AMERICAN VEHICULAR SCIENCES LLC; BONUTTI SKELETAL INNOVATIONS LLC; CELLULAR COMMUNICATIONS EQUIPMENT LLC; INNOVATIVE DISPLAY TECHNOLOGIES LLC; LIFEPORT SCIENCES LLC; LIMESTONE MEMORY SYSTEMS LLC; MERTON ACQUISITION HOLDCO LLC; MOBILE ENHANCEMENT SOLUTIONS LLC; MONARCH NETWORKING SOLUTIONS LLC; NEXUS DISPLAY TECHNOLOGIES LLC; PARTHENON UNIFIED MEMORY ARCHITECTURE LLC; R2 SOLUTIONS LLC; SAINT LAWRENCE COMMUNICATIONS LLC; STINGRAY IP SOLUTIONS LLC; SUPER INTERCONNECT TECHNOLOGIES LLC; TELECONFERENCE SYSTEMS LLC; UNIFICATION TECHNOLOGIES LLC
To: STARBOARD VALUE INTERMEDIATE FUND LP, AS COLLATERAL AGENT
Reel/Frame 052853/0153 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 3, 2016
From: YAHOO! INC.
To: EXCALIBUR IP, LLC
Reel/Frame 038950/0592 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 1, 2016
From: EXCALIBUR IP, LLC
To: YAHOO! INC.
Reel/Frame 038951/0295 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 18, 2016
From: YAHOO! INC.
To: EXCALIBUR IP, LLC
Reel/Frame 038383/0466 →