IP Library Granted Patent US 11,785,066
Granted Patent B2
US 11,785,066 · App. 17/929,603 · Granted Oct 10, 2023

Systems, methods, and media for controlling delivery of content

Inventors: Auke Sjoerd van der Schaar (Los Angeles, CA); Abhishek Shivadas (San Diego, CA)
Assignee: DIVX, LLC
H04L65/613H04L65/00H04L65/80H04L67/60H04N21/44209H04N21/637H04N21/8456H04N21/85406
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,785,066
App. No.
17/929,603
Granted
Oct 10, 2023
Kind
B2
Abstract

Methods, systems, and computer readable media for controlling delivery of content are provided. In some embodiments, a system for controlling delivery of content is provided. The system includes processing circuitry configured to: transmit, to a server, a plurality of requests for blocks of the content; while at least some of the plurality of requests are still outstanding: detect a change of a service characteristic of a connection between the system and the server; determine a preferred number of outstanding requests; and cancel at least some of the requests from the plurality that are still outstanding based on the preferred number and a count of the requests from the plurality that are still outstanding.

Claims (164)

1. An operating method for controlling delivery of content through a server, the operating method comprising:

receiving, from a device, a plurality of requests for blocks of the content;

wherein an actual number of outstanding requests is at least one;

obtaining a set of measurements of service characteristics, wherein each of the set of measurements of service characteristics comprises a measurement that is indicative of at least one of:

a latency of a connection between the server and the device, wherein the latency includes a time differential between a transmission of a request for a block of content from the device to the server and receipt of a first network packet associated with the block of content at the device; and

a bandwidth of a connection between the server and the device, wherein the bandwidth includes a size of the block divided by a time differential between the receipt of the first network packet and receipt of a last network packet associated with the block of content;

determining a preferred number of outstanding requests based upon the set of measurements of service characteristics and the size of the block of content;

transmitting, to the device, the preferred number of outstanding requests;

when a service characteristic of the set of measurements of service characteristics suggests at least one of an increase of the bandwidth and a decrease of the latency:

increasing the preferred number of outstanding requests; and

transmitting, to the device, the preferred number of outstanding requests; and

when an actual number of outstanding requests is less than the preferred number of outstanding requests, reducing the actual number of outstanding requests.

2. The operating method of claim 1 , wherein determining the preferred number of outstanding requests is evaluated using the following expression:

preferred

number

of

requests

=

t

latency

t

transmission

+

1

;

wherein t latency is the latency and t transmission is a transmission time.

3. The operating method of claim 2 , wherein the transmission time is evaluated using the following expression:

t

transmission

=

block

size

bandwidth

;

wherein block size is the size of the block of content currently being transmitted and bandwidth is the bandwidth.

4. The operating method of claim 1 , wherein the plurality of requests for blocks of content are transmitted using an Open Systems Interconnect (OSI) application-layer protocol.

5. The operating method of claim 1 , wherein each block of content requested in the plurality of requests for blocks of the content is a fragment of a larger content file.

6. The operating method of claim 1 , wherein the content is at least one of streaming content and content from a live performance.

7. The operating method of claim 1 , wherein reducing the actual number of outstanding requests comprises cancelling the outstanding requests in order of most recent.

8. The operating method of claim 1 , further comprising:

determining whether an underflow condition has occurred; and

when an underflow condition has occurred, reducing the actual number of outstanding requests in response to the underflow condition.

9. The operating method of claim 8 , wherein an underflow condition occurs when:

size

data

bandwidth

t

video

in

buffer

-

t

delay

-

t

cancel

request

-

t

safety

margin

,

wherein:

size data is a combined size of all requests of the outstanding requests;

bandwidth is the bandwidth of the connection between the server and the device;

t video in buffer is a combined play time of all blocks of the content that are stored in a buffer of the device;

t delay is a minimum playtime of content data that needs to be stored in the buffer of the device in order to prevent an underflow;

t cancel request is an estimate of time needed for the device to cancel a request; and

T safety margin is an additional safety margin.

