WO2022201221A1 - 通信システム、通信方法、サーバ、クライアント端末、および、プログラム - Google Patents

通信システム、通信方法、サーバ、クライアント端末、および、プログラム Download PDF

Info

Publication number
WO2022201221A1
WO2022201221A1 PCT/JP2021/011614 JP2021011614W WO2022201221A1 WO 2022201221 A1 WO2022201221 A1 WO 2022201221A1 JP 2021011614 W JP2021011614 W JP 2021011614W WO 2022201221 A1 WO2022201221 A1 WO 2022201221A1
Authority
WO
WIPO (PCT)
Prior art keywords
chunk
video data
transmission interval
input information
loss
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
Application number
PCT/JP2021/011614
Other languages
English (en)
French (fr)
Inventor
みづき 池谷
圭 藤本
奨悟 斎藤
哲朗 中村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NTT Inc
Original Assignee
Nippon Telegraph and Telephone Corp
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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to PCT/JP2021/011614 priority Critical patent/WO2022201221A1/ja
Priority to US18/283,409 priority patent/US12363362B2/en
Priority to JP2023508146A priority patent/JP7452753B2/ja
Publication of WO2022201221A1 publication Critical patent/WO2022201221A1/ja
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2407Monitoring of transmitted content, e.g. distribution time, number of downloads
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/438Interfacing the downstream path of the transmission network originating from a server, e.g. retrieving encoded video stream packets from an IP network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments

