GB2557233A - Simultaneous Multiuser Information cross streaming and sharing - Google Patents

Simultaneous Multiuser Information cross streaming and sharing Download PDF

Info

Publication number
GB2557233A
GB2557233A GB1620353.1A GB201620353A GB2557233A GB 2557233 A GB2557233 A GB 2557233A GB 201620353 A GB201620353 A GB 201620353A GB 2557233 A GB2557233 A GB 2557233A
Authority
GB
United Kingdom
Prior art keywords
user
information source
peer computing
users
computing device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
GB1620353.1A
Other versions
GB201620353D0 (en
Inventor
Maroothynaden Jason
Panjalingam Pillay Venkateshwara
Ferguson Ian
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Collaboration Platform Services Ltd
Original Assignee
Collaboration Platform Services Ltd
Collaboration Platform Services Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Collaboration Platform Services Ltd, Collaboration Platform Services Ltd filed Critical Collaboration Platform Services Ltd
Priority to GB1620353.1A priority Critical patent/GB2557233A/en
Publication of GB201620353D0 publication Critical patent/GB201620353D0/en
Publication of GB2557233A publication Critical patent/GB2557233A/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/101Collaborative creation, e.g. joint development of products or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/107Computer-aided management of electronic mailing [e-mailing]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/01Social networking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1813Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for computer conferences, e.g. chat rooms
    • H04L12/1822Conducting the conference, e.g. admission, detection, selection or grouping of participants, correlating users to one or more conference sessions, prioritising transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • H04L65/401Support for services or applications wherein the services involve a main real-time session and one or more additional parallel real-time or time sensitive sessions, e.g. white board sharing or spawning of a subconference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • H04L65/403Arrangements for multi-party communication, e.g. for conferences
    • H04L65/4038Arrangements for multi-party communication, e.g. for conferences with floor control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/56Arrangements for connecting several subscribers to a common circuit, i.e. affording conference facilities
    • H04M3/567Multimedia conference systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M7/00Arrangements for interconnection between switching centres
    • H04M7/006Networks other than PSTN/ISDN providing telephone service, e.g. Voice over Internet Protocol (VoIP), including next generation networks with a packet-switched transport layer

Abstract

Peer-to-peer selective streaming for a collaboration session between peer computing devices of a plurality of users via a server which receives multiple information sources from one or more of the peer computing devices, and simultaneously broadcasts the multiple information sources to other peer devices in the collaboration session over a communication network. In addition to shared information source streams 114, each peer computing device of a user also transmits a user information source stream 118 representing an information source of the user captured by the peer computing device, which are also streamed 120 to peer computing devices of users in the collaboration session. Although the users of each of the peers may be in the same virtual "room" or common space, not every user may receive the same information sources/streams. The information sources may include video, audio, multimedia, data representative of files or documents, or any other information source representing information that a user of a peer device may select for transmission to other peers in the collaboration sessions. Thumbnails of shared information source streams may be presented 120 on a peer device which are selectable and selection results in an enlarged view of that stream being displayed 122.

Description

(54) Title of the Invention: Simultaneous Multiuser Information cross streaming and sharing
Abstract Title: Simultaneous multi-user information cross-streaming and sharing in a collaboration session (57) Peer-to-peer selective streaming for a collaboration session between peer computing devices of a plurality of users via a server which receives multiple information sources from one or more of the peer computing devices, and simultaneously broadcasts the multiple information sources to other peer devices in the collaboration session over a communication network. In addition to shared information source streams 114, each peer computing device of a user also transmits a user information source stream 118 representing an information source of the user captured by the peer computing device, which are also streamed 120 to peer computing devices of users in the collaboration session. Although the users of each of the peers may be in the same virtual room or common space, not every user may receive the same information sources/streams. The information sources may include video, audio, multimedia, data representative of files or documents, or any other information source representing information that a user of a peer device may select for transmission to other peers in the collaboration sessions. Thumbnails of shared information source streams may be presented 120 on a peer device which are selectable and selection results in an enlarged view of that stream being displayed 122.
110 s
FIG. 1b
Figure GB2557233A_D0001
.112 .114 .116 .118 .120 .122
1/11
Figure GB2557233A_D0002
FIG. 1a
02a
2/11
Figure GB2557233A_D0003
Figure GB2557233A_D0004
FIG. 1b
3/11
132
Figure GB2557233A_D0005
134
136
138
140
142
FIG. 1c
144
4/11
LU
I
LU
LU
LU
CO ω 2 < LU DC. I— ω —I
O
DC.
_Ω ^r
CM o
^r
CM \J
w o J 111
i mD
or
LU < 5 111 m or _ w>
CM
CM
Figure GB2557233A_D0006
FIG. 2
ω
_l
ω <
Cross 2 < LU LU z CO 2
or > =)
STI _l I H
5/11 ο
ο co
Figure GB2557233A_D0007
6/11 o
Ν’ o
co ί
Figure GB2557233A_D0008
co
FIG. 3b
307a 307b 307p
7/11 (Π Ώ Ο ο ο ο
Figure GB2557233A_D0009
ο co
FIG. 3c
Figure GB2557233A_D0010
300
8/11
314
Figure GB2557233A_D0011
FIG. 3d
Figure GB2557233A_D0012
9/11
400 s
Figure GB2557233A_D0013
FIG. 4
10/11
504
502 506
Figure GB2557233A_D0014
508a, b
FIG. 5
11/11
602 604
Figure GB2557233A_D0015
608 606
FIG. 6
Intellectual
Property
Office
Application No. GB1620353.1
RTM
Date :27 April 2017
The following terms are registered trade marks and should be read as such wherever they occur in this document:
Wi-Fi (page 9)
WiMAX (Page 10)
IEEE (Page 10)
Intellectual Property Office is an operating name of the Patent Office www.gov.uk/ipo
SIMULTANEOUS MULTIUSER INFORMATION CROSS-STREAMING AND SHARING
TECHNICAL FIELD [0001] The present invention relates to a collaboration session that provides simultaneous multiuser information cross-streaming and sharing of information sources. In particular, the invention relates to a peer-to-peer live user information streaming of data representative of each user in a group of users to each other user whilst enabling each user to simultaneously share one or more information sources with some or all of the users in the group.
BACKGROUND [0002] There is a growing trend for peer-to-peer (P2P) live video streaming in which a user with a mobile or computing device is a peer, also known as a streamer, that captures video content of a live event and streams, in real-time, the captured video content over a P2P network or hybrid thereof to other peers, i.e. multiple users or viewers with mobile or computing devices, in the P2P network. Various mobile streaming applications such as Periscope (RTM) and Meerkat (RTM) have been developed to allow viewers to select and view a live stream and share text comments with the streamer using their own mobile devices over the P2P network. This provides an authentic and unedited view into streamer lives and allows the streamers to react to the comments to change the live stream, in an effort to make the live streaming more interesting and retain viewers etc.
[0003] Collaboration is the act of working with someone or a group of users to produce something together. Collaborative working is being augmented by the use of personal computers, mobile devices to create “blended interaction” spaces or virtual rooms. In these spaces or rooms, digital computing is blended with natural work practices and collaboration. Examples of blended interaction range from digital pen & paper and pen & multi-touch interaction to tangible displays in rooms of mixed or augmented reality.
[0004] Other traditional applications like Skype (RTM), Lync (RTM), and Google Hangouts (RTM) also offer live video streaming capabilities such as video or audio conferencing for allowing users (or users) to collaborate in a video conference call. However, these applications (including Periscope (RTM) and Meerkat (RTM)) only allow for a single peer (i.e. a streamer) to stream to all users/peers (i.e. viewers) in a virtual “room”, where the streamer can broadcast a maximum of two sources (i.e. information source). Additionally, the video/audio protocols (based on limiting bandwidth utilisation per user/peer) used in such applications limits the possible interactive and collaborative capabilities when sharing information and may only allow one peer at a time to share information with all peers during a video conference session. Such collaboration technology enforces a linear approach to user participation and decision making, which severely limits the efficiency and effectiveness of the collaborative effort.
[0005] Typically, collaborative working is a problem solving activity involving at least two or more persons or users or a group of people or users. However, it is apparent that any person that uses their device to provide an explanation to other people or users are always exclusively collaborating with their respective devices, but the other people or users are passive observers. By this very nature, working environments are not collaborative enough, which is reflected in such scenarios by poor team performance and inefficient team based problem solving.
[0006] There is a desire for a collaboration system that improves the flexibility and efficiency of live streaming sessions and sharing information over one or more collaboration session(s) whilst improving the effectiveness ofthe collaborative effort amongst a group of users. Over the past few years, there has also been considerable interest and desire in enhancing collaboration between groups of users and allowing users to efficiently collaborate with each other in a natural way using collaborative systems, which is an on-going problem.
[0007] The embodiments described below are not limited to implementations which solve any or all ofthe disadvantages of known collaborative platforms and systems.
SUMMARY OF THE INVENTION [0008] This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features ofthe claimed subject matter, nor is it intended to be used as an aid in determining the scope ofthe claimed subject matter.
[0009] The present invention relates to a collaboration system that provides peer-to-peer live streaming of information sources such as video streaming sessions in which a group of users may each provide a live user information stream (e.g. video stream) to each user in the group (i.e. peer-topeer selective streaming) whilst each user is able to simultaneously share information sources (i.e. simultaneous broadcasting of more than two information sources) with some or all ofthe users in the group (i.e. selectable sources for peer-to-peer streaming, where everyone is in the same virtual “room” but not everyone is receiving the same information sources).
[0010] Methods and apparatus are provided for providing peer-to-peer selective streaming for a collaboration session between peer computing devices of a plurality of users via a server receives multiple information sources from one or more ofthe peer computing devices, and simultaneously broadcasts the multiple information sources to other peer computing in the collaboration session over a communication network. Each user of a peer computing device selects a shared information source on their peer computing device for sharing and streaming with one or more other users of peer computing devices within one or more collaboration sessions. In addition to the shared information source streams, each peer computing device of a user also transmits a user information source stream representing an information source ofthe user captured by the peer computing device, which are also streamed to peer computing devices of users in the collaboration session. Although the users of each ofthe peers may be in the same virtual “room” or common space, not every user may receive the same information sources. The information sources may include video sources, audio sources, multimedia sources, data representative of files or documents, or any other information source representing information that a user of a peer computing device may select for transmission to other peers in one or more collaboration sessions.
[0011] According to a first aspect of the invention there is provided a computer implemented method for peer-to-peer selective streaming in a collaboration session of a plurality of users, each user using a peer computing device. The method is performed for a first user of a peer computing device and includes receiving one or more user information source streams (e.g. video, audio, multimedia streams) from one or more peer computing devices of the plurality of users in the collaboration session, each user information source stream comprising data representative of an information source associated with a user captured by the corresponding peer computing device; displaying the multiple user information source streams as separate user information source streams on the display of the peer computing device; receiving data representative of one or more shared information source streams associated with one or more users sharing an information source; displaying the data representative of one or more shared information source streams as one or more shared information source thumbnail(s); and selecting a shared information source thumbnail; receiving a shared information source stream associated with the selected shared information source thumbnail; and displaying the received shared information source stream to the first user of the peer computing device.
[0012] As an option, the method further includes selecting an information source for sharing with one or more of the plurality of users in the collaboration session; and transmitting data representative of the shared information source to a server for distribution as a shared information source stream to the one or more users.
[0013] Optionally, transmitting the data representative of the shared information source further includes: detecting user actions performed on the display of the peer computing device in relation to the data representative of the shared information source; and transmitting data representative of the user actions to a server for generating a shared information source stream based on the received shared information source and user actions.
[0014] As an option, the method further includes generating user information source stream of the first user based on capturing data representative of the first user of the peer computing device; and transmitting the generated user information source stream of the first user to a server for distribution to users in the collaboration session.
[0015] As another option, the user information source streams are received for the duration of when those users are in the collaboration session, and is received concurrently when any shared information source stream is shared with the first user and received by the peer computing device during the collaboration session. Additionally or alternatively, the user information source stream of the first user is transmitted for the duration of when the first user is in the collaboration session, and is transmitted concurrently with any shared information source stream is shared by the first user with other users during the collaboration session.
[0016] As an option, each user information source stream comprises data representative of a user captured by a sensor of the peer computing device. The sensor may be a camera for capturing one or more images or video of the user of the peer computing device. Optionally, each user information source stream includes one or more from the group of: a plurality of data items representing images of the user captured by a sensor of the peer computing device; a video stream comprising data representative of video captured by a sensor of the user of the peer computing device; an audio stream comprising data representative of audio associated with the user captured by a sensor of the peer computing device; and any digital data or data items captured by the peer computing device that is representative of a user of the peer computing device. Optionally, the shared information source stream may include a 'live' shared information source stream generated by either the peer computing device of the user sharing the source stream or a server generating and distributing a 'live' shared information source stream based on an information source from the user sharing the information source.
[0017] Optionally, a shared information source includes data representative of one or more data items a user selects to share with one or more other users during the collaboration session. Additionally or alternatively, the shared information source may include one or more information source(s) from the group of: one or more files or documents; a portion of a graphical user interface, GUI, displayed on a peer computing device; a window or frame of one or more applications displayed on a GUI of the peer computing device; all of the GUI displayed on the peer computing device; digital content comprising one or more content items on the peer computing device or accessible by the peer computing device; and any data or digital data representative of information for sharing by a user of a peer computing device with one or more users of other peer computing devices.
[0018] As another option, the method may further include receiving, from a collaboration server, multiple user information source streams from peer computing devices of other users of the plurality of users in the collaboration session, each user information source stream representing an information stream of an information source associated with another user captured by the peer computing device of the captured user; displaying or presenting, on a display screen of the peer computing device of the first user, the multiple user information source streams as separate user information source thumbnail streams associated with each of the users; receiving, from the collaboration server, one or more shared information source streams associated with one or more of the users that are sharing shared information sources; presenting or displaying, on the peer computing device of the first user, each shared information content source stream as a shared information source thumbnail; selecting a shared information source thumbnail further including: detecting a selection of a shared information source thumbnail; and transmitting, to the collaboration server, a request for further information associated with the selected shared information source thumbnail; receiving from the collaboration server a shared information source stream associated with the selected shared information source thumbnail; and enlarging and displaying (or presenting) the selected shared information source thumbnail in another portion of the display of the peer computing device for viewing the shared information source stream.
[0019] According to a second aspect of the invention there is provided a computer implemented method for simultaneous broadcasting of multiple information sources with peer-to-peer selecting information streaming for a collaboration session of a plurality of users, each user associated with a peer computing device. The method, performed by a collaboration server, may include: receiving a plurality of user information source streams from peer computing devices of users associated with the collaboration session, each user information source stream representing an information source comprising data representative of a user captured by a corresponding peer computing device of that user; receiving, from one or more peer computing devices, data representative of one or more shared information sources; transmitting, to the peer computing devices of users in the collaboration session, user information source streams based on the received user information source streams for display; and transmitting, to the peer computing devices of users in the collaboration session, shared information source streams based on the data representative of the received shared information sources.
[0020] Optionally, the method further includes receiving data representative of an information source from a user in the collaboration session for sharing with one or more of the plurality of users in the collaboration session; and generating a shared information source stream based on the received information source from the user for sharing with one or more of the plurality of users; and transmitting the shared information source stream to one or more of the plurality of users requesting the shared information source.
[0021] As an option, the method includes receiving the data representative of the information source further comprises receiving data representative of user actions performed on a display of the peer computing device in relation to the information source for sharing; generating the shared information stream further comprises generating the shared information stream based on the received information source and the received data representative of the user actions; and transmitting the shared information source stream to one or more of the plurality of users requesting the shared information source.
[0022] As another option, the user information source streams are received and transmitted for the duration of when those users are in the collaboration session, and are received and transmitted concurrently when any shared information source stream is shared with one or more of the plurality of users during the collaboration session.
[0023] Optionally, each user information source stream comprises one or more from the group of: a plurality of data items representing images of the user captured by a sensor of the peer computing device; a video stream comprising data representative of video captured by a sensor of the user of the peer computing device; an audio stream comprising data representative of audio associated with the user captured by a sensor of the peer computing device; and any digital data or data items captured by the peer computing device that is representative of a user of the peer computing device.
[0024] As an option, a shared information source includes data representative of one or more data items a user selects to share with one or more other users during the collaboration session. Additionally or alternatively, the shared information source includes data representative of one or more from the group of: one or more files or documents; a portion of a graphical user interface, GUI, displayed on a peer computing device; a window or frame of one or more applications displayed on a GUI of the peer computing device; content comprising one or more content items on the peer computing device; and any data representative of information for sharing with one or more users.
[0025] As an option, each user associated with a peer computing device operates a collaboration client that performs one or more of the method(s) as described, and the method, performed by the server, further includes receiving a plurality of user information source streams, each user information source stream representing an information source associated with a user captured by a sensor of the peer computing device of that user; and receiving, from one or more collaboration clients associated with one or more users of peer computing devices, data representative of one or more shared information sources, wherein the data representative of the shared information sources includes one or more information sources for sharing and an indication of a set of users from the plurality of users that are permitted to view each of the information sources for sharing; and transmitting, to each peer computing device of each user, the received user information source streams of the users for display by the collaboration client of said each user; and transmitting, for each shared information source, a shared information source stream representing the shared information source to those collaboration clients of each user requesting to view the shared information source and that is permitted to view the shared information source.
[0026] According to a third aspect of the invention, there is provided a peer computing device for peer-to-peer selective streaming for a collaboration session of a plurality of users each using a collaboration client on the peer computing device, the peer computing device comprising a processor, display, memory, receiver and transmitter, the processor connected to the display, memory, receiver and transmitter, and the collaboration client stored in memory, wherein the collaboration client comprises computer code which, when executed by the processor, configures the peer computing device to: receive one or more user information source streams from one or more peer computing devices of the plurality of users in the collaboration session, each user information source stream comprising data representative of an information source associated with a user captured by the corresponding peer computing device; present on the display of the peer computing device the multiple user information source streams as separate user information source streams; receive data representative of one or more shared information source streams associated with one or more users sharing an information source; present on the display of the peer computing device the data representative of one or more shared information source streams as one or more shared information source thumbnail(s); and select a shared information source thumbnail; receive a shared information source stream associated with the selected shared information source thumbnail; and present on the display the received shared information source stream to the first user of the peer computing device.
[0027] Optionally, the peer computing device further includes a sensor for capturing data representative of a user of the peer computing device. The sensor may be a camera for capturing a plurality of images or video comprising a plurality of image frames representative of a user of the peer computing device. As an option, the processor executing the collaboration client may further configure the peer computing device to perform the one or more method(s) as described.
[0028] According to a fourth aspect of the invention there is provided a collaboration server for simultaneous broadcasting and controlling a peer-to-peer selective information streaming in a collaboration session for a plurality of users, each user using a corresponding collaboration client on a peer computing device, the collaboration server comprising a processor, a memory, a receiver and a transmitter, the processor being connected to the memory, receiver and transmitter, wherein: the processor and receiver are configured to: receive a plurality of user information source streams from peer computing devices of users associated with the collaboration session, each user information source stream representing an information source comprising data representative of a user captured by a corresponding peer computing device of that user; receive, from one or more peer computing devices, data representative of one or more shared information sources; and the processor and transmitter are configured to: transmit, to the peer computing devices of users in the collaboration session, user information source streams based on the received user information source streams for display; and transmit, to the peer computing devices of users in the collaboration session, shared information source streams based on the data representative of the received shared information sources.
[0029] Optionally, the processor, receiver, transmitter and memory are further configured to implement the method(s) as described herein.
[0030] According to a fifth aspect of the invention there is provided a collaboration system comprising a plurality of peer computing devices with collaboration clients thereon as described in communication over a communication network with a collaboration server as described.
[0031] In another aspect of the invention provide a computer readable medium comprising instructions stored thereon, which when executed by a processor of a collaboration client device, causes the processor to perform the computer implemented method for a collaboration client or as described. In a further aspect of the invention there is provided a computer readable medium comprising instructions stored thereon, which when executed by a processor of a collaboration server, causes the processor to perform the computer implemented method for a collaboration server as described.
[0032] The methods described herein may be performed by software in machine readable form on a tangible storage medium or tangible computer readable medium e.g. in the form of a computer program comprising computer program code means adapted to perform all the steps of any of the methods described herein when the program is run on a computer and where the computer program may be embodied on a computer readable medium. Examples of tangible (or non-transitory) storage media include disks, thumb drives, memory cards etc. and do not include propagated signals. The software can be suitable for execution on a parallel processor or a serial processor such that the method steps may be carried out in any suitable order, or simultaneously.
[0033] This acknowledges that firmware and software can be valuable, separately tradable commodities. It is intended to encompass software, which runs on or controls “dumb” or standard hardware, to carry out the desired functions. It is also intended to encompass software which “describes” or defines the configuration of hardware, such as hardware description language (HDL) software, as is used fordesigning silicon chips, or for configuring universal programmable chips, to carry out desired functions.
[0034] The preferred features may be combined as appropriate, as would be apparent to a skilled person, and may be combined with any of the aspects of the invention.
BRIEF DESCRIPTION OF THE DRAWINGS [0035] Embodiments of the invention will be described, byway of example, with reference to the following drawings, in which:
[0036] Figure 1a illustrates a schematic diagram of a collaboration system comprising a plurality of collaboration clients in communication with a collaboration server for a collaboration session;
[0037] Figure 1 b illustrates a flow diagram of an example process performed by a peer computing device for facilitating a collaboration session;
[0038] Figure 1c illustrates a flow diagram of an example process performed by at least one collaboration server for facilitating a collaboration session;
[0039] Figure 2 illustrates schematic diagram of an example of a collaboration client for a peer computing device for facilitating a collaboration session in a collaboration system;
[0040] Figure 3a illustrates a schematic diagram of another example collaboration client for a peer computing device for facilitating a collaboration session in a collaboration system;
[0041] Figure 3b illustrates another schematic diagram of the example collaboration client of Figure 3a;
[0042] Figures 3c and 3d illustrate schematic diagrams of an example sharing of an information source with other users in the collaboration session based on the example collaboration client of Figure 3a;
[0043] Figure 4 illustrates a flow diagram of another example process performed by a peer computing device for facilitating a collaboration session;
[0044] Figure 5 is a schematic diagram illustrating a peer computing device; and [0045] Figure 6 is a schematic diagram illustrating a collaboration server.
[0046] Common reference numerals are used throughout the figures to indicate similar features.
DETAILED DESCRIPTION [0047] Embodiments of the present invention are described below by way of example only. These examples represent the best ways of putting the invention into practice that are currently known to the Applicant although they are not the only ways in which this could be achieved. The description sets forth the functions of the example and the sequence of steps for constructing and operating the example. However, the same or equivalent functions and sequences may be accomplished by different examples.
[0048] The invention provides a collaboration system for providing peer-to-peer selective streaming in which a server receives multiple information sources from one or more peers, and simultaneously broadcasts the multiple information sources to other peers in the collaboration session over a communication network. Each user of a peer computing device selects an information source to stream to one or more other peers within one or more collaboration sessions. The information sources are selectable information sources and peer-to-peer streamed to peers within one or more collaboration sessions. Although the users of each of the peers may be in the same virtual “room” or common space, not every user may receive the information sources. The information sources may, by way of example only but are not limited to, include video sources, audio sources, multimedia sources, data representative of files or documents, or any other information source representing information that a user of a peer collaboration client device may select to transmit to one or more other peers in one or more collaboration sessions.
[0049] A communication network may comprise or represent any one or more network(s) used for enabling communication between one or more multi-touch platform(s), one or more mobile device(s), one or more wearable device(s), one or more server(s) and/or other computing system(s), device(s) and platform(s) and the like that may be connected and/or have access to the network. The communication network infrastructure may also comprise or represent any one or more network(s), access points, one or more network nodes, entities, elements, application servers, servers, base stations, ground stations, gateway earth stations, satellites, gateway servers, policy nodes, network infrastructure equipment or other network devices or elements that are linked, coupled or connected to form a communication network. The coupling or links between network nodes, access points and other network infrastructure equipment may be wired or wireless (for example, Wi-Fi communication links, radio communications links, optical fibre, etc.). The communications network and network infrastructure may include any suitable combination of core network(s) and radio access network(s) including network nodes or entities, base stations, ground stations, gateway earth stations, satellites, gateway servers, access points, etc. that enable communications between the one or more multitouch platform(s), mobile device(s), wearable device(s), server(s) and/or other computing system(s), device(s) and platform(s) and the like, network nodes of the communication network and network infrastructure 104 and/or other devices connecting and/or accessing the network.
[0050] Examples of a communication network or network that may be used in certain embodiments of the described apparatus, methods and systems may be, byway of example but not limited to, at least one communication network or combination thereof including, but not limited to, one or more wired and/or wireless communication network(s), one or more telecommunications network(s), one or more core network(s), one or more radio access network(s), one or more terrestrial communication network(s), one or more satellite communication network(s), one or more computer networks, one or more data communication network(s), the Internet, the telephone network, wireless network(s) such as the Worldwide Interoperability for Microwave Access (WiMAX), near-far-communication(s) (NFC) systems, wireless local area networks (WLAN) based on the Institute of Electrical and Electronics Engineers' (IEEE) 802.11 standards e.g. Wi-Fi networks, or Internet Protocol (IP) networks, packetswitched networks or enhanced packet switched networks, IP Multimedia Subsystem (IMS) networks, or communications networks based on, by way of example but not limited to, wireless, cellular or satellite technologies such as mobile networks, Global System for Mobile Communications (GSM), GPRS networks, Wideband Code Division Multiple Access (W-CDMA), CDMA2000 or Long Term Evolution (LTE)/LTE Advanced networks or any 2nd, 3rd or 4th Generation and beyond type communication networks and the like. The term communication network or network as described herein may be used interchangeably.
[0051] A collaboration session may be a communication session that enables users that have joined the session via their corresponding peer computing devices to collaborate with each other using selective peer-to-peer streaming and sharing of multiple information sources from their respective peer computing devices. Data streaming, also known as streaming, may be thought of as a sequence of data items that may be read once by an application or an algorithm in a prescribed sequence. Data streaming over a network may further include transmitting the data items over the network to a content consumer that reads the data items, this may include storing or buffering the data items as they are read to take into account latencies due to bandwidth constraints over the network. The buffer may be short enough to allow for real-time or near real-time reading or display of the data items as they are read by an application of the content consumer. For example, a video content source may stream video as a sequence of a plurality of video data items to a video content consumer in which the video player application executing on the video content consumer receives and reads the video data items once and in a prescribed order for displaying playback of the video.
[0052] Although in the following examples the information sources and streaming are described with respect to video, audio, multimedia sources/streaming and/or files and documents, it is to be appreciated by the skilled man that other information sources and/or streaming may be applied. The collaboration system may include a plurality of peer computing devices with a collaboration client devices application that configures the peer computing devices to communicate during a collaboration session over a communication network with a collaboration server, where each peer computing device is associated with a user of a group of users and the peer computing devices communicate with each other via the collaboration server. The system is configured to perform in the collaboration session a live ad-hoc concurrent multi-window video streaming, and allow each user of the collaboration session to be an information presenter for sharing information with other viewing users and, at the same time or simultaneously, may be a viewer user of shared information from another presenting user. Similarly, other users of the collaboration session can be information presenters for presenting shared information to users in the group and, at the same time, information viewers for viewing shared information from presenting users.
[0053] The shared information source from each user may take the form of, by way of example only but not limited to, a video source, audio source, display screen source, document, file, image, etc., or any other digital information source that is being discussed amongst the users of a collaboration session. Additionally or alternatively, the shared information source may take the form of a real-time view, taking into account delays over the communication network, of a frame or window of an application displayed on their screen or display, a selected portion of their screen or display, and/or the whole screen or display. All users may simultaneously share their corresponding shared information source(s) with at least one or more other users in the group.
[0054] Figure 1a is a schematic diagram illustrating an example collaboration system 100 that includes a group of users U1-Up each with a corresponding peer computing device (e.g. mobile devices, tablet devices, laptop or desktop devices) 102a-102p each of which is configured to execute a collaboration client application (or collaboration client). Each collaboration client application executes on a peer computing device 102a-102p and communicates over a communication network with a collaboration server 104. The collaboration clients configure the peer computing devices 102a102p to facilitate one or more collaboration sessions for users U1-Up in the group over the communication network, in which each collaboration client may generate and share multiple information sources with one or more peer computing devices in a collaboration session and vice versa.
[0055] A peer computing device 102a may comprise or represent any device or equipment used for communications over a communications network. Examples of a peer computing device that may be used in certain embodiments of the described apparatus, method(s), system(s), network(s), collaboration system(s) are wireless or mobile devices such as mobile phones, terminals, smart phones, portable computing devices such as lap tops, handheld devices, tablets, netbooks, computers, personal digital assistants and other wireless devices that may connect to a communications network, and/or wired or fixed communication devices such as telephones, computing devices such as desktop computers, multi-touch platforms, set-top boxes, televisions, or other devices that may connect to a communications network.
[0056] Some example peer computing devices described herein are computing devices that include a processor, memory, communication interface and a display connected to each other and configured to communicate over a network with one or more collaboration servers for allowing a user of the peer computing device to join and collaborate in a collaboration session with other users of peer computing devices and share information sources.
[0057] Each of the peer computing devices 102a-102p may simultaneously become content consumers and content sources. For example, each of the peer computing devices 102a-102p may be a content consumer for receiving, via the collaboration server, user information source streams (e.g. audio/video/multimedia streams of each user) and shared information source stream (e.g. streamed documents, frames, windows or portions of a display screen) generated by other users on their corresponding peer computing devices 102a-102p. Each peer computing device 102a-102p may also become a content source for transmitting, via the collaboration server, user information source stream of the user of the peer computing device and also one or more shared information source streams from that peer computing device, via a collaboration server, to peer computing devices of other users in the collaboration session.
[0058] Each collaboration session enables the users U1-Up of that session to stream a user information source stream comprising images, video and/or audio of each other to form a video/audio conference call whilst simultaneously each user U1-Up of the session may share information via the collaboration server 104 with one or more other users in the session. Thus, the system 100 allows multiple information source streams to be simultaneously transmitted and shared between peers. For example, the system 100 may allow, by way of example only but is not limited to, simultaneous live video cross-streams of the active users as well as the shared information to be received and transmitted via the collaboration server 104 to each of the collaboration clients of peer computing devices 102a-102p of the active users U1-Up. The shared information is viewable and displayed on each user's peer computing device. Each session may involve the entire group of users U1-Up or multiple users from the group of users. Each user may also start or initiate another collaboration session with one or more other users within the group or outside the group of users whilst other collaboration sessions are on-going. For each of the video streams, whether they are video streams representing the active users U1-Up or video streams representing the shared information, the collaboration server 104 may transcode or process the video streams to meet the bandwidth requirements needed for each of the collaboration client peer computing devices 102a-102p and/or quality required for displaying each of the video streams on the peer computing devices 102a-102p executing each collaboration client.
[0059] For example, for the collaboration client of a peer computing device 102a of an active user U1, all of the video streams of the active users U2-Up may be displayed on the display or graphical user interface of the collaboration client of peer computing device 102a of user U1 of a size and quality suitable for display as either 'live' video stream thumbnails rather than at the size and quality required for a Standard or High Definition full screen video stream. This may provide a bandwidth savings. In addition, the 'live' shared information content video streams transmitted by the collaboration server 104 may also be transmitted in a receiving device suitable codex or as shared information content image(s) representing the 'live' shared information content video stream(s) and at a size or quality suitable for display as 'live' shared content video thumbnails or image thumbnails rather than at a size and quality required for a SD or HD full screen video streams. When user U1 wishes to view a shared information video stream, the user may select either the 'live' shared content video thumbnails or image thumbnails representing each 'live' shared content video stream, whereby the peer computing device communicates with the collaboration server to stream the 'live' shared content video stream in a higher quality format suitable for enlarging and viewing by the user U1. Thus, user U1 may use the collaboration client on peer computing device 102a to select a 'live' shared information content video stream thumbnail or image thumbnail representing a 'live' shared information content video stream to display a higher quality and larger version video stream of the selected 'live' shared information content video stream.
[0060] When the user U1 selects a 'live' shared content video stream thumbnail or image thumbnail, the collaboration client on the peer computing device 102a may transmit a request to the server 104 for transmitting either a higher quality video stream of the 'live' shared content thumbnail or image thumbnail, or prompt the collaboration server to transmit further video side information to enhance the quality of the 'live' video thumbnail that is suitable for displaying an enlarged version of the content of the selected 'live' video thumbnail. Alternatively, the collaboration server may simply transmit multiple images representative of the video stream to the peer computing device 102a of user U1. When the user U1 selects another 'live' shared content video stream thumbnail, another request is transmitted to the server 104 and the server 104 may discontinue transmitting the video side information for the previous enlarged video thumbnail, and then proceed to transmit video side information for the newly selected 'live' video thumbnail. The collaboration client of peer computing device 102a may reduce the size of the previously enlarged 'live' video thumbnail and then, on receipt of the video side information of the newly selected 'live' video thumbnail, display and enlarged view of the newly selected 'live' video thumbnail.
[0061] Figure 1 b illustrates a flow diagram of an example process or method 110 performed by a peer computing device 102a for facilitating a collaboration session with other users' peer computing devices 102b-102p. The peer computing device 102a may be configured by a computer implemented method for peer-to-peer selective streaming in a collaboration session comprising a group or a plurality of users U1-Up. The method, may be performed by a collaboration client on the peer computing device 102a of a first user U1 of the plurality of users U1-Up. It is assumed that the other peer computing devices 102b-102p also have a corresponding collaboration client. The steps of the process or method 110 may be as follows:
[0062] In step 112, the first user U1 may use the collaboration client of peer computing device 102a to invite a group of users U1-Up, one or more users, or a plurality of users to join a collaboration session. Alternatively, the first user U1 may request to join a collaboration session that is already in progress with a group of users U1-Up. Once one or more of the users U2-Up have accepted the invitation and joined the collaboration session or the user U1 has joined the collaboration session, then, each of the peer computing devices 102a-102p may capture data representative of the corresponding user U1-Up of that peer computing device 102a-102p and transmit a user information source stream to the collaboration server. Although this example, by way of example only but is not limited to, assumes that users U1-Up are taking part in the collaboration session, the skilled person in the art will understand that any number of two or more users or combination of two or more users may take part in the collaboration session.
[0063] In step 114, the collaboration server may transmit the user information source streams received from each of the users U1-Up to each other user U1-Up, such that all users receive user information source streams from the other users in the collaboration session. Thus, the collaboration client of peer computing device 102a of user U1 receives one or more user information source streams from the other user(s) (e.g. U2-Up) in the group of users U2-Up that are part of the collaboration session. Similarly, user U2 may receive one or more user information source streams from the other user(s) (e.g. U1 and U3-Up) and so on. During the collaboration session, each of the peer computing devices 102a-102p will continue to capture data representative of its respective user and transmit a user information source stream to the collaboration server 104, which in turn, distributes the user information source streams of each user to the peer computing device 102a-102p of each other user in the collaboration session. Thus, user U1 of peer computing device 102a receives, from the collaboration server 104, multiple user information source streams from each of the peer computing devices 102b-102p of other users U2-Up taking part in the collaboration session.
Each user information source stream representing an information stream of an information source associated with a user captured by a collaboration client of the peer computing device of the captured user.
[0064] In step 116, the peer computing device 102a of user U1 displays (e.g. on a touch screen display or display) the user information source streams received from users U2-Up on the collaboration client GUI or display screen of the peer computing device 102a in the form of user information source thumbnail streams, which may be of a size that allows the user U1 to view each user U2-Up with sufficient detail, but which does not overcome the bandwidth limitations, if any, of the peer computing device 102a. The user information source thumbnail streams may be separated and may be draggable over the display, movable, or re-positioned by the user U1 on the display. The collaboration server 104 may limit the size of the user information source thumbnail streams destined for each peer computing device 102a-102p depending on their bandwidth requirements and capabilities.
[0065] In step 118, during the collaboration session, the user U1 of peer computing device 102a may decide to share an information source with other user(s) U2-Up in the group. The shared information source may be streamed to the other user(s) U2-Up in the group via the collaboration server. The shared information source may be streamed from the peer computing device 102a of user U1 to the collaboration server 104, which streams the shared information source of U1 to each of the other users U2-Up taking part in the collaboration session. Alternatively or additionally, the shared information source of U1 may be uploaded to the collaboration server 104, which then generates a shared information source streams based on actions of the user U1 at peer computing device 102a in relation to the shared information source. The generated shared information source stream, showing the actions of user U1 in relation to the shared information source, may be streamed to each of the peer computing devices 102b-102p of the other users U2-Up of the collaboration session.
[0066] The shared information source streams may initially be transmitted to each peer computing device 102b-102p of the other users U2-Up as an image representative of the shared information source and displayed on those other peer computing devices 102b-102p as a shared information source image thumbnail. As each other user U2-Up of each peer computing device 102b-102p selects the shared source image thumbnail, the server 104 may then begin to stream or generate and stream the shared information source stream associated with user U1 to each of the peer computing devices 102b-102p. Each of these peer computing devices 102b-102p may each in turn enlarge and display the shared information source stream received from the collaboration server for discussion with other users U1-Up during the collaboration session.
[0067] In step 120, the peer computing device 102a of user U1 may also receive shared information source streams or data representative of a shared information source stream, from the collaboration server 104, in relation to one or more other shared information sources that other user(s) U2-Up in the group are sharing. The peer computing device 102a of user U1 may receive one or more shared information source stream thumbnails or an image representative of each shared information source stream from the collaboration server.
[0068] In step 122, if the collaboration client of peer computing device 102a detects that the user U1 selects a shared information source stream thumbnail or representative image, the peer computing device 102a may communicate this selection (e.g. via a request) to the server 104, which may then proceed to stream the selected shared information source stream or generate the selected shared information source stream for transmittal to the peer computing device 102a of user U1. The shared information source stream may be in a format that will allow bandwidth efficient transfer whilst still enable the peer computing device 102a to display or display an enlarged shared information source stream of the selected shared information source stream thumbnail for viewing by user U1 without severe degradation in viewing quality.
[0069] It is to be noted that the peer computing devices 102a-102p each act as content sources and also content consumers of the user information source streams and the shared information source streams, which are cross-streamed via the collaboration server 104 to each of the other peer computing devices 102a-102p during the collaboration session. Although the steps of method 110 have viewed as executing sequentially, it is to be appreciated by the skilled person that the operations of steps 112-122 may be performed concurrently. For example, steps 114-116 associated with streaming user information sources comprising data representative of the users may be performed throughout the collaboration session, hence one or more of steps 118-122 may be performed concurrently or simultaneously to steps 114-116 during the collaboration session when shared information source streams are streamed from the server 104 to corresponding peer computing devices 102a-102p that select those streams. Thus, multiple simultaneous or concurrent crossstreams of user information source streams and shared information source streams will be set up and transmitted from one or more peer computing devices 102a-102p of users U1-Up to one or more other peer computing devices 102a-102p of users U1-Up taking part in the collaboration session.
[0070] Figure 1 c illustrates a flow diagram of an example process or method 130 performed by at least one collaboration server 104 for facilitating a collaboration session. The collaboration server 104 may be configured by a computer implemented method for simultaneous broadcasting of multiple information sources with peer-to-peer selecting information streaming for a collaboration session including a group or a plurality of users U1-Up, each user U1 using a corresponding collaboration client executing on a peer computing device 102a. It is assumed that the other peer computing devices 102a-102p also have a corresponding collaboration client. The method, performed by the collaboration server(s) 104, may be as follows:
[0071] In step 132, the collaboration server 104 receives an invite message from a user U1 of peer computing device 102a. The invite message includes data representative ofthe identity of one or more users U2-Up that user U1 has invited to take part in the collaboration session. The server 104 transmits separate invite messages to each ofthe one or more users U2-Up that user U1 has invited to the collaboration session. Once the users U2-Up have accepted the invite message, the method proceeds to step 134, otherwise the method ends. Alternatively, U1 may send the collaboration server 104 a request to join a collaboration session, which may be provided to user U1 via the collaboration client or an address book including an indication of collaboration sessions the user may join. The server determines whether user U1 is able to join the collaboration session, and if the user may join the collaboration session, then the method proceeds to step 134, otherwise the method ends.
[0072] In step 134, the server 104 receives a plurality of user information source streams associated with users U1-Up, in which each user information source stream includes data representative of a user U1 captured by the corresponding peer computing device 102a ofthe user U1. Each user information source stream represents an information source associated with a user that is captured by a collaboration client ofthe peer computing device of that user. The information source may be a plurality of images or a video that the peer computing device may capture ofthe user using one or more sensors such as, by way of example only but not limited to, a microphone, an image sensor, a video sensor, a camera or web camera coupled to the peer computing device. The sensor or camera may capture a digital representation ofthe user, which may be, by way of example only but is not limited to, digital video, audio, and/or multimedia data associated with the user. Each ofthe peer computing devices 102a-102p continues to capture data representative ofthe user of each peer computing device throughout the collaboration session and send this captured data to the server 104.
[0073] In step 136, the server 104 may transmit, to each peer computing device 102a-102p of each user U1-Up in the collaboration session, the received user information source streams ofthe users for display by the collaboration client on the display ofthe peer computing device 102a-102p of said each user U1-Up. For example, the received user information source streams that are transmitted by server 104 to user U1 include the received user information source streams associated with each other user U2-Up apart from user U1. Similarly, the server 104 transmits, to a user, data representative of user information source streams of the other users to the user. This is repeated for each of the other users in the collaboration session.
[0074] In step 138, the server 104 receives, from one or more collaboration clients of corresponding peer computing devices 102a-102p of the users U1-Up, one or more shared information content items (e.g. shared information sources or shared information source streams) during the collaboration session. The shared information content items may also include an indication of a set of users from the plurality of users U1-Up that are permitted to view the shared information content items.
[0075] In step 140, the server 104 may transmit shared information content item/source thumbnails or images to each user's peer computing device 102a-102p in the set of users during the collaboration session. This may allow the users U1-Up to select whatever shared information source thumbnail they wish and receive a corresponding shared information source stream from the server 104 associated with the shared information source provided by a user of the collaboration session.
Sending thumbnails prior to transmitting the shared information source streams provides the added advantage of reducing bandwidth usage amongst the peer computing devices 102a-102p of one or more users U1-Up taking part in the collaboration session. Additionally or alternatively, the server 104 may transmit shared information content streams and/or shared information source streams representing the shared information content item/shared information source to those users permitted to view the shared information content item/source.
[0076] In step 142, the server 104 may receive from the collaboration clients of peer computing devices 102a-102p one or more user U1-Up selections associated with one or more shared information source thumbnail(s) or image(s) during the collaboration session. This may be in the form of a selection request from one or more peer computing devices 102a-102p indicating which of the one or more shared information source thumbnail/(s)image(s) has been selected.by a user U1 of a particular peer computing device 102a. The server 104, which may then proceed to stream the selected shared information source stream or generate the selected shared information source stream for transmittal to the peer computing device 102a of user U1 or any other user that selected the shared information source thumbnail/image corresponding to the shared information source stream. The shared information source stream may be in a format that will allow bandwidth efficient transfer whilst still enable each peer computing device 102a-102p to display or display an enlarged shared information source stream of the selected shared information source stream thumbnail for viewing by user U1 without severe degradation in viewing quality.
[0077] In step 144, the server 104 transmits the shared information source stream associated with the selected shared information source thumbnail to those peer computing device(s) 102a-102p requesting streaming of the selected shared information source thumbnail in a format suitable for display by the peer computing devices 102a-102p to the one or more users U1 -Up. Additionally or alternatively, the server 104 may transmit, for each shared information content item/source, a shared information source stream representing the shared information content item/source to those collaboration clients on peer computing devices 102a-102p of each user U1 -Up permitted to view the shared information content item.
[0078] Figure 2 is a schematic illustration of an example collaboration client 202 for execution on a peer computing device of a user of a collaboration session. Although this example is described with respect to sharing an information source such as a document or file and sharing user video streams, it is to be appreciated by the skilled person in the art that the concepts described herein may be used for sharing any information source/stream or digital information between users of peer computing devices. The collaboration client 202 is configured to communicate with a collaboration server (not shown) and enable the user to enter or start a collaboration session with one or more users of a group of users for peer-to-peer selective streaming and collaboration. The collaboration client 202 includes an active user zone 204 and a shared information viewer or zone 206. The active user zone 204 is configured for displaying in a first portion of a display video streams of active users U2-Up. The shared information viewer or zone 206 is configured into a thumbnail display zone 208 and an enlarged or maximised thumbnail viewer 210. The thumbnail display zone 208 is configured to display images of 'live' video cross-streams or even 'live' video cross-streams of shared information content/sources represented by a plurality of live video stream thumbnails 207a-207b of the shared information content/source of each user that is sharing the information content/source. The maximised video stream viewer 210 displays a maximised view of a selected image/thumbnail of a live video stream thumbnail from the plurality of live video stream thumbnails 207a-207b.
[0079] The collaboration client 202 may further include a video stream view 212 of the user U1 of the collaboration client 202 and controls 214a-214c for starting a stream, adding a member to the collaboration session, or disconnecting from one or more of the collaboration sessions. The user video thumbnails 204a-204p, which may simply be small sized video streams, may be low resolution video streams of the active users U2-Up due to their size, but of a quality sufficient for user U1 to be able to recognise the active users U2-Up. Audio streams of each of the active users U1-U2 may also be transmitted from the server to the collaboration client 202, which may be transmitted either separate to the corresponding user video stream or bundled with the corresponding user video stream of an active userU2-Up. In this example, multiple active users U1-Up are displayed as thumbnail video streams 204a-204p in the active user zone 204 of one or more collaboration sessions.
[0080] In operation, the collaboration client 202 executing on a peer computing device captures video and/or audio content representing the user and transmits or streams the captured video/audio content to the collaboration server as a video/audio stream. The server processes and distributes the video/audio stream of the user to the peer computing devices of the active users U2-Up participating in the collaboration session and corresponding collaboration clients of one or more active users U2Up of a group of users of the collaboration session. Similarly, the collaboration server also receives video/audio streams of the one or more active users U1-Up and distributes these streams to the collaboration client of the active users U1-Up in the group of users of the collaboration session. The collaboration client 202 is also configured to receive from the server the video/audio streams of the one or more active users U2-Up that are part of one or more collaboration sessions that the user U1 is involved with. The collaboration client 202 displays the video streams of the other active user(s) U2-Up in an active user zone 204 in the form of video thumbnails 204a-204p representing each of the active users U2-Up taking part in the collaboration session with active user U1. Each of the video thumbnails 204a-204p displays a real-time or live video stream of an active user U2-Up in the collaboration client 202 of the user U1. Similarly, the collaboration clients of each of the other active users U2-Up are also providing a similar or reciprocal view or display of the other active users U1-Up in the collaboration session.
[0081] Simultaneously or concurrently to receiving video/audio streams 204a-204p of the active user(s) U2-Up and transmitting video/audio stream of the user U1 of the collaboration client 202 to the server/computing devices of the active users(s) U2-Up, the collaboration client 202 may also receive, from the collaboration server, one or more shared content video streams of shared information content items that are shared, via the respective peer computing devices, by one or more of the active users U2-Up.
[0082] The collaboration client 202, on receiving each shared content video stream, displays these shared content video cross-streams as an array of shared content video thumbnails 207a-207b in the thumbnail display zone 208. The user using the collaboration client 202 may select a video thumbnail 207a, on detecting the selection of video thumbnail, the collaboration client 202 may enlarge and display the selected video thumbnail 207a in the maximised video stream viewer 210. Typically, the collaboration server may transmit cross-streams of the video thumbnails to the collaboration client 202 at a lower quality to minimise bandwidth usage. For example, the video thumbnails may be each transmitted as a still image from the server to the collaboration client 202, on selection of a video thumbnail, the server may then transmit the 'live' video stream associated with the video thumbnail to the collaboration client 202, which may display an enlarged video stream associated with the video thumbnail of the shared information source. Alternatively or additionally, server may transmit 'live' video thumbnail stream at a low resolution such that the collaboration client 202 may be configured to request from the collaboration server further video side information or a higher quality video stream associated with the selected video thumbnail 207a that would allow enlargement of the selected video thumbnail 207a for display in the maximised video stream viewer 210 with minimal degradation to the quality of viewing an enlarged version of the selected video thumbnail 207a.
[0083] Similarly, when the user U1 selects another video thumbnail 207b, the collaboration server may then stop sending the video stream and/or video side information of the higher quality video stream associated with the previously selected video thumbnail 207a and transmit further video side information or a higher quality video stream associated with the selected video thumbnail 207b that would allow enlargement of the selected video thumbnail 207b for display in the maximised video stream viewer 210 with minimal degradation to the quality of viewing an enlarged version of the selected video thumbnail 207b.
[0084] In addition to simultaneously receiving video streams capturing video of the active users 204a-204p and shared information content video stream thumbnails 207a-207b, the user U1 of the collaboration client 202 may wish to share information sources/share information content items such as, by way of example only but not limited to, files, a display of the screen or portion of the display screen, or other digital information with one or more of the users U2-Up of the collaboration session. The user U1 of the collaboration client 202 may select the information to be shared (e.g. select a file, or select a portion of the display or the whole display) in which the collaboration client 202 transmits data representative of the shared information to the collaboration server. The collaboration server then distributes the shared information content as a shared information content video stream to the collaboration clients of each of the other users U2-Up in the collaboration session. The collaboration server may first distribute shared information source thumbnails or images representative of the shared information source and only distribute the shared information source or content stream to each of the users U2-Up to those users U2-Up selecting the corresponding thumbnail image associated with the shared information source to be shared by user U1.
[0085] For example, the user U1 of the collaboration client 202 may select an information source for sharing such as a file for sharing with other users of the collaboration session. This may be achieved by the user selecting, using a file manager, a file or document on the computing device for sharing with the users. The collaboration client 202 proceeds to upload the file or document to the collaboration server, which securely stores the file or document. The collaboration client 202 may also open and display the file or document in a document viewer frame or window (not shown). The collaboration client 202 may then monitor the user's use of the file displayed in the document viewer frame and send the collaboration server commands corresponding to the user's actions when viewing the file in the document viewer. These actions may be associated with editing, scrolling, and/or highlighting portions of the file that is displayed in the document viewer. The collaboration server receives the commands associated with the user's actions on the file in the document viewer and generates a video stream of the file and corresponding actions of the user based on the commands sent from the collaboration client 202. The collaboration server distributes the generated video stream of the file and associated user actions to the corresponding other users as a shared information content video stream for viewing by the other users via their corresponding maximised video stream viewers 210.
[0086] The collaboration server may also generates a video thumbnail or image representing the video stream of the file and corresponding actions of the user U1. This is first sent to the collaboration clients of the other users U2-Up of the collaboration session and displayed as thumbnails of the shared information source or file by user U1. The collaboration server may then only distribute the generated video stream of the file and associated user actions to the corresponding other users that have selected the video thumbnail or image for viewing in their corresponding as a shared information content video stream for viewing by the other users via their corresponding collaboration clients.
[0087] An advantage of having the collaboration server store the file or document that was uploaded from the collaboration client 202 to generate a video stream from the file and the user's actions is for added security of not sending the original file or document to the users in the collaboration session. Rather, each of the users only sees the same copy of those sections of the file or document that the user of collaboration client 202 wishes the users to see via the generated video stream of the user's actions whilst viewing the file in the document viewer. The original file or document is not sent to the users.
[0088] In another example, the user of the collaboration client 202 may select a portion of their display screen such as, by way of example, any portion of the display screen, a frame or window displayed on the graphical user interface of their display, or even the whole display screen for sharing with one or more other users of the collaboration session. This may be achieved by the user selecting the portion of the screen (e.g. selecting a region of the display, dragging a mouse, finger or pointerto highlight a rectangular section of the screen, selecting a window or frame for display etc.) for sharing with the users. The collaboration client 202 then proceeds to capture and generate a video stream of the selected portion of the screen and transmits this to the collaboration server. The collaboration server may then process the generated video stream of the shared content information to generate a 'live' shared information video thumbnail stream that may be of a reduced size or quality suitable for display on each collaboration client of the recipient users of the shared portion of the screen. The collaboration server may then transmit the generated shared information content video stream representing the selected portion of the screen to each of the collaboration clients of those users that are part of the collaboration session. These users may be permitted to view the selected portion of the screen that is being shared by the user of the collaboration client 202.
[0089] Although the example collaboration client 202 described in relation to figure 2 focussed on users in the peer-to-peer collaboration session simultaneously transmitting user video streams representing the users whilst securely sharing documents and files, it is to be appreciated that multiple information sources, such as user information sources and shared information content sources, may be transmitted and shared with each of the peers during the collaboration session.
[0090] Figures 3a-3d are schematic illustrations of another example collaboration client 302 for execution on a peer computing device of a user of a collaboration session according to the present invention. Figure 3a illustrates the interface and operations performed by a user U1 of the collaboration client 302, which is an application executing on a peer computing device (not shown) that is configured to communicate with a collaboration server (not shown). The collaboration client 302 enables the user U1 to enter or start a collaboration session with one or more users of a group of users U1-Up for peer-to-peer selective streaming of multiple information sources and collaboration. A collaboration session may be a communication session that enables users U1-Up that have joined the collaboration session via their corresponding peer computing devices to collaborate with each other using selective peer-to-peer streaming and sharing of multiple information sources from their respective peer computing devices.
[0091] The collaboration client 302 includes a login page 301 for allowing a user to log into the collaboration client 302 and thus a collaboration session. The collaboration client 302 may be a webbased application in which the login page 301 may be a login splash page for allowing guests and/or members to login via a collaboration session account or a social network account etc. and the like. Once logged in users may login to join a collaboration session held in a virtual room via the collaboration client 302 (e.g. users U1-Up may join a web Real Time Communications (RTC) room).
[0092] The collaboration client 302 includes an information source selector 303 for selecting one or more information sources 304a-304c that may be used for starting one or more or multiple (e.g. 2 or more) information streams for transmitting and streaming to one or more peer computing devices of users U1-Up during a collaboration session. In step a) the user U1 may use the information source selector 303 to select one or more information sources (e.g. files, portions of a screen, or any other digital information source) for sharing with users in a collaboration session. The collaboration client 302 also includes one or more information stream views for viewing shared information source streams received from one or more peer computing devices of users U2-Up shared during a collaboration session. In step b), the user U1 may use an address book selector 305 to invite one or more users U2-Up to join a collaboration session, or it may be used for requesting that user U1 join a collaboration session that is about to being or an existing collaboration session.
[0093] In step c), the address book selector 305 may also be used by user U1 to manually select and invite one or more users U2-Up of peer computing devices including predefined groups of users to join a collaboration session. The address book selector 305 may also be used to manually select a user or groups of users in a collaboration sessions and for enabling the user of collaboration client 302 to request access or request to join such collaboration sessions. Additionally or alternatively, the address book selector/caller 305 may also include artificial intelligence (Al) selection algorithms configured for analysing the information sources 304a-304c and/or information stream views of shared information sources selected by the user U1 of the peer computing device. The Al algorithm(s) may be based on visual search engine/analytics algorithms and the like. The analysis may be used to provide a list of one or more users U2-Up or groups of users U2-Up that the user U1 of collaboration client 302 may wish to invite into a collaboration session or to join an existing collaboration session. The Al algorithms may also be configured to analyse the content of the information sources 304a304c selected by information source selector 303 and information source view of information sources being streamed to determine: 1) one or more users of peer computing devices to stream an information source to; 2) one or more additional applicable information sources that may be of interest to stream to one or more users of peer computing devices.
[0094] The address book selector/caller 305 may be used to determine and select one or more users U2-Up or one or more groups of users U2-Up, or one or more predefined groups of users U2-Up to invite and/or request to join one or more collaboration sessions for streaming information via information sources 304a-304c of the peer computing device and receiving information from information sources of other peer computing devices in the one or more collaboration sessions.
[0095] Once one or more users U2-Up have been selected for invitation to a collaboration session or for user U1 to join a collaboration session with users U2-Up using the address book selector/caller 305, in step d) the user U1 of collaboration client 302 may use a calling/reject button 306 for: 1) making invitations to users U2-Up to join a collaboration session; 2) making a requesting for user U1 to join a collaboration session with users U2-Up; 3) for accepting invitations from other users U2-Up for joining a collaboration session; 4) rejecting invitations from other users U2-Up for joining a collaboration session; and/or 5) for requesting requests by other users U2-Up for joining the collaboration session that user U1 is a part of. The calling/reject button 306 may appear or maximise when required, for example, when a user U2 of a peer computing device is sending an invitation or request for joining the collaboration session, and may disappear or minimise when the user U1 of the collaboration client 302 has accepted/rejected the invitation or request.
[0096] In step e), when the user U1 of the collaboration client 302 has invited one or more users U2Up, being accepted to join another collaboration session, or has accepted one or more users U2-Up requesting to join the collaboration session user U1 is part of, then the collaboration client 302 may display or include a live user image view 307 of contacts or users U2-Up of peer computing devices that are part of the collaboration session. In this example in Figure 3a, only one user U2 is displayed in the live user image view 307. The live user image view 307 is a view of another information source representing a live user image stream or a live video stream of user U2 of another peer computing device that may be streamed from that user's peer computing device to the collaboration client 302 of user U1 during one or more collaboration session(s). For example, the live user image stream or video stream may be captured by a sensor (e.g. a camera or web camera) of the peer computing device of user U2 or an image stream of images captured at regular intervals by the sensor (e.g. camera). These image or video data items are then streamed in real-time (depending on the bandwidth capabilities of the network and peer computing device) from the peer computing device of user U2 executing another collaboration client to the peer computing device of user U1 operating collaboration client 302.
[0097] Alternatively or additionally, the live user image may be a video stream captured of user U2 of the peer computing device. The live user image view 307 of the collaboration client 302 of user U1 may be moved or dragged to anywhere in the display or screen of the collaboration client 302. Although figure 3a shows one live user image view 307 of user U2 that is displayed in the collaboration client 302, figure 3b is an illustrates that a plurality of live user image views 307a-307p of users U2-Up may be displayed by collaboration client 302 to user U1. For each of these live image views 307a-307p, each of the peer computing devices of users U2-Up are capturing and streaming a plurality of image(s) or video data items representative of users U2-Up to a collaboration server, which distributes and streams each live user image/video stream to the other users U1-Up in the collaboration session. This means that all users U1-Up in the collaboration session each receive live image streams that are displayed as multiple user live image views 307a-307p of the other users U1Up in the collaboration session.
[0098] Referring to figure 3a, each live user image view 307 may include a sub-menu 309 for use by user U1 in controlling the peer-to-peer information streams from/to the collaboration client 302 to/from the peer computing device corresponding to the user U2 ofthe live user image view 307. The submenu 309 may include suspend, mute video/voice, chat service, Emoji send, and other controls for controlling the peer-to-peer information streams between collaboration clients 302.
[0099] Referring to figures 3a and 3b, in step f) for each live user image view 307 or for a group of live user image views 307a-307p, the user U1 of peer computing device executing the collaboration client 302 may share an information source with the user U2 ofthe peer computing device associated with the live user image view 307 or the users U2-Up ofthe live image user views 307a-307p. This may be achieved, by way of example only but is not limited to, by dragging (via mouse, finger or other pointing device) the live user image view 307 or one or more live image views 307a-307p to a selected information source 304a-304c of interest that user U1 is viewing. Referring to Figure 3c, the collaboration client 302 is illustrated with the user U1 using a pointing mechanism 310, which may be, by way of example only, a mouse pointer, a finger on a touch screen, or a stylus on a touch screen to drag the live user image view 307 via a gesture path 311 onto an information source 304a that is to be shared with user U2. The information source 304a may be highlighted with a chevron on its outer perimeter indicating to user U1 that this information source 304a will be shared with user U2. Alternatively, the user U1 may continue dragging the live user image view 307 to another information source 304b-304c, which will be highlighted indicating one of these are to be shared with user U2.
On release ofthe live image view 307 a notification may appear to confirm that the highlighted or selected information source 304a will be shared with user U2. Alternatively or additionally, release of the live image view 307 of user U2 may provide a command to share the selected information source 304a with user U2.
[00100] Referring back to figure 3a, once one or more ofthe information sources 304a-304c have been selected to be shared with user U2, the collaboration client 302 may then be configured to share the selected information source(s) 304a-304c as a shared information source stream(s) with the peer computing device of user U2 associated with the live user image view 307 or the peer computing devices of users U2-Up corresponding to the users U2-Up associated with the live user image views 307a-307p. Streaming ofthe information source 304a may be confirmed via a pop-up notification window in which a stream ofthe information source 304a is transmitted to the peer computing device via a collaboration server. In step g), the information source stream associated with the information source 304a will be viewed in the corresponding collaboration client ofthe other user's peer computing device (e.g. user U2) as an information source thumbnail 308a-308c. This may simply be an image representing the shared information source 304a or it may be a live thumbnail view ofthe information source stream associated with the selected information source 304a.
[00101] Figure 3d illustrates a collaboration client 302 of user U1 and a collaboration client 312 of user U2 in which user U1 is sharing an information source 304a with user U2. Both user U1 and user U2 are in a collaboration session together and are streaming 'live' user views 307 and 314 of video or image(s) captured of each other to the other user. In this example, user U1 decided to shared information source 304a by dragging the live user image view 307 of user U2 onto information source 304a, in a similar fashion as described herein with respect to figures 3a-3c and/or figures 1a-2 when sharing information sources, after which the peer computing device of user U1 is configured to have the shared information source 304a streamed via a communication network 311 to the collaboration client 312 on peer computing device of user U2. The shared information source 304a may be streamed to the peer computing device of user U2 as has been described herein with respect to any of figures 1 a-4 or modifications thereof. Initially, the shared information source 304a may be sent to user U2 as a shared information source thumbnail image that is displayed as a shared information source thumbnail image 308a by collaboration client 312. The user U2 of collaboration client 312 may then select the shared information source thumbnail image 308a, which prompts the peer computing device of user U2 to request the shared information source stream, which is then transmitted and received by the peer computing device of user U2 and displayed in a shared information source stream viewer 316. Typically, the shared information source stream will display the shared information source stream but enlarged compared to the shared information source thumbnail image 308a allowing user U2 to view the shared information source stream and the user U1's actions on the shared information source stream during the collaboration session.
[00102] The collaboration client 302 also includes information source thumbnails 308a-308c corresponding to shared information sources being streamed from other collaboration clients of other users U2-Up to the collaboration client 302 of user U1 during a collaboration session. The information thumbnails 308a-308c from other peer computing devices of other users U2-Up that are displayed by the collaboration client 302 may be selected and enlarged as described herein with reference to figures 1a-4. For example, this may require further information associated with the corresponding shared information source to be streamed to the collaboration client 302 from the corresponding peer computing device of one of the other users U2-Upto allow enlargement and viewing of an enlarged information source stream corresponding to the information source thumbnail 308a-308c.
[00103] Figure 4a illustrates a further flow diagram of an example process or method 400 performed by a collaboration client on a peer computing device for facilitating a collaboration session with other users' peer computing devices. It is assumed that the other peer computing devices also have a corresponding collaboration client that may perform reciprocal steps of process or method 400. The steps of the process or method 400 may be as follows:
[00104] In step 402, a user U1 may invite one or more users U2-Up with corresponding peer computing devices to join a collaboration session. Alternatively in step 404, the user U1 may join a collaboration session that is about to be or is underway with users U2-Up. The collaboration client of user U1, when one or more users U2-Up have accepted the invitation or accepted the join request, receives in step 406 one or more or multiple user information source streams comprising data items representative of the users U2-Up in the collaboration session. The user information source streams may be video data items or video streams, or an image stream or sequence of images representative of each of the users U2-Up in the collaboration session that the user U1 may view via the collaboration client of user U1. The user information source streams are received by the collaboration client of user U1 throughout the collaboration session; of course one or more of the users U2-Up may exit the collaboration session, which will mean that those user information source streams will cease to be received, but the remaining users in the collaboration session will continue to stream user information source streams to the collaboration client of user U1.
[00105] In step 408, the collaboration client of user U1 detects whether user U1 is selecting an information source to share with the other users U2-Up. If user U1 does select an information source to share, then in step 410 the peer computing device of user U1 sends the selected information source to a collaboration server for distribution to the other users U2-Up of the collaboration session. The server may distribute the selected information source as an information source stream to the other users U2-Up. Alternatively or additionally, the server may first distribute the selected information source as an shared information source thumbnail image to each of the other users U2Up, and only after those users U2-Up selects the shared information source thumbnail does the server distribute a shared information source stream associated with the shared information source. This may be in the form of a 'live' shared information source stream.
[00106] After sending the shared information source stream in step 410 or after the collaboration client of user U1 does not detect a selection of an information source in step 408, the method proceeds to step 412. The collaboration client checks or determines whether the peer computing device of user U1 is receiving shared information sources from other users U2-Up. If there are no shared information sources from other users U2-Up being received, then the method proceeds to step 418. If the collaboration client determines that other users U2-Up are sharing an information source with user U1, then in step 414 the collaboration client receives data representative of the shared information source from one or more other users U2-Up. The data representative of the shared information source may take the form of an image thumbnail representing the information source, or it may be a 'live' video/streaming thumbnail of the information source. Alternatively or additionally, it may simply be a link or hyperlink to the shared information source, on which if user U1 selects the link or hyperlink, then the shared information source is streamed to a view on the collaboration client of user U1. In any event, in step 416, the data representative of the shared information source may be displayed as a shared information source thumbnail. The method proceeds to step 420.
[00107] In step 418, the collaboration client determines whether there are any thumbnails representative of shared thumbnail sources. If there are, then the method may proceed to step 420 to determine whether the user U1 selects one or more of these shared information source thumbnails. If there are no shared thumbnail sources, then the method proceeds to step 406 for receiving user information source streams associated with the users U2-Up. In step 420, if the user does select an shared information source thumbnail, then the method proceed to step 422 in which the collaboration client of user U1 requests a server or a collaboration server to send a shared information source stream associated with the selected shared information source thumbnail to the peer computing device of user U1. In step 424, the peer computing device receives the selected shared information stream and the collaboration client of user U1 displayed the received selected shared information source stream to user U1 in an information source stream viewer or frame. The method may then proceed to step 426, in which case the collaboration client determines whether the user U1 wishes to end or exit the collaboration session. If the user does not wish to end the collaboration session, then the method may proceed to step 406 and re-iterate steps 408-426 until the collaboration session ends.
[00108] Figure 5 is a schematic diagram of an example peer computing device 500 which includes a processor 502, a display 504, memory or storage media 506, and transmit and receive hardware 508a, b that are coupled together over one or more busses or connections to form a peer computing device. The memory or storage media 506 may include computer instructions representative of a collaboration client and the like, which when executed on the processor 502, causes the processor 502 to perform the operations of a collaboration client as described herein with reference to figures 1a-4 or for performing the methods and/or processes of as described herein with reference to figures 1a-4 in relation to the peer computing device or collaboration client described thereto.
[00109] The peer computing device 500 may further include a sensor or one or more sensors, such as by way of example only, a microphone (e.g., capable of capturing voice input), audio sensor, camera module (e.g., capable of capturing still picture images and/or video image frames), image camera, video camera or video conferencing system components, or web camera and the like, which can be used for capturing data representative of the user of the peer computing device for generating a user information source stream associated with the user. The user information source stream may include a plurality of image frames of images of the user and/or audio signals representative of sounds made by the user when using the peer computing device. The user may be captured by the user positioning the sensor or peer computing device such that the user is within the field of view, sensing range or scope of the sensor. The sensor may then output a user information source stream to the peer computing device 500 or for user by the collaboration client as described above.
[00110] The memory or storage media 506 may be implemented, by way of example only but is not limited to, one or more volatile memory devices, one or more non-volatile memory devices or a combination of one or more volatile memory devices and non-volatile memory devices. For example, such memory devices may include magnetic storage devices (such as hard disk drives, floppy disks, magnetic tapes, etc.), optical magnetic storage devices (e.g. magneto-optical disks), CD-ROM (compact disc read only memory), CD-R (compact disc recordable), CD-R/W (compact disc rewritable), DVD (Digital Versatile Disc), BD (Blu-ray® Disc), and semiconductor memories (such as mask ROM, PROM (programmable ROM), EPROM (erasable PROM), flash ROM, RAM (random access memory), etc.).
[00111] The peer computing device 500 can include one or more input devices (not shown) and one or more output devices such as display 504. For example, the input devices or sensors may include, byway of example but are not limited to, a touch screen (e.g., capable of capturing finger tap inputs, finger gesture inputs, multi-finger tap inputs, multi-finger gesture inputs, or keystroke inputs from a n
virtual keyboard or keypad), a mouse or touch/track pad, and/or a physical keyboard. Examples of the output devices may include, by way of example only but are not limited, speakers, a display or display screen such as a touch screen display capable of displaying or presenting graphical user interfaces of applications or operating systems and the like. Other possible output devices (not shown) can include piezoelectric or other haptic output devices. As seen above, some input/output devices can serve more than one input/output function. For example, a touch screen display may be used as a combined input/output device.
[00112] Figure 6 is a schematic diagram of an example server 600 which includes a processor 602, memory or storage media 604, and transmit and receive hardware 606 and 608 that are coupled together over one or more busses or connections to form a peer computing device. The memory or storage media 604 may include computer instructions representative of a collaboration server and the like, which when executed on the processor 602 or one or more processors, causes the processor 602 to perform the operations of a collaboration server as described herein with reference to figures 1a-4 or for performing the methods and/or processes of as described herein with reference to figures 1 a-4 in relation to the collaboration server described thereto. The server 600 may include further hardware/software components, input/output devices and/or sensors as described with reference to figure 5.
[00113] Although the collaboration client application(s), method(s) and process(es) as described herein with reference to figures 1a-6 are described as configuring or operating on a peer computing device to allow a user of the peer computing device to stream user information sources comprising data representative the user to other users in the collaboration session whilst concurrently receiving user information source streams of other users and to sharing information source streams with each other user during the collaboration session and the like, it is to be appreciated by the skilled person that such collaboration client application(s), method(s) and process(es) may be implemented in a centralised or distributed manner over a communication network such as, by way of example only but not limited to, web-based application(s), software as a service type application(s), centralised server/client type application(s), distributed server/client type application(s), or any other computerimplemented program or application that may be configured to perform the method(s) and process(es) with respect to a collaboration client and the like as described herein with reference to figures 1a-6 on, by way of example only but not limited to, one or more of a plurality of servers, hardware computing devices or components, distributed storage and/or cloud computing and/or storage solutions and accessible over a communication network by peer computing devices to allow users to collaborate in the manner as disclosed herein in relation to method(s) and process(es) as described with reference to figures 1a-6.
[00114] Although the collaboration server application(s), method(s) and process(es) as described herein with reference to figures 1a-6 are described as configuring or operating on a collaboration server or server computing device for receiving user information sources comprising data representative the user from peer computing devices to other user peer computing devices in a collaboration session of a group of users whilst concurrently receiving and distributing user information source streams between users in the group and distributing and/or generating shared information source streams between users in the group during the collaboration session and the like, it is to be appreciated by the skilled person that such collaboration server application(s), method(s) and process(es) may be implemented in a centralised or distributed manner over a communication network such as, by way of example only but not limited to, web-based application(s), software as a service type application(s), centralised server/client type application(s), distributed server/client type application(s), or any other computer-implemented program or application that may be configured to perform the method(s) and process(es) with respect to a collaboration server as described herein with reference to figures 1 a-6 on, by way of example only but not limited to, one or more of a plurality of servers, hardware computing devices or components, distributed storage and/or cloud computing and/or storage solutions and accessible over a communication network by peer computing devices to allow users to collaborate in the manner as disclosed herein in relation to method(s) and process(es) as described with reference to figures 1a-6.
[00115] The term 'computing device' is used herein to refer to any device with processing capability such that it can execute instructions. Those skilled in the art will realise that such processing capabilities are incorporated into many different devices and therefore the term 'computing device' includes PCs, servers, network nodes and other network elements, peer computing devices, mobile telephones, personal digital assistants and many other devices.
[00116] Those skilled in the art will realise that storage devices utilised to store program instructions can be distributed across a network. For example, a remote computer may store an example of the process described as software. A local or terminal computer may access the remote computer and download a part or all of the software to run the program. Alternatively, the local computer may download pieces of the software as needed, or execute some software instructions at the local terminal and some at the remote computer (or computer network). Those skilled in the art will also realise that by utilising conventional techniques known to those skilled in the art that all, or a portion of the software instructions may be carried out by a dedicated circuit, such as a DSP, programmable logic array, or the like.
[00117] Any range or device value given herein may be extended or altered without losing the effect sought, as will be apparent to the skilled person. It will be understood that the benefits and advantages described above may relate to one embodiment or may relate to several embodiments. The embodiments are not limited to those that solve any or all of the stated problems or those that have any or all of the stated benefits and advantages.
[00118] Any reference to 'an' item refers to one or more of those items. The term 'comprising' is used herein to mean including the method blocks or elements identified, but that such blocks or elements do not comprise an exclusive list and a method or apparatus may contain additional blocks or elements.
[00119] The steps of the methods described herein may be carried out in any suitable order, or simultaneously where appropriate. Additionally, individual blocks may be deleted from any of the methods without departing from the spirit and scope of the subject matter described herein. Aspects of any of the examples described above may be combined with aspects of any of the other examples described to form further examples without losing the effect sought.
[00120] It will be understood that the above description of a preferred embodiment is given by way of example only and that various modifications may be made by those skilled in the art. Although various embodiments have been described above with a certain degree of particularity, or with reference to one or more individual embodiments, those skilled in the art could make numerous alterations to the disclosed embodiments without departing from the spirit or scope of this invention.

