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 is identified, based on a determined topology, using obtained info
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 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 and/or received by the user terminal. The master terminal control can process the same video and/or audio and generate different video and/or audio 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. 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. 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. This p2p system can be utilized with online game playing.
대표청구항▼
1. A method for communicating at least voice, comprising: providing a first plurality of user terminals including at least a first master and a number of slaves, including at least a first slave and a second slave, at least said first master, said first slave and said second slave being parts of a p
1. A method for communicating at least voice, comprising: providing a first plurality of user terminals including at least a first master and a number of slaves, including at least a first slave and a second slave, at least said first master, said first slave and said second slave being parts of a particular peer-to-peer system, with said at least first master functioning differently than each of said first and second slaves, each of said plurality of user terminals having at least an audio input device and an audio output device, said first plurality of user terminals being associated with a first determined topology that relates to connections among them in said particular peer-to-peer system,wherein each master including said at least first master is a user terminal that has at least the following master functions: (i) provides its own audio data;(ii) combines at least (a) audio data provided by at least one other user terminal and (b) its own audio data or audio data from a second other user terminal;(iii)combines audio data only when said user terminal outputs processed audio data to at least one slave such that the communication path therebetween is without any other user terminal intermediate thereof; and(iv)outputs audio data using its own audio output device;and each slave including said first slave and said second slave is a user terminal that has at least the following slave functions: (i) provides its own audio data;(ii) processes only its own audio data, including not combining audio data from any other user terminal;(iii)does not send another user terminal's audio data to any other user terminal; and(iv)outputs audio data using its own audio output device;processing audio data from said first slave using said at least first master to generate processed first slave audio data;processing audio data from said second slave using said at least first master to generate processed second slave audio data;sending at least said processed first slave audio data to said second slave using said at least first master;sending at least said processed second slave audio data to said first slave using said at least first master; andtransitioning, while communications are occurring utilizing said first determined topology, from said first determined topology to a second determined topology associated with a second plurality of user terminals and with said second plurality of user terminals being different from said first plurality of user terminals, wherein said transitioning comprises: dropping out by said first master from said first plurality of user terminals and with said second plurality of user terminals including said first and second slaves of said first predetermined topology and not including said first master,determining which one of said second plurality of user terminals is said second master and in which said second master replaces said first master for communicating audio data with other of said second plurality of user terminals, wherein said second master performs at least master functions in said second determined topology that are comparable to master functions performed by said first master in said first determined topology involving communications with at least one of said first and second slaves, said determining including: (i) utilizing a first bandwidth obtained using data sent from said second master to said first slave; (ii) utilizing a second bandwidth obtained using data sent from said first slave to said second master; (iii) utilizing a third bandwidth obtained using data sent from said second master to said second slave; (iv) utilizing a fourth bandwidth obtained using data sent from said second slave to said second master; (v) utilizing a fifth bandwidth obtained using data sent from said first slave to said second slave; and (vi) utilizing a sixth bandwidth obtained using data sent from said second slave to said first slave, andusing said second determined topology for communicating by said second plurality of user terminals after said determining. 2. A method of claim 1, wherein a data parameters table is provided that includes data related to each of said first bandwidth, said second bandwidth, said third bandwidth, said fourth bandwidth, said fifth bandwidth and said sixth bandwidth, said data parameters table also includes data related to latency and computational processing power associated with at least said first slave and said second slave. 3. A method of claim 2, wherein each of said first bandwidth, said second bandwidth, said third bandwidth, said fourth bandwidth, said fifth bandwidth and said sixth bandwidth is obtained using measurements that are made using a topology manager, which was designated using a peer-to-peer server, with said topology manager used in making said measurements when a topology associated with said first plurality of user terminals of said peer-to-peer system remains the same. 4. A method of claim 2, wherein a plurality of fitness values are determined using said data parameters table and one or more algorithms that define a fitness function, each of said fitness values depending on one of a number of different topologies associated with said first plurality of user terminals, with each of said number of different topologies being stored and a selected fitness value being determined using said plurality of fitness values, and in which said first master, said first slave and said second slave are associated with said first determined topology based on said selected fitness value. 5. A method of claim 1, wherein said first determined topology is determined using (vii) a seventh bandwidth obtained using data sent from said first master to said first slave; (viii) an eighth bandwidth obtained using data sent from said first slave to said first master; (ix) a ninth bandwidth obtained using data sent from said first master to said second slave; (x) a tenth bandwidth obtained using data sent from said second slave to said first master; (xi) an eleventh bandwidth obtained using data sent from said first slave to said second slave; and (xii) a twelfth bandwidth obtained using data sent from said second slave to said first slave, including determining which of said first plurality of user terminals is said first master. 6. A method of claim 1, wherein said first determined topology is determined using a plurality of topologies and a plurality of fitness values, and in which said first determined topology is determined using also a selected fitness value obtained using said plurality of fitness values. 7. A method of claim 1, wherein said processing audio data from said first slave includes decoding said first slave audio data and encoding thereafter using a control of said first master. 8. A method of claim 1, further including: obtaining audio in of said first master;generating first audio data of said first master using said first master audio in; andgenerating second audio data of said first master using said audio in, wherein said first audio data is different from said second audio data based on more compression of said first master audio in to generate said first audio data than compression of said first master audio in to generate said second audio data. 9. A method of claim 1, further including: controlling volume of audio out that is output by said audio output devices of said first and second slaves, wherein said volume that is output by said audio output device of said first slave depends on a first position associated with said first slave relative to said second slave, and said volume that is output by said audio output device of said second slave depends on a second position associated with said second slave relative to said first slave. 10. A method of claim 1, wherein said first master has audio in originating from said first master audio input device, and said first slave audio output device outputs audio out based on said first master audio in and said second slave audio output device outputs audio out also based on said first master audio in, and in which first volume associated with said first slave audio out is different from second volume associated with said second slave audio out, and each of said first and second volumes depends on positions associated with each of said first and second slaves. 11. A method of claim 10, wherein each of said audio output devices of said first and second slaves includes first and second speakers, said first volume includes primary volume that is output by said first slave first speaker and secondary volume that is output by said first slave second speaker, said second volume includes primary volume that is output by said second slave second speaker and secondary volume that is output by said second slave first speaker, and in which each of said primary volumes associated with said first and second slaves is different from each of said secondary volumes associated with said first and second slaves. 12. A method of claim 1, further including: controlling separately audio volume of each of at least said first and second slaves that is to be provided to said audio output device of said first master, wherein said controlling includes controlling each of said audio volumes to be provided to said audio output device of said first master so that said audio volume of said first slave is turned off and said audio volume of said second slave is not turned off. 13. A method of claim 12, wherein said audio volume of said second slave is also turned off using a volume control different than a volume control associated with said audio volume of said first slave. 14. A method of claim 12, further including: controlling separately audio volume of each of at least said first master and said second slave that is to be provided to said audio output device of said first slave, wherein said controlling includes controlling each of said audio volumes to be provided to said audio output device of said first slave so that said audio volume of said first master is turned off and said audio volume of said second slave is not turned off. 15. A method of claim 12, wherein said first master is used in controlling said audio volumes of said first and second slaves to be provided to said audio output device of said first master. 16. A method of claim 15, wherein at least one of said first and second slaves is also used in controlling said audio volumes of at least one of said first and second slaves to be provided to said audio output device of said first master. 17. A method of claim 1, wherein processed firstly audio data of said first slave is said audio data of said first slave, processed firstly audio data of said second slave is said audio data of said second slave, processed secondly audio data of said first slave is said processed first slave audio data and processed secondly audio data of said second slave is said processed second slave audio data, and further including: obtaining audio in from said audio input device of said first master;generating first audio data of said first master using said first master audio in;generating second audio data of said first master using said first master audio in, wherein said first audio data is different from said second audio data;obtaining audio in from said first slave audio input device;obtaining audio in from said second slave audio input device;receiving said first slave processed firstly audio data by said first master;receiving said second slave processed firstly audio data by said first master;aggregating at least said second slave processed secondly audio data and said first master first audio data into a first frame using a control of said first master;aggregating at least said first slave processed secondly audio data and said first master second audio data into a second frame using said control of said first master;receiving said second slave processed secondly audio data and said first master first audio data by said first slave;receiving said first slave processed secondly audio data and said first master second audio data by said second slave;inputting an audio out, based on at least said second slave processed secondly audio data and said first master first audio data, to said first slave audio output device; andinputting an audio out, based on at least said first slave processed secondly audio data and said first master second audio data, to said second slave audio output device. 18. A method of claim 1, wherein each of said first master, said first slave and said second slave further includes a video input device and a video output device and in which said first master receives and processes video in of said first slave and receives and processes video in of said second slave and in which said video in of said first slave is sent to said second slave after said first master processes it and said video in of said second slave is sent to first slave after said first master processes it. 19. A method of claim 1, wherein each of said first master, said first slave and said second slave includes a video input device and a video output device, further including: obtaining video in from said video input device of said first master;generating first video data of said first master using said first master video in;generating second video data of said first master using said first master video in, wherein said first video data is different from said second video data;obtaining video in from said first slave video input device;generating processed video data of said first slave using said first slave video in;obtaining video in from said second slave video input device;generating processed video data of said second slave using said second slave video in;receiving said first slave processed video data by said first master;receiving said second slave processed video data by said first master;aggregating at least said first master second video data and video data based on said first slave processed video data into at least one packet of at least a first frame using a video/audio control of said first master;aggregating at least said first master first video data and video data based on said second slave processed video data into at least one packet of at least a second frame using said video/audio control of said first master;receiving said first master first video data and said video data based on said second slave processed video data by said first slave;receiving said first master second video data and said video data based on said first slave processed video data by said second slave;inputting a video out based on at least said second slave processed video data and said first master first video data to said first slave video output device; andinputting a video out based on at least said first slave processed video data and said first master second video data to said second slave video output device. 20. A method of claim 19 wherein at least one of: said video data based on said first slave processed video data is less than said first slave processed video data; and said video data based on said second slave processed video data is less than said second slave processed video data. 21. A method of claim 19, wherein said first video data is different from said second video data based on at least one of: (a) said first video data includes less of said first master video in than does said second video data; and (b) said second video data is compressed more using said first master video in than said first video data is compressed using said first master video in. 22. A method of claim 19, wherein said first master video/audio control comprises a Flash Player and a control module, and in which said Flash Player receives said video in of said first master and said control module uses one or more control outputs to communicate with said Flash Player for use in said generating said first video data and for use in said generating said second video data. 23. A method of claim 22, wherein each of said Flash Player and said control module comprises software, and in which a programming language of said software of said Flash Player is different than said programming language of said software of said control module. 24. A method of claim 19, wherein said first master is identified from among said user terminals using a data parameters table. 25. A method of claim 24, wherein a topology manager is designated using a peer-to-peer server that is able to communicate with each of said first plurality of user terminals. 26. A method of claim 25, wherein a game server communicates with each of said first plurality of user terminals. 27. A method of claim 1, further including: obtaining a first audio in from said audio input device of said first master; andobtaining a second audio in from said audio input device of said second slave;wherein said audio data output by said audio output device of said first master does not include using said first audio in of said first master; andwherein said audio data output by said audio output device of said second slave does not include using said second audio in of said second slave. 28. A method of claim 1, wherein said determining includes ascertaining that said first slave is to be said second master. 29. A method of claim 1, wherein after said transitioning said second plurality of user terminals includes a third master and a third slave, said third master communicating with said second master and said third slave communicating with said third master, and in which said second master receives from said third master audio data associated with said third master and audio data associated with said third slave, with said audio data being received not being combined using said third master. 30. A method of claim 1, wherein each of said first master, said first slave and said second slave further includes a video input device, a video output device and a video/audio control and further including: generating first video data of said first master using said first video in of said first master and said video/audio control of said first master; andgenerating second video data of said first master using the same said first video in of said first master and said video/audio control of said first master;wherein a difference between said first video data and said second video data depends on a first communications path, having one bandwidth associated therewith, between said first master and said first slave and also depends on a second communications path, having a another bandwidth associated therewith, between said first master and said second slave, which is different than said first communications path. 31. A method of claim 1 wherein said determining includes utilizing stored topologies that depend on a number of said first plurality of user terminals, with said number of said first plurality of user terminals and said stored topologies corresponding thereto comprising: (a) when said number of said first plurality of user terminals is greater than two and less than seven, said stored topologies are all possible topologies; (b) when said number of said first plurality of user terminals is seven, said stored topologies are all possible topologies, except for any topology that includes a hybrid user terminal; and (c) when said number of said first plurality of user terminals is greater than seven and less than ten, said stored topologies are all possible topologies, except for any topology that includes a hybrid user terminal and except for any topology in which a master is not in communication with any slave. 32. A method of claim 1 wherein said first plurality of user terminals comprises greater than two and less than seven user terminals and includes said first master, said first slave and said second slave and said first master is determined by: (a) obtaining all possible topologies associated with said first plurality of user terminals using at least one stored topologies table, including at least a first possible topology, a second possible topology and a third possible topology; (b) for each of said possible topologies, obtaining data, using at least one data parameters table, related to each of said first plurality of user terminals, said data being associated with at least bandwidth; (c) for each of said possible topologies, using at least one algorithm and said data obtained using said at least one data parameters table to determine a fitness value; and (d) 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 associated with said determined first master, and in which, after said selected fitness value is identified, using a corresponding topology from said all possible topologies that corresponds to said selected fitness value for communicating, while not using at least said first possible topology, said second possible topology and said third possible topology for communicating. 33. A method of claim 1 wherein, during said transitioning, audio packet data sent among said first master, said first slave and said second slave includes: (a) transition frame information related to said first master being dropped; (b) a transition count associated with a most recent topology that is to be used by each of said first plurality of user terminals; and (c) transition status associated with each of said first plurality of terminals that has its audio data in said audio packet data, said transition status related to a stage of said transitioning that said each of said first plurality of user terminals having its said audio data in said audio data packet has finished. 34. A method of claim 1 wherein, while said using said second determined topology is being conducted, obtaining a seventh bandwidth using data, different than said audio data sent from said first slave to said second slave used in obtaining said fifth bandwidth, sent directly from said first slave to said second slave and obtaining an eighth bandwidth using data, different than said audio data sent from said second slave to said first slave used in obtaining said sixth bandwidth, sent directly from said second slave to said first slave. 35. A method of claim 34, wherein said seventh bandwidth is different than said fifth bandwidth and said eighth bandwidth is different than said sixth bandwidth.
Civanlar, Mehmet Reha; Eleftheriadis, Alexandros; Hong, Danny; Shapiro, Ofer, System and method for scalable and low-delay videoconferencing using scalable video coding.
Osborne, Robert John; Lo, Ling-Cheung Aaron; Chitturi, Ajay P.; Wong, Leon Chih Wen; Simons, David J.; Thakkar, Vishal; Tangirala, Rakesh, System and methods for facilitating a multiparty communications session with a dynamically designated session manager.
Epstein, Lewis; Kincaid, Brett; Yoo, Hyun; Stage, Suzanne; Scherrer, Lukas; Cheng, Larry, Personal control apparatus and method for sharing information in a collaborative workspace.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.