Definitions

  • the present invention relates to a communication system, communication method, server, client terminal, and program for offloading heavy load processing to a remote server in a network.
  • VR Virtual Reality
  • HMD Head Mounted Display
  • PC Personal Computer
  • the image in the line-of-sight direction is rendered and drawn in real time based on the line-of-sight information measured by the HMD.
  • the amount of calculation of the processing is large, and a high-performance processor or a dedicated accelerator (for example, GPU (Graphics Processing Unit), etc.) is required.
  • a PC or a stationary game machine equipped with a high-performance processor or a dedicated accelerator (GPU, etc.) is prepared and installed at home.
  • a method is adopted in which the media processing with a large processing load is calculated with the help of the machine power, and the calculation result is projected on the HMD side.
  • the present invention has been made in view of these points, and it is an object of the present invention to reduce the processing load on the client system and eliminate the need for the user to have a high-performance processor or a dedicated accelerator. .
  • a communication system is a communication system in which a server-side system and a client-side system are connected for communication via a network.
  • An information receiving unit that receives an input information packet containing a lost chunk number, which is the number of a lost chunk, from the client-side system from the received video data, and performs video rendering processing according to the received input information,
  • a video processing unit that generates video data, a chunking function unit that chunks the generated video data according to the size of the MTU (Maximum Transmission Unit), and assigns a number to each chunk representing the chunked video data.
  • MTU Maximum Transmission Unit
  • a chunk loss rate is calculated using the number of packets in which the chunked video data is transmitted and the total number of lost chunks indicated by the loss chunk number, and the calculated chunk loss rate and a preset maximum allowable a chunk loss determination unit that determines a transmission interval of packets containing the chunked video data based on a predetermined transmission interval determination logic that determines a transmission interval by comparing the chunk loss rate; and the chunked video.
  • a transmission control unit that transmits each packet containing data to the client-side system at the determined transmission interval, wherein the client-side system acquires the input information; and the server-side system.
  • a chunk processing unit that receives each packet containing the chunked video data from, extracts the lost chunk number of the chunk included in the lost packet, and the received chunked video data using each of the video data.
  • a data output unit that decodes and outputs; and an input information transmission unit that transmits the input information and the input information packet including the extracted loss chunk number to the server-side system. system.
  • the present invention it is possible to reduce the processing load on the client system and eliminate the need for the user to have a high-performance processor or a dedicated accelerator.
  • FIG. 4 is a diagram showing a data configuration example of transmission interval chunk-loss correspondence information according to the present embodiment
  • FIG. 4 is a diagram showing an example of a packet (UDP packet) transmitted by the server according to the embodiment
  • FIG. 4 is a diagram showing an example of a packet (UDP packet) transmitted by a client terminal according to the embodiment
  • FIG. 4 is a sequence diagram showing the flow of processing (at the initial stage) of the communication system according to the embodiment
  • 4 is a sequence diagram showing the flow of processing of the communication system according to the embodiment
  • FIG. 2 is a hardware configuration diagram showing an example of a computer that implements functions of a server and a client terminal according to the present embodiment
  • this embodiment a mode for carrying out the present invention (hereinafter referred to as "this embodiment") will be described. First, the outline of the present invention will be explained.
  • a communication system receives input information such as line of sight from an HMD from a client (“client-side system 20” in FIG. 1 to be described later) to a network (NW).
  • a server in a remote location such as a DC (data center) ("server-side system 10" in FIG. 1, which will be described later) renders the video, and transmits the video data to the client via the NW. This reduces power consumption and computational load on the client side.
  • the client may be composed of, for example, a dedicated terminal such as an HMD, or may be composed of a system including a dedicated terminal such as an HMD and a PC connected to the dedicated terminal.
  • this communication system uses uncompressed video data for NW communication. Specifically, the video data is chopped (chunked) for each frame according to MTU (Maximum Transmission Unit), which is the maximum data size that can be transmitted in one time on the NW. This fragmented data block is called a chunk, and in this communication system, chunk loss and delay are suppressed by controlling the transmission interval of this chunk according to the chunk loss rate of video data.
  • MTU Maximum Transmission Unit
  • FIG. 1 is a diagram showing the overall configuration of a communication system 1 according to this embodiment.
  • a communication system 1 according to this embodiment includes a server-side system 10 and a client-side system 20, which are connected for communication via a NW.
  • the client-side system 20 may be composed only of a dedicated terminal such as an HMD, as described above, or may be composed of a system including a dedicated terminal such as an HMD and a PC connected to the dedicated terminal. However, the client terminal 20 as a dedicated terminal will be described below.
  • the client terminal 20 acquires video data 400, which is the result of rendering processing performed on the server side, by transmitting input information 300, such as line of sight from the HMD, to the server 10 via the NW. It has a function of displaying on a display device.
  • the server-side system 10 is composed of one or more servers in a DC (data center).
  • each functional unit in the control unit 11 to be described later may be provided in a separate server and configured as a system composed of a plurality of servers. A description will be given assuming that the part is provided.
  • This server 10 acquires input information 300 such as line of sight from a client-side system (client terminal) 20, performs image rendering processing according to the input information 300 to generate image data, and renders image data to the client via the NW. It transmits to the side system (client terminal) 20 . At this time, the server 10 chunks the video data 400 , controls (determines) the packet transmission interval, and transmits the data to the client-side system (client terminal) 20 .
  • the communication system 1 can reduce the power consumption and calculation load of the client-side system (client terminal) 20 by performing rendering processing and the like in the server-side system (server) 10 .
  • the communication system 1 controls the transmission interval of packets to which the chunked video data 400 is attached, thereby preventing packets caused by burst traffic generated due to the large data size when video data is transmitted without compression. It is possible to avoid losses, NW delays, and throughput degradation.
  • a server-side system (server) 10 and a client-side system (client terminal) 20, which constitute the communication system 1, will be specifically described below.
  • a server 10 according to the present embodiment will be described with reference to FIG.
  • the server 10 acquires input information 300 such as line of sight from the client terminal 20 , performs image rendering processing according to the input information 300 , and generates image data 400 . Then, the server 10 chunks the generated video data 400 , determines the packet transmission interval based on a predetermined logic regarding the chunk loss rate, and transmits the chunks to the client terminal 20 .
  • This server 10 includes a control unit 11 , an input/output unit 12 and a storage unit 13 .
  • the input/output unit 12 inputs and outputs information to and from the client terminal 20 and other devices. For example, the input/output unit 12 receives a packet to which the input information 300 is attached from the client terminal 20 and transmits a packet to which the chunked video data 400 is attached. The input/output unit 12 performs input/output of information between a communication interface that transmits and receives information via a communication line (NW) and an input device such as a keyboard (not shown) and an output device such as a monitor (not shown). interface.
  • NW communication line
  • the storage unit 13 is configured by a hard disk, flash memory, RAM (Random Access Memory), or the like.
  • Image data DB (DataBase) 100 and transmission interval chunk loss correspondence information 200 are stored in this storage unit 13 .
  • the image data DB 100 stores image data that is used as a material for images to be displayed on the display.
  • the transmission interval chunk loss correspondence information 200 is information indicating the chunk loss rate associated with each transmission interval of packets to which the chunked video data 400 is attached, and the details will be described later with reference to FIG.
  • the storage unit 13 also temporarily stores a program for executing each function unit of the control unit 11 and information necessary for processing of the control unit 11 .
  • the control unit 11 controls overall processing executed by the server 10, and includes an information receiving unit 111, a video processing unit 112, a chunking function unit 113, a chunk loss determination unit 114, and a transmission control unit 115. Configured.
  • the information receiving unit 111 receives a packet to which input information 300 for rendering is attached (hereinafter referred to as an “input information packet”) from the client terminal 20 .
  • the information included in this input information packet may be only the input information 300 or may be accompanied by the chunk number of the lost chunk (hereinafter referred to as "lost chunk number") together with the input information 300 (details later).
  • the input information packet contains only the input information 300 and no loss chunk number is attached, it means that there was no packet loss at the initial stage.
  • the information receiving section 111 outputs the input information 300 attached to the received input information packet to the video processing section 112 . Also, information receiving section 111 outputs the information to chunk loss determination section 114 when a loss chunk number is attached to this input information packet.
  • the video processing unit 112 Based on the input information 300 received by the information receiving unit 111 , the video processing unit 112 refers to the image data DB 100 in the storage unit 13 and performs video rendering processing according to the input information 300 to generate video data 400 . The video processing unit 112 then outputs the generated video data 400 to the chunking function unit 113 .
  • the chunking function unit 113 performs chunking processing on the video data 400 acquired from the video processing unit 112 according to the size of the MTU. Note that the number of frames per second (for example, 60 fps) of the video data 400 is determined by a preset FPS (Frames per Second). become Then, the chunking function unit 113 assigns a chunk number to each chunk of data after chunking. The chunk numbers are assigned with a preset regularity so that the original video data 400 can be restored by arranging them in numerical order.
  • FPS Fres per Second
  • the chunk loss determining unit 114 determines the chunk loss rate based on the lost chunk number obtained from the information receiving unit 111 and the number of packets counted by the transmission control unit 115 when transmitting the chunked video data 400 to the client terminal 20. calculate. Specifically, the chunk loss determining unit 114 calculates the chunk loss rate by dividing the total number of lost chunks indicated by the lost chunk number by the number of packets counted at the time of transmission. Then, the chunk loss determination unit 114 associates the calculated chunk loss rate with the transmission interval of the packets when the packets transmitted by the transmission control unit 115 are counted, and stores the calculated chunk loss ratio in the transmission interval chunk loss correspondence information in the storage unit 13. 200 (FIG. 2).
  • the chunk loss determining unit 114 determines the packet transmission interval for transmitting the chunked video data 400 using a predetermined logic based on the calculated chunk loss rate (hereinafter referred to as "transmission interval determination logic"). do.
  • the maximum allowable chunk loss rate is set in advance in the chunk loss determination unit 114 by, for example, the administrator of the communication system 1 when determining the transmission interval based on the transmission interval determination logic.
  • the chunk loss determination unit 114 can grasp the congestion occurrence situation in the NW by receiving information (congestion information) indicating the congestion occurrence situation in the NW from a network monitoring device or the like.
  • the transmission interval determination logic will be described in detail below.
  • the chunk loss determining unit 114 determines the packet transmission interval based on the following [Logic A] during the initial operation of the system and during normal times when congestion does not occur within the NW. Note that the chunk loss determination unit 114 determines that it is a normal time, for example, by not receiving NW congestion information. Also, when determining the packet transmission interval at the initial time (first time), the chunk loss determination unit 114 transmits packets at a preset predetermined initial packet transmission interval.
  • the chunk loss determining unit 114 determines the packet transmission interval based on [Logic B] below. Note that the chunk loss determining unit 114 determines that congestion is occurring in the NW, for example, by receiving congestion information from a NW management device or the like. Further, the chunk loss determination unit 114, for example, by receiving congestion information at predetermined time intervals, determines that the congestion state continues, stops receiving congestion information at predetermined time intervals, and If the congestion information is not received until the time elapses, it is determined that the congestion state has been resolved and the normal state has returned. Congestion in the NW may occur, for example, in a server or in a network device such as an L2SW. Also, when congestion occurs, the chunk loss determination unit 114 determines the packet transmission interval by referring to the transmission interval chunk loss correspondence information 200 (FIG. 2).
  • FIG. 2 is a diagram showing a data configuration example of the transmission interval chunk loss correspondence information 200 according to this embodiment.
  • the chunk loss determination unit 114 stores the chunk loss rate in the transmission interval chunk loss correspondence information 200 in association with the packet transmission interval. For example, when the transmission interval is "100 ( ⁇ s)", the chunk loss rate is "0 (%)”. When the transmission interval is "90 ( ⁇ s)", the chunk loss rate is "5 (%)”.
  • the value of this transmission interval chunk loss correspondence information 200 is information updated each time the chunk loss determination unit 114 calculates the chunk loss rate of packets transmitted to the client terminal 20 .
  • the chunk loss determination unit 114 sets the transmission interval corresponding to the chunk loss rate of 0, or the transmission interval corresponding to the chunk loss rate closest to 0 if there is no 0. Furthermore, even when packets are transmitted in the longest transmission interval indicated by the transmission interval chunk loss correspondence information 200, if the chunk loss rate (R_LOSS) exceeds the maximum allowable chunk loss rate (MAX_LOSS), the maximum The packet transmission interval may be determined by lengthening the packet transmission interval by a predetermined constant (a3) to the long transmission interval.
  • Chunk loss rate (R_LOSS) ⁇ Maximum allowable chunk loss rate (MAX_LOSS)
  • the packet transmission interval with the shortest value is set while the chunk loss rate does not exceed the maximum allowable chunk loss rate. For example, if the maximum allowable chunk loss rate is "12 (%)", the current transmission interval is "90 ( ⁇ s)”, and the chunk loss rate is "5 (%)”, the chunk loss rate is The transmission interval is set to “85 ( ⁇ s)” which is “10 (%)”.
  • the chunk loss determination unit 114 determines that the congestion in the NW has been resolved due to the stop of receiving the congestion information, etc.
  • the transmission interval chunk loss correspondence information 200 (FIG. 2) is updated after the congestion occurs. Correspondence information between the transmission interval and the chunk loss rate is discarded as an outlier. By doing so, the chunk loss determination unit 114 can determine the transmission interval corresponding to the normal time when congestion does not occur.
  • the transmission control unit 115 uses the packet transmission interval information determined by the chunk loss determination unit 114 to execute transmission processing of the chunked video data 400 .
  • the transmission control unit 115 creates a socket, specifies the destination IP address in the IP header, specifies the UDP port number, and then chunks in the payload part.
  • the converted video data 400 is stored, a UDP packet is generated, and the packet is transmitted to the client terminal 20 .
  • the transmission control unit 115 stores the packet (UDP packet) transmission interval in the transmission interval chunk loss correspondence information 200 .
  • the transmission control unit 115 counts the number of transmitted packets and stores it in the storage unit 13 .
  • the transmission interval and the number of packets are used by the chunk loss determination unit 114 to calculate the chunk loss rate and update the transmission interval chunk loss correspondence information 200 .
  • the server 10 controls the transmission interval of packets to which the chunked video data 400 is attached, so that the burst traffic caused by the large data size when the video data is transmitted without compression can be prevented. It is possible to avoid packet loss, NW delay, and decrease in throughput. Further, by performing rendering processing and the like in the server 10, the power consumption and calculation load of the client terminal 20 can be reduced.
  • a client terminal 20 for example, transmits input information such as the line of sight of the HMD to the server 10, thereby causing the server 10 to execute image rendering processing, which requires a large processing load, and receives the generated image data 400. and displayed on a display device such as a display.
  • the client terminal 20 receives the video data 400 from the server 10 as chunked video data 400 and transmits the chunk number of the lost chunk (loss chunk number) to the server 10 .
  • the client terminal 20 transmits the loss chunk number by including it in the input information packet that transmits the input information 300 .
  • the client terminal 20 may be any terminal other than the HMD as long as it displays video data in real time.
  • the client terminal 20 may be a terminal that provides services such as games using moving images.
  • the client terminal 20 includes a control section 21 , an input/output section 22 and a storage section 23 .
  • the input/output unit 22 inputs and outputs information to and from the server 10 and other devices. For example, the input/output unit 22 transmits an input information packet to which the input information 300 is attached, and receives a packet to which the chunked video data 400 is attached.
  • the input/output unit 22 includes a communication interface for transmitting and receiving information via a communication line (NW) and an input/output interface for inputting and outputting information between an output device such as a sensor device and a monitor (not shown). Configured.
  • the storage unit 23 is configured by a hard disk, flash memory, RAM, or the like.
  • the storage unit 23 temporarily stores a program for executing each function unit of the control unit 21 and information necessary for processing of the control unit 21 .
  • the control unit 21 controls overall processing executed by the client terminal 20, and includes an input information acquisition unit 211, a chunk processing unit 212, a data output unit 213, and an input information transmission unit 214.
  • the input information acquisition unit 211 receives information (input information 300 for rendering) from various sensors (a gaze tracking sensor, a triaxial acceleration sensor, a gyro sensor, etc.) provided in the client terminal 20, and inputs the input/output unit 22. to get through. Then, the input information acquiring section 211 outputs the acquired input information 300 to the input information transmitting section 214 .
  • various sensors a gaze tracking sensor, a triaxial acceleration sensor, a gyro sensor, etc.
  • the chunk processing unit 212 receives packets ( FIG. 3 ) to which chunked video data 400 are attached from the server 10 . Then, the chunk processing unit 212 arranges the chunks of each packet in the order of the chunk number, and extracts the chunk number of the lost chunk (loss chunk number). The chunk processing unit 212 outputs the loss chunk number to the input information transmitting unit 214 and also outputs the sorted video data 400 in chunk number order to the data output unit 213 .
  • the data output unit 213 decodes (restores) the video using the chunked video data 400 arranged in order of the chunk number, and displays it on a display device such as a display via the input/output unit 22 .
  • the input information transmission unit 214 includes the input information 300 acquired from the input information acquisition unit 211 and the loss chunk number acquired from the chunk processing unit 212 in one packet and transmits the packet to the server 10 .
  • the input information transmitting unit 214 creates a socket, designates the destination IP address in the IP header, designates the UDP port number, and puts , loss chunk number and input information 300 are stored, a UDP packet is generated, and transmitted to the server 10 .
  • the input information transmission unit 214 does not include the loss chunk number during the initial operation when the chunked video data 400 is not received, and when the chunk processing unit 212 does not extract the loss chunk number. Only 300 is included in the UDP packet and transmitted to the server 10 .
  • the client terminal 20 can display the video data 400 on a display device such as a display by decoding the chunked video data 400 . Also, the client terminal 20 can suppress the occurrence of delays due to hardware interrupts or the like by including the loss chunk number in a packet of the input information 300 (input information packet) instead of an independent packet.
  • 5 and 6 are sequence diagrams showing the flow of processing of the communication system 1 according to this embodiment.
  • the input information acquisition unit 211 of the client-side system (client terminal) 20 acquires input information 300 from various sensors and the like (step S1). Subsequently, the input information transmission unit 214 of the client terminal 20 generates a packet (input information packet) with the input information 300 attached, and transmits it to the server-side system (server) 10 (step S2).
  • the information receiving unit 111 of the server 10 receives the input information packet, it outputs the input information 300 attached to the packet to the video processing unit 112 (step S3).
  • the image processing unit 112 refers to the image data DB 100 in the storage unit 13, performs image rendering processing according to the input information 300, and generates image data 400 (step S4).
  • the chunking function unit 113 of the server 10 chunks the generated video data 400 for each frame according to the MTU size (step S5: chunking processing). Then, the chunking function unit 113 assigns a chunk number to each chunk of data after chunking (step S6).
  • the chunk loss determination unit 114 determines the initial transmission interval of the chunked video data 400 to be the preset initial packet transmission interval (step S7). Then, the transmission control unit 115 of the server 10 generates a packet including the chunked video data 400 and transmits it to the client terminal 20 at the initial packet transmission interval (step S8). At this time, the transmission control unit 115 counts the transmission interval determined as the initial packet transmission interval and the number of transmitted packets and stores them in the storage unit 13 .
  • the chunk processing unit 212 of the client terminal 20 receives the packets (FIG. 3) to which the chunked video data 400 is attached from the server 10, sorts the chunks of each packet in the order of the chunk number, and determines the chunk number of the lost chunk. (loss chunk number) is extracted (step S9). Then, the chunk processing unit 212 outputs the loss chunk number to the input information transmitting unit 214 and also outputs the sorted video data 400 in chunk number order to the data output unit 213 .
  • the data output unit 213 of the client terminal 20 decodes (restores) the video using the chunked video data 400 arranged in order of the chunk number, and displays it on a display device such as a display via the input/output unit 22 (step S10).
  • the above is the processing of the communication system 1 at the initial time.
  • the input information acquisition unit 211 of the client-side system (client terminal) 20 acquires input information 300 from various sensors and the like (step S11).
  • the input information transmission unit 214 of the client terminal 20 receives the input information 300 acquired by the input information acquisition unit 211 in step S11 and the loss chunk number extracted by the chunk processing unit 212 in step S9 of FIG.
  • a packet (input information packet (FIG. 4)) is generated and transmitted to the server-side system (server) 10 (step S12).
  • step S13 when the information receiving unit 111 of the server 10 receives the input information packet, the input information 300 attached to the input information packet is output to the video processing unit 112, and the loss chunk number is sent to the chunk loss determination unit 114. Output (step S13).
  • the video processing unit 112 refers to the image data DB 100 in the storage unit 13, performs video rendering processing according to the input information 300, and generates video data 400 (step S14).
  • the chunking function unit 113 of the server 10 chunks the generated video data 400 for each frame according to the MTU size (step S15: chunking processing). Then, the chunking function unit 113 assigns a chunk number to each chunk of data after chunking (step S16).
  • the chunk loss determination unit 114 of the server 10 calculates the chunk loss rate based on the lost chunk number acquired in step S13 and the number of packets counted by the transmission control unit 115 in step S8 of FIG. 5 (step S17). Subsequently, the chunk loss determination unit 114 associates the calculated chunk loss rate with the transmission interval at the time of transmission of the packet counted by the transmission control unit 115, and stores the transmission interval chunk loss correspondence information in the storage unit 13. 200 (FIG. 2) (step S18).
  • the chunk loss determination unit 114 determines packet transmission intervals for transmitting the chunked video data 400 using a predetermined logic (transmission interval determination logic) based on the calculated chunk loss rate (step S19). At this time, the chunk loss determination unit 114 compares the calculated chunk loss rate with the maximum allowable chunk loss rate based on the transmission interval determination logic ([logic A]), and controls increase or decrease of the packet transmission interval. In addition, the chunk loss determination unit 114 determines whether or not congestion has occurred in the NW by whether or not NW congestion information has been received from the NW management device or the like, and if congestion has occurred, The packet transmission interval for transmitting the chunked video data 400 is determined based on the transmission interval determination logic ([Logic B]) adapted to congestion.
  • the transmission interval determination logic [Logic B]
  • the transmission control unit 115 of the server 10 generates a packet containing the chunked video data 400 in step S15 and transmits it to the client terminal 20 at the packet transmission interval determined in step S19 (step S20). At this time, the transmission control unit 115 counts the transmission interval when the packets are transmitted and the number of transmitted packets and stores them in the storage unit 13 .
  • the chunk processing unit 212 of the client terminal 20 receives the packets (FIG. 3) to which the chunked video data 400 is attached from the server 10, sorts the chunks of each packet in order of the chunk number, and extracts the lost chunks. is extracted (step S21). Then, the chunk processing unit 212 outputs the loss chunk number to the input information transmitting unit 214 and also outputs the sorted video data 400 in chunk number order to the data output unit 213 .
  • the data output unit 213 of the client terminal 20 decodes (restores) the video using the chunked video data 400 arranged in order of the chunk number, and displays it on a display device such as a display via the input/output unit 22 (step S22). After that, the process from step S11 is repeated.
  • FIG. 7 is a hardware configuration diagram showing an example of a computer 900 that implements the functions of the server 10 and the client terminal 20 according to this embodiment.
  • the computer 900 includes a CPU (Central Processing Unit) 901, a ROM (Read Only Memory) 902, a RAM 903, a HDD (Hard Disk Drive) 904, an input/output I/F (Interface) 905, a communication I/F 906 and a media I/F 907. have.
  • CPU Central Processing Unit
  • ROM Read Only Memory
  • RAM 903 Random Access Memory
  • HDD Hard Disk Drive
  • I/F Interface
  • the CPU 901 operates based on programs stored in the ROM 902 or HDD 904, and performs control by the control units 11 and 21 (FIG. 1).
  • the ROM 902 stores a boot program executed by the CPU 901 when the computer 900 is started, a program related to the hardware of the computer 900, and the like.
  • the CPU 901 controls an input device 910 such as a mouse and keyboard, and an output device 911 such as a display and printer via an input/output I/F 905 .
  • the CPU 901 acquires data from the input device 910 and outputs the generated data to the output device 911 via the input/output I/F 905 .
  • the HDD 904 stores programs executed by the CPU 901 and data used by the programs.
  • Communication I/F 906 receives data from other devices via a communication network (for example, NW 920) and outputs the data to CPU 901, and transmits data generated by CPU 901 to other devices via the communication network. .
  • the media I/F 907 reads programs or data stored in the recording medium 912 and outputs them to the CPU 901 via the RAM 903 .
  • the CPU 901 loads a program related to target processing from the recording medium 912 onto the RAM 903 via the media I/F 907, and executes the loaded program.
  • the recording medium 912 is an optical recording medium such as a DVD (Digital Versatile Disc) or a PD (Phase change rewritable Disk), a magneto-optical recording medium such as an MO (Magneto Optical disk), a magnetic recording medium, a semiconductor memory, or the like.
  • the CPU 901 of the computer 900 implements the functions of the server 10 and the client terminal 20 by executing programs loaded on the RAM 903 .
  • Data in the RAM 903 is stored in the HDD 904 .
  • the CPU 901 reads a program related to target processing from the recording medium 912 and executes it.
  • the CPU 901 may read a program related to target processing from another device via the communication network (NW 920).
  • a communication system is a communication system 1 in which a server-side system 10 and a client-side system 20 are connected for communication via a network.
  • an information receiving unit 111 that receives an input information packet containing a lost chunk number, which is the number of a lost chunk in chunked video data, from a client-side system 20;
  • a video processing unit 112 that performs rendering processing and generates video data, and a chunking function that chunks the generated video data 400 according to the size of the MTU and assigns a number to each chunk representing the chunked video data 400.
  • the chunk loss rate is calculated using the unit 113, the number of packets that have transmitted the chunked video data 400, and the total number of lost chunks indicated by the loss chunk number, and the calculated chunk loss rate and the preset maximum
  • a chunk loss determination unit 114 that determines a transmission interval of packets including chunked video data based on a predetermined transmission interval determination logic that determines a transmission interval by comparing with an allowable chunk loss rate, and chunked video.
  • a transmission control unit 115 for transmitting each packet containing the data 400 to the client-side system 20 at a determined transmission interval;
  • a chunk processing unit 212 that receives each packet including chunked video data 400 from the system 10 and extracts the loss chunk number of the chunk included in the lost packet, and a video using each of the received chunked video data 400.
  • a data output unit 213 that decodes and outputs data 400, and an input information transmission unit 214 that transmits an input information packet including the input information 300 and the extracted loss chunk number to the server-side system 10.
  • the communication system 1 can reduce the power consumption and calculation load of the client-side system (client terminal) 20 by performing rendering processing and the like in the server-side system (server) 10 .
  • the communication system 1 controls the transmission interval of packets to which the chunked video data 400 is attached, so that the video data is transmitted without compression, and packet loss, NW delay, and throughput decrease due to the occurrence of burst traffic. can be avoided. Therefore, the processing load on the client-side system (client terminal) 20 can be reduced, and the need for a high-performance processor or dedicated accelerator on the user side can be eliminated.
  • the predetermined transmission interval determination logic lengthens the transmission interval by a predetermined first constant when the calculated chunk loss rate is greater than the maximum allowable chunk loss rate, and calculates the calculated chunk loss The transmission interval is shortened by a predetermined second constant when the rate is less than the maximum allowable chunk loss rate.
  • the server-side system (server) 10 of the communication system 1 lengthens the transmission interval when the calculated chunk loss rate is larger than the maximum allowable chunk loss rate by a predetermined transmission interval determination logic, and calculates The transmission interval can be shortened if the chunk loss rate is less than the maximum allowed chunk loss rate. Therefore, the communication system 1 repeats transmission interval determination using a predetermined transmission interval determination logic, thereby determining a more appropriate packet transmission interval within the range of the maximum allowable chunk loss rate or less.
  • the transmission control unit 115 stores the transmission interval for transmitting each packet containing the chunked video data 400, and the chunk loss determination unit 114 calculates the chunk loss rate,
  • the calculated chunk loss rate is associated with the transmission interval when the chunked video data is transmitted, and stored as transmission interval chunk loss correspondence information 200 in a storage unit. If the calculated chunk loss rate is greater than the maximum allowable chunk loss rate as a predetermined transmission interval determination logic used when congestion information indicating that congestion is occurring in 200, extract the transmission interval corresponding to the chunk loss rate of 0 or, if there is no 0, the transmission interval corresponding to the chunk loss rate closest to 0, and determine the transmission interval of the packet to be transmitted.
  • the transmission interval chunk loss correspondence information 200 is referred to, and the calculated chunk loss rate does not exceed the maximum allowable chunk loss rate. It is characterized by extracting short transmission intervals and determining the transmission intervals of packets to be transmitted.
  • the server-side system (server) 10 of the communication system 1 can determine the transmission interval of packets to be transmitted by a predetermined transmission interval determination logic when congestion occurs in the network.
  • the server-side system (server) 10 refers to the transmission interval chunk loss correspondence information 200 (FIG. 2) when the calculated chunk loss rate is greater than the maximum allowable chunk loss rate, and A transmission interval corresponding to a cross rate of 0, or a transmission interval corresponding to a chunk loss rate closest to 0 if there is no cross rate can be extracted.
  • the server-side system (server) 10 refers to the transmission interval chunk loss correspondence information 200, and the calculated chunk loss rate is equal to the maximum allowable
  • the shortest transmission interval can be extracted while the cross rate is not exceeded. Therefore, the communication system 1 can determine a more appropriate packet transmission interval when congestion occurs.
  • the server according to the present invention is the server 10 connected to the client terminal 20 for communication via a network, and includes the input information 300 for rendering and the number of the lost chunk among the chunked video data.
  • an information receiving unit 111 that receives an input information packet including a loss chunk number from the client terminal 20; a video processing unit 112 that performs video rendering processing according to the received input information 300 to generate video data 400;
  • the chunking function unit 113 that chunks the obtained video data 400 according to the size of the MTU and gives a number to each chunk representing the chunked video data 400, the number of packets that have transmitted the chunked video data 400, Calculate the chunk loss rate using the total number of lost chunks indicated by the loss chunk number, and determine the transmission interval by comparing the calculated chunk loss rate with a preset maximum allowable chunk loss rate.
  • the chunk loss determination unit 114 that determines the transmission interval of the packet containing the chunked video data 400 and each packet containing the chunked video data 400 are transmitted to the client terminal 20 at the determined transmission interval. and a transmission control unit 115 for transmitting to.
  • the server 10 by controlling the transmission interval of packets to which the chunked video data 400 is attached, transmits the video data without compression, and reduces packet loss and NW delay due to burst traffic occurrence. , the reduction in throughput can be avoided.
  • the client terminal is a client terminal 20 that is connected to the server 10 for communication via a network.
  • a chunk processing unit 212 receives each packet including video data 400 and extracts the lost chunk number of the chunk included in the lost packet, and decodes and outputs the video data 400 using each of the received chunked video data 400.
  • an input information transmission unit 214 for transmitting to the server 10 an input information packet containing the input information 300 and the extracted loss chunk number.
  • the client terminal 20 transmits the loss chunk number in the packet of the input information 300 (input information packet) instead of in an independent packet, thereby suppressing the occurrence of delay due to hardware interrupts or the like.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

