IP Library Granted Patent US 10,587,670
Granted Patent B2
US 10,587,670 · App. 15/858,588 · Granted Mar 10, 2020

Coverage optimized content buffering

Inventor: Joshua Stumbo (Spokane, WA)
Assignee: DISH Network L.L.C.
H04L65/80H04L65/4069H04L65/4084H04L65/4092H04N21/6131H04N21/6373H04W16/18H04W24/08H04W36/02H04W64/006
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 10,587,670
App. No.
15/858,588
Granted
Mar 10, 2020
Kind
B2
Abstract

Described herein are systems and methods for optimizing buffering of streamed content based on upcoming coverage. For example, during a trip, the bit rate for transmission and receipt of streamed content can be dynamically adjusted based on the upcoming coverage such that when the upcoming network coverage is limited, the bit rate of the streamed content can be increased to ensure the buffer is sufficiently large to allow the user to experience (or appear to experience) uninterrupted streaming during the limited network connectivity. The bit rate can be calculated based on calculating a buffer size that can provide content at the play rate for the duration that the device is in a minimal or no network coverage area.

Claims (76)

1. A method, comprising:

determining a route of a user having a mobile device that is receiving streaming content at a bit rate comprising a nominal bit rate and a buffer bit rate for buffering a portion of the streaming content in a buffer over a period of time;

identifying network coverage availability of the route;

calculating a coverage buffer size to provide uninterrupted play of the streaming content by the mobile device based on a physical speed of the mobile device and the network coverage availability of the route;

limiting the coverage buffer size to a user buffer size limit in response to determining that the coverage buffer size is larger than the user buffer size limit as previously set by the user via a user interface of the mobile device;

calculating a coverage bit rate based on the coverage buffer size; and

dynamically requesting an adjusted bit rate based on the coverage bit rate.

2. The method of claim 1 , wherein determining a route of the user comprises:

predicting the route of the user based on a historical route.

3. The method of claim 1 , wherein determining a route of the user comprises:

obtaining the route from a mapping application.

4. The method of claim 1 , further comprising:

receiving the user buffer size limit via the user interface of the mobile device prior to the detecting the route.

5. The method of claim 1 , wherein the identifying network coverage availability of the route comprises:

identifying a first area having a quality of coverage that is at least a threshold quality of coverage; and

identifying a second area having a quality of coverage that is below the threshold quality of coverage that is later in the route than the first area;

wherein calculating the coverage buffer size to provide uninterrupted play of the streaming content by the mobile device based on a physical speed of the mobile device and the network coverage availability of the route comprises:

calculating a duration of the mobile device being in the second area based on the physical speed of the mobile device and a distance of the route of the user through the second area; and

calculating the coverage buffer size based on the duration of the mobile device being in the second area and the nominal bit rate;

wherein calculating the coverage bit rate comprises:

calculating a duration of the mobile device being in the first area based on the physical speed of the mobile device and a distance of the route of the user through the first area; and

calculating the coverage bit rate based on the coverage buffer size and the duration of the mobile device being in the first area; and

wherein the adjusted bit rate comprises the coverage bit rate plus the nominal bit rate and wherein dynamically requesting the adjusted bit rate comprises requesting the adjusted bit rate when the mobile device reaches the first area.

6. The method of claim 5 , wherein dynamically requesting the adjusted bit rate comprises requesting a slower bit rate when the mobile device reaches the second area.

7. The method of claim 1 wherein the streaming content is streaming video content.

8. The method of claim 1 wherein the streaming content is streaming audio content.

9. A system, comprising:

one or more processors; and

a memory communicatively coupled to the one or more processors having stored thereon instructions that, when executed by the one or more processors, cause the one or more processors to:

determine a route of a user having a mobile device that is receiving streaming content at a bit rate comprising a nominal bit rate and a buffer bit rate for buffering a portion of the streaming content in a buffer over a period of time;

identify network coverage availability of the route;

calculate a coverage buffer size to provide uninterrupted play of the streaming content by the mobile device based on a physical speed of the mobile device and the network coverage availability of the route;

limit the coverage buffer size to a user buffer size limit in response to determining that the coverage buffer size is larger than the user buffer size limit as previously set by the user via a user interface of the mobile device;

calculate a coverage bit rate based on the coverage buffer size; and

dynamically request an adjusted bit rate based on the coverage bit rate.

10. The system of claim 9 , wherein the instructions that cause the one or more processors to determine a route of the user comprise further instructions that, when executed by the one or more processors, cause the one or more processors to:

predict the route of the user based on a historical route.

11. The system of claim 9 , wherein the instructions that cause the one or more processors to determine a route of the user comprise further instructions that, when executed by the one or more processors, cause the one or more processors to:

obtain the route from a mapping application.

12. The system of claim 9 , wherein the instructions comprise further instructions that, when executed by the one or more processors, cause the one or more processors to:

receive the user buffer size limit via the user interface of the mobile device prior to the detecting the route.

13. The system of claim 9 , wherein the instructions that cause the one or more processors to identify network coverage availability of the route comprise further instructions that, when executed by the one or more processors, cause the one or more processors to:

