WO2011036715A1 - Server and system - Google Patents
Server and system Download PDFInfo
- Publication number
- WO2011036715A1 WO2011036715A1 PCT/JP2009/004835 JP2009004835W WO2011036715A1 WO 2011036715 A1 WO2011036715 A1 WO 2011036715A1 JP 2009004835 W JP2009004835 W JP 2009004835W WO 2011036715 A1 WO2011036715 A1 WO 2011036715A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- information
- sequence number
- unit
- drawing command
- update
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
- G06F3/1454—Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2370/00—Aspects of data communication
- G09G2370/02—Networking aspects
- G09G2370/022—Centralised management of display operation, e.g. in a server instead of locally
Definitions
- the present invention relates to a server and a system.
- a “screen sharing system” in which a desktop image of a server terminal is packetized and distributed in real time from a server terminal connected via a network to a client terminal.
- one desktop image can be commonly referred to by both users at remote locations, and an efficient collaborative work environment can be realized between the two bases via the network.
- a screen sharing system there is a method of distributing only the updated part together with its drawing coordinates every time an update occurs on a desktop image (for example, Patent Document 1).
- the screen sharing system if a defect occurs in the transmission of the update image packet from the server terminal to the client terminal, the area corresponding to the defect cannot be drawn on the client terminal. This can cause discomfort for the user.
- a pop-up window is moved in the desktop image and there is a loss in the update image packet transmission that draws the area before the pop-up window is moved with the background image, the area before the pop-up window is moved, the area after the move
- a pop-up window may be displayed, which causes the user to feel uncomfortable.
- Patent Document 1 in the screen sharing system, when there is a defect in the transmission of the update image packet from the server terminal to the client terminal, the loss notification is received from the client terminal to the server terminal, and the loss notification is received.
- the server terminal transmits update image data for restoration to the client terminal. As a result, drawing defects can be repaired.
- TCP Transmission Control Protocol
- the client terminal cannot draw the updated image packet until the lost retransmission packet arrives.
- a lack of drawing may appear in a form that is visually recognized by the user until the loss notification and the updated update image data for restoration are reciprocated between the client terminal and the server terminal.
- Such lack of drawing during the round trip time is particularly problematic in situations where the round trip time between terminals is large, such as via a WAN (Wide Area Network) or wireless network.
- WAN Wide Area Network
- An object of the present invention is to suppress drawing defects even when packet loss occurs in a screen sharing system including a client terminal and a server.
- a server is a server that shares an image to be displayed on a screen with a client terminal, and stores a first image to be displayed on the screen.
- a storage unit a display unit that displays an image of the first storage unit on the screen; an update image that updates a part of an image stored in the first storage unit; and the screen on which the update image is displayed.
- An update information generation unit that generates update information including area information representing the position of the information, a sequence number addition unit that adds a sequence number for each update information, and an information amount that is equal to or less than the information amount of the update information,
- a simple information generating unit that generates simple information corresponding to the update information, a second storage unit that stores the simple information and a sequence number added to the update information corresponding to the simple information in association with each other;
- update information A drawing command creating unit for creating a drawing command including the sequence number added to the update information, simple information associated with a sequence number older than the sequence number added to the update information, and the old sequence number;
- a transmission unit that generates and transmits a drawing command packet from the drawing command.
- FIG. 1 is a block diagram showing a communication system.
- the block diagram which shows a server terminal and a client terminal.
- the flowchart which shows operation
- the figure which shows the example of area
- the figure which shows the example of a conversion table with whether a packet loss rate and simple information are produced.
- the figure which shows the example of the corresponding
- the figure which shows the 1st example of simple information The figure drawn based on the simple information of the 1st example.
- FIG. 1 shows the configuration of the screen sharing system of this embodiment.
- a server terminal 1 and a client terminal 2 are connected via a network 3.
- the server terminal 1 and the client terminal 2 share an image to be displayed on the screen of each terminal via the network 3.
- the server terminal 1 when the server terminal 1 intends to update the contents of its own desktop screen, the server terminal 1 generates image information (update information) of a portion (area) to be updated and displays it on the desktop screen, and also displays the same image information (update). Information) is packetized and transmitted to the client terminal 2.
- the client terminal 2 reflects the received image information (update information) on its own screen, so that the server terminal 1 and the client terminal 2 can display the same updated screen.
- the server terminal 1 in preparation for a case where a part of the packetized image information (update information) is lost, the server terminal 1 also transmits simple information when transmitting the image information (update information).
- Simple information is information corresponding to update information, and is information having an information amount equal to or less than the information amount of the update information.
- the client terminal 2 can draw with simple information, so that even if a part of the packet is lost, it can be drawn using the simple information, and apparently Packet loss can be suppressed.
- FIG. 2 shows the configuration of the server terminal 1 and the client terminal 2.
- the server terminal 1 includes an update information generation unit 101, a sequence number addition unit 102, an addition determination unit 103, a drawing command generation unit 104, a drawing command transmission unit 105, a simple information generation unit 106, and a simple information storage unit. 107, input status acquisition unit 108, communication status acquisition unit 109, encoding unit 110, frame buffer 111, loss notification analysis unit 112, loss notification reception unit 113, generation determination unit 114, update information history A storage unit 115, a display unit 116, and a CPU state acquisition unit 117 are included.
- the update information generation unit 101 is an image (updated image) after updating the area to be updated on the display screen (desktop) according to the operating state of the OS (Operating System) and various applications executed on the server terminal 1. And information (region information) indicating the position of the region to be updated.
- the updated image is rectangular screen data corresponding to a part of the desktop.
- the area information is a numerical value indicating the display position of the update image on the desktop (a numerical value indicating the storage position when the update image is stored in the frame buffer 111).
- a pair of update image and area information is called update information.
- the update information generation unit 101 outputs the generated update information to both the frame buffer 111 and the sequence number addition unit 102.
- the sequence number adding unit 102 has a storage area for storing the sequence number count value. Every time update information is received from the update information generating unit 101, the sequence number count value is stored in the storage area. It is added to the update information. For example, the sequence number adding unit 102 resets the sequence number count value to zero when the operation of the server terminal 1 is started, and each time the sequence number count value is added to the update information, the sequence number count value in the storage area is incremented by 1 Increment. The sequence number adding unit 102 outputs the update information with the sequence number count value added to both the generation determining unit 114 and the update information history storage unit 115.
- the update information history storage unit 115 has a storage area for storing a pair of region information and sequence number of update information, and receives a pair of region information and sequence number of update information from the sequence number adding unit 102. This is stored in the storage area. In addition, when the update information history storage unit 115 receives the update information region information and sequence number pair acquisition request from the loss notification analysis unit 112, the update information history storage unit 115 notifies the loss information region information and sequence number pair corresponding to the request. The data is output to the analysis unit 112.
- the generation determination unit 114 Upon receiving the update information and sequence number pair from the sequence number adding unit 102, the generation determination unit 114 receives the CPU load status and input acquired from the CPU status acquisition unit 117, the input status acquisition unit 108, and the communication status acquisition unit 109, respectively. It is determined whether or not it is necessary to generate simple information according to the state of the device ⁇ for example, a pointing device or a keyboard device (not shown) ⁇ and the communication state. If the generation determination unit 114 determines that it is necessary, the generation determination unit 114 inputs the update information and sequence number pair to both the addition determination unit 103 and the simple information generation unit 106. When it is determined that it is not necessary, the update information and sequence number pair is output only to the addition determination unit 103.
- the addition determination unit 103 Upon receiving the update information and sequence number pair from the generation determination unit 114, the addition determination unit 103 receives the CPU load state, the input device, and the CPU load state acquired from the CPU state acquisition unit 117, the input state acquisition unit 108, and the communication state acquisition unit 109. It is determined whether or not to add a pair of simple information and sequence number to the pair of update information and sequence number according to the state or communication state. The addition determination unit 103 outputs a determination result as to whether or not to generate a drawing command in which the pair of the simple information and the sequence number is added to the pair of the update information and the sequence number, to the drawing command creation unit 104.
- the drawing command generation unit 104 When receiving the update information / sequence number pair and the determination result from the addition determination unit 103, the drawing command generation unit 104 generates a drawing command. If the determination result of the addition determination unit 103 determines that the pair of simple information and sequence number is to be added, a drawing command is generated by adding the pair of simple information and sequence number to the pair of update information and sequence number. If it is determined, a drawing command is generated that does not add the pair of simple information and sequence number to the pair of update information and sequence number. The drawing command creation unit 104 acquires a pair of simple information and sequence number from the simple information storage unit 107.
- the drawing command creation unit 104 acquires from the simple information storage unit 107 a pair of simple information and sequence number corresponding to a sequence number that is one older than the sequence number of the update information.
- the drawing command creation unit 104 performs an encoding process by the encoding unit 110 on the update information / sequence number pair and the simple information / sequence number pair as necessary, and then compares the update information and the sequence number.
- a drawing command including a pair and a pair of the simple information and the sequence number is created.
- the drawing command creation unit 104 creates the drawing command
- the drawing command creation unit 104 outputs the drawing command to the drawing command transmission unit 105.
- the drawing command transmission unit 105 When the drawing command transmission unit 105 receives the drawing command from the drawing command creation unit 104, the drawing command transmission unit 105 creates a drawing command packet from the drawing command and transmits it to the client terminal 2 via the network 3.
- the drawing command packet is obtained by converting the drawing command into a format that can be transmitted on the network 3.
- the simple information generation unit 106 When the simple information generation unit 106 receives a pair of update information and a sequence number from the generation determination unit 114, the simple information generation unit 106 generates simple information corresponding to the update information. When the simple information generation unit 106 generates the simple information, the simple information and the sequence number are associated with each other and output to the simple information storage unit 107.
- the simple information is information corresponding to the update image, and is information having an information amount equal to or less than the information amount of the update information. The reason why information having an information amount equal to or smaller than the information amount of the update information is used as the simple information is to suppress a tight communication band.
- the input state acquisition unit 108 acquires the input state of an input device such as a pointing device (not shown) or a keyboard device (not shown) connected to the server terminal 1.
- an input state acquisition request is received from the generation determination unit 114 or the addition determination unit 103, the input state is output.
- the communication status acquisition unit 109 acquires the communication status of a network interface (not shown) in the server terminal 1.
- a communication status acquisition request is received from the generation determination unit 114 or the addition determination unit 103, the communication state is output.
- the CPU state acquisition unit 117 acquires a load state of a CPU (Central Processing Unit) (not shown) in the server terminal 1. In addition, when a communication state acquisition request is received from the generation determination unit 114 or the addition determination unit 103, the load state is output.
- a communication state acquisition request is received from the generation determination unit 114 or the addition determination unit 103, the load state is output.
- the encoding unit 110 Upon receiving the update image and sequence number pair or the simple information and sequence number pair, the encoding unit 110 performs an appropriate encoding process and outputs the result to the drawing command creation unit 105.
- the frame buffer 111 has a storage area for storing the entire image of the display screen (screen data corresponding to the entire desktop).
- the frame buffer 111 receives a pair of update information and sequence number from the update information generation unit 101, the frame buffer 111 stores the update image included in the update information in the area on the storage area indicated by the area information included in the update information. (Overwrite. Further, when the frame buffer 111 receives the screen data acquisition request together with the area information from the loss notification analysis unit 112, the frame buffer 111 outputs an image of the area of the screen data stored in itself.
- the display unit 116 displays the screen data stored in the frame buffer 111.
- the loss notification receiving unit 113 When the loss notification receiving unit 113 receives the loss notification packet from the client terminal 2 via the network 3, the loss notification receiving unit 113 extracts the loss notification included in the loss notification packet. The loss notification receiving unit 113 outputs the loss notification to the loss notification analyzing unit 112.
- the loss notification analysis unit 112 When the loss notification analysis unit 112 receives a loss notification from the loss notification reception unit 113, the loss notification analysis unit 112 extracts a sequence number from the loss notification. The loss notification analysis unit 112 outputs the sequence number to the update information history storage unit 115 and requests acquisition of update information corresponding to the sequence number. When the loss notification analysis unit 112 receives the update information, the loss notification analysis unit 112 extracts area information from the update information, outputs the area information to the frame buffer 111, and requests acquisition of the latest screen data regarding the area indicated by the area information on the display screen. To do. The loss notification analysis unit 112 configures update information from the pair of the latest screen data and the region information, and outputs the update information to the sequence number adding unit 102.
- the client terminal 2 includes, as its constituent elements, a drawing command reception unit 201, a loss detection unit 202, a drawing determination unit 203, a drawing execution unit 204, a frame buffer 205, a display unit 206, a decoding unit 207, A loss notification transmission unit 208 and an update information history storage unit 209 are included.
- the drawing command receiving unit 201 When the drawing command receiving unit 201 receives a drawing command packet from the server terminal 1 via the network 3, the drawing command receiving unit 201 extracts a drawing command from the received packet. The drawing command receiving unit 201 outputs the drawing command to the loss detecting unit 202.
- the loss detection unit 202 extracts the sequence number added to the update information included in the drawing command, and detects whether or not a loss has occurred in the arrival of the drawing command packet at the client terminal.
- the loss detection unit 202 has a storage area for storing a sequence number count value. For example, the sequence number count value is reset to 0 at the start of operation, and a drawing command is received every time a drawing command is received. Then, the sequence number count value in the storage area is incremented by one.
- the loss detection unit determines that no loss has occurred when the sequence number added to the update information matches the sequence number count value in the storage area, and the sequence number added to the update information is stored in the storage area.
- the sequence number of the lost update information is, for example, smaller than the sequence number added to the update information and a value equal to or greater than the sequence number count value in the storage area.
- the loss detection unit 202 detects that a loss has occurred, the loss detection unit 202 outputs the lost sequence number to the loss notification transmission unit 208. Further, the loss detection unit 202 outputs a drawing command together with the lost sequence number to the drawing determination unit 203. If no loss is detected, the loss detection unit 202 outputs only the drawing command to the drawing determination unit 203.
- the drawing determination unit 203 checks whether the sequence number lost along with the drawing command is input. When there is a sequence number lost with the drawing command, the drawing determining unit 203 determines whether there is simple information corresponding to the lost sequence number from the pair of the simple information and the sequence number included in the drawing command. Confirm. If there is simple information corresponding to the sequence number lost in the drawing command, the simple information is output to the drawing execution unit 204 and the update information is output to the drawing execution unit 204. If there is no simple information corresponding to the lost sequence number in the drawing command, or if the lost sequence number is not input to the drawing determining unit 203, the drawing determining unit 203 sends only the updated image to the drawing executing unit 204. Output.
- the drawing execution unit 204 Upon receiving the update information or simple information, the drawing execution unit 204 performs a decoding process on the update information and simple information by the decoding unit 207 as necessary, and then displays the display screen stored in the frame buffer 205 Overwrite and update a part of the contents of.
- the frame buffer 205 has a storage area for storing the entire image of the display screen, like the frame buffer 111 in the server terminal 1.
- the display unit 206 displays the screen data stored in the frame buffer 205.
- the decoding unit 207 Upon receiving the update information or simple information, the decoding unit 207 performs a decoding process corresponding to the encoding process of the encoding unit 110 in the server terminal 1 and outputs the result to the drawing execution unit 204.
- the loss notification transmission unit 208 When the loss notification transmission unit 208 receives the lost sequence number from the loss detection unit 202, the loss notification transmission unit 208 creates a loss notification packet from this and transmits it to the server terminal 1 via the network 3.
- the loss notification packet is obtained by converting the loss notification into a format that can be transmitted in the network 3.
- the update information history storage unit 209 has a storage area for storing a pair of update information and a sequence number, and stores this as a history when receiving a pair of update information and a sequence number. When a history read request is received together with a sequence number, the history is searched and update information corresponding to the sequence number is returned.
- FIG. 3 illustrates processing performed by the server terminal 1.
- FIG. 3 is a flowchart performed when the screen update of the server terminal 1 is generated.
- the updated image generation unit 101 changes the operating states of the OS and various applications executed on the server terminal 1 and presents them to the user. It is checked whether there is an update in the visual information. If there is an update (YES in S101), update information is generated (S102).
- the update information includes an update image and region information.
- the update image is rectangular screen data corresponding to a part of the desktop, and is, for example, the values of three colors of red, green, and blue in each pixel of the rectangle.
- the area information is a numerical value indicating the display position of the updated image on the desktop.
- the area information is the coordinate value of the upper left vertex of the rectangle of the updated image when the upper left corner of the desktop is the origin of the xy coordinate plane, the horizontal width of the desktop is Width, and the vertical width is Height. Left, Top) and the coordinate value (Right, Bottom) of the lower right vertex.
- the update information generation unit 101 inputs the generated update information to the frame buffer 111.
- the frame buffer 111 overwrites and updates the area indicated by the area information in the storage area of the frame buffer 111 with the updated image.
- the display unit 116 displays screen data in the frame buffer 111. Further, the update image generation unit 101 requests the addition of the sequence number to the update information by outputting the generated update information to the sequence number addition unit 102.
- the sequence number adding unit 102 that has received the sequence number addition request refers to the sequence number count value stored in its own sequence number storage area, and uses this sequence number count value as a sequence number. A sequence number is added to the update information.
- the sequence number adding unit 102 resets the sequence number count value to zero at the start of screen sharing, and thereafter increments by 1 each time a sequence number is added to the update information in step S103.
- the sequence number adding unit 102 outputs the pair of region information and sequence number included in the update information to the update information history storage unit 115.
- the update information history storage unit 115 stores region information and sequence number pairs in its own storage region.
- the sequence number adding unit 102 receives the notification that the storage is completed, the sequence number adding unit 102 outputs a pair of the sequence number and the update information to the generation determining unit 114.
- the generation determination unit 114 determines whether to generate simple information for the update information.
- the generation determination unit 114 determines whether or not to create simple information corresponding to the update information, based on various types of information obtained from the input state acquisition unit 108, the communication state acquisition unit 109, and the CPU state acquisition unit 117. be able to. Further, not only a simple determination of whether to create or not, but also the details at the time of simple information creation, such as what kind of simple image information to create, can be judged. A specific example of simple information or an example of a method for creating simple information will be described later. If it is determined that simple information is to be created, the process flow proceeds to S105. If it is determined not to create, the flow of processing moves to S106.
- FIG. 5 is an example in which the determination is made based on the packet loss rate in the network acquired from the communication status acquisition unit 109.
- the loss rate is, for example, a value obtained by dividing the number of losses known from the loss notification received by the loss notification receiving unit 113 by the number of drawing command packets transmitted by the drawing command transmitting unit 105.
- the communication state acquisition unit 109 calculates a packet loss rate in the network by receiving a loss notification from the loss notification analysis unit 112 and stores the packet loss rate in a storage area in the communication state acquisition unit 109.
- the communication status acquisition unit 109 replies with the stored loss rate. Based on this, the generation determination unit 114 checks whether or not the loss rate exceeds a specified value (for example, 0.1%). Make a decision.
- FIG. 6 is an example of determination based on the CPU load factor acquired from the CPU state acquisition unit 117.
- the CPU status acquisition unit 117 receives the CPU load factor acquisition request from the generation determination unit 114
- the CPU state acquisition unit 117 answers the CPU usage rate occupied by the application that performs screen sharing.
- the generation determination unit 114 checks whether or not the CPU usage rate exceeds a specified value (for example, 80%). do.
- FIG. 6 also shows an example of determination of simple information to be generated as well as simple determination of whether or not to create. According to this, for example, if the CPU usage rate exceeds a specified value (for example, 20%), it is determined that simple information with low image quality is created, and if it does not exceed, simple information with high image quality is created.
- a specified value for example, 20%
- the CPU resource consumption is reduced by creating the simple information. Can be achieved. Further, when the packet loss rate is high, the frequency of using simple information can be increased, and the lack of drawing of the client terminal can be effectively suppressed. Further, according to the second example, the CPU of the server terminal 1 is created by not creating simple information when the CPU usage rate of the server terminal 1 is high, or by creating simple information with low image quality that consumes less CPU resources. Reduction of resource consumption can be achieved. The determination may be made by combining the information of the first example and the second example.
- the determination may not be made using the information of the first example and the second example.
- the generation determination unit 114 may always determine that simple information is generated, and the simple information generation unit 106 may generate simple information every time update information is generated.
- information such as the number of colors, the size, and the position of the update image of the update information may be used.
- an application or GUI type including the update information may be used.
- the simple information storage unit 107 has a storage area for storing a pair of simple information and sequence number, and stores the pair of simple information and sequence number input from the simple information generation unit 106 in the storage area.
- FIG. 7 shows update information
- FIG. 8 shows simple information
- FIG. 9 shows a drawing drawn based on the simple information.
- the update image is a pop-up window image that notifies the user of a warning message.
- the updated image is shown as a bitmap.
- the simple information includes a single pair of color information and area information.
- the information representing the area uses the same coordinate axis as the area information included in the update information of the creation source.
- the color information is, for example, each value of red, green, and blue (0 to 255). An alpha value may be added to this.
- the value of the color information included in the simple information for example, the color used most frequently among the colors constituting the window image is calculated, and the value is used. Alternatively, an average value of color values of each pixel constituting the window image may be calculated and used. Alternatively, color information fixedly defined through screen sharing may be used. Alternatively, color information fixedly defined according to the application or GUI type in which the update information is included may be used.
- the update information is the information shown in FIG. 7 as in the first example.
- FIG. 10 shows simple information
- FIG. 11 shows a diagram drawn based on the simple information. As shown in FIG. 10, the simple information is composed of a plurality of pairs of color information and area information.
- the area information is associated with the color information drawn in the area of the area information.
- the color information of the simple information is, for example, identified by the GUI (Graphical User Interface) type (in the example, the title bar portion and the dialog portion) constituting the window image of the updated image and divided for each portion, This is information obtained by calculating color information for each division by the same method. Further, the area information of the simple information indicates the area after division.
- GUI Graphic User Interface
- the area information of the simple information indicates the area after division.
- simple information with higher reproducibility can be obtained. In dividing the update image, it is not always necessary to follow the GUI type, and an arbitrary method may be used.
- the image may be divided according to the type of application indicated by the updated image, or a similar color block may be detected from the updated image using an arbitrary algorithm, and the division may be configured for each block.
- the simple information is an image obtained by performing an irreversible compression process on the updated image and area information of the image.
- a lossy compression method any method such as JPEG (Joint Photographic Experts Group) can be used.
- the generation determination unit 114 determines what image quality is to be created as the simple information, the image quality can be changed by changing the compression method of the simple information. For example, in FIG. 6, when the generation determination unit 114 determines the image quality (high or low) of the simple information according to the CPU usage rate, as shown in FIG. This shows how to create simple information with various image quality parameters.
- the image quality parameter is a value that takes a value between 0 and 100, and indicates the reproducibility of drawing in the above-described lossy compression. In the case of 100, the same reproducibility as the original image is obtained.
- the simple information generation unit 106 receives a request to create high-quality or low-quality simple information from the generation determination unit 114, the simple information generation unit 106 sets an image quality parameter according to the above determination and performs compression processing.
- the simple information generation unit 106 defines a pair of compressed image data and area information as simple information. By using the irreversible image compression algorithm in this way, it is possible to create simple information with high reproducibility of drawing.
- the simple information is composed of a pair of a sequence number value and area information used in the past. That is, the simple information causes the client terminal 2 to reuse the update information that was previously transmitted from the server terminal 1 to the client terminal 2 as simple information corresponding to the update information.
- the sequence number adding unit 102 of the server terminal 1 stores the update image in the update information history storage unit 115 as a history in addition to the region information and the sequence number in step S109 described above. There is a need.
- step S ⁇ b> 105 the simple information generation unit 106 acquires the update image / region information pair history stored in the update information history storage unit 115, and then uses the arbitrary algorithm to update the simple information creation source update image.
- the update image on the history closest to is selected, and the value of the sequence number and the region information of the update image on the selected history are determined as simple information.
- the client terminal 2 has an update information history storage unit 209 for storing an update image, and stores a sequence number and update information included therein every time a drawing command packet is received.
- step S106 when the addition determination unit 103 receives a pair of the sequence number and the update information from the generation determination unit 114, in the next processing of the drawing command creation unit 104, the addition number is updated to the sequence number and the update information as a drawing command. It is determined whether or not to add simple information and a sequence number of the simple information. Specifically, the addition determination unit 103 adds simple information to the update information and a sequence number of the simple information based on various information obtained from the input state acquisition unit 108, the communication state acquisition unit 109, and the CPU state acquisition unit 117. It is determined whether or not to add. In addition to simple determination of whether to add or not, it is also possible to determine whether to add simple information corresponding to which sequence number and the sequence number of the simple information.
- the addition determining unit 103 If it is determined to be added, the addition determining unit 103 outputs the sequence number / update information pair and the sequence number of the simplified information to be added to the drawing command creating unit 104. The flow of processing moves to step S107. On the other hand, if it is determined not to be added, the addition determining unit 103 outputs only the sequence number / update information pair to the drawing command creating unit 104, and the flow of processing proceeds to step S108.
- FIG. 13 is an example in which a determination is made based on the usage amount of the communication bandwidth acquired from the communication state acquisition unit 109.
- the communication status acquisition unit 109 calculates a currently used bandwidth out of available bandwidths and stores it in its own storage area.
- the communication state acquisition unit 109 receives the bandwidth usage amount acquisition request from the addition determination unit 103, the communication state acquisition unit 109 notifies the stored bandwidth usage amount.
- the addition determination unit 103 checks whether or not the bandwidth usage exceeds a specified value (for example, 5%), and if it exceeds, determines that the simple information and the sequence number of the simple information are not added. To do.
- a specified value for example, 5%
- the simple information corresponding to the update information of one sequence number immediately before the sequence number of the update information and the sequence number of the simple information are added, and less than 1% If there is, it is determined that the simple information corresponding to the update information of the two immediately preceding sequence numbers and the sequence number of the simple information are added. For example, if the sequence number included in the update information received by the generation determination unit 114 is 100, the update information of the immediately preceding one sequence number means the update information corresponding to the sequence number 99. Further, the update information of the last two sequence numbers means update information corresponding to the sequence numbers 98 and 99.
- FIG. 14 is an example of determination based on the packet loss rate in the network acquired from the communication status acquisition unit 109.
- the communication state acquisition unit 109 calculates a packet loss rate in the network by receiving a loss notification from the loss notification analysis unit 112 and stores the packet loss rate in its own storage area.
- the communication state acquisition unit 109 replies with the stored loss rate.
- the addition determination unit 103 checks whether or not the loss rate exceeds a specified value (for example, 0.1%), and if it exceeds, determines that the simple information and the sequence number of the simple information are added. To do. In the case of exceeding, it is determined based on the correspondence of FIG. 14 whether the simple information corresponding to the immediately preceding update information and the sequence number of the simple information are added.
- FIG. 15 is an example in which the determination is made based on the input state of the pointing device connected to the server terminal 1 acquired from the input state acquisition unit 108.
- the input state acquisition unit 108 checks and answers the input state. Based on this, the addition determination unit 103 determines whether or not a drag operation is performed on an arbitrary window from the layout state of the window on the desktop acquired by an arbitrary method. If it is determined that a drag operation is being performed, it is determined that simple information corresponding to the immediately preceding three update information and the sequence number of the simple information are added. If it is determined that it has not been performed, it is determined that the simple information corresponding to the immediately preceding update information and the sequence number of the simple information are added.
- the addition determination unit 103 determines whether or not to add the simple information and the sequence number of the simple information based on the information such as the communication state and the input state.
- the first example it is possible to suppress the tightness of the communication band by reducing the number of simple information added when the ratio of the communication bandwidth currently in use is high.
- the second example by adding a lot of simple information when the packet loss rate of the network is large, even if a plurality of drawing command packets are lost at the same time, drawing by the simple information can be performed. It becomes possible.
- a lot of simple information is added when it is expected that the screen is continuously updated over a wide range of the desktop, such as a drag operation of the window, so that drawing by packet loss can be performed. Chipping can be suppressed more effectively.
- the addition determination unit 103 may determine whether or not to add the simple information and the sequence number of the simple information by combining the first example, the second example, and the third example. . Further, the addition determination unit 103 may not make a determination using the information of the third example of the first example and the second example. For example, the addition determination unit 103 may always determine that a fixed number of simple information and a sequence number of simple information are added. Alternatively, information such as the number of colors, the size, and the position of the update image of the update information may be used. Alternatively, an application or GUI type including the update information may be used.
- step S107 the drawing command creation unit 104 receives update information, a sequence number, and information related to the addition of simple information (whether or not to add simple information or a sequence number to be added) from the addition determination unit 103.
- the sequence number of the simple information to be added is output to the simple information storage unit 107, and the acquisition of the simple information corresponding to the sequence number is requested.
- the simple information storage unit 107 searches its own storage area and returns corresponding simple information.
- the drawing command creating unit 104 creates a drawing command.
- the drawing command is composed of a pair of update information and sequence number input from the addition determination unit 103 and a pair of simple information and sequence number acquired from the simple information storage unit 107.
- the drawing command creating unit 104 configures a drawing command from the information after the encoding unit 110 compresses the update image included in the update information.
- the encoding unit 110 performs arbitrary image compression processing such as JPEG.
- the drawing command creation unit 104 outputs the created drawing command to the drawing command transmission unit 105 and requests transmission of the drawing command.
- the drawing command transmission unit 105 When the drawing command transmission unit 105 receives the drawing command from the drawing command creation unit 104, the drawing command transmission unit 105 adds information necessary for transmission on the network 3, such as a UDP header or an IP (Internet Protocol) header, and then sends the client command to the client terminal 2. Send to.
- information necessary for transmission on the network 3 such as a UDP header or an IP (Internet Protocol) header
- Step S108 when the drawing command creating unit 104 receives the update information and the sequence number from the adding determining unit 103, the same processing as Step S107 is performed. However, unlike the step S107, simple information is not acquired, so that the update command included in the update information is subjected to compression processing by the encoding unit 110, and then a rendering command is formed from the update information after compression processing and the sequence number. .
- the drawing command creation unit 104 outputs the drawing command to the drawing command transmission unit 105 and requests transmission.
- the drawing command transmission unit 105 When the drawing command transmission unit 105 receives the drawing command from the drawing command creation unit 104, the drawing command transmission unit 105 adds information necessary for transmission on the network 3, such as a UDP header or an IP (Internet Protocol) header, and then sends the client command to the client terminal 2. Send to.
- information necessary for transmission on the network 3 such as a UDP header or an IP (Internet Protocol) header
- FIG. 16 is a flowchart showing an operation when the server terminal 1 receives a loss notification packet.
- the loss notification reception unit 113 When the loss notification reception unit 113 receives the loss notification packet from the client terminal 2, the loss notification reception unit 113 extracts the loss notification from the packet and notifies the loss notification analysis unit 112 in step S201.
- the loss notification is composed of one or more sequence numbers.
- the loss notification analysis unit 112 when the loss notification analysis unit 112 extracts the sequence number from the loss notification, the loss notification analysis unit 112 outputs the sequence number to the update information history storage unit 115 and requests acquisition of area information corresponding to the sequence number.
- the update information history storage unit 115 stores the sequence number and the history of the area information in its own storage area, searches the history corresponding to the requested sequence number, and outputs the corresponding area information.
- the loss notification analysis unit 112 requests the frame buffer 111 to obtain the latest screen data relating to the region indicated by the region information. Note that the loss notification analysis unit 112 does not necessarily request acquisition of screen data relating to the same area as the acquired area information. An example is shown in FIG. FIG.
- FIG. 17 illustrates a case where sequence numbers 100, 101, and 102 are included in the loss notification received by the loss notification analysis unit 112. Further, at this time, the value of the region information acquired from the update information history storage unit 115 is also written for each of the sequence numbers. At this time, the loss notification analysis unit 112 does not acquire screen data from the frame buffer 111 for each of the sequence numbers 100, 101, and 102, but can reconfigure the region information so that there is no overlapping region. .
- FIG. 18 shows information on the area after reconstruction. The loss notification analysis unit 112 acquires the latest screen data from the frame buffer 111 for the reconfigured area.
- the loss notification analysis unit 112 acquires the screen data, the loss notification analysis unit 112 forms a pair with the corresponding region information, and outputs this to the sequence number adding unit 102.
- step S203 the process flow proceeds to step S102 in FIG.
- the sequence number adding unit 102 receives update information from the update information generation unit 101 for each pair of input image data and region information (if a plurality of pairs are input).
- the processing of S103 to S109 is performed, and the drawing command transmission unit 105 sends a drawing command including a pair of image data, region information, and sequence number to the client terminal 2. Send.
- FIG. 19 is a flowchart showing the operation of the client terminal 2.
- the drawing command receiving unit 201 when receiving the drawing command packet via the network 3, extracts the drawing command from the drawing command packet.
- the drawing command includes a sequence number / update information pair and zero or more simple information / sequence number pairs.
- the drawing command receiving unit 201 outputs the drawing command to the loss detection unit 202 and requests loss detection.
- the loss detection unit 202 when receiving the drawing command, extracts a sequence number corresponding to the update information from the drawing command, and determines whether or not a loss has occurred in receiving the drawing command packet.
- the process flow proceeds to step S305. If they do not match and the extracted sequence number is newer than the sequence number count value (>), it is determined that a packet loss has occurred, and the flow of processing proceeds to step S303.
- Step S304 If they do not match and the extracted sequence number is older than the sequence number ( ⁇ ), it is determined that a previously arrived drawing command packet has arrived in duplicate, the drawing command is discarded, and this processing ends.
- the sequence number count value is 100 and the received sequence number is 103
- the loss detection unit 202 determines that a loss has occurred in the rendering command packet corresponding to the sequence numbers 100, 101, and 102.
- the sequence number is older than the sequence number count value (for example, 98)
- the loss detection unit 202 determines that the received packet that has arrived previously has arrived in duplicate. In any of the three cases, after determination, the sequence number count value is overwritten and updated with the value of the sequence number.
- step S303 the loss detection unit 202 outputs the sequence number (100, 101, 102 in the above example) of the rendering command packet in which the loss has occurred to the loss notification transmission unit 208, and requests transmission of the loss notification.
- the loss notification transmission unit 208 adds information necessary for transmission in the network 3, such as a UDP header or an IP (Internet Protocol) header, to these sequence numbers, and then sends them to the server terminal 1.
- the loss detection unit 202 outputs a combination of the drawing command input from the drawing command receiving unit 201 and the sequence number of the drawing command in which the loss has occurred to the drawing determination unit 203.
- the process flow proceeds to S305.
- the drawing determination unit 203 when the drawing determination unit 203 receives the drawing command, it first checks whether or not simple information is included in the drawing command. If not included, the drawing determination unit 203 outputs update information included in the drawing command to the drawing execution unit 204 and requests execution of drawing using the update information. The process flow proceeds to step S308. If simple information is included, the drawing determination unit 203 next determines whether or not to perform drawing using simple information. The process flow proceeds to S306.
- the drawing determination unit 203 determines whether or not to execute drawing with the added simple information according to the following procedure. First, the drawing determination unit 203 confirms whether or not a drawing command and information on a sequence number in which a loss has occurred are input together. If it has been input, it is further confirmed whether or not the simple information corresponding to the value of the sequence number where the loss has occurred is included in the drawing command. When the simple information corresponding to the value of the sequence number in which the loss has occurred is included in the drawing command, the drawing determining unit 203 determines to perform drawing using the simple information. In this case, the process flow proceeds to step S307.
- the drawing determination The unit 203 determines not to perform drawing with simple information. In this case, the drawing determination unit 203 outputs update information included in the drawing command to the drawing execution unit 204 and requests execution of drawing using the update information. The process flow proceeds to step S308.
- the drawing determination unit 203 determines to execute drawing with simple information
- the drawing determination unit 203 outputs the simple information to the drawing execution unit 204 and requests execution of drawing.
- the drawing execution unit 204 receives the simple information
- the drawing execution unit 204 overwrites and updates the area indicated by the area information of the simple information in the frame buffer 205.
- the drawing determination unit 203 outputs update information included in the drawing command received from the loss detection unit 202 to the drawing execution unit 204 and requests execution of drawing based on the update information.
- the process flow proceeds to step S308.
- step S308 upon receiving input of update information, the drawing execution unit 204 extracts area information and an update image from the update information, and overwrites and updates the area indicated by the area information in the frame buffer 205 with the update image. If necessary, decompression processing by the decoding unit 207 is performed.
- the display unit 206 displays screen data in the frame buffer 205.
- step S301 to step S308 Specific examples of processing from step S301 to step S308 will be given.
- the sequence number count value of the loss detection unit 202 is 100, it is assumed that a drawing command packet including update information of the sequence number 101 is received. As shown in FIG. 20, it is assumed that simple information of sequence number 100 is added to this drawing command in addition to update information.
- the loss detection unit 202 since the current sequence number count value is 100, the loss detection unit 202 expects that the sequence number added to the update information of the received drawing command packet is 100. However, actually, since the drawing command with the sequence number 101 added to the update information has been received, the loss detection unit 202 determines that the drawing command with the sequence number 100 has been lost in the network 3 (step S302).
- the loss detection unit 202 notifies the server terminal 1 through the loss notification transmission unit 208 that a loss has occurred in the sequence number 100 (step S303), and then draws update information of the sequence number 101 and simple information of the sequence number 100.
- the data is output to the determination unit 203.
- the drawing determination unit 203 adds simple information to the input (step S305), and this simple information corresponds to the sequence number (100) in which the loss has occurred. It is determined to perform drawing with this simple information (step S306).
- the drawing execution unit 204 first executes drawing with the simple information of the sequence number 100 (fills the specified area with the specified color information) (step S307), and then executes (updates) the drawing with the update information of the sequence number 101. An image is drawn) (step S308).
- the client terminal 2 receives the update information packet including the simple information generated from the past update information, and only receives the simple information corresponding to the loss when the packet loss is detected.
- Use to draw Conventionally, when a packet loss occurs, the drawing is missing, but when the present invention is applied, it is detected that a loss has occurred, and an emergency drawing process is performed using simple information as an alternative. . As a result, it is possible to avoid a sense of incongruity of drawing disruption recognized by the user at the time of packet loss.
- the present invention can be expected to be particularly effective in a network where the round trip time between the server terminal and the client terminal is large, such as via a WAN.
- the server terminal 1 can also be realized by using a general-purpose computer device as basic hardware. That is, the update information generation unit 101, the sequence number addition unit 102, the addition determination unit 103, the drawing command creation unit 104, the drawing command transmission unit 105, the simple information generation unit 106, the simple information storage unit 107, Input state acquisition unit 108, communication state acquisition unit 109, encoding unit 110, frame buffer 111, loss notification analysis unit 112, loss notification reception unit 113, generation determination unit 114, and update information history storage unit 115
- the display unit 116 and the CPU state acquisition unit 117 can be realized by executing a program on a processor mounted on the computer device. At this time, the server terminal 1 can be realized by executing the above program.
- the server terminal 1 may be realized by installing the above program in a computer device in advance, or may be stored in a storage medium such as a CD-ROM or distributed through the network.
- this program may be realized by appropriately installing it in a computer device.
- the update information history storage unit 115, the simple information storage unit 107, and the frame buffer 111 are a memory, a hard disk or a CD-R, a CD-RW, a DVD-RAM, a DVD-R incorporated in or attached to the computer device. It can be realized by appropriately using a storage medium such as
- the client terminal 2 can also be realized by using a general-purpose computer device as basic hardware. That is, the drawing command receiving unit 201, the loss detecting unit 202, the drawing determining unit 203, the drawing executing unit 204, the frame buffer 205, the display unit 206, the decoding unit 207, the loss notification transmitting unit 208, the update
- the information history storage unit 209 can be realized by executing a program on a processor mounted on the computer device. At this time, the client terminal 2 can be realized by executing the above program. At this time, the client terminal 2 may be realized by installing the above program in a computer device in advance, or may be stored in a storage medium such as a CD-ROM or distributed through the network.
- the update information history storage unit 209 and the frame buffer 205 include a memory, a hard disk or a storage medium such as a CD-R, a CD-RW, a DVD-RAM, a DVD-R, etc. incorporated in or externally attached to the computer device. It can be realized by appropriately using.
- the present invention is not limited to the above-described embodiment as it is, and can be embodied by modifying constituent elements without departing from the scope of the invention in the implementation stage.
- various inventions can be formed by appropriately combining a plurality of components disclosed in the embodiment. For example, some components may be deleted from all the components shown in the embodiment.
- constituent elements over different embodiments may be appropriately combined.
- Update information log
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Description
本発明は、サーバ及びシステムに関する。 The present invention relates to a server and a system.
ネットワークを介して接続されたサーバ端末からクライアント端末に対してサーバ端末のデスクトップ画像をパケット化してリアルタイムで配信する「画面共有システム」がある。これによれば、一方のデスクトップ画像を遠隔地の両ユーザで共通して参照することが可能になり、ネットワークを介した両拠点間において効率的な共同作業環境が実現できる。
画面共有システムを構築する際には、デスクトップ画像に更新が生じるごとにその更新部分のみを、その描画座標とともにパケット化して配信するという方法がある
(例えば、特許文献1)。
There is a “screen sharing system” in which a desktop image of a server terminal is packetized and distributed in real time from a server terminal connected via a network to a client terminal. According to this, one desktop image can be commonly referred to by both users at remote locations, and an efficient collaborative work environment can be realized between the two bases via the network.
When constructing a screen sharing system, there is a method of distributing only the updated part together with its drawing coordinates every time an update occurs on a desktop image (for example, Patent Document 1).
画面共有システムにおいては、サーバ端末からクライアント端末への更新画像パケットの送信に欠損が生じた場合には、欠損に相当する領域がクライアント端末において描画できない。これは、ユーザにとって違和感を生じることがあり得る。 In the screen sharing system, if a defect occurs in the transmission of the update image packet from the server terminal to the client terminal, the area corresponding to the defect cannot be drawn on the client terminal. This can cause discomfort for the user.
たとえば、デスクトップ画像のうちポップアップウィンドを移動させた場合に、ポップアップウィンド移動前の領域を背景画像で描画する更新画像パケット送信に欠損が生じた場合、ポップアップウィンドの移動前の領域、移動後の領域共にポップアップウィンドが表示されることがあり、ユーザにとって違和感を生じる。 For example, if a pop-up window is moved in the desktop image and there is a loss in the update image packet transmission that draws the area before the pop-up window is moved with the background image, the area before the pop-up window is moved, the area after the move In some cases, a pop-up window may be displayed, which causes the user to feel uncomfortable.
特許文献1の場合は、画面共有システムにおいては、サーバ端末からクライアント端末への更新画像パケットの送信に欠損が生じた場合、クライアント端末からサーバ端末に対してロス通知がされ、ロス通知を受け取ったサーバ端末は、クライアント端末に修復用の更新画像データが送信される。この結果、描画の欠けを修復することができる。 In the case of Patent Document 1, in the screen sharing system, when there is a defect in the transmission of the update image packet from the server terminal to the client terminal, the loss notification is received from the client terminal to the server terminal, and the loss notification is received. The server terminal transmits update image data for restoration to the client terminal. As a result, drawing defects can be repaired.
また、描画の欠けを解決するためには、TCP(Transmission Control Protocol)に代表される、欠損パケットの再送機能を有する伝送プロトコルを利用することも可能である。 In addition, in order to solve the lack of drawing, it is also possible to use a transmission protocol having a retransmission function of a lost packet represented by TCP (Transmission Control Protocol).
しかしながら、これらの再送方法では、クライアント端末は、ロスした再送パケットが到着するまで、その更新画像パケットの描画ができない。 However, with these retransmission methods, the client terminal cannot draw the updated image packet until the lost retransmission packet arrives.
特許文献1記載の方法では、ロス通知と修復用の更新画像データがクライアント端末とサーバ端末間で往復するまでの間、描画の欠けが、ユーザに視認される形で表れることもある。こうした往復時間中の描画の欠けは、WAN(Wide Area Network)や無線ネットワーク経由など、端末間の往復時間が大きい状況などにおいて特に問題となる。 In the method described in Patent Document 1, a lack of drawing may appear in a form that is visually recognized by the user until the loss notification and the updated update image data for restoration are reciprocated between the client terminal and the server terminal. Such lack of drawing during the round trip time is particularly problematic in situations where the round trip time between terminals is large, such as via a WAN (Wide Area Network) or wireless network.
本発明は、クライアント端末とサーバからなる画面共有システムにおいて、パケットロスが生じても、描画の欠けを抑制することを目的とする。 An object of the present invention is to suppress drawing defects even when packet loss occurs in a screen sharing system including a client terminal and a server.
上記目的を達成するために、本発明の一実施形態に係るサーバは、画面に表示する画像をクライアント端末との間で共有するサーバであって、前記画面に表示する画像を記憶する第1の記憶部と、前記第1の記憶部の画像を前記画面に表示する表示部と、前記第1の記憶部が記憶する画像の一部を更新する更新画像と当該更新画像が表示される前記画面の位置を表す領域情報とを含む更新情報を生成する更新情報生成部と、前記更新情報毎にシーケンス番号を付加するシーケンス番号付加部と、前記更新情報の情報量以下の情報量であって、前記更新情報に対応する簡易情報を生成する簡易情報生成部と、前記簡易情報と当該簡易情報に対応する更新情報に付加されたシーケンス番号とを対応付けて記憶する第2の記憶部と、前記更新情報と当該更新情報に付加されたシーケンス番号と、前記更新情報に付加されたシーケンス番号より古いシーケンス番号と対応付けられた簡易情報と当該古いシーケンス番号を含む描画命令を作成する描画命令作成部と、前記描画命令から描画命令パケットを作成して送信する送信部とを備える。 In order to achieve the above object, a server according to an embodiment of the present invention is a server that shares an image to be displayed on a screen with a client terminal, and stores a first image to be displayed on the screen. A storage unit; a display unit that displays an image of the first storage unit on the screen; an update image that updates a part of an image stored in the first storage unit; and the screen on which the update image is displayed. An update information generation unit that generates update information including area information representing the position of the information, a sequence number addition unit that adds a sequence number for each update information, and an information amount that is equal to or less than the information amount of the update information, A simple information generating unit that generates simple information corresponding to the update information, a second storage unit that stores the simple information and a sequence number added to the update information corresponding to the simple information in association with each other; update information A drawing command creating unit for creating a drawing command including the sequence number added to the update information, simple information associated with a sequence number older than the sequence number added to the update information, and the old sequence number; A transmission unit that generates and transmits a drawing command packet from the drawing command.
本発明によれば、クライアント端末とサーバからなる画面共有システムにおいて、パケットロスが生じても、描画の欠けを抑制することができる。 According to the present invention, in a screen sharing system composed of a client terminal and a server, it is possible to suppress drawing defects even if packet loss occurs.
以下、本発明の実施形態について説明する。 Hereinafter, embodiments of the present invention will be described.
図1は、本実施形態の画面共有システムの構成を示す。本実施形態の画面共有システムは、サーバ端末1と、クライアント端末2とが、ネットワーク3を介して接続されている。サーバ端末1とクライアント端末2は、それぞれの端末の画面に表示する画像をネットワーク3を介して共有する。
FIG. 1 shows the configuration of the screen sharing system of this embodiment. In the screen sharing system of this embodiment, a server terminal 1 and a
すなわち、サーバ端末1は自己のデスクトップ画面の内容を更新しようとする場合には、更新する部分(領域)の画像情報(更新情報)を生成してデスクトップ画面に表示するとともに、同じ画像情報(更新情報)をパケット化して、クライアント端末2に送信する。クライアント端末2が、受け取った画像情報(更新情報)を自己の画面に反映させることによって、サーバ端末1とクライアント端末2とで同じように更新された画面の表示を行うことができる。
That is, when the server terminal 1 intends to update the contents of its own desktop screen, the server terminal 1 generates image information (update information) of a portion (area) to be updated and displays it on the desktop screen, and also displays the same image information (update). Information) is packetized and transmitted to the
この場合、パケット化された画像情報(更新情報)の一部が欠損した場合に備えて、 サーバ端末1は画像情報(更新情報)を送信する場合に、簡易情報もあわせて送信する。 In this case, in preparation for a case where a part of the packetized image information (update information) is lost, the server terminal 1 also transmits simple information when transmitting the image information (update information).
簡易情報とは、更新情報に対応する情報であって、更新情報の情報量以下の情報量を有する情報である。 Simple information is information corresponding to update information, and is information having an information amount equal to or less than the information amount of the update information.
これにより、クライアント端末2は簡易情報による描画が可能となるので、パケットの一部に欠損が生じた場合であっても、簡易情報を用いて描画することができるようになるとともに、見かけ上のパケット欠損を抑制することができる。
As a result, the
図2は、サーバ端末1とクライアント端末2の構成を示す。
FIG. 2 shows the configuration of the server terminal 1 and the
サーバ端末1は、更新情報生成部101と、シーケンス番号付加部102と、付加判断部103と、描画命令作成部104と、描画命令送信部105と、簡易情報生成部106と、簡易情報記憶部107と、入力状態取得部108と、通信状態取得部109と、エンコード部110と、フレームバッファ111と、ロス通知解析部112と、ロス通知受信部113と、生成判断部114と、更新情報履歴格納部115と、表示部116と、CPU状態取得部117を含む。
The server terminal 1 includes an update
更新情報生成部101は、サーバ端末1において実行されるOS(Operating System:オペレーティングシステム)および各種アプリケーションの動作状態に応じて、表示画面(デスクトップ)において更新する領域の更新後の画像(更新画像)と、当該更新する領域の位置を表す情報(領域情報)とを生成する。更新画像は、デスクトップの一部分に相当する矩形状の画面データである。領域情報は、デスクトップ上における更新画像の表示位置を示す数値(フレームバッファ111に更新画像を格納する際の格納位置を表す数値)である。更新画像と領域情報の対を更新情報と呼ぶ。更新情報生成部101は、生成した更新情報をフレームバッファ111およびシーケンス番号付加部102の両方に出力する。
The update
シーケンス番号付加部102は、シーケンス番号カウント値を格納するための記憶領域を有しており、更新情報生成部101から更新情報を受け取るごとに、当該記憶領域に格納されているシーケンス番号カウント値を当該更新情報に付加する。シーケンス番号付加部102は、例えば、サーバ端末1の動作開始時にシーケンス番号カウント値をゼロにリセットし、シーケンス番号カウント値を更新情報に付加するごとに、当該記憶領域内のシーケンス番号カウント値を1インクリメントする。シーケンス番号付加部102は、シーケンス番号カウント値を付加した当該更新情報を生成判断部114および更新情報履歴格納部115の両方に出力する。
The sequence
更新情報履歴格納部115は、更新情報の領域情報とシーケンス番号の対を格納するための記憶領域を有しており、シーケンス番号付加部102から更新情報の領域情報とシーケンス番号の対を受け取るごとに、これを記憶領域に記憶する。また、更新情報履歴格納部115は、ロス通知解析部112から更新情報の領域情報とシーケンス番号の対の取得要求を受け取ると、要求に対応する更新情報の領域情報とシーケンス番号の対をロス通知解析部112に出力する。
The update information
生成判断部114は、シーケンス番号付加部102から更新情報とシーケンス番号の対を受け取ると、CPU状態取得部117、入力状態取得部108、通信状態取得部109それぞれから取得したCPUの負荷状態、入力装置{例えば、ポインティング装置やキーボード装置(図示せず。)}の状態や通信状態に応じて、簡易情報の生成の必要があるか否かを判断する。生成判断部114は、必要があると判断した場合は、付加判断部103と簡易情報生成部106の両方に当該更新情報とシーケンス番号の対を入力する。必要がないと判断した場合は、付加判断部103のみに当該更新情報とシーケンス番号の対を出力する。
Upon receiving the update information and sequence number pair from the sequence
付加判断部103は、生成判断部114から更新情報とシーケンス番号の対を受け取ると、CPU状態取得部117、入力状態取得部108、通信状態取得部109それぞれから取得したCPUの負荷状態、入力装置の状態や通信状態に応じて、当該更新情報とシーケンス番号の対に簡易情報とシーケンス番号の対を付加するか否かを判断する。付加判断部103は、当該更新情報とシーケンス番号の対に簡易情報とシーケンス番号の対を付加した描画命令を生成するか否かの判断結果を描画命令作成部104に出力する。
Upon receiving the update information and sequence number pair from the
描画命令作成部104は、付加判断部103から更新情報とシーケンス番号の対および判断結果を受け取ると、描画命令を生成する。付加判断部103の判断結果が簡易情報とシーケンス番号の対を付加すると判定した場合は、更新情報とシーケンス番号の対に簡易情報とシーケンス番号の対を付加した描画命令を生成し、付加しないと判定した場合は、更新情報とシーケンス番号の対に簡易情報とシーケンス番号の対を付加しない描画命令を生成する。尚、描画命令作成部104は、簡易情報とシーケンス番号の対を簡易情報記憶部107から取得する。例えば、描画命令作成部104は、更新情報のシーケンス番号より一つ古いシーケンス番号に対応する簡易情報とシーケンス番号との対を簡易情報記憶部107から取得する。描画命令作成部104は、必要に応じて当該更新情報とシーケンス番号の対及び簡易情報とシーケンス番号の対に対してエンコード部110によるエンコード処理を施した上で、当該更新情報とシーケンス番号との対および当該簡易情報とシーケンス番号の対を含む描画命令を作成する。描画命令作成部104は、描画命令を作成すると、これを描画命令送信部105に出力する。
When receiving the update information / sequence number pair and the determination result from the
描画命令送信部105は、描画命令作成部104から描画命令を受け取ると、ここから描画命令パケットを作成し、ネットワーク3を介してクライアント端末2に送信する。描画命令パケットは、当該描画命令をネットワーク3において伝送可能な形式に変換したものである。
When the drawing
簡易情報生成部106は、生成判断部114から更新情報とシーケンス番号の対を受け取ると、当該更新情報に対応する簡易情報を生成する。簡易情報生成部106は、簡易情報を生成すると、簡易情報とシーケンス番号とを対応付けて簡易情報記憶部107に出力する。ここで、簡易情報とは、更新画像に対応する情報であって、更新情報の情報量以下の情報量を有する情報である。簡易情報として、更新情報の情報量以下の情報量を有する情報を用いる理由は、通信帯域の逼迫を抑制するためである。
When the simple
入力状態取得部108は、サーバ端末1に接続されたポインティング装置(図示せず)やキーボード装置(図示せず)などの入力装置の入力状態を取得する。また、生成判断部114もしくは付加判断部103から入力状態の取得要求を受け取ると、当該入力状態を出力する。
The input
通信状態取得部109は、サーバ端末1におけるネットワークインターフェース(図示せず)の通信状態を取得する。また、生成判断部114もしくは付加判断部103から通信状態の取得要求を受け取ると、当該通信状態を出力する。
The communication
CPU状態取得部117は、サーバ端末1におけるCPU(Central Processing Unit)(図示せず)の負荷状態を取得する。また、生成判断部114もしくは付加判断部103から通信状態の取得要求を受け取ると、当該負荷状態を出力する。
The CPU
エンコード部110は、更新画像とシーケンス番号の対もしくは簡易情報とシーケンス番号の対を受け取ると、適当なエンコード処理を施して結果を描画命令作成部105に出力する。
Upon receiving the update image and sequence number pair or the simple information and sequence number pair, the
フレームバッファ111は、表示画面の全体画像(デスクトップ全体に相当する画面データ)を格納するための記憶領域を有する。フレームバッファ111は、更新情報生成部101から更新情報とシーケンス番号の対を受け取ると、当該更新情報に含まれる領域情報に示される記憶領域上の領域に、当該更新情報に含まれる更新画像を格納(上書き)する。また、フレームバッファ111は、ロス通知解析部112から領域情報とともに画面データの取得要求を受け取ると、自身に格納している画面データの当該領域の画像を出力する。
The
表示部116は、フレームバッファ111に格納されている画面データを表示する。
The
ロス通知受信部113は、ネットワーク3を介してクライアント端末2からロス通知パケットを受信すると、ロス通知パケットに含まれるロス通知を取り出す。ロス通知受信部113はロス通知をロス通知解析部112に出力する。
When the loss
ロス通知解析部112は、ロス通知受信部113からロス通知を受け取ると、ロス通知からシーケンス番号を取り出す。ロス通知解析部112は更新情報履歴格納部115に対し当該シーケンス番号を出力し、当該シーケンス番号に対応する更新情報の取得を要求する。ロス通知解析部112は、更新情報を受け取ると、当該更新情報から領域情報を取り出し、これをフレームバッファ111に出力し、表示画面において当該領域情報が指し示す領域にかかる最新の画面データの取得を要求する。ロス通知解析部112は、当該最新の画面データと当該領域情報の対から更新情報を構成し、これをシーケンス番号付加部102に出力する。
When the loss
クライアント端末2は、その構成要素として、描画命令受信部201と、ロス検知部202と、描画判断部203と、描画実行部204と、フレームバッファ205と、表示部206と、デコード部207と、ロス通知送信部208と、更新情報履歴記憶部209を含む。
The
描画命令受信部201は、ネットワーク3を介してサーバ端末1から描画命令パケットを受信すると、これから描画命令を取り出す。描画命令受信部201は当該描画命令をロス検知部202に出力する。
When the drawing
ロス検知部202は、描画命令に含まれる更新情報に付加されたシーケンス番号を取り出し、描画命令パケットのクライアント端末への到着にロスが生じたか否かを検知する。ロス検知部202は、シーケンス番号カウント値を格納するための記憶領域を有しており、例えば、動作開始時にこのシーケンス番号カウント値を0にリセットし、描画命令を受信する毎に描画命令を受け取ると、当該記憶領域内のシーケンス番号カウント値を1インクリメントする。ロス検知部は、更新情報に付加されたシーケンス番号と記憶領域内のシーケンス番号カウント値とが一致する場合に、ロスが生じていないと判定し、更新情報に付加されたシーケンス番号が記憶領域内のシーケンス番号カウント値より新しい(大きい)場合、ロスが生じたと検知する。ここで、ロスした更新情報のシーケンス番号は、例えば、更新情報に付加されたシーケンス番号より小さく、記憶領域内のシーケンス番号カウント値以上の値である。ロス検知部202は、ロスが生じたと検知した場合には、ロスしたシーケンス番号をロス通知送信部208に出力する。また、ロス検知部202は、ロスしたシーケンス番号とともに描画命令を描画判断部203に出力する。ロスを検知しなかった場合には、ロス検知部202は、描画命令のみを描画判断部203に出力する。
The
描画判断部203は、描画命令を受け取ると、描画命令とともにロスしたシーケンス番号がともに入力されたか否かを確認する。描画命令とともにロスしたシーケンス番号が存在する場合には、描画判断部203は、描画命令に含まれる簡易情報とシーケンス番号の対から、当該ロスしたシーケンス番号に該当する簡易情報が存在するか否かを確認する。描画命令にロスしたシーケンス番号に該当する簡易情報が存在する場合には、当該簡易情報を描画実行部204に出力し、又、更新情報を描画実行部204に出力する。描画命令にロスしたシーケンス番号に該当する簡易情報が存在しない場合、描画判断部203にロスしたシーケンス番号が入力されていない場合には、描画判断部203は当該更新画像のみを描画実行部204に出力する。
When the
描画実行部204は、更新情報もしくは簡易情報を受け取ると、当該更新情報及び簡易情報に対して、必要に応じてデコード部207によるデコード処理を施した上で、フレームバッファ205に格納された表示画面の内容の一部を上書き更新する。
Upon receiving the update information or simple information, the drawing
フレームバッファ205は、サーバ端末1におけるフレームバッファ111と同様、表示画面の全体画像を格納するための記憶領域を有する。
The
表示部206は、フレームバッファ205に格納されている画面データを表示する。
The
デコード部207は、更新情報もしくは簡易情報を受け取ると、サーバ端末1におけるエンコード部110のエンコード処理に対応したデコード処理を施して結果を描画実行部204に出力する。
Upon receiving the update information or simple information, the
ロス通知送信部208は、ロス検知部202からロスしたシーケンス番号を受け取ると、ここからロス通知パケットを作成し、ネットワーク3を介してサーバ端末1に送信する。ロス通知パケットは、当該ロス通知をネットワーク3において伝送可能な形式に変換したものである。
When the loss
更新情報履歴記憶部209は、更新情報とシーケンス番号の対を格納するための記憶領域を有しており、更新情報とシーケンス番号の対を受け取るとこれを履歴として記憶する。また、シーケンス番号とともに履歴の読み出し要求を受け取ると、履歴を探索し、当該シーケンス番号に対応する更新情報を返答する。
The update information
次に、本実施形態に係る画面共有システムにより行われる処理を説明する。 Next, processing performed by the screen sharing system according to the present embodiment will be described.
図3は、サーバ端末1により行われる処理を説明する。図3はサーバ端末1の画面更新生成時に行われるフローチャートである。 FIG. 3 illustrates processing performed by the server terminal 1. FIG. 3 is a flowchart performed when the screen update of the server terminal 1 is generated.
サーバ端末1とクライアント端末2が画面共有を実施している状態にあるとき、更新画像生成部101は、サーバ端末1において実行されるOSおよび各種アプリケーションの動作状態に変化が生じてユーザへ提示する視覚的情報に更新があるかどうかをチェックし、更新がある場合は(S101のYES)、更新情報の生成を行う(S102)。上述したように、更新情報は更新画像と領域情報から構成される。更新画像とは、デスクトップの一部分に相当する矩形状の画面データのことであり、例えば、矩形の各画素における赤緑青3色の値などである。また、領域情報とは、デスクトップ上における更新画像の表示位置を示す数値である。ここでは、領域情報は、図4に示すように、デスクトップの左上をxy座標平面の原点、デスクトップの横幅をWidth、縦幅をHeightとしたときの、更新画像の矩形の左上頂点の座標値(Left,Top)および右下頂点の座標値(Right,Bottom)であるとする。更新情報生成部101は、生成した更新情報を、フレームバッファ111に入力する。フレームバッファ111は、自身が持つ記憶領域のうち、領域情報に示される領域を更新画像により上書き更新する。表示部116は、フレームバッファ111内の画面データを表示する。また、更新画像生成部101は、生成した更新情報を、シーケンス番号付加部102に出力することにより、更新情報へのシーケンス番号の付加を依頼する。
When the server terminal 1 and the
次に、S103において、シーケンス番号の付加要求を受けたシーケンス番号付加部102は、自身のシーケンス番号記憶領域に格納しているシーケンス番号カウント値を参照し、このシーケンス番号カウント値をシーケンス番号として、当該更新情報にシーケンス番号を付加する。シーケンス番号付加部102は、このシーケンス番号カウント値を画面共有の開始の際にゼロにリセットし、その後は本ステップS103において更新情報にシーケンス番号を付加するごとに1ずつインクリメントする。
Next, in S103, the sequence
次に、S109において、シーケンス番号付加部102は、更新情報に含まれる領域情報とシーケンス番号の対を更新情報履歴格納部115に出力する。更新情報履歴格納部115は、自身の記憶領域に領域情報とシーケンス番号の対を記憶する。シーケンス番号付加部102は、記憶が完了した通知を受け取ると、シーケンス番号と更新情報との対を生成判断部114に出力する。
Next, in S109, the sequence
次に、S104において、生成判断部114は、シーケンス番号と更新情報の対を受け取ると、当該更新情報について簡易情報を生成するか否かを判断する。生成判断部114は、入力状態取得部108、通信状態取得部109、CPU状態取得部117から得られる各種情報に基づいて、当該更新情報に対応する簡易情報を作成するか否かという判断を行うことができる。また、作成する/しないといった単純な判断だけでなく、どのような画質の簡易情報を作成するかといった、簡易情報作成時の詳細を判断することも可能である。具体的な簡易情報の例、もしくは簡易情報の作成方法の例は後述する。簡易情報を作成すると判断した場合、処理の流れはS105に移る。作成しないと判断した場合、処理の流れはS106に移る。
Next, in S104, upon receiving a pair of sequence number and update information, the
簡易情報を作成するか否かの判断を行う第1の例を示す。図5は、通信状態取得部109から取得したネットワークにおけるパケットのロス率に基づいて判断する例である。ここで、ロス率とは、例えば、ロス通知受信部113が受信したロス通知からわかるロスの数を描画命令送信部105が送信した描画命令パケットの数で割った値である。通信状態取得部109は、ロス通知解析部112からロス通知を受け取る等による方法でネットワークにおけるパケットのロス率を算出し、通信状態取得部109内の記憶領域に格納している。通信状態取得部109は、生成判断部114からパケットロス率の取得要求を受け取ると、格納したロス率を回答する。これをもとに、生成判断部114は、ロス率が規定値(例えば0.1%)を超えているか否かを調べ、超えていれば簡易情報を作成する、超えていなければ作成しないと判断をする。
A first example for determining whether to create simple information is shown. FIG. 5 is an example in which the determination is made based on the packet loss rate in the network acquired from the communication
簡易情報を作成するか否かの判断を行う第2の例を示す。図6は、CPU状態取得部117から取得したCPU負荷率に基づいて判断する例である。CPU状態取得部117は、生成判断部114からCPU負荷率の取得要求を受け取ると、画面共有を行う当アプリケーションが占めるCPUの使用率を回答する。これをもとに、生成判断部114は、CPU使用率は規定値(例えば80%)を超えているか否かを調べ、超えていれば簡易情報を作成する、超えていなければ作成しないと判断をする。また、図6には、単純な作成する/しないの判断だけでなく、どのような簡易情報を作成するかという判断の例を併せて示している。これによれば、例えばCPU使用率が規定値(例えば20%)を超えていれば低画質の簡易情報を作成し、超えていなければ高画質の簡易情報を作成すると判断する。
A second example for determining whether to create simple information is shown. FIG. 6 is an example of determination based on the CPU load factor acquired from the CPU
以上より、ネットワークのパケットロス率が小さいときにはクライアント端末2において簡易情報を使用する頻度が小さいと考えられるため、第1の例の判断方法を用いることで、簡易情報の作成によるCPUリソースの消費低減を達成することができる。また、パケットロス率が高い時には簡易情報を使用する頻度を上げることができ、クライアント端末の描画の欠けを効果的に抑制することができる。また、第2の例によれば、サーバ端末1のCPU使用率が高いときには簡易情報を作成しない、もしくはCPUリソースの消費量が少ない低画質の簡易情報を作成することで、サーバ端末1のCPUリソースの消費量低減を達成することができる。尚、第1の例と第2の例の情報を組み合わせて、判断しても良い。また、第1の例と第2の例の情報を用いて判断しなくても良い。例えば、生成判断部114は常に簡易情報を作成すると判断し、簡易情報生成部106は、更新情報が生成される毎に簡易情報を生成しても良い。あるいは、当該更新情報の更新画像の色数や大きさ、位置などの情報を利用してもよい。あるいは、当該更新情報が含まれるアプリケーションやGUI種別を利用してもよい。
As described above, when the packet loss rate of the network is small, it is considered that the frequency at which the simple information is used in the
S105において、簡易情報生成部106は、生成判断部114からシーケンス番号と更新情報の対を受け取ると、当該更新情報に対応する簡易情報を作成する。簡易情報記憶部107は、簡易情報とシーケンス番号の対を記憶するための記憶領域を有しており、簡易情報生成部106から入力された簡易情報とシーケンス番号の対を記憶領域に格納する。
In S105, upon receiving the sequence number / update information pair from the
簡易情報およびその作成方法の第1の例を示す。図7は更新情報、図8は簡易情報、図9は、簡易情報に基づき描画した図を示す。図7に示すように、更新画像を、警告メッセージをユーザに通知するポップアップウィンドウ画像であるとしている。更新画像はビットマップで示される。図8に示すように、簡易情報は、色情報と領域情報の単一の対から構成される。領域を表す情報には、作成元の更新情報に含まれる領域情報と同一の座標軸が用いられる。色情報は例えば、赤緑青3色の各値(0~255)である。これにアルファ値を加えてもよい。簡易情報に含まれる色情報の値は、例えば、当該ウィンドウ画像を構成する色の中でもっとも頻繁に使用される色が算出され、その値が用いられている。あるいは、当該ウィンドウ画像を構成する各画素の色値の平均値を算出して用いるとしてもよい。あるいは、画面共有を通じて固定的に定義された色情報を用いてもよい。あるいは、該更新情報が含まれるアプリケーションやGUI種別に応じて固定的に定義された色情報を利用してもよい
次に、簡易情報及びその方法の第2の例を示す。更新情報は第1の例と同じく図7で示す情報である。図10に簡易情報、図11に、簡易情報に基づき描画した図を示す。図10に示されるように、簡易情報は、色情報と領域情報の複数の対から構成される。簡易情報は、領域情報と当該領域情報の領域に描画される色情報とが対応付けられている。簡易情報の色情報は、例えば、更新画像のウィンドウ画像を構成するGUI(Graphical User Interface)種別(例ではタイトルバー部分およびダイアログ部分)を識別して各部分ごとに分割し、第1の例と同じ手法で各々の分割に対して色情報を算出した情報である。また簡易情報の領域情報は分割後の領域を示す。第2の例のように、GUIの種別に応じて更新画像を分割し色情報を算出するという方法によると、より再現性の高い簡易情報を得ることができる。尚、更新画像を分割するに当たっては必ずしもGUI種別に従う必要はなく、任意の方法に従って良い。例えば更新画像が示すアプリケーションの種別に応じて分割しても良いし、あるいは、任意のアルゴリズムを用いて更新画像から類似した色のブロックを検出してブロックごとに分割を構成しても良い。また、簡易情報を作成するごとに毎回色情報を算出する必要はない。算出した色情報を、GUI種別やアプリケーション種別などの情報とともに記憶しておき、以後、同種別の更新画像に対しては記憶した色情報を再利用するといった手法を用いることも可能である。この場合、任意のタイミングで当該種別に対応する色情報を再算出してもよい。このような手法により、例えばタイトルバー部分など画面共有を通じて描画の傾向に変化が少ない部分において特に有効に描画の再現性を確保しながら色情報算出の負荷を削減することができる。
The 1st example of simple information and its preparation method is shown. FIG. 7 shows update information, FIG. 8 shows simple information, and FIG. 9 shows a drawing drawn based on the simple information. As shown in FIG. 7, the update image is a pop-up window image that notifies the user of a warning message. The updated image is shown as a bitmap. As shown in FIG. 8, the simple information includes a single pair of color information and area information. The information representing the area uses the same coordinate axis as the area information included in the update information of the creation source. The color information is, for example, each value of red, green, and blue (0 to 255). An alpha value may be added to this. As the value of the color information included in the simple information, for example, the color used most frequently among the colors constituting the window image is calculated, and the value is used. Alternatively, an average value of color values of each pixel constituting the window image may be calculated and used. Alternatively, color information fixedly defined through screen sharing may be used. Alternatively, color information fixedly defined according to the application or GUI type in which the update information is included may be used. Next, a second example of simple information and a method thereof will be described. The update information is the information shown in FIG. 7 as in the first example. FIG. 10 shows simple information, and FIG. 11 shows a diagram drawn based on the simple information. As shown in FIG. 10, the simple information is composed of a plurality of pairs of color information and area information. In the simple information, the area information is associated with the color information drawn in the area of the area information. The color information of the simple information is, for example, identified by the GUI (Graphical User Interface) type (in the example, the title bar portion and the dialog portion) constituting the window image of the updated image and divided for each portion, This is information obtained by calculating color information for each division by the same method. Further, the area information of the simple information indicates the area after division. As in the second example, according to the method of dividing the update image according to the GUI type and calculating the color information, simple information with higher reproducibility can be obtained. In dividing the update image, it is not always necessary to follow the GUI type, and an arbitrary method may be used. For example, the image may be divided according to the type of application indicated by the updated image, or a similar color block may be detected from the updated image using an arbitrary algorithm, and the division may be configured for each block. Further, it is not necessary to calculate color information every time simple information is created. It is also possible to use a method in which the calculated color information is stored together with information such as the GUI type and the application type, and thereafter, the stored color information is reused for an update image of the same type. In this case, the color information corresponding to the type may be recalculated at an arbitrary timing. With such a method, for example, the burden of color information calculation can be reduced while ensuring the reproducibility of drawing particularly effectively in a part where the change in drawing tendency is small through screen sharing, such as a title bar part.
次に、簡易情報及びその方法の第3の例を示す。第3の例では、簡易情報は、更新画像に対し非可逆圧縮処理を施した画像と当該画像の領域情報である。非可逆圧縮の方法としてはJPEG(Joint Photographic Experts Group)などの任意の方法を用いることができる。尚、ステップS104において、生成判断部114が簡易情報としてどのような画質を作成するかという判断を行う場合、簡易情報の圧縮方法を変更することにより画質を変えることができる。例えば、図6において、生成判断部114がCPU使用率に応じて簡易情報の画質(高または低)を判断する場合、図12に示すように、簡易情報生成部106は、各画質によってどのような画質パラメータで簡易情報を作成するかの対応を示している。画質パラメータとは、0から100の間の値をとる値であり、前述の非可逆圧縮における描画の再現性を示す。100の場合に元画像と同一の再現性が得られる。簡易情報生成部106は、生成判断部114から高画質または低画質の簡易情報の作成依頼を受け取るごとに、上述の判断によって画質パラメータを設定し圧縮処理を行う。簡易情報生成部106は、圧縮後の画像データと領域情報の対を簡易情報と定める。このように非可逆の画像圧縮アルゴリズムを用いることで、描画の再現性の高い簡易情報を作成することができる。
Next, a third example of simple information and its method is shown. In the third example, the simple information is an image obtained by performing an irreversible compression process on the updated image and area information of the image. As a lossy compression method, any method such as JPEG (Joint Photographic Experts Group) can be used. In step S104, when the
次に、簡易情報及びその方法の第4の例を示す。第4の例を示す。第4の例では、簡易情報は、過去に使用したシーケンス番号の値と、領域情報の対から構成される。すなわち、簡易情報は、更新情報に対応する簡易情報として、過去にサーバ端末1からクライアント端末2に対して送信した更新情報をクライアント端末2に再利用させる。こうした処理を可能にするためには、サーバ端末1のシーケンス番号付加部102は、前述のステップS109において、領域情報とシーケンス番号に加えて更新画像を更に履歴として更新情報履歴格納部115に記憶させる必要がある。そして、ステップS105においては、簡易情報生成部106は、更新情報履歴格納部115が記憶する更新画像と領域情報の対の履歴を取得した上で、任意のアルゴリズムによって、簡易情報作成元の更新画像にもっとも近い履歴上の更新画像を選択し、当該選択された履歴上の更新画像のシーケンス番号の値と領域情報を簡易情報と定める。また、クライアント端末2は更新画像を記憶するために更新情報履歴記憶部209を有し、描画命令パケットを受信するごとに、これに含まれるシーケンス番号と更新情報を記憶している。このように、過去に送信した更新情報を簡易情報として再利用することにより、少ない情報量で再現性の高い簡易情報を作成することができる。
Next, a fourth example of simple information and its method is shown. A fourth example is shown. In the fourth example, the simple information is composed of a pair of a sequence number value and area information used in the past. That is, the simple information causes the
次に、ステップS106において、付加判断部103は、生成判断部114からシーケンス番号と更新情報の対を受け取ると、次の描画命令作成部104の処理において、描画命令としてシーケンス番号と更新情報に、簡易情報と当該簡易情報のシーケンス番号を付加するか否かを判断する。具体的には、付加判断部103は、入力状態取得部108、通信状態取得部109、CPU状態取得部117から得られる各種情報に基づいて、当該更新情報に簡易情報と当該簡易情報のシーケンス番号を付加するか否かという判断を行う。また、単純な付加する/しないといった判断だけでなく、どのシーケンス番号に対応する簡易情報と当該簡易情報のシーケンス番号を付加するかといった判断を行うことも可能である。付加すると判断した場合、付加判断部103は、シーケンス番号と更新情報の対と、付加する簡易情報のシーケンス番号とを描画命令作成部104に出力する。処理の流れはステップS107に移る。一方、付加しないと判断した場合、付加判断部103はシーケンス番号と更新情報の対のみを描画命令作成部104に出力し、処理の流れはステップS108に移る。
Next, in step S106, when the
簡易情報と当該簡易情報のシーケンス番号を付加するか否かの判断を行う方法の第1の例を示す。図13は、通信状態取得部109から取得した通信帯域幅の使用量に基づいて判断する例である。通信状態取得部109は、使用可能な帯域幅のうち現在使用中の帯域幅を算出し、自身の記憶領域に格納している。通信状態取得部109は、付加判断部103から帯域使用量の取得要求を受け取ると、格納した帯域使用量を通知する。これをもとに、付加判断部103は、帯域使用量が規定値(例えば5%)を超えているか否かを調べ、超えていれば簡易情報と当該簡易情報のシーケンス番号を付加しないと判断する。超えていない場合、例えば1%以上であれば更新情報のシーケンス番号の直前の1個のシーケンス番号の更新情報に対応する簡易情報と当該簡易情報のシーケンス番号を付加すると判断し、1%未満であれば直前の2個のシーケンス番号の更新情報に対応する簡易情報と当該簡易情報のシーケンス番号を付加すると判断する。例えば、生成判断部114が受け取った更新情報に含まれるシーケンス番号が100であったとすると、直前の1個のシーケンス番号の更新情報とは、シーケンス番号99に対応する更新情報を意味する。また直前の2個のシーケンス番号の更新情報とは、シーケンス番号98および99に対応する更新情報を意味する。
A first example of a method for determining whether to add simple information and a sequence number of the simple information will be shown. FIG. 13 is an example in which a determination is made based on the usage amount of the communication bandwidth acquired from the communication
簡易情報と当該簡易情報のシーケンス番号を付加するか否かの判断を行う方法の第2の例を示す。図14は、通信状態取得部109から取得した、ネットワークにおけるパケットのロス率に基づいて判断する例である。通信状態取得部109は、ロス通知解析部112からロス通知を受け取る等による方法でネットワークにおけるパケットのロス率を算出し、自身の記憶領域に格納している。通信状態取得部109は、付加判断部103からパケットロス率の取得要求を受け取ると、格納したロス率を回答する。これをもとに、付加判断部103は、ロス率は規定値(例えば0.1%)を超えているか否かを調べ、超えていれば簡易情報と当該簡易情報のシーケンス番号を付加すると判断する。超えている場合は、図14の対応に基づいて、直前の何個の更新情報に対応する簡易情報と当該簡易情報のシーケンス番号を付加するかを判断する。
A second example of a method for determining whether to add simple information and a sequence number of the simple information will be shown. FIG. 14 is an example of determination based on the packet loss rate in the network acquired from the communication
簡易情報と当該簡易情報のシーケンス番号を付加するか否かの判断を行う方法の第3の例を示す。図15は、入力状態取得部108から取得した、サーバ端末1に接続されたポインティングデバイスの入力状態に基づいて判断する例である。入力状態取得部108は、付加判断部103からポインティングデバイスの入力状態の取得要求を受け取ると、当該入力状態を調べて回答する。これをもとに、付加判断部103は、任意の方法で取得したデスクトップ上のウィンドウの配置状態から、任意のウィンドウに対するドラッグ操作が行われているか否かを判定する。ドラッグ操作が行われていると判定した場合、直前の3個の更新情報に対応する簡易情報と当該簡易情報のシーケンス番号を付加すると判断する。行われていないと判定した場合、直前の1個の更新情報に対応する簡易情報と当該簡易情報のシーケンス番号を付加すると判断する。
A third example of a method for determining whether to add simple information and a sequence number of the simple information will be shown. FIG. 15 is an example in which the determination is made based on the input state of the pointing device connected to the server terminal 1 acquired from the input
以上、付加判断部103が、通信状態や入力状態といった情報に基づいて簡易情報と当該簡易情報のシーケンス番号を付加するか否かを判断する具体例を述べた。第1の例によれば、現在使用中の通信帯域幅の割合が高いときに付加する簡易情報の個数を減らすことで、通信帯域の逼迫を抑制出来る。また第2の例によれば、ネットワークのパケットロス率が大きいときには多くの簡易情報を付加することで、同時に複数個の描画命令パケットがロスした状況であっても簡易情報による描画を行うことが可能になる。また第3の例によれば、ウィンドウのドラッグ操作など、デスクトップの広範囲に渡って以後連続的に画面更新が発生すると予期されたときに多くの簡易情報を付加することで、パケットロスによる描画の欠けをより効果的に抑制することが可能になる。
As described above, the specific example in which the
尚、付加判断部103は、第1の例、第2の例、第3の例を組み合わせて簡易情報と当該簡易情報のシーケンス番号を付加するか否か、付加する個数を判断しても良い。また、付加判断部103は、第1の例と第2の例の第3の例の情報を用いて判断しなくても良い。例えば、付加判断部103は常に簡易情報と簡易情報のシーケンス番号を一定個数付加すると判断しもよい。あるいは、当該更新情報の更新画像の色数や大きさ、位置などの情報を利用してもよい。あるいは、当該更新情報が含まれるアプリケーションやGUI種別を利用してもよい。
The
次に、ステップS107において、描画命令作成部104は、付加判断部103から更新情報とシーケンス番号、および簡易情報の付加に関する情報(簡易情報を付加するか否か、付加するシーケンス番号)を受け取ると、まず、付加する簡易情報のシーケンス番号を簡易情報記憶部107に出力し、当該のシーケンス番号に対応する簡易情報の取得を要求する。これを受けて簡易情報記憶部107は自身の記憶領域を探索して該当する簡易情報を返答する。
Next, in step S107, the drawing
次に、S108において、描画命令作成部104は描画命令を作成する。描画命令とは、付加判断部103より入力された更新情報とシーケンス番号の対、そして簡易情報記憶部107より取得された簡易情報とシーケンス番号の対により構成される。描画命令作成部104は、エンコード部110により更新情報に含まれる更新画像に対し圧縮処理を施した後で、上記情報から描画命令を構成する。ここでエンコード部110は、JPEG等の任意の画像圧縮処理を行う。描画命令作成部104は、作成した描画命令を描画命令送信部105に出力し、当該描画命令の送信を依頼する。描画命令送信部105は、描画命令作成部104から描画命令を受け取ると、例えばUDPヘッダやIP(Internet Protocol)ヘッダ等の、ネットワーク3において伝送するに必要な情報を付加した上で、クライアント端末2に向けて送信する。
Next, in S108, the drawing
一方、S106において、簡易描画命令を付加しないと判定した場合、ステップS108において、描画命令作成部104は、付加判断部103から更新情報とシーケンス番号を受け取ると、ステップS107と同様の処理を行う。ただしステップS107と異なり簡易情報の取得は行わないため、更新情報に含まれる更新画像に対しエンコード部110による圧縮処理を施した上で、圧縮処理後の更新情報とシーケンス番号から描画命令を構成する。描画命令作成部104は、当該描画命令を描画命令送信部105に出力し、送信を依頼する。描画命令送信部105は、描画命令作成部104から描画命令を受け取ると、例えばUDPヘッダやIP(Internet Protocol)ヘッダ等の、ネットワーク3において伝送するに必要な情報を付加した上で、クライアント端末2に向けて送信する。
On the other hand, when it is determined in S106 that the simple drawing command is not added, in Step S108, when the drawing
次に、本実施形態に係る画面共有システムによりサーバ端末1が行う処理のうちクライアント端末2からロス通知パケットを受信した場合の動作について説明する。
Next, an operation when the loss notification packet is received from the
図16は、サーバ端末1がロス通知パケットを受信した場合の動作を示すフローチャートである。 FIG. 16 is a flowchart showing an operation when the server terminal 1 receives a loss notification packet.
ロス通知受信部113は、クライアント端末2からロス通知パケットを受け取ると、ステップS201において、当該パケットからロス通知を取り出しこれをロス通知解析部112に通知する。ロス通知は、1個以上のシーケンス番号から構成される。
When the loss
S202において、ロス通知解析部112は、ロス通知からシーケンス番号を取り出すと、更新情報履歴格納部115に対し当該シーケンス番号を出力し、当該シーケンス番号に対応する領域情報の取得を要求する。前述のとおり、更新情報履歴格納部115は自身の記憶領域にシーケンス番号と領域情報の履歴を格納しており、要求されたシーケンス番号に該当する履歴を探索し、対応する領域情報を出力する。ロス通知解析部112は、領域情報を受け取ると、フレームバッファ111に対し、当該領域情報が示す領域にかかる最新の画面データの取得を要求する。なお、ロス通知解析部112は、取得した領域情報と必ずしも同一の領域にかかる画面データの取得を要求する必要はない。その例を図17に示す。図17では、ロス通知解析部112が受け取ったロス通知にシーケンス番号100、101、102が含まれる場合が例示されている。さらにこのとき当該のシーケンス番号の各々について更新情報履歴格納部115から取得した領域情報の値が併せて記されている。このとき、ロス通知解析部112は、シーケンス番号100,101,102の各々について画面データをフレームバッファ111から取得するのではなく、重複する領域が存在しないように領域情報を再構成することができる。再構成後の領域の情報を図18に示す。ロス通知解析部112は、再構成後の領域についてフレームバッファ111から最新の画面データを取得する。このように、重複する部分が存在しないように領域情報を再構成することにより、不要な画面データ取得に伴うCPUリソースの消費や通信帯域の圧迫を抑制することが可能になる。ロス通知解析部112は、画面データを取得すると、対応する領域情報と対を構成し、これをシーケンス番号付加部102に出力する。
In S202, when the loss
ステップS203において、処理の流れは図3のステップS102に進む。シーケンス番号付加部102は、入力された画像データと領域情報の対に対して(複数個が入力された場合にはその各々に対して)、更新情報生成部101から更新情報が入力された場合と同じように処理を行う。その後、更新情報生成部101から更新情報が入力された場合のS103~S109の処理を行い、描画命令送信部105は、画像データと領域情報とシーケンス番号の対を含む描画命令をクライアント端末2に送信する。
In step S203, the process flow proceeds to step S102 in FIG. The sequence
次に、図19を用いて、クライアント端末2により行われる処理を説明する。図19は、クライアント端末2の動作を示すフローチャートである。
Next, processing performed by the
S301において、描画命令受信部201は、ネットワーク3を介して描画命令パケットを受信すると、描画命令パケットから描画命令を取り出す。描画命令は、シーケンス番号と更新情報の対と、0個以上の簡易情報とシーケンス番号の対が含まれている。描画命令受信部201は当該描画命令をロス検知部202に出力し、ロス検知の依頼を行う。
In S301, when receiving the drawing command packet via the
S302において、ロス検知部202は描画命令を受け取ると、描画命令から更新情報に対応するシーケンス番号を取り出し、描画命令パケットの受信にロスが生じたか否かを判定する。ロス検知部202は、自身のシーケンス番号カウント値記憶領域に格納しているシーケンス番号カウント値を参照し、取り出したシーケンス番号がこのシーケンス番号カウント値と一致するか否かを調べる。一致する場合(図19のS302では、=で示す。)、ロスは生じていないと判定し、ロス検知部202は当該描画命令を描画判断部203に出力する。処理の流れはステップS305に進む。一致せず、かつ、取り出したシーケンス番号が該シーケンス番号カウント値よりも新しい場合(>)、パケットロスが生じたと判定し、処理の流れはステップS303に進む。一致せず、かつ、取り出したシーケンス番号が該シーケンス番号よりも古い場合(<)、以前に到着した描画命令パケットが重複して到着したと判断し、該描画命令を破棄し、本処理は終了する(ステップS304)。例えば、シーケンス番号カウント値が100で、受信したシーケンス番号が103であったとすると、ロス検知部202は、シーケンス番号100,101,102に相当する描画命令パケットにロスが生じたと判定する。一方、シーケンス番号がシーケンス番号カウント値よりも古い(たとえば98)場合は、ロス検知部202は、以前に到着した受信パケットが重複して到着したと判定する。三通りのいずれの場合であっても、判定後、シーケンス番号カウント値は、該シーケンス番号の値で上書き更新される。
In S302, when receiving the drawing command, the
ステップS303において、ロス検知部202は、ロスが生じた描画命令パケットのシーケンス番号(上述の例では100,101,102)をロス通知送信部208に出力し、ロス通知の送信を依頼する。これを受けてロス通知送信部208は、これらのシーケンス番号に、例えばUDPヘッダやIP(Internet Protocol)ヘッダ等の、ネットワーク3において伝送するに必要な情報を付加した上で、サーバ端末1に向けて送信する。ロス検知部202は、ロス通知の送信が完了すると、描画命令受信部201より入力された描画命令と、ロスが生じた描画命令のシーケンス番号の組み合わせを描画判断部203に出力する。処理の流れはS305に進む。
In step S303, the
S305において、描画判断部203は描画命令を受信すると、まず、描画命令に簡易情報が含まれているか否かを確認する。含まれていない場合、描画判断部203は、当該描画命令に含まれる更新情報を描画実行部204に出力し、当該更新情報による描画の実行を依頼する。処理の流れはステップS308に進む。簡易情報が含まれている場合、次に描画判断部203は簡易情報による描画を実行するか否かを判断する。処理の流れはS306に進む。
In S305, when the
S306において、描画判断部203は、ロス検知部202から描画命令が入力された際に、下記の手順に従って、付加された簡易情報による描画を実行するか否かを判断する。まず描画判断部203は、描画命令とロスが生じたシーケンス番号の情報が併せて入力されたか否かを確認する。入力されている場合は、さらに、そのロスが生じたシーケンス番号の値に対応する簡易情報が描画命令に含まれているか否かを確認する。ロスが生じたシーケンス番号の値に対応する簡易情報が描画命令に含まれている場合、描画判断部203は、当該簡易情報による描画を実行すると判断する。この場合、処理の流れはステップS307に進む。それ以外の場合、すなわちロスが生じたシーケンス番号の情報が併せて入力されていないか、もしくはロスが生じたシーケンス番号の値に対応する簡易情報が併せて入力されていない場合には、描画判断部203は簡易情報による描画を実行しないと判断する。この場合、描画判断部203は当該描画命令に含まれる更新情報を描画実行部204に出力し、当該更新情報による描画の実行を依頼する。処理の流れはステップS308に進む。
In S306, when a drawing command is input from the
S307において、描画判断部203は、簡易情報による描画を実行すると判断すると、当該簡易情報を描画実行部204に出力し、描画の実行を依頼する。描画実行部204は簡易情報を受け取ると、フレームバッファ205において簡易情報の領域情報が示す領域を上書き更新する。描画の完了通知を受け取ると、描画判断部203は、ロス検知部202から受信した描画命令に含まれる更新情報を描画実行部204に出力し、当該更新情報による描画の実行を依頼する。処理の流れはステップS308に進む。
In S307, when the
ステップS308において、描画実行部204は、更新情報の入力を受け取ると、当該更新情報から領域情報と更新画像を取り出し、フレームバッファ205において当該領域情報が示す領域を当該更新画像により上書き更新する。必要に応じて、デコード部207による伸長処理を施す。表示部206は、フレームバッファ205内の画面データを表示する。
In step S308, upon receiving input of update information, the drawing
ステップS301からステップS308までの処理の具体例を挙げる。ロス検知部202のシーケンス番号カウント値が100のときに、シーケンス番号101の更新情報を含む描画命令パケットを受信したと仮定する。図20に示すように、この描画命令には更新情報のほか、シーケンス番号100の簡易情報が付加されているものとする。このとき、ロス検知部202は、現在のシーケンス番号カウント値が100であることから、受信した描画命令パケットの更新情報に付加されたシーケンス番号は100であると期待している。しかし実際には、更新情報に付加されたシーケンス番号101の描画命令を受け取ったことから、ロス検知部202はネットワーク3においてシーケンス番号100の描画命令がロスしたと判断する(ステップS302)。ロス検知部202はシーケンス番号100にロスが生じた旨を、ロス通知送信部208を通じてサーバ端末1に通知した後で(ステップS303)、シーケンス番号101の更新情報とシーケンス番号100の簡易情報を描画判断部203に出力する。このとき併せてシーケンス番号100がロスした旨も通知する。これを受けて描画判断部203は、入力に簡易情報が付加されていること(ステップS305)、かつ、この簡易情報が、ロスが生じたシーケンス番号(100)に対応するものであることから、この簡易情報による描画を実行することを決定する(ステップS306)。そこで描画実行部204は、まずシーケンス番号100の簡易情報による描画を実行(指定の色情報で指定の領域を塗りつぶす)した後で(ステップS307)、シーケンス番号101の更新情報による描画を実行(更新画像を描画する)する(ステップS308)。
Specific examples of processing from step S301 to step S308 will be given. When the sequence number count value of the
簡易情報を用いて描画を行った結果の例を図9、図11に示す。 Examples of results of drawing using simple information are shown in FIGS.
以上のように本実施形態によれば、クライアント端末2は、過去の更新情報から生成した簡易情報を含む更新情報パケットを受信し、パケットロスを検知した場合にのみ、ロスに対応する簡易情報を用いて描画を行う。従来であれば、パケットロスが発生すると描画に欠けが生じていたところが、本発明の適用により、ロスが生じたと検知した時点で、代替となる簡易情報による描画の応急処置がなされることになる。これにより、パケットロスの際にユーザに認識される描画崩れの違和感を回避することが可能になる。本発明は、WAN経由など、サーバ端末とクライアント端末の間の往復時間が大きいネットワークにおいて特に効果の十分な発揮が期待できる。
As described above, according to the present embodiment, the
なお、本実施形態にかかるサーバ端末1は、汎用のコンピュータ装置を基本ハードウェアとして用いることでも実現することが可能である。即ち、更新情報生成部101と、シーケンス番号付加部102と、付加判断部103と、描画命令作成部104と、描画命令送信部105と、簡易情報生成部106と、簡易情報記憶部107と、入力状態取得部108と、通信状態取得部109と、エンコード部110と、フレームバッファ111と、ロス通知解析部112と、ロス通知受信部113と、生成判断部114と、更新情報履歴格納部115と、表示部116と、CPU状態取得部117は、上記のコンピュータ装置に搭載されたプロセッサにプログラムを実行することにより実現することができる。このとき、サーバ端末1は、上記のプログラムを実行させることにより実現することができる。このとき、サーバ端末1は、上記のプログラムをコンピュータ装置にあらかじめインストールすることで実現しても良いし、CD-ROMなどの記憶媒体に記憶して、あるいはネットワークを介して上記のプログラムを配布して、このプログラムをコンピュータ装置に適宜インストールすることで実現しても良い。また、更新情報履歴格納部115、簡易情報記憶部107、フレームバッファ111は、上記のコンピュータ装置に内蔵あるいは外付けされたメモリ、ハードディスク若しくはCD-R、CD-RW、DVD-RAM,DVD-Rなどの記憶媒体などを適宜利用して実現することができる。
The server terminal 1 according to the present embodiment can also be realized by using a general-purpose computer device as basic hardware. That is, the update
なお、本実施形態にかかるクライアント端末2は、汎用のコンピュータ装置を基本ハードウェアとして用いることでも実現することが可能である。即ち、描画命令受信部201と、ロス検知部202と、描画判断部203と、描画実行部204と、フレームバッファ205と、表示部206と、デコード部207と、ロス通知送信部208と、更新情報履歴記憶部209とは、上記のコンピュータ装置に搭載されたプロセッサにプログラムを実行することにより実現することができる。このとき、クライアント端末2は、上記のプログラムを実行させることにより実現することができる。このとき、クライアント端末2は、上記のプログラムをコンピュータ装置にあらかじめインストールすることで実現しても良いし、CD-ROMなどの記憶媒体に記憶して、あるいはネットワークを介して上記のプログラムを配布して、このプログラムをコンピュータ装置に適宜インストールすることで実現しても良い。また、更新情報履歴記憶部209、フレームバッファ205は、上記のコンピュータ装置に内蔵あるいは外付けされたメモリ、ハードディスク若しくはCD-R、CD-RW、DVD-RAM,DVD-Rなどの記憶媒体などを適宜利用して実現することができる。
The
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。 Note that the present invention is not limited to the above-described embodiment as it is, and can be embodied by modifying constituent elements without departing from the scope of the invention in the implementation stage. In addition, various inventions can be formed by appropriately combining a plurality of components disclosed in the embodiment. For example, some components may be deleted from all the components shown in the embodiment. Furthermore, constituent elements over different embodiments may be appropriately combined.
1・・・サーバ端末、2・・・クライアント端末、3・・・ネットワーク、101・・・更新情報生成部、102・・・シーケンス番号付加部、103・・・付加判断部、104・・・描画命令作成部、105・・・描画命令送信部、106・・・簡易情報生成部、107・・・簡易情報記憶部、108・・・入力状態取得部、109・・・通信状態取得部、110・・・エンコード部、111・・・フレームバッファ、112・・・ロス通知解析部、113・・・ロス通知受信部、114・・・生成判断部、115・・・更新情報履歴格納部、116・・・表示部、117・・・CPU状態取得部、201・・・描画命令受信部、202・・・ロス検知部、203・・・描画判断部、204・・・描画実行部、205・・・フレームバッファ、206・・・表示部、207・・・デコード部、208・・・ロス通知送信部、209・・・更新情報履歴記憶部
DESCRIPTION OF SYMBOLS 1 ... Server terminal, 2 ... Client terminal, 3 ... Network, 101 ... Update information generation part, 102 ... Sequence number addition part, 103 ... Addition judgment part, 104 ... Drawing command creation unit, 105 ... Drawing command transmission unit, 106 ... Simple information generation unit, 107 ... Simple information storage unit, 108 ... Input state acquisition unit, 109 ... Communication state acquisition unit, DESCRIPTION OF
Claims (7)
前記画面に表示する画像を記憶する第1の記憶部と、
前記第1の記憶部の画像を前記画面に表示する表示部と、
前記第1の記憶部が記憶する画像の一部を更新する更新画像と当該更新画像が表示される前記画面の位置を表す領域情報とを含む更新情報を生成する更新情報生成部と、
前記更新情報毎にシーケンス番号を付加するシーケンス番号付加部と、
前記更新情報の情報量以下の情報量であって、前記更新情報に対応する簡易情報を生成する簡易情報生成部と、
前記簡易情報と当該簡易情報に対応する更新情報に付加されたシーケンス番号とを対応付けて記憶する第2の記憶部と、
前記更新情報と当該更新情報に付加されたシーケンス番号と、前記更新情報に付加されたシーケンス番号より古いシーケンス番号と対応付けられた簡易情報と当該古いシーケンス番号を含む描画命令を作成する描画命令作成部と、
前記描画命令から描画命令パケットを作成して送信する送信部と
を備えるサーバ。 A server that shares an image to be displayed on the screen with a client terminal,
A first storage unit for storing an image to be displayed on the screen;
A display unit for displaying an image of the first storage unit on the screen;
An update information generation unit that generates update information including an update image that updates a part of the image stored in the first storage unit and area information that represents a position of the screen on which the update image is displayed;
A sequence number adding unit for adding a sequence number for each update information;
An information amount equal to or less than the information amount of the update information, and a simple information generation unit that generates simple information corresponding to the update information;
A second storage unit that stores the simplified information and the sequence number added to the update information corresponding to the simplified information in association with each other;
Drawing command creation for creating a drawing command including the update information, a sequence number added to the update information, simple information associated with a sequence number older than the sequence number added to the update information, and the old sequence number And
A transmission unit that generates and transmits a drawing command packet from the drawing command.
前記クライアント端末は、
前記画面に表示する画像を記憶する第3の記憶部と、
前記第3の記憶部の画像を前記画面に表示する第2の表示部と、
前記サーバから前記描画命令パケットを受信し、前記描画命令パケットから前記描画命令を取り出す描画命令受信部と、
前記描画命令に含まれる前記更新画像を第3の記憶部に描画する描画部と、
前記更新情報に付加されたシーケンス番号から前記サーバが送信した描画命令パケットのうち前記描画命令受信部が未受信である描画命令パケットがあるか否かを検知する検知部とを備え、
前記描画部は、前記検知部が、前記未受信である描画命令パケットがあることを検知した場合に、前記未受信である描画命令パケットに含まれる更新情報に付加されたシーケンス番号と同一のシーケンス番号と対応付けられた簡易情報であって、前記描画命令に含まれる簡易情報に基づき前記第3の記憶部に描画することを特徴とするクライアント端末と
を備えることを特徴とするシステム。 A system comprising: the server according to claim 1; and a client terminal that shares an image to be displayed on a screen with the server according to claim 1.
The client terminal is
A third storage unit for storing an image to be displayed on the screen;
A second display unit for displaying an image of the third storage unit on the screen;
A drawing command receiving unit that receives the drawing command packet from the server and extracts the drawing command from the drawing command packet;
A drawing unit for drawing the updated image included in the drawing command in a third storage unit;
A detection unit that detects whether or not there is a drawing command packet that has not been received by the drawing command receiving unit among drawing command packets transmitted by the server from the sequence number added to the update information;
The drawing unit has the same sequence number as the sequence number added to the update information included in the unreceived drawing command packet when the detecting unit detects that there is the unreceived drawing command packet. A client terminal characterized in that it is simplified information associated with a number and is rendered in the third storage unit based on the simplified information included in the rendering command.
請求項2記載のシステム。 The system according to claim 2, wherein the simple information is information including area information and color information representing a color drawn in an area indicated by the area information.
請求項2記載のシステム。 The system according to claim 2, wherein the simple information is information including a lossy compressed image of the updated image and region information.
前記クライアント端末は、前記サーバから描画命令パケットを受信する毎に、当該描画命令パケットに含まれる更新情報と当該更新情報に付加されたシーケンス番号とを対応付けて記憶する第4の記憶部を更に備え、
前記クライアント端末の前記描画部は、前記第4の記憶部に記憶され、前記簡易情報に含まれる当該古いシーケンス番号と同一のシーケンス番号に対応する更新情報に基づき前記第3の記憶部に描画することを特徴とする
請求項2記載のシステム。 The simple information is information including a sequence number and area information older than the sequence number added to the update information included in the drawing command,
Each time the client terminal receives a drawing command packet from the server, the client terminal further includes a fourth storage unit that stores the update information included in the drawing command packet in association with the sequence number added to the update information. Prepared,
The drawing unit of the client terminal draws in the third storage unit based on update information corresponding to the same sequence number as the old sequence number included in the simplified information and stored in the fourth storage unit The system according to claim 2.
ネットワークにおけるパケットのロス率が所定の値より小さい場合に、前記更新情報と当該更新情報に付加されたシーケンス番号を含み、前記更新情報に付加されたシーケンス番号より古いシーケンス番号と対応付けられた簡易情報と当該古いシーケンス番号を含まない描画命令を作成することを特徴とする
請求項5記載のシステム。 When the packet loss rate in the network is larger than a first threshold, the drawing command creation unit of the server uses the update information, the sequence number added to the update information, and the sequence number added to the update information. Create a simple instruction associated with the old sequence number and a drawing command that includes the old sequence number.
When the packet loss rate in the network is smaller than a predetermined value, the simplified information includes the update information and the sequence number added to the update information, and is associated with a sequence number older than the sequence number added to the update information. 6. The system according to claim 5, wherein a drawing command not including the information and the old sequence number is created.
請求項6記載のシステム。
When the packet loss rate in the network is greater than a second threshold value that is greater than a first threshold value, the drawing command creation unit is configured to update the update information, a sequence number added to the update information, a plurality of simplified information, The system according to claim 6, wherein a drawing command including a sequence number associated with the simple information is created.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2009/004835 WO2011036715A1 (en) | 2009-09-24 | 2009-09-24 | Server and system |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2009/004835 WO2011036715A1 (en) | 2009-09-24 | 2009-09-24 | Server and system |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2011036715A1 true WO2011036715A1 (en) | 2011-03-31 |
Family
ID=43795489
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2009/004835 Ceased WO2011036715A1 (en) | 2009-09-24 | 2009-09-24 | Server and system |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2011036715A1 (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8549093B2 (en) | 2008-09-23 | 2013-10-01 | Strategic Technology Partners, LLC | Updating a user session in a mach-derived system environment |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH10126773A (en) * | 1996-10-23 | 1998-05-15 | Nec Corp | Image data transfer coding system |
| JP2001109908A (en) * | 1999-10-04 | 2001-04-20 | Fujitsu Ltd | Three-dimensional object sharing processing method and storage medium |
| JP2004280540A (en) * | 2003-03-17 | 2004-10-07 | Canon Inc | Electronic cooperative work system |
| WO2005045737A2 (en) * | 2003-10-23 | 2005-05-19 | Microsoft Corporation | Synchronized graphic and region data for graphics remoting systems |
| JP2008109269A (en) * | 2006-10-24 | 2008-05-08 | Toshiba Corp | Server terminal, screen sharing method and program |
| JP2009205278A (en) * | 2008-02-26 | 2009-09-10 | Pioneer Electronic Corp | Apparatus and method for sharing screen and computer program |
-
2009
- 2009-09-24 WO PCT/JP2009/004835 patent/WO2011036715A1/en not_active Ceased
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH10126773A (en) * | 1996-10-23 | 1998-05-15 | Nec Corp | Image data transfer coding system |
| JP2001109908A (en) * | 1999-10-04 | 2001-04-20 | Fujitsu Ltd | Three-dimensional object sharing processing method and storage medium |
| JP2004280540A (en) * | 2003-03-17 | 2004-10-07 | Canon Inc | Electronic cooperative work system |
| WO2005045737A2 (en) * | 2003-10-23 | 2005-05-19 | Microsoft Corporation | Synchronized graphic and region data for graphics remoting systems |
| JP2008109269A (en) * | 2006-10-24 | 2008-05-08 | Toshiba Corp | Server terminal, screen sharing method and program |
| JP2009205278A (en) * | 2008-02-26 | 2009-09-10 | Pioneer Electronic Corp | Apparatus and method for sharing screen and computer program |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8549093B2 (en) | 2008-09-23 | 2013-10-01 | Strategic Technology Partners, LLC | Updating a user session in a mach-derived system environment |
| US8924502B2 (en) | 2008-09-23 | 2014-12-30 | Strategic Technology Partners Llc | System, method and computer program product for updating a user session in a mach-derived system environment |
| USRE46386E1 (en) | 2008-09-23 | 2017-05-02 | Strategic Technology Partners Llc | Updating a user session in a mach-derived computer system environment |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP5471794B2 (en) | Information processing apparatus, image transmission program, and image display method | |
| CN103823620B (en) | Screen adaption method and device | |
| JP2013126185A (en) | Information processing unit, image transmission method and image transmission program | |
| JP4176122B2 (en) | Server terminal, screen sharing method and program | |
| JP5761007B2 (en) | Information processing apparatus, image transmission method, and image transmission program | |
| JP5664289B2 (en) | Information processing apparatus, image transmission program, and image display method | |
| JP5685840B2 (en) | Information processing apparatus, image transmission program, and image display method | |
| EP3972253B1 (en) | Image rendering and encoding method, and related apparatus | |
| JP6003049B2 (en) | Information processing apparatus, image transmission method, and image transmission program | |
| EP3410302A1 (en) | Graphic instruction data processing method, apparatus and system | |
| CN103036980B (en) | Data transmission set and method for remote service | |
| CN112714357A (en) | Video playing method, video playing device, electronic equipment and storage medium | |
| WO2011036715A1 (en) | Server and system | |
| CN103067451B (en) | For the Apparatus and method for carried out data transmission in remote service | |
| CN103036978B (en) | Data transmission set and method | |
| US8913070B2 (en) | Server, screen transfer system, and screen transfer method | |
| CN103019641B (en) | Remote control process transmits the Apparatus and method for of data | |
| CN113724355B (en) | Method, device and electronic device for drawing charts for video | |
| CN114840159B (en) | A method, device, equipment and medium for rendering on screen | |
| JP5695537B2 (en) | Server, server control method, server control program | |
| WO2011036733A1 (en) | Server apparatus and screen transfer system | |
| CN115913939A (en) | Method and device for modifying image data in real time in cloud desktop image transmission process | |
| CN115331080A (en) | Image fusion method and device, electronic equipment and automatic driving vehicle | |
| CN103959246B (en) | Window image transmission method, display method, terminal, server and system | |
| CN114095762A (en) | Data transmission method and device, computer equipment and computer readable storage medium |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 09849746 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: 09849746 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: JP |