IP Library Granted Patent US 12,556,600
Granted Patent B2
US 12,556,600 · App. 18/753,440 · Granted Feb 17, 2026

Fragment server directed device fragment caching

Inventors: Charles Nooney (Piedmont, CA); Kent Karlsson (Berkeley, CA)
Assignee: Adeia Media Holdings LLC
H04L65/80H04L65/60H04L65/612H04L67/568H04L67/5682H04N21/2187H04N21/23106H04N21/234H04N21/23418H04N21/234309H04N21/2353H04N21/2387H04N21/2393H04N21/251H04N21/4331H04N21/44016H04N21/6543H04N21/8451H04N21/2181
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,556,600
App. No.
18/753,440
Granted
Feb 17, 2026
Kind
B2
Abstract

The media stream delivery system encodes and fragments media streams into numerous media stream fragments maintained on fragment servers. Devices obtain fragments to reconstruct media streams including live real-time media streams for playback on the devices. A device may perform caching of media stream fragments so that particular fragments need not be accessed again from a fragment server. A fragment server or even a content provider can analyze and monitor characteristics of media streams, viewing behavior, content popularity, etc., to identify fragments for caching at the playback devices. Caching indicators along with time period indicators may be included in the media stream fragments.

Claims (56)

1 . A method comprising:

monitoring device characteristics of a device;

receiving, from the device, a request for one or more media stream fragments of a plurality of media stream fragments, wherein the plurality of media stream fragments is associated with a plurality of variants;

identifying a variant from the plurality of variants that is compatible with the device characteristics;

identifying at least one fragment of the one or more media stream fragments to maintain in a local cache of the device;

determining, based on the device characteristics, a length of time for maintaining the at least one fragment in the local cache of the device;

adding an indicator in the at least one fragment, wherein the indicator indicates the length of time for maintaining the at least one fragment in the local cache of the device; and

transmitting, to the device, the one or more media stream fragments of the plurality of media stream fragments, wherein the one or more media stream fragments is associated with the identified variant.

2 . The method of claim 1 , wherein the device characteristics include at least one of resolution capabilities, availability of processing resources, availability of storage, or availability of screen space.

3 . The method of claim 1 , further comprising:

determining, based on the device characteristics, that the transmitted one or more media stream fragments will remain unreceived by the device after a certain amount of time; and

based on the determining that the transmitted one or more media stream fragments will remain unreceived by the device after the certain amount of time, transmitting, to the device, a second media stream fragment of the plurality of media stream fragments, wherein the second media stream fragment is associated with a second variant of the plurality of variants different from the identified variant.

4 . The method of claim 1 , further comprising:

determining, based on the device characteristics, that decoding the one or more media stream fragments by the device is incomplete after a certain period of time; and

based on the determining that decoding the one or more media stream fragments by the device is incomplete after the certain period of time, transmitting, to the device, a second media stream fragment of the plurality of media stream fragments, wherein the second media stream fragment is associated with a second variant of the plurality of variants different from the identified variant.

5 . The method of claim 1 , wherein the at least one fragment to maintain in the local cache of the device is identified further based on determining that the at least one fragment has been previously accessed by the device at least once.

6 . The method of claim 1 , wherein each media stream fragment of the plurality of media stream fragments is an H.264 encoded fragment processed using a plurality of distributed and dynamically scalable encoder resources.

7 . The method of claim 6 , wherein the plurality of distributed and dynamically scalable encoder resources is a plurality of virtual machines configured to perform encoding and fragmentation.

8 . The method of claim 6 , wherein each H.264 encoded fragment is encoded from an MPEG-2 group of pictures (GOP).

9 . A system comprising:

control circuitry configured to:

monitor device characteristics of a device;

input/output circuitry configured to:

receive, from the device, a request for one or more media stream fragments of a plurality of media stream fragments, wherein the plurality of media stream fragments is associated with a plurality of variants; and

wherein the control circuitry is further configured to:

identify a variant from the plurality of variants that is compatible with the device characteristics;

identify at least one fragment of the one or more media stream fragments to maintain in a local cache of the device;

determine, based on the device characteristics, a length of time for maintaining the at least one fragment in the local cache of the device;

add an indicator in the at least one fragment, wherein the indicator indicates the length of time for maintaining the at least one fragment in the local cache of the device; and

transmit, to the device, the one or more media stream fragments of the plurality of media stream fragments, wherein the one or more media stream fragments is associated with the identified variant.

10 . The system of claim 9 , wherein the device characteristics include at least one of resolution capabilities, availability of processing resources, availability of storage, or availability of screen space.

11 . The system of claim 9 , wherein the control circuitry is further configured to:

determine, based on the device characteristics, that the transmitted one or more media stream fragments will remain unreceived by the device after a certain amount of time; and