identify a first area having a quality of coverage that is at least a threshold quality of coverage; and

identify a second area having a quality of coverage that is below the threshold quality of coverage that is later in the route than the first area;

wherein the instructions that cause the one or more processors to calculate the coverage buffer size to provide uninterrupted play of the streaming content by the mobile device based on a physical speed of the mobile device and the network coverage availability of the route comprise further instructions that, when executed by the one or more processors, cause the one or more processors to:

calculate a duration of the mobile device being in the second area based on the physical speed of the mobile device and a distance of the route of the user through the second area; and

calculate the coverage buffer size based on the duration of the mobile device being in the second area and the nominal bit rate;

wherein the instructions that cause the one or more processors to calculate the coverage bit rate comprise further instructions that, when executed by the one or more processors, cause the one or more processors to:

calculate a duration of the mobile device being in the first area based on the physical speed of the mobile device and a distance of the route of the user through the first area; and

calculate the coverage bit rate based on the coverage buffer size and the duration of the mobile device being in the first area; and

wherein the adjusted bit rate comprises the coverage bit rate plus the nominal bit rate and wherein the instructions that cause the one or more processors to dynamically request an adjusted bit rate comprise further instructions that, when executed by the one or more processors, cause the one or more processors to request the adjusted bit rate when the mobile device reaches the first area.

14. The system of claim 13 , wherein the instructions that cause the one or more processors to dynamically request the adjusted bit rate comprise further instructions that, when executed by the one or more processors, cause the one or more processors to request a slower bit rate when the mobile device reaches the second area.

15. The system of claim 9 wherein the streaming content is streaming video content or streaming audio content.

16. A non-transitory, computer-readable storage device having stored thereon instructions that, when executed by one or more processors, cause the one or more processors to:

determine a route of a user having a mobile device that is receiving streaming content at a bit rate comprising a nominal bit rate and a buffer bit rate for buffering a portion of the streaming content in a buffer over a period of time;

identify network coverage availability of the route;

calculate a coverage buffer size to provide uninterrupted play of the streaming content by the mobile device based on a physical speed of the mobile device and the network coverage availability of the route;

limit the coverage buffer size to a user buffer size limit in response to determining that the coverage buffer size is larger than the user buffer size limit as previously set by the user via a user interface of the mobile device;

calculate a coverage bit rate based on the coverage buffer size; and

dynamically request an adjusted bit rate based on the coverage bit rate.

17. The non-transitory, computer-readable storage device of claim 16 , wherein the instructions that cause the one or more processors to determine a route of the user comprise further instructions that, when executed by the one or more processors, cause the one or more processors to:

predict the route of the user based on a historical route or obtain the route from a mapping application.

18. The non-transitory, computer-readable storage device of claim 16 , wherein the instructions comprise further instructions that, when executed by the one or more processors, cause the one or more processors to:

receive the user buffer size limit via the user interface of the mobile device prior to the detecting the route.

19. The non-transitory, computer-readable storage device of claim 16 , wherein the instructions that cause the one or more processors to identify network coverage availability of the route comprise further instructions that, when executed by the one or more processors, cause the one or more processors to:

identify a first area having a quality of coverage that is at least a threshold quality of coverage; and

identify a second area having a quality of coverage that is below the threshold quality of coverage after the first area in the route;

wherein the instructions that cause the one or more processors to calculate the coverage buffer size to provide uninterrupted play of the streaming content by the mobile device based on a physical speed of the mobile device and the network coverage availability of the route comprise further instructions that, when executed by the one or more processors, cause the one or more processors to:

calculate a duration of the mobile device being in the second area based on the physical speed of the mobile device and a distance of the route of the user through the second area; and

calculate the coverage buffer size based on the duration of the mobile device being in the second area and the nominal bit rate;

wherein the instructions that cause the one or more processors to calculate the coverage bit rate comprise further instructions that, when executed by the one or more processors, cause the one or more processors to:

calculate a duration of the mobile device being in the first area based on the physical speed of the mobile device and a distance of the route of the user through the first area; and

calculate the coverage bit rate based on the coverage buffer size and the duration of the mobile device being in the first area; and

wherein the adjusted bit rate comprises the coverage bit rate plus the nominal bit rate and wherein the instructions that cause the one or more processors to dynamically adjust the bit rate comprise further instructions that, when executed by the one or more processors, cause the one or more processors to request the adjusted bit rate when the mobile device reaches the first area.

20. The method of claim 1 , further comprising:

displaying, via the user interface of the mobile device, in response to the determining that the coverage buffer size is larger than the user buffer size limit, a notification to the user indicating a potential impact of the limiting on uninterrupted playback of the streaming content through areas with little or no network coverage.

Assignments (2)
SECURITY INTEREST Recorded Nov 30, 2021
From: DISH BROADCASTING CORPORATION; DISH NETWORK L.L.C.; DISH TECHNOLOGIES L.L.C.
To: U.S. BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 058295/0293 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 13, 2018
From: STUMBO, JOSHUA
To: DISH NETWORK L.L.C.
Reel/Frame 044912/0090 →