Claims (19)

1. A computer implemented method for peer-to-peer selective streaming in a collaboration session of a plurality of users, each user using a peer computing device, the method performed for a first user of a peer computing device, comprising:
receiving one or more user information source streams from one or more peer computing devices of the plurality of users in the collaboration session, each user information source stream comprising data representative of an information source associated with a user captured by the corresponding peer computing device;
displaying the multiple user information source streams as separate user information source streams on the display of the peer computing device;
receiving data representative of one or more shared information source streams associated with one or more users sharing an information source;
displaying the data representative of one or more shared information source streams as one or more shared information source thumbnail(s); and selecting a shared information source thumbnail;
receiving a shared information source stream associated with the selected shared information source thumbnail; and displaying the received shared information source stream to the first user of the peer computing device.
2. A computer implemented method as claimed in claim 1, the method further comprising: selecting an information source for sharing with one or more of the plurality of users in the collaboration session; and transmitting data representative of the shared information source to a server for distribution as a shared information source stream to the one or more users.
3. A computer implemented method as claimed in claim 2, wherein transmitting the data representative of the shared information source further comprises:
detecting user actions performed on the display of the peer computing device in relation to the data representative of the shared information source; and transmitting data representative of the user actions to a server for generating a shared information source stream based on the received shared information source and user actions.
4. A computer implemented method as claimed in any preceding claim, further comprising: generating user information source stream of the first user based on capturing data representative of the first user of the peer computing device; and transmitting the generated user information source stream of the first user to a server for distribution to users in the collaboration session.
5. A computer implemented method as claimed in any preceding claim, wherein user information source streams are received for the duration of when those user are in the collaboration session, and is received concurrently when any shared information source stream is shared with the first user and received by the peer computing device during the collaboration session.
6. A computer implemented method as claimed in any preceding claim, the user information source stream of the first user is transmitted for the duration of when the first user is in the collaboration session, and is transmitted concurrently with any shared information source stream is shared by the first user with other users during the collaboration session.
7. A computer implemented method as claimed in any preceding claim, wherein each user information source stream comprises data representative of a user captured by a sensor of the peer computing device.
8. A computer implemented method as claimed any preceding claim, wherein each user information source stream comprises one or more from the group of:
a plurality of data items representing images of the user captured by a sensor of the peer computing device;
a video stream comprising data representative of video captured by a sensor of the user of the peer computing device;
an audio stream comprising data representative of audio associated with the user captured by a sensor of the peer computing device; and any digital data or data items captured by the peer computing device that is representative of a user of the peer computing device.
9. A computer implemented method as claimed in any preceding claim, wherein a shared information source comprises data representative of one or more data items a user selects to share with one or more other users during the collaboration session.
10. A computer implemented method as claimed in any preceding claim, wherein the shared information source comprises one or more from the group of:
one or more files or documents;
a portion of a graphical user interface, GUI, displayed on a peer computing device; a window or frame of one or more applications displayed on a GUI of the peer computing device;
content comprising one or more content items on the peer computing device; and any data representative of information for sharing with one or more users.
11. A computer implemented method as claimed in any preceding claim, further comprising: receiving, from a collaboration server, multiple user information source streams from peer computing devices of other users of the plurality of users in the collaboration session, each user information source stream representing an information stream of an information source associated with another user captured by the peer computing device of the captured user;
displaying, on a display screen of the peer computing device of the first user, the multiple user information source streams as separate user information source thumbnail streams associated with each of the users;
receiving, from the collaboration server, one or more shared information source streams associated with one or more of the users that are sharing shared information sources;
displaying, on the peer computing device of the first user, each shared information content source stream as a shared information source thumbnail;
selecting a shared information source thumbnail further comprising:
detecting a selection of a shared information source thumbnail; and transmitting, to the collaboration server, a request for further information associated with the selected shared information source thumbnail;
receiving from the collaboration server a shared information source stream associated with the selected shared information source thumbnail; and enlarging and displaying the selected shared information source thumbnail in another portion of the display of the peer computing device for viewing the shared information source stream.
12. A computer implemented method for simultaneous broadcasting of multiple information sources with peer-to-peer selecting information streaming for a collaboration session of a plurality of users, each user associated with a peer computing device, the method, performed by a collaboration server, comprising:
receiving a plurality of user information source streams from peer computing devices of users associated with the collaboration session, each user information source stream representing an information source comprising data representative of a user captured by a corresponding peer computing device of that user;
receiving, from one or more peer computing devices, data representative of one or more shared information sources;
transmitting, to the peer computing devices of users in the collaboration session, user information source streams based on the received user information source streams for display; and transmitting, to the peer computing devices of users in the collaboration session, shared information source streams based on the data representative of the received shared information sources.
13. A computer implemented method as claimed in claim 12, the method further comprising: receiving data representative of an information source from a user in the collaboration session for sharing with one or more of the plurality of users in the collaboration session; and generating a shared information source stream based on the received information source from the user for sharing with one or more of the plurality of users; and transmitting the shared information source stream to one or more of the plurality of users requesting the shared information source.
14. A computer implemented method as claimed in claim 13, wherein:
receiving the data representative of the information source further comprises receiving data representative of user actions performed on a display of the peer computing device in relation to the information source for sharing;
generating the shared information stream further comprises generating the shared information stream based on the received information source and the received data representative of the user actions; and transmitting the shared information source stream to one or more of the plurality of users requesting the shared information source.
15. A computer implemented method as claimed in any of claims 12-14, wherein user information source streams are received and transmitted for the duration of when those users are in the collaboration session, and are received and transmitted concurrently when any shared information source stream is shared with one or more of the plurality of users during the collaboration session.
16. A computer implemented method as claimed any of claims 12-15, wherein each user information source stream comprises one or more from the group of:
a plurality of data items representing images of the user captured by a sensor of the peer computing device;
a video stream comprising data representative of video captured by a sensor of the user of the peer computing device;
an audio stream comprising data representative of audio associated with the user captured by a sensor of the peer computing device; and any digital data or data items captured by the peer computing device that is representative of a user of the peer computing device.
17. A computer implemented method as claimed in any of claims 12-16, wherein a shared information source comprises data representative of one or more data items a user selects to share with one or more other users during the collaboration session.
18. A computer implemented method as claimed in any of claims 12-17, wherein the shared information source comprises data representative of one or more from the group of:
one or more files or documents;
a portion of a graphical user interface, GUI, displayed on a peer computing device; a window or frame of one or more applications displayed on a GUI of the peer computing device;
content comprising one or more content items on the peer computing device; and any data representative of information for sharing with one or more users.
19.
Intellectual
Property
Office
Application No: GB1620353.1 Examiner: Adam Tucker
19 A computer implemented method as claimed in any of claims 12-18, wherein each user associated with a peer computing device operates a collaboration client that performs the method according to any of claims 1 to 11, the method further comprising:
receiving a plurality of user information source streams, each user information source stream representing an information source associated with a user captured by a sensor of the peer computing device of that user; and receiving, from one or more collaboration clients associated with one or more users of peer computing devices, data representative of one or more shared information sources, wherein the data representative of the shared information sources includes one or more information sources for sharing and an indication of a set of users from the plurality of users that are permitted to view each of the information sources for sharing; and transmitting, to each peer computing device of each user, the received user information source streams of the users for display by the collaboration client of said each user; and transmitting, for each shared information source, a shared information source stream representing the shared information source to those collaboration clients of each user requesting to view the shared information source and that is permitted to view the shared information source.
20. A peer computing device for peer-to-peer selective streaming for a collaboration session of a plurality of users each using a collaboration client on the peer computing device, the peer computing device comprising a processor, display, memory, receiver and transmitter, the processor connected to the display, memory, receiver and transmitter, and the collaboration client stored in memory, wherein the collaboration client comprises computer code which, when executed by the processor, configures the peer computing device to:
receive one or more user information source streams from one or more peer computing devices of the plurality of users in the collaboration session, each user information source stream comprising data representative of an information source associated with a user captured by the corresponding peer computing device;
present on the display of the peer computing device the multiple user information source streams as separate user information source streams;
receive data representative of one or more shared information source streams associated with one or more users sharing an information source;
present on the display of the peer computing device the data representative of one or more shared information source streams as one or more shared information source thumbnail(s); and select a shared information source thumbnail;
receive a shared information source stream associated with the selected shared information source thumbnail; and present on the display the received shared information source stream to the first user of the peer computing device.
21. A peer computing device as claimed in claim 20, wherein the processor executing the collaboration client further configures the peer computing device to perform the method according to any one of claims 2-11.
22. A collaboration server for simultaneous broadcasting and controlling a peer-to-peer selective information streaming in a collaboration session for a plurality of users, each user using a corresponding collaboration client on a peer computing device, the collaboration server comprising a processor, a memory, a receiver and a transmitter, the processor being connected to the memory, receiver and transmitter, wherein:
the processor and receiver are configured to:
receive a plurality of user information source streams from peer computing devices of users associated with the collaboration session, each user information source stream representing an information source comprising data representative of a user captured by a corresponding peer computing device of that user;
receive, from one or more peer computing devices, data representative of one or more shared information sources; and the processor and transmitter are configured to:
transmit, to the peer computing devices of users in the collaboration session, user information source streams based on the received user information source streams for display; and transmit, to the peer computing devices of users in the collaboration session, shared information source streams based on the data representative of the received shared information sources.
23. A collaboration server as claimed in claim 22, wherein the processor, receiver, transmitter and memory are further configured to implement the method according to any of claims 12-19.
24. A collaboration system comprising a plurality of peer computing devices according to any of claims 20 or 21 in communication with a collaboration server according to any of claims 22 or 23 over a communication network.
25. A computer readable medium comprising instructions stored thereon, which when executed by a processor, causes the processor to perform the computer implemented method of claims 1 to 11.
26. A computer readable medium comprising instructions stored thereon, which when executed by a processor, causes the processor to perform the computer implemented method of claims 12 to
GB1620353.1A 2016-11-30 2016-11-30 Simultaneous Multiuser Information cross streaming and sharing Withdrawn GB2557233A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
GB1620353.1A GB2557233A (en) 2016-11-30 2016-11-30 Simultaneous Multiuser Information cross streaming and sharing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB1620353.1A GB2557233A (en) 2016-11-30 2016-11-30 Simultaneous Multiuser Information cross streaming and sharing

