IP Library Granted Patent US 10,015,216
Granted Patent B2
US 10,015,216 · App. 14/820,363 · Granted Jul 3, 2018

Methods and systems for virtual conference system using personal communication devices

Inventors: Song Wang (San Diego, CA); Soumya Das (San Diego, CA); Sanghyun Chi (San Diego, CA); Karthika Paladugu (San Diego, CA); Soham Vikrambhai Sheth (San Diego, CA); Arungundram Chandrasekaran Mahendran (San Diego, CA)
Assignee: QUALCOMM Incorporated
H04L65/403H04L12/1827H04L43/0852H04L65/4015
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,015,216
App. No.
14/820,363
Granted
Jul 3, 2018
Kind
B2
Abstract

Systems and methods are described herein for providing a virtual conference using a master device implemented with a personal communication device (PCD), including determining, by the master device, a latency for each of a plurality of satellite devices connected to the master device. The master device then determines an uplink buffer duration based on a difference between a highest latency and a lowest latency among the plurality of satellite devices. The master device determines a processing time for an uplink data packet, the processing time being determined based, at least in part, on the uplink buffer duration. The master device then performs signal processing at the processing time for the received uplink data packets.

Claims (59)

1. A method for providing a virtual conference using a master device implemented with a personal communication device (PCD), comprising:

determining, by a processor of the master device, a latency for each of a plurality of satellite devices connected to the master device;

determining, by the processor of the master device, an uplink buffer duration based, at least in part, on a difference between a highest latency and a lowest latency among the plurality of satellite devices;

determining, by the processor of the master device, a processing time for an uplink data packet received from each of the plurality of satellite devices, wherein the processing time is based, at least in part, on the uplink buffer duration; and

performing, by the processor of the master device, signal processing at the determined processing time for the received uplink data packets.

2. The method of claim 1 , further comprising receiving the uplink data packet and an uplink timestamp associated with the uplink data packet from each of the plurality of satellite devices, wherein determining the processing time further comprises determining a processing time for the uplink data packet further based, at least in part, on the uplink timestamp associated with the uplink data packet.

3. The method of claim 2 , wherein the latency is determined by determining a generation timestamp and a receiving timestamp of a previously-generated uplink data packet or a test packet.

4. The method of claim 3 , wherein the generation timestamp is the uplink timestamp of the previously-generated uplink data packet or a test packet.

5. The method of claim 1 , wherein the uplink buffer duration is a predetermined margin plus the difference between the highest latency and the lowest latency.

6. The method of claim 5 , wherein the predetermined margin is a frame duration.

7. The method of claim 2 , further comprising generating, by the processor of the master device, an uplink data packet at the same uplink timestamp, wherein the determined processing time corresponds to the uplink data packet generated by the master device.

8. The method of claim 7 , wherein the signal processing is performed at the determined processing time for the received uplink data packets received from the satellite devices and the uplink data packet generated by the master device.

9. The method of claim 1 , wherein the signal processing comprises at least one of channel selection or channel mixing of at least the uplink data packets received from the satellite devices.

10. The method of claim 3 , wherein the determined processing time is the uplink timestamp plus the uplink buffer duration.

11. The method of claim 3 , wherein:

the latency comprises a network-related latency and a local framework latency; and

the uplink timestamp is adjusted for the local framework latency.

12. The method of claim 11 , wherein the local framework latency may be determined by:

outputting an audio bit stream at a time determined by the generation timestamp;

capturing sound signals including the bit stream outputted at a time determined by the receiving timestamp; and

determining the local framework latency based on a difference between the receiving timestamp and the generation timestamp.

13. The method of claim 12 , wherein the audio bit stream is captured at the receiving timestamp when at least a portion of a pattern of the captured sound signals matches with a pattern of the outputted bit stream at the receiving timestamp.

14. The method of claim 1 , further comprising:

determining an ambience noise level associated with the master device; and

proceeding with the latency determination, the uplink buffer duration determination, the uplink data packet reception, the processing time determination, and the signal processing when the ambience noise level is below a predetermined threshold.

15. The method of claim 14 , further comprising:

prompting the user to move to a quiet location when the ambience noise level is above the predetermined threshold.

16. The method of claim 1 , wherein the uplink data packet is at least one of an audio packet or video packet.

