WO2013128623A1 - 画像送信方法、プログラム、及び装置 - Google Patents

画像送信方法、プログラム、及び装置 Download PDF

Info

Publication number
WO2013128623A1
WO2013128623A1 PCT/JP2012/055319 JP2012055319W WO2013128623A1 WO 2013128623 A1 WO2013128623 A1 WO 2013128623A1 JP 2012055319 W JP2012055319 W JP 2012055319W WO 2013128623 A1 WO2013128623 A1 WO 2013128623A1
Authority
WO
WIPO (PCT)
Prior art keywords
transmission
image
image data
time
data
Prior art date
Application number
PCT/JP2012/055319
Other languages
English (en)
French (fr)
Inventor
真一 佐沢
佐藤 裕一
Original Assignee
富士通株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 富士通株式会社 filed Critical 富士通株式会社
Priority to JP2014501921A priority Critical patent/JP5780353B2/ja
Priority to EP12870009.3A priority patent/EP2821920A4/en
Priority to PCT/JP2012/055319 priority patent/WO2013128623A1/ja
Priority to CN201280071083.2A priority patent/CN104145253B/zh
Publication of WO2013128623A1 publication Critical patent/WO2013128623A1/ja
Priority to US14/468,423 priority patent/US9705956B2/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/08Protocols specially adapted for terminal emulation, e.g. Telnet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/62Establishing a time schedule for servicing the requests

