WO2012088230A1 - Systems, methods and devices for facilitating online meetings - Google Patents

Systems, methods and devices for facilitating online meetings Download PDF

Info

Publication number
WO2012088230A1
WO2012088230A1 PCT/US2011/066396 US2011066396W WO2012088230A1 WO 2012088230 A1 WO2012088230 A1 WO 2012088230A1 US 2011066396 W US2011066396 W US 2011066396W WO 2012088230 A1 WO2012088230 A1 WO 2012088230A1
Authority
WO
WIPO (PCT)
Prior art keywords
computing device
screen data
time
meeting
online meeting
Prior art date
Application number
PCT/US2011/066396
Other languages
French (fr)
Inventor
Albert Alexandrov
Bernd Oliver Christiansen
Balineedu Chowdary ADSUMILLI
Original Assignee
Citrix Systems, Inc.
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
Priority claimed from US12/978,251 external-priority patent/US8922617B2/en
Priority claimed from US12/978,222 external-priority patent/US9269072B2/en
Priority claimed from US12/978,218 external-priority patent/US9129258B2/en
Priority claimed from US12/978,214 external-priority patent/US9282289B2/en
Application filed by Citrix Systems, Inc. filed Critical Citrix Systems, Inc.
Publication of WO2012088230A1 publication Critical patent/WO2012088230A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/14Systems for two-way working
    • H04N7/15Conference systems
    • 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/1831Tracking arrangements for later retrieval, e.g. recording contents, participants activities or behavior, network status

