IP Library Granted Patent US 7,822,811
Granted Patent B2
US 7,822,811 · App. 11/454,593 · Granted Oct 26, 2010

Performance enhancements for video conferencing

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 7,822,811
App. No.
11/454,593
Granted
Oct 26, 2010
Kind
B2
Abstract

A conference server may request a key frame from a conference participant in response to determining that the conference participant should become a most active participant, and the conference server may make the conference participant the most active participant in response to receiving the key frame from the conference participant.

Claims (66)

1. A method in a multi-participant video conference, comprising:

a conference server receiving and processing audio information from all conference participants and receiving and processing a video stream comprising I-frames and P-frames from a first conference participant identified as a most active participant;

the conference server providing a frame request for requesting an I-frame from a second conference participant that is not communicating a video stream in response to determining that the second conference participant should become the most active participant, the frame request causing the second conference participant to send an I-frame to the conference server and to start communicating a video stream comprising I-frames and P-frames;

the conference server identifying the second conference participant as the most active participant in response to receiving an I-frame from the second conference participant;

the conference server signaling the first participant to stop communicating P-frames but to continue sending I-frames;

the conference server receiving and processing the video stream comprising I-frames and P-frames from the second participant identified as the most active participant;

the conference server receiving and caching the I-frames received from the first participant;

the conference server requesting a super-P frame from the first conference participant in response to determining that the first conference participant should become the most active participant again; and

the conference server combining the super-P frame received from the first conference participant with a cached I-frame to produce a video image to be provided to the second conference participant.

2. The method of claim 1 , further comprising:

the conference server providing the video image to the second conference participant.

3. The method of claim 1 , further comprising:

the conference server determining that the second conference participant is a most active talker of the conference.

4. The method of claim 1 , further comprising:

the conference server decrypting only two bytes of each of one or more stream frame packets in order to determine a type of one or more stream frames provided by a participant identified as the most active participant; and

the conference server dropping the one or more frames from the video stream provided by the participant identified as the most active participant in order to perform bandwidth scaling appropriate to one or more other conference participants.

5. The method of claim 4 , further comprising:

the conference server decrypting video metadata information to determine a type of stream frame provided by a participant identified as the most active participant.

6. The method of claim 4 , comprising:

the conference server dropping the one or more frames to provide an effectively lower bit rate for the video stream provided by the participant identified as the most active participant.

7. The method of claim 1 , further comprising:

the conference server signaling the second conference participant to stop communicating P-frames but to continue sending I-frames in response to identifying the first conference participant as the most active participant again.

8. The method of claim 1 , further comprising:

the conference server continuing to receive audio information from all conference participants and processing the audio information to determine a new most active participant.

9. The method of claim 1 , further comprising:

synchronizing all conference participants to use a same encryption key; and

passing one or more streams from the conference participants through a conference server without performing a decryption and re-encryption of the streams.

10. The method of claim 9 , wherein the synchronizing all conference participants to use a same encryption key further comprises:

providing the encryption key of one or more existing conference participants to a newly joined conference participant.

11. The method of claim 1 , further comprising:

synchronizing all conference participants to use a same decryption key.

12. The method of claim 11 , wherein the synchronizing all conference participants to use a same decryption key further comprises:

providing the decryption key of one or more existing conference participants to a newly joined conference participant.

13. A computing device comprising a memory device storing a computer program and one or more processors for executing the computer program causing the computing device to perform a method in a multi-participant conference, the method comprising:

the computing device receiving and processing audio information from all conference participants and receiving and processing a video stream comprising I-frames and P-frames from a first conference participant identified as a most active participant;

the computing device providing a frame request for requesting an I-frame from a second conference participant that is not communicating a video stream in response to determining that the second conference participant should become the most active participant, the frame request causing the second conference participant to send an I-frame to the computing device and to start communicating a video stream comprising I-frames and P-frames;

the computing device identifying the second conference participant the most active conference participant and in response to receiving an I-frame from the second conference participant;

the computing device signaling the first conference participant to stop communicating P-frames but to continue sending I-frames;

the computing device receiving and processing the video stream comprising I-frames and P-frames from the second participant identified as the most active participant;

the conference server receiving and caching the I-frames received from the first conference participant;

the conference server requesting a super-P frame from the first conference participant in response to determining that the first conference participant should become the most active conference participant again; and

the conference server combining the super-P frame received from the first conference participant with a cached I-frame to produce a video image to be provided to the second conference participant.

14. The computing device of claim 13 , wherein the one or more processors executing the computer program causes the computing device to further perform:

the computing device signaling the second conference participant to stop communicating P-frames but to continue sending I-frames in response to making the first conference participant the most active conference participant again; and

the computing device receiving and caching the I-frames received from the second conference participant.

15. A recordable storage medium storing a computer program that, when executed by a conference server serving multiple conference participants, results in:

the conference server receiving and processing audio information from all conference participants and receiving and processing a video stream comprising I-frames and P-frames from a first conference participant identified as a most active participant;

the conference server providing a frame request for requesting an I-frame from a second conference participant that is not communicating a video stream in response to determining that the second conference participant should become the most active participant, the frame request causing the second conference participant to send an I-frame to the conference server and to start communicating a video stream comprising I-frames and P-frames;

the conference server identifying the second conference participant as the most active participant in response to receiving the I-frame from the second conference participant;

the conference server signaling the first participant to stop communicating P-frames but to continue sending I-frames;

the conference server receiving and processing the video stream comprising I-frames and P-frames from the second participant identified as the most active participant; and

the conference server receiving and caching the I-frames received from the first participant;

the conference server requesting a super-P frame from the first conference participant in response to determining that the first conference participant should become the most active participant again; and

the conference server combining the super-P frame received from the first conference participant with a cached I-frame to produce a video image.

16. The storage medium of claim 15 wherein the computer program, when executed by the conference server, further results in:

the conference server decrypting only two bytes of each of one or more stream frame packets in order to determine a type of one or more stream frames provided by a participant identified as the most active participant; and

the conference server dropping the one or more frames from the video stream provided by the participant identified as the most active participant in order to perform bandwidth scaling appropriate to one or more other conference participants.

17. The storage medium of claim 16 wherein the computer program, when executed by the conference server, further results in:

the conference server decrypting video metadata information to determine a type of stream frame provided by a participant identified as the most active participant.

18. The storage medium of claim 16 wherein the computer program, when executed by the conference server, further results in:

the conference server dropping the one or more frames to provide an effectively lower bit rate for the video stream provided by the participant identified as the most active participant.

19. The storage medium of claim 15 wherein the computer program, when executed by the conference server, further results in:

the conference server signaling the second conference participant to stop communicating P-frames but to continue sending I-frames in response to identifying the first conference participant as the most active participant again.

20. The storage medium of claim 15 wherein the computer program, when executed by the conference server, further results in:

the conference server facilitating synchronization of use of a same encryption key by conference participants; and

the conference server passing through one or more streams from the conference participants without performing a decryption and re-encryption of the streams.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034542/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 7, 2006
From: MOORE, TIM M.; KUKOLECA, DALIBOR; ZHONG, WEI; BARKLEY, WARREN V.; LEVIN, DANNY
To: MICROSOFT CORPORATION
Reel/Frame 018212/0684 →