Definitions

  • the present invention relates to an image transmission method, an image transmission program, and an image transmission apparatus that transmit image data to another apparatus via a network.
  • processing results of applications executed by the server device and image data stored in a frame buffer such as a desktop screen are transmitted to the client device in real time via the network.
  • the client device can immediately display the image data (frame buffer data) generated by the server device.
  • the server device functions as an image transmitting device that transmits image data
  • the client device functions as an image receiving device that receives image data.
  • data communication to the client device is possible. There is a delay.
  • a transmission method has been proposed that reduces the effects of server-client communication delays.
  • a transmitting device that transmits image data transmits a sending packet to a receiving device that receives the image data, receives a reply of a reception response including the sending time of the sending packet from the receiving device, and sends the sending packet.
  • a transmission-side apparatus that transmits image data performs redundant encoding of image data to be transmitted at a coding rate set based on an expected packet loss rate on the network.
  • the image data is transmitted to the reception side device via the network, and the reception side device transmits the image data without waiting for a response by decoding the original image data using the received redundantly encoded data.
  • the client device In the thin client system, it is necessary to quickly detect the image data stored in the frame buffer on the server device side, and cause the client device to receive the detected image data so as not to be affected by the network state as much as possible.
  • the image data generated by the server device is related to the user operation that occurred on the client device. Therefore, depending on the timing at which the server apparatus transmits image data (desktop screen, execution result, etc.) indicating the result executed in response to the user operation to the client apparatus, the user operation generated in the client apparatus and the client apparatus are displayed.
  • the relationship with the image data may become unnatural.
  • FIG. 10 is a diagram for explaining a delay in the case of a transmission method at a constant frame rate.
  • FIG 10 shows the server device side of the thin client system on the left side and the client device side on the right side.
  • the client device transmits each mouse operation op1, op2, op3, op4,.
  • the server device transmits frames fr1, fr2, fr3, fr4,... That are all or part of the frame data of the desktop screen to the client device at a constant transmission interval.
  • the desktop screen is updated according to the execution result based on the user operation of the application.
  • FIG. 11 is a diagram for explaining the delay in the case of a method of transmitting after waiting for a response from the receiving side.
  • FIG. 11 shows the server device side of the thin client system on the left side and the client device side on the right side.
  • the client device transmits mouse operation op to the server device in the order of generation, and the server device confirms the reception response from the client device for the desktop screen image data (frame fr). Send to client device.
  • the reception response at the server device is also delayed, so there is a possibility that a frame fr in which transmission is skipped may occur depending on the timing of the reception response.
  • the server device transmits the data (frame fr3) stored in the frame buffer when the reception response is received, so the frame fr2 is skipped depending on the timing. Therefore, since the screen is updated in the order of the frames fr1 and fr3 in the client device, the screen may not be updated smoothly.
  • the server device When the image data transmitted by the server device is a desktop screen or a screen indicating the execution result of the application, the screen is updated according to the operation event generated in the client device. Therefore, the server device stores the image data corresponding to the operation event. You need to send as soon as possible. However, when multiple operation events occur in a short time on the client device side, if all the updated screens are sent to the client device, the transmission time may become longer depending on the network conditions, resulting in a transmission delay. Will be generated.
  • a situation where a plurality of operation events occur in a short time can be regarded as a user performing a series of operations.
  • the screen showing the final processing result is more important than the screen showing the processing result in the middle of a series of user operations.
  • the display update will be strange. Hard to hold.
  • the time until the final screen display update is long it is difficult to feel that the response is delayed.
  • the present invention has been made in view of such a problem.
  • image data is transmitted from a server apparatus to a client apparatus via a network, even if there are many operation events that have occurred in the client apparatus, the screen data is efficiently processed.
  • the purpose of this is to realize a remote environment in which the user is unlikely to feel discomfort or delay in response to display update.
  • the image transmission device receives an operation event generated in the image reception device via a network, and controls the image in transmission control based on a predetermined transmission interval.
  • the transmission data amount of the image data to be transmitted to the receiving device, the information regarding the network to which the image data is transmitted, and the number of events of the operation event received from the previous transmission to the time of transmission of the image data are also included.
  • the determination time of the image data is calculated, the transmission time indicating the transmission time of the image data is compared with the determination time, and the determination time is later than the transmission time. In this case, a process for suppressing transmission of the image data is executed.
  • the server device that provides an application used by the user when the server device that provides an application used by the user is implemented as the image transmission device and the client device operated by the user is implemented as the image reception device, the image transmission device performs image reception.
  • An optimal image data update response corresponding to the amount of operation event in the apparatus can be realized, and a smoother operating environment can be provided to the user.
  • FIG. 1 It is a figure which shows the structural example of the image transmission system which implements the image transmission method, the image transmission apparatus, and image transmission program which are disclosed as 1 aspect of this invention. It is a figure which shows the example of a transmission process performed with a server apparatus and a client apparatus. It is a figure for demonstrating transmission control of the image data which a server apparatus performs. It is a figure which shows the block structural example in one Example of a server apparatus. It is a figure which shows the block structural example in one Example of a client apparatus. It is a figure which shows the example of a processing flow of the operation data process in a server apparatus. It is a figure which shows the example of a processing flow of the image data acquisition process of a server apparatus.
  • FIG. 1 is a diagram illustrating a configuration example of an image transmission method, an image transmission apparatus, and an image transmission system that executes an image transmission program.
  • the system shown in FIG. 1 is an embodiment as a thin client system, and includes a server apparatus 1 and a client apparatus 2, and both apparatuses are connected via a network 3.
  • the server device 1 is connected to a storage device 4 that stores application programs usable by the user.
  • the client device 2 includes an input device 21 and a display device 22.
  • the input device 21 is implemented by a mouse, a keyboard, a track pad, a tablet, or the like.
  • the server device 1 is a device corresponding to an image transmission device, provides an application to the user of the client device 2, executes all processes including execution of the application, and generates a desktop environment of the client device 2. That is, the server device 1 transmits image data indicating the desktop screen of the client device 2 to the client device 2 via the network 3.
  • the client device 2 is a device corresponding to an image receiving device, and functions as a remote operation terminal for an application executed on the server device 1.
  • the client device 2 receives the image data from the server device 1 and displays it on the display device 22, generates an operation event from a user operation based on the desktop screen from the input device 21, and displays operation data indicating the generated operation event on the network 3.
  • FIG. 2 is a diagram illustrating an example of transmission processing executed by the server device 1 and the client device 2.
  • the server device 1 detects a desktop screen indicating the execution result of the application program from the frame buffer (image detection processing), compresses all or a part of the detected desktop screen (frame data), and transmits image data for transmission. Is generated (image compression processing).
  • the server device 1 transmits the generated image data to the client device 2 while performing bandwidth control at a preset transmission interval (1/30 second) (communication processing).
  • the server device 1 performs communication processing by RPS (Random Parity Stream) communication.
  • RPS communication is a communication process based on UDP (User Datagram Protocol).
  • UDP User Datagram Protocol
  • a transmission packet that assumes the loss rate of a packet during communication and redundantly encodes image data to be transmitted based on the loss rate. Generate and send. Then, on the receiving side, the original image data is decoded from the received transmission packet using the redundancy.
  • the client device 2 restores the desktop screen (frame data) from the image data received via the network 3 (image restoration processing), and displays the restored desktop screen on the display device 22 (image display processing).
  • the client device 2 transmits operation data indicating the operation event that has occurred by TCP / IP communication.
  • operation data indicating the operation event that has occurred by TCP / IP communication.
  • the client device 2 displays the contents of the operation event (for example, the amount of movement of the mouse, data input from the keyboard, etc.).
  • the operation data shown is transmitted to the server device 1 via the network 3.
  • the server device 1 generates an operation event from the received operation data, passes it to the application, and holds it.
  • FIG. 3 is a diagram for explaining transmission control of image data executed by the server apparatus 1.
  • the server device 1 performs transmission control so that the image data (desktop screen) stored in the frame buffer is sequentially transmitted to the client device 2 according to a predetermined transmission interval M (for example, 1/30 second).
  • the image data to be transmitted is assumed to be frames fr1, fr2, fr3, fr4,.
  • the client device 2 transmits operation data indicating the generated operation event to the server device 1.
  • the operation data to be transmitted is assumed to be mouse operations op1, op2, op3, op4,.
  • the server apparatus 1 needs to transmit image data within a band that can be received by the client apparatus 2, and as known band control, the transmission data amount (data size) of the image data, the band of the network 3, and the client apparatus 2 side Transmission control is performed on the basis of the data loss rate at.
  • the server device 1 further performs bandwidth control according to the amount of operation events received from the client device 2 in order to achieve efficient transmission of image data.
  • the server apparatus 1 transmits the image data (frame fr) at every transmission interval, the screen is immediately updated in the client apparatus 2, so that the user can easily feel that the display response is good. Therefore, when the number of operation events received during a certain period is small, the server device 1 transmits a frame fr at every transmission interval.
  • the server device 1 receives a large number of operation events in a certain period, the user operation on the client device 2 is frequent. Therefore, although the screen update on the client device 2 is frequent, even if the frame buffer displayed during the operation is skipped and the screen is updated, the user hardly recognizes the skipped screen.
  • the server device 1 performs transmission control by reflecting the number of operation events received within a certain time until the time when the frame fr is transmitted in the determination value for determining whether or not to suppress the transmission of the frame fr.
  • the frame data indicating the execution result of the application is rewritten from the frame fr3 to the frame fr4.
  • the frame fr3 is immediately updated to the frame fr4. This is because even if the client device 2 skips the frame fr3 and updates the display to the frame fr4, the user can see the result of the operation, and thus it is difficult to have a sense of incongruity.
  • the server apparatus 1 receives the mouse operation op2 for a certain period before the transmission of the frame fr1, the number of received operation events is small (1). However, if it is predicted that the transmission time will be longer from the data amount of the frame fr2 or the bandwidth of the network 3 by the known bandwidth control, the server device 1 suppresses the transmission of the frame fr2 even if the number of events is small. Control.
  • the server device 1 reliably transmits necessary image data in bandwidth control, and controls transmission so as not to affect the delay in subsequent transmissions.
  • FIG. 4 is a diagram illustrating a block configuration example in an embodiment of the server device 1.
  • the server device 1 includes an operation data reception unit 11, an operation event generation unit 12, an operation event storage unit 13, an image update detection unit 14, a previous frame buffer 141, an image compression unit 15, a compression information storage unit 16, a transmission control unit 17, An image data transmission unit 18 and a network information storage unit 19 are provided.
  • the operation data receiving unit 11 receives operation data generated by the client device 2.
  • the operation event generating unit 12 Whenever the operation data receiving unit 11 receives operation data, the operation event generating unit 12 generates an operation event based on the received operation data, and notifies the input / output driver 101 managed by the OS (Operating System) 100. Both are stored in the operation event storage unit 13.
  • the operation event storage unit 13 stores the operation event generated by the operation event generation unit 12.
  • the image update detection unit 14 acquires frame data (desktop screen) from the frame buffer 104 managed by the graphic driver 103 based on the timer signal of the timer 102 managed by the OS 100, and acquires the previous data held in the previous frame buffer 141. The frame data is compared with the frame data acquired this time, and an area where the data is updated (update area) is extracted. Further, the image update detection unit 14 stores the frame data acquired this time in the previous frame buffer 141 for the next processing.
  • the image compression unit 15 compresses the update area of the frame data extracted by the image update detection unit 14 to generate image data.
  • the compression information including the transmission data amount p (bytes) of the generated image data is Stored in the compressed information storage unit 16.
  • the compression information storage unit 16 stores compression information related to image compression of the image compression unit 15.
  • the transmission control unit 17 performs bandwidth control on the transmission processing for each transmission interval M (s: second) by the image data transmission unit 18, and further transmits image data based on the operation event amount received from the client device 2. Controls whether to suppress or not.
  • the transmission control unit 17 stores the compression information stored in the compression information storage unit 16, the network information stored in the network information storage unit 19 described later, and the operation event storage unit 13 as transmission control.
  • the determination time t is calculated based on the number of operating events.
  • the transmission control unit 17 acquires the current time as the transmission time tnow indicating the current transmission time, and compares the determination time t with the transmission time tnow .
  • the transmission control unit 17 performs control to suppress the current transmission when the determination time t is later than the transmission time t now (value exceeds). Further, the transmission control unit 17 performs control to execute the current transmission when the determination time t is earlier than the transmission time t now (value is below), and the operation stored in the operation event storage unit 13 Clear the event.
  • the transmission control unit 17 is included in the transmission data amount p (bytes) included in the compression information stored in the compression information storage unit 16 and the network information stored in the network information storage unit 19.
  • the determination time t is calculated by the following formula.
  • f (n) is a monotonically increasing function f (n) based on the number of events n, and takes a value of 1 ⁇ f (n) ⁇ 3n.
  • the image data transmission unit 18 transmits the image data to the client device 2 by RPS transmission via the network 3 based on the control of the transmission control unit 17. Further, the image data transmission unit 18 obtains a reception response from the client device 2, and obtains network information (band X, band X, and reception time included in the reception response, based on the data amount of the received image data). The disappearance rate q) is stored in the network information storage unit 19.
  • the transmission control unit 17 when the transmission control unit 17 is configured to execute the calculation of the determination time t using an expression including the monotonically increasing function f (n) of the number of events n, the server apparatus 1 can be used within a certain period. Transmission control of image data in consideration of the number of operation events received from the client device 2 can be realized by a simple calculation process.
  • FIG. 5 is a diagram illustrating a block configuration example in an embodiment of the client device 2.
  • the client device 2 includes an input device 21 and a display device 22, an operation event generation unit 23, an operation data transmission unit 24, an image data reception unit 25, and an image display unit 26.
  • the operation event generation unit 23 generates an operation event based on a user operation of the input device 21.
  • the operation data transmission unit 24 transmits operation data indicating the operation event that has occurred to the server device 1 via the network 3.
  • the image data receiving unit 25 receives a transmission packet of image data transmitted by the server apparatus 1 by RPS transmission, and restores complete image data based on the received transmission packet.
  • the image display unit 26 reproduces the image frame data based on the image data and displays it on the display device 22.
  • the server device 1 performs the following processing as operation data processing.
  • FIG. 6 is a diagram illustrating a processing flow example of operation data processing in the server apparatus 1.
  • the operation data receiving unit 11 receives operation data from the client device 2 (step S1).
  • the operation event generating unit 12 determines the type of operation from the received operation data (step S2). If the event type is a mouse event (“mouse” in step S2), the operation event generating unit 12 generates a mouse event, notifies the generated mouse event to the input / output driver 101, and further stores the operation event. Store in the unit 13 (step S3). If the event type is a keyboard event (“keyboard” in step S2), the operation event generating unit 12 generates a keyboard event, notifies the generated keyboard event to the input / output driver 101, and further stores the operation event. Store in the unit 13 (step S4).
  • operation events generated in the client device 2 are sequentially accumulated in the operation event storage unit 13.
  • the server device 1 performs the following processing as image data processing.
  • FIG. 7 is a diagram illustrating a processing flow example of the image data acquisition processing of the server device 1.
  • the processing of steps S11 to S15 in FIG. 7 is repeatedly executed, and data serving as image data transmitted to the client device 2 is acquired.
  • the image update detection unit 14 When the image update detection unit 14 receives a timer signal from the timer 102 (step S11), the image update detection unit 14 acquires frame data (desktop screen) stored in the frame buffer 104 (step S12). Then, the image update detection unit 14 compares the previous frame data obtained in the previous acquisition process stored in the previous frame buffer 141 with the frame data obtained in the current process, and determines an area where the data is different as the update area. (Step S13). Further, the image update detection unit 14 stores the frame data obtained by the current process as the previous frame data in the previous frame buffer 141 (step S14), and requests the timer 102 for the next timer signal (step S15).
  • FIG. 8 is a diagram illustrating a processing flow example of the image data transmission processing of the server device 1.
  • the processing of steps S21 to S27 in FIG. 8 is executed every time a predetermined transmission interval M elapses, and image data is transmitted.
  • the image compression unit 15 performs compression processing on the data in the update area of the frame data extracted by the image update detection unit 14 to generate image data to be transmitted, and uses the compressed data amount p as compression information. (Byte) is stored in the compressed information storage unit 16 (step S21).
  • the transmission control unit 17 acquires the bandwidth X (bps) and the loss rate q (0 ⁇ q ⁇ 1) of the network information from the network information storage unit 19 (step S22).
  • the determination time t is calculated (step S23).
  • the transmission control unit 17 determines that transmission is to be performed (Y in step S24).
  • the image data transmission unit 18 receives the transmission execution of the transmission control unit 17 and transmits the image data to the client device 2 (step S25). Thereafter, the transmission control unit 17 writes the transmission time t now at the previous transmission time t 0 (step S26), clears the operation event stored in the operation event storage unit 13 (step S27), and ends the process. .
  • the transmission control unit 17 determines that transmission is inhibited (N in step S24) and ends the process. In this case, since the image data transmission unit 18 does not accept the transmission execution of the transmission control unit 17, the image data is not transmitted.
  • the operation event generation unit 23 detects the movement, input, selection, etc. of the pointing position by the input device 21 and generates an operation event indicating the detected operation. Then, every time an operation event occurs, the operation data transmission unit 24 transmits, to the server apparatus 1 via the network 3, operation data indicating the type and operation content of the operation event that has occurred.
  • the image data receiving unit 25 receives the image data from the server device 1 and decodes it into frame data.
  • the image display unit 26 displays the decoded frame data on the display device 22.
  • the server apparatus 1 transmits image data to the client apparatus 2 by RPS communication, but the communication method is not limited to this.
  • the image data transmission unit 18 of the server device 1 may be configured to transmit image data by TCP (Transmission Control Protocol) communication or UDP communication instead of RPS communication.
  • TCP Transmission Control Protocol
  • TCP communication and UDP communication are known processes, and detailed description thereof is omitted.
  • the image data transmission unit 18 transmits image data by TCP communication
  • the equation for calculating the determination time t Assume that the loss rate q is set to “0” and the band X is set to an arbitrary fixed value in advance.
  • the loss rate q is set to “0” or an arbitrary fixed value in advance
  • the band X is It is assumed that each is set to an arbitrary fixed value.
  • the band X and the disappearance rate q are stored in the network information storage unit 19.
  • FIG. 9 is a diagram illustrating an example of a hardware configuration of the server device 1 and the client device 2 described above.
  • the computer 200 includes, for example, an arithmetic device (CPU: Central Processing Unit) 201, a main storage device 202, an auxiliary storage device 203, a drive device 204, an interface device 205, a network connection device 206, an input device 207, an output device 208, and the like. These devices are connected to the bus B.
  • CPU Central Processing Unit
  • the computing device 201 controls the entire computer 200 and realizes functions related to the server device 1 in accordance with a program stored in the main storage device 202.
  • the main storage device 202 reads OS programs, application programs, data, and the like to be executed by the CPU 101 from the auxiliary storage device 203 and stores them.
  • the auxiliary storage device 203 also stores programs and data necessary for processing.
  • the program When the recording medium on which the program is recorded is set in the drive device 204, the program is installed in the auxiliary storage device 203 via the drive device 204.
  • the recording medium is, for example, a medium such as an FD (flexible disk), a CD-ROM, a DVD, or a magneto-optical disk. Note that the program need not be installed by a recording medium, and can be downloaded by another computer via a network.
  • the interface device 205 is for connecting to a network, and exchanges programs and data with other computers.
  • the input device 207 is for inputting an operation instruction, and is, for example, a keyboard, a mouse, a touch panel, or the like.
  • the output device 208 displays a GUI (Graphical User Interface) or the like by a program, and is a display, for example.
  • GUI Graphic User Interface
  • the server device 1 and the client device 2 can be implemented not only as hardware but also as computer software.
  • the server device 1 can be realized by causing the main storage device 202 of the computer 200 to read and execute the program.
  • a program for causing the computer to execute the functions of the operation event generation unit 23, the operation data transmission unit 24, the image data reception unit 25, and the image display unit 26 illustrated in FIG. 5 is created, and the program is stored in the main storage device of the computer 200.
  • the client apparatus 2 can be realized by causing the client apparatus 2 to read the program 202 and execute it.
  • the program for realizing the server apparatus 1 is not only a recording medium such as a CD-ROM, CD-RW, DVD-R, DVD-RAM, DVD-RW, or flexible disk, but also other programs provided at the end of the communication line. It may be stored in a storage device such as a storage device or a hard disk of a computer.
  • the elements constituting the server device 1 and the client device 2 may be realized in any combination.
  • a plurality of components may be realized as one member, and one component may be configured from a plurality of members.
  • server device 1 and the client device 2 are not limited to the above-described embodiments, and various improvements and changes may naturally be made without departing from the gist of the present invention.
  • the image transmission side realizes efficient transmission in consideration of not only the state of the network that transmits the image data and the amount of data but also the operation event that has occurred on the image reception side. It becomes possible.
  • the desktop screen is updated more smoothly, so that it is possible to provide an environment in which the user does not feel discomfort in remote operation.

