IP Library Granted Patent US 7,543,324
Granted Patent B2
US 7,543,324 · App. 10/061,829 · Granted Jun 2, 2009

Pre-fragmentation of data destined for low resource clients

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,543,324
App. No.
10/061,829
Granted
Jun 2, 2009
Kind
B2
Abstract

Program data for use in electronic program guides is fragmented in advance of delivery to a low resource client. In the described implementation, the program data is fragmented into equal size fragments. The size of each fragment is selected to guarantee that the data fragments will fit in pre-allocated memory segments at the client. When the program data is delivered to the client, the client stores the data packets in the memory segments without making system calls to the memory.

Claims (49)

1. A method comprising:

determining a segment size associated with a remote client that has a memory which is segmented into memory segments of the segment size,

wherein the determination of the segment size is made alternatively to the remote client communicating the segment size;

selecting an amount of program data to be stored in a data file that contains program data for an electronic program guide executing at the remote client,

wherein the selected amount of program data is larger than can be stored in a memory segment of the segment size,

wherein the selected program data comprises more data associated with a current time period and progressively less data over time associated with subsequent time units;

compressing the selected program data into a compressed format, wherein the compressed format remains searchable by the remote client,

wherein the compressing comprises:

identifying the most frequently used character sequences in the selected program data;

substituting each identified most frequently used character sequence with a value to create a compressed data file; and

constructing a code table that tracks which values are substituted for each most frequently used character sequence,

wherein the compressed format comprises a compressed data file and a code table;

constructing the data file that contains the compressed format of the selected program data for an electronic program guide executing at the remote client;

fragmenting the data file into a plurality of equal-size fragments of a size that does not exceed the segment size; and

transmitting the plurality of equal-size fragments for receipt by the remote client,

wherein the data file is repeatedly transmitted to the remote client,

wherein due to the fragmenting, the plurality of equal-size fragments store into the memory segments without requiring the remote client to make system calls to the memory thereby eliminating the need for the remote client to utilize memory management techniques comprising de-fragmentation.

2. A method as recited in claim 1 , wherein the constructing the data file comprises:

forming a data structure of multiple tables that hold different portions of the program data; and

breaking the data structure into multiple chunks such that each chunk contains at least part of a table.

3. A method as recited in claim 1 , wherein automatically transmitting the plurality of equal-size fragments comprises broadcasting the plurality of equal-size fragments.

4. A processing system, comprising:

selector means for selecting an amount of program data for an electronic program guide, the electronic program guide residing at a client;

compression means for compressing the selected program data into a compressed format that remains searchable by the client,

wherein most frequently used character sequences in the selected program data are identified,

wherein each identified most frequently used character sequence is substituted with a value to create a compressed data file,

wherein a code table is constructed that tracks which values are substituted for each most frequently used character sequence,

wherein the compressed format comprises a compressed data file and a code table;

formation means for forming a data structure with the compressed format of the selected program data for the electronic program guide;

fragmentation means for fragmenting the data structure into a plurality of equal-size fragments, each fragment being sized to not exceed a segment size of individual memory segments pre-allocated in memory at the client,

wherein due to the fragmentation means for fragmenting, the plurality of equal-size fragments store into the individual memory segments without requiring the client to make system calls to the memory,

wherein the selected amount of program data is larger than can be stored in an individual memory segment of the segment size; and

transmission means for repeatedly transmitting the plurality of equal-size fragments of the data structure to the client.

5. A processing system as recited in claim 4 , wherein the formation means comprises:

means for forming a data structure of multiple tables that hold different portions of the program data; and

means for breaking the data structure into multiple chunks such that each chunk contains at least part of a table.

6. A television entertainment system, comprising:

multiple clients to receive television signals and corresponding program data for an electronic program guide (EPG), individual clients having a memory dedicated to storing the program data, the client memory being segmented into segments; and

an EPG server to perform a method comprising:

determining a specified size of the segments of the client memory;

selecting an amount of the program data to broadcast to the individual clients, wherein the selected amount of program data is larger than can be stored in a segment of the client memory of the specified size;

compressing the selected program data into a compressed format that remains searchable by the individual clients,

wherein the compressed format comprises a compressed data file and a code table;

fragmenting the selected program data into a plurality of equal-size data fragments for storage in the segments of the client memory, wherein due to the fragmenting, the plurality of equal-size fragments store into the memory segments of the individual clients without requiring the individual clients to make system calls to the memory, thereby eliminating the need for the individual clients to utilize memory management techniques; and

repeatedly broadcasting the plurality of equal-size data fragments to the individual clients.

7. A television entertainment system as recited in claim 6 , wherein the clients communicate the specified size of the segments to the EPG server and the EPG server fragments the program data into data fragments that do not exceed the specified size.

8. A television entertainment system as recited in claim 6 , wherein the EPG server is configured to construct a data structure containing multiple tables that hold different portions of the program data and break the data structure into multiple chunks such that each chunk contains at least part of a table.

9. A television entertainment system as recited in claim 8 , wherein the chunks are different in size than the tables.

10. A television entertainment system as recited in claim 8 , wherein the chunks are different in size than the tables, and the fragments are different in size than the chunks and the tables.

Assignments (9)
PARTIAL RELEASE OF SECURITY INTEREST IN PATENTS Recorded Oct 27, 2022
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: ROVI PRODUCT CORPORATION (AS SUCCESSOR-IN-INTEREST TO ROVI TECHNOLOGIES CORPORATION)
Reel/Frame 061786/0897 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 21, 2022
From: ADEIA TECHNOLOGIES INC.
To: ROVI PRODUCT CORPORATION
Reel/Frame 061503/0416 →
CHANGE OF NAME Recorded Oct 21, 2022
From: ROVI TECHNOLOGIES CORPORATION
To: ADEIA TECHNOLOGIES INC.
Reel/Frame 061744/0952 →
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 →
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 →
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 →