IP Library Granted Patent US 10,389,772
Granted Patent B1
US 10,389,772 · App. 15/885,696 · Granted Aug 20, 2019

Systems and methods for optimizing simulcast streams in group video calls

Inventors: Arthur Cavalcanti Alem (Redwood City, CA); Bret Lorimore (Seattle, WA); Shyam Sadhwani (Bellevue, WA); Chi Wang Ho (Redmond, WA)
Assignee: Facebook, Inc.
H04L65/403H04L65/60H04N7/147
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,389,772
App. No.
15/885,696
Granted
Aug 20, 2019
Kind
B1
Abstract

Systems, methods, and non-transitory computer-readable media can identify a set of participants in a group video call, wherein each participant is associated with an uplink capacity and a downlink capacity, and the set of participants includes a set of sender participants and a set of subscriber participants. For a first sender participant of the set of sender participants, one or more video stream layers to be uploaded by the first sender participant are determined based on downlink capacities of one or more subscriber participants of the set of subscriber participants. Each subscriber participant of the one or more subscriber participants is assigned to receive one video stream layer of the one or more video stream layers to be uploaded by the first sender participant.

Claims (35)

1. A computer-implemented method comprising:

identifying, by a computing system, a set of participants in a group video call, wherein each participant is associated with an uplink capacity and a downlink capacity, and the set of participants includes a set of sender participants and a set of subscriber participants;

iteratively determining, by the computing system, for each sender participant of the set of sender participants, one or more video stream layers to be uploaded by the sender participant based on downlink capacities of one or more subscriber participants of the set of subscriber participants, wherein

the iteratively determining, for each sender participant of the set of sender participants, one or more video stream layers to be uploaded by the sender participant comprises iteratively processing each sender participant in an order based on a ranking; and

for each subscriber participant of the one or more subscriber participants, assigning, by the computing system, the subscriber participant to receive at least one video stream layer to be uploaded by at least one sender participant of the set of sender participants.

2. The computer-implemented method of claim 1 , wherein the one or more video stream layers to be uploaded by the each sender participant of the set of sender participants are determined based on downlink capacities of subscriber participants subscribed to the sender participant.

3. The computer-implemented method of claim 1 , wherein each subscriber participant is subscribed to at least one sender participant.

4. The computer-implemented method of claim 1 , wherein each video stream layer to be uploaded by a sender participant of the set of sender participants is associated with a bitrate.

5. The computer-implemented method of claim 4 , further comprising determining a bitrate for each video stream layer to be uploaded by each sender participant based on downlink capacities of subscriber participants subscribed to the sender participant and the uplink capacity associated with the sender participant.

6. The computer-implemented method of claim 1 , wherein the set of sender participants are ranked based on uplink capacity.

7. The computer-implemented method of claim 1 , wherein

the iteratively processing each sender participant comprises a plurality of iterations, with each iteration being associated with a particular sender participant of the set of sender participants, and

each iteration comprises iteratively processing each subscriber participant subscribed to the particular sender participant associated with the iteration.

8. The computer-implemented method of claim 7 , wherein the iteratively processing each subscriber participant subscribed to the particular sender participant comprises

determining, for each subscriber participant, whether to create a new layer to be uploaded by the particular sender participant or assigning the subscriber participant to a previously created layer associated with the particular sender participant.

9. A system comprising:

at least one processor; and

a memory storing instructions that, when executed by the at least one processor, cause the system to perform a method comprising:

identifying a set of participants in a group video call, wherein each participant is associated with an uplink capacity and a downlink capacity, and the set of participants includes a set of sender participants and a set of subscriber participants;

iteratively determining, for a each sender participant of the set of sender participants, one or more video stream layers to be uploaded by the sender participant based on downlink capacities of one or more subscriber participants of the set of subscriber participants, wherein

the iteratively determining, for each sender participant of the set of sender participants, one or more video stream layers to be uploaded by the sender participant comprises iteratively processing each sender participant in an order based on a ranking; and

for each subscriber participant of the one or more subscriber participants, assigning the subscriber participant to receive at least one video stream layer to be uploaded by at least one sender participant of the set of sender participants.

10. The system of claim 9 , wherein the one or more video stream layers to be uploaded by each sender participant of the set of sender participants are determined based on downlink capacities of subscriber participants subscribed to the sender participant.

11. The system of claim 9 , wherein each subscriber participant is subscribed to at least one sender participant.

12. The system of claim 9 , wherein each video stream layer to be uploaded by a sender participant of the set of sender participants is associated with a bitrate.

13. The system of claim 12 , wherein the instructions, when executed by the at least one processor, further cause the system to perform: determining a bitrate for each video stream layer to be uploaded by each sender participant of the set of sender participants based on downlink capacities of subscriber participants subscribed to the sender participant and the uplink capacity associated with the sender participant.

14. A non-transitory computer-readable storage medium including instructions that, when executed by at least one processor of a computing system, cause the computing system to perform a method comprising:

identifying a set of participants in a group video call, wherein each participant is associated with an uplink capacity and a downlink capacity, and the set of participants includes a set of sender participants and a set of subscriber participants;

iteratively determining, for a each sender participant of the set of sender participants, one or more video stream layers to be uploaded by the sender participant based on downlink capacities of one or more subscriber participants of the set of subscriber participants, wherein

the iteratively determining, for each sender participant of the set of sender participants, one or more video stream layers to be uploaded by the sender participant comprises iteratively processing each sender participant in an order based on a ranking; and

for each subscriber participant of the one or more subscriber participants, assigning the subscriber participant to receive at least one video stream layer to be uploaded by at least one sender participant of the set of sender participants.

15. The non-transitory computer-readable storage medium of claim 14 , wherein the one or more video stream layers to be uploaded by each sender participant of the set of sender participants are determined based on downlink capacities of subscriber participants subscribed to the sender participant.

16. The non-transitory computer-readable storage medium of claim 14 , wherein each subscriber participant is subscribed to at least one sender participant.

17. The non-transitory computer-readable storage medium of claim 14 , wherein each video stream layer to be uploaded by a sender participant of the set of sender participants is associated with a bitrate.

18. The non-transitory computer-readable storage medium of claim 17 , wherein the instructions, when executed by at least one processor of a computing system, further cause the computing system to perform: determining a bitrate for each video stream layer to be uploaded by each sender participant of the set of sender participants based on downlink capacities of subscriber participants subscribed to the sender participant and the uplink capacity associated with the sender participant.

Assignments (2)
CHANGE OF NAME Recorded Dec 3, 2021
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 058302/0925 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 7, 2018
From: CAVALCANTI ALEM, ARTHUR; LORIMORE, BRET; SADHWANI, SHYAM; HO, CHI WANG
To: FACEBOOK, INC.
Reel/Frame 044860/0780 →