10. The operating method of claim 1 , wherein a service characteristic is selected from the group consisting of network throughput, a signal strength of a network connection of the device, and type of network access.

11. A server directed to controlling delivery of content, comprising at least one processor which is configured to:

receive, from a device, a plurality of requests for blocks of the content;

wherein an actual number of outstanding requests is at least one:

obtain a set of measurements of service characteristics,

wherein the set of measurements of service characteristics comprises one or more measurements that are indicative of at least one of:

a latency of a connection between the server and the device, wherein the latency includes a time differential between a transmission of a request for a block of content from the device to the server and receipt of a first network packet associated with the block of content at the device; and

a bandwidth of a connection between the server and the device, wherein the bandwidth includes a size of the block divided by a time differential between the receipt of the first network packet and receipt of a last network packet associated with the block of content;

determine a preferred number of outstanding requests based upon the set of measurements of service characteristics;

when a service characteristic of the set of measurements of service characteristics suggests at least one of an increase of the bandwidth and a decrease of the latency:

increase the preferred number of outstanding requests; and

transmit, to the device, the preferred number of outstanding requests; and

when an actual number of outstanding requests is less than the preferred number of outstanding requests, reduce the actual number of outstanding requests.

12. The server of claim 11 , wherein determining the preferred number of outstanding requests is evaluated using the following expression:

preferred

number

of

requests

=

t

latency

t

transmission

+

1

;

wherein t latency is the latency and t transmission , is a transmission time.

13. The server of claim 12 , wherein the transmission time is evaluated using the following expression:

t

transmission

=

block

size

bandwidth

;

wherein block size is the size of the block of content currently being transmitted and bandwidth is the bandwidth.

14. The server of claim 11 , wherein the plurality of requests for blocks of content are transmitted using an Open Systems Interconnect (OSI) application-layer protocol.

15. The server of claim 11 , wherein each block of content requested in the plurality of requests for blocks of the content is a fragment of a larger content file.

16. The server of claim 11 , wherein the content is at least one of streaming content and content from a live performance.

17. The server of claim 11 , wherein reducing the actual number of outstanding requests comprises cancelling the outstanding requests in order of most recent.

18. The server of claim 11 , wherein the at least one processor is further configured to:

determine whether an underflow condition has occurred; and

when an underflow condition has occurred, reduce the actual number of outstanding requests in response to the underflow condition.

19. The server of claim 18 , wherein an underflow condition occurs when:

size

data

bandwidth

t

video

in

buffer

-

t

delay

-

t

cancel

request

-

t

safety

margin

,

wherein:

size data is a combined size of all requests of the outstanding requests;

bandwidth is the bandwidth of the connection between the server and the device;

t video in buffer is a combined play time of all blocks of the content that are stored in a buffer of the device;

t delay is a minimum playtime of content data that needs to be stored in the buffer of device in order to prevent an underflow;

t cancel request is an estimate of time needed for the device to cancel a request; and

T safety margin is an additional safety margin.

20. The server of claim 11 , wherein a service characteristic is selected from the group consisting of network throughput, a signal strength of a network connection of the device, and type of network access.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 16, 2022
From: VAN DER SCHAAR, AUKE SJOERD; SHIVADAS, ABHISHEK
To: DIVX, LLC
Reel/Frame 062131/0580 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 16, 2022
From: DIVX, LLC
To: SONIC IP, INC.
Reel/Frame 062131/0615 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 16, 2022
From: SONIC IP, INC.
To: DIVX CF HOLDINGS LLC
Reel/Frame 062131/0635 →
CHANGE OF NAME Recorded Dec 16, 2022
From: DIVX CF HOLDINGS LLC
To: DIVX, LLC
Reel/Frame 062131/0654 →
Continuity (5)
Continuation 17068737 · Oct 12, 2020
Continuation 16255280 · Jan 23, 2019
Continuation 14943004 · Nov 16, 2015
Continuation 13732140 · Dec 31, 2012
Related Publication 20230067662A1 · Mar 2, 2023
Cited By (2)
US 12,250,404 US 12,262,051