IP Library Granted Patent US 11,758,203
Granted Patent B2
US 11,758,203 · App. 16/714,229 · Granted Sep 12, 2023

Adaptive bitrate video cache

Inventors: Shuai Hao (Hillsborough, NJ); Subhabrata Sen (Westfield, NJ); Emir Halepovic (Somerset, NJ); Zahaib Akhtar (San Jose, CA); Ramesh Govindan (Cerritos, CA); Yaguang Li (Sunnyvale, CA)
Assignees: AT&T Intellectual Property I, L.P.; University of Southern California
H04N21/23106H04N21/2393H04N21/251G06F12/0871G06F2212/602G06F2212/604G06F2212/6028H04L67/568H04L67/62
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 11,758,203
App. No.
16/714,229
Granted
Sep 12, 2023
Kind
B2
Abstract

Devices, computer-readable media, and methods for making a cache admission decision regarding a video chunk are described. For instance, a processing system including at least one processor may obtain a request for a first chunk of a first video, determine that the first chunk is not stored in a cache, and apply, in response to the determining that the first chunk is not stored in the cache, a classifier to predict whether the first chunk will be re-requested within a time horizon, where the classifier is trained in accordance with a set of features associated with a plurality of chunks of a plurality of videos. When it is predicted via the classifier that the first chunk will be re-requested within the time horizon, the processing system may store the first chunk in the cache.

Claims (74)

1. A method comprising:

obtaining, by a processing system including at least one processor, a request for a first chunk of a first video;

determining, by the processing system, that the first chunk is not stored in a cache;

applying, by the processing system in response to the determining that the first chunk is not stored in the cache, a machine learning classifier to predict whether the first chunk will be re-requested within a time horizon, wherein the machine learning classifier is trained in accordance with a set of features associated with a plurality of chunks of a plurality of videos;

storing, by the processing system, the first chunk in the cache, when it is predicted via the machine learning classifier that the first chunk will be re-requested within the time horizon; and

evicting, by the processing system, at least a second chunk from the cache in accordance with an eviction process, wherein the eviction process includes:

identifying the second chunk as having a longest next request estimate as compared to next request estimates of a plurality of chunks in the cache, wherein for a given chunk of the plurality of chunks in the cache, the eviction process weights a next request estimate for the given chunk in accordance with a relative popularity of a track of the given chunk as compared to other tracks for a same video to which the given chunk belongs; and

evicting the second chunk from the cache when it is determined that the second chunk has the longest next request estimate.

2. The method of claim 1 , wherein the time horizon is based upon a size of the cache.

3. The method of claim 2 , wherein the time horizon comprises an estimate of a time to replace contents of the cache at a full capacity in accordance with a first-in-first-out policy.

4. The method of claim 1 , wherein the set of features comprises:

a chunk size;

a chunk index; and

a chunk bitrate.

5. The method of claim 4 , wherein the set of features further comprises:

a number of sessions for streaming the first video;

an average number of sessions for streaming the first video within a given time period;

a session inter-arrival time for the first video; and

a time since a start of a last session for streaming the first video.

6. The method of claim 5 , wherein the set of features further comprises:

a time of day; and

a day of week.

7. The method of claim 1 , wherein the machine learning classifier outputs a probability estimate for a future request for the first chunk within the time horizon, wherein the first chunk is stored in the cache when it is predicted via the machine learning classifier that the first chunk will be re-requested within the time horizon and when the probability estimate complies with a threshold.

8. The method of claim 1 , further comprising:

obtaining a request for a third chunk of the first video or of a second video;

determining that the third chunk is not stored in the cache;

applying, in response to the determining that the third chunk is not stored in the cache, the machine learning classifier to predict whether the third chunk will be re-requested within the time horizon; and

declining to store the third chunk in the cache, when it is predicted via the machine learning classifier that the third chunk will not be re-requested within the time horizon.

9. The method of claim 1 , further comprising:

determining, in response to selecting to store the first chunk in the cache, whether a storage of the first chunk in the cache will cause the cache to exceed an occupancy threshold, wherein the evicting the at least the second chunk is performed in response to determining that the storage of the first chunk in the cache will cause the cache to exceed the occupancy threshold.

10. The method of claim 1 , further comprising:

obtaining a request for a third chunk of a second video;

determining that the third chunk is not stored in the cache;

determining that a session inter-arrival time of the second video exceeds a threshold; and

determining to not store the third chunk in the cache, in response to the determining that the session inter-arrival time of the second video exceeds the threshold.

11. A non-transitory computer-readable medium storing instructions which, when executed by a processing system including at least one processor, cause the processing system to perform operations, the operations comprising:

