Peer-to-peer communications
First Claim
1. In a peer-to-peer system comprising a plurality of user terminals that includes at least a master and a number of slaves, including a first slave and a second slave, with each of the master and the number of slaves including a control for use in outputting at least one of audio data and video data, and further including at least one of an audio input device and a video input device, and at least one of an audio output device and a video output device, a method for communicating, comprising:
- obtaining a number of possible topologies associated with the plurality of user terminals that includes at least a first possible topology and a second possible topology;
for each of said possible topologies, obtaining first-time data provided during a first time, using at least one data parameters table, related to each of the plurality of user terminals, with at least bandwidth being associated with said first-time data;
for each of said possible topologies, using at least one algorithm and said first-time data obtained using said at least one data parameters table to determine a fitness value;
for each said fitness value associated with a particular one of said possible topologies and which is determined using said at least one algorithm, identifying a selected fitness value and in which, after said identifying said selected fitness value, using a corresponding topology, with the master and the first and second slaves being determined, from said possible topologies that corresponds to said selected fitness value for communicating, while not using at least said first possible topology and said second possible topology for communicating;
wherein said first-time data relates to;
(i) directly sending test data from the first slave to the second slave;
(ii) directly sending test data from the second slave to the first slave;
(iii) directly sending test data from the first slave to the master;
(iv) directly sending test data from the master to the first slave;
(v) directly sending test data from the second slave to the master; and
(vi) directly sending test data from the master to the second slave;
wherein said using said corresponding topology includes;
(a) said control of said first slave of said corresponding topology being used in sending at least one of audio data and video data, associated with a first bandwidth, to said master of said corresponding topology; and
(b) said control of said first slave of said corresponding topology being used in sending at least test data associated with an increased bandwidth, with said increased bandwidth being greater than said first bandwidth, to said master of said corresponding topology when said control of said first slave determines that said test data associated with said increased bandwidth is able to be sent from said first slave to said master; and
wherein at least said control of said first slave of said corresponding topology is used in providing, during a second time, second-time data to said at least one data parameters table, with at least a different bandwidth, different from said bandwidth associated with said first-time data, associated with said second-time data; and
ascertaining whether said corresponding topology should continue to be used using said second-time data.
1 Assignment
0 Petitions
Accused Products
Abstract
A peer-to-peer (p2p) communication system is provided. One or both of audio and video can be transferred among a number of user terminals in the p2p system. The user terminals include at least one master terminal. The master terminal controls video or audio, or both, transfers among user terminals. The master terminal is identified, based on a determined topology, using obtained information provided in a data parameters table. Each user terminal includes a control for processing video and/or audio that is sent/received by the user terminal. Such processing can include encoding/decoding of video and/or audio. The master terminal control can process the same video and generate different video data to be provided to different user terminals. Such different video data is a function of the communication paths between the master terminal and the different user terminals. The master terminal control can also process the same audio and generate different audio data to be provided to different user terminals. Such different audio data can be a function of virtual relative positions associated with the user terminals. Audio volumes can also be separately controlled by each user terminal, including turning off audio volumes associated with one or more other user terminals. Similar controls can be provided for identity-related video images. Video and/or audio can be transferred in an aggregate manner, such as when the master terminal sends audio originating from a number of user terminals to another user terminal. In one embodiment, the master terminal control includes a Flash Player already configured to communicate with numerous webcams. This p2p system can be utilized with online game playing in which a game server is included, as well as having other communication applications.
68 Citations
22 Claims
-
1. In a peer-to-peer system comprising a plurality of user terminals that includes at least a master and a number of slaves, including a first slave and a second slave, with each of the master and the number of slaves including a control for use in outputting at least one of audio data and video data, and further including at least one of an audio input device and a video input device, and at least one of an audio output device and a video output device, a method for communicating, comprising:
-
obtaining a number of possible topologies associated with the plurality of user terminals that includes at least a first possible topology and a second possible topology; for each of said possible topologies, obtaining first-time data provided during a first time, using at least one data parameters table, related to each of the plurality of user terminals, with at least bandwidth being associated with said first-time data; for each of said possible topologies, using at least one algorithm and said first-time data obtained using said at least one data parameters table to determine a fitness value; for each said fitness value associated with a particular one of said possible topologies and which is determined using said at least one algorithm, identifying a selected fitness value and in which, after said identifying said selected fitness value, using a corresponding topology, with the master and the first and second slaves being determined, from said possible topologies that corresponds to said selected fitness value for communicating, while not using at least said first possible topology and said second possible topology for communicating; wherein said first-time data relates to;
(i) directly sending test data from the first slave to the second slave;
(ii) directly sending test data from the second slave to the first slave;
(iii) directly sending test data from the first slave to the master;
(iv) directly sending test data from the master to the first slave;
(v) directly sending test data from the second slave to the master; and
(vi) directly sending test data from the master to the second slave;wherein said using said corresponding topology includes;
(a) said control of said first slave of said corresponding topology being used in sending at least one of audio data and video data, associated with a first bandwidth, to said master of said corresponding topology; and
(b) said control of said first slave of said corresponding topology being used in sending at least test data associated with an increased bandwidth, with said increased bandwidth being greater than said first bandwidth, to said master of said corresponding topology when said control of said first slave determines that said test data associated with said increased bandwidth is able to be sent from said first slave to said master; andwherein at least said control of said first slave of said corresponding topology is used in providing, during a second time, second-time data to said at least one data parameters table, with at least a different bandwidth, different from said bandwidth associated with said first-time data, associated with said second-time data; and ascertaining whether said corresponding topology should continue to be used using said second-time data. - View Dependent Claims (2, 3)
-
-
4. A peer-to-peer system for communicating, comprising:
-
a plurality of user terminals including at least a master and a number of slaves, including a first slave and a second slave, each of said plurality of user terminals including a control for use in controlling communications and for use in outputting at least one of audio data and video data; at least a number of possible topologies associated with said plurality of user terminals, including at least a first possible topology and a second possible topology; at least one data parameters table that stores at least first-time data provided during a first time and related to each of said plurality of user terminals, with at least bandwidth being associated with said first-time data; wherein;
(i) for each of said possible topologies, at least some of said first-time data is obtained using said at least one data parameters table;
(ii) for each of said possible topologies, at least one algorithm is used, together with said at least some of said first-time data, to determine a fitness value; and
(iii) a selected fitness value is found based on said fitness value determined for each of said possible topologies;wherein, after said selected fitness value is found, a corresponding topology, with the master and the first and second slaves being determined, which is included with said possible topologies and that corresponds to said selected fitness value, is used for communicating, while at least each of said first possible topology and said second possible topology is not used for communicating; wherein said first-time data relates to;
(i) directly sending test data from the first slave to the second slave;
(ii) directly sending test data from the second slave to the first slave;
(iii) directly sending test data from the first slave to the master;
(iv) directly sending test data from the master to the first slave;
(v) directly sending test data from the second slave to the master; and
(vi) directly sending test data from the master to the second slave;wherein said control of said first slave of said corresponding topology is used in sending;
(a) at least one of audio data and video data, associated with a first bandwidth, to said master of said corresponding topology; and
(b) at least test data associated with an increased bandwidth, said increased bandwidth being greater than said first bandwidth, to said master of said corresponding topology when said control of said first slave determines that said test data associated with said increased bandwidth is able to be sent from said first slave to said master; andwherein said control of said first slave of said corresponding topology is used in providing, during a second time, second-time data to said at least one data parameters table, with at least a different bandwidth, different from said bandwidth associated with said first-time data, associated with said second-time data; and at least one of a peer-to-peer server and a topology manager which is used in ascertaining, using said second-time data, whether said corresponding topology should continue to be used. - View Dependent Claims (5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. At least one non-transitory computer readable medium storing at least one computer program for use in controlling communications among a plurality of user terminals including at least a master and first and second slaves, with each of the plurality of user terminals including a control for use in outputting at least one of audio data and video data, the computer program comprising instructions for:
-
providing at least a number of possible topologies associated with said plurality of user terminals, including at least a first possible topology and a second possible topology; storing at least one data parameters table that includes first-time data provided during a first time and related to each of said plurality of user terminals, with at least bandwidth being associated with said first-time data; for each of said possible topologies, obtaining at least some of said first-time data using said at least one data parameters table; for each of said possible topologies, using at least one algorithm, together with said at least some of said first-time data, to determine a fitness value; finding a selected fitness value based on said fitness value determined for each of said possible topologies; and using a corresponding topology, with the master and the first and second slaves being determined, which is included with said possible topologies and that corresponds to said selected fitness value, for communicating, while at least each of said first possible topology and said second possible topology is not used for communicating; wherein said first-time data of said at least one data parameters table relates to;
(i) directly sending test data from the first slave to the second slave;
(ii) directly sending test data from the second slave to the first slave;
(iii) directly sending test data from the first slave to the master;
(iv) directly sending test data from the master to the first slave;
(v) directly sending test data from the second slave to the master; and
(vi) directly sending test data from the master to the second slave;wherein said control of said first slave of said corresponding topology is used in sending;
(a) at least one of audio data and video data, associated with a first bandwidth, to said master of said corresponding topology; and
(b) at least test data associated with an increased bandwidth, with said increased bandwidth being greater than said first bandwidth, to said master of said corresponding topology when said control of said first slave determines that said test data associated with said increased bandwidth is able to be sent from said first slave to said master; andwherein said control of said first slave of said corresponding topology is used in providing, during a second time, second-time data to said at least one data parameters table, with at least a different bandwidth, different from said bandwidth associated with said first-time data, associated with said second-time data; and ascertaining whether said corresponding topology should continue to be used using said second-time data. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22)
-
Specification