Publications (2)

Publication Number Publication Date
GB201620353D0 GB201620353D0 (en) 2017-01-11
GB2557233A true GB2557233A (en) 2018-06-20

Family

ID=58073437

Family Applications (1)

Application Number Title Priority Date Filing Date
GB1620353.1A Withdrawn GB2557233A (en) 2016-11-30 2016-11-30 Simultaneous Multiuser Information cross streaming and sharing

Country Status (1)

Country Link
GB (1) GB2557233A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022079123A1 (en) 2020-10-13 2022-04-21 Pitch Software Gmbh Workspace video collaboration

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140032771A1 (en) * 2008-11-12 2014-01-30 Nigel Pegg Adaptive connectivity in network-based collaboration
US8700714B1 (en) * 2006-12-06 2014-04-15 Google, Inc. Collaborative streaning of video content
EP2884720A1 (en) * 2013-12-12 2015-06-17 Samsung Electronics Co., Ltd Method for synchronized real-time sharing the display of ordered lists of content
US20150319200A1 (en) * 2014-05-02 2015-11-05 Voxypad Inc. Natural User Interface for Remote Communication: An Interactive Collaboration System that allows Co-drawing Pad, Co-browsing/sharing Web/Document Files Using Session Initial Protocol (SIP)/Short Message Peer-to-Peer Protocol (SMPP) to Wake Up Remote Devices

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8700714B1 (en) * 2006-12-06 2014-04-15 Google, Inc. Collaborative streaning of video content
US20140032771A1 (en) * 2008-11-12 2014-01-30 Nigel Pegg Adaptive connectivity in network-based collaboration
EP2884720A1 (en) * 2013-12-12 2015-06-17 Samsung Electronics Co., Ltd Method for synchronized real-time sharing the display of ordered lists of content
US20150319200A1 (en) * 2014-05-02 2015-11-05 Voxypad Inc. Natural User Interface for Remote Communication: An Interactive Collaboration System that allows Co-drawing Pad, Co-browsing/sharing Web/Document Files Using Session Initial Protocol (SIP)/Short Message Peer-to-Peer Protocol (SMPP) to Wake Up Remote Devices

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
eFlikz promotional video by Zenisys Limited, Venka Pillay, hosted on Vimeo.com, uploaded 26 November 2016 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022079123A1 (en) 2020-10-13 2022-04-21 Pitch Software Gmbh Workspace video collaboration

