IP Library Granted Patent US 9,003,467
Granted Patent B2
US 9,003,467 · App. 13/123,412 · Granted Apr 7, 2015

Supporting functions for quality-assured P2P VoD services

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 9,003,467
App. No.
13/123,412
Granted
Apr 7, 2015
Kind
B2
Abstract

The present invention relates to a method for controlling downloading of video segments or segmented video stream to a subscriber client unit, and a subscriber client unit adapted to perform said method. One object of the invention is to guarantee seamless playback and the optimal server load. Said object is by a method and a subscriber client unit that is controlled by a segment selector (SSA) and a server bandwidth control (SBC) algorithm.

Claims (97)

1. Method performed by a subscriber client unit for controlling a downloading of video segments or a segmented video stream to the subscriber client unit from providers comprising at least one central video server providing video uploading services to a plurality of subscriber clients and at least one subscriber client being a possible and/or accepted uploader client providing video uploading services to other clients in a peer-to-peer manner, the subscriber client unit being capable of executing a Segment Selector Algorithm for selecting from a list of accepted available video providers a suitable provider for a succeeding video segment to be downloaded, and a Server Bandwidth Control (SBC) algorithm, the method comprising:

calculating a minimal server bandwidth (σ min ) according to a prebuffered video segment gain in the subscriber client unit in order to achieve a fault free playback;

calculating a maximal server bandwidth (σ max ) according to a number of available uploader clients' upload bandwidth in order to avoid competition on a subscriber's access link;

determining an optimal server bandwidth (σ opt ) according to estimated upload clients' behaviours; and

determining and setting a server speed (σ) based on the minimal server bandwidth (σ min ), the maximal server bandwidth (σ max ) and the determined optimal max, server bandwidth (σ opt ).

2. The method according to claim 1 , wherein the determining and setting the server speed (σ) comprises estimating the server speed as

σ=min{max{σ min ,σ opt },σ max }.

3. The method according to claim 1 , wherein the optimal server bandwidth (σ opt ) is determined based on the prebuffered video segment gain, possible values for uploaders' segment upload times and a target play-back fault probability.

4. The method according to claim 1 , wherein the minimal server bandwidth (σ min ) speed is calculated as

σ

min

=

max

time

i

t

c

{

gap

1

+

gapi

time

i

}

wherein, gapi is the i:th continuous un-downloaded portion of a stream within t_S+t_C, where t_C is a time offset after which a segment download can start from another client and t_S is a time for downloading all currently requested segments, and time denotes a beginning of gapi, for estimating a minimal server bandwidth (σ min ) speed.

5. The method according to claim 1 , wherein the maximal server bandwidth (σ max ) is calculated as

σ max =V max −Σestimated_maximal_uploadspeed

wherein V max is the downlink bandwidth reserved for the video service at the subscriber's access link, and Σestimated_maximal_uploadspeed is a total bandwidth/speed of available uploader clients' upload bandwidth/speeds.

6. The method according to claim 1 , further comprising determining using the minimal server bandwidth (σ min ) and the maximal server bandwidth (σ max ) whether a list of accepted available video providers should be changed, or not.

7. The method according to claim 6 , wherein the list of accepted available video providers is to be changed by dropping an accepted available uploader client if

σ max ≦σ min .

8. The method according to claim 1 , further comprising updating a parameter t_C, which is a time offset after which a segment download can start from another client, based on an estimated upload of a segment, an estimation thereof being performed based on a preset number of recent completely finished video segment uploads.

9. The method according to claim 1 , further comprising comparing an uploading speed (σ new ) of an uploader client candidate with a difference between the maximal server bandwidth (σ max ) and the determined server speed (σ) to determine whether the uploader client candidate is acceptable, or not.

10. The method according to claim 9 , wherein the uploader client candidate is determined to be acceptable if

σ max −σ≧σ new .

11. The method according to claim 1 further comprising a storage policy process for determining whether a whole video file, a part of the video file or nothing of the video file should be stored depending on availability on a local storage capacity.

12. The method according to claim 11 , wherein, according to said storage policy process, every k:th segment of a given video file is stored, wherein k is calculated as

k =[video bitrate/ u],

the video bitrate being a video file encoding rate and u being an average upload capacity of a subscriber client unit.

13. A subscriber client unit configured to control a downloading of video segments and video streams from video segment providers comprising at least one video server centre providing video uploading services to a plurality of subscriber clients and at least one subscriber client being a possible and/or accepted uploader client providing video uploading services to other clients in a peer-to-peer manner, the subscriber client unit comprising:

a controlling unit including a processor and configured

to execute a Segment Selector Algorithm (SSA) for selecting a suitable provider for a succeeding video segment to be downloaded, from a list of accepted available video providers, and

to execute a Server Bandwidth Control (SBC) Algorithm, the SBC Algorithm comprising