Definitions

  • Embodiments of the invention generally relate to the presentation and viewing of online meetings and, more specifically, to time-shifting playback of a live online meeting and to navigating the time-shifted portion of the live online meeting.
  • the graphical data may include presentation slides, video, and/or a computer application or desktop window, and may be sent from a presenter to one or more viewers. Each viewer receives some form of the graphical data along with, typically, a verbal commentary by the presenter synchronized to the graphical data.
  • the voice-over data may be sent through a traditional telephone network, e.g., a public switched-telephone network ("PSTN”), or through a computer-network protocol, e.g., voice-over-internet protocol ("VoIP").
  • PSTN public switched-telephone network
  • VoIP voice-over-internet protocol
  • the online meeting is typically "live” in the sense that voice and graphical data generated by a presenter are conveyed to the viewer as they occur, i.e., in real time while the meeting is still ongoing, as opposed to a prerecorded presentation viewed after the meeting has ended.
  • an outside event or computer malfunction may cause an interruption in the viewing of the meeting, and an affected viewer may be unable to view a key part of the meeting.
  • a viewer may wish for more time to study graphical data presented on the viewer's screen before the meeting proceeds to the next topic or may wish to further review earlier-presented video or audio data.
  • a viewer who joins a meeting after it has started may wish to view the material he or she has missed. Unfortunately, many of these features are not well supported by existing technology.
  • various aspects of the systems and methods described herein relate to displaying a previously presented portion of an online meeting while the meeting is still ongoing (i.e., while the meeting is "live").
  • a viewer's screen displays live screen data for a current point in time (i.e., the live portion of the meeting), and, while being displayed, the live screen data is also stored for later use.
  • the viewer may specify an earlier point in time, and the viewer's screen may then display screen data from the earlier point in time.
  • a viewer may pause and rewind a live online meeting while the meeting is ongoing.
  • key screenshots representing the stored screen data may be generated in response to trigger events, and thumbnails generated from the key screenshots may then be used to aid navigation through the stored content.
  • the viewer may annotate the key screenshots with notes, and a summary of the meeting may be generated using the key screenshots and/or annotations.
  • embodiments of the invention feature a method for displaying, during an ongoing online meeting, a previously presented portion of the meeting.
  • live screen data for a current point in time for the ongoing online meeting is displayed at a viewer computing device, and at least a portion of the live screen data is stored on the viewer computing device while the meeting is ongoing.
  • a selection of a point in time earlier than the current point in time is then received at the viewer computing device, and the stored screen data from the earlier point in time is displayed on the viewer computing device while the meeting is still ongoing.
  • embodiments of the invention feature a viewer computing device for displaying, during an ongoing online meeting, a previously presented portion of the meeting.
  • the viewer computing device includes computer memory for storing at least a portion of live screen data for a current point in time for the ongoing online meeting.
  • the live screen is received from a presenter computing device.
  • the viewer computing device includes a display module and a selection module.
  • the display module may cause the display of the live screen data at the current point in time, and the display of stored screen data from a point in time earlier than the current point in time.
  • the selection module receives a selection, while the meeting is still ongoing, of the earlier point in time and instructs the display module to cause the display of the stored screen data from the earlier point in time while the meeting is still ongoing.
  • embodiments of the invention feature an article of manufacture that stores computer-readable instructions thereon for displaying, during an ongoing online meeting, a previously presented portion of the meeting.
  • the article of manufacture includes instructions to display, at a viewer computing device, live screen data for a current point in time for the ongoing online meeting, instructions to store, on the viewer computing device, at least a portion of the live screen data while the meeting is ongoing, instructions to receive, at the viewer computing device, a selection of a point in time earlier than the current point in time, and instructions to display, on the viewer computing device while the meeting is still ongoing, the stored screen data from the earlier point in time.
  • the live screen data is displayed in a first window and the stored screen data from the earlier point in time is displayed in a second window.
  • the live screen data may be displayed in the first window and the display thereof may be interrupted to display the stored screen data from the earlier point in time in the first window.
  • the earlier point in time may be selected by, for example, selecting an image thumbnail of a screenshot from the earlier point in time, or by rewinding to, forwarding to, or seeking the stored screen data.
  • At least a portion of live audio data for the current point in time for the ongoing online meeting may be stored on the viewer computing device while the meeting is ongoing.
  • a playback module may play back the stored audio data from the earlier point in time on the viewer computing device while the meeting is still ongoing.
  • a synchronization module may synchronize the playback of the stored audio data with the display of the stored screen data.
  • live audio data for the current point in time for the ongoing online meeting may be played while the stored screen data from the earlier point in time is displayed. Displaying the stored screen data from the earlier point in time may include, for example, smoothly playing back a continuous data stream of the stored screen data beginning from the earlier point in time, or stepping through key screenshots beginning from the earlier point in time.
  • annotations made to the stored screen data may also be displayed.
  • embodiments of the invention feature a method for facilitating the display, during an ongoing online meeting, of a previously presented portion of the meeting.
  • live screen data for a current point in time for the ongoing online meeting is received at a server computing device.
  • the ongoing online meeting may be hosted, for example, by a presenter computing device.
  • the live screen data is then transmitted from the server computing device to a viewer computing device for display thereat.
  • at least a portion of the live screen data is stored, on the server computing device, while the meeting is ongoing.
  • the server computer device receives a selection of a point in time earlier than the current point in time, and transmits, to the viewer computing device while the meeting is still ongoing, stored screen data from the earlier point in time for display at the viewer computing device.
  • embodiments of the invention feature a server computing device for facilitating the display, during an ongoing online meeting, of a previously presented portion of the meeting.
  • the server computing device includes computer memory for storing at least a portion of live screen data for a current point in time for the ongoing online meeting.
  • the ongoing online meeting may be hosted by a presenter computing device.
  • the server computing device includes a transmitter and a selection module.
  • the transmitter may transmit, to a viewer computing device for display thereat, the live screen data and stored screen data from a point in time earlier than the current point in time.
  • the selection module receives a selection, while the meeting is still ongoing, of the earlier point in time and instructs the transmitter to transmit the stored screen data from the earlier point in time to the viewer computing device for display thereat while the meeting is still ongoing.
  • embodiments of the invention feature an article of manufacture storing computer-readable instructions thereon for facilitating the display, during an ongoing online meeting, of a previously presented portion of the meeting.
  • the article of manufacture includes instructions to receive, at a server computing device, live screen data for a current point in time for an ongoing online meeting hosted by a presenter computing device, instructions to transmit the live screen data from the server computing device to a viewer computing device for display thereat, instructions to store, on the server computing device, at least a portion of the live screen data while the meeting is ongoing, instructions to receive, at the server computing device, a selection of a point in time earlier than the current point in time, and instructions to transmit, from the server computing device to the viewer computing device while the meeting is still ongoing, stored screen data from the earlier point in time for display thereat.
  • the earlier point in time may be selected by, for example, selecting an image thumbnail of a screenshot from the earlier point in time, or by rewinding to, forwarding to, or seeking the stored screen data. After receiving the selection, additional screen data that was stored, but not previously transmitted to the viewer computing device, may be transmitted thereto.
  • At least a portion of live audio data for the current point in time for the ongoing online meeting may be stored on the server computing device while the meeting is ongoing.
  • stored audio data from the earlier point in time may be transmitted from the server computing device to the viewer computing device for playback thereat while the meeting is still ongoing.
  • a synchronization module at the server computing device may synchronize the stored audio data with the stored screen data prior to transmission thereof.
  • Transmitting the stored screen data from the earlier point in time may involve transmitting a continuous data stream of the stored screen data beginning from the earlier point in time, or transmitting key screenshots beginning from the earlier point in time. While transmitting the stored screen data from the earlier point in time, annotations made to the stored screen data may also be transmitted.
  • various aspects of the systems and methods described herein relate to displaying a previously presented portion of an online meeting while the meeting is still ongoing (i.e., while the meeting is "live").
  • a viewer's screen displays live screen data for a current point in time (i.e., the live portion of the meeting), and, while being displayed, the live screen data is also stored for later use.
  • the viewer may specify an earlier point in time, and the viewer's screen may then display screen data from the earlier point in time.
  • a viewer may pause and rewind a live online meeting while the meeting is ongoing.
  • key screenshots representing the stored screen data may be generated in response to trigger events, and thumbnails generated from the key screenshots may then be used to aid navigation through the stored content.
  • the viewer may annotate the key screenshots with notes, and a summary of the meeting may be generated using the key screenshots and/or annotations.
  • embodiments of the invention feature a method for facilitating navigation of previously presented screen data in an ongoing online meeting.
  • the method includes storing screen data representing a previously presented portion of an ongoing online meeting, capturing (on either a server or viewer computing device and in response to a trigger event) a screenshot of the screen data for the ongoing online meeting, and causing the display, on the viewer computing device while the meeting is still ongoing, of an image thumbnail generated from the screenshot.
  • the image thumbnail facilitates navigation, on the viewer computing device, of the previously presented portion of the ongoing online meeting.
  • embodiments of the invention feature a system for facilitating navigation of previously presented screen data in an ongoing online meeting.
  • the system includes a storage device for storing screen data representing a previously presented portion of an ongoing online meeting, an image processing module for capturing, in response to a trigger event, a screenshot of the screen data for the ongoing online meeting, and a display module for causing the display, on a viewer computing device while the meeting is still ongoing, of an image thumbnail generated from the screenshot.
  • the image thumbnail facilitates navigation, on the viewer computing device, of the previously presented portion of the ongoing online meeting.
  • embodiments of the invention feature an article of manufacture that includes computer-readable instructions thereon for facilitating navigation of previously presented screen data in an ongoing online meeting.
  • the article of manufacture includes instructions to store, in computer memory, screen data representing a previously presented portion of an ongoing online meeting, instructions to capture, in response to a trigger event, a screenshot of the screen data for the ongoing online meeting, and instructions to cause the display, on a viewer computing device while the meeting is still ongoing, of an image thumbnail generated from the screenshot. Yet again, the image thumbnail facilitates navigation, on the viewer computing device, of the previously presented portion of the ongoing online meeting.
  • each of the screenshot and the image thumbnail includes a timestamp that points to a point in time in the previously presented portion of the ongoing online meeting.
  • the screenshot and/or image thumbnail may be transmitted (e.g., by a synchronization module) to a plurality of viewer computing devices for display thereat.
  • the trigger event may result from the passage of a period of time.
  • the trigger event occurs when a number of changed pixels in the stored screen data increases past a threshold.
  • the trigger event may occur when the size of an accumulative bounding box encapsulating changes to the stored screen data increases past a threshold.
  • the screen data may be represented by a plurality of tiles, and the trigger event may occur when a number of tiles encapsulating changes to the stored screen data increases past a threshold.
  • the trigger event may also be an operating system event (e.g., a mouse click, a key press, a change in an active window, or a change in a title of an active window), or an application event (e.g., a slide transition or an opening of a new file).
  • an operating system event e.g., a mouse click, a key press, a change in an active window, or a change in a title of an active window
  • an application event e.g., a slide transition or an opening of a new file.
  • the capture of a second screenshot is suppressed if a second trigger event occurs too close in time to a first trigger event and/or if the screen data includes video data.
  • a trigger more appropriate for video data may be employed (e.g., a first trigger may be switched to a second, more appropriate, trigger).
  • both screen and audio data for a current point in time in the ongoing online meeting may be output at the viewer computing device.
  • various aspects of the systems and methods described herein relate to displaying a previously presented portion of an online meeting while the meeting is still ongoing (i.e., while the meeting is "live").
  • a viewer's screen displays live screen data for a current point in time (i.e., the live portion of the meeting), and, while being displayed, the live screen data is also stored for later use.
  • the viewer may specify an earlier point in time, and the viewer's screen may then display screen data from the earlier point in time.
  • a viewer may pause and rewind a live online meeting while the meeting is ongoing.
  • key screenshots representing the stored screen data may be generated in response to trigger events, and thumbnails generated from the key screenshots may then be used to aid navigation through the stored content.
  • the viewer may annotate the key screenshots with notes, and a summary of the meeting may be generated using the key screenshots and/or annotations.
  • embodiments of the invention feature a method for sharing, during an ongoing online meeting, an annotation.
  • the method includes receiving, at a server computing device from a first computing device, an annotation to a screenshot that represents a previously presented portion of an online meeting of which the first computing device is a participant.
  • the screenshot may have been captured in response to a trigger event during the online meeting and is representable as an image thumbnail.
  • a second computing device participating in the online meeting, but that has not received the annotation, is then identified, and the annotation is transmitted from the server computing device to the second computing device for display thereat during the ongoing online meeting.
  • embodiments of the invention feature a server computing device for sharing, during an ongoing online meeting, an annotation.
  • the server computing device includes a receiver, a synchronization module, and a transmitter.
  • the receiver receives, from a first computing device, an annotation to a screenshot that represents a previously presented portion of an online meeting of which the first computing device is a participant. Again, the screenshot may have been captured in response to a trigger event during the online meeting and is representable as an image thumbnail.
  • the synchronization module identifies a second computing device participating in the online meeting, but that has not received the annotation, while the transmitter transmits the annotation to the second computing device for display thereat during the ongoing online meeting.
  • embodiments of the invention feature an article of manufacture that includes computer-readable instructions thereon for sharing, during an ongoing online meeting, an annotation.
  • the article of manufacture includes instructions to receive, from a first computing device, an annotation to a screenshot that represents a previously presented portion of an online meeting of which the first computing device is a participant. Yet again, the screenshot may have been captured in response to a trigger event during the online meeting and is representable as an image thumbnail.
  • the article of manufacture also includes instructions to identify a second computing device participating in the online meeting, but that has not received the annotation, and instructions to transmit the annotation to the second computing device for display thereat during the ongoing online meeting.
  • a second annotation to the screenshot is received at the server computing device from the second computing device.
  • the second annotation may then be transmitted from the server computing device to the first computing device for display thereat during the ongoing online meeting.
  • an image processing module of the server computing device may capture a plurality of screenshots that each represent a previously presented portion of the online meeting and that each include a timestamp pointing to a point in time in the online meeting at which the screenshot was captured. The plurality of timestamps and/or screenshots may be transmitted to the first and second computing devices.
  • the first computing device may capture the plurality of screenshots, and the plurality of timestamps and/or screenshots may be transmitted thereby to the second computing device (e.g., either directly, or via the server computing device).
  • the plurality of timestamps and/or screenshots may be transmitted over a communication channel separate from the communication channel used to transmit the online meeting.
  • the plurality of timestamps and/or screenshots may be transmitted over a communication channel separate from the communication channel used to transmit the annotations.
  • various aspects of the systems and methods described herein relate to displaying a previously presented portion of an online meeting while the meeting is still ongoing (i.e., while the meeting is "live").
  • a viewer's screen displays live screen data for a current point in time (i.e., the live portion of the meeting), and, while being displayed, the live screen data is also stored for later use.
  • the viewer may specify an earlier point in time, and the viewer's screen may then display screen data from the earlier point in time.
  • a viewer may pause and rewind a live online meeting while the meeting is ongoing.
  • embodiments of the invention feature a method for generating (e.g., by a server or viewer computing device) a summary document of an online meeting.
  • the method includes storing, in computer memory, at least a portion of screen data representing a previously presented portion of an online meeting, capturing a plurality of screenshots in response to trigger events, and combining the plurality of screenshots to generate a summary document summarizing the online meeting.
  • Each screenshot may be based at least in part on the stored screen data and is representable as an image thumbnail.
  • embodiments of the invention feature a system for generating a summary document on an online meeting.
  • the system includes a storage device for storing at least a portion of screen data representing a previously presented portion of an online meeting, an image processing module for capturing a plurality of screenshots in response to trigger events, and a combining module for combining the plurality of screenshots to generate a summary document summarizing the online meeting.
  • each screenshot may be based at least in part on the stored screen data and is representable as an image thumbnail.
  • embodiments of the invention feature an article of manufacture that includes computer-readable instructions thereon for generating a summary document of an online meeting.
  • the article of manufacture includes instructions to store, in computer memory, at least a portion of screen data representing a previously presented portion of an online meeting, instructions to capture a plurality of screenshots in response to trigger events, and instructions to combine the plurality of screenshots to generate a summary document summarizing the online meeting.
  • each screenshot may be based at least in part on the stored screen data and is representable as an image thumbnail.
  • the summary document is transmitted to a viewer computing device attending the meeting.
  • An annotation may be received from the viewer computing device and may be added to the summary document.
  • the annotation may either be encrypted or unencrypted.
  • the screenshots may be encrypted or not.
  • FIG. 1 is a block diagram illustrating a system for displaying a previously presented portion of an ongoing online meeting in accordance with one embodiment of the invention
  • FIG. 2 is a block diagram illustrating a system for facilitating the display of a previously presented portion of an ongoing online meeting in accordance with one embodiment of the invention
  • FIG. 3 is a flowchart illustrating a method for displaying a previously presented portion of an ongoing online meeting in accordance with one embodiment of the invention
  • FIG. 4 is a flowchart illustrating a method for facilitating the display of a previously presented portion of an ongoing online meeting in accordance with one embodiment of the invention
  • FIG. 5 A is an exemplary screenshot of a user interface for viewing previously presented screen data during an ongoing online meeting in accordance with one embodiment of the invention
  • FIG. 5B is an exemplary screenshot of a user interface for viewing previously presented screen data during an ongoing online meeting in accordance with another embodiment of the invention.
  • FIG. 5 C is an exemplary screenshot of a user interface for viewing previously presented screen data during an ongoing online meeting in accordance with yet another embodiment of the invention.
  • FIG. 6 is a block diagram illustrating a system for distributing screen data in a bandwidth-adaptive manner in accordance with one embodiment of the invention.
  • FIG. 7 is a block diagram illustrating a system for facilitating navigation of previously presented screen data in an ongoing online meeting in accordance with one embodiment of the invention.
  • FIG. 8 is a flowchart illustrating a method for facilitating navigation of previously presented screen data in an ongoing online meeting in accordance with one embodiment of the invention.
  • FIG. 9 is a block diagram illustrating a system for sharing annotations during a live online meeting in accordance with one embodiment of the invention.
  • FIG. 10 is a flowchart illustrating a method for sharing annotations during a live online meeting in accordance with one embodiment of the invention.
  • FIG. 11 is a block diagram illustrating a system for generating a summary document of a live online meeting in accordance with one embodiment of the invention.
  • FIG. 12 is a flowchart illustrating a method for generating a summary document of a live online meeting in accordance with one embodiment of the invention.
  • FIG. 13 is an exemplary summary document of a live online meeting generated in accordance with one embodiment of the invention.
  • FIG. 1 illustrates one embodiment of a viewer computing device 100 for displaying, during an ongoing online meeting, a previously presented portion of the meeting.
  • the viewer 100 may be connected to a network 102, such as the Internet or a local- or wide-area network, to which a presenter computing device 104 may also be connected.
  • a network 102 such as the Internet or a local- or wide-area network, to which a presenter computing device 104 may also be connected.
  • Other devices connected to the network 102 may include a server 106 and an audio bridge
  • Additional viewers 100 may also be connected to the network 102.
  • the one or more viewers 100 and the presenter 104 may be collectively referred to as meeting attendees.
  • the presenter 104 presents a live online meeting to the one or more viewers 100.
  • Each viewer 100 views a latest state of a screen of the presenter 104 as it is received from the presenter 104.
  • the server 106 receives the screen updates from the presenter 104 and distributes them to the one or more viewers 100.
  • the presenter 104 and/or server 106 may distribute the screen updates to the viewers 100 in a bandwidth-adaptive manner, as described in greater detail below, to account for differences in the network bandwidth linking each viewer 100.
  • the live screen data viewed at a first viewer 100 may be slightly different than the live screen data viewed at a second viewer 100, especially if the first and second viewers 100 have different network connection speeds. Even if a viewer 100 has a slow connection, however, the screen data it views is still considered live because it continually updates its state to synchronize with a live state of a presenter's screen, even if it is updated less frequently than a viewer 100 having a faster connection.
  • An audio feed may also be distributed from the presenter 104 to accompany the screen updates distributed therefrom.
  • the audio feed may be distributed over a public switched-telephone network ("PSTN"), using a voice-over-internet protocol (“VoIP”), or by using a mixture of the two.
  • PSTN public switched-telephone network
  • VoIP voice-over-internet protocol
  • the audio bridge 108 may be used to mix PSTN voice data from the presenter 104 and/or viewers 100 and to distribute the mixed voice data to the presenter 104 and/or viewers 100.
  • VoIP voice data may be mixed by the server 106 and/or viewers 100.
  • Both the viewer computing devices 100 and the presenter computing device 104 may be any type of personal computer, Windows-based terminal, network computer, wireless device, information appliance, workstation, mini computer, main frame computer, personal digital assistant, handheld device, or other computing device that is capable of both presenting information/data to, and receiving commands from, a user thereof.
  • each of the viewer computing devices 100 and the presenter computing device 104 may include a visual display device (e.g., a computer monitor), a data entry device (e.g., a keyboard), persistent and/or volatile storage (e.g., computer memory), a processor, and a mouse.
  • each of the viewer computing devices 100 and the presenter computing device 104 includes a web browser, such as, for example, the INTERNET EXPLORER program developed by Microsoft Corporation of Redmond, Washington, to connect to the World Wide Web.
  • the server 106 may be any computing device capable of receiving information/data from and delivering information/data to (e.g., over the network 102) the viewer computing devices 100, the presenter computing device 104, and/or the audio bridge 108.
  • the audio bridge 108 may also be any computing device having the functionality described herein.
  • the server 106 and audio bridge 108 may each include computer memory for storing computer-readable instructions, and a central processing unit for executing such instructions.
  • the viewer computing devices 100, the presenter computing device 104, the server 106, and the audio bridge 108 may be connected to the network 102 through a variety of connections including, but not limited to, standard telephone lines, LAN or WAN links (e.g., Tl, T3, 56 kb, X.25), broadband connections (e.g., ISDN, Frame Relay, ATM), or wireless connections.
  • the connections moreover, may be established using a variety of
  • communication protocols e.g., HTTP, TCP/IP, IPX, SPX, NetBIOS, NetBEUI, SMB, Ethernet, ARCNET, Fiber Distributed Data Interface (FDDI), RS232, IEEE 802.11, IEEE 802.1 la, IEEE 802.1 lb, IEEE 802.1 lg, and direct asynchronous connections).
  • FDDI Fiber Distributed Data Interface
  • the viewer 100 may include a display module 110, a selection module 112, computer memory 114, and a synchronization module 116.
  • the display module 110 may cause the display of live screen data received from the presenter 104 as well as the display of stored screen data previously received from the presenter 104.
  • the live and/or stored screen data may be displayed on a computer monitor, a notebook/netbook screen, the screen of a handheld device such as a smartphone or personal digital assistant, or any other screen capable of displaying visual information.
  • the selection module 112 receives, from a user of the viewer computing device 100, a selection representing a point in time earlier than a current point in time in the live online meeting.
  • the selection may be made using any kind of user input device, such as, for example, a keyboard, a mouse, a stylus, a touchscreen, or voice-to-text input.
  • the selection module 112 may then instruct the display module 110 to display, while the online meeting is still ongoing, the portion of the online meeting corresponding to the selected time, as described in greater detail below.
  • the computer memory 114 may store at least a portion of the live screen data received from the presenter 104 and/or audio data associated therewith.
  • the computer memory 114 (as well as any other memory or storage device described herein) may be any kind of commonly available computer memory, such as static random-access memory (“SRAM”) or dynamic random-access memory (“DRAM”).
  • SRAM static random-access memory
  • DRAM dynamic random-access memory
  • the synchronization module 116 may synchronize playback of the stored audio data with the display of the stored screen data, as described further below.
  • modules 116 may be implemented as any software program and/or hardware device, for example an application specific integrated circuit (ASIC) or a field programmable gate array (FPGA), that is capable of providing the functionality described herein.
  • ASIC application specific integrated circuit
  • FPGA field programmable gate array
  • the modules illustrated in the various figures and their organization are conceptual, rather than explicit, requirements.
  • two or more of the modules 110, 112, 116 may be combined into a single module, such that the functions described herein as being performed by the distinct modules 110, 112, 116 are in fact performed by the single module.
  • any single one of the modules described herein may be implemented as multiple modules, such that the functions described herein as being performed by the single module are in fact performed by the multiple modules.
  • FIG. 1 is a simplified illustration of the system and that it is depicted as such to facilitate the explanation of the present invention.
  • the depiction of the system in FIG. 1 is non-limiting.
  • the system may be modified in of a variety of manners without departing from the spirit and scope of the invention.
  • FIG. 2 illustrates, in an alternative embodiment, a server computing device 200 for facilitating the display, during an ongoing online meeting, of a previously presented portion of the meeting.
  • the server 200 may be connected to a presenter computing device 204, one or more viewer computing devices 206, and/or an audio bridge 208 via a network 202.
  • the presenter 204 hosts an online meeting and sends live screen data to the server 200, which stores the live screen data and/or audio data associated therewith in computer memory 214.
  • a selection module 212 receives, from a user of one of the viewer computing devices 206, a selection of a point in time earlier than a current point in time of the live online meeting and instructs a transceiver 210 to transmit the stored screen data corresponding to the earlier point in time to the viewer 206.
  • the transceiver 210 may further transmit to the viewer 206 stored audio data corresponding to the earlier point in time.
  • the synchronization module 116 may synchronize the stored audio data with the stored screen data prior to their transmission, as described further below.
  • the transceiver 210 illustrated in FIG. 2 may be implemented as any hardware device, or software module with a hardware interface, that is capable of receiving and transmitting communications, including requests, responses, and commands, such as, for example, inter-processor communications and networked communications.
  • the functions performed thereby may in fact be performed by a separate receiver and transmitter (not shown). Again, such a receiver and transmitter (as well as any other receiver or transmitter described herein) may be implemented as any hardware device, or software module with a hardware interface.
  • FIG. 3 illustrates a method 300 for displaying, during an ongoing online meeting, a previously presented portion of the meeting.
  • the method 300 may be employed where the previously presented portion of the meeting is stored on a viewer computing device 100, as is represented, for example, in FIG. 1.
  • live screen data is displayed at the viewer computing device 100 for a current point in time for the ongoing online meeting (Step 302). While the meeting is ongoing, at least a portion of the live screen data is stored in the computer memory 114 (Step 304). A selection of a point in time earlier than the current point in time is then received at the viewer computing device 100 (Step 306). The stored screen data from the earlier point in time may then be displayed on the viewer computing device 100 while the meeting is still ongoing (Step 308).
  • the viewer computing device 100 receives live screen data from the presenter computing device 104, and its display module 110 causes the display of the live screen data (e.g., on a screen) to a user of the viewer computing device 100.
  • each device 100, 104 may be running one or more software applications to facilitate communication with the network 102, such as a collaboration program for identifying, authenticating, and joining an online meeting.
  • the collaboration program may be a local application or a web-based interface, and the live screen data may thus be displayed in an application window or in a full-screen mode at the viewer computing device 100.
  • the viewer computing device 100 receives the live screen data for the current point in time of the online meeting, the viewer computing device 100 also stores at least a portion of that live screen data in the computer memory 114 (Step 304).
  • the live screen data may be received as a data stream and displayed on a screen of the viewer 100 as it arrives. Instead of discarding the live screen data after it has been displayed and viewed, however, the live screen data is retained in the computer memory 114.
  • the live screen data is stored in the computer memory 114 before image decompression and display (i.e., the live screen data is stored in a compressed format). If the computer memory
  • the live screen data may be additionally stored on other media, such as a hard disk drive or non- volatile memory such as flash memory. Regardless of how and/or where the live screen data is stored, however, it is accessible for later retrieval.
  • the stored screen data may be cataloged according to its time or order of display to simplify retrieval thereof.
  • a user may select a point in time earlier than a current point in time of the online meeting and request retrieval and playback of the stored screen data corresponding to that earlier point in time (Step 306).
  • a variety of input mechanisms may be used to aid the user in selecting the earlier point in time.
  • a user interface of the viewer computing device 100 may provide play, pause, rewind, and/or fast forward controls to the user, and the user may select an earlier point in time by, for example, selecting the rewind control until the desired point in time is reached.
  • the user interface may provide a time -index slider bar that allows the user to click and drag a slider control to specify an earlier point in time.
  • a user may also enter an exact time into a dialog box and specify the earlier time directly.
  • other mechanisms such as image thumbnails of the stored screen data, may be available to aid the user in making the selection.
  • the stored screen data corresponding to the selection is displayed to the user (Step 308).
  • the display of the stored screen data replaces the display of the live screen data.
  • the display of the live screen data in a window may be interrupted to display therein the stored screen data from the earlier point in time.
  • the stored screen data is displayed in a second, separate window while the display of the live screen data continues in a first window.
  • the stored screen data may be displayed as an inset or picture-in-picture within the display of the live screen data, and a control may be provided to swap the stored and live screen data between the main and inset displays.
  • any other method for displaying multiple application windows, or multiple windows within one application are within the scope of the current invention.
  • FIG. 4 illustrates a method 400 for facilitating the display, during an ongoing online meeting, of a previously presented portion of the meeting.
  • the method 400 may be employed where the ongoing online meeting is hosted by a presenter computing device
  • live screen data for a current point in time of the online meeting is received at the server computing device 200 from the presenter 204 (Step 402).
  • the live screen data is then transmitted from the server computing device 200 to one or more viewer computing devices 206 for display thereat (Step 404).
  • At least a portion of the live screen data is stored on the server computing device 200 while the meeting is ongoing (Step 406).
  • a selection of a point in time earlier than the current point in time is received, for example from a user of one of the viewer computing devices 206, at the server computing device 200 (Step 408).
  • Stored screen data from the earlier point in time may then be transmitted from the server computing device 200 to the viewer computing device 206 for display thereat while the meeting is still ongoing.
  • screen data for an online meeting hosted by the presenter computing device 204 is sent to the server computing device 200 at Step 402.
  • the presenter 204 may host the meeting by creating, editing, and storing a presentation in secure local storage and then transmitting its screen content (which represents a portion of the presentation) to one or more viewer computing devices 206, via the server 200, only at the time of the presentation.
  • the presenter 204 may retain full control over the content of the presentation, which may be especially important when the viewers 206 represent unknown or unsecure devices.
  • the server 200 transmits the live screen data received from the presenter 204 to the viewer(s) 206 at Step 404.
  • the live screen data may be transmitted to the viewer(s) 206 in a bandwidth-adaptive manner.
  • the server 200 also stores at least a portion of the live screen data in its computer memory 214 (Step 406). As explained above, other storage devices may additionally be used to store the live screen data. Eventually, the server 200 receives a selection of a point in time earlier than a current point in time of the ongoing online meeting from, for example, a viewer computing device 206 (Step 408), and transmits stored screen data from the earlier point in time to the viewer computing device 206 in response (Step 410).
  • a user of the viewer computing device 206 may make the selection by, for example, rewinding to, forwarding to, and/or seeking the stored screen data through a user interface presented at the viewer computing device 206, by selecting an image thumbnail representing the stored screen data, or by any other method described herein.
  • the stored screen data from the earlier point in time may be displayed at the viewer computing device 206 as the live online meeting is still ongoing, as described above.
  • Storing the screen data on the server 200 has certain advantages. For example, a single saved copy of the stored screen data may be distributed, upon request, to each viewer 206, insuring that each viewer 206 has access to the same stored data. A viewer 206 may then be assured that fellow viewers 206 experience the same screen data when the viewers 206 select the same, previous point in time.
  • the presenter 204 has control over the screen data stored on the server 200 and limits its use by the viewers 206, which may be important if the screen data contains, for example, copyrighted or trade secret material.
  • a viewer 206 may be a low-power or handheld device and may not be capable of storing screen data; these types of viewers 200 benefit from moving the storing function upstream to the server 200.
  • Storing the screen data on each viewer offers advantages as well.
  • the server 106 and/or the network 102 connected thereto may not be capable of handling the load presented by transmitting both live screen data and stored screen data.
  • the server 106 and/or the network 102 connected thereto may not be capable of handling the load presented by transmitting both live screen data and stored screen data.
  • no additional network traffic is generated when a viewer 100 selects an earlier point in time for viewing.
  • a server 106 may not be required to conduct the live online meeting.
  • a viewer 100, 206 may view the live screen data and may also select an earlier point in time in the meeting (by, e.g., rewinding the meeting) to view a missed portion of the meeting. If the screen data is stored on a server 200, as described with reference to FIGS. 2 and 4, a viewer 206 may send a request to the server 200 for the screen data at a point in time corresponding to the missed portion. If, on the other hand, the screen data is stored on the viewers 100, as described with reference to FIGS.
  • the late- joining viewer 100 may not have immediate access to the missed portion of the meeting because the late -joining viewer 100 was not previously present in the meeting to store the previous screen data.
  • the synchronization module 116 may send a request to a fellow viewer 100 for the missing screen data.
  • the late-joining viewer 100 upon joining the meeting, automatically detects other viewers 100 and automatically requests that the missing screen data be sent therefrom. Once received, the missing screen data is stored, although not necessarily immediately displayed, on the late -joining viewer 100 (e.g., the missing screen data may only be displayed when the late-joining viewer 100 later selects a point in time falling within the time period represented by the missing screen data).
  • the late -joining viewer 100 sends a request for missing screen data only when a user selects a point in time that falls within the time period represented by the missing screen data. Either the late -joining viewer 100 or the other viewers 100 may disable synchronization for security or bandwidth concerns. In another embodiment, the late-joining viewer 100 receives the missing screen data from the presenter 104.
  • Navigation through the stored screen data may be done locally (e.g., a viewer 100, 206 views stored screen data only on its own screen) or globally (e.g., a viewer 100, 206 may cause the stored screen data to be viewed on one or more other viewers 100, 206 as well as itself).
  • an attendee may seek back through previously viewed screen data to find a particular point in the online meeting and view the screen data at that point.
  • an attendee (either a viewer 100, 206 or the presenter 104, 204 for example) may wish to present previously viewed screen data to a plurality of other attendees in order to, for example, ask a question or clarify a point regarding the previously viewed screen data.
  • the attendee may cause the group of other attendees to view the same previously viewed screen data with the use of a single navigation control.
  • a viewer 100, 206 may send a command to other viewers 100, 206 and/or the presenter 104, 204 in accordance with a selection of previously viewed screen data, and the recipients of the command may seek to a point in the previously viewed screen data in accordance with the selection.
  • live audio data may be sent over a PSTN network or via a VoIP protocol.
  • live audio data is sent from the presenter 104, 204 to the viewers 100, 206 along with the live screen data.
  • the viewers 100, 206 may also generate live audio data when they, for example, ask questions or give feedback to the presenter 104, 204.
  • PSTN data may be captured by the audio bridge 108, 208 and stored thereon and/or transmitted therethrough.
  • the audio bridge 108, 208 may perform mixing, echo cancellation, filtering, compression, or other audio processing functions to create mixed audio data combining audio data from each attendee.
  • the audio bridge 108, 208 removes an attendee's own audio data from the mixed audio data heard by that attendee.
  • a viewer 100, 206 detects the playback of the stored audio data and cancels it from being sent back out on a microphone connected to the viewer 100, 206, if such a microphone is active.
  • the audio bridge 108, 208 may be a discrete device or part of the server 106, 200, presenter 104, 204, and/or viewer 100, 206, or any other computing device capable of performing audio functions.
  • Audio data may also be sent via a VoIP protocol exclusively or in addition to audio data sent over the PSTN network.
  • audio mixing is performed with or without an audio bridge 108, 208.
  • each attendee may receive VoIP audio streams from each other attendee and perform mixing and echo cancellation (and/or other audio functions) locally.
  • a mixed audio stream may be stored locally by each attendee, on the audio bridge 108, 208, and/or on a server 106, 200.
  • a late-joining attendee may synchronize missed audio data with another non-late- joining device, such as the presenter 104, 204, the audio bridge 108, 208, the server 106, 200, and/or a viewer 100, 206.
  • the screen and audio data may be played back simultaneously, in sync, on a viewer 100, 206 or presenter 104, 204.
  • the live audio data is reduced in volume or muted when the stored audio data is played back; alternatively or in addition, the user may manually select the volume levels of each type of audio data.
  • the stored audio data is not played back at all. Rather, the live audio from the ongoing online meeting is played while stored screen data from the earlier point in time is displayed.
  • the navigation of audio data (or combined audio and video data) may be temporarily or permanently controlled by a single attendee for a plurality of other attendees.
  • FIG. 5A depicts an exemplary embodiment of a computer interface 500 for a live online meeting.
  • a viewing window 502 may display live screen data, stored screen data, or a combination of the two.
  • a navigation bar 504 allows a viewer 100, 206 (or a presenter 104,
  • a play/pause button 506 allows the user to play or pause the playback of the live or stored content.
  • a multi-layer scroll bar 508 shows the user the current live point 510 in the ongoing meeting and allows the user to scroll back to an earlier point in time 512 to playback the screen data previously presented at that point in time 512.
  • a button 514 allows the user, if currently viewing stored content in the viewing window 502, to again view live content in the viewing window 502. In other words, selecting (e.g., clicking on) the button 514 causes the viewing window 502 to display live content.
  • a video display mode control 516 may allow a user to view the presentation at the actual size of presentation (i.e., 1 : 1 scaling) or, alternatively, scaled to fit the current size of the viewing window 502 by scaling the size of the presentation up or down.
  • An exit button 518 permits the user to leave the meeting, and a chat window 520 allows a user to send text-based messages to some or all of the other attendees of the meeting.
  • An audio control window 522 allows the user to select between using a telephone (i.e., a PSTN connection) or a microphone and speakers (i.e., a VoIP connection), as well as to select an audio codec/hardware and to set speaker and microphone levels.
  • FIG. 5B depicts another exemplary embodiment of the computer interface 500 for the live online meeting.
  • the embodiment depicted in FIG. 5B also includes a second viewing window 524 and a set of image thumbnails 526 of key screenshots generated at earlier points in time of the ongoing online meeting.
  • the capture of the key screenshots and the generation of image thumbnails therefrom is further discussed below.
  • the first viewing window 502 displays stored screen data from an earlier point in time (i.e., screen data previously presented during the online meeting), while the second, picture-in-picture viewing window 524 displays live screen data for the ongoing online meeting.
  • the live screen data may instead be displayed in the first viewing window 502 and the stored screen data displayed in the second, picture- in-picture viewing window 524.
  • a user interface e.g., a button, a pull-down menu, etc. may also be provided to swap the contents displayed in each viewing window 502, 524.
  • a second scroll bar 528 may be associated with the set of image thumbnails 526.
  • a user may navigate through the set of image thumbnails 526.
  • the set of image thumbnails 526 may instead be displayed in other manners, including in a transparent pop-up window.
  • selecting (e.g., clicking or double clicking on) an image thumbnail 526 causes the key screenshot from which it was generated to appear in one of the viewing windows 502, 504.
  • the key screenshot appears in the first viewing window 502.
  • Data from the earlier point in time represented by that key screenshot may then be played back during the ongoing online meeting in a variety of manners.
  • the first viewing window 502 may playback therein a smooth, continuous data stream of the earlier stored screen data beginning from the point in time represented by the key screenshot / image thumbnail selected.
  • the set of key screenshots (generated as described below) may be automatically stepped through in the first viewing window 502 beginning from the key screenshot / image thumbnail selected, thereby increasing the speed at which the user moves through the previously stored screen data.
  • the playback of the previously stored screen data in the first viewing window 502 may occur while the online meeting is still ongoing and, for example, while live screen data continues to be displayed in the second, picture-in-picture viewing window 524.
  • live audio data may also continue to be output from the viewer computing device 100, 206 while the user reviews the earlier portions of the online meeting in the first viewing window 502.
  • the key screenshot may be marked with an annotation 530 (e.g., a text-based comment).
  • an input box 532 may be provided to facilitate entry of an annotation 530.
  • its associated image thumbnail 526 may be flagged (e.g., marked with a symbol) to indicate that an annotation 530 has been made.
  • each annotation 530 made to a key screenshot may be displayed during the playback of that key screenshot (e.g., with the key screenshot when the first viewing window 502 steps through the key screenshots, or for an appropriate period of time (e.g., 3 to 5 seconds) spanning the point in time represented by the key screenshot when the first viewing window 502 plays back a smooth, continuous data stream of the earlier stored screen data).
  • an appropriate period of time e.g., 3 to 5 seconds
  • FIG. 6 depicts, in one embodiment, a system 600 for distributing screen data from a presenter 602 to viewers 604a, 604b (collectively, 604) in a bandwidth-adaptive manner.
  • the system 600 includes a communications service 606 with which the presenter 602 and the viewers 604 communicate.
  • the communications service 606 may be provided as part of the presenter 602, the audio bridge 108, 208, the server 106, 200, and/or a viewer 604.
  • the presenter 602 codes the current state of a dynamic data set, such as screen data, as a set of data packets.
  • a dynamic data set such as screen data
  • this coding process is straightforward.
  • data packets may be coded by storing pixel values for a predetermined portion of the screen in the data packet.
  • the presenter 602 compresses and/or encrypts the data stored in the data packets.
  • the presenter 602 updates the set of data packets comprising the current state of the data set.
  • the presenter 602 transmits the current state of the dynamic data set to the communications service 606 in a bandwidth-adaptive manner.
  • the presenter 602 possesses a transmission token before beginning transmission of the current state of the data set.
  • the presenter 602 and the communications service 606 exchange a limited number of transmission tokens, e.g., five.
  • the communication service 606 transmits a message to the presenter 602 to notify the presenter 602 when it may send another data set update.
  • the communications service 606 may also include a data storage element 608, such as random-access memory, a disk drive, a disk array, a rewriteable optical drive, or some other form of memory element that allows access to stored data.
  • the storage element 608 enables the communications service 606 to store metadata information and data packets received from the presenter 602 in between update requests from various viewers 604.
  • the storage element 608 may be used to maintain a historical record of metadata information and data packets transmitted from the presenter 602.
  • the storage element 608 may also store the data packets transmitted to a respective viewer 604.
  • the presenter 602 creates metadata information that identifies each of the data packets representing the current state of the dynamic data set. In the embodiment shown in
  • the metadata information comprises metadata packets 610, 618, 624.
  • Metadata packet 610 is created at time ti and indicates that the state of the dynamic data set at time ti is represented by data packet 0, data packet 1, and data packet 2.
  • metadata packet 618 indicates that state of the dynamic data set at time t 2 is represented by data packet 0, data packet 3, and data packet 4.
  • metadata information is included in the data packets.
  • each data packet comprising a data set update may include a "metadata information header" identifying the update set with which the data packet is associated.
  • the presenter 602 transmits metadata information 610 to the communications service 606 followed by the data packets identified by the metadata information 610, namely, data packet 0 612, data packet 1 614, and data packet 2 616.
  • the presenter 602 transmits metadata packet 618, which indicates that the state of the data set at time t 2 is represented by data packet 0, data packet 3, and data packet 4.
  • the presenter 602 then transmits data packet 3 620 and data packet 4 622 to the communications service 606 but does not retransmit data packet 0 because that data packet was already transmitted in connection with the first metadata packet 610.
  • the presenter 602 transmits a metadata packet 624 that indicates the current state of the dynamic data set is represented by data packet 0, data packet 4, and data packet 5. Because the presenter 602 already transmitted data packets 0 and 4, only data packet 5 626 is transmitted following the third metadata packet 624.
  • the viewer 604a communicates with the communications service 606 via a high-bandwidth connection.
  • the viewer 604a requests data set updates frequently enough that the communication service 606 transmits to the viewer 604a a stream of metadata information and data packets identical to the stream of metadata information and packets received by the communications service 606 from the presenter 602.
  • the viewer 604b communicates with the communications service 606 via a low-bandwidth connection, and requests data set updates less frequently. Therefore, the viewer 604b receives a different stream of metadata packets and data packets from the communications service 606 than the communications service 606 receives from the presenter 602.
  • the communications service 606 transmits the first metadata packet 610 and data packets 0 612, 1 614, 2 616 to the viewer 604b.
  • the next metadata packet received by the viewer 604b is the third metadata packet 624, which indicates that the state of the dynamic data set is represented by data packet 0, data packet 4, and data packet 5. Because the viewer 604b has not yet received data packets 4 and 5, the communications service 606 transmits those data packets to the viewer 604b.
  • FIG. 6 also depicts the packet stream sent to a viewer node that joins late, as described above.
  • a late-joining viewer that joins at time t 3 receives the third metadata packet 624 as well as all the data packets identified by the third metadata packet 624.
  • the data packets transmitted to the viewers 604a, 604b by the communications service 606 may be retrieved from the storage element 608, may have been recently received from the presenter 602, or some combination of the two.
  • a user may navigate through previously presented screen data of a live online meeting in order to select a point in time within the previously presented screen data at which to begin playback during the live online meeting.
  • the user employs a scrollbar or a slider button, such as the scroll bar 508 described above with reference to FIG. 5A, to select the point in time.
  • image thumbnails 526 of the stored screen data are provided to the user, so that the user may select (e.g., by clicking or double clicking on) an image thumbnail 526 corresponding to a previous point in time and view the screen data associated therewith, as described above with reference to FIGS. 5B and 5C.
  • the thumbnails 526 may have a timestamp associated therewith.
  • the timestamp points to a point in time in the previously presented portion of the ongoing online meeting. In such a fashion, navigation of the previously presented screen data is facilitated, as the selection of an image thumbnail 526 corresponds to a selection of a particular point in time in the previously presented portion of the ongoing online meeting at which to begin viewing the previously presented screen data.
  • FIG. 7 illustrates an exemplary system 700 for facilitating navigation of previously presented screen data in an ongoing online meeting.
  • the system 700 may be present, for example, on the viewer computing devices 100, 206, on the presenter computing device 104, 204, and/or on the server computing device 106, 200.
  • an image processing module 702 of the system 700 captures, in response to a trigger event, a screenshot of the screen data for the ongoing online meeting.
  • Scaled-down versions of the screenshots e.g., image thumbnails 526) may then be generated by the image processing module 702, and a display module 704 may cause the display of the image thumbnails 526 while the meeting is still ongoing (i.e., while live screen and/or audio data is still being presented).
  • a storage device 706 stores the previously presented screen data, while a synchronization module 708 may be employed to transmit the image thumbnails 526 and/or the screenshots (or, as further described below, simply their timestamps) to a plurality of the viewer computing devices 100, 206.
  • FIG. 8 illustrates one embodiment of a method 800 for facilitating navigation of previously presented screen data in an ongoing online meeting by using, for example, the system 700 depicted in FIG. 7.
  • a portion of screen data representing a previously presented portion of an ongoing online meeting is stored in the storage device 706 (Step 802).
  • a screenshot of the screen data for the ongoing online meeting is captured by the image processing module 702 in response to a trigger event (Step 804).
  • the display module 704 may then cause an image thumbnail 526 generated from the screenshot to be displayed on a viewer computing device 100, 206 (Step 806) while the meeting is still ongoing (i.e., while live screen and/or audio data is still being presented).
  • the display module 704 may simply display the generated image thumbnail 526 thereat.
  • the display module 704 may instruct the synchronization module 708 to transmit the screenshot to one or more viewer computing devices 100, 206, together with instructions to display an associated image thumbnail 526 thereat.
  • the display module 704 may instruct the synchronization module 708 to transmit the image thumbnail 526 (with or without its associated screenshot) to one or more viewer computing devices 100, 206, together with instructions to display the image thumbnail 526 thereat.
  • the image thumbnail 526 facilitates navigation on the viewer computing device 100, 206 of the previously presented portion of the online meeting while the meeting is still ongoing.
  • the image thumbnail 526 is a scaled- down-in-size version the presenter's screen data at a particular point in time.
  • the image thumbnail 526 may be small in size (e.g., 50x50 pixels), large (e.g., 300x300 pixels), or any other appropriate size. Any suitable image format or compression type may be used (e.g., BMP, JPG, PNG, or GIF).
  • the quality of the image thumbnails 526 may be tuned for less processing time (i.e., for lower-quality thumbnails 526) or more processing time (i.e., for higher-quality thumbnails 526).
  • the screenshot, from which the image thumbnail 526 is generated, is taken when a trigger event occurs.
  • the trigger event occurs at regular time intervals (e.g., periodically, after the passage of a pre-determined period of time).
  • the trigger event occurs when a difference between the stored screen data and the live screen data increases past a threshold.
  • the pixels in the last screenshot captured may be compared to the pixels in the live screen data, and if the number of pixels that are different increase past a threshold (e.g., 5%, 10%, or 25% differing pixels), a trigger event occurs and a new screenshot is captured.
  • This new screenshot may compared to the live screen data to determine when the next trigger event occurs.
  • each of the last screenshot and the live screen data is represented by an arrangement (e.g., array) of tiles, and a trigger event occurs when a number of tiles that include a pixel in the last screenshot that is different from a corresponding pixel in the live screen data increases past a threshold (e.g., 5%, 10%, 25%, or 50% of the tiles).
  • a first screenshot is automatically generated at the beginning of the presentation. This screenshot may serve as the first basis of comparison for trigger events that rely on, in part, detecting a change in live screen data versus a stored screenshot.
  • the trigger event may also be an operating system event, such as a mouse click, a key press, a change in an active window, or a change in the title of an active window.
  • the trigger event is an application event, such as a slide transition or an opening of a new file.
  • the presenter 104, 204 may also include a user interface for manually causing a trigger event.
  • a new trigger event may be automatically generated. If the new trigger event produces a new screenshot substantially similar to the last screenshot, the new screenshot may be stamped with a distinguishing feature (e.g., a numeral "II" or the time index of its capture in the online presentation) to aid in distinguishing the screenshots.
  • a distinguishing feature e.g., a numeral "II" or the time index of its capture in the online presentation
  • trigger events may occur too quickly, causing extra processing resources to be consumed to capture the screenshots and generate the thumbnails 526 therefrom, causing increased network traffic to distribute the screenshots and/or thumbnails 526, and making navigation through the resulting large set of thumbnails 526 more difficult.
  • the image processing module 702 suppresses the second trigger event and no screenshot is captured or thumbnail 526 generated.
  • a suppressed trigger event may automatically capture a screenshot and generate a thumbnail after a suitable delay (e.g., 30, 60, or 90 seconds). Trigger events may also be suppressed when, for example, the live presentation contains video or animation, causing the screen to change frequently.
  • any pixel changes associated therewith are ignored for the purposes of computing a trigger event.
  • the image processing module 702 switches from using a first trigger (e.g., the number of pixels that have changed increasing past a threshold) to using a second trigger (e.g., one based on the passage of time).
  • trigger events may take any form, depending upon the particular application.
  • further exemplary trigger events include, but are not limited to: beginning execution of a new program; terminating a program; observing a change in the behavior of an executing program, a change in the state of an executing program, a change of foreground application, or a change of application focus; a program transitioning to or from execution in a full-screen mode; the creation, display, change, or destruction of a user interface element; and opening, closing, or changing an existing file.
  • the set of screenshots that are generated in response to the trigger events may be compiled by the image processing module 702 into a meeting digest (e.g., a list of key screenshots). Moreover, as previously explained, the image processing module 702 may associate a timestamp with each of the key screenshots and the thumbnails 526 generated therefrom in order to facilitate navigation of the previously presented screen data.
  • the live presentation contains slides, and a trigger event occurs when a new slide is presented.
  • each resulting thumbnail 526 may correspond to a different slide in the presentation, and a user may easily navigate through the presentation by navigating through the slide thumbnails 526.
  • thumbnail 526 may be generated for that slide (with a unique identifier possibly being stamped on each thumbnail 526) so that a user may navigate within the audio data associated for that slide.
  • navigating the stored screen data by selecting a generated thumbnail 526 may cause the playback of the associated stored screen data as well as the associated audio data.
  • a viewer computing device such as the viewers 100, 206 described above, generates its own key screenshots and thumbnails 526.
  • a viewer computing device such as the viewers 100, 206 described above, generates its own key screenshots and thumbnails 526.
  • the key screenshots and thumbnails 526 are generated by a presenter 104, 204, a server 106, 200, and/or another viewer 100, 206. Because each viewer may receive a different set of screen updates, as explained above with reference to the bandwidth-adaptive distribution of screen updates shown in FIG. 6, each viewer may generate a set of key screenshots and thumbnails 526 different from each other viewer (and from the presenter).
  • the attendee that received the most frequent updates determines the set of key screenshots and thumbnails 526 to be used by all attendees (i.e., a canonical set of key screenshots and thumbnails 526), and the canonical set of key screenshots and/or thumbnails 526 are distributed to the rest of the attendees.
  • the synchronization module 708 analyzes screenshots or thumbnails 526 generated by a plurality of attendees and merges them into a set of canonical screenshots or thumbnails 526 for distribution. For example, if two screenshots generated by different attendees differ in time by only a few seconds, the synchronization module 708 may chose one screenshot and discard the other. If there is a large gap in time between two screenshots generated by a single attendee, however, the synchronization module 708 may insert a third screenshot, generated by another attendee, between the screenshots in creating the canonical set of screenshots.
  • a canonical set of screenshots and/or thumbnails 526 is distributed, it may be done at regular intervals throughout the meeting, at the end of the meeting, or whenever an identified attendee (e.g., the presenter) captures a new screenshot and/or generates a new thumbnail 526 (or otherwise determines that an update is necessary).
  • an identified attendee e.g., the presenter
  • a screenshot and/or thumbnail 526 used by the controlling attendee is distributed to the controlled attendees along with the distributed navigational commands.
  • a late-joining attendee may receive some or all of the stored screen data representing the missed portion of the online meeting from the presenter, server, or another viewer.
  • the late-joining attendee may also receive screenshots and/or thumbnails 526 generated by another attendee or by the server corresponding to the stored screen data.
  • the stored screen data, and the screenshots and/or thumbnails 526 may come from the same source or from separate sources.
  • the late-joining attendee receives one or more canonical screenshots and/or thumbnails 526 from the server or a designated attendee; in another embodiment, the late-joining attendee receives non-canonical screenshots and/or thumbnails 526 from any attendee, and the non-canonical screenshots and/or thumbnails 526 are merged later (along with other attendees' screenshots and/or thumbnails 526).
  • FIG. 9 illustrates an exemplary system 900 for sharing an annotation to a key screenshot during an ongoing online meeting.
  • the system 900 is present on the server computing device 106, 200, although it may instead be present on, for example, a viewer computing device 100, 206 or the presenter computing device 104, 204.
  • the annotation to the key screenshot may be text, symbols, or figures drawn using a mouse or other pointing device, typewritten text or symbols, an image, or any other visual data.
  • the annotation may be added to white or free space in the key screenshot or may be drawn over objects appearing in the key screenshot.
  • the annotation is made in a different color, highlighting, shading, or transparency level than the objects appearing in the key screenshot.
  • the annotation is tagged with information identifying its author, time of creation, and/or time of last editing.
  • an annotation receiver 902 receives the annotation to the key screenshot, which represents a previously presented portion of the online meeting.
  • the annotation may be transmitted from a first computing device participating in the online meeting.
  • the annotation may be transmitted from a viewer computing device 100, 206 to the server 106, 200, or from a presenter computing device 104, 204 to the server 106, 200.
  • a synchronization module 904 may then identify a second computing device also participating in the online meeting that has not received the annotation, and an annotation transmitter 906 may transmit the annotation to the second computing device for display thereat during the ongoing online meeting.
  • the system 900 may also include an image processing module 908 for capturing a plurality of screenshots that each represent a previously presented portion of the online meeting and for generating image thumbnails therefrom, as described above.
  • the transmitter 906 may also transmit the plurality of screenshots and/or image thumbnails (or simply their timestamps) to the first and second computing devices.
  • FIG. 10 illustrates one embodiment of a method 1000 for sharing an annotation to a key screenshot during an ongoing online meeting by using, for example, the system 900 depicted in FIG. 9.
  • the method 1000 begins by receiving, at the server computing device 106, 200 from a first computing device participating in the online meeting, an annotation to a key screenshot representing a previously presented portion of the online meeting (Step 1002).
  • a second computing device participating in the online meeting but that has not received the annotation is then identified by the synchronization module 904 (Step 1004).
  • the annotation is then transmitted from the server computing device 106, 200 to the second computing device for display thereat during the ongoing online meeting (Step 1006).
  • attendees to the ongoing online meeting may share annotations to the key screenshots.
  • a first attendee may wish to make an annotation to a particular screenshot (corresponding to, e.g., a particular slide in a presentation).
  • the first attendee makes the annotation, and the annotation may be distributed by the server 106, 200 to some or all of the other attendees.
  • Another attendee may wish to augment or correct the annotation, in which case the updated annotation may be re-distributed by the server 106, 200 to the rest of the attendees (including the first attendee).
  • the other attendees may also choose to make annotations to other, unannotated screenshots, and these other annotations may also be distributed.
  • a user makes a private annotation to a screenshot.
  • the user may designate a particular annotation as private or may specify that all of the user's annotations are to be kept private.
  • the user may make private and public annotations to the same screenshot.
  • the private annotations may be designated by, for example, a different color or tag to distinguish them from public annotations.
  • the presenter or a designated viewer may specify that all annotations in a meeting are to remain private.
  • annotations may be shared between only a designated subgroup of attendees.
  • the annotation is made to a screenshot that has already been determined to be a meeting-wide, agreed-upon screenshot (i.e., a canonical screenshot, as described above).
  • an attendee receiving the annotation adds or merges the annotation to the attendee's copy of the screenshot.
  • each attendee may have a different set of screenshots and thumbnails 526 because, for example, different attendees received different screen data, as described above with reference to FIG. 6.
  • the screenshot associated with that annotation may, at that point, be synchronized across some or all attendees (by, for example, the synchronization module 904).
  • the unannotated screenshot may be replaced in favor of the annotated screenshot.
  • the annotations may be merged together and applied to one of the screenshots, and the other screenshot deleted.
  • the annotations and screenshots may be synchronized only at or near the end of the online meeting.
  • the system 900 may be present on the server 106, 200, the presenter 104, 204, or a viewer 100, 206. Alternatively, the system 900 may have its components divided among two or more of the server 106, 206, the presenter 104, 204, and/or the viewers 100, 206. In one embodiment, the system 900 stores the annotations for the attendees, and each new or edited annotation is reflected in the copy stored by the system 900. The system 900 may also generate and store the screenshots and/or image thumbnails 526 for the online presentation, as described above. [0101] The online meeting, screenshots and/or thumbnails 526 (or simply their associated timestamps), and annotations may be transmitted over different communications channels.
  • the bandwidth needs of transmitting the online meeting may be greater than the needs of the screenshots or annotations, so the online meeting may be transmitted over its own, more robust channel.
  • the screenshots and annotations may require comparatively less bandwidth, and so may be sent on lower-bandwidth channels.
  • the channels carrying the screenshots and annotations have low latency so that a captured screenshot or annotation thereto may be quickly distributed across attendees.
  • the channels carrying the screenshots and annotations may be encrypted for security purposes.
  • FIG. 11 illustrates an exemplary system 1100 for generating a summary document of an online meeting.
  • the system 1100 may be present, for example, on the viewer computing devices 100, 206, on the presenter computing device 104, 204, and/or on the server computing device 106, 200.
  • a storage device 1102 e.g., computer memory
  • An image processing module 1104 captures a plurality of key
  • a combining module 1106 generates a summary document summarizing the online meeting by combining the plurality of screenshots.
  • the system 1100 may further include a receiver 1110 for receiving an annotation from a computing device attending the meeting, and the combining module 1106 may further add the annotation to the summary document.
  • FIG. 12 illustrates one embodiment of a method 1200 for generating a summary document of an online meeting by using, for example, the system 1100 depicted in FIG. 11.
  • the method 1200 begins by storing at least a portion of screen data representing a previously presented portion of an online meeting in the storage device 1102 (Step 1202).
  • a plurality of key screenshots are captured by the image processing module 1104 in response to trigger events (Step 1204), as described above.
  • the plurality of screenshots are combined by the combining module 1106 to generate a summary document summarizing the online meeting (Step 1206).
  • the summary document is a single- or multi-page electronic document containing embedded images representing the key screenshots.
  • the summary document may be a MICROSOFT WORD document, an OPENOFFICE.ORG WRITER document, an ADOBE PDF, an HTML page, or any other available document format.
  • the summary document includes information about the date, time, and nature of the online meeting and a list of its attendees.
  • the summary document may also include information about the date and time of the creation of each screenshot and/or the elapsed time in the online presentation corresponding to the screenshot.
  • the summary document contains a link to a saved version of the online presentation; in another embodiment, the summary document contains a link for each screenshot corresponding to the screenshot' s location within the online presentation.
  • the summary document contains some or all of the annotations made during the online meeting.
  • the annotations may be displayed on the screenshots or, if the annotations are textual, they may be displayed under, over, or next to the screenshots as optical-character recognition text.
  • the summary document may indicate the author of each annotation.
  • FIG. 13 depicts one exemplary summary document 1300, which includes a plurality of screenshots 526 and corresponding annotations 1304.
  • a single summary document is generated and then distributed by a transmitter 1108 to all meeting attendees.
  • the transmitter 1108 distributes the single summary document to only a subset of the attendees, such as only to the presenter.
  • An attendee may choose to make private annotations to the key screenshots, and to generate a private summary document containing only those annotations and/or any public annotations made by other attendees.
  • the annotations, screenshots, and/or summary document may be encrypted if, for example, the information contained in the presentation is sensitive. To improve security, the summary document may only be generated by a meeting attendee (e.g., a presenter 104, 204 or a viewer 100, 206). In other embodiments, the annotations, screenshots, and/or summary document are not encrypted, and the summary document may additionally or alternatively be generated by the server 106, 200, which is able to read and manipulate the unencrypted contents.
  • a meeting attendee e.g., a presenter 104, 204 or a viewer 100, 206.
  • the annotations, screenshots, and/or summary document are not encrypted, and the summary document may additionally or alternatively be generated by the server 106, 200, which is able to read and manipulate the unencrypted contents.
  • embodiments of the present invention may be provided as one or more computer-readable programs embodied on or in one or more articles of manufacture.
  • the article of manufacture may be any suitable hardware apparatus, such as, for example, a floppy disk, a hard disk, a CD ROM, a CD-RW, a CD-R, a DVD ROM, a
  • DVD-RW DVD-RW
  • DVD-R flash memory card
  • PROM PROM
  • RAM random access memory
  • ROM read-only memory
  • magnetic tape a magnetic tape
  • the computer-readable programs may be implemented in any programming language. Some examples of languages that may be used include C, C++, or JAVA.
  • the software programs may be further translated into machine language or virtual machine instructions and stored in a program file in that form. The program file may then be stored on or in one or more of the articles of manufacture.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

In various embodiments, an attendee of a live online meeting selects screen data from an earlier point in time in the online meeting for playback while the meeting is still ongoing. Automatically generated image thumbnails of the screen data for the online meeting may be employed to navigate to the earlier point in time. Attendees may annotate screenshots associated with the thumbnails, and a summary document may be generated that includes the screenshots and the annotations.

Description

SYSTEMS, METHODS AND DEVICES FOR FACILITATING ONLINE MEETINGS
RELATED APPLICATIONS
[0001] This application claims the benefit of U.S. Patent Application No. 12/978,251 , filed December 23, 2010; U.S. Patent Application No. 12/978,222, filed December 23, 2010; U.S. Patent Application No. 12/978,218; filed December 23, 2010 and U.S. Patent Application No. 12/978,214, filed December 23, 2010, the entire teachings of these applications are incorporated herein by reference.
TECHNICAL FIELD
[0002] Embodiments of the invention generally relate to the presentation and viewing of online meetings and, more specifically, to time-shifting playback of a live online meeting and to navigating the time-shifted portion of the live online meeting.
BACKGROUND
[0003] As economies globalize and travel costs increase, meetings that may have once been held face-to-face are increasingly being held remotely. Often, a purely telephonic meeting inefficiently conveys the ideas presented. Accordingly, computer-based online meetings featuring graphical data have become more common. The graphical data may include presentation slides, video, and/or a computer application or desktop window, and may be sent from a presenter to one or more viewers. Each viewer receives some form of the graphical data along with, typically, a verbal commentary by the presenter synchronized to the graphical data. The voice-over data may be sent through a traditional telephone network, e.g., a public switched-telephone network ("PSTN"), or through a computer-network protocol, e.g., voice-over-internet protocol ("VoIP"). The online meeting is typically "live" in the sense that voice and graphical data generated by a presenter are conveyed to the viewer as they occur, i.e., in real time while the meeting is still ongoing, as opposed to a prerecorded presentation viewed after the meeting has ended.
[0004] Typically, with today's technology, a viewer of a live online meeting must be present for the entirety of the meeting or risk missing some of its content.
Disadvantageously, an outside event or computer malfunction may cause an interruption in the viewing of the meeting, and an affected viewer may be unable to view a key part of the meeting. Furthermore, a viewer may wish for more time to study graphical data presented on the viewer's screen before the meeting proceeds to the next topic or may wish to further review earlier-presented video or audio data. In addition, a viewer who joins a meeting after it has started may wish to view the material he or she has missed. Unfortunately, many of these features are not well supported by existing technology.
[0005] Accordingly, a need exists for improved systems and methods of presenting and viewing live online meetings.
SUMMARY
[0006] In general, various aspects of the systems and methods described herein relate to displaying a previously presented portion of an online meeting while the meeting is still ongoing (i.e., while the meeting is "live"). In one embodiment, a viewer's screen displays live screen data for a current point in time (i.e., the live portion of the meeting), and, while being displayed, the live screen data is also stored for later use. During the live online meeting, the viewer may specify an earlier point in time, and the viewer's screen may then display screen data from the earlier point in time. In other words, a viewer may pause and rewind a live online meeting while the meeting is ongoing. As further described below, key screenshots representing the stored screen data may be generated in response to trigger events, and thumbnails generated from the key screenshots may then be used to aid navigation through the stored content. The viewer may annotate the key screenshots with notes, and a summary of the meeting may be generated using the key screenshots and/or annotations.
[0007] In general, in one aspect, embodiments of the invention feature a method for displaying, during an ongoing online meeting, a previously presented portion of the meeting. In accordance with the method, live screen data for a current point in time for the ongoing online meeting is displayed at a viewer computing device, and at least a portion of the live screen data is stored on the viewer computing device while the meeting is ongoing. A selection of a point in time earlier than the current point in time is then received at the viewer computing device, and the stored screen data from the earlier point in time is displayed on the viewer computing device while the meeting is still ongoing.
[0008] In general, in another aspect, embodiments of the invention feature a viewer computing device for displaying, during an ongoing online meeting, a previously presented portion of the meeting. The viewer computing device includes computer memory for storing at least a portion of live screen data for a current point in time for the ongoing online meeting. The live screen is received from a presenter computing device. In addition, the viewer computing device includes a display module and a selection module. The display module may cause the display of the live screen data at the current point in time, and the display of stored screen data from a point in time earlier than the current point in time. The selection module receives a selection, while the meeting is still ongoing, of the earlier point in time and instructs the display module to cause the display of the stored screen data from the earlier point in time while the meeting is still ongoing.
[0009] In general, in yet another aspect, embodiments of the invention feature an article of manufacture that stores computer-readable instructions thereon for displaying, during an ongoing online meeting, a previously presented portion of the meeting. The article of manufacture includes instructions to display, at a viewer computing device, live screen data for a current point in time for the ongoing online meeting, instructions to store, on the viewer computing device, at least a portion of the live screen data while the meeting is ongoing, instructions to receive, at the viewer computing device, a selection of a point in time earlier than the current point in time, and instructions to display, on the viewer computing device while the meeting is still ongoing, the stored screen data from the earlier point in time.
[0010] In various embodiments of these aspects of the invention, the live screen data is displayed in a first window and the stored screen data from the earlier point in time is displayed in a second window. Alternatively, the live screen data may be displayed in the first window and the display thereof may be interrupted to display the stored screen data from the earlier point in time in the first window. The earlier point in time may be selected by, for example, selecting an image thumbnail of a screenshot from the earlier point in time, or by rewinding to, forwarding to, or seeking the stored screen data.
[0011] At least a portion of live audio data for the current point in time for the ongoing online meeting may be stored on the viewer computing device while the meeting is ongoing. Moreover, a playback module may play back the stored audio data from the earlier point in time on the viewer computing device while the meeting is still ongoing. A synchronization module may synchronize the playback of the stored audio data with the display of the stored screen data. Alternatively, live audio data for the current point in time for the ongoing online meeting may be played while the stored screen data from the earlier point in time is displayed. Displaying the stored screen data from the earlier point in time may include, for example, smoothly playing back a continuous data stream of the stored screen data beginning from the earlier point in time, or stepping through key screenshots beginning from the earlier point in time. In addition, while the stored screen data from the earlier point in time is displayed, annotations made to the stored screen data may also be displayed.
[0012] In general, in still another aspect, embodiments of the invention feature a method for facilitating the display, during an ongoing online meeting, of a previously presented portion of the meeting. In accordance with the method, live screen data for a current point in time for the ongoing online meeting is received at a server computing device. The ongoing online meeting may be hosted, for example, by a presenter computing device. The live screen data is then transmitted from the server computing device to a viewer computing device for display thereat. In addition, at least a portion of the live screen data is stored, on the server computing device, while the meeting is ongoing. The server computer device then receives a selection of a point in time earlier than the current point in time, and transmits, to the viewer computing device while the meeting is still ongoing, stored screen data from the earlier point in time for display at the viewer computing device.
[0013] In general, in a further aspect, embodiments of the invention feature a server computing device for facilitating the display, during an ongoing online meeting, of a previously presented portion of the meeting. The server computing device includes computer memory for storing at least a portion of live screen data for a current point in time for the ongoing online meeting. Again, the ongoing online meeting may be hosted by a presenter computing device. In addition, the server computing device includes a transmitter and a selection module. The transmitter may transmit, to a viewer computing device for display thereat, the live screen data and stored screen data from a point in time earlier than the current point in time. The selection module receives a selection, while the meeting is still ongoing, of the earlier point in time and instructs the transmitter to transmit the stored screen data from the earlier point in time to the viewer computing device for display thereat while the meeting is still ongoing.
[0014] Additionally, in another aspect, embodiments of the invention feature an article of manufacture storing computer-readable instructions thereon for facilitating the display, during an ongoing online meeting, of a previously presented portion of the meeting. The article of manufacture includes instructions to receive, at a server computing device, live screen data for a current point in time for an ongoing online meeting hosted by a presenter computing device, instructions to transmit the live screen data from the server computing device to a viewer computing device for display thereat, instructions to store, on the server computing device, at least a portion of the live screen data while the meeting is ongoing, instructions to receive, at the server computing device, a selection of a point in time earlier than the current point in time, and instructions to transmit, from the server computing device to the viewer computing device while the meeting is still ongoing, stored screen data from the earlier point in time for display thereat.
[0015] In various embodiments of these latter three aspects of the invention, the earlier point in time may be selected by, for example, selecting an image thumbnail of a screenshot from the earlier point in time, or by rewinding to, forwarding to, or seeking the stored screen data. After receiving the selection, additional screen data that was stored, but not previously transmitted to the viewer computing device, may be transmitted thereto.
[0016] At least a portion of live audio data for the current point in time for the ongoing online meeting may be stored on the server computing device while the meeting is ongoing. In addition, stored audio data from the earlier point in time may be transmitted from the server computing device to the viewer computing device for playback thereat while the meeting is still ongoing. A synchronization module at the server computing device may synchronize the stored audio data with the stored screen data prior to transmission thereof.
[0017] Transmitting the stored screen data from the earlier point in time may involve transmitting a continuous data stream of the stored screen data beginning from the earlier point in time, or transmitting key screenshots beginning from the earlier point in time. While transmitting the stored screen data from the earlier point in time, annotations made to the stored screen data may also be transmitted.
[0018] In general, various aspects of the systems and methods described herein relate to displaying a previously presented portion of an online meeting while the meeting is still ongoing (i.e., while the meeting is "live"). In one embodiment, a viewer's screen displays live screen data for a current point in time (i.e., the live portion of the meeting), and, while being displayed, the live screen data is also stored for later use. During the live online meeting, the viewer may specify an earlier point in time, and the viewer's screen may then display screen data from the earlier point in time. In other words, a viewer may pause and rewind a live online meeting while the meeting is ongoing. As further described below, key screenshots representing the stored screen data may be generated in response to trigger events, and thumbnails generated from the key screenshots may then be used to aid navigation through the stored content. The viewer may annotate the key screenshots with notes, and a summary of the meeting may be generated using the key screenshots and/or annotations.
[0019] In general, in one aspect, embodiments of the invention feature a method for facilitating navigation of previously presented screen data in an ongoing online meeting. The method includes storing screen data representing a previously presented portion of an ongoing online meeting, capturing (on either a server or viewer computing device and in response to a trigger event) a screenshot of the screen data for the ongoing online meeting, and causing the display, on the viewer computing device while the meeting is still ongoing, of an image thumbnail generated from the screenshot. The image thumbnail facilitates navigation, on the viewer computing device, of the previously presented portion of the ongoing online meeting.
[0020] In general, in another aspect, embodiments of the invention feature a system for facilitating navigation of previously presented screen data in an ongoing online meeting. The system includes a storage device for storing screen data representing a previously presented portion of an ongoing online meeting, an image processing module for capturing, in response to a trigger event, a screenshot of the screen data for the ongoing online meeting, and a display module for causing the display, on a viewer computing device while the meeting is still ongoing, of an image thumbnail generated from the screenshot. Again, the image thumbnail facilitates navigation, on the viewer computing device, of the previously presented portion of the ongoing online meeting.
[0021] In general, in yet another aspect, embodiments of the invention feature an article of manufacture that includes computer-readable instructions thereon for facilitating navigation of previously presented screen data in an ongoing online meeting. The article of manufacture includes instructions to store, in computer memory, screen data representing a previously presented portion of an ongoing online meeting, instructions to capture, in response to a trigger event, a screenshot of the screen data for the ongoing online meeting, and instructions to cause the display, on a viewer computing device while the meeting is still ongoing, of an image thumbnail generated from the screenshot. Yet again, the image thumbnail facilitates navigation, on the viewer computing device, of the previously presented portion of the ongoing online meeting. [0022] In various embodiments of these aspects of the invention, each of the screenshot and the image thumbnail includes a timestamp that points to a point in time in the previously presented portion of the ongoing online meeting. The screenshot and/or image thumbnail may be transmitted (e.g., by a synchronization module) to a plurality of viewer computing devices for display thereat.
[0023] Different trigger events for capturing the screenshot may be employed. For example, the trigger event may result from the passage of a period of time. In another embodiment, the trigger event occurs when a number of changed pixels in the stored screen data increases past a threshold. Alternatively, the trigger event may occur when the size of an accumulative bounding box encapsulating changes to the stored screen data increases past a threshold. As yet another example, the screen data may be represented by a plurality of tiles, and the trigger event may occur when a number of tiles encapsulating changes to the stored screen data increases past a threshold. The trigger event may also be an operating system event (e.g., a mouse click, a key press, a change in an active window, or a change in a title of an active window), or an application event (e.g., a slide transition or an opening of a new file).
[0024] In some embodiments, the capture of a second screenshot is suppressed if a second trigger event occurs too close in time to a first trigger event and/or if the screen data includes video data. In addition, in the event that the screen data includes video data, a trigger more appropriate for video data may be employed (e.g., a first trigger may be switched to a second, more appropriate, trigger).
[0025] In addition to the above, both screen and audio data for a current point in time in the ongoing online meeting may be output at the viewer computing device.
[0026] In general, various aspects of the systems and methods described herein relate to displaying a previously presented portion of an online meeting while the meeting is still ongoing (i.e., while the meeting is "live"). In one embodiment, a viewer's screen displays live screen data for a current point in time (i.e., the live portion of the meeting), and, while being displayed, the live screen data is also stored for later use. During the live online meeting, the viewer may specify an earlier point in time, and the viewer's screen may then display screen data from the earlier point in time. In other words, a viewer may pause and rewind a live online meeting while the meeting is ongoing. As further described below, key screenshots representing the stored screen data may be generated in response to trigger events, and thumbnails generated from the key screenshots may then be used to aid navigation through the stored content. The viewer may annotate the key screenshots with notes, and a summary of the meeting may be generated using the key screenshots and/or annotations.
[0027] In general, in one aspect, embodiments of the invention feature a method for sharing, during an ongoing online meeting, an annotation. The method includes receiving, at a server computing device from a first computing device, an annotation to a screenshot that represents a previously presented portion of an online meeting of which the first computing device is a participant. The screenshot may have been captured in response to a trigger event during the online meeting and is representable as an image thumbnail. A second computing device participating in the online meeting, but that has not received the annotation, is then identified, and the annotation is transmitted from the server computing device to the second computing device for display thereat during the ongoing online meeting.
[0028] In general, in another aspect, embodiments of the invention feature a server computing device for sharing, during an ongoing online meeting, an annotation. The server computing device includes a receiver, a synchronization module, and a transmitter. The receiver receives, from a first computing device, an annotation to a screenshot that represents a previously presented portion of an online meeting of which the first computing device is a participant. Again, the screenshot may have been captured in response to a trigger event during the online meeting and is representable as an image thumbnail. For its part, the synchronization module identifies a second computing device participating in the online meeting, but that has not received the annotation, while the transmitter transmits the annotation to the second computing device for display thereat during the ongoing online meeting.
[0029] In general, in yet another aspect, embodiments of the invention feature an article of manufacture that includes computer-readable instructions thereon for sharing, during an ongoing online meeting, an annotation. The article of manufacture includes instructions to receive, from a first computing device, an annotation to a screenshot that represents a previously presented portion of an online meeting of which the first computing device is a participant. Yet again, the screenshot may have been captured in response to a trigger event during the online meeting and is representable as an image thumbnail. The article of manufacture also includes instructions to identify a second computing device participating in the online meeting, but that has not received the annotation, and instructions to transmit the annotation to the second computing device for display thereat during the ongoing online meeting.
[0030] In various embodiments of these aspects of the invention, a second annotation to the screenshot is received at the server computing device from the second computing device. The second annotation may then be transmitted from the server computing device to the first computing device for display thereat during the ongoing online meeting. In addition, an image processing module of the server computing device may capture a plurality of screenshots that each represent a previously presented portion of the online meeting and that each include a timestamp pointing to a point in time in the online meeting at which the screenshot was captured. The plurality of timestamps and/or screenshots may be transmitted to the first and second computing devices. Alternatively, the first computing device may capture the plurality of screenshots, and the plurality of timestamps and/or screenshots may be transmitted thereby to the second computing device (e.g., either directly, or via the server computing device). The plurality of timestamps and/or screenshots may be transmitted over a communication channel separate from the communication channel used to transmit the online meeting. Similarly, the plurality of timestamps and/or screenshots may be transmitted over a communication channel separate from the communication channel used to transmit the annotations.
[0031] In general, various aspects of the systems and methods described herein relate to displaying a previously presented portion of an online meeting while the meeting is still ongoing (i.e., while the meeting is "live"). In one embodiment, a viewer's screen displays live screen data for a current point in time (i.e., the live portion of the meeting), and, while being displayed, the live screen data is also stored for later use. During the live online meeting, the viewer may specify an earlier point in time, and the viewer's screen may then display screen data from the earlier point in time. In other words, a viewer may pause and rewind a live online meeting while the meeting is ongoing. As further described below, key screenshots representing the stored screen data may be generated in response to trigger events, and thumbnails generated from the key screenshots may then be used to aid navigation through the stored content. The viewer may annotate the key screenshots with notes, and a summary of the meeting may be generated using the key screenshots and/or annotations. [0032] In general, in one aspect, embodiments of the invention feature a method for generating (e.g., by a server or viewer computing device) a summary document of an online meeting. The method includes storing, in computer memory, at least a portion of screen data representing a previously presented portion of an online meeting, capturing a plurality of screenshots in response to trigger events, and combining the plurality of screenshots to generate a summary document summarizing the online meeting. Each screenshot may be based at least in part on the stored screen data and is representable as an image thumbnail.
[0033] In general, in another aspect, embodiments of the invention feature a system for generating a summary document on an online meeting. The system includes a storage device for storing at least a portion of screen data representing a previously presented portion of an online meeting, an image processing module for capturing a plurality of screenshots in response to trigger events, and a combining module for combining the plurality of screenshots to generate a summary document summarizing the online meeting. Again, each screenshot may be based at least in part on the stored screen data and is representable as an image thumbnail.
[0034] In general, in yet another aspect, embodiments of the invention feature an article of manufacture that includes computer-readable instructions thereon for generating a summary document of an online meeting. The article of manufacture includes instructions to store, in computer memory, at least a portion of screen data representing a previously presented portion of an online meeting, instructions to capture a plurality of screenshots in response to trigger events, and instructions to combine the plurality of screenshots to generate a summary document summarizing the online meeting. Yet again, each screenshot may be based at least in part on the stored screen data and is representable as an image thumbnail.
[0035] In various embodiments of these aspects of the invention, the summary document is transmitted to a viewer computing device attending the meeting. An annotation may be received from the viewer computing device and may be added to the summary document. The annotation may either be encrypted or unencrypted. Similarly, the screenshots may be encrypted or not.
[0036] These and other objects, along with advantages and features of the embodiments of the present invention herein disclosed, will become more apparent through reference to the following description, the accompanying drawings, and the claims. Furthermore, it is to be understood that the features of the various embodiments described herein are not mutually exclusive and can exist in various combinations and permutations.
BRIEF DESCRIPTION OF THE DRAWINGS
[0037] In the drawings, like reference characters generally refer to the same parts throughout the different views. In the following description, various embodiments of the present invention are described with reference to the following drawings, in which:
[0038] FIG. 1 is a block diagram illustrating a system for displaying a previously presented portion of an ongoing online meeting in accordance with one embodiment of the invention;
[0039] FIG. 2 is a block diagram illustrating a system for facilitating the display of a previously presented portion of an ongoing online meeting in accordance with one embodiment of the invention;
[0040] FIG. 3 is a flowchart illustrating a method for displaying a previously presented portion of an ongoing online meeting in accordance with one embodiment of the invention;
[0041] FIG. 4 is a flowchart illustrating a method for facilitating the display of a previously presented portion of an ongoing online meeting in accordance with one embodiment of the invention;
[0042] FIG. 5 A is an exemplary screenshot of a user interface for viewing previously presented screen data during an ongoing online meeting in accordance with one embodiment of the invention;
[0043] FIG. 5B is an exemplary screenshot of a user interface for viewing previously presented screen data during an ongoing online meeting in accordance with another embodiment of the invention;
[0044] FIG. 5 C is an exemplary screenshot of a user interface for viewing previously presented screen data during an ongoing online meeting in accordance with yet another embodiment of the invention;
[0045] FIG. 6 is a block diagram illustrating a system for distributing screen data in a bandwidth-adaptive manner in accordance with one embodiment of the invention;
[0046] FIG. 7 is a block diagram illustrating a system for facilitating navigation of previously presented screen data in an ongoing online meeting in accordance with one embodiment of the invention; [0047] FIG. 8 is a flowchart illustrating a method for facilitating navigation of previously presented screen data in an ongoing online meeting in accordance with one embodiment of the invention;
[0048] FIG. 9 is a block diagram illustrating a system for sharing annotations during a live online meeting in accordance with one embodiment of the invention;
[0049] FIG. 10 is a flowchart illustrating a method for sharing annotations during a live online meeting in accordance with one embodiment of the invention;
[0050] FIG. 11 is a block diagram illustrating a system for generating a summary document of a live online meeting in accordance with one embodiment of the invention;
[0051] FIG. 12 is a flowchart illustrating a method for generating a summary document of a live online meeting in accordance with one embodiment of the invention; and
[0052] FIG. 13 is an exemplary summary document of a live online meeting generated in accordance with one embodiment of the invention.
DETAILED DESCRIPTION
[0053] Described herein are various embodiments of methods and systems for displaying a previously presented portion of an ongoing online meeting.
A. Time-Shifting Playback of a Live Online Meeting
[0054] FIG. 1 illustrates one embodiment of a viewer computing device 100 for displaying, during an ongoing online meeting, a previously presented portion of the meeting. As illustrated, the viewer 100 may be connected to a network 102, such as the Internet or a local- or wide-area network, to which a presenter computing device 104 may also be connected.
Other devices connected to the network 102 may include a server 106 and an audio bridge
108. Additional viewers 100 may also be connected to the network 102. The one or more viewers 100 and the presenter 104 may be collectively referred to as meeting attendees.
[0055] The operation of the viewer 100, the presenter 104, and the other components depicted in FIG. 1 are explained in greater detail below, but, in general, the presenter 104 presents a live online meeting to the one or more viewers 100. Each viewer 100 views a latest state of a screen of the presenter 104 as it is received from the presenter 104. In one embodiment, the server 106 receives the screen updates from the presenter 104 and distributes them to the one or more viewers 100. The presenter 104 and/or server 106 may distribute the screen updates to the viewers 100 in a bandwidth-adaptive manner, as described in greater detail below, to account for differences in the network bandwidth linking each viewer 100. Thus, the live screen data viewed at a first viewer 100 may be slightly different than the live screen data viewed at a second viewer 100, especially if the first and second viewers 100 have different network connection speeds. Even if a viewer 100 has a slow connection, however, the screen data it views is still considered live because it continually updates its state to synchronize with a live state of a presenter's screen, even if it is updated less frequently than a viewer 100 having a faster connection.
[0056] An audio feed may also be distributed from the presenter 104 to accompany the screen updates distributed therefrom. The audio feed may be distributed over a public switched-telephone network ("PSTN"), using a voice-over-internet protocol ("VoIP"), or by using a mixture of the two. The audio bridge 108 may be used to mix PSTN voice data from the presenter 104 and/or viewers 100 and to distribute the mixed voice data to the presenter 104 and/or viewers 100. VoIP voice data may be mixed by the server 106 and/or viewers 100.
[0057] Both the viewer computing devices 100 and the presenter computing device 104 may be any type of personal computer, Windows-based terminal, network computer, wireless device, information appliance, workstation, mini computer, main frame computer, personal digital assistant, handheld device, or other computing device that is capable of both presenting information/data to, and receiving commands from, a user thereof. For example, each of the viewer computing devices 100 and the presenter computing device 104 may include a visual display device (e.g., a computer monitor), a data entry device (e.g., a keyboard), persistent and/or volatile storage (e.g., computer memory), a processor, and a mouse. In one embodiment, each of the viewer computing devices 100 and the presenter computing device 104 includes a web browser, such as, for example, the INTERNET EXPLORER program developed by Microsoft Corporation of Redmond, Washington, to connect to the World Wide Web.
[0058] For its part, the server 106 may be any computing device capable of receiving information/data from and delivering information/data to (e.g., over the network 102) the viewer computing devices 100, the presenter computing device 104, and/or the audio bridge 108. The audio bridge 108 may also be any computing device having the functionality described herein. For example, the server 106 and audio bridge 108 may each include computer memory for storing computer-readable instructions, and a central processing unit for executing such instructions. [0059] The viewer computing devices 100, the presenter computing device 104, the server 106, and the audio bridge 108 may be connected to the network 102 through a variety of connections including, but not limited to, standard telephone lines, LAN or WAN links (e.g., Tl, T3, 56 kb, X.25), broadband connections (e.g., ISDN, Frame Relay, ATM), or wireless connections. The connections, moreover, may be established using a variety of
communication protocols (e.g., HTTP, TCP/IP, IPX, SPX, NetBIOS, NetBEUI, SMB, Ethernet, ARCNET, Fiber Distributed Data Interface (FDDI), RS232, IEEE 802.11, IEEE 802.1 la, IEEE 802.1 lb, IEEE 802.1 lg, and direct asynchronous connections).
[0060] As illustrated in FIG. 1, the viewer 100 may include a display module 110, a selection module 112, computer memory 114, and a synchronization module 116. The display module 110 may cause the display of live screen data received from the presenter 104 as well as the display of stored screen data previously received from the presenter 104. The live and/or stored screen data may be displayed on a computer monitor, a notebook/netbook screen, the screen of a handheld device such as a smartphone or personal digital assistant, or any other screen capable of displaying visual information.
[0061] In one embodiment, the selection module 112 receives, from a user of the viewer computing device 100, a selection representing a point in time earlier than a current point in time in the live online meeting. The selection may be made using any kind of user input device, such as, for example, a keyboard, a mouse, a stylus, a touchscreen, or voice-to-text input. The selection module 112 may then instruct the display module 110 to display, while the online meeting is still ongoing, the portion of the online meeting corresponding to the selected time, as described in greater detail below.
[0062] For its part, the computer memory 114 may store at least a portion of the live screen data received from the presenter 104 and/or audio data associated therewith. The computer memory 114 (as well as any other memory or storage device described herein) may be any kind of commonly available computer memory, such as static random-access memory ("SRAM") or dynamic random-access memory ("DRAM"). The synchronization module 116 may synchronize playback of the stored audio data with the display of the stored screen data, as described further below.
[0063] Each of the display module 110, selection module 112, and synchronization module
116 (as well as any other module described herein) may be implemented as any software program and/or hardware device, for example an application specific integrated circuit (ASIC) or a field programmable gate array (FPGA), that is capable of providing the functionality described herein. It will be understood by one having ordinary skill in the art that the modules illustrated in the various figures and their organization are conceptual, rather than explicit, requirements. For example, two or more of the modules 110, 112, 116 may be combined into a single module, such that the functions described herein as being performed by the distinct modules 110, 112, 116 are in fact performed by the single module. In addition, it should be understood that any single one of the modules described herein may be implemented as multiple modules, such that the functions described herein as being performed by the single module are in fact performed by the multiple modules.
[0064] It will also be understood by those skilled in the art that FIG. 1 is a simplified illustration of the system and that it is depicted as such to facilitate the explanation of the present invention. The depiction of the system in FIG. 1 is non-limiting. Moreover, the system may be modified in of a variety of manners without departing from the spirit and scope of the invention.
[0065] For example, FIG. 2 illustrates, in an alternative embodiment, a server computing device 200 for facilitating the display, during an ongoing online meeting, of a previously presented portion of the meeting. The server 200 may be connected to a presenter computing device 204, one or more viewer computing devices 206, and/or an audio bridge 208 via a network 202. The presenter 204 hosts an online meeting and sends live screen data to the server 200, which stores the live screen data and/or audio data associated therewith in computer memory 214. A selection module 212 receives, from a user of one of the viewer computing devices 206, a selection of a point in time earlier than a current point in time of the live online meeting and instructs a transceiver 210 to transmit the stored screen data corresponding to the earlier point in time to the viewer 206. The transceiver 210 may further transmit to the viewer 206 stored audio data corresponding to the earlier point in time. For its part, the synchronization module 116 may synchronize the stored audio data with the stored screen data prior to their transmission, as described further below.
[0066] The transceiver 210 illustrated in FIG. 2 (as well as any other transceiver described herein) may be implemented as any hardware device, or software module with a hardware interface, that is capable of receiving and transmitting communications, including requests, responses, and commands, such as, for example, inter-processor communications and networked communications. Moreover, although depicted as a transceiver 210 in FIG. 2, the functions performed thereby may in fact be performed by a separate receiver and transmitter (not shown). Again, such a receiver and transmitter (as well as any other receiver or transmitter described herein) may be implemented as any hardware device, or software module with a hardware interface.
[0067] FIG. 3 illustrates a method 300 for displaying, during an ongoing online meeting, a previously presented portion of the meeting. In particular, the method 300 may be employed where the previously presented portion of the meeting is stored on a viewer computing device 100, as is represented, for example, in FIG. 1. In summary, in accordance with the method 300, live screen data is displayed at the viewer computing device 100 for a current point in time for the ongoing online meeting (Step 302). While the meeting is ongoing, at least a portion of the live screen data is stored in the computer memory 114 (Step 304). A selection of a point in time earlier than the current point in time is then received at the viewer computing device 100 (Step 306). The stored screen data from the earlier point in time may then be displayed on the viewer computing device 100 while the meeting is still ongoing (Step 308).
[0068] In greater detail, at Step 302, the viewer computing device 100 receives live screen data from the presenter computing device 104, and its display module 110 causes the display of the live screen data (e.g., on a screen) to a user of the viewer computing device 100. For example, each device 100, 104 may be running one or more software applications to facilitate communication with the network 102, such as a collaboration program for identifying, authenticating, and joining an online meeting. The collaboration program may be a local application or a web-based interface, and the live screen data may thus be displayed in an application window or in a full-screen mode at the viewer computing device 100.
[0069] As the viewer computing device 100 receives the live screen data for the current point in time of the online meeting, the viewer computing device 100 also stores at least a portion of that live screen data in the computer memory 114 (Step 304). For example, the live screen data may be received as a data stream and displayed on a screen of the viewer 100 as it arrives. Instead of discarding the live screen data after it has been displayed and viewed, however, the live screen data is retained in the computer memory 114. In one embodiment, the live screen data is stored in the computer memory 114 before image decompression and display (i.e., the live screen data is stored in a compressed format). If the computer memory
114 is too small to store the live screen data (whether in a compressed or decompressed format), some or all of the data may be additionally stored on other media, such as a hard disk drive or non- volatile memory such as flash memory. Regardless of how and/or where the live screen data is stored, however, it is accessible for later retrieval. The stored screen data may be cataloged according to its time or order of display to simplify retrieval thereof.
[0070] As live screen data is being displayed on the viewer 100, a user may select a point in time earlier than a current point in time of the online meeting and request retrieval and playback of the stored screen data corresponding to that earlier point in time (Step 306). A variety of input mechanisms may be used to aid the user in selecting the earlier point in time. For example, a user interface of the viewer computing device 100 may provide play, pause, rewind, and/or fast forward controls to the user, and the user may select an earlier point in time by, for example, selecting the rewind control until the desired point in time is reached. Alternatively or in addition, the user interface may provide a time -index slider bar that allows the user to click and drag a slider control to specify an earlier point in time. A user may also enter an exact time into a dialog box and specify the earlier time directly. As described further below, other mechanisms, such as image thumbnails of the stored screen data, may be available to aid the user in making the selection.
[0071] Once the selection is made, the stored screen data corresponding to the selection is displayed to the user (Step 308). In one embodiment, the display of the stored screen data replaces the display of the live screen data. For example, the display of the live screen data in a window may be interrupted to display therein the stored screen data from the earlier point in time. Alternatively, in another embodiment, the stored screen data is displayed in a second, separate window while the display of the live screen data continues in a first window. In still other examples, the stored screen data may be displayed as an inset or picture-in-picture within the display of the live screen data, and a control may be provided to swap the stored and live screen data between the main and inset displays. As will be understood by one of ordinary skill in the art, any other method for displaying multiple application windows, or multiple windows within one application, are within the scope of the current invention.
[0072] FIG. 4 illustrates a method 400 for facilitating the display, during an ongoing online meeting, of a previously presented portion of the meeting. In particular, the method 400 may be employed where the ongoing online meeting is hosted by a presenter computing device
204 and the previously presented portion of the meeting is stored on a server computing device 200, as is represented, for example, in FIG. 2. In summary, in accordance with the method 400, live screen data for a current point in time of the online meeting is received at the server computing device 200 from the presenter 204 (Step 402). The live screen data is then transmitted from the server computing device 200 to one or more viewer computing devices 206 for display thereat (Step 404). At least a portion of the live screen data is stored on the server computing device 200 while the meeting is ongoing (Step 406). Eventually, a selection of a point in time earlier than the current point in time is received, for example from a user of one of the viewer computing devices 206, at the server computing device 200 (Step 408). Stored screen data from the earlier point in time may then be transmitted from the server computing device 200 to the viewer computing device 206 for display thereat while the meeting is still ongoing.
[0073] In greater detail, screen data for an online meeting hosted by the presenter computing device 204 is sent to the server computing device 200 at Step 402. For example, the presenter 204 may host the meeting by creating, editing, and storing a presentation in secure local storage and then transmitting its screen content (which represents a portion of the presentation) to one or more viewer computing devices 206, via the server 200, only at the time of the presentation. Thus, by hosting the meeting, the presenter 204 may retain full control over the content of the presentation, which may be especially important when the viewers 206 represent unknown or unsecure devices. In one embodiment, the server 200 transmits the live screen data received from the presenter 204 to the viewer(s) 206 at Step 404. As explained further below, the live screen data may be transmitted to the viewer(s) 206 in a bandwidth-adaptive manner.
[0074] The server 200 also stores at least a portion of the live screen data in its computer memory 214 (Step 406). As explained above, other storage devices may additionally be used to store the live screen data. Eventually, the server 200 receives a selection of a point in time earlier than a current point in time of the ongoing online meeting from, for example, a viewer computing device 206 (Step 408), and transmits stored screen data from the earlier point in time to the viewer computing device 206 in response (Step 410). Again, a user of the viewer computing device 206 may make the selection by, for example, rewinding to, forwarding to, and/or seeking the stored screen data through a user interface presented at the viewer computing device 206, by selecting an image thumbnail representing the stored screen data, or by any other method described herein. Once received, the stored screen data from the earlier point in time may be displayed at the viewer computing device 206 as the live online meeting is still ongoing, as described above.
[0075] Storing the screen data on the server 200 has certain advantages. For example, a single saved copy of the stored screen data may be distributed, upon request, to each viewer 206, insuring that each viewer 206 has access to the same stored data. A viewer 206 may then be assured that fellow viewers 206 experience the same screen data when the viewers 206 select the same, previous point in time. In various embodiments, the presenter 204 has control over the screen data stored on the server 200 and limits its use by the viewers 206, which may be important if the screen data contains, for example, copyrighted or trade secret material. As another advantage, a viewer 206 may be a low-power or handheld device and may not be capable of storing screen data; these types of viewers 200 benefit from moving the storing function upstream to the server 200.
[0076] Storing the screen data on each viewer, such as the viewers 100 described with reference to FIG. 1, offers advantages as well. With reference again to FIG. 1, the server 106 and/or the network 102 connected thereto may not be capable of handling the load presented by transmitting both live screen data and stored screen data. Thus, by storing the screen data on the viewer computing device(s) 100, no additional network traffic is generated when a viewer 100 selects an earlier point in time for viewing. Furthermore, when the viewers 100 store the screen data, a server 106 may not be required to conduct the live online meeting.
[0077] In one embodiment, if a viewer 100, 206 joins an ongoing online meeting after the meeting has already begun, the viewer 100, 206 may view the live screen data and may also select an earlier point in time in the meeting (by, e.g., rewinding the meeting) to view a missed portion of the meeting. If the screen data is stored on a server 200, as described with reference to FIGS. 2 and 4, a viewer 206 may send a request to the server 200 for the screen data at a point in time corresponding to the missed portion. If, on the other hand, the screen data is stored on the viewers 100, as described with reference to FIGS. 1 and 3, the late- joining viewer 100 may not have immediate access to the missed portion of the meeting because the late -joining viewer 100 was not previously present in the meeting to store the previous screen data. In this case, the synchronization module 116 may send a request to a fellow viewer 100 for the missing screen data. In one embodiment, upon joining the meeting, the late-joining viewer 100 automatically detects other viewers 100 and automatically requests that the missing screen data be sent therefrom. Once received, the missing screen data is stored, although not necessarily immediately displayed, on the late -joining viewer 100 (e.g., the missing screen data may only be displayed when the late-joining viewer 100 later selects a point in time falling within the time period represented by the missing screen data). In another embodiment, the late -joining viewer 100 sends a request for missing screen data only when a user selects a point in time that falls within the time period represented by the missing screen data. Either the late -joining viewer 100 or the other viewers 100 may disable synchronization for security or bandwidth concerns. In another embodiment, the late-joining viewer 100 receives the missing screen data from the presenter 104.
[0078] Navigation through the stored screen data may be done locally (e.g., a viewer 100, 206 views stored screen data only on its own screen) or globally (e.g., a viewer 100, 206 may cause the stored screen data to be viewed on one or more other viewers 100, 206 as well as itself). For example, during a live online meeting, an attendee may seek back through previously viewed screen data to find a particular point in the online meeting and view the screen data at that point. In another embodiment, an attendee (either a viewer 100, 206 or the presenter 104, 204 for example) may wish to present previously viewed screen data to a plurality of other attendees in order to, for example, ask a question or clarify a point regarding the previously viewed screen data. In this embodiment, the attendee may cause the group of other attendees to view the same previously viewed screen data with the use of a single navigation control. For example, a viewer 100, 206 may send a command to other viewers 100, 206 and/or the presenter 104, 204 in accordance with a selection of previously viewed screen data, and the recipients of the command may seek to a point in the previously viewed screen data in accordance with the selection.
[0079] As described above, live audio data may be sent over a PSTN network or via a VoIP protocol. In one embodiment, live audio data is sent from the presenter 104, 204 to the viewers 100, 206 along with the live screen data. The viewers 100, 206 may also generate live audio data when they, for example, ask questions or give feedback to the presenter 104, 204.
[0080] PSTN data may be captured by the audio bridge 108, 208 and stored thereon and/or transmitted therethrough. The audio bridge 108, 208 may perform mixing, echo cancellation, filtering, compression, or other audio processing functions to create mixed audio data combining audio data from each attendee. In one embodiment, the audio bridge 108, 208 removes an attendee's own audio data from the mixed audio data heard by that attendee. In another embodiment, a viewer 100, 206 detects the playback of the stored audio data and cancels it from being sent back out on a microphone connected to the viewer 100, 206, if such a microphone is active. The audio bridge 108, 208 may be a discrete device or part of the server 106, 200, presenter 104, 204, and/or viewer 100, 206, or any other computing device capable of performing audio functions.
[0081] Audio data may also be sent via a VoIP protocol exclusively or in addition to audio data sent over the PSTN network. In this embodiment, audio mixing is performed with or without an audio bridge 108, 208. For example, each attendee may receive VoIP audio streams from each other attendee and perform mixing and echo cancellation (and/or other audio functions) locally. A mixed audio stream may be stored locally by each attendee, on the audio bridge 108, 208, and/or on a server 106, 200. Like the stored screen data described above, a late-joining attendee may synchronize missed audio data with another non-late- joining device, such as the presenter 104, 204, the audio bridge 108, 208, the server 106, 200, and/or a viewer 100, 206.
[0082] Regardless of the mechanism used to transport and store the audio data, when an attendee selects screen data from an earlier point in time for playback, stored audio data from the same point in time may also be selected. With the aid of the synchronization module 116, 216, the screen and audio data may be played back simultaneously, in sync, on a viewer 100, 206 or presenter 104, 204. In one embodiment, the live audio data is reduced in volume or muted when the stored audio data is played back; alternatively or in addition, the user may manually select the volume levels of each type of audio data. In still another embodiment, the stored audio data is not played back at all. Rather, the live audio from the ongoing online meeting is played while stored screen data from the earlier point in time is displayed. Like the navigation of screen data, the navigation of audio data (or combined audio and video data) may be temporarily or permanently controlled by a single attendee for a plurality of other attendees.
[0083] FIG. 5A depicts an exemplary embodiment of a computer interface 500 for a live online meeting. A viewing window 502 may display live screen data, stored screen data, or a combination of the two. A navigation bar 504 allows a viewer 100, 206 (or a presenter 104,
204) to navigate through the stored screen data. A play/pause button 506 allows the user to play or pause the playback of the live or stored content. A multi-layer scroll bar 508 shows the user the current live point 510 in the ongoing meeting and allows the user to scroll back to an earlier point in time 512 to playback the screen data previously presented at that point in time 512. A button 514 allows the user, if currently viewing stored content in the viewing window 502, to again view live content in the viewing window 502. In other words, selecting (e.g., clicking on) the button 514 causes the viewing window 502 to display live content.
[0084] Other controls may be included in the computer interface 500. A video display mode control 516 may allow a user to view the presentation at the actual size of presentation (i.e., 1 : 1 scaling) or, alternatively, scaled to fit the current size of the viewing window 502 by scaling the size of the presentation up or down. An exit button 518 permits the user to leave the meeting, and a chat window 520 allows a user to send text-based messages to some or all of the other attendees of the meeting. An audio control window 522 allows the user to select between using a telephone (i.e., a PSTN connection) or a microphone and speakers (i.e., a VoIP connection), as well as to select an audio codec/hardware and to set speaker and microphone levels.
[0085] FIG. 5B depicts another exemplary embodiment of the computer interface 500 for the live online meeting. In addition to the many features illustrated in FIG. 5A, the embodiment depicted in FIG. 5B also includes a second viewing window 524 and a set of image thumbnails 526 of key screenshots generated at earlier points in time of the ongoing online meeting. The capture of the key screenshots and the generation of image thumbnails therefrom (each image thumbnail is, in one embodiment, essentially a scaled-down version of a key screenshot) is further discussed below.
[0086] As depicted in FIG. 5B, the first viewing window 502 displays stored screen data from an earlier point in time (i.e., screen data previously presented during the online meeting), while the second, picture-in-picture viewing window 524 displays live screen data for the ongoing online meeting. Alternatively, the live screen data may instead be displayed in the first viewing window 502 and the stored screen data displayed in the second, picture- in-picture viewing window 524. A user interface (e.g., a button, a pull-down menu, etc.) may also be provided to swap the contents displayed in each viewing window 502, 524.
[0087] With reference still to FIG. 5B, a second scroll bar 528 may be associated with the set of image thumbnails 526. By moving the scroll bar to the left or right, a user may navigate through the set of image thumbnails 526. As will be understood by one of ordinary skill in the art, however, the set of image thumbnails 526 may instead be displayed in other manners, including in a transparent pop-up window. In one embodiment, selecting (e.g., clicking or double clicking on) an image thumbnail 526 causes the key screenshot from which it was generated to appear in one of the viewing windows 502, 504. In the
embodiment depicted in FIG. 5B, the key screenshot appears in the first viewing window 502. Data from the earlier point in time represented by that key screenshot may then be played back during the ongoing online meeting in a variety of manners. For example, the first viewing window 502 may playback therein a smooth, continuous data stream of the earlier stored screen data beginning from the point in time represented by the key screenshot / image thumbnail selected. Alternatively, rather than playing back a continuous data stream, the set of key screenshots (generated as described below) may be automatically stepped through in the first viewing window 502 beginning from the key screenshot / image thumbnail selected, thereby increasing the speed at which the user moves through the previously stored screen data. In either case, the playback of the previously stored screen data in the first viewing window 502 may occur while the online meeting is still ongoing and, for example, while live screen data continues to be displayed in the second, picture-in-picture viewing window 524. As previously mentioned live audio data may also continue to be output from the viewer computing device 100, 206 while the user reviews the earlier portions of the online meeting in the first viewing window 502.
[0088] As depicted in FIG. 5C, once an image thumbnail 526 is selected and its associated key screenshot depicted in the first viewing window 502, the key screenshot may be marked with an annotation 530 (e.g., a text-based comment). As illustrated, an input box 532 may be provided to facilitate entry of an annotation 530. Once an annotation 530 is made to a key screenshot, its associated image thumbnail 526 may be flagged (e.g., marked with a symbol) to indicate that an annotation 530 has been made. In addition, if the previously stored screen data is later played back in the first viewing window 502 (as described above), each annotation 530 made to a key screenshot may be displayed during the playback of that key screenshot (e.g., with the key screenshot when the first viewing window 502 steps through the key screenshots, or for an appropriate period of time (e.g., 3 to 5 seconds) spanning the point in time represented by the key screenshot when the first viewing window 502 plays back a smooth, continuous data stream of the earlier stored screen data). Further details on the annotations 530, and the manners in which they are handled by the systems depicted in
FIGS. 1 and 2, are also described further below. [0089] FIG. 6 depicts, in one embodiment, a system 600 for distributing screen data from a presenter 602 to viewers 604a, 604b (collectively, 604) in a bandwidth-adaptive manner. The system 600 includes a communications service 606 with which the presenter 602 and the viewers 604 communicate. In various embodiments, the communications service 606 may be provided as part of the presenter 602, the audio bridge 108, 208, the server 106, 200, and/or a viewer 604.
[0090] The presenter 602 codes the current state of a dynamic data set, such as screen data, as a set of data packets. In some embodiments, this coding process is straightforward. For example, in the case where the dynamic data set is screen data, data packets may be coded by storing pixel values for a predetermined portion of the screen in the data packet. In some embodiments, the presenter 602 compresses and/or encrypts the data stored in the data packets. As the dynamic data set changes, the presenter 602 updates the set of data packets comprising the current state of the data set.
[0091] The presenter 602 transmits the current state of the dynamic data set to the communications service 606 in a bandwidth-adaptive manner. In one embodiment, the presenter 602 possesses a transmission token before beginning transmission of the current state of the data set. In this embodiment, the presenter 602 and the communications service 606 exchange a limited number of transmission tokens, e.g., five. In other embodiments, the communication service 606 transmits a message to the presenter 602 to notify the presenter 602 when it may send another data set update.
[0092] As shown in FIG. 6, the communications service 606 may also include a data storage element 608, such as random-access memory, a disk drive, a disk array, a rewriteable optical drive, or some other form of memory element that allows access to stored data. The storage element 608 enables the communications service 606 to store metadata information and data packets received from the presenter 602 in between update requests from various viewers 604. In addition, the storage element 608 may be used to maintain a historical record of metadata information and data packets transmitted from the presenter 602. In other embodiments, the storage element 608 may also store the data packets transmitted to a respective viewer 604.
[0093] The presenter 602 creates metadata information that identifies each of the data packets representing the current state of the dynamic data set. In the embodiment shown in
FIG. 6, the metadata information comprises metadata packets 610, 618, 624. Metadata packet 610 is created at time ti and indicates that the state of the dynamic data set at time ti is represented by data packet 0, data packet 1, and data packet 2. Similarly, metadata packet 618 indicates that state of the dynamic data set at time t2 is represented by data packet 0, data packet 3, and data packet 4. In other embodiments, instead of creating metadata packets that store metadata information, metadata information is included in the data packets. For example, each data packet comprising a data set update may include a "metadata information header" identifying the update set with which the data packet is associated.
[0094] As shown in FIG. 6, at time ti the presenter 602 transmits metadata information 610 to the communications service 606 followed by the data packets identified by the metadata information 610, namely, data packet 0 612, data packet 1 614, and data packet 2 616. At time t2, the presenter 602 transmits metadata packet 618, which indicates that the state of the data set at time t2 is represented by data packet 0, data packet 3, and data packet 4. The presenter 602 then transmits data packet 3 620 and data packet 4 622 to the communications service 606 but does not retransmit data packet 0 because that data packet was already transmitted in connection with the first metadata packet 610. Similarly, at time t3, the presenter 602 transmits a metadata packet 624 that indicates the current state of the dynamic data set is represented by data packet 0, data packet 4, and data packet 5. Because the presenter 602 already transmitted data packets 0 and 4, only data packet 5 626 is transmitted following the third metadata packet 624.
[0095] In FIG. 6, the viewer 604a communicates with the communications service 606 via a high-bandwidth connection. In this case, the viewer 604a requests data set updates frequently enough that the communication service 606 transmits to the viewer 604a a stream of metadata information and data packets identical to the stream of metadata information and packets received by the communications service 606 from the presenter 602. The viewer 604b, however, communicates with the communications service 606 via a low-bandwidth connection, and requests data set updates less frequently. Therefore, the viewer 604b receives a different stream of metadata packets and data packets from the communications service 606 than the communications service 606 receives from the presenter 602. More specifically, the communications service 606 transmits the first metadata packet 610 and data packets 0 612, 1 614, 2 616 to the viewer 604b. The next metadata packet received by the viewer 604b is the third metadata packet 624, which indicates that the state of the dynamic data set is represented by data packet 0, data packet 4, and data packet 5. Because the viewer 604b has not yet received data packets 4 and 5, the communications service 606 transmits those data packets to the viewer 604b.
[0096] FIG. 6 also depicts the packet stream sent to a viewer node that joins late, as described above. A late-joining viewer that joins at time t3, as shown in FIG. 6, receives the third metadata packet 624 as well as all the data packets identified by the third metadata packet 624. The data packets transmitted to the viewers 604a, 604b by the communications service 606 may be retrieved from the storage element 608, may have been recently received from the presenter 602, or some combination of the two.
B. Capturing Key Screenshots and Generating Image Thumbnails to Facilitate
Navigation
[0097] As described above, a user may navigate through previously presented screen data of a live online meeting in order to select a point in time within the previously presented screen data at which to begin playback during the live online meeting. In one embodiment, the user employs a scrollbar or a slider button, such as the scroll bar 508 described above with reference to FIG. 5A, to select the point in time. In another embodiment, image thumbnails 526 of the stored screen data are provided to the user, so that the user may select (e.g., by clicking or double clicking on) an image thumbnail 526 corresponding to a previous point in time and view the screen data associated therewith, as described above with reference to FIGS. 5B and 5C. To this end, the thumbnails 526 (and/or the key screenshots from which the thumbnails 526 are generated) may have a timestamp associated therewith. In one embodiment, the timestamp points to a point in time in the previously presented portion of the ongoing online meeting. In such a fashion, navigation of the previously presented screen data is facilitated, as the selection of an image thumbnail 526 corresponds to a selection of a particular point in time in the previously presented portion of the ongoing online meeting at which to begin viewing the previously presented screen data.
[0098] FIG. 7 illustrates an exemplary system 700 for facilitating navigation of previously presented screen data in an ongoing online meeting. The system 700, or portions thereof, may be present, for example, on the viewer computing devices 100, 206, on the presenter computing device 104, 204, and/or on the server computing device 106, 200. In one embodiment, an image processing module 702 of the system 700 captures, in response to a trigger event, a screenshot of the screen data for the ongoing online meeting. Scaled-down versions of the screenshots (e.g., image thumbnails 526) may then be generated by the image processing module 702, and a display module 704 may cause the display of the image thumbnails 526 while the meeting is still ongoing (i.e., while live screen and/or audio data is still being presented). A storage device 706 stores the previously presented screen data, while a synchronization module 708 may be employed to transmit the image thumbnails 526 and/or the screenshots (or, as further described below, simply their timestamps) to a plurality of the viewer computing devices 100, 206.
[0099] FIG. 8 illustrates one embodiment of a method 800 for facilitating navigation of previously presented screen data in an ongoing online meeting by using, for example, the system 700 depicted in FIG. 7. In greater detail, a portion of screen data representing a previously presented portion of an ongoing online meeting is stored in the storage device 706 (Step 802). A screenshot of the screen data for the ongoing online meeting is captured by the image processing module 702 in response to a trigger event (Step 804). The display module 704 may then cause an image thumbnail 526 generated from the screenshot to be displayed on a viewer computing device 100, 206 (Step 806) while the meeting is still ongoing (i.e., while live screen and/or audio data is still being presented). For example, where the system 700 is resident on a viewer computing device 100, 206, the display module 704 may simply display the generated image thumbnail 526 thereat. On the other hand, where the system 700 is resident on the presenter computing device 104, 204 or on the server computing device 106, 200, the display module 704 may instruct the synchronization module 708 to transmit the screenshot to one or more viewer computing devices 100, 206, together with instructions to display an associated image thumbnail 526 thereat. Alternatively, the display module 704 may instruct the synchronization module 708 to transmit the image thumbnail 526 (with or without its associated screenshot) to one or more viewer computing devices 100, 206, together with instructions to display the image thumbnail 526 thereat. Regardless of how the image thumbnail 526 is caused to be displayed on the viewer computing device 100, 206, the image thumbnail 526, as described herein, facilitates navigation on the viewer computing device 100, 206 of the previously presented portion of the online meeting while the meeting is still ongoing.
[00100] As previously mentioned, in one embodiment, the image thumbnail 526 is a scaled- down-in-size version the presenter's screen data at a particular point in time. The image thumbnail 526 may be small in size (e.g., 50x50 pixels), large (e.g., 300x300 pixels), or any other appropriate size. Any suitable image format or compression type may be used (e.g., BMP, JPG, PNG, or GIF). The quality of the image thumbnails 526 may be tuned for less processing time (i.e., for lower-quality thumbnails 526) or more processing time (i.e., for higher-quality thumbnails 526).
[00101] The screenshot, from which the image thumbnail 526 is generated, is taken when a trigger event occurs. In one embodiment, the trigger event occurs at regular time intervals (e.g., periodically, after the passage of a pre-determined period of time). In another embodiment, the trigger event occurs when a difference between the stored screen data and the live screen data increases past a threshold. For example, the pixels in the last screenshot captured may be compared to the pixels in the live screen data, and if the number of pixels that are different increase past a threshold (e.g., 5%, 10%, or 25% differing pixels), a trigger event occurs and a new screenshot is captured. This new screenshot, in turn, may compared to the live screen data to determine when the next trigger event occurs. In yet another embodiment, the locations of pixels in the live screen data that are different from
corresponding pixels in the last screenshot captured are noted, and a trigger even occurs when a bounding box containing all of the differing pixels increases past a threshold (e.g., a maximum area, perimeter, or diagonal size). In still another embodiment, each of the last screenshot and the live screen data is represented by an arrangement (e.g., array) of tiles, and a trigger event occurs when a number of tiles that include a pixel in the last screenshot that is different from a corresponding pixel in the live screen data increases past a threshold (e.g., 5%, 10%, 25%, or 50% of the tiles).
[00102] In one embodiment, a first screenshot is automatically generated at the beginning of the presentation. This screenshot may serve as the first basis of comparison for trigger events that rely on, in part, detecting a change in live screen data versus a stored screenshot.
[00103] The trigger event may also be an operating system event, such as a mouse click, a key press, a change in an active window, or a change in the title of an active window. In another embodiment, the trigger event is an application event, such as a slide transition or an opening of a new file. The presenter 104, 204 may also include a user interface for manually causing a trigger event.
[00104] If too much time has passed since the last trigger event, a new trigger event may be automatically generated. If the new trigger event produces a new screenshot substantially similar to the last screenshot, the new screenshot may be stamped with a distinguishing feature (e.g., a numeral "II" or the time index of its capture in the online presentation) to aid in distinguishing the screenshots.
[00105] On the other hand, trigger events may occur too quickly, causing extra processing resources to be consumed to capture the screenshots and generate the thumbnails 526 therefrom, causing increased network traffic to distribute the screenshots and/or thumbnails 526, and making navigation through the resulting large set of thumbnails 526 more difficult. Accordingly, in one embodiment, if a second trigger event occurs too soon after a first trigger event, the image processing module 702 suppresses the second trigger event and no screenshot is captured or thumbnail 526 generated. A suppressed trigger event may automatically capture a screenshot and generate a thumbnail after a suitable delay (e.g., 30, 60, or 90 seconds). Trigger events may also be suppressed when, for example, the live presentation contains video or animation, causing the screen to change frequently. In one embodiment, if the presence of video in the presentation is detected, any pixel changes associated therewith are ignored for the purposes of computing a trigger event. In another embodiment, if the presence of video in the presentation is detected, the image processing module 702 switches from using a first trigger (e.g., the number of pixels that have changed increasing past a threshold) to using a second trigger (e.g., one based on the passage of time).
[00106] As will be understood by one of ordinary skill in the art, the trigger events may take any form, depending upon the particular application. In addition to the trigger events discussed above, further exemplary trigger events include, but are not limited to: beginning execution of a new program; terminating a program; observing a change in the behavior of an executing program, a change in the state of an executing program, a change of foreground application, or a change of application focus; a program transitioning to or from execution in a full-screen mode; the creation, display, change, or destruction of a user interface element; and opening, closing, or changing an existing file.
[00107] The set of screenshots that are generated in response to the trigger events (i.e., the "key screenshots") may be compiled by the image processing module 702 into a meeting digest (e.g., a list of key screenshots). Moreover, as previously explained, the image processing module 702 may associate a timestamp with each of the key screenshots and the thumbnails 526 generated therefrom in order to facilitate navigation of the previously presented screen data. [00108] In one embodiment, the live presentation contains slides, and a trigger event occurs when a new slide is presented. Thus, each resulting thumbnail 526 may correspond to a different slide in the presentation, and a user may easily navigate through the presentation by navigating through the slide thumbnails 526. If the presentation dwells on a certain slide for a length of time greater than a threshold (e.g., three, five, or ten minutes), more than one thumbnail 526 may be generated for that slide (with a unique identifier possibly being stamped on each thumbnail 526) so that a user may navigate within the audio data associated for that slide. In general, as previously discussed, navigating the stored screen data by selecting a generated thumbnail 526 may cause the playback of the associated stored screen data as well as the associated audio data.
[00109] In one embodiment, a viewer computing device, such as the viewers 100, 206 described above, generates its own key screenshots and thumbnails 526. In other
embodiments, the key screenshots and thumbnails 526 are generated by a presenter 104, 204, a server 106, 200, and/or another viewer 100, 206. Because each viewer may receive a different set of screen updates, as explained above with reference to the bandwidth-adaptive distribution of screen updates shown in FIG. 6, each viewer may generate a set of key screenshots and thumbnails 526 different from each other viewer (and from the presenter). In one embodiment, the attendee that received the most frequent updates (e.g., the presenter, server, or a viewer with a fast connection) determines the set of key screenshots and thumbnails 526 to be used by all attendees (i.e., a canonical set of key screenshots and thumbnails 526), and the canonical set of key screenshots and/or thumbnails 526 are distributed to the rest of the attendees. In another embodiment, the synchronization module 708 analyzes screenshots or thumbnails 526 generated by a plurality of attendees and merges them into a set of canonical screenshots or thumbnails 526 for distribution. For example, if two screenshots generated by different attendees differ in time by only a few seconds, the synchronization module 708 may chose one screenshot and discard the other. If there is a large gap in time between two screenshots generated by a single attendee, however, the synchronization module 708 may insert a third screenshot, generated by another attendee, between the screenshots in creating the canonical set of screenshots.
[00110] If a canonical set of screenshots and/or thumbnails 526 is distributed, it may be done at regular intervals throughout the meeting, at the end of the meeting, or whenever an identified attendee (e.g., the presenter) captures a new screenshot and/or generates a new thumbnail 526 (or otherwise determines that an update is necessary). In one embodiment, when an attendee assumes navigational control of one or more other attendees (as described above), a screenshot and/or thumbnail 526 used by the controlling attendee is distributed to the controlled attendees along with the distributed navigational commands.
[00111] A late-joining attendee, as described above, may receive some or all of the stored screen data representing the missed portion of the online meeting from the presenter, server, or another viewer. The late-joining attendee may also receive screenshots and/or thumbnails 526 generated by another attendee or by the server corresponding to the stored screen data. The stored screen data, and the screenshots and/or thumbnails 526, may come from the same source or from separate sources. In one embodiment, the late-joining attendee receives one or more canonical screenshots and/or thumbnails 526 from the server or a designated attendee; in another embodiment, the late-joining attendee receives non-canonical screenshots and/or thumbnails 526 from any attendee, and the non-canonical screenshots and/or thumbnails 526 are merged later (along with other attendees' screenshots and/or thumbnails 526).
[00112] In yet another alternative, rather than distributing screenshots and/or thumbnails 526, it may suffice simply to distribute their associated timestamps. For example, where previously presented screen data is stored on the viewer computing devices, distributing simply the timestamps thereto (e.g., a canonical set of timestamps) allows the viewer computing device to itself search the stored screen data, and capture and generate key screenshots and associated image thumbnails 526 (e.g., a canonical set of key screenshots and associated image thumbnails 526).
C. Annotating Key Screenshots
[00113] FIG. 9 illustrates an exemplary system 900 for sharing an annotation to a key screenshot during an ongoing online meeting. Typically, the system 900 is present on the server computing device 106, 200, although it may instead be present on, for example, a viewer computing device 100, 206 or the presenter computing device 104, 204. The annotation to the key screenshot may be text, symbols, or figures drawn using a mouse or other pointing device, typewritten text or symbols, an image, or any other visual data. The annotation may be added to white or free space in the key screenshot or may be drawn over objects appearing in the key screenshot. In various embodiments, the annotation is made in a different color, highlighting, shading, or transparency level than the objects appearing in the key screenshot. In one embodiment, the annotation is tagged with information identifying its author, time of creation, and/or time of last editing.
[00114] With reference still to FIG. 9, an annotation receiver 902 receives the annotation to the key screenshot, which represents a previously presented portion of the online meeting. The annotation may be transmitted from a first computing device participating in the online meeting. For example, the annotation may be transmitted from a viewer computing device 100, 206 to the server 106, 200, or from a presenter computing device 104, 204 to the server 106, 200. A synchronization module 904 may then identify a second computing device also participating in the online meeting that has not received the annotation, and an annotation transmitter 906 may transmit the annotation to the second computing device for display thereat during the ongoing online meeting. The system 900 may also include an image processing module 908 for capturing a plurality of screenshots that each represent a previously presented portion of the online meeting and for generating image thumbnails therefrom, as described above. The transmitter 906 may also transmit the plurality of screenshots and/or image thumbnails (or simply their timestamps) to the first and second computing devices.
[00115] FIG. 10 illustrates one embodiment of a method 1000 for sharing an annotation to a key screenshot during an ongoing online meeting by using, for example, the system 900 depicted in FIG. 9. As illustrated, the method 1000 begins by receiving, at the server computing device 106, 200 from a first computing device participating in the online meeting, an annotation to a key screenshot representing a previously presented portion of the online meeting (Step 1002). A second computing device participating in the online meeting but that has not received the annotation is then identified by the synchronization module 904 (Step 1004). The annotation is then transmitted from the server computing device 106, 200 to the second computing device for display thereat during the ongoing online meeting (Step 1006).
[00116] In this way, attendees to the ongoing online meeting may share annotations to the key screenshots. For example, a first attendee may wish to make an annotation to a particular screenshot (corresponding to, e.g., a particular slide in a presentation). The first attendee makes the annotation, and the annotation may be distributed by the server 106, 200 to some or all of the other attendees. Another attendee may wish to augment or correct the annotation, in which case the updated annotation may be re-distributed by the server 106, 200 to the rest of the attendees (including the first attendee). The other attendees may also choose to make annotations to other, unannotated screenshots, and these other annotations may also be distributed.
[00117] In another embodiment, a user makes a private annotation to a screenshot. The user may designate a particular annotation as private or may specify that all of the user's annotations are to be kept private. In one embodiment, the user may make private and public annotations to the same screenshot. The private annotations may be designated by, for example, a different color or tag to distinguish them from public annotations. In one embodiment, the presenter or a designated viewer may specify that all annotations in a meeting are to remain private. In another embodiment, annotations may be shared between only a designated subgroup of attendees.
[00118] In one embodiment, the annotation is made to a screenshot that has already been determined to be a meeting-wide, agreed-upon screenshot (i.e., a canonical screenshot, as described above). In this embodiment, an attendee receiving the annotation adds or merges the annotation to the attendee's copy of the screenshot. In another embodiment, each attendee may have a different set of screenshots and thumbnails 526 because, for example, different attendees received different screen data, as described above with reference to FIG. 6. In this embodiment, if an attendee distributes or receives an annotation to a screenshot that other attendees do not possess, the screenshot associated with that annotation may, at that point, be synchronized across some or all attendees (by, for example, the synchronization module 904). For example, if an attendee possesses a screenshot corresponding to a point close in time to the annotated screenshot (within, e.g., 5, 10, or 30 seconds), the unannotated screenshot may be replaced in favor of the annotated screenshot. If both screenshots possess annotations, the annotations may be merged together and applied to one of the screenshots, and the other screenshot deleted. In other embodiments, the annotations and screenshots may be synchronized only at or near the end of the online meeting.
[0100] As mentioned, the system 900 may be present on the server 106, 200, the presenter 104, 204, or a viewer 100, 206. Alternatively, the system 900 may have its components divided among two or more of the server 106, 206, the presenter 104, 204, and/or the viewers 100, 206. In one embodiment, the system 900 stores the annotations for the attendees, and each new or edited annotation is reflected in the copy stored by the system 900. The system 900 may also generate and store the screenshots and/or image thumbnails 526 for the online presentation, as described above. [0101] The online meeting, screenshots and/or thumbnails 526 (or simply their associated timestamps), and annotations may be transmitted over different communications channels. For example, the bandwidth needs of transmitting the online meeting may be greater than the needs of the screenshots or annotations, so the online meeting may be transmitted over its own, more robust channel. The screenshots and annotations, on the other hand, may require comparatively less bandwidth, and so may be sent on lower-bandwidth channels. In one embodiment, the channels carrying the screenshots and annotations have low latency so that a captured screenshot or annotation thereto may be quickly distributed across attendees. The channels carrying the screenshots and annotations may be encrypted for security purposes. D. Summary Document Generation Using Key Screenshots
[0102] FIG. 11 illustrates an exemplary system 1100 for generating a summary document of an online meeting. Again, the system 1100, or a portion thereof, may be present, for example, on the viewer computing devices 100, 206, on the presenter computing device 104, 204, and/or on the server computing device 106, 200. A storage device 1102 (e.g., computer memory) stores at least a portion of screen data representing a previously presented portion of the online meeting. An image processing module 1104 captures a plurality of key
screenshots in response to trigger events, as described above. A combining module 1106 generates a summary document summarizing the online meeting by combining the plurality of screenshots. Optionally, the system 1100 may further include a receiver 1110 for receiving an annotation from a computing device attending the meeting, and the combining module 1106 may further add the annotation to the summary document.
[0103] FIG. 12 illustrates one embodiment of a method 1200 for generating a summary document of an online meeting by using, for example, the system 1100 depicted in FIG. 11. As illustrated, the method 1200 begins by storing at least a portion of screen data representing a previously presented portion of an online meeting in the storage device 1102 (Step 1202). A plurality of key screenshots are captured by the image processing module 1104 in response to trigger events (Step 1204), as described above. At some later point in time, the plurality of screenshots are combined by the combining module 1106 to generate a summary document summarizing the online meeting (Step 1206).
[0104] In one embodiment, the summary document is a single- or multi-page electronic document containing embedded images representing the key screenshots. For example, the summary document may be a MICROSOFT WORD document, an OPENOFFICE.ORG WRITER document, an ADOBE PDF, an HTML page, or any other available document format. In one embodiment, the summary document includes information about the date, time, and nature of the online meeting and a list of its attendees. The summary document may also include information about the date and time of the creation of each screenshot and/or the elapsed time in the online presentation corresponding to the screenshot. In one embodiment, the summary document contains a link to a saved version of the online presentation; in another embodiment, the summary document contains a link for each screenshot corresponding to the screenshot' s location within the online presentation.
[0105] In one embodiment, the summary document contains some or all of the annotations made during the online meeting. The annotations may be displayed on the screenshots or, if the annotations are textual, they may be displayed under, over, or next to the screenshots as optical-character recognition text. The summary document may indicate the author of each annotation. FIG. 13 depicts one exemplary summary document 1300, which includes a plurality of screenshots 526 and corresponding annotations 1304.
[0106] In one embodiment, a single summary document is generated and then distributed by a transmitter 1108 to all meeting attendees. In another embodiment, the transmitter 1108 distributes the single summary document to only a subset of the attendees, such as only to the presenter. An attendee may choose to make private annotations to the key screenshots, and to generate a private summary document containing only those annotations and/or any public annotations made by other attendees.
[0107] The annotations, screenshots, and/or summary document may be encrypted if, for example, the information contained in the presentation is sensitive. To improve security, the summary document may only be generated by a meeting attendee (e.g., a presenter 104, 204 or a viewer 100, 206). In other embodiments, the annotations, screenshots, and/or summary document are not encrypted, and the summary document may additionally or alternatively be generated by the server 106, 200, which is able to read and manipulate the unencrypted contents.
[0108] It should also be noted that embodiments of the present invention may be provided as one or more computer-readable programs embodied on or in one or more articles of manufacture. The article of manufacture may be any suitable hardware apparatus, such as, for example, a floppy disk, a hard disk, a CD ROM, a CD-RW, a CD-R, a DVD ROM, a
DVD-RW, a DVD-R, a flash memory card, a PROM, a RAM, a ROM, or a magnetic tape. In general, the computer-readable programs may be implemented in any programming language. Some examples of languages that may be used include C, C++, or JAVA. The software programs may be further translated into machine language or virtual machine instructions and stored in a program file in that form. The program file may then be stored on or in one or more of the articles of manufacture.
[0109] Certain embodiments of the present invention were described above. It is, however, expressly noted that the present invention is not limited to those embodiments, but rather the intention is that additions and modifications to what was expressly described herein are also included within the scope of the invention. Moreover, it is to be understood that the features of the various embodiments described herein were not mutually exclusive and can exist in various combinations and permutations, even if such combinations or permutations were not made express herein, without departing from the spirit and scope of the invention. In fact, variations, modifications, and other implementations of what was described herein will occur to those of ordinary skill in the art without departing from the spirit and the scope of the invention. As such, the invention is not to be defined only by the preceding illustrative description.
[0110] What is claimed is:

Claims

1. A method for displaying, during an ongoing online meeting, a previously presented portion of the meeting, the method comprising:
displaying, at a viewer computing device, live screen data for a current point in time for an ongoing online meeting;
storing, on the viewer computing device, at least a portion of the live screen data while the meeting is ongoing;
receiving, at the viewer computing device, a selection of a point in time earlier than the current point in time; and
displaying, on the viewer computing device while the meeting is still ongoing, the stored screen data from the earlier point in time.
2. The method of claim 1, further comprising displaying the live screen data in a first window and the stored screen data from the earlier point in time in a second window.
3. The method of claim 1, further comprising displaying the live screen data in a window and interrupting the display of the live screen data to display the stored screen data from the earlier point in time in the window.
4. The method of claim 1 , wherein the selection of the earlier point in time results from selecting an image thumbnail of a screenshot from the earlier point in time.
5. The method of claim 1, wherein the selection of the earlier point of time results from at least one of rewinding, forwarding, or seeking the stored screen data.
6. The method of claim 1, further comprising:
storing, on the viewer computing device while the meeting is ongoing, at least a portion of live audio data for the current point in time for the ongoing online meeting; and playing back, on the viewer computing device while the meeting is still ongoing, stored audio data from the earlier point in time.
7. The method of claim 6, further comprising synchronizing the playback of the stored audio data with the display of the stored screen data.
8. The method of claim 1, further comprising playing live audio data for the current point in time for the ongoing online meeting while the stored screen data from the earlier point in time is displayed.
9. The method of claim 1, wherein displaying the stored screen data from the earlier point in time comprises smoothly playing back a continuous data stream of the stored screen data beginning from the earlier point in time.
10. The method of claim 1, wherein displaying the stored screen data from the earlier point in time comprises stepping through key screenshots beginning from the earlier point in time.
11. The method of claim 1 , further comprising displaying, while displaying the stored screen data from the earlier point in time, annotations made to the stored screen data.
12. A viewer computing device for displaying, during an ongoing online meeting, a previously presented portion of the meeting, the viewer computing device comprising: computer memory for storing at least a portion of live screen data for a current point in time for an ongoing online meeting, the live screen data received from a presenter computing device;
a display module for causing the display of i) the live screen data at the current point in time, and ii) stored screen data from a point in time earlier than the current point in time; and
a selection module for receiving a selection, while the meeting is still ongoing, of the earlier point in time and for instructing the display module to cause the display of the stored screen data from the earlier point in time while the meeting is still ongoing.
13. The viewer computing device of claim 12, wherein the display module causes the display of the live screen data in a first window and the display of the stored screen data from the earlier point in time in a second window.
14. The viewer computing device of claim 12, wherein the display module causes the display of the live screen data in a window and, when instructed by the selection module, interrupts the display of the live screen data to cause the display of the stored screen data from the earlier point in time within the window.
15. The viewer computing device of claim 12, wherein the computer memory further stores audio data, and further comprising a playback module for playing back, while the meeting is still ongoing, stored audio data from the earlier point in time.
16. The viewer computing device of claim 15, further comprising a synchronization module for synchronizing the playback of the stored audio data with the display of the stored screen data.
17. The viewer computing device of claim 12, wherein the display module, in causing the display of the stored screen data from the earlier point in time, smoothly plays back a continuous data stream of the stored screen data beginning from the earlier point in time.
18. The viewer computing device of claim 12, wherein the display module, in causing the display of the stored screen data from the earlier point in time, steps through key screenshots beginning from the earlier point in time.
19. The viewer computing device of claim 12, wherein the display module further causes the display, while causing the display of the stored screen data from the earlier point in time, of annotations made to the stored screen data.
20. An article of manufacture storing computer-readable instructions thereon for displaying, during an ongoing online meeting, a previously presented portion of the meeting, the article of manufacture comprising:
instructions to display, at a viewer computing device, live screen data for a current point in time for an ongoing online meeting;
instructions to store, on the viewer computing device, at least a portion of the live screen data while the meeting is ongoing;
instructions to receive, at the viewer computing device, a selection of a point in time earlier than the current point in time; and
instructions to display, on the viewer computing device while the meeting is still ongoing, the stored screen data from the earlier point in time.
21. The article of manufacture of claim 20, further comprising instructions to display the live screen data in a first window and the stored screen data from the earlier point in time in a second window.
22. The article of manufacture of claim 20, further comprising instructions to display the live screen data in a window and to interrupt the display of the live screen data to display the stored screen data from the earlier point in time in the window.
23. The article of manufacture of claim 20, further comprising:
instructions to store, on the viewer computing device while the meeting is ongoing, at least a portion of live audio data for the current point in time for the ongoing online meeting; and
instructions to play back, on the viewer computing device while the meeting is still ongoing, stored audio data from the earlier point in time.
24. The article of manufacture of claim 23, further comprising instructions to synchronize the playback of the stored audio data with the display of the stored screen data.
25. The article of manufacture of claim 20, further comprising instructions to play live audio data for the current point in time for the ongoing online meeting while executing the instructions to display the stored screen data from the earlier point in time.
26. The article of manufacture of claim 20, wherein the instructions to display the stored screen data from the earlier point in time comprise instructions to smoothly play back a continuous data stream of the stored screen data beginning from the earlier point in time.
27. The article of manufacture of claim 20, wherein the instructions to display the stored screen data from the earlier point in time comprise instructions to step through key screenshots beginning from the earlier point in time.
28. The article of manufacture of claim 20, further comprising instructions to display, while the stored screen data from the earlier point in time is displayed, annotations made to the stored screen data.
29. A method for facilitating the display, during an ongoing online meeting, of a previously presented portion of the meeting, the method comprising:
receiving, at a server computing device, live screen data for a current point in time for an ongoing online meeting, the ongoing online meeting being hosted by a presenter computing device;
transmitting the live screen data from the server computing device to a viewer computing device for display thereat;
storing, on the server computing device, at least a portion of the live screen data while the meeting is ongoing;
receiving, at the server computing device, a selection of a point in time earlier than the current point in time; and
transmitting, from the server computing device to the viewer computing device while the meeting is still ongoing, stored screen data from the earlier point in time for display thereat.
30. The method of claim 29, wherein the selection of the earlier point in time results from selecting an image thumbnail of a screenshot from the earlier point in time.
31. The method of claim 29, wherein the selection of the earlier point in time results from at least one of rewinding, forwarding, or seeking the stored screen data.
32. The method of claim 29, further comprising:
storing, on the server computing device while the meeting is ongoing, at least a portion of live audio data for the current point in time for the ongoing online meeting; and transmitting, from the server computing device to the viewer computing device while the meeting is still ongoing, stored audio data from the earlier point in time for playback thereat.
33. The method of claim 32, further comprising synchronizing, at the server computing device, the stored audio data with the stored screen data prior to transmission thereof.
34. The method of claim 29, further comprising, after receiving the selection, transmitting additional screen data that was stored, but not previously transmitted to the viewer computing device.
35. The method of claim 29, wherein transmitting the stored screen data from the earlier point in time comprises transmitting key screenshots beginning from the earlier point in time.
36. The method of claim 29, further comprising transmitting, while transmitting the stored screen data from the earlier point in time, annotations made to the stored screen data.
37. A server computing device for facilitating the display, during an ongoing online meeting, of a previously presented portion of the meeting, the server computing device comprising:
computer memory for storing at least a portion of live screen data for a current point in time for an ongoing online meeting, the ongoing online meeting being hosted by a presenter computing device;
a transmitter for transmitting to a viewer computing device i) the live screen data for display thereat, and ii) stored screen data from a point in time earlier than the current point in time; and
a selection module for receiving a selection, while the meeting is still ongoing, of the earlier point in time and for instructing the transmitter to transmit the stored screen data from the earlier point in time to the viewer computing device for display thereat while the meeting is still ongoing.
38. The server computing device of claim 37, wherein the computer memory further stores audio data, and wherein the transmitter further transmits, to the viewer computing device while the meeting still ongoing, stored audio data from the earlier point in time.
39. The server computing device of claim 38, further comprising a synchronization module for synchronizing the stored audio data with the stored screen data prior to transmission thereof.
40. The server computing device of claim 37, wherein the transmitter further transmits, after receiving instruction from the selection module, additional screen data that was stored, but not previously transmitted to the viewer computing device.
41. The server computing device of claim 37, wherein the transmitter, in transmitting the stored screen data from the earlier point in time, transmits key screenshots beginning from the earlier point in time.
42. The server computing device of claim 37, wherein the transmitter, in transmitting the stored screen data from the earlier point in time, further transmits annotations made to the stored screen data.
43. An article of manufacture storing computer-readable instructions thereon for facilitating the display, during an ongoing online meeting, of a previously presented portion of the meeting, the article of manufacture comprising:
instructions to receive, at a server computing device, live screen data for a current point in time for an ongoing online meeting hosted by a presenter computing device;
instructions to transmit the live screen data from the server computing device to a viewer computing device for display thereat;
instructions to store, on the server computing device, at least a portion of the live screen data while the meeting is ongoing;
instructions to receive, at the server computing device, a selection of a point in time earlier than the current point in time; and
instructions to transmit, from the server computing device to the viewer computing device while the meeting is still ongoing, stored screen data from the earlier point in time for display thereat.
44. The article of manufacture of claim 43, further comprising:
instructions to store, on the server computing device while the meeting is ongoing, at least a portion of live audio data for the current point in time for the ongoing online meeting; and instructions to transmit, from the server computing device to the viewer computing device while the meeting is still ongoing, stored audio data from the earlier point in time for playback thereat.
45. The article of manufacture of claim 44, further comprising instructions to
synchronize, at the server computing device, the stored audio data with the stored screen data prior to transmission thereof.
46. The article of manufacture of claim 43, further comprising instructions to transmit, after receiving the selection, additional screen data that was stored, but not previously transmitted to the viewer computing device.
47. The article of manufacture of claim 43, wherein the instructions to transmit the stored screen data from the earlier point in time comprise instructions to transmit key screenshots beginning from the earlier point in time.
48. The article of manufacture of claim 43, wherein the instructions to transmit the stored screen data from the earlier point in time comprise instructions to further transmit annotations made to the stored screen data.
49. A method for facilitating navigation of previously presented screen data in an ongoing online meeting, the method comprising:
storing screen data representing a previously presented portion of an ongoing online meeting;
capturing, in response to a trigger event, a screenshot of the screen data for the ongoing online meeting; and
causing the display, on a viewer computing device while the meeting is still ongoing, of an image thumbnail generated from the screenshot, the image thumbnail facilitating navigation, on the viewer computing device, of the previously presented portion of the ongoing online meeting.
50. The method of claim 49, wherein each of the screenshot and the image thumbnail comprises a timestamp pointing to a point in time in the previously presented portion of the ongoing online meeting.
51. The method of claim 49, further comprising transmitting the image thumbnail to a plurality of viewer computing devices for display thereat.
52. The method of claim 49, wherein the screenshot is captured on one of a server computing device or the viewer computing device.
53. The method of claim 49, wherein the trigger event comprises the passage of a period of time.
54. The method of claim 49, wherein the trigger event comprises a number of changed pixels in the stored screen data increasing past a threshold.
55. The method of claim 49, wherein the trigger event comprises a size of an
accumulative bounding box encapsulating changes to the stored screen data increasing past a threshold.
56. The method of claim 49, wherein the screen data is represented by a plurality of tiles, and wherein the trigger event comprises a number of tiles encapsulating changes to the stored screen data increasing past a threshold.
57. The method of claim 49, wherein the trigger event comprises an operating system event.
58. The method of claim 57, wherein the operating system event comprises at least one of a mouse click, a key press, a change in an active window, or a change in a title of an active window.
59. The method of claim 49, wherein the trigger event comprises an application event.
60. The method of claim 59, wherein the application event comprises at least one of a slide transition or an opening of a new file.
61. The method of claim 49, further comprising suppressing the capture of a second screenshot if a second trigger event occurs too close in time to a first trigger event.
62. The method of claim 49, further comprising suppressing the capture of a second screenshot if the screen data comprises video data.
63. The method of claim 49, further comprising switching from a first trigger to a second trigger in response to the output of video data during the ongoing online meeting.
64. The method of claim 49, further comprising causing the display, at the viewer computing device, of screen data for a current point in time for an ongoing online meeting.
65. The method of claim 49, further comprising causing audio data for a current point in time for an ongoing online meeting to be played at the viewer computing device.
66. A system for facilitating navigation of previously presented screen data in an ongoing online meeting, the system comprising:
a storage device for storing screen data representing a previously presented portion of an ongoing online meeting;
an image processing module for capturing, in response to a trigger event, a screenshot of the screen data for the ongoing online meeting; and
a display module for causing the display, on a viewer computing device while the meeting is still ongoing, of an image thumbnail generated from the screenshot, the image thumbnail facilitating navigation, on the viewer computing device, of the previously presented portion of the ongoing online meeting.
67. The system of claim 66, wherein each of the screenshot and the image thumbnail comprises a timestamp pointing to a point in time in the previously presented portion of the ongoing online meeting.
68. The system of claim 66, further comprising a synchronization module for transmitting the image thumbnail to a plurality of viewer computing devices.
69. The system of claim 66, wherein the trigger event comprises the passage of a period of time.
70. The system of claim 66, wherein the trigger event comprises a number of changed pixels in the stored screen data increasing past a threshold.
71. The system of claim 66, wherein the trigger event comprises a size of an accumulative bounding box encapsulating changes to the stored screen data increasing past a threshold.
72. The system of claim 66, wherein the screen data is represented by a plurality of tiles, and wherein the trigger event comprises a number of tiles encapsulating changes to the stored screen data increasing past a threshold.
73. The system of claim 66, wherein the trigger event comprises an operating system event.
74. The system of claim 73, wherein the operating system event comprises at least one of a mouse click, a key press, a change in an active window, or a change in a title of an active window.
75. The system of claim 66, wherein the trigger event comprises an application event.
76. The system of claim 75, wherein the application event comprises at least one of a slide transition or an opening of a new file.
77. The system of claim 66, wherein the image processing module suppresses the capture of a second screenshot if a second trigger event occurs too close in time to a first trigger event.
78. The system of claim 66, wherein the image processing module suppresses the capture of a second screenshot if the screen data comprises video data.
79. The system of claim 66, wherein the image processing module switches from using a first trigger to using a second trigger in response to the output of video data during the ongoing online meeting.
80. An article of manufacture comprising computer-readable instructions thereon for facilitating navigation of previously presented screen data in an ongoing online meeting, the article of manufacture comprising:
instructions to store, in computer memory, screen data representing a previously presented portion of an ongoing online meeting;
instructions to capture, in response to a trigger event, a screenshot of the screen data for the ongoing online meeting; and instructions to cause the display, on a viewer computing device while the meeting is still ongoing, of an image thumbnail generated from the screenshot, the image thumbnail facilitating navigation, on the viewer computing device, of the previously presented portion of the ongoing online meeting.
81. The article of manufacture of claim 80, wherein each of the screenshot and the image thumbnail comprises a timestamp pointing to a point in time in the previously presented portion of the ongoing online meeting.
82. The article of manufacture of claim 80, further comprising instructions to transmit the image thumbnail to a plurality of viewer computing devices.
83. The article of manufacture of claim 80, wherein the trigger event comprises the passage of a period of time.
84. The article of manufacture of claim 80, wherein the trigger event comprises a number of changed pixels in the stored screen data increasing past a threshold.
85. The article of manufacture of claim 80, wherein the trigger event comprises a size of an accumulative bounding box encapsulating changes to the stored screen data increasing past a threshold.
86. The article of manufacture of claim 80, wherein the screen data is represented by a plurality of tiles, and wherein the trigger event comprises a number of tiles encapsulating changes to the stored screen data increasing past a threshold.
87. The article of manufacture of claim 80, wherein the trigger event comprises an operating system event.
88. The article of manufacture of claim 87, wherein the operating system event comprises at least one of a mouse click, a key press, a change in an active window, or a change in a title of an active window.
89. The article of manufacture of claim 80, wherein the trigger event comprises an application event.
90. The article of manufacture of claim 89, wherein the application event comprises at least one of a slide transition or an opening of a new file.
91. The article of manufacture of claim 80, further comprising instructions to suppress the capture of a second screenshot if a second trigger event occurs too close in time to a first trigger event.
92. The article of manufacture of claim 80, further comprising instructions to suppress the capture of a second screenshot if the screen data comprises video data.
93. The article of manufacture of claim 80, further comprising instructions to switch from using a first trigger to using a second trigger in response to the output of video data during the ongoing online meeting.
94. The article of manufacture of claim 80, further comprising instructions to cause the display, at the viewer computing device, of screen data for a current point in time for an ongoing online meeting.
95. The article of manufacture of claim 80, further comprising instructions to cause audio data for a current point in time for an ongoing online meeting to be played at the viewer computing device.
96. A method for sharing, during an ongoing online meeting, an annotation, the method comprising:
receiving, at a server computing device from a first computing device, an annotation to a screenshot representing a previously presented portion of an online meeting of which the first computing device is a participant, the screenshot having been captured in response to a trigger event during the online meeting and representable as an image thumbnail;
identifying a second computing device participating in the online meeting, the second computing device having not received the annotation; and
transmitting the annotation from the server computing device to the second computing device for display thereat during the ongoing online meeting.
97. The method of claim 96, further comprising: receiving, at the server computing device from the second computing device, a second annotation to the screenshot; and
transmitting the second annotation from the server computing device to the first computing device for display thereat during the ongoing online meeting.
98. The method of claim 96, further comprising:
capturing, at the server computing device, a plurality of screenshots each i) representing a previously presented portion of the online meeting and ii) comprising a timestamp pointing to a point in time in the online meeting at which the screenshot was captured; and
transmitting each of the plurality of timestamps to the first and second computing devices.
99. The method of claim 98, further comprising transmitting each of the plurality of screenshots to the first and second computing devices.
100. The method of claim 99, wherein the plurality of screenshots are transmitted over a first communications channel and the online meeting is transmitted over a second
communications channel.
101. The method of claim 99, wherein the annotation is transmitted over a first
communications channel and the plurality of screenshots are transmitted over a second communications channel.
102. The method of claim 96, further comprising:
capturing, at the first computing device, a plurality of screenshots each i) representing a previously presented portion of the online meeting and ii) comprising a timestamp pointing to a point in time in the online meeting at which the screenshot was captured; and
transmitting each of the plurality of timestamps to the second computing device.
103. The method of claim 102, further comprising transmitting each of the plurality of screenshots to the second computing device.
104. The method of claim 103, wherein the plurality of screenshots are transmitted over a first communications channel and the online meeting is transmitted over a second
communications channel.
105. The method of claim 103, wherein the annotation is transmitted over a first communications channel and the plurality of screenshots are transmitted over a second communications channel.
106. A server computing device for sharing, during an ongoing online meeting, an annotation, the server computing device comprising:
a receiver for receiving, from a first computing device, an annotation to a screenshot representing a previously presented portion of an online meeting of which the first computing device is a participant, the screenshot having been captured in response to a trigger event during the online meeting and representable as an image thumbnail;
a synchronization module for identifying a second computing device participating in the online meeting, the second computing device having not received the annotation; and a transmitter for transmitting the annotation to the second computing device for display thereat during the ongoing online meeting.
107. The server computing device of claim 106, wherein the receiver further receives a second annotation to the screenshot from the second computing device, and wherein the transmitter further transmits the second annotation to the first computing device for display thereat during the ongoing online meeting.
108. The server computing device of claim 106, further comprising an image processing module for capturing a plurality of screenshots each i) representing a previously presented portion of the online meeting and ii) comprising a timestamp pointing to a point in time in the online meeting at which the screenshot was captured, and wherein the transmitter further transmits the plurality of timestamps to the first and second computing devices.
109. The server computing device of claim 108, wherein the transmitter further transmits the plurality of screenshots to the first and second computing devices.
110. The server computing device of claim 106, wherein the receiver further receives, from the first computing device, a plurality of timestamps each pointing to a separate point in time in the online meeting at which a screenshot was captured, and wherein the transmitter further transmits the plurality of timestamps to the second computing device.
111. The server computing device of claim 106, wherein the receiver further receives, from the first computing device, a plurality of screenshots each representing a previously presented portion of the online meeting, and wherein the transmitter further transmits the plurality of screenshots to the second computing device.
112. An article of manufacture comprising computer-readable instructions thereon for sharing, during an ongoing online meeting, an annotation, the article of manufacture comprising:
instructions to receive, from a first computing device, an annotation to a screenshot representing a previously presented portion of an online meeting of which the first computing device is a participant, the screenshot having been captured in response to a trigger event during the online meeting and representable as an image thumbnail;
instructions to identify a second computing device participating in the online meeting, the second computing device having not received the annotation; and
instructions to transmit the annotation to the second computing device for display thereat during the ongoing online meeting.
113. The article of manufacture of claim 112, further comprising:
instructions to receive, from the second computing device, a second annotation to the screenshot; and
instructions to transmit the second annotation to the first computing device for display thereat during the ongoing online meeting.
114. The article of manufacture of claim 112, further comprising:
instructions to capture a plurality of screenshots each i) representing a previously presented portion of the online meeting and ii) comprising a timestamp pointing to a point in time in the online meeting at which the screenshot was captured; and instructions to transmit each of the plurality of timestamps to the first and second computing devices.
115. The article of manufacture of claim 114, further comprising instructions to transmit each of the plurality of screenshots to the first and second computing devices.
116. The article of manufacture of claim 112, further comprising:
instructions to receive, from the first computing device, a plurality of timestamps each pointing to a separate point in time in the online meeting at which a screenshot was captured; and
instructions to transmit the plurality of timestamps to the second computing device.
117. The article of manufacture of claim 112, further comprising:
instructions to receive, from the first computing device, a plurality of screenshots each representing a previously presented portion of the online meeting; and
instructions to transmit each of the plurality of screenshots to the second computing device.
118. A method for generating a summary document of an online meeting, the method comprising:
storing, in computer memory, at least a portion of screen data representing a previously presented portion of an online meeting;
capturing a plurality of screenshots in response to trigger events, each screenshot i) being based at least in part on the stored screen data and ii) representable as an image thumbnail; and
combining the plurality of screenshots, thereby generating a summary document summarizing the online meeting.
119. The method of claim 118, further comprising transmitting the summary document to a viewer computing device attending the meeting.
120. The method of claim 118, further comprising:
receiving an annotation from a viewer computing device attending the meeting; and adding the annotation to the summary document.
121. The method of claim 120, wherein the annotation is encrypted.
122. The method of claim 120, wherein the annotation is unencrypted.
123. The method of claim 118, wherein the summary document is generated by a server computing device.
124. The method of claim 118, wherein the summary document is generated by a viewer computing device.
125. The method of claim 118, wherein at least one of the plurality of screenshots is encrypted.
126. A system for generating a summary document of an online meeting, the system comprising:
a storage device for storing at least a portion of screen data representing a previously presented portion of an online meeting;
an image processing module for capturing a plurality of screenshots in response to trigger events, each screenshot i) being based at least in part on the stored screen data and ii) representable as an image thumbnail; and
a combining module for combining the plurality of screenshots, thereby generating a summary document summarizing the online meeting.
127. The system of claim 9, further comprising a transmitter for transmitting the summary document to a viewer computing device attending the meeting.
128. The system of claim 9, further comprising a receiver for receiving an annotation from a viewer computing device attending the meeting, and wherein the combining module further adds the annotation to the summary document.
129. The system of claim 128, wherein the annotation is encrypted.
130. The system of claim 128, wherein the annotation is unencrypted.
131. The system of claim 9, wherein at least one of the plurality of screenshots is encrypted.
132. An article of manufacture comprising computer-readable instructions thereon for generating a summary document of an online meeting, the article of manufacture comprising: instructions to store, in computer memory, at least a portion of screen data
representing a previously presented portion of an online meeting;
instructions to capture a plurality of screenshots in response to trigger events, each screenshot i) being based at least in part on the stored screen data and ii) representable as an image thumbnail; and
instructions to combine the plurality of screenshots, thereby generating a summary document summarizing the online meeting.
133. The article of manufacture of claim 132, further comprising instructions to transmit the summary document to a viewer computing device attending the meeting.
134. The article of manufacture of claim 132, further comprising:
instructions to receive an annotation from a viewer computing device attending the meeting; and
instructions to add the annotation to the summary document.
135. The article of manufacture of claim 134, wherein the annotation is encrypted.
136. The article of manufacture of claim 134, wherein the annotation is unencrypted.
137. The article of manufacture of claim 132, wherein at least one of the plurality of screenshots is encrypted.
PCT/US2011/066396 2010-12-23 2011-12-21 Systems, methods and devices for facilitating online meetings WO2012088230A1 (en)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US12/978,214 2010-12-23
US12/978,222 2010-12-23
US12/978,251 US8922617B2 (en) 2010-12-23 2010-12-23 Systems, methods, and devices for time-shifting playback of a live online meeting
US12/978,218 2010-12-23
US12/978,222 US9269072B2 (en) 2010-12-23 2010-12-23 Systems, methods, and devices for facilitating navigation of previously presented screen data in an ongoing online meeting
US12/978,251 2010-12-23
US12/978,218 US9129258B2 (en) 2010-12-23 2010-12-23 Systems, methods, and devices for communicating during an ongoing online meeting
US12/978,214 US9282289B2 (en) 2010-12-23 2010-12-23 Systems, methods, and devices for generating a summary document of an online meeting