obtaining a request for a first chunk of a first video;

determining that the first chunk is not stored in a cache;

applying, in response to the determining that the first chunk is not stored in the cache, a machine learning classifier to predict whether the first chunk will be re-requested within a time horizon, wherein the machine learning classifier is trained in accordance with a set of features associated with a plurality of chunks of a plurality of videos;

storing the first chunk in the cache, when it is predicted via the machine learning classifier that the first chunk will be re-requested within the time horizon; and

evicting at least a second chunk from the cache in accordance with an eviction process, wherein the eviction process includes:

identifying the second chunk as having a longest next request estimate as compared to next request estimates of a plurality of chunks in the cache, wherein for a given chunk of the plurality of chunks in the cache, the eviction process weights a next request estimate for the given chunk in accordance with a relative popularity of a track of the given chunk as compared to other tracks for a same video to which the given chunk belongs; and

evicting the second chunk from the cache when it is determined that the second chunk has the longest next request estimate.

12. The non-transitory computer-readable medium of claim 11 , wherein the time horizon is based upon a size of the cache.

13. The non-transitory computer-readable medium of claim 12 , wherein the time horizon comprises an estimate of a time to replace contents of the cache at a full capacity in accordance with a first-in-first-out policy.

14. The non-transitory computer-readable medium of claim 11 , wherein the set of features comprises:

a chunk size;

a chunk index; and

a chunk bitrate.

15. The non-transitory computer-readable medium of claim 14 , wherein the set of features further comprises:

a number of sessions for streaming the first video;

an average number of sessions for streaming the first video within a given time period;

a session inter-arrival time for the first video; and

a time since a start of a last session for streaming the first video.

16. The non-transitory computer-readable medium of claim 15 , wherein the set of features further comprises:

a time of day; and

a day of week.

17. The non-transitory computer-readable medium of claim 11 , wherein the machine learning classifier outputs a probability estimate for a future request for the first chunk within the time horizon, wherein the first chunk is stored in the cache when it is predicted via the machine learning classifier that the first chunk will be re-requested within the time horizon and when the probability estimate complies with a threshold.

18. The non-transitory computer-readable medium of claim 11 , wherein the operations further comprise:

obtaining a request for a third chunk of the first video or of a second video;

determining that the third chunk is not stored in the cache;

applying, in response to the determining that the third chunk is not stored in the cache, the machine learning classifier to predict whether the third chunk will be re-requested within the time horizon; and

declining to store the third chunk in the cache, when it is predicted via the machine learning classifier that the third chunk will not be re-requested within the time horizon.

19. An apparatus comprising:

a processing system including at least one processor; and

a computer-readable medium storing instructions which, when executed by the processing system, cause the processing system to perform operations, the operations comprising:

obtaining a request for a first chunk of a first video;

determining that the first chunk is not stored in a cache;

applying, in response to the determining that the first chunk is not stored in the cache, a machine learning classifier to predict whether the first chunk will be re-requested within a time horizon, wherein the machine learning classifier is trained in accordance with a set of features associated with a plurality of chunks of a plurality of videos;

storing the first chunk in the cache, when it is predicted via the machine learning classifier that the first chunk will be re-requested within the time horizon; and

evicting at least a second chunk from the cache in accordance with an eviction process, wherein the eviction process includes:

identifying the second chunk as having a longest next request estimate as compared to next request estimates of a plurality of chunks in the cache, wherein for a given chunk of the plurality of chunks in the cache, the eviction process weights a next request estimate for the given chunk in accordance with a relative popularity of a track of the given chunk as compared to other tracks for a same video to which the given chunk belongs; and

evicting the second chunk from the cache when it is determined that the second chunk has the longest next request estimate.

20. The apparatus of claim 19 , wherein the time horizon is based upon a size of the cache.

Assignments (3)
CONFIRMATORY LICENSE Recorded Apr 14, 2025
From: UNIVERSITY OF SOUTHERN CALIFORNIA
To: NATIONAL SCIENCE FOUNDATION
Reel/Frame 070838/0597 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 14, 2022
From: AKHTAR, ZAHAIB; GOVINDAN, RAMESH; LI, YAGUANG
To: UNIVERSITY OF SOUTHERN CALIFORNIA
Reel/Frame 059253/0279 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 21, 2020
From: HAO, SHUAI; SEN, SUBHABRATA; HALEPOVIC, EMIR
To: AT&T INTELLECTUAL PROPERTY I, L.P.
Reel/Frame 051571/0533 →
Continuity (1)
Related Publication 20210185368A1 · Jun 17, 2021