based on the determining that the transmitted one or more media stream fragments will remain unreceived by the device after the certain amount of time, transmit, to the device, a second media stream fragment of the plurality of media stream fragments, wherein the second media stream fragment is associated with a second variant of the plurality of variants different from the identified variant.

12 . The system of claim 9 , wherein the control circuitry is further configured to:

determine, based on the device characteristics, that decoding the one or more media stream fragments by the device is incomplete after a certain period of time; and

based on the determining that decoding the one or more media stream fragments by the device is incomplete after the certain period of time, transmit, to the device, a second media stream fragment of the plurality of media stream fragments, wherein the second media stream fragment is associated with a second variant of the plurality of variants different from the identified variant.

13 . The system of claim 9 , wherein the at least one fragment to maintain in the local cache of the device is identified further based on determining that the at least one fragment has been previously accessed by the device at least once.

14 . The system of claim 9 , wherein each media stream fragment of the plurality of media stream fragments is an H.264 encoded fragment processed using a plurality of distributed and dynamically scalable encoder resources.

15 . The system of claim 14 , wherein the plurality of distributed and dynamically scalable encoder resources is a plurality of virtual machines configured to perform encoding and fragmentation.

16 . The system of claim 14 , wherein each H.264 encoded fragment is encoded from an MPEG-2 group of pictures (GOP).

17 . A non-transitory computer-readable medium having instructions encoded thereon that, when executed by control circuitry, cause the control circuitry to:

monitor device characteristics of a device;

receive, from the device, a request for one or more media stream fragments of a plurality of media stream fragments, wherein the plurality of media stream fragments is associated with a plurality of variants;

identify a variant from the plurality of variants that is compatible with the device characteristics;

identify at least one fragment of the one or more media stream fragments to maintain in a local cache of the device;

determine, based on the device characteristics, a length of time for maintaining the at least one fragment in the local cache of the device;

add an indicator in the at least one fragment, wherein the indicator indicates the length of time for maintaining the at least one fragment in the local cache of the device; and

transmit, to the device, the one or more media stream fragments of the plurality of media stream fragments, wherein the one or more media stream fragments is associated with the identified variant.

18 . The non-transitory computer-readable medium of claim 17 , wherein the device characteristics include at least one of resolution capabilities, availability of processing resources, availability of storage, or availability of screen space.

19 . The non-transitory computer-readable medium of claim 17 , wherein execution of the instructions further causes the control circuitry to:

determine, based on the device characteristics, that the transmitted one or more media stream fragments will remain unreceived by the device after a certain amount of time; and

based on the determining that the transmitted one or more media stream fragments will remain unreceived by the device after the certain amount of time, transmit, to the device, a second media stream fragment of the plurality of media stream fragments, wherein the second media stream fragment is associated with a second variant of the plurality of variants different from the identified variant.

20 . The non-transitory computer-readable medium of claim 17 , wherein execution of the instructions further causes the control circuitry to:

determine, based on the device characteristics, that decoding the one or more media stream fragments by the device is incomplete after a certain period of time; and

based on the determining that decoding the one or more media stream fragments by the device is incomplete after the certain period of time, transmit, to the device, a second media stream fragment of the plurality of media stream fragments, wherein the second media stream fragment is associated with a second variant of the plurality of variants different from the identified variant.

Assignments (5)
SECURITY INTEREST Recorded May 28, 2025
From: ADEIA INC. (F/K/A XPERI HOLDING CORPORATION); ADEIA HOLDINGS INC.; ADEIA MEDIA HOLDINGS INC.; ADEIA IMAGING LLC; ADEIA MEDIA LLC; ADEIA MEDIA SOLUTIONS INC.; ADEIA SEMICONDUCTOR BONDING TECHNOLOGIES INC.; ADEIA TECHNOLOGIES INC.; ADEIA GUIDES INC.; ADEIA SOLUTIONS LLC; ADEIA SEMICONDUCTOR ADVANCED TECHNOLOGIES INC.; ADEIA SEMICONDUCTOR SOLUTIONS LLC; ADEIA SEMICONDUCTOR INTELLECTUAL PROPERTY LLC; ADEIA SEMICONDUCTOR TECHNOLOGIES LLC; ADEIA PUBLISHING INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 071454/0343 →
CHANGE OF NAME Recorded Oct 1, 2024
From: TIVO CORPORATION
To: TIVO LLC
Reel/Frame 069083/0260 →
CHANGE OF NAME Recorded Oct 1, 2024
From: TIVO LLC
To: ADEIA MEDIA HOLDINGS LLC
Reel/Frame 069083/0332 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 25, 2024
From: NOONEY, CHARLES; KARLSSON, KENT
To: MOBITV, INC.
Reel/Frame 067835/0391 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 25, 2024
From: MOBITV, INC.
To: TIVO CORPORATION
Reel/Frame 067835/0409 →