Publications (1)

Publication Number Publication Date
WO2012088230A1 true WO2012088230A1 (en) 2012-06-28

Family

ID=45498129

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2011/066396 WO2012088230A1 (en) 2010-12-23 2011-12-21 Systems, methods and devices for facilitating online meetings

Country Status (1)

Country Link
WO (1) WO2012088230A1 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2690588A1 (en) * 2012-07-24 2014-01-29 Samsung Electronics Co., Ltd Function based on a cloud service
EP3142052A1 (en) * 2015-09-11 2017-03-15 Barco n.v. Devices, system and method for sharing a presentation
US11087264B2 (en) 2015-03-16 2021-08-10 International Business Machines Corporation Crowdsourcing of meetings
US11764985B2 (en) 2021-04-15 2023-09-19 International Business Machines Corporation Augmented intelligence based virtual meeting user experience improvement
WO2024152693A1 (en) * 2023-01-16 2024-07-25 华为云计算技术有限公司 Video stream display method and apparatus, and device, system and storage medium

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020165721A1 (en) * 2001-05-04 2002-11-07 Chang Kenneth H.P. Real-time control of playback rates in presentations
EP1796378A1 (en) * 2005-12-12 2007-06-13 LG Electronics Inc. Method of displaying television receiver input signal according to time-shift function and television receiver using the same
US20090003339A1 (en) * 2007-06-28 2009-01-01 Rebelvox, Llc Telecommunication and multimedia management method and apparatus

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020165721A1 (en) * 2001-05-04 2002-11-07 Chang Kenneth H.P. Real-time control of playback rates in presentations
EP1796378A1 (en) * 2005-12-12 2007-06-13 LG Electronics Inc. Method of displaying television receiver input signal according to time-shift function and television receiver using the same
US20090003339A1 (en) * 2007-06-28 2009-01-01 Rebelvox, Llc Telecommunication and multimedia management method and apparatus

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2690588A1 (en) * 2012-07-24 2014-01-29 Samsung Electronics Co., Ltd Function based on a cloud service
US11087264B2 (en) 2015-03-16 2021-08-10 International Business Machines Corporation Crowdsourcing of meetings
EP3142052A1 (en) * 2015-09-11 2017-03-15 Barco n.v. Devices, system and method for sharing a presentation
US10142590B2 (en) 2015-09-11 2018-11-27 Barco Nv Devices, system and method for sharing a presentation
US11764985B2 (en) 2021-04-15 2023-09-19 International Business Machines Corporation Augmented intelligence based virtual meeting user experience improvement
WO2024152693A1 (en) * 2023-01-16 2024-07-25 华为云计算技术有限公司 Video stream display method and apparatus, and device, system and storage medium