サーバ側システム(10)と、クライアント側システム(20)とがネットワークを介して通信接続される通信システム(1)であって、サーバ側システム(10)は、入力情報(300)と、ロスチャンク番号とを含む入力情報パケットを、クライアント側システム(20)から受信する情報受信部(111)と、映像データ(400)を生成する映像処理部(112)と、映像データ(400)をチャンク化し番号を付与するチャンク化機能部(113)と、チャンクロス率を計算し、送信間隔決定ロジックに基づき送信間隔を決定するチャンクロス判定部(114)と、チャンク化した映像データ(400)を、クライアント側システム(20)へ送信する送信制御部(115)とを備える。

Description

通信システム、通信方法、サーバ、クライアント端末、および、プログラム
 本発明は、ネットワークにおけるリモートサーバへの高負荷処理のオフロードを行う、通信システム、通信方法、サーバ、クライアント端末、および、プログラムに関する。
 従来の通信システムにおいては、たとえばVR(Virtual Reality)をユースケースとして説明すると、HMD(Head Mounted Display)が、視線情報等の入力情報を、USB-Cケーブル等でエンドユーザが持つPC(Personal Computer)へ送信し、そのPC内でレンダリング処理やエンコード処理を実行する。そして、PCから映像情報を再度USB-C等を用いてHMDに送信する手法が用いられている(非特許文献1,2参照)。
