This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2014-070538 filed on Mar. 28, 2014, the entire contents of which are incorporated herein by reference.
Embodiments discussed herein are related to an information processing device, a change detection method, and a change detection program, for example.
A virtual desktop which is a client desktop virtualized on a server has been conventionally known. For this virtual desktop, a server establishes thereon an environment in which a client is virtualized, receives a remote operation from a client, and transmits images of a desktop screen to the client at a predetermined frame rate to cause the client to display the image.
In this regard, if the server transmits all the images of the desktop in the form of still image data, a data amount of the image data transmitted through a network is increased so much that operability on the client side may deteriorate. For example, if a communication bandwidth of a network between the server and the client is narrow, an increase in the amount of data transmitted may cause a delay in displaying the image on the client side and deteriorate the operability.
To address this problem, as a technique of reducing the amount of data transmitted, there has been a technique of: dividing an image in a frame to be transmitted into multiple areas; determining a frequency of change between the images in frames for each of the divided areas; performs moving image compression processing on the data of the area whose change frequency exceeds a threshold; and then transmits the compressed data. The technical documents related to such a technique include Japanese Laid-open Patent Publication Nos. 2011-238014, 2012-14533, 2004-213418, and the like.
In accordance with an aspect of the embodiments, an information processing device includes a processor; and a memory which stores a plurality of instructions, which when executed by the processor, cause the processor to execute: transmitting a created image to a client terminal; acquiring at least one image created at timing different from image transmission timing by the transmitting; and calculating a change frequency, based on the transmitted image by the transmitting and the image acquired by the acquiring, for each of multiple divided areas constituting an image.
The object and advantages of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the claims. It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the invention, as claimed.
These and/or other aspects and advantages will become apparent and more readily appreciated from the following description of the embodiments, taken in conjunction with the accompanying drawing of which:
Hereinafter, described based on the drawings are embodiments of an information processing device, a change detection method, and a change detection program according to the present disclosure. It is to be noted that the embodiments are not intended to limit the disclosure, and each of the embodiments may be properly combined within a scope in which the contents of processing do not become inconsistent.
[System Configuration]
A system 10 according to a first embodiment is described.
The server 11 is a device to provide a virtual desktop in which a client's desktop is virtualized. For example, the server 11 is a computer like a server computer. The server 11 accepts an information processing device. The server 11 may be implemented as one computer or may be implemented as a cloud including multiple computers. It is to be noted that the embodiment describes an example in which the server 11 is assumed as one computer. The server 11 has an established client's virtualized environment and remotely accepts an operation from the client. For example, the server 11 periodically transmits an image of a client's virtualized desktop screen to the client and remotely accepts an operation from the client. The server 11 has an installed or preinstalled application for remote screen control for a server to establish a virtual environment in which a client is virtualized. It is to be noted that the application for remote screen control for a server is referred to as a server side remote screen control application.
The server side remote screen control application has a function to provide remote screen control services as a basic function. As one example, the server side remote screen control application accepts an operation from the client terminal 12 and causes an application operating therein to perform processing desired by the accepted operation. Then, after an image to display a result of the processing executed by the application is created, the server side remote screen control application transmits the created screen to the client terminal 12. At this time, the server side remote screen control application transmits an image of an updated area which is an area where gathers pixels of a portion changed as compared with an image having been transmitted to the client terminal 12 before the image is created this time and displayed. It is to be noted that the description is given to a case where an image of the updated portion is formed in a rectangular image, but the disclosed device may be used to a case where an image of the updated portion is formed in a shape other than a rectangle.
In addition, the server side remote screen control application has a function to compress data of a portion where there is a large movement between frames by a compression scheme suitable for moving images, and to transmit the compressed data to the client terminal 12. As one example, the server side remote screen control application divides the image created from the result of the determination executed by the application into multiple areas, and detects a change frequency for each of the divided areas. At this time, the server side remote screen control application transmits attribute information of an area whose change frequency is equal to or larger than a threshold, namely, a frequently updated area to the client terminal 12. Along with this, the server side remote screen control application transmits the image in the frequently updated area to the client terminal 12 after encoding the data in a Moving Picture Experts Group (MPEG) scheme, such as MPEG-2 or MPEG-4. It is to be noted that the case where the data is compressed to the MPEG scheme is illustrated, but the compression scheme is not limited to this. For example, any compression encoding scheme, such as Motion-Joint Photographic Experts Group (JPEG) as long as it is a compression method for moving images.
The client terminal 12 is a computer which is used by a user. For example, the client terminal 12 may be an information processing device such as a desktop personal computer (PC) or a laptop PC. For example, the client terminal 12 may also be a mobile terminal device such as a tablet terminal, a smartphone, or a personal digital assistant (PDA). For example, the client terminal 12 may also be a thin client. The thin client is a terminal device which includes minimum input and output devices. For example, the thin client does not include a hard disk, and resources thereof are unitarily managed on a server side. It is to be noted that in the example of
The client terminal 12 receives remote screen control services provided by the server 11. In the client terminal 12, a remote screen control application for clients who are recipients of the remote screen control services is installed or preinstalled. It is to be noted that the remote screen control application for clients is hereinafter referred to as a client side remote screen control application.
This client side remote screen control application has a function to notify the server 11 of operation information accepted through various kinds of input devices such as a mouse and a keyboard. As one example, the client side remote screen control application notifies a position, a movement amount, and the like of a mouse cursor obtained through right and left clicks, a double click, or a drag of a mouse, and an operation of moving a mouse, as operation information. As another example, a rotation amount of a mouse wheel, a type of a key pressed down among the keyboard are also notified as the operation information.
Furthermore, the client side remote screen control application has a function to display an image received from the server 11 in a predetermined display unit. As one example, the client side remote screen control application receives an image of an updated area from the server 11. When the image of the updated area is received, the client side remote screen control application displays the image of the updated area aligned in a position which is changed from the previous image. As another example, the client side remote screen control application receives attribution information of a frequently updated area and compression method data for moving images from the server 11. When the attribution information and the compression method data for moving images are received, the client side remote screen control application displays an image in which the compression method data for moving images is decoded in a composite manner in an area on the display screen corresponding to the position included in the attribute information.
The system 10 causes an application relating to work of a client to execute on a virtual desktop and displays a result of processing of the application in the client terminal 12, so as to provide various services. For example, the system 10 causes an application relating to work such as document or email creation to operate on the virtual desktop of the server 11 and remotely provides a document creation environment on the virtual desktop. In addition to these work applications, for example, the system 10 causes a computer aided design (CAD) program to operate on the virtual desktop of the server 11 and remotely provides a design environment on the virtual desktop.
[Server Configuration]
Next, the server 11 according to the first embodiment is described.
The communication I/F unit 20 is an interface to perform communication control with other devices. The communication I/F unit 20 transmits and receives various pieces of information with other devices through the network 13. For example, the communication unit I/F unit 20 receives the operation information for the virtualized desktop from the client terminal 12. Also, the communication I/F unit 20 transmits data relating to the desktop screen to be displayed in the client terminal 12 to the client terminal 12. The communication I/F unit 20 may adopt a network interface card such as a LAN card.
The storage unit 21 is a storage device to store various pieces of data. One aspect of the storage unit 21 includes a semiconductor memory element such as a flash memory and a storage device such as a hard disk or an optical disk. It is to be noted that the storage unit 21 is not limited to the above-described kinds of storage devices, but may be a random access memory (RAM). Also, the storage unit 21 may be physically divided into multiple storage devices.
The storage unit 21 stores an operating system (OS) and a various kinds of programs which are executed by the control unit 22. For example, the storage unit 21 stores a program of the server side remote screen control application. Furthermore, the storage unit 21 stores various pieces of data which are used by the program to be executed by the control unit 22. For example, the storage unit 21 stores desktop screen information 30, accumulated image information 31, and setting information 32.
The desktop screen information 30 is data in which an image of the virtual desktop screen of the client terminal 12 is stored. The desktop screen information 30 stores image data of the created latest desktop screen of the client terminal 12, and is updated as appropriate when rewrite is caused on the desktop screen. For example, the desktop screen information 30 is updated when rewrite is caused on the desktop screen by the operation accepted from the client terminal 12, the OS, or the processing of the executing program.
The accumulated image information 31 is data in which an image of the desktop screen at predetermined timing is stored. For example, the accumulated image information 31 stores an image in a transmission frame transmitted to the client terminal 12 and a desktop image between the transmission frames for a predetermined period of time.
The setting information 32 is data in which various settings relating to the remote screen control services are stored. For example, the setting information 32 stores a frame rate in which the image of the desktop screen is transmitted to the client terminal 12, a threshold which is used for determining a frequently updated area, the number of pages of the desktop screen to be acquired between the transmission frames, and the like.
It is to be noted that the desktop screen information 30, the accumulated image information 31, and the setting information 32 may be separately stored in multiple storage devices. For example, the desktop screen information 30 may be stored in a video memory, the accumulated image information 31 may be stored in a main memory, and the setting information 32 may be stored in a hard disk.
The control unit 22 is a device to control the server 11. The control unit 22 may adopt an electronic circuit such as a central processing unit (CPU) or a micro processing unit (MPU), or an integrated circuit such as an application specific integrated circuit (ASIC), or a field programmable gate array (FPGA). The control unit 22 has an internal memory to store programs and control data which define various kinds of processing procedures and executes the various kinds of processing therewith. The control unit 22 has various kinds of programs operating therein and functions as various kinds of processing units. For example, in the control unit 22, the server side remote screen control application operates. The control unit 22 has an acceptance part 40, a screen control part 41, an acquisition part 42, a detection part 43, a calculation part 44, an identification part 45, a conversion part 46, a transmission part 47, and a storage part 48.
The acceptance part 40 is a processing part to accept an operation with respect to a virtual environment of the client terminal 12. For example, the acceptance part 40 accepts operation information with respect to the virtual desktop screen from the client terminal 12 as an operation for the virtual environment.
The screen control part 41 is a processing part to control update of the virtual desktop screen. For example, when operation information is accepted by the acceptance part 40, the screen control part 41 performs update to rewrite the desktop screen information 30 according to the accepted operation information. It is to be noted the screen control part 41 may directly perform the update on the desktop screen information 30. Also, the update of the desktop screen information 30 may be performed through an OS or a graphic driver. For example, the screen control part 41 may notify the OS of the accepted operation information, the OS may perform drawing request according to the notified operation information on the graphic driver, and then the graphic driver may update the desktop screen information 30 according to the drawing request.
The acquisition part 42 is a processing part to acquire image data of the desktop screen at predetermined timing. The acquisition part 42 reads the desktop screen information 30 stored in the storage unit 21 at predetermined timing and acquires the image data of the desktop screen. For example, the acquisition part 42 acquires the image data of the desktop screen at transmission timing in which the image is transmitted to the client terminal 12 according to a transmission frame rate stored in the setting information 32. Also, the acquisition part 42 acquires the image data of the desktop screen at timing during the transmission timing. For example, the acquisition part 42 obtains timing so that the number of pages to be acquired, which is stored in the setting information 32, is obtained during each of the transmission frame rates, and acquires the image data of the desktop screen at the obtained timing. For example, when it is designated that the number of pages to be acquired is 2, the acquisition part 42 obtains timing to equally divide a time period during the transmission timing into 3, and acquires the image data of the desktop screen at each of the divided timing. Accordingly, for example, when it is designated that the transmission frame rate is 24 pages per second and the number of pages to be acquired is 2, the acquisition part 42 periodically acquires an image at the transmission frame rate of 72 pages per second. It is to be noted that the timing to acquire the image data of the desktop screen during a time period during the transmission timing typically does not have to be equal.
The detection part 43 is a processing part to detect an updated area which is changed in the images transmitted to the client terminal 12. The detection part 43 detects an updated area by comparing an image to be transmitted to the client terminal 12 with an image having been transmitted before the image to be transmitted. For example, in a case where the image data of the desktop screen is acquired by the acquisition part 42 when the timing reaches the transmission timing, the detection part 43 reads an image in the previously transmitted transmission frame from the accumulated image information 31. Then, the detection part 43 compares the image of the image data acquired by the acquisition part 42 with the image in the previously read transmission frame from the accumulated image information 31. Then, the detection part 43 forms pixels of a portion which is changed in the image in the previous transmission frame after the pixels are gathered in a rectangular shape and specifies the updated area in which the image is changed. The detection part 43 creates position information indicating a position inside the image of the specified updated area. For example, the detection part 43 creates coordinates of a specific vertex such as upper left vertex of the rectangular updated area within the image and a width and height of the updated area as position information.
The calculation part 44 is a processing unit to calculate a change frequency of each of areas of an image. For example, the calculation part 44 calculates a change frequency for each of divided areas of the image, which are divided in a mesh form.
The calculation part 44 compares the images accumulated in the accumulated image information 31 and counts the number of changes, as a change frequency of the divided area, for each of the divided areas of the updated area detected by the detection part 43. For example, the calculation part 44 reads the images one after another for a predetermined period of time, which are accumulated in the accumulated image information 31, and compares the updated areas detected by the detection part 43 between the images, and specify a pixel with a changed pixel value within the updated area. Then, when the image with a changed pixel value is included within the divided area, the calculation part 44 adds the number of changes of the divided area by 1 for each of the divided areas. It is to be noted that it may be designed that the calculation part 44 counts the number of changes when the predetermined or more number of the pixels with a changed pixel value are included within the divided area.
The identification part 45 is a processing part to identify an area with a high change frequency in the desktop screen displayed on the client terminal 12. For example, when counting the number of changes by the calculation part 44 is terminated, the identification part 45 specifies a divided area in which the number of changes, that is, the change frequency, in a predetermined period of time is a threshold or larger number stored in the setting information 32. For example, when it is assumed that the threshold is “2”, in the example of
When the divided area whose number of changes is equal to or larger than the threshold, the identification part 45 connects the divided areas adjacent to each other among the specified divided areas and correct them into a connected area. As one example, the identification part 45 connects the divided areas sharing the same sides, that is, the divided areas vertically and horizontally adjacent to each within the screen and corrects them into a connected area.
Return to
The conversion part 46 is a processing part to perform conversion on image data of the desktop screen. For example, the conversion part 46 converts the image in a portion of the frequently updated area of the image data of the desktop screen, which is acquired by the acquisition unit 42 at transmission timing, into data in the moving image format. As one example, the conversion part 46 encodes a bitmap image in the frequently updated area at the stage in which the desktop screen acquired by the acquisition part 42 reaches the number of frames capable of forming a stream. It is to be noted that one aspect of the encoding method includes an MPEG method such as MPEG-2 or MPEG-4 or Motion-JPEG method.
The conversion part 46 converts an image in the portion of the updated area of the image data of the desktop screen acquired by the acquisition unit 42 at the transmission timing into data in a still image format. When the frequently updated area is identified and the updated area includes a portion other than the frequently updated area, the conversion part 46 converts an image of the portion other than the frequently updated area of the updated area of the desktop screen into data in a still image format. For example, the conversion part 46 divides the image in a portion of the updated area of the desktop screen, which is other than the frequently updated area, into multiple rectangular portions, and converts the data into image data for each of the rectangular portions. In other words, when the updated area of the desktop screen includes the portion other than the frequently updated area, the conversion part 46 divides the image of the portion of the updated area excluding the frequently updated area into the images of the multiple rectangular portions so as to display the images in combination. The conversion part 46 also creates arrangement information indicating an arrangement relationship in the rectangular image. In the embodiment, even when the updated area does not include the frequently updated area, arrangement information in which an image to be arranged in the updated area is corresponded. It is to be noted that the conversion part 46 may convert the portion of the frequently updated area in the updated area of the desktop screen into image data as blank or a transparent area.
The transmission part 47 is a processing part to perform transmission of data to the client terminal 12. For example, the transmission part 47 is a processing part to perform transmission of data relating the desktop screen to the client terminal 12. For example, the transmission part 47 transmits the position information of the updated area, the image data of the image of the frequently updated area portion of the desktop screen, and the arrangement information. Also, when the desktop screen includes the frequently updated area, the transmission part 47 further transmits moving image data of the portion of the frequently updated area and attribution information indicating the position and size of the frequently updated area inside the image. Accordingly, the client terminal 12 obtains the position of the updated area in the image based on the position information and restores the desktop screen by arranging the image based on the arrangement information. Also, the client terminal 12 displays the image of the moving image data in a composite manner in the portion of the frequently updated area of the desktop screen based on the attribution information.
The storage part 48 is a processing part to store the image data of the desktop screen, which is acquired by the acquisition part 42. For example, the storage part 48 stores the image data of the desktop screen, which is acquired by the acquisition part 42 in the accumulated image information 31. In this case, the storage part 48 stores the image data in the accumulated image information 31 by adding information indicating time such as image acquisition time or the order such as a sequence number and information indicating if it is a transmission frame. Also, the storage part 48 deletes the image data whose predetermined period of time has elapsed from the accumulated image information 31. As described above, the image data of the desktop screen during the last predetermined period of time is accumulated in the accumulated image information 31. The period of accumulating the image data has a correlation with accuracy of identifying the frequently updated area. As the period becomes longer, error detection of the frequently updated area is decreased. It is to be noted that assumed here is a case where the image data of the desktop screen is accumulated during one second.
[Terminal Configuration]
Hereinafter, the terminal according to the first embodiment is described.
The communication I/F unit 70 is an interface to control communications with other devices. The communication I/F unit 70 transmits and receives various pieces of information with other devices through the network 13. For example, the communication I/F unit 70 receives data relating to the desktop screen from the server 11. Also, the communication I/F unit 70 transmits operation information for the desktop to the server 11. The communication I/F unit 70 may adopt a network interface card such as a LAN card.
The display unit 71 is a display device to display various pieces of information. The display device 71 includes a display device such as a liquid crystal display (LCD) or a cathode ray tube (CRT). The display unit 71 displays various pieces of information. For example, the display unit 71 displays the desktop screen of the virtual desktop transmitted from the server 11.
The input unit 72 is an input device to input various pieces of information. For example, the input unit 72 includes an input device such as a mouse or a keyboard. The input unit 72 accepts an operation input from a user and inputs operation information indicating the accepted operation content into the control unit 73. For example, the input unit 72 accepts various kinds of operations by a mouse or a keyboard with respect to the desktop screen.
The control unit 73 is a device to control the client terminal 12. The control unit 73 may adopt an electronic circuit such as CPU or MPU or an integrated circuit such as ASIC or FPGA. The control unit 73 has an internal memory to store programs and control data which define various processing procedures and executes various kinds of processing therewith. Various kinds of programs operate in the control unit 73, and the control unit 73 functions as various kinds of processing units. For example, a client side remote screen control application operates in the control unit 73. The control unit 73 has a reception part 75, a display control part 76, and an operation information transmission unit 77.
The reception part 75 is a processing part to receive data relating to the virtual desktop from the server 11. For example, the reception part 75 receives data relating to the desktop screen from the server 11. For example, the reception part 75 receives position information of an updated area, image data of a screen of a frequently updated area portion of the desktop screen, and arrangement information. Also, when the desktop screen includes the frequently updated area, the reception part 75 further receives moving image data of a portion of the frequently updated area and attribution information indicating a position and size of the frequently updated area in the image.
The display control part 76 is a processing part to control display of an image of the display unit 71. The display control unit 76 causes the display unit 71 to display the desktop screen based on the data relating to the virtual desktop received by the reception part 75. For example, the display control part 76 obtains a position of the updated area in the image based on the position information and restores the desktop screen by arranging the image based on the arrangement information. Accordingly, when the desktop screen includes a frequently updated area, the desktop screen excluding the portion of the frequently updated area is restored. When the moving image data and the attribute information are not received, the display control part 76 causes the display unit 71 to display the image of the restored desktop screen. On the other hand, when the moving image data and the attribute information are received, the display control part 76 composites the moving image of the moving image data on the image of the restored desktop screen and causes the display unit 71 to display it. For example, the display control unit 76 composites the image of the moving image data on the portion of the frequently updated area of the desktop screen and causes the display unit 71 to display the image of the moving image-composite desktop screen.
The operation information transmission part 77 is a processing unit to transmit operation information with respect to the virtual desktop to the server 11. The operation information transmission part 77 transmits operation information by the input unit 72 to the server 11. For example, the operation information transmission part 77 transmits a movement amount of a mouse cursor obtained through right and left clicks, a double click, or a drag of a mouse and an operation of moving a mouse as operation information. As another example, the operation information transmission part 77 transmits a rotation amount of a mouse wheel, a type of a key pressed down among the keyboard as the operation information.
[Operation of System]
Hereinafter, described is an example operation in which the server 11 detects a frequently updated area from an image of the desktop screen according to the first embodiment.
Also, the server 11 acquires image data of the desktop screen from the desktop screen information 30 even at timing during the transmission timing. In the example of
In the example of
Also, in the example of
The operation of the server 11 which calculates the change frequency is described more in detail.
The server 11 sequentially compares the updated areas of the images 81 to 84 in the descending order in time series and counts up the number of changing the updated area 80 for each of the divided areas. In the example of
The server 11 specifies a divided area whose number of updates stored in the setting information 32 is equal to or larger than a threshold. For example, when it is assumed that the threshold is “3”, in the example of
Hereinafter, using an example illustrated in
For example, it is assumed that an image of a desktop screen has W as the number of pixels in the width direction and H as the number of pixels in the height direction. Also, an updated area has Wupdate as the number of pixels in the width direction and Hupdate as the number of pixels in the height direction. In this case, a resolution of the entire screen of the desktop screen and a size of the updated area become as follows.
Also, a compression rate of a still image and a compression rate of a moving image with respect to the updated area are assumed as follows.
In addition, an update detection processing amount per one divided area and a frequently updated detection processing amount per one divided area are assumed as follows.
In addition, it is assumed that the number of divided areas of an image of the desktop screen in the width direction is MW and the number of divided areas of an image of the desktop screen in the height direction is MH. It is assumed that the number of divided areas of the updated area in the width direction is MWupdate and the number of divided areas of the updated area in the height direction is MHupdate. In this case, the number of divided areas MWH in the entire image of the desktop screen and the number of divided areas MWHupdate of the updated area are as follows.
In this case, the update detection processing amount for the entire image of the desktop screen is as following (1). The update detection processing amount for the updated amount is as following (2).
Entire screen: UM×MWH=(UMMWH) (1)
Updated area: UM×MWHupdate=(UMMWHupdate) (2)
Also, the frequently updated area detection processing amount for the entire image of the desktop screen is as following (3). The frequently updated area detection processing amount for the updated area is as following (4).
Entire screen: DM×MWH=(DMMWH) (3)
Updated area: DM×MWHupdate=(DMMWHupdate) (4)
Also, the compression data amount Dataimg in a still image of the entire image of the desktop screen is as following (5). The compression data amount UpdateDataimg in a still image of the updated area is as following (6). The compression data amount UpdateDatamov in a moving image of the updated area is as following (7).
Entire screen: Dataimg=W×H×Imgrate (5)
Updated area still image compression: UpdateDataimg=Wupdate×Hupdate×Imgrate (6)
Updated area moving image compression: UpdateDatamov=Wupdate×Hupdate×Movrate (7)
It is to be noted that it is assumed in the estimation of the embodiment that a capture time desired for acquiring a screen is sufficiently small and is set to 0.
In this case, when the frequently updated area as illustrated in
U
M
M
WH+3(UMMWHupdate+DMMWHupdate) (8)
Also, the updated area 80 is transmitted as a moving image at time t2 in the example of
UpdateDatamov
Hereinafter, for example, described for comparison is a case where a frequently updated area is detected only in an image in a transmission frame which is transmitted by the server 11 to the client terminal 12.
In this case, the update detection processing is performed on the entire image of the desktop screen at times t2, t3. The processing amount is UMMWH based on the above (1). Also, the updated area is transmitted as a still image at times t2, t3. This data amount is UpdateDataimg based on the above (6).
On the other hand, at time t4, the update detection processing and the frequently updated area detection processing are performed on the entire image of the desktop screen. This processing amount is UMMWH+DMMWH based on the above (1) and (4). Also, the updated area is transmitted as a moving image at time t4. This data amount is UpdateDatamov based on the above (7).
Here, transfer data amounts in the examples of
Also, the processing amounts of the examples of
In the embodiment, the frequently updated area is detected by comparing only the updated areas between the images. Accordingly, as the size of the updated area in the image is smaller, the processing amount becomes smaller.
One example to describe a case where a processing amount becomes smaller is estimated.
U
M
M
WH
+D
M
M
WH
>U
M
M
WH+3(UMMWHupdate+DMMWHupdate)
D
M
M
WH>3(UMMWHupdate+DMMWHupdate)
Here, for example, it is assumed that W=1,200, H=900, the size of divided areas is 30×30 pixels, UM=5, DM=10, and MWH=40×30 pixels. In this case, the number of divided areas of the updated area MWHupdate≦267 is obtained. For example, when the moving image area is smaller than about 20×13 mesh, the processing amount decreases.
In this manner, the server 11 according to the embodiment calculates a change frequency by sequentially comparing the updated areas of the images. Accordingly, when the number of divided areas of the updated area is small, the server 11 may reduce the processing amount as compared with the case where the change frequency is calculated by sequentially comparing the entire images.
Next, described is another example operation that the server 11 according to the first embodiment detects a frequently updated area from an image of the desktop screen.
Also, the server 11 acquires the image data of the desktop screen from the desktop screen information 30 even at the timing during the transmission timing. In the example of
In the example of
Also, in the example of
In this manner, the server 11 only performs update detection at timings of times t1, t2, and t3, and the processing amount is UMMWH. Also, the server 11 performs detection of frequently updated area at timings of time t1″, t2″, and t3″, and the processing amount is 3(UMMWHupdate+DMMwHupdate).
Since times t1, t2, and t3 are transmission timing, the data relating to the virtual desktop is transmitted to the client terminal 12. Accordingly, the server 11 performs detection of the frequently updated area at other timing, so that a processing load at the transmission timing may be reduced.
[Processing Flow]
Hereinafter, described is a flow of the change detection processing that the server 11 according to the first embodiment calculates a change frequency and identifies a frequently updated area based on the change frequency.
As illustrated in
The calculation part 44 determines if it is the frequently updated area detection timing to detect a frequently updated area (S16). In the example of
On the other hand, when reading all the pixels has been completed (YES at S21), the identification part 45 determines if there is a divided area having a change frequency equal to or larger than a threshold stored in the setting information 32 (S23). When there is no divided area having a change frequency equal to or larger than the threshold (NO at S23), the processing proceeds to S25 to be described later. On the other hand, when there is a divided area having a change frequency equal to or larger than a threshold (YES at S23), the identification part 45 specifies the frequently updated area by correcting the divided area whose number of changes is equal to or larger than the threshold (S24).
The storage part 48 stores the image data of the desktop screen acquired at S10 in the accumulated image information 31 (S25).
The conversion part 46 determines if it is the update detection timing to detect an updated area (S26). In the embodiment, in the case of the image transmission timing, it is determined as the update detection timing. When it is not the update detection timing (NO at S26), the processing is terminated. On the other hand, when it is the update detection timing (YES at S26), the conversion part 46 converts the image data of the updated area of the image of the desktop screen acquired at S10 such that the frequently updated area is treated as a moving image area and the other area is treated as a still image area in the updated area (S27). The transmission part 47 transmits the converted image data to the client terminal 12 (S28) and the processing is terminated.
[Effects]
As described above, the server 11 according to the embodiment transmits a created image to the client terminal 12. The server 11 acquires at least one created image at timing different from the image transmission timing. For example, the server 11 acquires at least one image created during the image transmission timing. The server 11 calculates a change frequency for each of multiple divided areas configuring an image from the image having been transmitted and the acquired image. Accordingly, the server 11 may quickly detect an area where a change frequency is high.
Also, the server 11 according to the embodiment compares the image to be transmitted with the image having been transmitted before the image to be transmitted and detects the area where a change is made among the multiple divided areas as an updated area. The server 11 calculates the change frequency by sequentially comparing the updated areas of the image having been transmitted and the acquired image in the descending order in time series from the image in which the updated area is detected. Accordingly, when the size of the updated area is small, the server 11 sequentially compares the entire image and calculates a change frequency, so that the processing amount may be reduced.
In addition, the server 11 according to the embodiment converts the image data of the updated area such that an area whose change frequency is equal to or larger than a predetermined threshold is treated as a moving image area and the other area is treated as a still image area in the updated area. Accordingly, the server 11 may reduce the data amount to be transmitted to the client terminal 12.
Hereinafter, a second embodiment is described. Described in the second embodiment is a case where a comparison is terminated on a divided area whose change frequency is a threshold. The configuration of a server 11 according to the second embodiment is similar to that of
A calculation part 44 sequentially compares updated areas of an image, and counts the number of changes as a change frequency for each of divided areas, and terminates the composition on the divided area whose change frequency is a threshold stored in setting information 32.
[Operation of System]
Hereinafter, an operation that the server 11 according to the second embodiment calculates a change frequency is described in detail.
The calculation part 44 sequentially compares updated areas of the images 81 to 84 in the descending order in time series and counts up the number of changes of the updated area 80 for each of the divided areas, and terminates the comparison on the divided area whose number of changes is a threshold. In the example of
[Effects]
As described above, the server 11 according to the embodiment counts the number of changes as a change frequency for each of the divided areas in which an image is divided and terminates the comparison on the divided area whose number of changes is a predetermined threshold. Accordingly, the server 11 does not perform the comparison on the divided area whose change frequency is the predetermined threshold, so that the processing amount may be reduced.
Hereinafter, a third embodiment is described. Described in the third embodiment is a case where setting information 32 is updated according to an available communication bandwidth.
[Server Configuration]
A server 11 according to the third embodiment is described.
A storage unit 21 of the server 11 illustrated in
In the example of
Return to
The specifying part 91 specifies a communication bandwidth available for communications with the client terminal 12. For example, the specifying part 91 transmits a predetermined amount of data to the client terminal 12 at predetermined timing, and measures a transmission time used for transmitting the predetermined amount of data. Then, the specifying part 91 specifies an available communication bandwidth by dividing the transmitted data amount with transmission time. In this case, the available communication bandwidth indicates a communication speed. A method of specifying the available communication bandwidth is an example, and other method may be used.
The update part 92 is a processing unit to update setting information 32. For example, the update part 92 performs update so that a threshold becomes lower as the available communication bandwidth specified by the specifying part 91 becomes lower. Also, as the available communication bandwidth becomes lower, the update part 92 increases the acquisition frequency that the acquisition part 42 acquires an image between the images. For example, the update part 92 reads an acquisition frequency and threshold corresponding to the available communication bandwidth specified by the specifying part 91 from the bandwidth-specific setting table 90. Then, the update part 92 updates the acquisition frequency and the threshold which are stored in the setting information 32 with the read acquisition frequency and threshold. Accordingly, the setting information 32 acquires the image data of the desktop screen from the desktop screen information 30 with the updated frequency. Also, the identification part 45 identifies a frequently updated area from the divided areas whose number of changes is equal to or larger than the updated threshold.
[Operation of System]
Hereinafter, described is an example operation that the server 11 according to the third embodiment detects a frequently updated area from an image of the desktop screen.
Also, the server 11 acquires the image data of the desktop screen from desktop screen information 30 even at the timing during the transmission timing. In the example of
It is assumed here in the example of
For this reason, the server 11 updates a threshold to be lower as the available communication bandwidth becomes lower. Also, the server 11 increases an acquisition frequency that the acquisition part 42 acquires an image between the images to be transmitted as the available communication bandwidth becomes lower. Accordingly, the server 11 quickly detects an area whose change frequency is high when the available communication bandwidth is low.
[Processing Flow]
Hereinafter, described is a flow that the server 11 according to the third embodiment performs setting update processing to update setting information 32 according to an available communication bandwidth.
As illustrated in
[Effects]
As described above, the server 11 according to the embodiment specifies a communication bandwidth available for communications with the client terminal 12. Then, the server 11 performs any one or both of the update to lower a threshold and the update to increase the acquisition frequency to acquire an image between the images, as the specified available communication bandwidth becomes lower. Accordingly, the server 11 quickly detects an area with high change frequency when the available communication bandwidth is low.
The embodiments related to the disclosed device are described above. The present disclosure may be implemented in various different modes other than the above-described embodiments. Hereinafter, other embodiment included in the present disclosure is described.
For example, described in the above embodiments is the case where the server 11 stores the image of the virtual desktop screen of the client terminal 12. The disclosed device is not limited to this. For example, the image of the virtual desktop screen may be stored in other server and may be acquired from other server.
Also, described in the above embodiments is the case where the image of the virtual desktop screen is transmitted to the client terminal 12. The disclosed device is not limited to this. For example, the image to be transmitted to the client terminal 12 is not limited to an image of the virtual desktop screen.
Also, described in the above embodiments is the case where an updated area is detected by comparing an image to be transmitted with an image in the previous transmission frame, but the disclosed device is not limited to this. For example, an updated area may be detected by comparing an image to be transmitted with an image in a predetermined transmission frame in two transmission frames before the image to be transmitted.
Also, described in the above embodiments is the case where the image data elapsed a predetermined period of time is deleted from the accumulated image information 31 and images for a predetermined period of time are accumulated in the accumulated image information 31, and all the accumulated images are read compared with one another, but the disclosed device is not limited to this. For example, image data for a predetermined or longer period of time may be accumulated in the accumulated image information 31 and the images may be read for the nearest predetermined period of time and be compared with one another. Also, a predetermined number of images may be accumulated in the accumulated image information 31 and all the accumulated images may be read and compared with one another.
In addition, components of the illustrated devices are functional and conceptual, and are not necessarily physically configured as illustrated. In other words, a specific state of dispersion and integration of the devices is not limited to the one illustrated, and all or one portion thereof may be configured by physically or functionally being dispersed or integrated in any unit according to various kinds of loads or usages. For example, processing parts of the server 11, such as a reception part 40, screen control part 41, acquisition part 42, detection part 43, calculation part 44, identification part 45, conversion part 46, transmission part 47, storage part 48, specifying part 91, and update part 92 may be integrated as appropriate. In addition, processing of each of the processing parts may be separated to processing of the multiple processing parts as appropriate. Also, one part or all of the devices and the processing parts may be integrated as appropriate. Furthermore, any one part or all of the processing functions performed in the processing parts may be achieved by the CPU and a program which is analyzed and executed by the CPU or may be achieved as a hardware by a wired logic.
[Change Detection Program]
Moreover, the various kinds of processing described in the above embodiments may be achieved by executing a program prepared in advance in a computer system such as a personal computer or workstation. For this reason, described hereinafter is an example computer system which executes a program having similar functions as those of the above-described embodiments.
As illustrated in
The HDD 320 has a change detection program 320a stored in advance to play a similar role as functions of the processing parts of the server 11. It is to be noted that the change detection program 320a may be separated as appropriate.
Also, the HDD 320 stores various pieces of information. For example, the HDD 320 stores various pieces of data which are used for the OS or processing.
Then, the CPU 310 reads and executes the change detection program 320a from the HDD 320 to execute a similar operation to those of the processing parts of the embodiments. In other words, the change detection program 320a executes similar operations to those of the processing parts of the client terminal 12 and the processing parts of the server 11.
It is to be noted that the change detection program 320a is not necessarily stored in the HDD 320 from the beginning.
For example, a program is stored in “potable physical medium” such as a flexible disk (FD), a CD-ROM, a DVD disk, a magneto-optical disk, or IC card, which is inserted into the computer 300. Then, the computer 300 may read a program therefrom and execute it.
Furthermore, a program is stored in “other computer (or server)” which is connected with the computer 300 through a public line, the Internet, LAN, or WAN. Then, the computer 300 may read a program therefrom and execute it.
All examples and conditional language recited herein are intended for pedagogical purposes to aid the reader in understanding the invention and the concepts contributed by the inventor to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions, nor does the organization of such examples in the specification relate to a showing of the superiority and inferiority of the invention. Although the embodiments of the present invention have been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.
Number | Date | Country | Kind |
---|---|---|---|
2014-070538 | Mar 2014 | JP | national |