Landscapes

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

Abstract

 画像送信装置が画像受信装置へ画像データ送信する際に効率的な送信の実現を目的とする。画像送信装置であるサーバ装置1の操作データ受信部11が、画像受信装置であるクライアント装置2で発生した操作イベントをネットワーク3経由で受信し、送信制御部17が、所定の送信間隔にもとづく送信の制御において、クライアント装置2へ送信する画像データの送信データ量、画像データを送信するネットワーク3の帯域、及び直前の送信時から画像データの送信をする時点までに受信していた操作イベントのイベント数をもとに画像データの判定用時刻tを計算し、画像データの送信をする時点を示す送信時刻tnowと判定用時刻tとを比較し、判定用時刻tが送信時刻tnowより遅い場合に、画像データの送信を抑止する。

Description

画像送信方法、プログラム、及び装置
 本発明は、画像データをネットワーク経由で他の装置へ送信する画像送信方法、画像送信プログラム、画像送信装置に関する。
 近年、アプリケーションを含むほとんどの処理をサーバ装置側で実行し、デスクトップ画面や実行結果をネットワーク経由でクライアント装置側へ送信することにより、ユーザが使用するクライアント側では必要最小限の処理のみを行うようにするシンクライアントシステムと呼ばれるシステムアーキテクチャが普及している。
 シンクライアントシステムでは、サーバ装置が実行するアプリケーション等の処理結果やデスクトップ画面などのフレームバッファに格納される画像データを、ネットワークを経由してリアルタイムでクライアント装置へ送信する。画像データのリアルタイム送信により、クライアント装置は、サーバ装置で生成された画像データ(フレームバッファのデータ)を即座に表示することができる。
 シンクライアントシステムでは、サーバ装置は画像データを送信する画像送信装置として、クライアント装置は画像データを受信する画像受信装置として機能するが、送信を行うネットワークの状態によっては、クライアント装置へのデータ通信に遅延が生じる。
 そのため、サーバ-クライアント間の通信遅延の影響を軽減する送信手法が提案されている。1つの従来手法として、画像データを送信する送信装置が、画像データを受信する受信装置へ送付パケットを送信し、受信装置から、送付パケットの送信時刻を含む受領応答の返信を受信し、送付パケットの送信時刻から計算した応答時間と所定の閾値との関係から、画像データの送信時のパケット数を増減することによって、送信遅延を回避できるようにする手法が知られている。
 また、別の従来手法として、画像データを送信する送信側装置が、送信対象の画像データを、ネットワーク上での予想されるパケット消失率をもとに設定された符号化率で冗長符号化してネットワーク経由で受信側装置へ送信し、受信側装置では、受信した冗長符号化された符号化データを用いて元の画像データを復号処理することによって、応答を待つことなく画像データを送信することができる手法が知られている。