久保田 瞬,「QuestとPCを繋ぐ「Oculus Link」驚くほど違和感なし」,[online],Mogura VR,2019年9月30日,[令和3年3月5日検索]、インターネット<URL:https://www.moguravr.com/oculus-link-report/> Volga Aksoy, et al.,"How does Oculus Link Work? The Architecture, Pipeline and AADT Explained," [online], Oculus Gelistirici Blogu,2019年11月22日,[令和3年3月5日検索]、インターネット<https://developer.oculus.com/blog/how-does-oculus-link-work-the-architecture-pipeline-and-aadt-explained/?locale=tr_TR>
 上記した通信システムにおいてVR視聴のためには、HMDで測位した視線情報をもとに、視線方向の映像をリアルタイムにレンダリングして描画する。その際、当該処理の演算量は大きく、高性能のプロセッサや、専用のアクセラレータ(例えば、GPU(Graphics Processing Unit)等)が必要となる。
 つまり、ユーザが上記システムを利用しようとする場合には、ユーザ側が備えるクライアントシステムにおいて、高性能のプロセッサや、専用のアクセラレータ(GPU等)を搭載したPCや据え置き型ゲーム機を用意して宅内に配置し、処理負荷の大きいメディア処理をそのマシンパワーの助力により演算し、演算結果をHMD側で投影する手法がとられている。
 このような点に鑑みて本発明がなされたのであり、本発明は、クライアントシステムの処理負荷を低減し、ユーザ側において、高性能のプロセッサや専用のアクセラレータを備える必要をなくすことを課題とする。
 本発明に係る通信システムは、サーバ側システムと、クライアント側システムとがネットワークを介して通信接続される通信システムであって、前記サーバ側システムが、レンダリングを行うための入力情報と、チャンク化された映像データのうち、ロスしたチャンクの番号であるロスチャンク番号とを含む入力情報パケットを、前記クライアント側システムから受信する情報受信部と、受信した前記入力情報に応じた映像のレンダリング処理を行い、映像データを生成する映像処理部と、生成した前記映像データを、MTU(Maximum Transmission Unit)のサイズに合わせてチャンク化し、チャンク化した映像データを示すチャンクそれぞれに番号を付与するチャンク化機能部と、前記チャンク化した映像データを送信したパケット数と、前記ロスチャンク番号で示されるロスしたチャンクの合計数とを用いてチャンクロス率を計算し、計算した前記チャンクロス率と、予め設定した最大許容チャンクロス率とを比較することにより送信間隔を決定する、所定の送信間隔決定ロジックに基づき、前記チャンク化した映像データを含むパケットの送信間隔を決定するチャンクロス判定部と、前記チャンク化した映像データを含むパケットそれぞれを、決定した前記送信間隔により前記クライアント側システムに送信する送信制御部と、を備え、前記クライアント側システムが、前記入力情報を取得する入力情報取得部と、前記サーバ側システムから、前記チャンク化した映像データを含むパケットそれぞれを受信し、ロスしたパケットに含まれるチャンクの前記ロスチャンク番号を抽出するチャンク処理部と、受信した前記チャンク化した映像データそれぞれを用いて映像データをデコードして出力するデータ出力部と、前記入力情報、および、抽出した前記ロスチャンク番号を含む前記入力情報パケットを、前記サーバ側システムに送信する入力情報送信部と、を備えることを特徴とする通信システムとした。
 本発明によれば、クライアントシステムの処理負荷を低減し、ユーザ側において、高性能のプロセッサや専用のアクセラレータを備える必要をなくすことができる。
本実施形態に係る通信システムの全体構成を示す図である。 本実施形態に係る送信間隔チャンクロス対応情報のデータ構成例を示す図である。 本実施形態に係るサーバが送信するパケット(UDPパケット)の例を示す図である。 本実施形態に係るクライアント端末が送信するパケット(UDPパケット)の例を示す図である。 本実施形態に係る通信システムの処理の流れ(初期時)を示すシーケンス図である。 本実施形態に係る通信システムの処理の流れを示すシーケンス図である。 本実施形態に係るサーバおよびクライアント端末の機能を実現するコンピュータの一例を示すハードウェア構成図である。
 次に、本発明を実施するための形態(以下、「本実施形態」と称する。)について説明する。まず、本発明の概要を説明する。
<概要>
 本実施形態に係る通信システム(後記する図1参照)は、例えば、HMDにおける視線等の入力情報を、ユーザ宅内にあるクライアント(後記する図1の「クライアント側システム20」)からネットワーク(NW)経由で取得し、DC(データセンタ)等の遠隔地にあるサーバ(後記する図1の「サーバ側システム10」)で映像のレンダリング処理を行い、映像データをNW経由でクライアントに送信する。これにより、クライアント側での電力消費と計算負荷とを低減する。
 なお、クライアントは、例えばHMDのような専用端末のみで構成されていてもよいし、HMD等の専用端末とその専用端末に接続されたPCとを備えるシステムで構成されていてもよい。
 クライアントとサーバとの間において、NW経由で映像データのやり取りを行う際には、エンコード/デコード処理等に伴うデータ遅延が問題となる。この問題を解決するため、本通信システムでは、無圧縮の映像データをNW通信に使用する。具体的には、NWで1回に送信できる最大のデータサイズであるMTU(Maximum Transmission Unit)に応じて、映像データを1フレーム毎に細切れにする(チャンク化する)。この細切れにしたデータの塊をチャンクとよび、本通信システムにおいて、このチャンクの送信間隔を、映像データのチャンクロス率に応じて制御することで、チャンクロスや遅延発生の抑制を行う。
 以下、本発明の通信システムについて説明する。
<本実施形態>
 図1は、本実施形態に係る通信システム1の全体構成を示す図である。
 本実施形態に係る通信システム1は、図1に示すように、サーバ側システム10とクライアント側システム20とを備え、NWを介して通信接続される。
 クライアント側システム20は、前述のように、HMDのような専用端末のみで構成されていてもよいし、HMD等の専用端末とその専用端末に接続されたPCとを備えるシステムで構成されていてもよいが、以下においては、専用端末としてのクライアント端末20として説明する。
 このクライアント端末20は、例えばHMDにおける視線等の入力情報300を、サーバ10にNWを介して送信することにより、サーバ側でレンダリング処理を行った結果である映像データ400を取得し、ディスプレイ等の表示装置に表示する機能を有する。
 サーバ側システム10は、DC(データセンタ)内の一つ以上のサーバにより構成される。なお、後記する制御部11内の機能部それぞれを、別サーバに備えるようにして複数のサーバからなるシステムとして構成してもよいが、以下においては、1つの筐体のサーバ10においてすべての機能部を備えるものとして説明する。
 このサーバ10は、クライアント側システム(クライアント端末)20から、視線等の入力情報300を取得し、その入力情報300に応じた映像のレンダリング処理を行って映像データを生成し、NWを介してクライアント側システム(クライアント端末)20へ送信する。その際、サーバ10は、映像データ400をチャンク化し、パケットの送信間隔を制御(決定)した上でクライアント側システム(クライアント端末)20へ送信する。
 このように、通信システム1は、サーバ側システム(サーバ)10においてレンダリング処理等を行うことにより、クライアント側システム(クライアント端末)20の電力消費や計算負荷を低減することができる。また、通信システム1は、チャンク化した映像データ400を付したパケットの送信間隔を制御することにより、無圧縮で映像データを送信した場合におけるデータサイズが大きいことに起因する、バーストトラヒック発生によるパケットロスやNW遅延、スループットの低下を回避することができる。
 この通信システム1を構成する、サーバ側システム(サーバ)10およびクライアント側システム(クライアント端末)20について、以下具体的に説明する。
