IP Library Granted Patent US 12,095,883
Granted Patent B2
US 12,095,883 · App. 18/505,514 · Granted Sep 17, 2024

Local cache maintenance for media content

Inventors: Ross Gilson (Philadelphia, PA); Derik Yarnell (Montrose, CO)
Assignee: TIVO CORPORATION
H04L67/568G11B27/005G11B27/10G11B27/105H04L65/60H04L65/611H04N21/4331H04N21/6587G11B2020/1062H04N21/8455
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 12,095,883
App. No.
18/505,514
Granted
Sep 17, 2024
Kind
B2
Abstract

A media device and methods that identify playback states reachable from a current content playback state and identify a reachable state that is likely to occur, are disclosed. A memory associated with the media device may receive frames that enable a smooth transition between the playback state and the reachable state. The media device may receive frames that correspond to points in the content that are separated by an amount of time that is proportional to the playback rate of the likely state. The frames may be frames corresponding to an image that may be played back at the playback rate of the likely state.

Claims (50)

1. A method comprising:

streaming content for display;

determining:

a first likelihood of receiving a forward state command to stream the content ahead of a current play position of the content; and

a second likelihood of receiving a reverse state command to stream the content behind the current play position of the content; and

based on the first likelihood and the second likelihood:

selecting a portion of a cache devoted to caching frames ahead of the current play position of the content, and caching frames behind the current play position of the content.

2. The method of claim 1 , wherein the selecting the portion of the cache includes allocating less of an amount of the cache to key frames for the reverse state if the likelihood of the reverse state is less than the likelihood of the forward state.

3. The method of claim 1 , wherein the selecting the portion of the cache includes allocating more of an amount of the cache to key frames for the reverse state if the likelihood of the reverse state is more than the likelihood of the forward state.

4. The method of claim 1 , comprising:

in response to the selecting the portion of the cache, requesting, from a content server streaming the content, portions of the content that are separated by an amount of time that is based on a playback rate associated with the forward state or the reverse state.

5. The method of claim 1 , comprising:

in response to the selecting the portion of the cache, replacing key frames with non-key frames.

6. The method of claim 5 , wherein the non-key frames include P-frames and B-frames.

7. The method of claim 1 , comprising:

maintaining, at a media device, a segment of the content as a sliding window.

8. The method of claim 7 , wherein the maintaining of the segment as the sliding window includes adding new frames to a head of the segment, and removing old frames from an end of the segment.

9. The method of claim 1 , wherein the command to stream the content ahead of the current play position is selected from a plurality of commands including a fast-forward command at a normal fast-forward speed, a fast-forward command at a multiplier of the normal fast-forward speed, and a skipping forward command, and

wherein the command to stream the content behind the current play position is selected from a plurality of commands including a rewind command at a normal rewind speed, a rewind command at a multiplier of the normal rewind speed, and a skipping back command.

10. A method comprising:

streaming content for display;

determining likelihoods of receiving forward and reverse state commands;

selecting cache portions based on the likelihoods;

allocating cache amounts to key frames based on the likelihoods;

requesting content portions from a content server in response to the cache allocation;

replacing key frames with non-key frames in response to cache selection;

maintaining a segment as a sliding window during content streaming;

receiving selection of a command to stream content ahead or behind the current play position; and

streaming the content for the display in accordance with the received selection.

11. A system comprising:

a content server configured to:

stream content for display; and

a processing circuit configured to:

determine:

a first likelihood of receiving a forward state command to stream the content ahead of a current play position of the content; and

a second likelihood of receiving a reverse state command to stream the content behind the current play position of the content; and

based on the first likelihood and the second likelihood:

select a portion of a cache devoted to caching frames ahead of the current play position of the content, and caching frames behind the current play position of the content.

12. The system of claim 11 , wherein the processing circuit configured to select the portion of the cache is configured to allocate less of an amount of the cache to key frames for the reverse state if the likelihood of the reverse state is less than the likelihood of the forward state.

13. The system of claim 11 , wherein the processing circuit configured to select the portion of the cache is configured to allocate more of an amount of the cache to key frames for the reverse state if the likelihood of the reverse state is more than the likelihood of the forward state.

14. The system of claim 11 , wherein the processing circuit is configured to:

in response to the selecting the portion of the cache, request, from the content server streaming the content, portions of the content that are separated by an amount of time that is based on a playback rate associated with the forward state or the reverse state.

15. The system of claim 11 , wherein the processing circuit is configured to:

in response to the selecting the portion of the cache, replace key frames with non-key frames.

16. The system of claim 15 , wherein the non-key frames include P-frames and B-frames.

17. The system of claim 11 , comprising:

a media device configured to maintain a segment of the content as a sliding window.

18. The system of claim 17 , wherein the media device configured to maintain the segment of the content as the sliding window is configured to add new frames to a head of the segment, and remove old frames from an end of the segment.

19. The system of claim 11 , wherein the command to stream the content ahead of the current play position is selected from a plurality of commands including a fast-forward command at a normal fast-forward speed, a fast-forward command at a multiplier of the normal fast-forward speed, and a skipping forward command.

20. The system of claim 19 , wherein the command to stream the content behind the current play position is selected from a plurality of commands including a rewind command at a normal rewind speed, a rewind command at a multiplier of the normal rewind speed, and a skipping back command.

Assignments (5)
CHANGE OF NAME Recorded Mar 31, 2026
From: ADEIA MEDIA HOLDINGS LLC
To: ADEIA MEDIA HOLDINGS INC.
Reel/Frame 075303/0980 →
CHANGE OF NAME Recorded Oct 1, 2024
From: TIVO CORPORATION
To: TIVO LLC
Reel/Frame 069083/0240 →
CHANGE OF NAME Recorded Oct 1, 2024
From: TIVO LLC
To: ADEIA MEDIA HOLDINGS LLC
Reel/Frame 069083/0318 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 15, 2023
From: GILSON, ROSS; YARNELL, DERIK
To: COMCAST CABLE COMMUNICATIONS, LLC
Reel/Frame 065565/0146 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 15, 2023
From: COMCAST CABLE COMMUNICATIONS, LLC
To: TIVO CORPORATION
Reel/Frame 065565/0149 →