特開2006-254383号公報 特開2007-251737号公報
 シンクライアントシステムでは、サーバ装置側のフレームバッファに格納された画像データを素早く検知し、検知した画像データをできる限りネットワーク状態の影響を受けないようにしてクライアント装置に受信させる必要がある。
 しかし、サーバ装置で生成される画像データは、クライアント装置で発生したユーザ操作に関連している。そのため、サーバ装置がユーザ操作に応じて実行された結果を示す画像データ(デスクトップ画面、実行結果等)をクライアント装置へ送信するタイミングによっては、クライアント装置で発生したユーザ操作とクライアント装置で表示される画像データとの関係が不自然なものとなってしまう恐れがある。
 サーバ装置からクライアント装置へ画像データを送信する場合に、一定のフレームレートで送信する方式、受信側からの応答を待って送信する方式等がある。しかし、これらの送信方式であっても送信遅延が生じる。
 図10は、一定のフレームレートで送信する方式の場合の遅延を説明するための図である。
 図10の左側は、シンクライアントシステムのサーバ装置側、右側はクライアント装置側を示す。
 クライアント装置は、ユーザによりマウス操作イベントが発生すると、各マウス操作op1、op2、op3、op4、…を発生順にサーバ装置へ送信する。サーバ装置は、一定の送信間隔で、デスクトップ画面のフレームデータの全部または一部であるフレームfr1、fr2、fr3、fr4、…をクライアント装置へ送信する。デスクトップ画面は、アプリケーションのユーザ操作にもとづく実行結果に応じて更新されている。
 サーバ装置の送信間隔が長い場合(フレームレートが低い場合)には、クライアント装置での受信間隔も長くなるため画面更新がスムーズに行われないという問題がある。例えば、クライアント装置では、ユーザのマウス操作op1、op2がなされても、マウス操作op2に対応していないデスクトップ画面(フレームfr1)が表示されたり、マウス操作op3、op4がなされた後、しばらく経ってからフレームfr2、fr3、fr4が表示されたりすることがある。そのため、ユーザは、自分が操作を終えているのにデスクトップ画面が更新されていくという違和感を持つ場合がある。
 サーバ装置の送信間隔が短い場合(フレームレートが高い場合)には、サーバ装置が送信をするネットワークの送信可能な帯域を超えて送信をしてしまう可能性があり、結局、クライアント装置側での、画像データ(フレームfr)の受信が遅れて、デスクトップ画面の更新が遅れてしまうというおそれがある。
 図11は、受信側からの応答を待って送信する方式の場合の遅延を説明するための図である。
 図11の左側は、シンクライアントシステムのサーバ装置側、右側はクライアント装置側を示す。図10に示す場合と同様に、クライアント装置は、マウス操作opを発生順にサーバ装置へ送信し、サーバ装置は、デスクトップ画面の画像データ(フレームfr)を、クライアント装置からの受信応答を確認してクライアント装置へ送信する。
 ネットワークで、例えばRTT(Round Trip Time)遅延が大きい場合には、サーバ装置での受信応答も遅延するため、受信応答のタイミングによっては送信がスキップされるフレームfrが生ずるおそれがある。例えば、クライアント装置からのフレームfr1の受信応答が遅延すると、サーバ装置では、受信応答の受信時にフレームバッファに格納されているデータ(フレームfr3)を送信するため、タイミングによっては、フレームfr2がスキップされてしまい、クライアント装置には、フレームfr1、fr3の順で画面が更新されるため、スムーズに画面更新されないおそれがある。
 サーバ装置が送信する画像データがデスクトップ画面やアプリケーションの実行結果を示す画面である場合は、クライアント装置で発生した操作イベントに従って画面が更新されるため、サーバ装置は、操作イベントに応じた画像データをできる限り早く送信する必要がある。しかし、クライアント装置側で、短時間に複数の操作イベントが発生しているような場合には、更新される画面をすべてクライアント装置へ送信すると、ネットワークの条件によっては送信時間が長くなり、送信遅延を生じさせることになる。
 ここで、短時間に複数の操作イベントが発生している状況は、ユーザが一連の操作を行っているとみなすことが可能である。ユーザにとって、一連のユーザ操作の途中の処理結果を示す画面に比べて、最終的な処理結果を示す画面のほうがより重要である。また、一連のユーザ操作の途中を含めた画面更新に長い時間がかかるより、一連のユーザ操作の途中の表示更新が省略されても最終的な画面が表示されていれば、表示更新に違和感を持ちにくい。さらに、最終的な画面の表示更新までの時間が長くなければ、レスポンスが遅延しているとの感覚を持ちにくい。
 本発明は、かかる問題に鑑みてなされたものであり、サーバ装置からクライアント装置へネットワークを経由して画像データを送信する際に、クライアント装置で発生した操作イベントが多い場合でも、画面データを効率的に送信する制御を行い、もって、ユーザが表示更新に対する違和感やレスポンスの遅延感を持ちにくいリモート環境を実現することを目的とする。
 本発明の一態様として開示する画像送信方法は、前記画像送信装置が、前記画像受信装置で発生した操作イベントをネットワーク経由で受信し、予め定められた送信間隔にもとづく送信の制御において、前記画像受信装置へ送信する画像データの送信データ量、該画像データを送信するネットワークに関する情報、及び直前の送信時から該画像データの送信をする時点までに受信していた前記操作イベントのイベント数をもとに、該画像データの判定用時刻を計算し、前記画像データの送信をする時点を示す送信時刻と前記判定用時刻とを比較し、前記判定用時刻が前記送信時刻を超えて後である場合に、前記画像データの送信を抑止する、処理を実行するものである。
 開示する画像送信方法によれば、ユーザが使用するアプリケーションなどを提供するサーバ装置が画像送信装置として、ユーザが操作するクライアント装置が画像受信装置として実施される場合に、画像送信装置が、画像受信装置での操作イベント量に応じた最適な画像データ更新のレスポンスを実現することができ、ユーザに、よりスムーズな操作環境を提供することができる。