≪サーバ側システム(サーバ)≫
 図1を参照して、本実施形態に係るサーバ10について説明する。
 サーバ10は、クライアント端末20から、視線等の入力情報300を取得し、その入力情報300に応じた映像のレンダリング処理を行い映像データ400を生成する。そして、サーバ10は、生成した映像データ400をチャンク化し、チャンクロス率に関する所定のロジックに基づき、パケット送信間隔を決定し、クライアント端末20へ送信する。
 このサーバ10は、制御部11と、入出力部12と、記憶部13とを備える。
 入出力部12は、クライアント端末20や、他の装置等との間の情報について入出力を行う。例えば、入出力部12は、クライアント端末20から入力情報300が付されたパケットを受信し、チャンク化した映像データ400を付したパケットを送信する。
 この入出力部12は、通信回線(NW)を介して情報の送受信を行う通信インタフェースと、不図示のキーボード等の入力装置やモニタ等の出力装置との間で情報の入出力を行う入出力インタフェースとから構成される。
 記憶部13は、ハードディスクやフラッシュメモリ、RAM(Random Access Memory)等により構成される。
 この記憶部13には、画像データDB(DataBase)100および送信間隔チャンクロス対応情報200が格納される。
 画像データDB100には、例えば、クライアント端末20がHMDの場合、ディスプレイに表示する映像の素材となる画像データが格納される。
 送信間隔チャンクロス対応情報200は、チャンク化した映像データ400を付したパケットの送信間隔それぞれに対応付けたチャンクロス率を示す情報であり、詳細は図2を参照して後記する。
 この記憶部13には、さらに、制御部11の各機能部を実行させるためのプログラムや、制御部11の処理に必要な情報が一時的に記憶される。
 制御部11は、サーバ10が実行する処理の全般を司り、情報受信部111と、映像処理部112と、チャンク化機能部113と、チャンクロス判定部114と、送信制御部115とを含んで構成される。
 情報受信部111は、クライアント端末20から、レンダリングを行うための入力情報300が付されたパケット(以下、「入力情報パケット」と称する。)を受信する。この入力情報パケットに含められる情報は、入力情報300のみの場合と、入力情報300とともに、ロスしたチャンクのチャンク番号(以下、「ロスチャンク番号」と称する。)が付される場合とがある(詳細は後記)。
 なお、入力情報パケットにおいて、入力情報300のみで、ロスチャンク番号が付されない場合は、初期時とパケットロスがなかった場合である。
 情報受信部111は、受信した入力情報パケットに付された入力情報300を、映像処理部112に出力する。また、情報受信部111は、この入力情報パケットにロスチャンク番号が付されていた場合には、その情報をチャンクロス判定部114に出力する。
 映像処理部112は、情報受信部111が受信した入力情報300に基づき、記憶部13内の画像データDB100を参照し、入力情報300に応じた映像のレンダリング処理を行い映像データ400を生成する。
 そして、映像処理部112は、生成した映像データ400を、チャンク化機能部113に出力する。
 チャンク化機能部113は、映像処理部112から取得した映像データ400について、MTUのサイズに合わせたチャンク化処理を行う。なお、映像データ400は予め設定しておいたFPS(Frames per Second)によって、1秒間のフレーム枚数(例えば、60fps)が決まるが、チャンク化機能部113は、1フレーム毎にMTUに応じてチャンク化する。
 そして、チャンク化機能部113は、チャンク化後の各チャンクのデータについてチャンク番号の付与を行う。このチャンク番号は、番号順に整列させることで、元の映像データ400が復元できるように予め設定した規則性をもって付される。
 チャンクロス判定部114は、情報受信部111から取得したロスチャンク番号と、チャンク化した映像データ400をクライアント端末20に送信する際に送信制御部115がカウントしたパケット数とに基づき、チャンクロス率を計算する。具体的には、チャンクロス判定部114は、ロスチャンク番号で示されるロスしたチャンクの合計数を、送信時にカウントしたパケット数で除すことにより、チャンクロス率を計算する。
 そして、チャンクロス判定部114は、送信制御部115が送信したパケットをカウントした際のそのパケットの送信間隔に対応付けて、計算したチャンクロス率を、記憶部13内の送信間隔チャンクロス対応情報200(図2)に格納する。
 また、チャンクロス判定部114は、計算したチャンクロス率に基づく所定のロジック(以下、「送信間隔決定ロジック」と称する。)を用いて、チャンク化した映像データ400を送信するパケット送信間隔を決定する。
 なお、前提として、チャンクロス判定部114には、送信間隔決定ロジックに基づき送信間隔を決定する際、予め最大許容チャンクロス率が、例えば通信システム1の管理者等により設定される。また、チャンクロス判定部114は、NW内において輻輳の発生状況を示す情報(輻輳情報)を、ネットワーク監視装置等から受信することにより、NW内の輻輳発生状況を把握できる。
 以下、送信間隔決定ロジックについて、詳細に説明する。
(A)システム初期稼働時および通常時(NWに輻輳なし)
 チャンクロス判定部114は、システム初期稼働時、および、NW内において輻輳が発生していないことを示す通常時の状況においては、以下の[ロジックA]に基づき、パケット送信間隔を決定する。なお、チャンクロス判定部114は、例えばNWの輻輳情報を受信していないことにより、通常時であることを判定する。また、チャンクロス判定部114は、初期時(一度目)のパケット送信間隔の決定の際には、予め設定した所定の初期パケット送信間隔によりパケットを送信する。
[ロジックA]
・チャンクロス率(R_LOSS) > 最大許容チャンクロス率(MAX_LOSS)
 この場合、所定の定数(a1:第1定数)だけ、パケット送信間隔を長くする。
・チャンクロス率(R_LOSS) < 最大許容チャンクロス率(MAX_LOSS)
 この場合、所定の定数(a2:第2定数)だけ、パケット送信間隔を短くする。
 なお、所定の定数(a1)と(a2)とは、同じ値でもよい。
 [ロジックA]において、チャンクロス判定部114が計算したチャンクロス率が、最大許容チャンクロス率を超えていた場合には、最大許容チャンクロス率以下に収まるように、パケット送信間隔を長くする制御を行う。一方、チャンクロス率が、最大許容チャンクロス率未満であれば、その状態が続くことによるクライアント側での映像表示の遅れを発生させないように、パケット送信間隔を短くする制御を行う。
(B)NW内の輻輳発生時
 チャンクロス判定部114は、NW内において輻輳が発生している輻輳発生時においては、以下の[ロジックB]に基づき、パケット送信間隔を決定する。なお、チャンクロス判定部114は、例えば、NWの管理装置等から輻輳情報を受信することにより、NW内に輻輳が発生していると判定する。また、チャンクロス判定部114は、例えば、所定の時間間隔で輻輳情報を受信することにより、輻輳状態が継続していると判定し、所定の時間間隔での輻輳情報の受信が停止し、一定時間経過後までに輻輳情報を受信しなければ、輻輳状態が解消され通常時に戻ったと判定する。なお、NW内における輻輳は、例えば、サーバ内で発生している場合や、L2SW等のネットワーク機器で発生している場合等がある。
 また、チャンクロス判定部114は、輻輳発生時においては、送信間隔チャンクロス対応情報200(図2)を参照して、パケット送信間隔を決定する。
 図2は、本実施形態に係る送信間隔チャンクロス対応情報200のデータ構成例を示す図である。
 図2に示すように、送信間隔チャンクロス対応情報200には、チャンクロス判定部114により、パケットの送信間隔に対応付けて、チャンクロス率が格納される。
 例えば、送信間隔が「100(μs)」のとき、チャンクロス率は「0(%)」である。送信間隔が「90(μs)」のとき、チャンクロス率は「5(%)」である。
 この送信間隔チャンクロス対応情報200の値は、クライアント端末20へ送信されたパケットのチャンクロス率を、チャンクロス判定部114が計算する度に更新される情報である。
[ロジックB]
・(輻輳発生時)チャンクロス率(R_LOSS) > 最大許容チャンクロス率(MAX_LOSS)
 この場合、送信間隔チャンクロス対応情報200(図2)において、チャンクロス率が「0」に対応する送信間隔を、パケット送信間隔に設定する。例えば、最大許容チャンクロス率が「8(%)」であり、現時点での送信間隔が「80(μs)」、チャンクロス率が「15(%)」であった場合に、チャンクロス率が「0(%)」である送信間隔「95(μs)」に設定する。
 なお、チャンクロス率が「0(%)」に対応する送信間隔が複数存在する場合には、送信間隔が最も短いものや、送信間隔が最も長いもの、ランダムに決定する等のようないずれかを設定しておく。
 また、チャンクロス率が「0(%)」に対応する送信間隔が、送信間隔チャンクロス対応情報200にその時点で存在していない場合には、その時点で存在するチャンクロス率「0(%)」に一番近い送信間隔の値に設定する。つまり、チャンクロス判定部114は、チャンクロス率が0に対応する送信間隔、若しくは、0がない場合には最も0に近いチャンクロス率に対応する送信間隔に設定する。
 さらに、送信間隔チャンクロス対応情報200で示される、最も長い送信間隔において、パケットを送信した場合においても、チャンクロス率(R_LOSS)が最大許容チャンクロス率(MAX_LOSS)を超える場合には、その最も長い送信間隔に、所定の定数(a3)だけパケット送信間隔を長くして、パケット送信間隔を決定するようにしてもよい。
・(輻輳発生時)チャンクロス率(R_LOSS) < 最大許容チャンクロス率(MAX_LOSS)
 この場合、送信間隔チャンクロス対応情報200(図2)において、チャンクロス率が最大許容チャンクロス率を超えない中で、最も送信間隔が短い値のパケット送信間隔を設定する。例えば、最大許容チャンクロス率が「12(%)」であり、現時点での送信間隔が「90(μs)」、チャンクロス率が「5(%)」であった場合に、チャンクロス率が「10(%)」である送信間隔「85(μs)」に設定する。
 なお、チャンクロス判定部114は、輻輳情報の受信が止まる等により、NW内の輻輳が解消したと判定した場合には、送信間隔チャンクロス対応情報200(図2)において、輻輳発生後に更新した送信間隔とチャンクロス率との対応情報を外れ値として破棄する。
 このようにすることにより、輻輳が発生していない通常時に対応した送信間隔をチャンクロス判定部114が決定することができる。
 図1に戻り、送信制御部115は、チャンクロス判定部114が決定したパケット送信間隔の情報を用いて、チャンク化した映像データ400の送信処理を実行する。
 具体的には、送信制御部115は、図3のUDPパケットの例で示すように、ソケットを作り、IPヘッダに宛先IPアドレスを指定し、UDPポート番号を指定した上で、ペイロード部分にチャンク化した映像データ400を格納してUDPパケットを生成し、クライアント端末20へ送信する。
 このパケット送信時において、送信制御部115は、パケット(UDPパケット)の送信間隔を、送信間隔チャンクロス対応情報200に記憶する。そして、送信制御部115は、送信したパケット数をカウントし記憶部13に記憶しておく。この送信間隔とパケット数とは、チャンクロス判定部114による、チャンクロス率の計算、および、送信間隔チャンクロス対応情報200の更新に利用される。
 このように、サーバ10は、チャンク化した映像データ400を付したパケットの送信間隔を制御することにより、無圧縮で映像データを送信した場合におけるデータサイズが大きいことに起因する、バーストトラヒック発生によるパケットロスや、NW遅延、スループットの低下を回避することができる。また、サーバ10においてレンダリング処理等を行うことにより、クライアント端末20の電力消費や計算負荷を低減することができる。
