IP Library › Granted Patent US 8,842,159
Granted Patent B2
US 8,842,159 · App. 13/371,478 · Granted Sep 23, 2014

Encoding processing for conferencing systems

Inventors: Mei-Hsuan Lu (Bellevue, WA); Ming-Chieh Lee (Bellevue, WA)
Assignee: Microsoft Corporation
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 8,842,159
App. No.
13/371,478
Granted
Sep 23, 2014
Kind
B2
Abstract

Optimization of conference call encoding processes is provided. A first client of a multi-party conference call may receive client capability data, including video scalability support, from each of the other clients to the conference call. Based on the client capability data and the transmission capabilities of the first client, including video scalability support, the first client may determine a total number of data streams and properties for each data stream, such that the total number of data streams and the plurality of properties for each data stream are optimized and supported by the respective client capability data and the transmission capabilities. Subsequently, the first client generates one or more data streams according to the total number of data streams and the properties that were determined for each data stream and transmits the one or more data streams to the other clients of the conference call.

Claims (39)

1. A method for providing one or more data streams to a plurality of clients in a conference call, comprising:

receiving client capability data, including video scalability support, from one or more of the plurality of clients;

determining a total number of data streams and a plurality of properties for each data stream based on the client capability data and one or more transmission capabilities, including video scalability support, such that the total number of data streams and the plurality of properties for each data stream are supported by the client capability data and the one or more transmission capabilities;

generating one or more data streams according to the total number of data streams and the plurality of properties for each data stream that were determined; and

transmitting the one or more data streams to the plurality of clients.

2. The method of claim 1 , wherein receiving client capability data from one or more of the plurality of clients comprises receiving a downlink bandwidth capability one or more of the plurality of clients.

3. The method of claim 2 , wherein receiving client capability data from one or more of the plurality of clients comprises receiving a video resolution capability from one or more of the plurality of clients.

4. The method of claim 3 , wherein receiving client capability data from one or more of the plurality of clients comprises receiving a video frame rate capability from one or more of the plurality of clients.

5. The method of claim 4 , wherein receiving client capability data from one or more of the plurality of clients comprises receiving a data loss rate capability from one or more of the plurality of clients.

6. The method of claim 1 , wherein determining a total number of data streams and a plurality of properties for each data stream is further based on at least one of the following transmission capabilities: processing capacity, uplink bandwidth, video source resolution, and video source frame rate.

7. The method of claim 6 , wherein determining a total number of data streams and a plurality of properties for each data stream further comprises determining at least one of the following properties for each data stream: bit rate, resolution, and frame rate.

8. The method of claim 7 , wherein determining a total number of data streams and a plurality of properties for each data stream is further based on a lookup table that defines a bit rate corresponding to each frame rate and resolution value of a data stream.

9. The method of claim 1 , wherein generating one or more data streams further comprises generating at least one data stream that includes video scalability encoding.

10. The method of claim 1 , wherein the conference call comprises a video conference call and wherein generating one or more data streams comprises generating one or more data streams that includes audio and video data.

11. The method of claim 1 , wherein determining a total number of data streams and a plurality of properties for each data stream further comprises:

determining a first number of data streams and a plurality of properties for each data stream according to a processing capacity transmission capability; and

determining the total number of data streams and a plurality of properties for each data stream according to uplink bandwidth, wherein the total number of data streams is based on the first number of data streams.

12. At least one memory storage device storing executable instructions, which, when executed by a computing device, cause the computing device to perform a method for providing one or more data streams to a plurality of clients in a conference call, the method comprising:

receiving client capability data from one or more of the plurality of clients, wherein client capability data includes downlink bandwidth, video source resolution, video source frame rate, and video scalability support;

determining a total number of data streams and a plurality of properties for each data stream based on the client capability data and one or more transmission capabilities, such that the total number of data streams and the plurality of properties for each data stream are supported by the client capability data and the one or more transmission capabilities, and wherein transmission capabilities include processing capacity, uplink bandwidth, video resolution, video frame rate, and video scalability support;

generating one or more data streams according to the total number of data streams and the plurality of properties for each data stream that were determined; and

transmitting the one or more data streams to the plurality of clients.

13. The at least one memory storage device of claim 12 , wherein receiving client capability data from one or more of the plurality of clients further comprises receiving a data loss rate capability from one or more of the plurality of clients.

14. The at least one memory storage device of claim 12 , wherein determining a total number of data streams and a plurality of properties for each data stream further comprises determining at least one of the following properties for each data stream: bit rate, resolution, and frame rate.

15. The at least one memory storage device of claim 14 , wherein determining a total number of data streams and a plurality of properties for each data stream is further based on a lookup table that defines a bit rate corresponding to each frame rate and resolution value of a data stream.

16. The at least one memory storage device of claim 15 , wherein generating one or more data streams further comprises generating at least one data stream that includes video scalability encoding.

17. The at least one memory storage device of claim 12 , wherein the conference call comprises a video conference call and wherein generating one or more data streams comprises generating one or more data streams that includes audio and video data.

18. The at least one memory storage device of claim 12 , wherein determining a total number of data streams and a plurality of properties for each data stream further comprises:

determining a first number of data streams and a plurality of properties for each data stream according to a processing capacity transmission capability; and

determining the total number of data streams and a plurality of properties for each data stream according to uplink bandwidth, wherein the total number of data streams is based on the first number of data streams.

19. A system for providing one or more video streams to a plurality of clients in a video conference call, the system comprising:

a memory storage;

a network connection device; and

a processing unit coupled to the memory storage, wherein the processing unit is operative to:

receive client capability data from one or more of the plurality of clients, wherein client capability data includes downlink bandwidth, video resolution, video frame rate, and video scalability support;

determine a total number of data streams and a plurality of properties for each data stream based on: a) the client capability data, b) one or more transmission capabilities and c) a lookup table that defines a bit rate corresponding to each frame rate and resolution value of a data stream, such that the total number of data streams and the plurality of properties for each data stream are supported by the client capability data and the one or more transmission capabilities, and wherein transmission capabilities include processing capacity, uplink bandwidth, video resolution, video frame rate, and video scalability support;

generate one or more data streams according to the total number of data streams and the plurality of properties for each data stream that were determined; and

transmit the one or more data streams to the plurality of clients.

20. The system of claim 19 , wherein the system transmits the one or more data streams to a conference server that moderates the video conference call, and wherein the video conference server transmits the one or more data streams to the plurality of clients.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034544/0541 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 13, 2012
From: LU, MEI-HSUAN; LEE, MING-CHIEH
To: MICROSOFT CORPORATION
Reel/Frame 027690/0094 →
Continuity (1)
Related Publication 20130208075A1 · Aug 15, 2013