IP Library Granted Patent US 11,159,433
Granted Patent B1
US 11,159,433 · App. 16/842,658 · Granted Oct 26, 2021

Popularity-aware bitrate adaptation of linear programming for mobile communications

Inventors: Joshua G. Slater (Rancho Mission, CA); Joshua J. Righetti (Carlsbad, CA); Nirmalkumar Velayudhan (San Marcos, CA)
Assignee: VIASAT
H04L47/2441H04B7/18513H04L47/22H04L47/2475H04L65/4084H04L65/4092H04L65/605H04L65/80H04L67/12H04L67/22
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,159,433
App. No.
16/842,658
Granted
Oct 26, 2021
Kind
B1
Abstract

Embodiments provide popularity-based adaptive bitrate management of linear programming over constrained communications links. Embodiments can operate in context of a communications network communicating with multiple mobile client devices disposed in one or more transport craft. A number of channel offerings, including channels providing linear programming, can be made available via the communications network for consumption by the client devices. Embodiments can compute channel popularity scores for the channel offerings based on a predicted popularity, an estimated popularity, a measured popularity, etc. A bitrate can be determined for each (some or all) of the channel offerings based at least in part on its channel popularity score, so that more popular channel offerings can be communicated at higher bitrates. Determined-bitrate instances of the channel offerings can be obtained and/or generated, and delivered via the communications network, to the client devices for consumption.

Claims (58)

1. A method for popularity-aware bitrate adaptation in content delivery over a communications network, the method comprising:

aggregating client requests received from a plurality of client devices disposed on at least one transport craft serviced by the communications network, the client requests indicating requested channel offerings of a plurality of channel offerings, wherein a predetermined amount of bandwidth of the communications network has been allocated for delivering the plurality of channel offerings to the plurality of client devices, wherein the at least one transport craft is presently serviced by a particular carrier of a plurality of carriers of the communications network, and wherein the predetermined amount of bandwidth is a portion of total bandwidth of the particular carrier having been allocated for delivering the plurality of channel offerings to the plurality of client devices;

identifying the requested channel offerings for delivery to the plurality of client devices via the communications network based at least on the client requests;

computing channel popularity scores for the requested channel offerings;

determining bitrates for the requested channel offerings based on the predetermined amount of bandwidth and the channel popularity scores;

obtaining determined-bitrate instances (DBIs) for the requested channel offerings based on the determined bitrates; and

delivering the DBIs to the at least one transport craft responsive to the client requests using the predetermined amount of bandwidth of the communications network.

2. The method of claim 1 , wherein, for each channel offering of the requested channel offerings:

the computing the channel popularity scores comprises computing a respective channel popularity score for the channel offering; and

the determining the bitrates comprises determining a respective bitrate for the channel offering based on the respective channel popularity score for the channel offering.

3. The method of claim 1 , wherein the determining the bitrates comprises computing the determined bitrates to maximize a consumed bitrate across the plurality of client devices.

4. The method of claim 1 , wherein the determining the bitrates comprises computing the determined bitrates to maximize an average consumed bandwidth across the plurality of client devices.

5. The method of claim 1 , wherein the determined bitrates are determined so that delivering the requested channel offerings using the determined bitrates consumes the predetermined amount of bandwidth.

6. The method of claim 1 , wherein, for each channel offering of the requested channel offerings:

the determining the bitrates comprises determining a respective bitrate for the channel offering; and

the obtaining comprises generating a respective DBI for the channel offering at the respective bitrate.

7. The method of claim 1 , wherein, for each channel offering of the requested channel offerings:

the determining the bitrates comprises determining a respective bitrate for the channel offering; and

the obtaining comprises:

comparing the respective bitrate against a set of available bitrate instances for the channel offering; and

obtaining a respective DBI for the channel offering by selecting one of the set of available bitrate instances based on the comparing.

8. The method of claim 1 , wherein the obtaining comprises:

issuing proxy requests to at least one content server for the requested channel offerings in accordance with the determined bitrates; and

receiving instances of the requested channel offerings at the determined bitrates in response to the proxy requests.

9. The method of claim 1 , wherein the identifying the requested channel offerings comprises including in the requested channel offerings at least one channel offering of the plurality of channel offerings previously associated with a minimum bitrate for transmission regardless of whether the at least one channel offering is presently requested according to the client requests.

10. The method of claim 1 , further comprising:

allocating, to each carrier of the plurality of carriers, the predetermined amount of bandwidth for delivering the plurality of channel offerings over the carrier.

11. The method of claim 1 , further comprising:

determining a present link condition for the particular carrier;

determining the predetermined amount of bandwidth dynamically for the particular carrier based on the present link condition prior to the determining the bitrates; and