≪クライアント側システム(クライアント端末)≫
 図1を参照して、本実施形態に係るクライアント端末20について説明する。
 クライアント端末20は、例えば、HMDにおける視線等の入力情報を、サーバ10へ送信することにより、サーバ10において、処理負荷の大きい、映像のレンダリング処理等を実行させ、生成された映像データ400を受信してディスプレイ等の表示装置に表示する。このクライアント端末20は、サーバ10からの映像データ400を、チャンク化した映像データ400として受信し、ロスしたチャンクのチャンク番号(ロスチャンク番号)を、サーバ10へ送信する。クライアント端末20は、このロスチャンク番号の送信を、入力情報300を送信する入力情報パケットに含めて送信する。これにより、ロスチャンク番号を独立した別パケットにより送信する場合に比べ、ハードウェア割り込みにおいて、複数のパケット同士の競合により待ち合わせが発生し、msオーダの遅延が発生することを抑えることができる。なお、クライアント端末20は、HMD以外でも、リアルタイムに映像データを表示する端末であればよく、例えば、動画映像を利用するゲーム等のサービスを提供する端末でもよい。
 このクライアント端末20は、制御部21と、入出力部22と、記憶部23とを備える。
 入出力部22は、サーバ10や、他の装置等との間の情報について入出力を行う。例えば、入出力部22は、入力情報300が付された入力情報パケットを送信するとともに、チャンク化された映像データ400が付されたパケットを受信する。
 この入出力部22は、通信回線(NW)を介して情報の送受信を行う通信インタフェースと、不図示のセンサ装置やモニタ等の出力装置との間で情報の入出力を行う入出力インタフェースとから構成される。
 記憶部23は、ハードディスクやフラッシュメモリ、RAM等により構成される。
 この記憶部23には、制御部21の各機能部を実行させるためのプログラムや、制御部21の処理に必要な情報が一時的に記憶される。
 制御部21は、クライアント端末20が実行する処理の全般を司り、入力情報取得部211と、チャンク処理部212と、データ出力部213と、入力情報送信部214とを含んで構成される。
 入力情報取得部211は、クライアント端末20が備える各種のセンサ(視線追跡センサや、三軸加速度センサ、ジャイロセンサ等)からの情報(レンダリングを行うための入力情報300)を、入出力部22を介して取得する。そして、入力情報取得部211は、取得した入力情報300を、入力情報送信部214に出力する。
 チャンク処理部212は、サーバ10からチャンク化した映像データ400が付されたパケット(図3)を受信する。そして、チャンク処理部212は、各パケットのチャンクを、チャンク番号順に整列し、ロスしたチャンクのチャンク番号(ロスチャンク番号)を抽出する。
 チャンク処理部212は、ロスチャンク番号を入力情報送信部214に出力するとともに、整列させたチャンク番号順の映像データ400を、データ出力部213に出力する。
 データ出力部213は、チャンク番号順に整列させた、チャンク化した映像データ400を用いて映像をデコード(復元)し、入出力部22を介してディスプレイ等の表示装置に表示させる。
 入力情報送信部214は、入力情報取得部211から取得した入力情報300と、チャンク処理部212から取得したロスチャンク番号とを1つのパケットに含めて、サーバ10に送信する。
 具体的には、入力情報送信部214は、図4のUDPパケットの例で示すように、ソケットを作り、IPヘッダに宛先IPアドレスを指定し、UDPポート番号を指定した上で、ペイロード部分に、ロスチャンク番号および入力情報300を格納して、UDPパケットを生成し、サーバ10へ送信する。
 なお、入力情報送信部214は、チャンク化した映像データ400を受信していない初期稼働時、および、チャンク処理部212がロスチャンク番号を抽出しなかった場合には、ロスチャンク番号は含めず、入力情報300のみをUDPパケットに含めて、サーバ10へ送信する。
 このように、クライアント端末20は、チャンク化した映像データ400をデコードすることにより、映像データ400をディスプレイ等の表示装置に表示させることができる。
 また、クライアント端末20は、ロスチャンク番号を、独立したパケットではなく、入力情報300のパケット(入力情報パケット)に含めて送信することにより、ハードウェア割り込み等による遅延の発生を抑えることができる。
≪通信システムの処理≫
 次に、通信システム1が実行する処理について説明する。
 図5および図6は、本実施形態に係る通信システム1の処理の流れを示すシーケンス図である。
 まず、初期時(1回目)の処理として、クライアント側システム(クライアント端末)20の入力情報取得部211が、各種のセンサ等から入力情報300を取得する(ステップS1)。
 続いて、クライアント端末20の入力情報送信部214が、その入力情報300を付したパケット(入力情報パケット)を生成し、サーバ側システム(サーバ)10へ送信する(ステップS2)。
 次に、サーバ10の情報受信部111が、入力情報パケットを受信すると、そのパケットに付された入力情報300を、映像処理部112に出力する(ステップS3)。
 そして、映像処理部112は、記憶部13内の画像データDB100を参照し、入力情報300に応じた映像のレンダリング処理を行い映像データ400を生成する(ステップS4)。
 続いて、サーバ10のチャンク化機能部113は、生成された映像データ400について、1フレーム毎に、MTUのサイズに合わせてチャンク化する(ステップS5:チャンク化処理)。
 そして、チャンク化機能部113は、チャンク化後の各チャンクのデータについてチャンク番号の付与を行う(ステップS6)。
 次に、チャンクロス判定部114は、初回のチャンク化した映像データ400の送信間隔を、予め設定しておいた初期パケット送信間隔に決定する(ステップS7)。
 そして、サーバ10の送信制御部115は、チャンク化した映像データ400を含むパケットを生成し、初期パケット送信間隔でクライアント端末20へ送信する(ステップS8)。このとき、送信制御部115は、初期パケット送信間隔として決定した送信間隔、および、送信したパケット数をカウントして記憶部13に記憶しておく。
 クライアント端末20のチャンク処理部212は、サーバ10からチャンク化した映像データ400が付されたパケット(図3)を受信し、各パケットのチャンクを、チャンク番号順に整列し、ロスしたチャンクのチャンク番号(ロスチャンク番号)を抽出する(ステップS9)。
 そして、チャンク処理部212は、ロスチャンク番号を入力情報送信部214に出力するとともに、整列させたチャンク番号順の映像データ400を、データ出力部213に出力する。
 クライアント端末20のデータ出力部213は、チャンク番号順に整列させた、チャンク化した映像データ400を用いて映像をデコード(復元)し、入出力部22を介してディスプレイ等の表示装置に表示させる(ステップS10)。
 ここまでが、初期時の通信システム1の処理である。
 図6に進み、2回目以降の処理において、クライアント側システム(クライアント端末)20の入力情報取得部211が、各種のセンサ等から入力情報300を取得する(ステップS11)。
 続いて、クライアント端末20の入力情報送信部214は、ステップS11において入力情報取得部211が取得した入力情報300と、図5のステップS9においてチャンク処理部212が抽出したロスチャンク番号と、を含めてパケット(入力情報パケット(図4))を生成し、サーバ側システム(サーバ)10へ送信する(ステップS12)。
 次に、サーバ10の情報受信部111が、入力情報パケットを受信すると、その入力情報パケットに付された入力情報300を、映像処理部112に出力し、ロスチャンク番号を、チャンクロス判定部114に出力する(ステップS13)。
 そして、映像処理部112は、記憶部13内の画像データDB100を参照し、入力情報300に応じた映像のレンダリング処理を行い映像データ400を生成する(ステップS14)。
 続いて、サーバ10のチャンク化機能部113は、生成された映像データ400について、1フレーム毎に、MTUのサイズに合わせてチャンク化する(ステップS15:チャンク化処理)。
 そして、チャンク化機能部113は、チャンク化後の各チャンクのデータについてチャンク番号の付与を行う(ステップS16)。
 次に、サーバ10のチャンクロス判定部114は、ステップS13において取得したロスチャンク番号と、図5のステップS8において、送信制御部115がカウントしたパケット数とに基づき、チャンクロス率を計算する(ステップS17)。
 続いて、チャンクロス判定部114は、送信制御部115がカウントした際のそのパケットの送信時における送信間隔に対応付けて、計算したチャンクロス率を、記憶部13内の送信間隔チャンクロス対応情報200(図2)に格納する(ステップS18)。
 そして、チャンクロス判定部114は、計算したチャンクロス率に基づく所定のロジック(送信間隔決定ロジック)を用いて、チャンク化した映像データ400を送信するパケット送信間隔を決定する(ステップS19)。
 このとき、チャンクロス判定部114は、送信間隔決定ロジック([ロジックA])に基づき、計算したチャンクロス率と、最大許容チャンクロス率とを比較して、パケット送信間隔の増減を制御する。また、チャンクロス判定部114が、NW管理装置等からNWの輻輳情報を受信しているか否かにより、NWに輻輳が発生しているか否を判定し、輻輳が発生している場合には、輻輳時に適応する送信間隔決定ロジック([ロジックB])に基づき、チャンク化した映像データ400を送信するパケット送信間隔を決定する。
 そして、サーバ10の送信制御部115は、ステップS15においてチャンク化した映像データ400を含むパケットを生成し、ステップS19で決定したパケット送信間隔でクライアント端末20へ送信する(ステップS20)。このとき、送信制御部115は、パケットを送信した際の送信間隔、および、送信したパケット数をカウントして記憶部13に記憶しておく。
 続いて、クライアント端末20のチャンク処理部212は、サーバ10からチャンク化した映像データ400が付されたパケット(図3)を受信し、各パケットのチャンクを、チャンク番号順に整列し、ロスしたチャンクのチャンク番号(ロスチャンク番号)を抽出する(ステップS21)。
 そして、チャンク処理部212は、ロスチャンク番号を入力情報送信部214に出力するとともに、整列させたチャンク番号順の映像データ400を、データ出力部213に出力する。
 クライアント端末20のデータ出力部213は、チャンク番号順に整列させた、チャンク化した映像データ400を用いて映像をデコード(復元)し、入出力部22を介してディスプレイ等の表示装置に表示させる(ステップS22)。
 これ以降は、ステップS11からの処理が繰り返される。
<ハードウェア構成>
 本実施形態に係るサーバ10およびクライアント端末20は、例えば図7に示すような構成のコンピュータ900によって実現される。
 図7は、本実施形態に係るサーバ10およびクライアント端末20の機能を実現するコンピュータ900の一例を示すハードウェア構成図である。コンピュータ900は、CPU(Central Processing Unit)901、ROM(Read Only Memory)902、RAM903、HDD(Hard Disk Drive)904、入出力I/F(Interface)905、通信I/F906およびメディアI/F907を有する。
 CPU901は、ROM902またはHDD904に記憶されたプログラムに基づき作動し、制御部11,21(図1)による制御を行う。ROM902は、コンピュータ900の起動時にCPU901により実行されるブートプログラムや、コンピュータ900のハードウェアに係るプログラム等を記憶する。
 CPU901は、入出力I/F905を介して、マウスやキーボード等の入力装置910、および、ディスプレイやプリンタ等の出力装置911を制御する。CPU901は、入出力I/F905を介して、入力装置910からデータを取得するともに、生成したデータを出力装置911へ出力する。
 HDD904は、CPU901により実行されるプログラムおよび当該プログラムによって使用されるデータ等を記憶する。通信I/F906は、通信網(例えば、NW920)を介して他の装置からデータを受信してCPU901へ出力し、また、CPU901が生成したデータを、通信網を介して他の装置へ送信する。
 メディアI/F907は、記録媒体912に格納されたプログラムまたはデータを読み取り、RAM903を介してCPU901へ出力する。CPU901は、目的の処理に係るプログラムを、メディアI/F907を介して記録媒体912からRAM903上にロードし、ロードしたプログラムを実行する。記録媒体912は、DVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto Optical disk)等の光磁気記録媒体、磁気記録媒体、半導体メモリ等である。
 例えば、コンピュータ900が本発明のサーバ10,クライアント端末20として機能する場合、コンピュータ900のCPU901は、RAM903上にロードされたプログラムを実行することにより、サーバ10、クライアント端末20の機能を実現する。また、HDD904には、RAM903内のデータが記憶される。CPU901は、目的の処理に係るプログラムを記録媒体912から読み取って実行する。この他、CPU901は、他の装置から通信網(NW920)を介して目的の処理に係るプログラムを読み込んでもよい。