Similar Documents

Publication Publication Date Title
US9269072B2 (en) Systems, methods, and devices for facilitating navigation of previously presented screen data in an ongoing online meeting
US9282289B2 (en) Systems, methods, and devices for generating a summary document of an online meeting
US9129258B2 (en) Systems, methods, and devices for communicating during an ongoing online meeting
US8922617B2 (en) Systems, methods, and devices for time-shifting playback of a live online meeting
CN110099039B (en) Method and system for recording and playing back online collaboration conference
US10531044B2 (en) Intelligent virtual assistant system and method
US10681324B2 (en) Communication session processing
EP3335170B1 (en) Method for archiving a collaboration session with a multimedia data stream and view parameters
US9426214B2 (en) Synchronizing presentation states between multiple applications
US9584571B2 (en) System and method for capturing, editing, searching, and delivering multi-media content with local and global time
US9270715B2 (en) System and method for coordinating display of shared video data
US7165213B1 (en) Method and system for coordinating media and messaging operations in an information processing system
US9485542B2 (en) Method and apparatus for adding and displaying an inline reply within a video message
US20090193345A1 (en) Collaborative interface
US20130103770A1 (en) Distributed semi-synchronized event driven playback of multimedia
WO2012088230A1 (en) Systems, methods and devices for facilitating online meetings
Ziewer et al. Transparent teleteaching.
US12010161B1 (en) Browser-based video production
JP2004266578A (en) Moving image editing method and apparatus
AU2014213560A1 (en) Communication Platform and Method for Participants of a Text Message Conversation to Convey Real Emotions, and to Experience Shared Content Together at the Same Time
JP2008077164A (en) Communication program and recording medium

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11810748

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11810748

Country of ref document: EP

Kind code of ref document: A1