WO2015080565A1 - System and method for screen capturing based on computing and communication resources - Google Patents
System and method for screen capturing based on computing and communication resources Download PDFInfo
- Publication number
- WO2015080565A1 WO2015080565A1 PCT/MY2014/000180 MY2014000180W WO2015080565A1 WO 2015080565 A1 WO2015080565 A1 WO 2015080565A1 MY 2014000180 W MY2014000180 W MY 2014000180W WO 2015080565 A1 WO2015080565 A1 WO 2015080565A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- fps
- screen
- module
- capturing
- resource
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1813—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for computer conferences, e.g. chat rooms
- H04L12/1831—Tracking arrangements for later retrieval, e.g. recording contents, participants activities or behavior, network status
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1813—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for computer conferences, e.g. chat rooms
- H04L12/1827—Network arrangements for conference optimisation or adaptation
Definitions
- the present invention relates to a system and method for screen capturing in real-time transmission.
- the present invention relates to a system and method for capturing desktop screen adaptively based on current desktop application or content, local computing resource and local communication resource.
- Screen capturing is a basic technology in almost all screen sharing and e- conferencing tools in facilitating content sharing, remote access, project collaboration, and many other collaborative tasks. Screen capturing involves certain methods or processes.
- FIG. 2010/114543 A1 An example of a screen capture system is disclosed in PCT Publication No. 2010/114543 A1.
- the screen capture system stores in a memory, at least portions of screenshots of output presented on a display screen by a source and present the stored screenshots on the display screen when the source is not running.
- the desktop screen capturing does not consider the resource availability of the central processing unit.
- EP Patent No. 2079025 A1 discloses a capturing method and device for retrieving screen data to be captured.
- the capture method uses a program for causing a computer to execute a screen data information acquisition processing step of acquiring information of active screen data in screen data displayed on a screen; a determination processing step of determining whether or not the active screen data is from an application software to be captured based on the acquired information of the screen data; a capture processing step of capturing the active screen data when it is determined that the active screen data is from the application software to be captured in the determination processing step; and a save processing step of saving the screen data captured in the capture processing step.
- the prior art does not consider the resource availability of the central processing unit in screen capturing wherein there is no progressive adjustment and resetting of capturing rate based on application changing condition and network bandwidth.
- a system (100) for screen capturing based on local computing and communication resources comprises of a Graphical User Interface (GUI) (10) for interaction through graphical icons and visual indicators, a Session Module (20) to manage screen sharing session of a remote presentation, a Security Module (30) to allow selected user to join the screen sharing session, and a Connection Module (40) to announce and discover name of the screen sharing session
- GUI Graphical User Interface
- the system (100) is characterised in that it further includes a Screen Analysis Module (50) to determine an optimal screen or content capturing rate based on local computing resource and communication resource, wherein the Screen Analysis Module (50) comprises of a Screen Coordinator Module (52) to organize the process of determining the optimal screen or content capturing rate based on desktop application or content and the actual screen capturing; and a Resource Tracker Module (51) to determine the optimal screen or content capturing rate based on the desktop application or content, local computing resource and communication resource.
- GUI Graphical User Interface
- Session Module to manage screen sharing session of a remote presentation
- the Resource Tracker Module (51) further comprises of a Resource Controller Module (51c) to coordinate the monitoring, collecting and processing of collected information; a Network Agent Module (51a) to monitor and analyse the communication resource to provide the current network condition which includes current bandwidth availability and throughput; and an Application Agent Module (51b) to monitor and analyse the computing resource and the screen content or desktop applications.
- a Resource Controller Module 51c
- the Network Agent Module 51a
- an Application Agent Module 51b
- a method for screen capturing based on local computing and communication resources is characterised by the steps of estimating and determining an optimal screen capturing frame rate (FPS) based on a current desktop application or content, local computing resource and local communication resource by the Resource Tracker Module (51); generating and updating a dynamic desktop profile; sending the dynamic desktop profile to the Screen Coordinator Module (52) by the resource Tracker Module (51); and performing the screen capturing based on the dynamic desktop profile; and storing captured screen to a local shared memory by the Screen Coordinator Module (52).
- FPS screen capturing frame rate
- estimating and determining an optimal capturing frame rate (FPS) based on local computing and communication resources by the Resource Tracker Module (51) includes the steps retrieving a user or a system configuration by the Resource Tracker Module (51); determining a topmost or active application or content; determining the optimal capturing frame rate (FPS_MAX) based on the available local computing resources; setting FPS as system frame rate (FPS_SYS); determining the optimal FPS based on network bandwidth (FPS_BW) if FPS is less than FPS_SYS; setting FPS as FPS_BW if the FPS is less than FPS_BW; determining the capturing frame rate based on topmost/active application or content (FPS_APP); setting FPS as FPS_APP if FPS_APP is less than the FPS; and updating and building the dynamic desktop profile based on the FPS.
- FPS_MAX optimal capturing frame rate
- estimating and determining an optimal capturing frame rate (FPS_MAX) based on local computing resources by the Resource Tracker Module (51) includes the steps of if the system (100) is operating for the first time, capturing the screen for a predetermined time to determine FPS_MAX by the Screen Coordinator Module (52) and determining as well as mapping the available CPU percentage as FPS_MAX by accessing a Resource Management module at the operating system level; determining the current CPU percentage; determining the difference between the current CPU percentage and the last CPU percentage; wherein the difference between the current CPU percentage and the last CPU percentage is compared based on an Adjustment Threshold (AT); updating the FPS_MAX based on the percentage changes of the current CPU percentage and last CPU percentage if the difference between current CPU percentage and last CPU percentage is greater or equal to AT; recording the latest CPU percentage is re for future reference if the difference between the current CPU percentage and the last CPU percentage is less than the AT; and returning and recording the FPS_MAX as the capturing frame rate based on the local computing
- determining an optimal capturing frame rate (FPS_MAX) based on local communication resources by the Resource Tracker Module (51) includes the steps of if the system (100) operates for the first time, determining the available bandwidth, converting the determined network bitrate to frame rate and recording as well as returning the frame rate as the FPS_BW to the Resource Controller Module (51c); monitoring the network bitrate during streaming of a captured screen converting the network bitrate to frame rate using the Kush Gauge formula; verifying whether there is enough bandwidth for transmitting at current FPS by comparing the FPS with FPS_BW; returning and recording the FPS_SYS as the FPS_BW if the FPS is greater than the FPS_BW; verifying whether there is a change of the topmost or active application by the Resource Tracker Module (51) if the FPS is less than FPS_BW; returning and recording the FPS_BW as FPS_SYS if there is a change of the topmost or active application; comparing the FPS with the FPS_SYS
- determining a capturing frame rate based on desktop application or content (FPS_APP) by the Resource Tracker Module (51) includes the steps of determining whether the application includes video content or not; setting the frame rate for capturing based on content (FPS_APP) to a configurable frame rate of non- video (text) application (FPS_TEXT) if the application does not include any video content; retrieving video file properties; assigning the video frame rate (FPS_VIDEO) to the FPS_APP; setting system frame rate (FPS_SYS) as the FPS_APP; and recording FPS VIDEO as the FPS_APP.
- FPS_APP desktop application or content
- FIG. 1 illustrates a system (100) for screen capturing based on computing and communication resources according to an embodiment of the present invention.
- FIG. 2 illustrates a flowchart of a method for screen capturing based on computing and communication resources of the system (100) of FIG. 1.
- FIG. 3 illustrates a flowchart of sub-steps for estimating and determining an optimal screen capturing frame rate (FPS) based on communication resources of the method of FIG. 2.
- FPS screen capturing frame rate
- FIG. 4 illustrates a flowchart of sub-steps for estimating and determining an optimal capturing frame rate (FPS_MAX) based on computing resources of the method of FIG. 2.
- FIG. 5 illustrates a flowchart of sub-steps for determining an optimal capturing frame rate (FPS_MAX) based on computing and communication resources of the method of FIG. 2.
- FIG. 6 illustrates a flowchart of sub-steps for determining a capturing frame rate based on topmost application or content (FPS_APP) of the method of FIG. 2.
- FIG. 1 shows a system (100) for screen capturing based on computing and communication resources according to an embodiment of the present invention.
- the system (100) provides a screen capturing which periodically monitors local resource and context such as available network bandwidth, CPU capacity and screen content or applications.
- the system (100) comprises of a Graphical User Interface (GUI) (10), a Session Module (20), a Security Module (30), a Connection Module (40) and a Screen Analysis Module (50).
- GUI is a user interface for interaction through graphical icons and visual indicators such as secondary notation, as opposed to text- based interfaces, typed command labels or text navigation.
- a Session Module (20) is the main coordinator of a remote presentation, wherein the Session Module (20) manages screen sharing session of the remote presentation.
- the Session Module (20) comprises of a Moderator Module (21), a Presenter Module (23), a Viewer Module (22) and a Main Module (24).
- the Session Module (20) is connected to the GUI (10), Security Module (30), Connection Module (40) and Screen Analysis Module (50).
- the Moderator Module (21) is used to listen and receive screenshots over the network from the Presenter Module (23).
- the Moderator Module (21) also performs access control to allow or disallow the connection of the Presenter Module (23) or the Viewer Module (22) with the Session Module (20).
- the Moderator Module (21) projects the received screenshots from the Presenter Module (23) to a connected projector and broadcasts the received screenshots and relevant screen sharing session information to the Viewer Module (22).
- the relevant screen sharing session information refers to the information which describes the sessions such as session name, number of participants and list of shared files.
- the Presenter Module (23) is used to search for the Moderator Module (21) wherein the Presenter Module (23) is connected to the projector.
- the Presenter Module (23) requests access to the screen sharing session from the Moderator Module (21).
- the Presenter Module (23) also captures and sends screenshots to the Moderator Module (21).
- the Presenter Module (23) broadcasts the screenshots and relevant screen sharing session information to the Viewer Module (22).
- the Viewer Module (22) is used to determine current screen sharing session based on the relevant session information broadcasted by the Moderator Module (21) or the Presenter Module (23).
- the Viewer Module (22) provides a list of screen sharing session founds over the network on the GUI (10) which allows the user to select and join a particular screen sharing session.
- the Viewer Module (22) requests access to the screen sharing session from the Moderator Module (21).
- the Viewer Module (22) displays the received screenshots on a local screen output.
- the local screen output refers to objects appearing on the screen including text, picture, graphic, animation, video and pointing commands such as mouse pointer.
- the Main Module (24) is used to manage and coordinate the execution of the Moderator Module (21), Presenter Module (23) and Viewer Module (22).
- the Main Module (24) is connected to the GUI (10), Security Module (30), Connection Module (40) and Screen Analysis Module (50).
- the Security Module (30) is used for allowing only selected user to join the screen sharing session.
- the Security Module (30) gives access rights to the user to establish a connection with the Session Module (20) and perform access control.
- the Security Module (30) is connected to the Session Module (20).
- the Connection Module (40) is used for announcing and discovering name of the screen sharing session.
- the Connection Module (40) identifies the central processing unit (CPU) which operates the Moderator Module (21) to establish a connection to the CPU for data transmission.
- the Connection Module (40) is connected to the Session Module (20).
- the Screen Analysis Module (50) is used to determine an optimal screen or content capturing rate based on local computing resource and communication resource.
- the local computing resource includes a processor capacity, a memory capacity, current processor utilization, current memory utilization and other hardware components related to the performance of the system (100).
- the local communication resource includes the current network bandwidth availability, throughput, delay, jitter, packet lost and other parameters related to the performance of the system (100).
- the local computing resource refers to the network bandwidth.
- the Screen Analysis Module (50) is connected to the Session Module (20).
- the Screen Analysis Module (50) comprises of a Screen Coordinator Module (52) and a Resource Tracker Module (51).
- the Screen Coordinator Module (52) is used to organize the process of determining the optimal screen or content capturing rate based on desktop application or content and the actual screen capturing.
- the desktop application or content includes of objects or windows appear on the screen such as text, picture, graphic, animation and video.
- the Screen Coordinator Module (52) is also used to display the received screenshots on the local screen output.
- the Resource Tracker Module (51) is used to determine the optimal screen or content capturing rate based on the desktop application or content, local computing resource and communication resource.
- the Resource Tracker Module (51) delivers a dynamic desktop profile to the Screen Coordinator Module (52).
- the dynamic desktop profile includes the recommended screen capturing rate, current resolution, colour scheme, number of windows, topmost or active window, largest window and other properties related to desktop objects or elements.
- the number of windows, topmost or active window and largest window are determined by the Screen Coordinator Module (52) in capturing the whole desktop screen or a particular window or the top most window.
- the Resource Tracker Module (51) further comprises of a Resource Controller Module (51c), a Network Agent Module (51a) and an Application Agent Module (51b).
- the Resource Controller Module (51c) is used to coordinate the monitoring, collecting and processing of information collected from the Network Agent Module (51a) and Application Agent Module (51b).
- the Network Agent Module (51a) is used to monitor and analyse the communication resource to provide the current network condition which includes current bandwidth availability and throughput.
- the Application Agent Module (51 b) is used to monitor and analyse the computing resource and the screen content or desktop applications. It produces both system and application information.
- the system information preferably refers to the CPU usage and memory availability, while the application information preferably refers to the current resolution, colour scheme, number of windows, topmost or active window, largest window and other properties related to desktop objects or elements
- FIG. 2 shows a flowchart of a method for screen capturing based on computing and communication resources of the system (100) of FIG. 1.
- the system (100) is initialized as in step 101, wherein the initialization phase includes node discovery of the Moderator Module (21), Presenter Module (23) and Viewer W
- the node discovery is performed by means of broadcasting and listening to beacon message which contains contacts such as IP address and session names of the Moderator Module (21). If there is a screen capturing request, the Screen Coordinator Module (52) coordinates the process of determining the optimal screen capturing rate and the process of screen capturing as in decision 103 and step 104. Otherwise, the method returns to step 101.
- step 105 the Resource Tracker Module (51) is invoked to estimate and determine the optimal screen capturing frame rate (FPS) based on the current desktop application or content, local computing resource and local communication resource.
- the Resource Tracker Module (51) generates and updates the dynamic desktop profile and sends the dynamic desktop profile back to the Screen Coordinator Module (52) as in step 106.
- the Screen Coordinator Module (52) performs the screen capturing based on the dynamic desktop profile and saves the screen captured to a local shared memory as in step 07 and 108.
- the local shared memory may vary depending on the application and system performing the capturing. Preferably, the local shared memory such as RAM or Hard Disk.
- the system (100) receives a stop instruction as initiated by the user as in decision 109, the method is terminated. Otherwise, the method returns to step 105.
- FIG. 3 shows a flowchart of sub-steps for estimating and determining an optimal capturing frame rate (FPS_MAX) based on communication resources by the Resource Tracker Module (51) as in step 105 of the method of FIG. 2.
- the Resource Tracker Module (51) retrieves a user or a system configuration such as resolution and colour scheme. Then, the Resource Tracker Module (51) determines the topmost or active_application or content as in step 202.
- the optimal capturing frame rate (FPS_MAX) is determined based on the available local computing resources and sets the FPS to FPS_MAX.
- the screen capturing with higher frame rate than default FPS for capturing system frame rate is not required because the FPS_SYS is the preconfigured FPS for screen, wherein the FPS_SYS is set as the ideal capturing rate for the system (100). If FPS is higher than FPS_SYS, the FPS is set to FPS_SYS as in decision 205 and step 206. However, if FPS is less than FPS_SYS, the method continues to step 207, wherein the optimal FPS based on network bandwidth (FPS_BW) is determined. The FPS_BW is determined to verify whether there is sufficient bandwidth to stream at FPS rate.
- FPS_BW network bandwidth
- the FPS is set to FPS_BW as in step 209. However, if the FPS is higher than FPS_BW, the Resource Tracker Module (51) determines the capturing frame rate based on topmost/active application or content (FPS_APP) as in step 210.
- FPS_APP topmost/active application or content
- step 211 if the FPS_APP is less than the FPS, the FPS is set to FPS_APP as in step 212. However, if the FPS_APP is higher than the FPS, the method skips to step 213, wherein the Resource Tracker Module (51) updates and builds the dynamic desktop profile based on the FPS.
- the Resource Tracker Module (51) updates and builds the dynamic desktop profile based on the FPS.
- a timer is used to check the time for updating and building the dynamic desktop profile.
- decision 214 if the time for updating and building the dynamic desktop profile is longer than the pre-configured time interval, the method returns to the initial step 201. Otherwise, the system (100) determines whether to stop or continue the process as in decision 214 when the stop instruction is initiated by the user through the GUI (10).
- FIG. 4 shows a flowchart of sub-steps for estimating and determining an optimal capturing frame rate (FPS_MAX) based on computing resources by the Resource Tracker Module (51) as in step 105 of the method of FIG. 2.
- FPS_MAX optimal capturing frame rate
- the Screen Coordinator Module (52) captures the screen for a predetermined time to determine FPS_MAX as in step
- step 303 and 304 the available CPU percentage is determined and mapped as maximum capturing rate (FPS_MAX) by accessing a Resource Management module at the operating system level, wherein the Resource Management module refers to a "Task Manager” or " Windows Management Instrumentation Command- line (WMIC)" in windows which provide information such as CPU usage and Memory usage.
- FPS_MAX is returned and recorded as the capturing frame rate based on the local computing resource as in step 310.
- the current CPU percentage is determined as in step 305.
- step 306 the difference between the current CPU percentage and the last CPU percentage is determined.
- the difference between the current CPU percentage and the last CPU percentage is compared based on a configurable parameter defined as Adjustment Threshold (AT).
- the AT is defined to avoid frequent changes of capturing frame rate due to constant CPU utilization fluctuation.
- the FPS_MAX is updated based on the percentage changes of the current CPU percentage and last CPU percentage as in step 308 by using the following equation:
- FPS_MAX FPS_MAX * (current CPU * last CPU)
- step 309 FPS_MAX is returned and recorded as the capturing frame rate based on the local computing resource.
- FIG. 5 shows a flowchart of sub-steps for determining an optimal capturing frame rate (FPS_MAX) based on communication resources by the Resource Tracker Module (51) as in step 105 of the method of FIG. 2.
- a third party tool or generated dummy traffic is used to determine the available bandwidth when the system (100) operates before starting to capture the screen and getting available network bandwidth at run time as in step 401.
- the third party tool or the generated dummy traffic determines the available network bandwidth when the system (100) operates for the first time whereby the system (100) has not sent any actual traffic and has no history of its network condition.
- Iperf An example of the third party tool is Iperf, wherein Iperf is an open source tool that generates and pumps different traffic into network.
- the determined network bitrate is converted to frame rate using Kush Gauge formula as in step 402.
- Kush Gauge formula is defined as follows:
- Bit rate in kbps Pixel count * Motion factor *(0.07 + 1000);
- Pixel count Frame width * frame height * frame rate
- the frame rate is recorded as the FPS_BW and returned to the Resource Controller Module (51c) as in step 409.
- the Resource Tracker Module (51) monitors the network bitrate during streaming the captured screen as in step 404. In step 405, the network bitrate is converted to frame rate using the Kush Gauge formula. Later on, the Resource Tracker Module (51) verifies whether there is enough bandwidth for transmitting at current FPS by comparing the FPS with FPS_BW.
- FPS_SYS is returned and recorded as the FPS_BW as in step 409.
- the Resource Tracker Module (51) verifies whether there is a change of the topmost or active application as in decision 407.
- the verifying of the change of the application is to ensure that the system (100) observation of current network condition is as realistic as possible. For example, if the current topmost or active application is a non-video application, the system (100) transmits data with much lesser bitrate compare to a video application. Thus, for instance if the topmost or active application changes from non-video content to video content, the current data bitrate does not provide the actual available network bandwidth.
- the FPS_BW is sent at FPS_SYS to determine the network bandwidth availability as in decision 407 and step 408. Thus, the FPS needs to be increased. FPS_SYS is returned and recorded as the FPS_BW as in step 409.
- the FPS is compared with the FPS_SYS.
- decision 410 if the FPS is equal to the FPS_SYS, the method returns to step 408. If the FPS is greater than the FPS_SYS, FPS is increased by increment value of one and recorded as the FPS_BW as in step 411. The increment by one is to ensure a consistent network streaming.
- decision 412 if the new FPS is greater than the FPS_SYS, the method continues to step 409. If the new FPS is less than the FPS_SYS, the method returns to step 408.
- FIG. 6 shows a flowchart of sub-steps for determining a capturing frame rate based on topmost application or content (FPS_APP) by the Resource Tracker Module (51) as in step 105 of the method of FIG. 2. Initially, the Resource Tracker Module (51) determines whether the application includes video content or not as in decision 502.
- FPS_APP topmost application or content
- the frame rate for capturing based on content (FPS_APP) is set to a configurable frame rate of non- video (text) application (FPS_TEXT) as in step 503.
- FPS_TEXT is returned and recorded as the FPS_APP as in step 507.
- the Resource Tracker Module (51) retrieves video file properties as in step 504.
- the video file properties include video frame rate, video resolution, and video size.
- the Resource Tracker Module (51) assigns the video frame rate (FPS_VIDEO) to the FPS_APP and FPS_SYS is set as the FPS_APP as in step 505 and 506.
- FPS_VIDEO is returned and recorded as the FPS_APP. While embodiments of the invention have been illustrated and described, it is not intended that these embodiments illustrate and describe all possible forms of the invention. Rather, the words used in the specifications are words of description rather than limitation and various changes may be made without departing from the scope of the invention.
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
The present invention relates to a system (100) and method for screen capturing for real-time transmission. In particular, the present invention relates to a system (100) and method for capturing desktop screen adaptively based on current desktop application or content, local computing resource and local communication resource. The system (100) comprises of a Graphical User Interface (GUI) (10), a Session Module (20), a Security Module (30), a Connection Module (40) and a Screen Analysis Module (50).
Description
SYSTEM AND METHOD FOR SCREEN CAPTURING BASED ON COMPUTING AND COMMUNICATION RESOURCES
FIELD OF INVENTION
The present invention relates to a system and method for screen capturing in real-time transmission. In particular, the present invention relates to a system and method for capturing desktop screen adaptively based on current desktop application or content, local computing resource and local communication resource. BACKGROUND OF THE INVENTION
Screen capturing is a basic technology in almost all screen sharing and e- conferencing tools in facilitating content sharing, remote access, project collaboration, and many other collaborative tasks. Screen capturing involves certain methods or processes.
An example of a screen capture system is disclosed in PCT Publication No. 2010/114543 A1. The screen capture system stores in a memory, at least portions of screenshots of output presented on a display screen by a source and present the stored screenshots on the display screen when the source is not running. However, the desktop screen capturing does not consider the resource availability of the central processing unit.
In another example, EP Patent No. 2079025 A1 discloses a capturing method and device for retrieving screen data to be captured. The capture method uses a program for causing a computer to execute a screen data information acquisition processing step of acquiring information of active screen data in screen data displayed on a screen; a determination processing step of determining whether or not the active screen data is from an application software to be captured based on the acquired information of the screen data; a capture processing step of capturing the active screen data when it is determined that the active screen data is from the application software to be captured in the determination processing step; and a save processing step of saving the screen data captured in the capture processing step. However, the prior art does not consider the resource availability of the central processing unit in screen capturing wherein there is no progressive adjustment and
resetting of capturing rate based on application changing condition and network bandwidth.
Hence, there is need to provide a system for screen capturing which periodically monitors local resource and context such as available network bandwidth, CPU capacity and screen content or applications in order to produce the highest quality captured screen possible.
SUMMARY OF INVENTION
A system (100) for screen capturing based on local computing and communication resources comprises of a Graphical User Interface (GUI) (10) for interaction through graphical icons and visual indicators, a Session Module (20) to manage screen sharing session of a remote presentation, a Security Module (30) to allow selected user to join the screen sharing session, and a Connection Module (40) to announce and discover name of the screen sharing session wherein the system (100) is characterised in that it further includes a Screen Analysis Module (50) to determine an optimal screen or content capturing rate based on local computing resource and communication resource, wherein the Screen Analysis Module (50) comprises of a Screen Coordinator Module (52) to organize the process of determining the optimal screen or content capturing rate based on desktop application or content and the actual screen capturing; and a Resource Tracker Module (51) to determine the optimal screen or content capturing rate based on the desktop application or content, local computing resource and communication resource.
Preferably, the Resource Tracker Module (51) further comprises of a Resource Controller Module (51c) to coordinate the monitoring, collecting and processing of collected information; a Network Agent Module (51a) to monitor and analyse the communication resource to provide the current network condition which includes current bandwidth availability and throughput; and an Application Agent Module (51b) to monitor and analyse the computing resource and the screen content or desktop applications.
A method for screen capturing based on local computing and communication resources is characterised by the steps of estimating and determining an optimal screen capturing frame rate (FPS) based on a current desktop application or content, local computing resource and local communication resource by the Resource Tracker Module (51); generating and updating a dynamic desktop profile; sending the dynamic desktop profile to the Screen Coordinator Module (52) by the resource Tracker Module (51); and performing the screen capturing based on the dynamic desktop profile; and storing captured screen to a local shared memory by the Screen Coordinator Module (52).
Preferably, estimating and determining an optimal capturing frame rate (FPS) based on local computing and communication resources by the Resource Tracker Module (51) includes the steps retrieving a user or a system configuration by the Resource Tracker Module (51); determining a topmost or active application or content; determining the optimal capturing frame rate (FPS_MAX) based on the available local computing resources; setting FPS as system frame rate (FPS_SYS); determining the optimal FPS based on network bandwidth (FPS_BW) if FPS is less than FPS_SYS; setting FPS as FPS_BW if the FPS is less than FPS_BW; determining the capturing frame rate based on topmost/active application or content (FPS_APP); setting FPS as FPS_APP if FPS_APP is less than the FPS; and updating and building the dynamic desktop profile based on the FPS.
Preferably, estimating and determining an optimal capturing frame rate (FPS_MAX) based on local computing resources by the Resource Tracker Module (51) includes the steps of if the system (100) is operating for the first time, capturing the screen for a predetermined time to determine FPS_MAX by the Screen Coordinator Module (52) and determining as well as mapping the available CPU percentage as FPS_MAX by accessing a Resource Management module at the operating system level; determining the current CPU percentage; determining the difference between the current CPU percentage and the last CPU percentage; wherein the difference between the current CPU percentage and the last CPU percentage is compared based on an Adjustment Threshold (AT); updating the FPS_MAX based on the percentage changes of the current CPU percentage and last CPU percentage if the difference between current CPU percentage and last CPU percentage is greater or equal to AT; recording the latest CPU percentage is re for
future reference if the difference between the current CPU percentage and the last CPU percentage is less than the AT; and returning and recording the FPS_MAX as the capturing frame rate based on the local computing resource. Preferably, determining an optimal capturing frame rate (FPS_MAX) based on local communication resources by the Resource Tracker Module (51) includes the steps of if the system (100) operates for the first time, determining the available bandwidth, converting the determined network bitrate to frame rate and recording as well as returning the frame rate as the FPS_BW to the Resource Controller Module (51c); monitoring the network bitrate during streaming of a captured screen converting the network bitrate to frame rate using the Kush Gauge formula; verifying whether there is enough bandwidth for transmitting at current FPS by comparing the FPS with FPS_BW; returning and recording the FPS_SYS as the FPS_BW if the FPS is greater than the FPS_BW; verifying whether there is a change of the topmost or active application by the Resource Tracker Module (51) if the FPS is less than FPS_BW; returning and recording the FPS_BW as FPS_SYS if there is a change of the topmost or active application; comparing the FPS with the FPS_SYS if there is no change of the topmost or active application; increasing FPS by increment value of one; recording FPS as FPS_BW if the FPS is greater to the FPS_SYS; returning and recording FPS_SYS as the FPS_BW if the FPS is greater than the FPS_SYS; and returning and recording FPS_BW as FPS_SYS if the FPS is less than the FPS_SYS.
Preferably, determining a capturing frame rate based on desktop application or content (FPS_APP) by the Resource Tracker Module (51) includes the steps of determining whether the application includes video content or not; setting the frame rate for capturing based on content (FPS_APP) to a configurable frame rate of non- video (text) application (FPS_TEXT) if the application does not include any video content; retrieving video file properties; assigning the video frame rate (FPS_VIDEO) to the FPS_APP; setting system frame rate (FPS_SYS) as the FPS_APP; and recording FPS VIDEO as the FPS_APP.
BRIEF DESCRIPTION OF THE DRAWINGS
The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate embodiments of the invention and, together with the description, serve to explain the principles of the invention.
FIG. 1 illustrates a system (100) for screen capturing based on computing and communication resources according to an embodiment of the present invention.
FIG. 2 illustrates a flowchart of a method for screen capturing based on computing and communication resources of the system (100) of FIG. 1.
FIG. 3 illustrates a flowchart of sub-steps for estimating and determining an optimal screen capturing frame rate (FPS) based on communication resources of the method of FIG. 2.
FIG. 4 illustrates a flowchart of sub-steps for estimating and determining an optimal capturing frame rate (FPS_MAX) based on computing resources of the method of FIG. 2. FIG. 5 illustrates a flowchart of sub-steps for determining an optimal capturing frame rate (FPS_MAX) based on computing and communication resources of the method of FIG. 2.
FIG. 6 illustrates a flowchart of sub-steps for determining a capturing frame rate based on topmost application or content (FPS_APP) of the method of FIG. 2.
DESCRIPTION OF THE PREFFERED EMBODIMENT
A preferred embodiment of the present invention will be described herein below with reference to the accompanying drawings. In the following description, well known functions or constructions are not described in detail since they would obscure the description with unnecessary detail.
FIG. 1 shows a system (100) for screen capturing based on computing and communication resources according to an embodiment of the present invention. The system (100) provides a screen capturing which periodically monitors local resource
and context such as available network bandwidth, CPU capacity and screen content or applications. The system (100) comprises of a Graphical User Interface (GUI) (10), a Session Module (20), a Security Module (30), a Connection Module (40) and a Screen Analysis Module (50). The GUI (10) is a user interface for interaction through graphical icons and visual indicators such as secondary notation, as opposed to text- based interfaces, typed command labels or text navigation.
A Session Module (20) is the main coordinator of a remote presentation, wherein the Session Module (20) manages screen sharing session of the remote presentation. The Session Module (20) comprises of a Moderator Module (21), a Presenter Module (23), a Viewer Module (22) and a Main Module (24). The Session Module (20) is connected to the GUI (10), Security Module (30), Connection Module (40) and Screen Analysis Module (50). The Moderator Module (21) is used to listen and receive screenshots over the network from the Presenter Module (23). The Moderator Module (21) also performs access control to allow or disallow the connection of the Presenter Module (23) or the Viewer Module (22) with the Session Module (20). On top of that, the Moderator Module (21) projects the received screenshots from the Presenter Module (23) to a connected projector and broadcasts the received screenshots and relevant screen sharing session information to the Viewer Module (22). Preferably, the relevant screen sharing session information refers to the information which describes the sessions such as session name, number of participants and list of shared files. The Presenter Module (23) is used to search for the Moderator Module (21) wherein the Presenter Module (23) is connected to the projector. Moreover, the Presenter Module (23) requests access to the screen sharing session from the Moderator Module (21). The Presenter Module (23) also captures and sends screenshots to the Moderator Module (21). In addition, the Presenter Module (23) broadcasts the screenshots and relevant screen sharing session information to the Viewer Module (22).
The Viewer Module (22) is used to determine current screen sharing session based on the relevant session information broadcasted by the Moderator Module (21) or the Presenter Module (23). The Viewer Module (22) provides a list of screen
sharing session founds over the network on the GUI (10) which allows the user to select and join a particular screen sharing session. Moreover, the Viewer Module (22) requests access to the screen sharing session from the Moderator Module (21). On top of that, the Viewer Module (22) displays the received screenshots on a local screen output. Preferably, the local screen output refers to objects appearing on the screen including text, picture, graphic, animation, video and pointing commands such as mouse pointer.
The Main Module (24) is used to manage and coordinate the execution of the Moderator Module (21), Presenter Module (23) and Viewer Module (22). The Main Module (24) is connected to the GUI (10), Security Module (30), Connection Module (40) and Screen Analysis Module (50).
The Security Module (30) is used for allowing only selected user to join the screen sharing session. The Security Module (30) gives access rights to the user to establish a connection with the Session Module (20) and perform access control. The Security Module (30) is connected to the Session Module (20).
The Connection Module (40) is used for announcing and discovering name of the screen sharing session. The Connection Module (40) identifies the central processing unit (CPU) which operates the Moderator Module (21) to establish a connection to the CPU for data transmission. The Connection Module (40) is connected to the Session Module (20). The Screen Analysis Module (50) is used to determine an optimal screen or content capturing rate based on local computing resource and communication resource. Preferably, the local computing resource includes a processor capacity, a memory capacity, current processor utilization, current memory utilization and other hardware components related to the performance of the system (100). The local communication resource includes the current network bandwidth availability, throughput, delay, jitter, packet lost and other parameters related to the performance of the system (100). Preferably, the local computing resource refers to the network bandwidth. The Screen Analysis Module (50) is connected to the Session Module (20). The Screen Analysis Module (50) comprises of a Screen Coordinator Module (52) and a Resource Tracker Module (51).
The Screen Coordinator Module (52) is used to organize the process of determining the optimal screen or content capturing rate based on desktop application or content and the actual screen capturing. Preferably, the desktop application or content includes of objects or windows appear on the screen such as text, picture, graphic, animation and video. The Screen Coordinator Module (52) is also used to display the received screenshots on the local screen output.
The Resource Tracker Module (51) is used to determine the optimal screen or content capturing rate based on the desktop application or content, local computing resource and communication resource. The Resource Tracker Module (51) delivers a dynamic desktop profile to the Screen Coordinator Module (52). The dynamic desktop profile includes the recommended screen capturing rate, current resolution, colour scheme, number of windows, topmost or active window, largest window and other properties related to desktop objects or elements. Preferably, the number of windows, topmost or active window and largest window are determined by the Screen Coordinator Module (52) in capturing the whole desktop screen or a particular window or the top most window. The Resource Tracker Module (51) further comprises of a Resource Controller Module (51c), a Network Agent Module (51a) and an Application Agent Module (51b). The Resource Controller Module (51c) is used to coordinate the monitoring, collecting and processing of information collected from the Network Agent Module (51a) and Application Agent Module (51b). The Network Agent Module (51a) is used to monitor and analyse the communication resource to provide the current network condition which includes current bandwidth availability and throughput. The Application Agent Module (51 b) is used to monitor and analyse the computing resource and the screen content or desktop applications. It produces both system and application information. The system information preferably refers to the CPU usage and memory availability, while the application information preferably refers to the current resolution, colour scheme, number of windows, topmost or active window, largest window and other properties related to desktop objects or elements
FIG. 2 shows a flowchart of a method for screen capturing based on computing and communication resources of the system (100) of FIG. 1. Initially, the system (100) is initialized as in step 101, wherein the initialization phase includes node discovery of the Moderator Module (21), Presenter Module (23) and Viewer
W
9
Module (22). The node discovery is performed by means of broadcasting and listening to beacon message which contains contacts such as IP address and session names of the Moderator Module (21). If there is a screen capturing request, the Screen Coordinator Module (52) coordinates the process of determining the optimal screen capturing rate and the process of screen capturing as in decision 103 and step 104. Otherwise, the method returns to step 101.
In step 105, the Resource Tracker Module (51) is invoked to estimate and determine the optimal screen capturing frame rate (FPS) based on the current desktop application or content, local computing resource and local communication resource. Thereon, the Resource Tracker Module (51) generates and updates the dynamic desktop profile and sends the dynamic desktop profile back to the Screen Coordinator Module (52) as in step 106. The Screen Coordinator Module (52) performs the screen capturing based on the dynamic desktop profile and saves the screen captured to a local shared memory as in step 07 and 108. The local shared memory may vary depending on the application and system performing the capturing. Preferably, the local shared memory such as RAM or Hard Disk. Thereon, if the system (100) receives a stop instruction as initiated by the user as in decision 109, the method is terminated. Otherwise, the method returns to step 105.
FIG. 3 shows a flowchart of sub-steps for estimating and determining an optimal capturing frame rate (FPS_MAX) based on communication resources by the Resource Tracker Module (51) as in step 105 of the method of FIG. 2. In step 201 , the Resource Tracker Module (51) retrieves a user or a system configuration such as resolution and colour scheme. Then, the Resource Tracker Module (51) determines the topmost or active_application or content as in step 202. In step 203 and 204, the optimal capturing frame rate (FPS_MAX) is determined based on the available local computing resources and sets the FPS to FPS_MAX. The screen capturing with higher frame rate than default FPS for capturing system frame rate (FPS^SYS) is not required because the FPS_SYS is the preconfigured FPS for screen, wherein the FPS_SYS is set as the ideal capturing rate for the system (100).
If FPS is higher than FPS_SYS, the FPS is set to FPS_SYS as in decision 205 and step 206. However, if FPS is less than FPS_SYS, the method continues to step 207, wherein the optimal FPS based on network bandwidth (FPS_BW) is determined. The FPS_BW is determined to verify whether there is sufficient bandwidth to stream at FPS rate.
In decision 208, if the FPS is less than FPS_BW, the FPS is set to FPS_BW as in step 209. However, if the FPS is higher than FPS_BW, the Resource Tracker Module (51) determines the capturing frame rate based on topmost/active application or content (FPS_APP) as in step 210.
In decision 211, if the FPS_APP is less than the FPS, the FPS is set to FPS_APP as in step 212. However, if the FPS_APP is higher than the FPS, the method skips to step 213, wherein the Resource Tracker Module (51) updates and builds the dynamic desktop profile based on the FPS.
A timer is used to check the time for updating and building the dynamic desktop profile. In decision 214, if the time for updating and building the dynamic desktop profile is longer than the pre-configured time interval, the method returns to the initial step 201. Otherwise, the system (100) determines whether to stop or continue the process as in decision 214 when the stop instruction is initiated by the user through the GUI (10).
FIG. 4 shows a flowchart of sub-steps for estimating and determining an optimal capturing frame rate (FPS_MAX) based on computing resources by the Resource Tracker Module (51) as in step 105 of the method of FIG. 2. In decision
301 , if the system (100) is operating for the first time, the Screen Coordinator Module (52) captures the screen for a predetermined time to determine FPS_MAX as in step
302. In step 303 and 304, the available CPU percentage is determined and mapped as maximum capturing rate (FPS_MAX) by accessing a Resource Management module at the operating system level, wherein the Resource Management module refers to a "Task Manager" or " Windows Management Instrumentation Command- line (WMIC)" in windows which provide information such as CPU usage and Memory usage. Thereon, FPS_MAX is returned and recorded as the capturing frame rate based on the local computing resource as in step 310.
However, if the system (100) is not operating for the first time, the current CPU percentage is determined as in step 305. In step 306, the difference between the current CPU percentage and the last CPU percentage is determined. The difference between the current CPU percentage and the last CPU percentage is compared based on a configurable parameter defined as Adjustment Threshold (AT). The AT is defined to avoid frequent changes of capturing frame rate due to constant CPU utilization fluctuation. In decision 307, if the difference between current CPU percentage and last CPU percentage is greater or equal to AT, the FPS_MAX is updated based on the percentage changes of the current CPU percentage and last CPU percentage as in step 308 by using the following equation:
FPS_MAX = FPS_MAX * (current CPU * last CPU)
If the difference between the current CPU percentage and the last CPU percentage is less than the AT, the method skips to step 309 wherein the latest CPU percentage is recorded for future reference. In step 310, FPS_MAX is returned and recorded as the capturing frame rate based on the local computing resource.
FIG. 5 shows a flowchart of sub-steps for determining an optimal capturing frame rate (FPS_MAX) based on communication resources by the Resource Tracker Module (51) as in step 105 of the method of FIG. 2. In decision 401 , if the system (100) is operating for the first time, a third party tool or generated dummy traffic is used to determine the available bandwidth when the system (100) operates before starting to capture the screen and getting available network bandwidth at run time as in step 401. The third party tool or the generated dummy traffic determines the available network bandwidth when the system (100) operates for the first time whereby the system (100) has not sent any actual traffic and has no history of its network condition. An example of the third party tool is Iperf, wherein Iperf is an open source tool that generates and pumps different traffic into network. After the network bandwidth has been determined, the determined network bitrate is converted to frame rate using Kush Gauge formula as in step 402. Particularly, the Kush Gauge formula is defined as follows:
Bit rate in kbps = Pixel count * Motion factor *(0.07 + 1000);
wherein,
Pixel count = Frame width * frame height * frame rate; and
Motion factor -1, 2 or 4.
Thereon, the frame rate is recorded as the FPS_BW and returned to the Resource Controller Module (51c) as in step 409.
On the other hand, if the system (100) is not operating for the first time, the Resource Tracker Module (51) monitors the network bitrate during streaming the captured screen as in step 404. In step 405, the network bitrate is converted to frame rate using the Kush Gauge formula. Later on, the Resource Tracker Module (51) verifies whether there is enough bandwidth for transmitting at current FPS by comparing the FPS with FPS_BW.
In decision 406, if the FPS is greater than the FPS_BW, the FPS needs to be increased. FPS_SYS is returned and recorded as the FPS_BW as in step 409. When the FPS is greater than the FPS_BW, it indicates that the bandwidth is not sufficient to stream at FPS rate.
However, if the FPS is less than FPS_BW, the Resource Tracker Module (51) verifies whether there is a change of the topmost or active application as in decision 407. The verifying of the change of the application is to ensure that the system (100) observation of current network condition is as realistic as possible. For example, if the current topmost or active application is a non-video application, the system (100) transmits data with much lesser bitrate compare to a video application. Thus, for instance if the topmost or active application changes from non-video content to video content, the current data bitrate does not provide the actual available network bandwidth.
If there is a change of the topmost or active application, the FPS_BW is sent at FPS_SYS to determine the network bandwidth availability as in decision 407 and step 408. Thus, the FPS needs to be increased. FPS_SYS is returned and recorded as the FPS_BW as in step 409.
However, if there is no change of the topmost or active application, the FPS is compared with the FPS_SYS. In decision 410, if the FPS is equal to the FPS_SYS,
the method returns to step 408. If the FPS is greater than the FPS_SYS, FPS is increased by increment value of one and recorded as the FPS_BW as in step 411. The increment by one is to ensure a consistent network streaming. In decision 412, if the new FPS is greater than the FPS_SYS, the method continues to step 409. If the new FPS is less than the FPS_SYS, the method returns to step 408.
FIG. 6 shows a flowchart of sub-steps for determining a capturing frame rate based on topmost application or content (FPS_APP) by the Resource Tracker Module (51) as in step 105 of the method of FIG. 2. Initially, the Resource Tracker Module (51) determines whether the application includes video content or not as in decision 502.
If the application does not include any video content, the frame rate for capturing based on content (FPS_APP) is set to a configurable frame rate of non- video (text) application (FPS_TEXT) as in step 503. FPS_TEXT is returned and recorded as the FPS_APP as in step 507.
If the application contains video content, the Resource Tracker Module (51) retrieves video file properties as in step 504. Preferably, the video file properties include video frame rate, video resolution, and video size. Thereon, the Resource Tracker Module (51) assigns the video frame rate (FPS_VIDEO) to the FPS_APP and FPS_SYS is set as the FPS_APP as in step 505 and 506. In step 507, FPS_VIDEO is returned and recorded as the FPS_APP. While embodiments of the invention have been illustrated and described, it is not intended that these embodiments illustrate and describe all possible forms of the invention. Rather, the words used in the specifications are words of description rather than limitation and various changes may be made without departing from the scope of the invention.
Claims
1. A system (100) for screen capturing based on local computing and communication resources comprises of:
a) a Graphical User Interface (GUI) (10) for interaction through graphical icons and visual indicators,
b) a Session Module (20) to manage screen sharing session of a remote presentation,
c) a Security Module (30) to allow selected user to join the screen sharing session, and
d) a Connection Module (40) to announce and discover name of the screen sharing session;
wherein the system (100) is characterised in that it further includes:
a) a Screen Analysis Module (50) to determine an optimal screen or content capturing rate based on local computing resource and communication resource, wherein the Screen Analysis Module
(50) comprises of:
i. a Screen Coordinator Module (52) to organize the process of determining the optimal screen or content capturing rate based on desktop application or content and the actual screen capturing; and
ii. a Resource Tracker Module (51) to determine the optimal screen or content capturing rate based on the desktop application or content, local computing resource and communication resource.
2. The system (100) as claimed in claim 1 , wherein the Resource Tracker Module (51) further comprises of:
a) a Resource Controller Module (51c) to coordinate the monitoring, collecting and processing of collected information;
b) a Network Agent Module (51a) to monitor and analyse the communication resource to provide the current network condition which includes current bandwidth availability and throughput; and c) an Application Agent Module (51b) to monitor and analyse the computing resource and the screen content or desktop applications.
A method for screen capturing based on local computing and communication resources is characterised by the steps of:
a) estimating and determining an optimal screen capturing frame rate (FPS) based on a current desktop application or content, local computing resource and local communication resource by the Resource Tracker Module (61);
b) generating and updating a dynamic desktop profile;
c) sending the dynamic desktop profile to the Screen Coordinator Module (52) by the resource Tracker Module (51); and
d) performing the screen capturing based on the dynamic desktop profile; and
e) storing captured screen to a local shared memory by the Screen Coordinator Module (52).
The method as claimed in claim 3, wherein estimating and determining an optimal capturing frame rate (FPS) based on local computing and communication resources by the Resource Tracker Module (51) includes the steps:
a) retrieving a user or a system configuration by the Resource Tracker Module (51);
b) determining a topmost or active application or content;
c) determining the optimal capturing frame rate (FPS_MAX) based on the available local computing resources;
d) setting FPS as system frame rate (FPS_SYS);
e) determining the optimal FPS based on network bandwidth (FPS_BW) if FPS is less than FPS_SYS;
f) setting FPS as FPS_BW if the FPS is less than FPS_BW;
g) determining the capturing frame rate based on topmost/active application or content (FPS_APP);
h) setting FPS as FPS_APP if FPS_APP is less than the FPS; and i) updating and building the dynamic desktop profile based on the FPS.
The method as claimed in claim 3, wherein estimating and determining an optimal capturing frame rate (FPS_MAX) based on local computing resources by the Resource Tracker Module (51) includes the steps of:
a) if the system (100) is operating for the first time, capturing the screen for a predetermined time to determine FPS_MAX by the Screen Coordinator Module (52) and determining as well as mapping the available CPU percentage as FPS_MAX by accessing a Resource Management module at the operating system level;
b) determining the current CPU percentage;
c) determining the difference between the current CPU percentage and the last CPU percentage; wherein the difference between the current CPU percentage and the last CPU percentage is compared based on an Adjustment Threshold (AT);
d) updating the FPS_MAX based on the percentage changes of the current CPU percentage and last CPU percentage if the difference between current CPU percentage and last CPU percentage is greater or equal to AT;
e) recording the latest CPU percentage is re for future reference if the difference between the current CPU percentage and the last CPU percentage is less than the AT; and
f) returning and recording the FPS_MAX as the capturing frame rate based on the local computing resource.
The method as claimed in claim 3, wherein determining an optimal capturing frame rate (FPS_MAX) based on local communication resources by the Resource Tracker Module (51) includes the steps of:
a) if the system (100) operates for the first time, determining the available bandwidth, converting the determined network bitrate to frame rate and recording as well as returning the frame rate as the FPS_BW to the Resource Controller Module (51c);
b) monitoring the network bitrate during streaming of a captured screen converting the network bitrate to frame rate using the Kush Gauge formula;
c) verifying whether there is enough bandwidth for transmitting at current FPS by comparing the FPS with FPS_BW;
d) returning and recording the FPS_SYS as the FPS_BW if the FPS is greater than the FPS_BW;
e) verifying whether there is a change of the topmost or active application by the Resource Tracker Module (51) if the FPS is less than FPS_BW;
f) returning and recording the FPS_BW as FPS_SYS if there is a change of the topmost or active application;
g) comparing the FPS with the FPS_SYS if there is no change of the topmost or active application;
h) increasing FPS by increment value of one;
i) recording FPS as FPS_BW if the FPS is greater to the FPS_SYS; j) returning and recording FPS_SYS as the FPS_BW if the FPS is greater than the FPS_SYS; and
k) returning and recording FPS_BW as FPS_SYS if the FPS is less than the FPS_SYS.
The method as claimed in claim 3, wherein determining a capturing frame rate based on desktop application or content (FPS_APP) by the Resource Tracker Module (51) includes the steps of:
a) determining whether the application includes video content or not; b) setting the frame rate for capturing based on content (FPS_APP) to a configurable frame rate of non-video (text) application (FPS_TEXT) if the application does not include any video content;
c) retrieving video file properties;
d) assigning the video frame rate (FPS_VIDEO) to the FPS_APP;
e) setting system frame rate (FPS_SYS) as the FPS_APP; and f) recording FPS_VIDEO as the FPS_APP.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| MYPI2013702275A MY173871A (en) | 2013-11-27 | 2013-11-27 | System and method for screen capturing based on computing and communication resources |
| MYPI2013702275 | 2013-11-27 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2015080565A1 true WO2015080565A1 (en) | 2015-06-04 |
Family
ID=51730553
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/MY2014/000180 Ceased WO2015080565A1 (en) | 2013-11-27 | 2014-06-12 | System and method for screen capturing based on computing and communication resources |
Country Status (2)
| Country | Link |
|---|---|
| MY (1) | MY173871A (en) |
| WO (1) | WO2015080565A1 (en) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| IT202200013849A1 (en) | 2022-06-30 | 2023-12-30 | I C Servizi S R L | AUTOMATED, ANTI-FRAUD INTERFACE SYSTEM FOR ASSISTANCE AND MONITORING IN PORTERAGE, CLEANING AND MAINTENANCE SERVICE STRUCTURES |
Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20020080171A1 (en) * | 2000-12-22 | 2002-06-27 | Laferriere Robert James | Method and apparatus for coordinating screen views in a collaborative computing environment |
| US20090119602A1 (en) * | 2007-11-07 | 2009-05-07 | Sony Corporation | Web-screen sharing system, web-screen sharing terminals, and sharing program thereof |
| EP2079025A1 (en) | 2007-12-28 | 2009-07-15 | Noritsu Koki Co., Ltd. | Capture method and capture device |
| WO2010114543A1 (en) | 2009-04-01 | 2010-10-07 | Hewlett-Packard Development Company, L.P. | Screen capture |
| US20110141123A1 (en) * | 2009-12-10 | 2011-06-16 | Microsoft Corporation | Push Pull Adaptive Capture |
| WO2013063056A1 (en) * | 2011-10-24 | 2013-05-02 | T-Mobile Usa, Inc. | Optimizing video-call quality of service |
| EP2661083A2 (en) * | 2012-05-04 | 2013-11-06 | Awind Inc. | Video encoding system, method and computer readable medium thereof |
-
2013
- 2013-11-27 MY MYPI2013702275A patent/MY173871A/en unknown
-
2014
- 2014-06-12 WO PCT/MY2014/000180 patent/WO2015080565A1/en not_active Ceased
Patent Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20020080171A1 (en) * | 2000-12-22 | 2002-06-27 | Laferriere Robert James | Method and apparatus for coordinating screen views in a collaborative computing environment |
| US20090119602A1 (en) * | 2007-11-07 | 2009-05-07 | Sony Corporation | Web-screen sharing system, web-screen sharing terminals, and sharing program thereof |
| EP2079025A1 (en) | 2007-12-28 | 2009-07-15 | Noritsu Koki Co., Ltd. | Capture method and capture device |
| WO2010114543A1 (en) | 2009-04-01 | 2010-10-07 | Hewlett-Packard Development Company, L.P. | Screen capture |
| US20110141123A1 (en) * | 2009-12-10 | 2011-06-16 | Microsoft Corporation | Push Pull Adaptive Capture |
| WO2013063056A1 (en) * | 2011-10-24 | 2013-05-02 | T-Mobile Usa, Inc. | Optimizing video-call quality of service |
| EP2661083A2 (en) * | 2012-05-04 | 2013-11-06 | Awind Inc. | Video encoding system, method and computer readable medium thereof |
Also Published As
| Publication number | Publication date |
|---|---|
| MY173871A (en) | 2020-02-25 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP2642753B1 (en) | Transmission terminal, transmission system, display control method, and display control program | |
| US7849505B2 (en) | System and method of selecting a virtual private network access server | |
| CN108881972B (en) | A code rate allocation method, apparatus, device and storage medium | |
| US9167013B2 (en) | Method and apparatus for prioritizing media within an electronic conference according to utilization settings at respective conference participants | |
| US10194180B2 (en) | Systems and methods for transmitting video data over a network | |
| EP1517491B1 (en) | Network device, system and method | |
| US10516856B2 (en) | Network video recorder cluster and method of operation | |
| JP2010508734A (en) | An architecture for delivering video content in response to remote interaction | |
| US20230224354A1 (en) | Brokering servers based on remote access performance | |
| US20130080560A1 (en) | System and Method for Sharing Digital Data on a Presenter Device to a Plurality of Participant Devices | |
| US9998915B2 (en) | Wireless communication device | |
| KR20160092136A (en) | Virtual Desktop Providing Method and Virtual Desktop Providing Server thereof | |
| WO2024055840A1 (en) | Image rendering method and apparatus, device, and medium | |
| US9253521B2 (en) | Image streaming system for minimizing resource usage of network video recorder (NVR) | |
| CN114401394A (en) | Image processing method and terminal | |
| JP7465370B2 (en) | Information sharing method, device, electronic device, and storage medium | |
| CN106686635B (en) | Data transmission method and device based on control and configuration protocol of wireless access point | |
| CN104954286A (en) | Bandwidth allocation method and device | |
| WO2015077983A1 (en) | Device and method for playing media in home network | |
| US12200315B2 (en) | Video stream transmission control method and apparatus, device, and medium | |
| WO2015080565A1 (en) | System and method for screen capturing based on computing and communication resources | |
| EP3038391B1 (en) | Communication management system, communication terminal, communication system, communication control method, and carrier means | |
| EP4044615A1 (en) | Method and device for adjusting attribute of video stream | |
| CN115297093B (en) | Edge device data access method, related device and computer program product | |
| US10110963B1 (en) | System, method, and computer program for media content playback management |
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: 14784538 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: 14784538 Country of ref document: EP Kind code of ref document: A1 |