<効果>
 以下、本発明に係る通信システム等の効果について説明する。
 本発明に係る通信システムは、サーバ側システム10と、クライアント側システム20とがネットワークを介して通信接続される通信システム1であって、サーバ側システム10が、レンダリングを行うための入力情報300と、チャンク化された映像データのうち、ロスしたチャンクの番号であるロスチャンク番号とを含む入力情報パケットを、クライアント側システム20から受信する情報受信部111と、受信した入力情報300に応じた映像のレンダリング処理を行い、映像データを生成する映像処理部112と、生成した映像データ400を、MTUのサイズに合わせてチャンク化し、チャンク化した映像データ400を示すチャンクそれぞれに番号を付与するチャンク化機能部113と、チャンク化した映像データ400を送信したパケット数と、ロスチャンク番号で示されるロスしたチャンクの合計数とを用いてチャンクロス率を計算し、計算したチャンクロス率と、予め設定した最大許容チャンクロス率とを比較することにより送信間隔を決定する、所定の送信間隔決定ロジックに基づき、チャンク化した映像データを含むパケットの送信間隔を決定するチャンクロス判定部114と、チャンク化した映像データ400を含むパケットそれぞれを、決定した送信間隔によりクライアント側システム20に送信する送信制御部115と、を備え、クライアント側システム20が、入力情報300を取得する入力情報取得部211と、サーバ側システム10から、チャンク化した映像データ400を含むパケットそれぞれを受信し、ロスしたパケットに含まれるチャンクのロスチャンク番号を抽出するチャンク処理部212と、受信したチャンク化した映像データ400それぞれを用いて映像データ400をデコードして出力するデータ出力部213と、入力情報300、および、抽出したロスチャンク番号を含む入力情報パケットを、サーバ側システム10に送信する入力情報送信部214と、を備えることを特徴とする。
 このように、通信システム1は、サーバ側システム(サーバ)10においてレンダリング処理等を行うことにより、クライアント側システム(クライアント端末)20の電力消費や計算負荷を低減することができる。また、通信システム1は、チャンク化した映像データ400を付したパケットの送信間隔を制御することにより、無圧縮で映像データを送信した上で、バーストトラヒック発生によるパケットロスやNW遅延、スループットの低下を回避することができる。
 よって、クライアント側システム(クライアント端末)20の処理負荷を低減し、ユーザ側において、高性能のプロセッサや専用のアクセラレータを備える必要をなくすことができる。
 また、通信システム1において、所定の送信間隔決定ロジックは、計算したチャンクロス率が、最大許容チャンクロス率よりも大きい場合に、所定の第1定数だけ、送信間隔を長くし、計算したチャンクロス率が、最大許容チャンクロス率未満である場合に、所定の第2定数だけ、送信間隔を短くすることを特徴とする。
 このように、通信システム1のサーバ側システム(サーバ)10は、所定の送信間隔決定ロジックにより、計算したチャンクロス率が、最大許容チャンクロス率よりも大きい場合に送信間隔を長くし、計算したチャンクロス率が、最大許容チャンクロス率未満である場合に送信間隔を短くすることができる。
 よって、通信システム1は、所定の送信間隔決定ロジックを用いた送信間隔の決定を繰り返すことにより、最大許容チャンクロス率以下に収まる範囲で、より適切なパケットの送信間隔を決定することができる。
 また、通信システム1において、送信制御部115は、チャンク化した映像データ400を含むパケットそれぞれを送信する送信間隔を記憶しておき、チャンクロス判定部114は、チャンクロス率を計算した際に、計算したチャンクロス率と、そのチャンク化した映像データを送信したときの送信間隔とを対応付けて送信間隔チャンクロス対応情報200として記憶部に記憶しておき、チャンクロス判定部114は、ネットワーク内に輻輳が発生していることを示す輻輳情報を受信した場合に用いる所定の送信間隔決定ロジックとして、計算したチャンクロス率が、最大許容チャンクロス率よりも大きい場合に、送信間隔チャンクロス対応情報200を参照し、チャンクロス率が0に対応する送信間隔、若しくは、0がない場合には最も0に近いチャンクロス率に対応する送信間隔を抽出して、送信するパケットの送信間隔を決定し、計算したチャンクロス率が、最大許容チャンクロス率未満である場合に、送信間隔チャンクロス対応情報200を参照し、計算したチャンクロス率が、最大許容チャンクロス率を超えない中で、最も送信間隔が短い送信間隔を抽出して、送信するパケットの送信間隔を決定することを特徴とする。
 このように、通信システム1のサーバ側システム(サーバ)10は、ネットワーク内に輻輳が発生している場合において、所定の送信間隔決定ロジックにより、送信するパケットの送信間隔を決定できる。
 この送信間隔決定ロジックにより、サーバ側システム(サーバ)10は、計算したチャンクロス率が、最大許容チャンクロス率よりも大きいときに、送信間隔チャンクロス対応情報200(図2)を参照し、チャンクロス率が0に対応する送信間隔、若しくは、0がない場合には最も0に近いチャンクロス率に対応する送信間隔を抽出できる。また、サーバ側システム(サーバ)10は、計算したチャンクロス率が、最大許容チャンクロス率未満である場合に、送信間隔チャンクロス対応情報200を参照し、計算したチャンクロス率が、最大許容チャンクロス率を超えない中で、最も送信間隔が短い送信間隔を抽出できる。
 よって、通信システム1は、輻輳発生時において、より適切なパケットの送信間隔を決定することができる。
 本発明に係るサーバは、クライアント端末20にネットワークを介して通信接続するサーバ10であって、レンダリングを行うための入力情報300と、チャンク化された映像データのうち、ロスしたチャンクの番号であるロスチャンク番号とを含む入力情報パケットを、クライアント端末20から受信する情報受信部111と、受信した入力情報300に応じた映像のレンダリング処理を行い、映像データ400を生成する映像処理部112と、生成した映像データ400を、MTUのサイズに合わせてチャンク化し、チャンク化した映像データ400を示すチャンクそれぞれに番号を付与するチャンク化機能部113と、チャンク化した映像データ400を送信したパケット数と、ロスチャンク番号で示されるロスしたチャンクの合計数とを用いてチャンクロス率を計算し、計算したチャンクロス率と、予め設定した最大許容チャンクロス率とを比較することにより送信間隔を決定する、所定の送信間隔決定ロジックに基づき、チャンク化した映像データ400を含むパケットの送信間隔を決定するチャンクロス判定部114と、チャンク化した映像データ400を含むパケットそれぞれを、決定した送信間隔によりクライアント端末20に送信する送信制御部115と、を備えることを特徴とする。
 このようにすることにより、サーバ10は、チャンク化した映像データ400を付したパケットの送信間隔を制御することにより、無圧縮で映像データを送信した上で、バーストトラヒック発生によるパケットロスやNW遅延、スループットの低下を回避することができる。
 本発明に係るクライアント端末は、サーバ10にネットワークを介して通信接続するクライアント端末20であって、レンダリングを行うための入力情報300を取得する入力情報取得部211と、サーバ10から、チャンク化した映像データ400を含むパケットそれぞれを受信し、ロスしたパケットに含まれるチャンクのロスチャンク番号を抽出するチャンク処理部212と、受信したチャンク化した映像データ400それぞれを用いて映像データ400をデコードして出力するデータ出力部213と、入力情報300、および、抽出したロスチャンク番号を含む入力情報パケットを、サーバ10に送信する入力情報送信部214と、を備えることを特徴とする。
 このように、クライアント端末20は、ロスチャンク番号を、独立したパケットではなく、入力情報300のパケット(入力情報パケット)に含めて送信することにより、ハードウェア割り込み等による遅延の発生を抑えることができる。
 なお、本発明は、以上説明した実施形態に限定されるものではなく、多くの変形が本発明の技術的思想内で当分野において通常の知識を有する者により可能である。
 1   通信システム
 10  サーバ側システム(サーバ)
 11,21 制御部
 12,22 入出力部
 13,23 記憶部
 20  クライアント側システム(クライアント端末)
 100 画像データDB
 111 情報受信部
 112 映像処理部
 113 チャンク化機能部
 114 チャンクロス判定部
 115 送信制御部
 200 送信間隔チャンクロス対応情報
 211 入力情報取得部
 212 チャンク処理部
 213 データ出力部
 214 入力情報送信部
 300 入力情報
 400 映像データ

