IP Library Granted Patent US 6,937,171
Granted Patent B2
US 6,937,171 · App. 11/050,128 · Granted Aug 30, 2005

Generating and searching compressed data

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 6,937,171
App. No.
11/050,128
Granted
Aug 30, 2005
Kind
B2
Abstract

Data destined for a client is compressed at a server in a manner that produces a compressed data string that can be searched in its compressed state. The server constructs a code table that assigns codes from a standard code set (e.g., ASCII code set) that are normally unused to selected character pairs in the data string (e.g., the most frequently occurring character pairs). During compression, the selected character pairs are replaced with the corresponding codes. Identifiers are inserted into the compressed data string to separate substrings. To search the compressed data string at the client, a search query is compressed and compared to the compressed substrings. The substring identifiers are used to quickly locate each successive compressed substring. When a match is found, the matching substring is decompressed by replacing the code in the compressed substring with the corresponding character pair in the code table.

Claims (23)

1. A system for preparing program data for delivery to a client that executes an electronic program guide, comprising:

means for allocating different-size portions of memory representative of a client memory for different time units represented in the electronic program guide;

means for evaluating whether program data for the different time units fits in the respective different-size portions of memory;

means for adjusting quantities of the program data for the different time units to identify an entire set of program data for storage at the client, wherein different quantities of the program data are stored for the different time units; and

means for compressing the entire set of program data by identifying frequently occurring character pairs in the program data and substituting character codes from a character code set, which are not used to represent individual characters, in place of the frequently occurring character pairs.

2. A system as recited in claim 1 , wherein the character code set comprises ASCII codes.

3. A system as recited in claim 1 , further comprising means for fragmenting the compressed program data into equal-size fragments prior to delivery to the client.

4. A system as recited in claim 1 , wherein the time units comprise 24-hour days.

5. A system as recited in claim 1 , wherein the allocation means allocates more of the memory for time units that are closer in time and less of the memory for time units that are further out in time.

6. A system for preparing program data for delivery to a client that executes an electronic program guide, comprising:

means for selecting different-size sets of the program data for storage in portions of memory such that more of the program data will be stored in one portion of memory corresponding to one time unit and less of the program data will be stored in another portion of memory for another time unit;

means for storing the different-size sets of program data in multiple tables, each table comprising one or more records with one or more fields;

means for sorting the records in the tables according to a selected field type, the sorting producing a sorted data string;

means for compressing the sorted data string by identifying frequently occurring character pairs in the program data and substituting character codes from a character code set, which are not used to represent individual characters, in place of the frequently occurring character pairs, the compressing producing a compressed data string; and

means for fragmenting, into equal-size fragments, one of (1) the sorted data string prior to said compressing or (2) the compressed data string following said compressing.

7. A system as recited in claim 6 , wherein the character code set comprises ASCII codes.

8. A computer-readable medium comprising computer-executable instructions that, when executed, direct a computing system to:

select different-size sets of the program data for storage in portions of memory such that more of the program data will be stored in one portion of memory corresponding to one time unit and less of the program data will be stored in another portion of memory for another time unit;

store the different-size sets of program data in multiple tables, each table comprising one or more records with one or more fields;

sort the records in the tables according to a selected field type, the sorting producing a sorted data string;

compress the sorted data string by identifying frequently occurring character pairs in the program data and substituting character codes from a character code set, which are not used to represent individual characters, in place of the frequently occurring character pairs, the compressing producing a compressed data string; and

fragment, into equal-size fragments, one of (1) the sorted data string prior to said compressing or (2) the compressed data string following said compressing.

9. A computer-readable medium as recited in claim 8 , wherein the character code set comprises ASCII codes.

Assignments (6)
RELEASE OF SECURITY INTEREST Recorded Jun 5, 2020
From: HPS INVESTMENT PARTNERS, LLC
To: ROVI SOLUTIONS CORPORATION; ROVI TECHNOLOGIES CORPORATION; ROVI GUIDES, INC.; TIVO SOLUTIONS, INC.; VEVEO, INC.
Reel/Frame 053458/0749 →
RELEASE OF SECURITY INTEREST Recorded Jun 5, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: ROVI SOLUTIONS CORPORATION; ROVI TECHNOLOGIES CORPORATION; ROVI GUIDES, INC.; TIVO SOLUTIONS, INC.; VEVEO, INC.
Reel/Frame 053481/0790 →
SECURITY INTEREST Recorded Jun 1, 2020
From: ROVI SOLUTIONS CORPORATION; ROVI TECHNOLOGIES CORPORATION; ROVI GUIDES, INC.; TIVO SOLUTIONS INC.; VEVEO, INC.; INVENSAS CORPORATION; INVENSAS BONDING TECHNOLOGIES, INC.; TESSERA, INC.; TESSERA ADVANCED TECHNOLOGIES, INC.; DTS, INC.; PHORUS, INC.; IBIQUITY DIGITAL CORPORATION
To: BANK OF AMERICA, N.A.
Reel/Frame 053468/0001 →
PATENT SECURITY AGREEMENT Recorded Nov 25, 2019
From: ROVI SOLUTIONS CORPORATION; ROVI TECHNOLOGIES CORPORATION; ROVI GUIDES, INC.; TIVO SOLUTIONS, INC.; VEVEO, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 051110/0006 →
SECURITY INTEREST Recorded Nov 22, 2019
From: ROVI SOLUTIONS CORPORATION; ROVI TECHNOLOGIES CORPORATION; ROVI GUIDES, INC.; TIVO SOLUTIONS, INC.; VEVEO, INC.
To: HPS INVESTMENT PARTNERS, LLC, AS COLLATERAL AGENT
Reel/Frame 051143/0468 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 8, 2014
From: MICROSOFT CORPORATION
To: ROVI TECHNOLOGIES CORPORATION
Reel/Frame 034539/0676 →