17. A non-transitory computer-readable storage medium storing instructions that, when executed by a processor of a master device implemented with a personal communication device (PCD), cause the master device to:

determine a latency for each of a plurality of satellite devices connected to the master device;

determine an uplink buffer duration based, at least in part, on a difference between a highest latency and a lowest latency among the plurality of satellite devices;

determine a processing time for an uplink data packet received from each of the plurality of satellite devices, wherein the processing time is based, at least in part, on the uplink buffer duration; and

perform signal processing at the processing time for the received uplink data packets.

18. The non-transitory computer-readable storage medium of claim 17 , wherein execution of the instructions causes the master device to further:

receive the uplink data packet and an uplink timestamp associated with the uplink data packet from each of the plurality of satellite devices, wherein the determination of the processing time further comprises a determination of a processing time for the uplink data packet further based, at least in part, on the uplink timestamp associated with the uplink data packet.

19. The non-transitory computer-readable storage medium of claim 18 , wherein the latency is determined by a determination of a generation timestamp and a receiving timestamp of a previously-generated uplink data packet or a test packet.

20. The non-transitory computer-readable storage medium of claim 19 , wherein the generation timestamp is the uplink timestamp of the previously-generated uplink data packet or a test packet.

21. The non-transitory computer-readable storage medium of claim 17 , wherein the uplink buffer duration is a predetermined margin plus the difference between the highest latency and the lowest latency.

22. The non-transitory computer-readable storage medium of claim 18 , wherein execution of the instructions causes the master device to further:

generate an uplink data packet at the same uplink timestamp, wherein the determined processing time corresponds to the uplink data packet generated by the master device.

23. The non-transitory computer-readable storage medium of claim 22 , wherein signal processing is performed at the determined processing time for the received uplink data packets received from the satellite devices and the uplink data packet generated by the master device.

24. The non-transitory computer-readable storage medium of claim 17 , wherein the signal processing comprises at least one of channel selection or channel mixing of at least the uplink data packets received from the satellite devices.

25. An apparatus comprising:

a processor; and

a memory storing instructions that, when executed by the processor, cause the apparatus to:

determine a latency for each of a plurality of satellite devices connected to the apparatus;

determine an uplink buffer duration based, at least in part, on a difference between a highest latency and a lowest latency among the plurality of satellite device;

determine a processing time for an uplink data packet received from each of the plurality of satellite devices, wherein the processing time is based, at least in part, on the uplink buffer duration; and

perform signal processing at the processing time for the received uplink data packets.

26. The apparatus of claim 25 , wherein execution of the instructions causes the apparatus to further:

receive the uplink data packet and an uplink timestamp associated with the uplink data packet from each of the plurality of satellite devices, wherein the determination of the processing time further comprises a determination of a processing time for the uplink data packet further based, at least in part, on the uplink timestamp associated with the uplink data packet.

27. The apparatus of claim 26 , wherein the latency is determined by a determination of a generation timestamp and a receiving timestamp of a previously-generated uplink data packet or a test packet.

28. The apparatus of claim 27 , wherein the generation timestamp is the uplink timestamp of the previously-generated uplink data packet or a test packet.

29. The apparatus of claim 25 , wherein the uplink buffer duration is a predetermined margin plus the difference between the highest latency and the lowest latency.

30. An apparatus comprising:

means for determining a latency for each of a plurality of satellite devices connected to a master device;

means for determining an uplink buffer duration based, at least in part, on a difference between a highest latency and a lowest latency among the plurality of satellite devices;

means for determining a processing time for an uplink data packet received from each of the plurality of satellite devices, wherein the processing time is based, at least in part, on the uplink buffer duration; and

means for performing, by the processor of the master device, signal processing at the determined processing time for the received uplink data packets.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 20, 2015
From: WANG, SONG; DAS, SOUMYA; CHI, SANGHYUN; PALADUGU, KARTHIKA; SHETH, SOHAM VIKRAMBHAI; MAHENDRAN, ARUNGUNDRAM CHANDRASEKARAN
To: QUALCOMM INCORPORATED
Reel/Frame 036837/0403 →
Continuity (1)
Related Publication 20170041357A1 · Feb 9, 2017
Cited By (1)
US 12,279,016