本発明の一態様として開示する画像送信方法、画像送信装置、画像送信プログラムを実施する画像送信システムの構成例を示す図である。 サーバ装置及びクライアント装置で実行される送信処理例を示す図である。 サーバ装置が実行する画像データの送信制御を説明するための図である。 サーバ装置の一実施例におけるブロック構成例を示す図である。 クライアント装置の一実施例におけるブロック構成例を示す図である。 サーバ装置における操作データ処理の処理フロー例を示す図である。 サーバ装置の画像データ取得処理の処理フロー例を示す図である。 サーバ装置の画像データ送信処理の処理フロー例を示す図である。 サーバ装置及びクライアント装置のハードウェア構成の一例を示す図である。 一定のフレームレートで送信する方式の場合の遅延を説明するための図である。 受信側からの応答を待って送信する方式の場合の遅延を説明するための図である。
 以下に、本発明の一態様として開示する画像送信方法、画像送信装置等の実施例を説明する。
 図1は、画像送信方法、画像送信装置、画像送信プログラムを実施する画像送信システムの構成例を示す図である。
 図1に示すシステムは、シンクライアントシステムとしての実施例であり、サーバ装置1とクライアント装置2とを備え、両装置がネットワーク3で接続している。サーバ装置1は、ユーザが使用可能なアプリケーションプログラムを記憶する記憶装置4と接続する。クライアント装置2は、入力装置21及び表示装置22を有する。入力装置21は、マウス、キーボード、トラックパッド、タブレット等で実施される。
 サーバ装置1は、画像送信装置に相当する装置であり、クライアント装置2のユーザにアプリケーションを提供し、アプリケーションの実行を含む全ての処理を実行し、クライアント装置2のデスクトップ環境を生成する。すなわち、サーバ装置1は、クライアント装置2のデスクトップ画面を示す画像データをネットワーク3経由でクライアント装置2へ送信する。
 クライアント装置2は、画像受信装置に相当する装置であり、サーバ装置1で実行されるアプリケーションのリモート操作端末として機能する。クライアント装置2は、サーバ装置1から画像データを受信して表示装置22に表示し、入力装置21からデスクトップ画面にもとづくユーザ操作から操作イベントを発生させ、発生した操作イベントを示す操作データをネットワーク3経由でサーバ装置1へ送信する。
 図2は、サーバ装置1及びクライアント装置2で実行される送信処理例を示す図である。
 サーバ装置1は、フレームバッファから、アプリケーションプログラムの実行結果を示すデスクトップ画面を検出し(画像検出処理)、検出したデスクトップ画面(フレームデータ)の全部または一部を画像圧縮して送信用の画像データを生成する(画像圧縮処理)。サーバ装置1は、予め設定された送信間隔(1/30秒)毎に、帯域制御を行いつつ、生成した画像データをクライアント装置2へ送信する(通信処理)。
 本実施例において、サーバ装置1は、通信処理を、RPS(Random Parity Stream)通信で行う。RPS通信は、UDP(User Datagram Protocol)をベースにした通信処理であり、送信側で、通信中のパケットの消失率を想定し、送信する画像データを消失率に基づいて冗長符号化した送信パケットを生成して送信する。そして、受信側で、受信した送信パケットから、その冗長性を利用して元の画像データを復号する処理である。
 クライアント装置2は、ネットワーク3を経由して受信した画像データからデスクトップ画面(フレームデータ)を復元し(画像復元処理)、復元したデスクトップ画面を表示装置22に表示する(画像表示処理)。
 なお、PRS通信の詳細は、前述の特許文献2に記載されているが、本発明の要旨ではないため、PRS通信の詳細説明は省略する。
 また、本実施例において、クライアント装置2は、発生した操作イベントを示す操作データの送信を、TCP/IP通信で行う。クライアント装置2は、表示装置22に表示したデスクトップ画面に対する入力装置21のユーザ操作により操作イベントが発生する度に、操作イベントの内容(例えば、マウスの移動量、キーボードから入力されたデータ等)を示す操作データをネットワーク3経由でサーバ装置1へ送信する。サーバ装置1は、受信した操作データから操作イベントを発生させ、アプリケーションへ渡すとともに、保持しておく。
 図3は、サーバ装置1が実行する画像データの送信制御を説明するための図である。
 サーバ装置1は、フレームバッファに格納されている画像データ(デスクトップ画面)を、所定の送信間隔M(例えば、1/30秒)に従って、クライアント装置2へ順次送信するように送信制御する。送信される画像データを、フレームfr1、fr2、fr3、fr4、…とする。クライアント装置2は、操作イベントが発生する度に、発生した操作イベントを示す操作データをサーバ装置1へ送信する。送信される操作データを、マウス操作op1、op2、op3、op4、…とする。
 サーバ装置1は、クライアント装置2が受信可能な帯域内で画像データを送信する必要があり、既知の帯域制御として、画像データの送信データ量(データサイズ)とネットワーク3の帯域、クライアント装置2側でのデータの消失率にもとづいて、送信制御を行っている。
 本実施例にかかるサーバ装置1は、画像データの効率的送信を実現するため、さらに、クライアント装置2から受信した操作イベントの量に応じた帯域制御を行う。
 サーバ装置1が一定期間に受信する操作イベント数が0や1程度であれば、クライアント装置2でのユーザ操作がない状況か、または操作の頻度が高くない状況である。したがって、サーバ装置1が、送信間隔毎に画像データ(フレームfr)を送信することによって、クライアント装置2では、画面がすぐに更新されるため、ユーザは、表示レスポンスが良いと感じやすい。そこで、サーバ装置1は、一定期間中に受信した操作イベント数が少ない場合は、送信間隔毎にフレームfrを送信する。
 一方、サーバ装置1が一定期間に受信する操作イベント数が多い場合は、クライアント装置2でのユーザ操作が頻繁な状況である。したがって、クライアント装置2での画面更新も頻繁になるが、操作途中での表示されるフレームバッファがスキップされて画面更新されたとしても、ユーザはスキップされた画面を認知しにくい。
 そこで、サーバ装置1では、フレームfrを送信する時点までの一定時間内に受信した操作イベントのイベント数を、フレームfrの送信を抑止するかどうかの判定値に反映させて、送信制御を行う。
 例えば、フレームfr3を送信するまでの一定時間内にクライアント装置2からマウス操作op3、op4を受信していた場合に、アプリケーションの実行結果を示すフレームデータは、フレームfr3からフレームfr4へ書き替えられる。そのような場合に、フレームfr3、fr4をクライアント装置2へ送信しても、フレームfr3はすぐにフレームfr4へ更新される。クライアント装置2でフレームfr3をスキップしてフレームfr4へ表示を更新しても、ユーザは操作に対する結果を見ることができるため、違和感を持ちにくいからである。
 また、サーバ装置1は、フレームfr1の送信前の一定期間にマウス操作op2を受信していた場合に、受信した操作イベントのイベント数は少ない(1)。しかし、既知の帯域制御により、フレームfr2のデータ量またはネットワーク3の帯域から、送信時間が長くかかると予測された場合は、サーバ装置1は、イベント数が少なくても、フレームfr2の送信を抑止する制御を行う。
 以上のように、サーバ装置1は、帯域制御において、必要な画像データを確実に送信し、以降の送信において遅延の影響を及ぼさないように送信を制御している。
 図4は、サーバ装置1の一実施例におけるブロック構成例を示す図である。
 サーバ装置1は、操作データ受信部11、操作イベント発生部12、操作イベント格納部13、画像更新検知部14、前フレームバッファ141、画像圧縮部15、圧縮情報記憶部16、送信制御部17、画像データ送信部18、及びネットワーク情報記憶部19を備える。
 操作データ受信部11は、クライアント装置2で発生された操作データを受信する。
 操作イベント発生部12は、操作データ受信部11が操作データを受信する度に、受信した操作データにもとづいて操作イベントを発生させ、OS(Operating System)100が管理する入出力ドライバ101に通知するともに、操作イベント格納部13に格納する。
 操作イベント格納部13は、操作イベント発生部12が発生させた操作イベントを記憶する。
 画像更新検知部14は、OS100が管理するタイマ102のタイマシグナルにより、グラフィックドライバ103が管理するフレームバッファ104からフレームデータ(デスクトップ画面)を取得し、前フレームバッファ141に保持していた前回取得したフレームデータと、今回取得したフレームデータとを比較し、データが更新された領域(更新領域)を抽出する。さらに、次回処理のために、画像更新検知部14は、今回取得したフレームデータを前フレームバッファ141に格納する。
 画像圧縮部15は、画像更新検知部14が抽出したフレームデータの更新領域を画像圧縮して画像データを生成し、生成した画像データの送信データ量p(byte:バイト)を含む圧縮情報を、圧縮情報記憶部16に格納する。
 圧縮情報記憶部16は、画像圧縮部15の画像圧縮に関する圧縮情報を記憶する。
 送信制御部17は、画像データ送信部18による、送信間隔M(s:秒)毎の送信処理について帯域制御を行い、さらに、クライアント装置2から受信した操作イベント量に基づいて画像データの送信を抑止するか否かの送信制御を行う。
 より詳しくは、送信制御部17は、送信制御として、圧縮情報記憶部16に記憶された圧縮情報、後述するネットワーク情報記憶部19に記憶されたネットワーク情報、及び、操作イベント格納部13に記憶されている操作イベント数をもとに、判定用時刻tを計算する。そして、送信制御部17は、送信間隔M毎の送信処理において、今回の送信時を示す送信時刻tnowとして現在時刻を取得し、判定用時刻tと送信時刻tnowとを比較する。送信制御部17は、判定用時刻tが送信時刻tnowより遅い(値が越えている)場合に、今回の送信を抑止する制御を行う。また、送信制御部17は、判定用時刻tが送信時刻tnowより早い(値が以下である)場合に、今回の送信を実行する制御を行い、操作イベント格納部13に記憶されている操作イベントをクリアする。
 より具体的には、送信制御部17は、圧縮情報記憶部16に記憶されている圧縮情報に含まれる送信データ量p(byte)、ネットワーク情報記憶部19に記憶されているネットワーク情報に含まれる帯域X(bps:ビット/秒)及びクライアント装置2が受信した画像データの消失率q(0≦p<1)、操作イベント格納部13に記憶されている操作イベントのイベント数nを用いた以下の式で判定用時刻tを計算する。
 t=t+f(n)*min(p(1+q)/(X/8),M)
 上記の式の前送信時刻tは、送信制御部17が、1つ前の制御において送信時刻として取得した時刻(その時点での現在時刻tnow)である。f(n)は、イベント数nに基づく単調増大関数f(n)であって、1≦f(n)<3nの値をとる。
 上記式によれば、操作イベント格納部13に操作イベントが格納されていない場合(イベント数n=0)に単調増大関数f(n)=1となるため、操作イベントのイベント数は、画像データの送信制御に反映されない。しかし、操作イベント格納部13に操作イベントが格納されている場合(イベント数n<1)に、イベント数nが判定用時刻tを増大させるため、操作イベント数が画像データの送信制御に反映される。
 画像データ送信部18は、送信制御部17の制御にもとづいて、ネットワーク3を経由したRPS送信により画像データをクライアント装置2へ送信する。さらに、画像データ送信部18は、クライアント装置2からの受信応答を取得し、受信応答に含まれる送信時刻、受信時刻、受信した画像データのデータ量にもとづいて得られたネットワーク情報(帯域X、消失率q)をネットワーク情報記憶部19に保存する。
 以上のように、送信制御部17が、イベント数nの単調増大関数f(n)を含む式による判定用時刻tの計算を実行する構成をとることによって、サーバ装置1は、一定期間内にクライアント装置2から受信した操作イベント数を考慮した画像データの送信制御を、簡易な計算処理によって実現することができる。
 図5は、クライアント装置2の一実施例におけるブロック構成例を示す図である。
 クライアント装置2は、入力装置21、表示装置22の他、操作イベント発生部23、操作データ送信部24、画像データ受信部25、画像表示部26を備える。
 操作イベント発生部23は、入力装置21のユーザ操作に基づいて操作イベントを発生させる。
 操作データ送信部24は、発生した操作イベントを示す操作データを、ネットワーク3を経由してサーバ装置1へ送信する。
 画像データ受信部25は、サーバ装置1がRPS送信により送信した画像データの送信パケットを受信し、受信した送信パケットをもとに完全な画像データを復元する。
 画像表示部26は、画像データをもとに画像フレームデータを再現し、表示装置22に表示する。
 次に、サーバ装置1及びクライアント装置2での処理の流れを説明する。
 サーバ装置1では、操作データ処理として、以下の処理を行う。
 図6は、サーバ装置1における操作データ処理の処理フロー例を示す図である。
 操作データ受信部11は、クライアント装置2から操作データを受信する(ステップS1)。操作イベント発生部12は、受信した操作データから操作の種別を判定する(ステップS2)。イベントの種別がマウスイベントであれば(ステップS2の“マウス”)、操作イベント発生部12は、マウスイベントを発生させて、発生させたマウスイベントを入出力ドライバ101に通知し、さらに操作イベント格納部13に格納する(ステップS3)。イベントの種別がキーボードイベントであれば(ステップS2の“キーボード”)、操作イベント発生部12は、キーボードイベントを発生させて、発生させたキーボードイベントを入出力ドライバ101に通知し、さらに操作イベント格納部13に格納する(ステップS4)。
 この操作データ処理により、操作イベント格納部13には、クライアント装置2で発生した操作イベントが順次蓄積される。
 サーバ装置1では、画像データ処理として、以下の処理を行う。
 図7は、サーバ装置1の画像データ取得処理の処理フロー例を示す図である。
 サーバ装置1では、図7のステップS11~S15の処理が繰り返し実行され、クライアント装置2へ送信される画像データとなるデータが取得される。
 画像更新検知部14は、タイマ102からタイマシグナルを受信すると(ステップS11)、フレームバッファ104に格納されたフレームデータ(デスクトップ画面)を取得する(ステップS12)。そして、画像更新検知部14は、前フレームバッファ141に格納された1つ前の取得処理で得た前フレームデータと今回の処理で得たフレームデータとを比較し、データが異なる領域を更新領域として抽出する(ステップS13)。さらに、画像更新検知部14は、今回の処理で得たフレームデータを前フレームデータとして前フレームバッファ141に保存し(ステップS14)、タイマ102に、次のタイマシグナルを依頼する(ステップS15)。
 図8は、サーバ装置1の画像データ送信処理の処理フロー例を示す図である。
 サーバ装置1では、所定の送信間隔Mの経過毎に図8のステップS21~S27の処理が実行され、画像データが送信される。
 画像圧縮部15は、画像更新検知部14が抽出したフレームデータの更新領域のデータに対して圧縮処理を行い、送信対象となる画像データを生成し、圧縮情報として、圧縮処理後のデータ量p(byte)を圧縮情報記憶部16に保存する(ステップS21)。送信制御部17は、ネットワーク情報記憶部19から、ネットワーク情報の帯域X(bps)、消失率q(0≦q<1)を取得する(ステップS22)。
 さらに、送信制御部17は、今回の送信時刻tnowをとして現時刻を取得し、式“t=t+f(n)*min(p(1+q)/(X/8),M)”により、判定用時刻tを計算する(ステップS23)。判定用時刻tが送信時刻tnowより早い(t≦tnow)場合に、送信制御部17は、送信実行と判定する(ステップS24のY)。画像データ送信部18は、送信制御部17の送信実行を受け付けて、画像データをクライアント装置2へ送信する(ステップS25)。その後、送信制御部17は、送信時刻tnowを前送信時刻tに書き込み(ステップS26)、操作イベント格納部13に格納されている操作イベントをクリアして(ステップS27)、処理を終了する。
 一方、判定用時刻tが送信時刻tnowより早い(t≦tnow)時刻でない場合に、送信制御部17は、送信抑止と判定して(ステップS24のN)、処理を終了する。この場合に、画像データ送信部18は、送信制御部17の送信実行を受け付けないため、画像データの送信は行われない。
 次に、クライアント装置2の処理を説明する。
 クライアント装置2では、操作イベント発生部23が、入力装置21によりポインティング位置の移動、入力、選択等を検出し、検出した操作を示す操作イベントを発生させる。そして、操作データ送信部24は、操作イベントが発生する度に、発生した操作イベントの種別及び操作内容を示す操作データを、ネットワーク3を経由してサーバ装置1へTCP送信する。
 また、画像データ受信部25が、サーバ装置1から画像データを受信し、フレームデータに復号する。画像表示部26が、復号されたフレームデータを表示装置22へ表示する。
 なお、クライアント装置2の処理は、既知の処理により実施するものであるので、処理についての詳細説明を省略する。
 以上説明した本実施例における処理では、サーバ装置1は、クライアント装置2への画像データの送信をRPS通信により行うものとしたが、通信方式は、これに限定されるものではない。サーバ装置1の画像データ送信部18は、RPS通信の代わりに、TCP(Transmission Control Protocol)通信、または、UDP通信によって画像データの送信を行うように構成されてもよい。
 TCP通信及びUDP通信については既知の処理であり、詳細な説明を省略するが、画像データ送信部18が、TCP通信により画像データを送信する場合には、判定用時刻tを計算する式において、予め、消失率qが“0”に、帯域Xが任意の固定値に設定されているものとする。また、画像データ送信部18が、UDP通信により画像データを送信する場合には、判定用時刻tを計算する式において、予め、消失率qが“0”または任意の固定値に、帯域Xが任意の固定値に、それぞれ設定されているものとする。これらの実施例の場合にも、帯域X、消失率qが、ネットワーク情報記憶部19に記憶される。
 本実施例におけるサーバ装置1及びクライアント装置2は、コンピュータとして実施することができる。図9は、上記のサーバ装置1及びクライアント装置2のハードウェア構成の一例を示す図である。
 コンピュータ200は、例えば、演算装置(CPU:Central Processing Unit)201、主記憶装置202、補助記憶装置203、駆動装置204、インタフェース装置205、ネットワーク接続装置206、入力装置207、出力装置208などを備え、これらの各装置がバスBに接続されている構成である。
 演算装置201は、コンピュータ200の全体を制御し、主記憶装置202に格納されたプログラムに従ってサーバ装置1に関する機能を実現する。主記憶装置202は、CPU101に実行させるOSのプログラム、アプリケーションプログラム、データ等を補助記憶装置203から読み出して格納する。補助記憶装置203は、プログラム及び処理に必要なデータ等も格納する。
 プログラムが記録された記録媒体が駆動装置204にセットされることにより、プログラムが、駆動装置204を介して補助記憶装置203にインストールされる。記録媒体は、例えば、FD(フレキシブルディスク)、CD-ROM、DVD、光磁気ディスクなどの媒体である。なお、プログラムのインストールは必ずしも記録媒体により行う必要はなく、ネットワークを経由して他のコンピュータによりダウンロードすることができる。
 インタフェース装置205は、ネットワークに接続するためのものであり、他のコンピュータとプログラムやデータの送受信を行う。入力装置207は、操作指示を入力するためのものであり、例えばキーボード、マウス、タッチパネルなどである。出力装置208は、プログラムによるGUI(Graphical User Interface)等を表示するものであり、例えばディスプレイなどである。
 サーバ装置1及びクライアント装置2は、ハードウェアとして実施することができるだけでなく、コンピュータのソフトウェアとしても実施することができる。
 例えば、図4に示した操作データ受信部11、操作イベント発生部12、画像更新検知部14、画像圧縮部15、送信制御部17、画像データ送信部18の機能をコンピュータに実行させるプログラムを作成し、当該プログラムをコンピュータ200の主記憶装置202に読み込ませて実行させることによって、サーバ装置1を実現することができる。また、図5に示した操作イベント発生部23、操作データ送信部24、画像データ受信部25、画像表示部26の機能をコンピュータに実行させるプログラムを作成し、当該プログラムをコンピュータ200の主記憶装置202に読み込ませて実行させることによって、クライアント装置2を実現することができる。
 サーバ装置1を実現するプログラムは、CD-ROM、CD-RW、DVD-R、DVD-RAM、DVD-RW等やフレキシブルディスク等の記録媒体だけでなく、通信回線の先に備えられた他の記憶装置やコンピュータのハードディスク等の記憶装置に記憶されるものであってもよい。
 また、サーバ装置1及びクライアント装置2を構成する要素は、任意の組合せで実現されてよい。複数の構成要素が1つの部材として実現されてもよく、1つの構成要素が複数の部材から構成されてもよい。
 さらに、サーバ装置1及びクライアント装置2は、上述した実施形態に限定されず、本発明の要旨を逸脱しない範囲において、各種の改良および変更を行ってもよいことは当然である。
 以上説明したように、本発明によれば、画像送信側が、画像データを送信するネットワークの状態やデータ量だけでなく、画像受信側で発生した操作イベントを考慮して効率的な送信を実現することが可能となる。
 よって、画像受信側のクライアント装置では、例えばデスクトップ画面の更新がよりスムーズに行われるため、ユーザがリモート操作における違和感を持ちにくい環境を提供することができる。
 1 サーバ装置
 11 操作データ受信部
 12 操作イベント発生部
 13 操作イベント格納部
 14 画像更新検知部
 141 前フレームバッファ
 15 画像圧縮部
 16 圧縮情報記憶部
 17 送信制御部
 18 画像データ送信部
 19 ネットワーク情報記憶部
 2 クライアント装置
 21 入力装置
 22 表示装置
 23 操作イベント発生部
 24 操作データ送信部
 25 画像データ受信部
 26 画像表示部
 3 ネットワーク