Also Published As

Publication number Publication date
GB201620353D0 (en) 2017-01-11

Similar Documents

Publication Publication Date Title
US10299004B2 (en) Method and system for sourcing and editing live video
CN110326290B (en) Simultaneous viewing of live content and recorded content
JP6370941B2 (en) Communications system
US9349414B1 (en) System and method for simultaneous capture of two video streams
US9131059B2 (en) Systems, methods, and computer programs for joining an online conference already in progress
EP3881170B1 (en) Interactive viewing system
US20200201512A1 (en) Interactive editing system
CN113728591B (en) Previewing video content referenced by hyperlinks entered in comments
US11678031B2 (en) Authoring comments including typed hyperlinks that reference video content
US11838253B2 (en) Dynamically controlled permissions for managing the display of messages directed to a presenter
KR102641606B1 (en) Interaction methods, devices and electronic devices
CN113711170A (en) Context-aware control of user interfaces displaying video and related user text
US10942633B2 (en) Interactive viewing and editing system
KR20160085302A (en) Synchronous communication system and method
GB2557233A (en) Simultaneous Multiuser Information cross streaming and sharing
US9270938B1 (en) Display-based synchronous communication
US20230403367A1 (en) Customization of a user interface displaying a rendering of multiple participants of a hybrid communication session
KR102095306B1 (en) Apparatus for jointting contents
WO2023122533A1 (en) System and method for augmented views in an online meeting

Legal Events

Date Code Title Description
COOA Change in applicant's name or ownership of the application

Owner name: COLLABORATION PLATFORM SERVICES LIMITED

Free format text: FORMER OWNER: COLLABORATION PLATFORM SERVICES PTE. LTD.

WAP Application withdrawn, taken to be withdrawn or refused ** after publication under section 16(1)