Claims (8)

  1.  サーバ側システムと、クライアント側システムとがネットワークを介して通信接続される通信システムであって、
     前記サーバ側システムは、
     レンダリングを行うための入力情報と、チャンク化された映像データのうち、ロスしたチャンクの番号であるロスチャンク番号とを含む入力情報パケットを、前記クライアント側システムから受信する情報受信部と、
     受信した前記入力情報に応じた映像のレンダリング処理を行い、映像データを生成する映像処理部と、
     生成した前記映像データを、MTU(Maximum Transmission Unit)のサイズに合わせてチャンク化し、チャンク化した映像データを示すチャンクそれぞれに番号を付与するチャンク化機能部と、
     前記チャンク化した映像データを送信したパケット数と、前記ロスチャンク番号で示されるロスしたチャンクの合計数とを用いてチャンクロス率を計算し、計算した前記チャンクロス率と、予め設定した最大許容チャンクロス率とを比較することにより送信間隔を決定する、所定の送信間隔決定ロジックに基づき、前記チャンク化した映像データを含むパケットの送信間隔を決定するチャンクロス判定部と、
     前記チャンク化した映像データを含むパケットそれぞれを、決定した前記送信間隔により前記クライアント側システムに送信する送信制御部と、を備え、
     前記クライアント側システムは、
     前記入力情報を取得する入力情報取得部と、
     前記サーバ側システムから、前記チャンク化した映像データを含むパケットそれぞれを受信し、ロスしたパケットに含まれるチャンクの前記ロスチャンク番号を抽出するチャンク処理部と、
     受信した前記チャンク化した映像データそれぞれを用いて映像データをデコードして出力するデータ出力部と、
     前記入力情報、および、抽出した前記ロスチャンク番号を含む前記入力情報パケットを、前記サーバ側システムに送信する入力情報送信部と、を備えること
     を特徴とする通信システム。
  2.  前記所定の送信間隔決定ロジックは、
     計算した前記チャンクロス率が、前記最大許容チャンクロス率よりも大きい場合に、所定の第1定数だけ、前記送信間隔を長くし、
     計算した前記チャンクロス率が、前記最大許容チャンクロス率未満である場合に、所定の第2定数だけ、前記送信間隔を短くすること
     を特徴とする請求項1に記載の通信システム。
  3.  前記送信制御部は、前記チャンク化した映像データを含むパケットそれぞれを送信する送信間隔を記憶しておき、
     前記チャンクロス判定部は、前記チャンクロス率を計算した際に、計算した前記チャンクロス率と、そのチャンク化した映像データを送信したときの送信間隔とを対応付けて送信間隔チャンクロス対応情報として記憶部に記憶しておき、
     前記チャンクロス判定部は、前記ネットワーク内に輻輳が発生していることを示す輻輳情報を受信した場合に用いる前記所定の送信間隔決定ロジックとして、
     計算した前記チャンクロス率が、前記最大許容チャンクロス率よりも大きい場合に、前記送信間隔チャンクロス対応情報を参照し、前記チャンクロス率が0に対応する送信間隔、若しくは、0がない場合には最も0に近いチャンクロス率に対応する送信間隔を抽出して、送信する前記パケットの送信間隔を決定し、
     計算した前記チャンクロス率が、前記最大許容チャンクロス率未満である場合に、前記送信間隔チャンクロス対応情報を参照し、計算した前記チャンクロス率が、前記最大許容チャンクロス率を超えない中で、最も送信間隔が短い送信間隔を抽出して、送信する前記パケットの送信間隔を決定すること
     を特徴とする請求項1に記載の通信システム。
  4.  サーバ側システムと、クライアント側システムとがネットワークを介して通信接続される通信システムの通信方法であって、
     前記サーバ側システムは、
     レンダリングを行うための入力情報と、チャンク化された映像データのうち、ロスしたチャンクの番号であるロスチャンク番号とを含む入力情報パケットを、前記クライアント側システムから受信するステップと、
     受信した前記入力情報に応じた映像のレンダリング処理を行い、映像データを生成するステップと、
     生成した前記映像データを、MTUのサイズに合わせてチャンク化し、チャンク化した映像データを示すチャンクそれぞれに番号を付与するステップと、
     前記チャンク化した映像データを送信したパケット数と、前記ロスチャンク番号で示されるロスしたチャンクの合計数とを用いてチャンクロス率を計算し、計算した前記チャンクロス率と、予め設定した最大許容チャンクロス率とを比較することにより送信間隔を決定する、所定の送信間隔決定ロジックに基づき、前記チャンク化した映像データを含むパケットの送信間隔を決定するステップと、
     前記チャンク化した映像データを含むパケットそれぞれを、決定した前記送信間隔により前記クライアント側システムに送信するステップと、を実行し、
     前記クライアント側システムは、
     前記入力情報を取得するステップと、
     前記サーバ側システムから、前記チャンク化した映像データを含むパケットそれぞれを受信し、ロスしたパケットに含まれるチャンクの前記ロスチャンク番号を抽出するステップと、
     受信した前記チャンク化した映像データそれぞれを用いて映像データをデコードして出力するステップと、
     前記入力情報、および、抽出した前記ロスチャンク番号を含む前記入力情報パケットを、前記サーバ側システムに送信するステップと、を実行すること
     を特徴とする通信方法。
  5.  クライアント端末にネットワークを介して通信接続するサーバであって、
     レンダリングを行うための入力情報と、チャンク化された映像データのうち、ロスしたチャンクの番号であるロスチャンク番号とを含む入力情報パケットを、前記クライアント端末から受信する情報受信部と、
     受信した前記入力情報に応じた映像のレンダリング処理を行い、映像データを生成する映像処理部と、
     生成した前記映像データを、MTUのサイズに合わせてチャンク化し、チャンク化した映像データを示すチャンクそれぞれに番号を付与するチャンク化機能部と、
     前記チャンク化した映像データを送信したパケット数と、前記ロスチャンク番号で示されるロスしたチャンクの合計数とを用いてチャンクロス率を計算し、計算した前記チャンクロス率と、予め設定した最大許容チャンクロス率とを比較することにより送信間隔を決定する、所定の送信間隔決定ロジックに基づき、前記チャンク化した映像データを含むパケットの送信間隔を決定するチャンクロス判定部と、
     前記チャンク化した映像データを含むパケットそれぞれを、決定した前記送信間隔により前記クライアント端末に送信する送信制御部と、
     を備えることを特徴とするサーバ。
  6.  コンピュータを、請求項5に記載のサーバとして機能させるためのプログラム。
  7.  サーバにネットワークを介して通信接続するクライアント端末であって、
     レンダリングを行うための入力情報を取得する入力情報取得部と、
     前記サーバから、チャンク化した映像データを含むパケットそれぞれを受信し、ロスしたパケットに含まれるチャンクのロスチャンク番号を抽出するチャンク処理部と、
     受信した前記チャンク化した映像データそれぞれを用いて映像データをデコードして出力するデータ出力部と、
     前記入力情報、および、抽出した前記ロスチャンク番号を含む入力情報パケットを、前記サーバに送信する入力情報送信部と、
     を備えることを特徴とするクライアント端末。
  8.  コンピュータを、請求項7に記載のクライアント端末として機能させるためのプログラム。
PCT/JP2021/011614 2021-03-22 2021-03-22 通信システム、通信方法、サーバ、クライアント端末、および、プログラム Ceased WO2022201221A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2021/011614 WO2022201221A1 (ja) 2021-03-22 2021-03-22 通信システム、通信方法、サーバ、クライアント端末、および、プログラム
US18/283,409 US12363362B2 (en) 2021-03-22 2021-03-22 Communication system, communication method, server, client terminal, and program
JP2023508146A JP7452753B2 (ja) 2021-03-22 2021-03-22 通信システム、通信方法、サーバ、クライアント端末、および、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/011614 WO2022201221A1 (ja) 2021-03-22 2021-03-22 通信システム、通信方法、サーバ、クライアント端末、および、プログラム

Publications (1)

Publication Number Publication Date
WO2022201221A1 true WO2022201221A1 (ja) 2022-09-29

Family

ID=83395365

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/011614 Ceased WO2022201221A1 (ja) 2021-03-22 2021-03-22 通信システム、通信方法、サーバ、クライアント端末、および、プログラム

Country Status (3)

Country Link
US (1) US12363362B2 (ja)
JP (1) JP7452753B2 (ja)
WO (1) WO2022201221A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013025668A (ja) * 2011-07-25 2013-02-04 Nippon Hoso Kyokai <Nhk> 管理装置、素材処理装置、完成ファイル生成装置、素材蓄積装置及びそのプログラム、並びに、並列処理システム
US20150261600A1 (en) * 2014-03-14 2015-09-17 Cisco Technology, Inc. Reconciling redundant copies of media content
JP2015228568A (ja) * 2014-05-30 2015-12-17 日本電信電話株式会社 映像品質推定装置及び方法及びプログラム
JP2017157913A (ja) * 2016-02-29 2017-09-07 Kddi株式会社 推定装置、推定方法及び推定プログラム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102468941B (zh) * 2010-11-18 2014-07-30 华为技术有限公司 网络丢包处理方法及装置
EP2932667A4 (en) * 2012-10-03 2016-09-28 Distrix Networks Ltd SYSTEMS AND METHODS FOR ADAPTIVE LOAD BALANCING COMMUNICATIONS, ROUTING, FILTERING AND ACCESS CONTROL IN DISTRIBUTED NETWORKS
US9530451B2 (en) * 2013-11-27 2016-12-27 Adobe Systems Incorporated Reducing network bandwidth usage in a distributed video editing system
EP3127333A1 (en) * 2014-03-31 2017-02-08 British Telecommunications Public Limited Company Multicast streaming
US20160323062A1 (en) * 2015-05-01 2016-11-03 Ubitus Inc. Packet recovery in interactive real-time media protocol
JP6436926B2 (ja) 2016-03-03 2018-12-12 ソフトバンク株式会社 通信装置、通信システム、プログラム、及び通信方法
JP6949801B2 (ja) 2018-10-17 2021-10-13 株式会社日立製作所 ストレージシステム及びストレージシステムにおけるデータ配置方法
WO2022098377A1 (en) * 2020-12-17 2022-05-12 Futurewei Technologies, Inc. Qualitative communication using adaptive network coding with a sliding window

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013025668A (ja) * 2011-07-25 2013-02-04 Nippon Hoso Kyokai <Nhk> 管理装置、素材処理装置、完成ファイル生成装置、素材蓄積装置及びそのプログラム、並びに、並列処理システム
US20150261600A1 (en) * 2014-03-14 2015-09-17 Cisco Technology, Inc. Reconciling redundant copies of media content
JP2015228568A (ja) * 2014-05-30 2015-12-17 日本電信電話株式会社 映像品質推定装置及び方法及びプログラム
JP2017157913A (ja) * 2016-02-29 2017-09-07 Kddi株式会社 推定装置、推定方法及び推定プログラム

Also Published As

Publication number Publication date
US20240098318A1 (en) 2024-03-21
JP7452753B2 (ja) 2024-03-19
US12363362B2 (en) 2025-07-15
JPWO2022201221A1 (ja) 2022-09-29

Similar Documents

Publication Publication Date Title
US9727373B2 (en) Providing resumption data in a distributed processing system
US9344735B2 (en) Progressive shape based encoding of video content within a swarm environment
US20170180272A1 (en) System and method for accelerating network applications using an enhanced network interface and massively parallel distributed processing
CN111010582A (zh) 一种云桌面图像处理方法、装置、设备及可读存储介质
US12301955B2 (en) Systems and methods for efficient management of resources for streaming interactive multimedia content
EP3410302B1 (en) Graphic instruction data processing method, apparatus
US12179095B2 (en) Systems and methods for efficient management of resources for streaming interactive multimedia content
WO2016044329A1 (en) Real-time, low memory estimation of unique client computers communicating with a server computer
CN113490055A (zh) 数据处理方法和装置
US9852520B2 (en) Implementing reduced video stream bandwidth requirements when remotely rendering complex computer graphics scene
US12094435B2 (en) Systems and methods for managing application refresh rates presented on a display
CN107872471B (zh) 远程桌面图像指令处理方法和系统
KR20230029502A (ko) 에지 컴퓨팅 네트워크, 데이터 전송 방법, 장치, 기기 및 기록 매체
KR20080049710A (ko) 임의 포맷의 대형 객체의 통신을 지원하기 위한 원격프로토콜
US9413789B2 (en) Method and system for managing high-bandwidth data sharing
JP7452753B2 (ja) 通信システム、通信方法、サーバ、クライアント端末、および、プログラム
Paul et al. Chromium renderserver: Scalable and open remote rendering infrastructure
WO2024109810A1 (zh) 虚拟桌面性能探测方法、装置、设备及存储介质和程序
KR101758065B1 (ko) 부하분산 시스템, 그 제어방법 및 이를 수행하기 위한 기록매체
CA2859577A1 (en) Image processing apparatus, method of controlling the same, program and storage medium
JP7521677B2 (ja) ガードタイム計算装置、ガードタイム計算方法、及びプログラム
WO2023218614A1 (ja) 配信装置、配信方法及びプログラム
US20250330553A1 (en) System and method for frame rate control and priority frame processing for 3d rendering
CN114071185B (zh) 视频流下发的方法、相关装置及计算机程序产品
EP4507798A1 (en) Systems and methods for efficient management of resources for streaming interactive multimedia content

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

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2023508146

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 18283409

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21932838

Country of ref document: EP

Kind code of ref document: A1

WWG Wipo information: grant in national office

Ref document number: 18283409

Country of ref document: US