Claims (4)

  1.  画像送信装置が画像データを画像受信装置へ送信する方法において、
     前記画像送信装置が、
     前記画像受信装置で発生した操作イベントをネットワーク経由で受信し、
     予め定められた送信間隔にもとづく送信の制御において、前記画像受信装置へ送信する画像データの送信データ量、該画像データを送信するネットワークに関する情報、及び直前の送信時から該画像データの送信をする時点までに受信していた前記操作イベントのイベント数をもとに、該画像データの判定用時刻を計算し、前記画像データの送信をする時点を示す送信時刻と前記判定用時刻とを比較し、前記判定用時刻が前記送信時刻を超えて後である場合に、前記画像データの送信を抑止する、処理を実行する
     ことを特徴とする画像送信方法。
  2.  前記画像送信装置が、
     前記画像データの送信を実行した場合に前記画像受信装置から受信した応答情報に含まれる前記ネットワークの帯域及び前記画像データの消失率を取得し、
     前記判定用時刻を計算する際に、前記ネットワーク情報として前記帯域及び前記消失率を用いる
     ことを特徴とする請求項1に記載の画像送信方法。
  3.  コンピュータに、画像データを画像受信装置へ送信させる処理を実行させるための画像送信プログラムにおいて、
     前記コンピュータに、
     画像受信装置で発生した操作イベントをネットワーク経由で受信し、
     予め定められた送信間隔にもとづく送信の制御において、前記画像受信装置へ送信する画像データの送信データ量、該画像データを送信するネットワークに関する情報、及び直前の送信時から該画像データの送信をする時点までに受信していた前記操作イベントのイベント数をもとに、該画像データの判定用時刻を計算し、前記画像データの送信をする時点を示す送信時刻と前記判定用時刻とを比較し、前記判定用時刻が前記送信時刻を超えて後である場合に、前記画像データの送信を抑止する、処理を実行させる
     ことを特徴とする画像送信プログラム。
  4.  画像データを画像受信装置へ送信する画像送信装置であって、
     画像データを取得する画像更新検知部と、
     予め定められた送信間隔毎に前記画像データを画像受信装置へ送信する画像送信部と、
     前記画像受信装置で発生した操作イベントをネットワーク経由で受信する操作イベント受信部と、
     前記受信した操作イベントを保持する操作イベント格納部と、
     前記送信間隔にもとづく送信の制御において、前記画像受信装置へ送信する画像データの送信データ量、該画像データを送信するネットワークに関する情報、及び直前の送信時から該画像データの送信をする時点までに受信していた前記操作イベントのイベント数をもとに、該画像データの判定用時刻を計算し、前記画像データの送信をする時点を示す送信時刻と前記判定用時刻とを比較し、前記判定用時刻が前記送信時刻を超えて後である場合に、前記画像データの送信を抑止する送信制御部とを備える
     ことを特徴とする画像送信装置。
     