first calculating unit configurcd to calculatc calculating a minimal server bandwidth (σ min ) according to a prebuffered video segment gain in the subscriber client unit in order to achieve a fault free playback,

estimating a maximal server bandwidth (σ max ) according to a number of available uploader clients' upload bandwidth in order to avoid competition on a subscriber's access link,

determining an optimal server bandwidth (σ opt ) based on the prebuffered video segment gain and segment upload times, and

determining and setting a server speed (σ) based on the minimal server bandwidth (σ min ), the maximal server bandwidth (σ max ) and the determined optimal server bandwidth (σ opt ).

14. The subscriber client unit according to claim 13 , wherein the server speed is determined as

σ=min{max{σ min },σ max }.

15. The subscriber client unit according to claim 13 , wherein the optimal server band bandwidth (σ opt ) is determined based on the prebuffered video segment gain, possible values for uploaders' segment upload times and a target play-back fault probability.

16. The subscriber client unit according to claim 13 , wherein the minimal server bandwidth is calculated as

σ

min

=

max

time

i

t

c

{

gap

1

+

gapi

time

i

}

wherein gapi is the i:th continuous undownloaded portion of a stream within t_S+t_C, where t_C is a time offset after which a segment download can start from another client and t_S is a time for downloading all currently requested segments, and time i denotes a beginning of gapi, for estimating a minimal server bandwidth (σ min ) speed.

17. The subscriber client unit according to claim 13 , wherein the maximal server bandwidth (σ max ) is calculated as

σ max =V max −Σestimated_maximal_uploadspeed

wherein V max is the downlink bandwidth reserved for the video service at the subscriber's access link, and Σestimated_maximal_uploadspeed is a total bandwidth/speed of available uploader clients' upload bandwidth/speeds.

18. The subscriber client unit according to claim 13 , wherein the controlling unit is further configured to determine whether a list of accepted available video providers should be changed, or not, using the minimal server bandwidth (σ min ), and the maximal server bandwidth (σ max ).

19. The subscriber client unit according to claim 18 , wherein the controlling unit determines that the list of available video providers is to be changed by dropping an accepted available uploader client if

σ max ≦σ min .

20. The subscriber client unit according to claim 13 , wherein the controlling unit is further configured to update a parameter t_C, which is a time offset after which a segment download can start from another client, based on an estimated upload of a segment, an estimation thereof being performed based on a preset number of recent completely finished video segment uploads.

21. The subscriber client unit according to claim 13 , wherein the controlling unit is further configured to compare the uploading speed (σ new ) of an uploader client candidate with a difference between the maximal server bandwidth (σ max ) and the determined server speed (σ) to determine whether the uploader client candidate is acceptable, or not.

22. The subscriber client unit according to claim 21 , wherein the controlling unit determines that the uploader client candidate is acceptable if

σ max −σ≦(σ new ).

23. The subscriber client unit according to claim 13 , wherein the controlling unit is further configured to determine whether a whole video file, a part of the video file or nothing of the video file should be stored depending on availability on a local storage capacity.

24. The subscriber client unit according to claim 23 , wherein said controlling controls a local storage to store every k:th segment of a given video file, wherein k is calculated as

k =[video bitrate/ u]

video bitrate being a video file encoding rate, and u being an average upload capacity of the subscriber client unit.

Assignments (8)
RELEASE OF SECURITY INTEREST Recorded Oct 14, 2025
From: CITIBANK, N.A., AS AGENT
To: MK SYSTEMS USA INC.
Reel/Frame 073070/0114 →
SECURITY INTEREST Recorded Oct 10, 2025
From: MK SYSTEMS USA INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS AGENT
Reel/Frame 073062/0487 →
SECURITY INTEREST Recorded Apr 3, 2020
From: MK SYSTEMS USA INC.
To: CITIBANK, N.A., AS AGENT
Reel/Frame 052312/0567 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 5, 2019
From: MK SYSTEMS US SUB-HOLDCO INC.
To: MK SYSTEMS USA INC.
Reel/Frame 050277/0946 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 4, 2019
From: MK SYSTEMS US HOLDCO INC.
To: MK SYSTEMS US SUB-HOLDCO INC.
Reel/Frame 050272/0448 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 4, 2019
From: LEONE MEDIA INC.
To: MK SYSTEMS US HOLDCO INC.
Reel/Frame 050265/0490 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 30, 2019
From: TELEFONAKTIEBOLAGET L M ERICSSON (PUBL)
To: LEONE MEDIA INC.
Reel/Frame 050220/0129 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 13, 2011
From: CSASZAR, ANDRAS; DAMOLA, AYODELE; KISS, AKOS; KOROSI, ATTILA; LUKOVSZKI, CSABA; SZEKELY, BALAZS
To: TELEFONAKTIEBOLAGET L M ERICSSON (PUBL)
Reel/Frame 026120/0371 →