allocating the predetermined amount of bandwidth to the particular carrier.

12. The method of claim 1 , further comprising:

publishing, to the plurality of client devices, availability of the plurality of channel offerings in accordance with the DBIs as published DBIs, thereby permitting the client devices disposed in the at least one transport craft subsequently to request only the published DBIs.

13. The method of claim 1 , wherein the computing the channel popularity scores for the requested channel offerings is based at least in part on predicting popularity of at least a portion of the plurality of channel offerings with respect to the at least one transport craft.

14. The method of claim 1 , wherein the aggregating is performed at the transport craft.

15. A system for popularity-aware bitrate adaptation in content delivery over a communications network, the system comprising:

a scoring subsystem configured to compute channel popularity scores for a plurality of channel offerings based at least on aggregated client requests for requested channel offerings of the plurality of channel offerings, the aggregated client requests received from a plurality of client devices disposed on at least one transport craft serviced by the communications network, wherein the at least one transport craft is presently serviced by a particular carrier of a plurality of carriers of the communications network;

a delivery subsystem coupled with the scoring subsystem, a content server, and the communications network, the delivery subsystem comprising:

an optimization engine configured to:

obtain an allocated bandwidth as a predetermined amount of bandwidth of the communications network allocated for delivering the plurality of channel offerings to the plurality of client devices, wherein the predetermined amount of bandwidth is a portion of total bandwidth of the particular carrier having been allocated for delivering the plurality of channel offerings to the plurality of client devices;

identify the requested channel offerings of the plurality of channel offerings for delivery to the plurality of client devices via the communications network based at least on the aggregated client requests; and

determine bitrates for the requested channel offerings based on the predetermined amount of bandwidth and the channel popularity scores; and

a determined-bitrate instance (DBI) engine configured to obtain DBIs for the requested channel offerings based on the determined bitrates,

wherein the delivery subsystem is configured to deliver the DBIs to the plurality of client devices responsive to the aggregated client requests using the predetermined amount of bandwidth of the communications network.

16. The system of claim 15 , wherein the optimization engine is configured to determine the bitrates by computing the determined bitrates to maximize a consumed bitrate across the plurality of client devices.

17. The system of claim 15 , wherein the optimization engine is configured to determine the bitrates by computing the determined bitrates to maximize an average consumed bandwidth across the plurality of client devices.

18. The system of claim 15 , wherein the optimization engine is configured to determine the bitrates so that delivering the requested channel offerings using the determined bitrates consumes the predetermined amount of bandwidth.

19. The system of claim 15 , wherein:

the optimization engine is configured to determine the bitrates by determining a respective bitrate for each channel offering of the requested channel offerings; and

the DBI engine is configured to obtain the DBIs by generating a respective DBI for each channel offering of the requested channel offerings at the respective bitrate determined for the channel offering by the optimization engine.

20. The system of claim 15 , wherein:

the optimization engine is configured to determine the bitrates by determining a respective bitrate for each channel offering of the requested channel offerings; and

the DBI engine is configured to obtain the DBIs by, for each channel offering of the requested channel offerings:

comparing the respective bitrate against a set of available bitrate instances for the channel offering; and

generating a respective DBI for the channel offering by selecting one of the set of available bitrate instances based on the comparing.

21. The system of claim 15 , wherein the delivery subsystem is further configured to:

receive, via the communications network, a plurality of client requests from the plurality of client devices disposed on the at least one transport craft; and

aggregate the plurality of client requests into the aggregated client requests.

Assignments (5)
SUPPLEMENTAL PATENT SECURITY AGREEMENT Recorded Sep 19, 2023
From: VIASAT, INC.
To: MUFG BANK, LTD., AS AGENT
Reel/Frame 064948/0379 →
SUPPLEMENTAL PATENT SECURITY AGREEMENT Recorded Jun 29, 2023
From: VIASAT, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL TRUSTEE
Reel/Frame 064176/0566 →
SECURITY AGREEMENT Recorded Jun 1, 2023
From: VIASAT, INC.
To: BANK OF AMERICA, N.A., AS AGENT
Reel/Frame 063822/0446 →
SECURITY AGREEMENT Recorded Mar 7, 2022
From: VIASAT, INC.
To: BANK OF AMERICA, N.A.
Reel/Frame 059332/0558 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 8, 2020
From: SLATER, JOSHUA G.; RIGHETTI, JOSHUA J.; VELAYUDHAN, NIRMALKUMAR
To: VIASAT, INC.
Reel/Frame 052342/0248 →
Continuity (3)
Continuation 15946367 · Apr 5, 2018
Continuation 14874158 · Oct 2, 2015
Provisional Application 62117845 · Feb 18, 2015