PCT/JP2012/055319 2012-03-02 2012-03-02 画像送信方法、プログラム、及び装置 WO2013128623A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2014501921A JP5780353B2 (ja) 2012-03-02 2012-03-02 画像送信方法、プログラム、及び装置
EP12870009.3A EP2821920A4 (en) 2012-03-02 2012-03-02 IMAGE TRANSMISSION METHOD, PROGRAM, AND DEVICE
PCT/JP2012/055319 WO2013128623A1 (ja) 2012-03-02 2012-03-02 画像送信方法、プログラム、及び装置
CN201280071083.2A CN104145253B (zh) 2012-03-02 2012-03-02 图像发送方法、以及装置
US14/468,423 US9705956B2 (en) 2012-03-02 2014-08-26 Image transmitting method, program and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/055319 WO2013128623A1 (ja) 2012-03-02 2012-03-02 画像送信方法、プログラム、及び装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/468,423 Continuation US9705956B2 (en) 2012-03-02 2014-08-26 Image transmitting method, program and apparatus

Publications (1)

Publication Number Publication Date
WO2013128623A1 true WO2013128623A1 (ja) 2013-09-06

Family

ID=49081867

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/055319 WO2013128623A1 (ja) 2012-03-02 2012-03-02 画像送信方法、プログラム、及び装置

Country Status (5)

Country Link
US (1) US9705956B2 (ja)
EP (1) EP2821920A4 (ja)
JP (1) JP5780353B2 (ja)
CN (1) CN104145253B (ja)
WO (1) WO2013128623A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015069240A (ja) * 2013-09-26 2015-04-13 富士通株式会社 情報処理装置、情報処理方法および情報処理プログラム
JP2015106378A (ja) * 2013-12-02 2015-06-08 富士通株式会社 画像表示制御プログラム、情報処理システム、及び画像表示制御方法
JP2018022998A (ja) * 2016-08-03 2018-02-08 富士通株式会社 情報処理装置、クライアント端末、情報処理方法、及び、情報処理プログラム
WO2022181137A1 (ja) * 2021-02-26 2022-09-01 ヤンマーホールディングス株式会社 報知制御方法、作業機械、管理システム、管理プログラム

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3993377A4 (en) * 2019-06-28 2023-07-05 KYOCERA Document Solutions Inc. TASK PROCESSING SYSTEM
CN113395302B (zh) * 2020-03-11 2022-04-26 杭州中天微系统有限公司 异步数据分发器、相关装置和方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006254383A (ja) 2005-03-14 2006-09-21 Fujitsu Ltd 通信制御システムおよび通信制御方法
JP2007251737A (ja) 2006-03-17 2007-09-27 Fujitsu Ltd データ転送方法及び,これを適用する通信システム及びプログラム
JP2007265207A (ja) * 2006-03-29 2007-10-11 Casio Comput Co Ltd コンピュータシステムにおけるサーバ装置及びサーバ制御プログラム
JP2008289030A (ja) * 2007-05-21 2008-11-27 Nec Corp 画面描画転送システム
JP2009054096A (ja) * 2007-08-29 2009-03-12 Casio Comput Co Ltd サーバ装置およびサーバ処理プログラム
JP2011053960A (ja) * 2009-09-02 2011-03-17 Casio Computer Co Ltd サーバベース・コンピューティング・システムのサーバ装置およびサーバ制御プログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8171169B2 (en) * 2005-03-14 2012-05-01 Citrix Systems, Inc. Method and apparatus for updating a graphical display in a distributed processing environment
JP5140978B2 (ja) * 2006-09-26 2013-02-13 カシオ計算機株式会社 クライアント装置およびプログラム
JP4883801B2 (ja) 2007-08-14 2012-02-22 キヤノン株式会社 通信制御装置、通信制御方法、及びコンピュータプログラム
EP2237526A1 (en) * 2009-03-30 2010-10-06 NEC Corporation Method for optimizing the remote display transfer in thin client computing environment

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006254383A (ja) 2005-03-14 2006-09-21 Fujitsu Ltd 通信制御システムおよび通信制御方法
JP2007251737A (ja) 2006-03-17 2007-09-27 Fujitsu Ltd データ転送方法及び,これを適用する通信システム及びプログラム
JP2007265207A (ja) * 2006-03-29 2007-10-11 Casio Comput Co Ltd コンピュータシステムにおけるサーバ装置及びサーバ制御プログラム
JP2008289030A (ja) * 2007-05-21 2008-11-27 Nec Corp 画面描画転送システム
JP2009054096A (ja) * 2007-08-29 2009-03-12 Casio Comput Co Ltd サーバ装置およびサーバ処理プログラム
JP2011053960A (ja) * 2009-09-02 2011-03-17 Casio Computer Co Ltd サーバベース・コンピューティング・システムのサーバ装置およびサーバ制御プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP2821920A4

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015069240A (ja) * 2013-09-26 2015-04-13 富士通株式会社 情報処理装置、情報処理方法および情報処理プログラム
JP2015106378A (ja) * 2013-12-02 2015-06-08 富士通株式会社 画像表示制御プログラム、情報処理システム、及び画像表示制御方法
JP2018022998A (ja) * 2016-08-03 2018-02-08 富士通株式会社 情報処理装置、クライアント端末、情報処理方法、及び、情報処理プログラム
WO2022181137A1 (ja) * 2021-02-26 2022-09-01 ヤンマーホールディングス株式会社 報知制御方法、作業機械、管理システム、管理プログラム

Also Published As

Publication number Publication date
EP2821920A1 (en) 2015-01-07
US20150026299A1 (en) 2015-01-22
EP2821920A4 (en) 2015-03-25
CN104145253A (zh) 2014-11-12
JP5780353B2 (ja) 2015-09-16
CN104145253B (zh) 2017-03-15
JPWO2013128623A1 (ja) 2015-07-30
US9705956B2 (en) 2017-07-11

Similar Documents

Publication Publication Date Title
JP5780353B2 (ja) 画像送信方法、プログラム、及び装置
EP2912546B1 (en) Performance enhancement in virtual desktop infrastructure (vdi)
US20060026294A1 (en) Media transrating over a bandwidth-limited network
CN109819322A (zh) 视频传输方法、装置、计算机可读存储介质及电子设备
CN111221491A (zh) 交互控制方法及装置、电子设备、存储介质
US20080267067A1 (en) Controlling the flow of data updates between a receiving station and a sending station
JP5084362B2 (ja) データ送信装置、及びデータ送受信システム
KR20120082434A (ko) 짧은 대기 시간의 전송 프로토콜을 위한 방법 및 시스템
US20110299588A1 (en) Rate control in video communication via virtual transmission buffer
WO2014054325A1 (ja) 符号化制御装置および符号化制御方法
KR101942270B1 (ko) 재생 지연 방지 시스템을 포함하는 미디어 재생 장치 및 방법
JP2009284500A (ja) 画像伝送装置
CN108337246B (zh) 防止重放延迟的媒体重放设备和媒体服务设备
US20070127437A1 (en) Medium signal transmission method, reception method, transmission/reception method, and device
US10925014B2 (en) Method and apparatus for synchronization in a network
JP2014075735A (ja) 画像処理装置および画像処理方法
JP4909590B2 (ja) メディア信号の受信装置、送信装置及び送受信システム
CN112737971B (zh) 数据处理方法、装置、存储介质及网络设备
CN110798700B (zh) 视频处理方法、视频处理装置、存储介质与电子设备
JP4232553B2 (ja) 通信装置、その方法およびプログラム
JP5407479B2 (ja) 画像伝送システム、画像伝送装置、クライアント端末、画像伝送方法、及び、画像伝送プログラム
JP5651872B2 (ja) 受信装置、スクリーンフレーム伝送システムと方法
JP4541758B2 (ja) 画像伝送装置
CN114501083A (zh) 码率调节方法、装置、设备、介质及程序产品
CN114025233A (zh) 数据处理方法及装置、电子设备、存储介质

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: 12870009

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2014501921

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 2012870009

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE