DATA RELAY APPARATUS, DISTRIBUTION SYSTEM, DATA RELAY METHOD, AND COMPUTER-READABLE MEDIUM

The present disclosure relates to a data relay apparatus (30B) arranged between a CL(10) and an OS(20) which distributes video data; the data relay apparatus transmits video data distributed from the OS(20) to the CL(10). The data relay apparatus (30B) of the present disclosure includes a first determination unit (311) which receives uploaded data to be transmitted from the CL(10) to the OS(20) and determines whether or not the uploaded data is specified uploaded data based on the data size of the uploaded data, and a second determination unit (312) which determines whether or not accelerated playback of the video data is being performed in the CL(10) based on the transmission interval of the specified uploaded data.

TECHNICAL FIELD

The present disclosure relates to a data relay apparatus, distribution system, data relay method, and computer-readable medium.

BACKGROUND ART

Recently, an increasing number of video distribution websites have adopted adaptive bitrate (hereinafter referred to as ABR) as a video distribution system. ABR is a video distribution technology that enables smooth playback of video data at the highest possible image quality in accordance with a viewing environment. There is a plurality of standards of video distribution. Typical standards include, for example, HLS (HTTP (Hypertext Transfer Protocol) Live Streaming) and MPEG-DASH (Moving Picture Experts Group-Dynamic Adaptive Streaming over HTTP).

ABR automatically changes the image quality of video data according to the processing capacity, resolution, line speed, etc. of a client terminal (Client: hereinafter referred to as CL) such as mobile phones, and enables comfortable viewing of video data on the CL. To dynamically change the image quality of video data, the video data is divided into segments every few seconds to several tens of seconds, and video data with various image qualities is prepared in advance in a distribution server (Origin Server: hereinafter referred to as OS). The CL selects a segment to be obtained and the image quality depending on the viewing environment, and requests the video data from the OS. The HTTP protocol is used when the CL requests the video data from the OS. The CL specifies the segment and image quality of the request data (HTTP request packet) with the HTTP protocol, transmits the request data to the OS, and obtains the video data as response data from the OS.

FIG.1shows an example of a time change in the image quality of the video data of the ABR. InFIG.1, the horizontal axis represents time, and the vertical axis represents the image quality of the video data. As shown inFIG.1, the CL selects a segment with the image quality of 1080p during 00:00˜00:10, a segment with the image quality of 480p during 00:10˜00:20, and a segment with the image quality of 720p during 00:20˜00:30 and 00:30˜00:40.

The distribution of ABR video data is roughly divided into two phases. One is a buffering phase and the other is a steady phase (FIG.2).FIG.2shows an example of a time-series change in the amount of data that the CL receives from the OS. InFIG.2, the horizontal axis represents time, and the vertical axis represents the amount of data.

In the buffering phase, the state of the network between the CL and the OS is observed, and appropriate image quality and sound quality of video are determined in accordance with the viewing environment. In addition, in order to buffer video data enough to start playback of video data at the CL side, the OS transmits video data in a burst manner.

In the steady phase, after the image quality of video and the sound quality of sound are determined in the buffering phase, the CL obtains divided video data (segments) from the OS at specific intervals so that the video data buffered on the CL does not run out according to the progress of the playback of the video data.

As shown inFIG.2, when the playback of the video data starts in the CL, the buffering phase comes first, and then the steady phase comes next. In some cases, after the steady phase comes, then the buffering phase comes again. This repeat of buffering is called rebuffering. For example, if the state of the network changes and the image quality is changed by the ABR mechanism, the CL needs to download the video data again to cause rebuffering. What causes rebuffering on the CL side is called a rebuffering event.

In recent years, the variety of genres of video content on video distribution sites has been increasing, and the number of video contents of business and education as well as entertainment has been increasing. In order to meet the needs of users who want to watch videos efficiently with shorter time, the number of video distribution sites that support accelerated playback, which speeds up the playback speed of video data, has been increasing.

On the other hand, with the increase in video traffic in recent years, in order to reduce communication bandwidth by reducing redundant traffic, it is known that a related technology for performing traffic optimization processing for controlling the transmission bitrate of video data in a data relay apparatus between the CL and the OS (see, for example, Patent Document 1.).

In traffic optimization, there is also a technology for the ABR video data distribution. For example, in a data relay apparatus, when the transmission bitrate of the ABR video data to be transmitted to the CL is controlled, the image quality corresponding to the transmission bitrate is selected in the CL by the ABR mechanism. In this manner, the image quality of the video data distributed from the OS to the CL is changed.

If the image quality of the video data is high, the amount of data is large, and if the image quality of the video data is low, the amount of data is small. Therefore, by controlling the transmission bitrate of the video data of ABR, the image quality of the video data is controlled, and the amount of the video data flowing on the network is also controlled.

FIG.3shows a sequence diagram for explaining an example of traffic optimization of video data of ABR by the data relay apparatus. As shown inFIG.3, the CL10transmits request data (request data with HTTP protocol with the specified image quality, segments, etc.) requesting video data to the OS20(Step S11). A data relay apparatus30transfers the request data from the CL10to the OS20(Step S12).

The OS20transmits the video data (a segment with the specified image quality) requested from the CL10to the CL10as response data (Step S13). The data relay apparatus30transmits the video data to the CL10while controlling the transmission bitrate of the video data from the OS20(Step S14). For example, when the network is congested, the transmission bitrate of the video data transmitted from the data relay apparatus30to the CL10is lowered, and the low image quality video data is selected by the CL10according to the ABR mechanism. Thus, the data amount of the video data distributed from the OS20is reduced to alleviate the congestion of the network. This control of the transmission bitrate is referred to as pacing, shaping, or throttling, and hereinafter referred to as pacing.

The CL10selects the image quality corresponding to the transmission bitrate of the video data in Step S14according to the ABR mechanism. Here, it is assumed that the CL10selects a lower image quality (smaller data amount). In this case, the CL10transmits request data requesting video data with a lower image quality to the OS20(Step S15), and the data relay apparatus30transfers request data from the CL10to the OS20(Step S16).

The OS20transmits the video data with the lower image quality requested from the CL10to the CL10as response data (Step S17). The data relay apparatus30transmits the video data with the lower image quality from the OS20to the CL10(step S18). As a result, the image quality of the video data distributed from the OS20to the CL10changes to the lower image quality.

CITATION LIST

Patent Literature

SUMMARY OF INVENTION

Technical Problem

In the pacing process shown inFIG.3, the transmission bitrate is determined in accordance with the target image quality of the video data. However, when the video data is played using accelerated playback by the CL10, the downloading (download; hereinafter referred to as DL) speed of the video data is increased even with the same image quality.

FIG.4shows an example of the current transmission bitrate of the video data transmitted from the data relay apparatus30to the CL10during pacing. InFIG.4, the horizontal axis represents time, and the vertical axis represents the transmission bitrate of the video data.

As shown inFIG.4, it is assumed that the data relay apparatus30performs pacing at the same transmission bitrate (normal distribution rate inFIG.4) even when the video data is played using accelerated playback with the same image quality in the CL10. In this case, the transmission bitrate from the data relay apparatus30is lower than the distribution rate required when the video data is played using accelerated playback, so that the transmission bitrate is insufficient. As a result, the CL10cannot perform the DL quickly enough, and the playback of the video data is stopped and the image quality is degraded, thereby the quality of experience (QoE) that of users becomes poor.

Therefore, in order to optimize traffic while preventing the deterioration of QoE, the data relay apparatus30determines whether or not the video data is being played using accelerated playback in the CL10, and if it is played using accelerated playback, it is necessary to change the transmission bitrate of the video data to be transmitted to the CL10.

FIG.5shows an example of an ideal transmission bitrate of the video data to be transmitted from the data relay apparatus30to the CL10during pacing. InFIG.5, the horizontal and vertical axes represent the same as those inFIG.4.

As shown inFIG.5, when the CL10determines that the video data is being played using accelerated playback, the data relay apparatus30increases the transmission bitrate of the video data to be transmitted to the CL10. As a result, since the CL10can perform the DL quickly enough to play using accelerated playback, it is possible to optimize the traffic while preventing the deterioration of QoE.

However, it is difficult for the data relay apparatus30to determine whether or not the video data is being played using accelerated playback in the CL10. The reason is that video data in recent years is encrypted by, for example, TLS (Transport Layer Security), and the data relay apparatus30cannot refer to the contents of the video data (metadata such as header information or the video data itself). At present, the data relay apparatus30can obtain only the data size and flow rate (bitrate) of the uploaded data transmitted from the CL10to the OS20and the response data (video data) transmitted from the OS20to the CL10. It is difficult for the data relay apparatus30to determine the accelerated playback from this limited information.

Therefore, it is an object of the present disclosure to provide a data relay apparatus, a distribution system, a data relay method, and a computer-readable medium that can solve the problems described above and determine by the data relay apparatus whether or not video data is being played using accelerated playback in a client terminal.

Solution to Problem

A data relay apparatus arranged between a client terminal and a distribution server for distributing video data and configured to transmit the video data distributed from the distribution server to the client terminal includes: a first determination unit configured to receive uploaded data to be transmitted from the client terminal to the distribution server and determine whether or not the uploaded data is specified uploaded data based on a data size of the uploaded data; and a second determination unit configured to determine whether or not accelerated playback of the video data is being performed at the client terminal based on a transmission interval of the determined specified uploaded data.

A distribution system includes: a client terminal; a distribution server configured to distribute video data; and the data relay apparatus.

A data relay method performed by a data relay apparatus arranged between a client terminal and a distribution server for distributing video data and configured to transmit video data distributed from the distribution server to the client terminal includes: a receiving step of receiving uploaded data to be transmitted from the client terminal to the distribution server: a first determination step of determining whether or not the uploaded data is specified uploaded data based on a data size of the uploaded data; and a second determination step of determining whether or not accelerated playback of the video data is being performed at the client terminal based on a transmission interval of the determined specified uploaded data.

A non-temporary computer-readable medium stores a program for causing a computer, which is arranged between a client terminal and a distribution server for distributing video data and configured to transmit video data distributed from the distribution server to the client terminal, to execute: a receiving process for receiving uploaded data to be transmitted from the client terminal to the distribution server: a first determination process for determining whether or not the uploaded data is specified uploaded data based on a data size of the uploaded data; and a second determination process for determining whether or not accelerated playback of the video data is being performed at the client terminal based on a transmission interval of the determined specified uploaded data.

Advantageous Effects of Invention

According to the above-described aspect, the data relay apparatus which can determine whether or not video data is being played using accelerated playback, a distribution system whose data relay apparatus can determine whether or not video data is being played using accelerated playback, a data relay method whose data relay apparatus can determine whether or not video data is being played using accelerated playback, and a computer-readable medium whose data relay apparatus can determine whether or not video data is being played using accelerated playback can be provided.

EXAMPLE EMBODIMENT

Hereinafter, an outline of the present disclosure and an example embodiment will be described with reference to the drawings. The following descriptions and drawings have been omitted and simplified as appropriate for clarity of explanation. In the following drawings, the same elements have the same reference numerals, and duplicate explanations have been omitted as necessary.

Before describing example embodiments of the present disclosure, an outline of the present disclosure will be described.

<Outline of the Present Disclosure>

In the present disclosure, a method is proposed by which a data relay apparatus30A according to the present disclosure determines whether or not accelerated playback of ABR video data is being performed in the CL10by analyzing the data size and transmission intervals of the uploaded data to be transmitted from the CL10to the OS20. Here, the data size and transmission intervals of the uploaded data are information that can be obtained by the data relay apparatus30A.

The method to be proposed is effective regardless of whether video data of the ABR is encrypted or not, because accelerated playback is determined with the information that can be obtained by the data relay apparatus30A. The method to be proposed is effective not only for TCP (Transmission Control Protocol) but also for UDP (User Datagram Protocol) (e.g. QUIC (Quick UDP Internet Connections)) as a video protocol. Furthermore, the method to be proposed is effective regardless of whether TCP/UDP communication is terminated by the data relay apparatus30A.

FIG.6shows an image example when the data relay apparatus30A terminates TCP/UDP communication. As shown inFIG.6, when the data relay apparatus30A terminates TCP/UDP communication, communication is performed in separate TCP sessions between the CL10and the data relay apparatus30A, and between the data relay apparatus30A and the OS20. That is, when the data relay apparatus30A communicates with the CL10and the OS20, the data relay apparatus30A generates TCP sessions for each of them.

On the other hand,FIG.7shows an image example when the data relay apparatus30A does not terminate TCP/UDP communication. As shown inFIG.7, when the data relay apparatus30A does not terminate TCP/UDP communication, the CL10exchanges data with the OS20in a direct TCP session, and the data relay apparatus30A only transfers data. That is, the CL10and the OS20communicate directly in one TCP session, and the data relay apparatus30A transfers data.

The method to be proposed will be described below. During the playback of ABR video data, the uploaded data transmitted from the CL10to the OS20can be roughly divided into two types. One is request data (HTTP request packet) requesting video data, and the other is acknowledgement data (ACK (ACKnowledgement) packet) notifying that the video data has been received.

FIG.8shows a sequence of video data transmission and reception between the CL10and the OS20. As shown inFIG.8, firstly, a session is established between the CL10and the OS20via the data relay apparatus30A (Step S21).

Next, the CL10transmits request data (HTTP request packet) requesting the video data to be obtained to the OS20(Step S22). Next, the data relay apparatus30A transfers the request data from the CL10to the OS20(Step S23).

When the OS20receives the request data from the CL10via the data relay apparatus30A, the OS20transmits the video data requested from the CL10to the CL10as response data (HTTP response) to the request data (Step S24). Next, the data relay apparatus30A transfers the video data from the OS20to the CL10(Step S25).

When the CL10receives the video data from the OS20via the data relay apparatus30A, the CL10transmits the acknowledgement data (ACK packet) to the OS20in order to notify that the video data has been received (Step S26). Next, the data relay apparatus30A transfers the acknowledgement data from the CL10to the OS20(Step S27). Thereafter, Steps S28to S31similar to Steps S24to S27are continuously performed until the session is disconnected.

As shown inFIG.8, the OS20receives the acknowledgement data from the CL10via the data relay apparatus30A, thereby confirming that the video data has been transmitted to the CL10. This operation is an operation for ensuring the reliability of TCP communication. This operation is performed not only for TCP/IP (Internet Protocol) communication but also for QUIC traffic running on the UDP/IP protocol stack, which has been increasing in recent years.

FIG.9shows an example of a protocol stack of ABR video data. As shown inFIG.9, the QUIC protocol uses UDP rather than TCP. However, the QUIC protocol provides functions such as retransmission control, congestion control, and loss recovery, which are equivalent to the functions of TCP, in order to ensure the reliability of communication, and acknowledgment data (ACK packets) is transmitted in the same manner as TCP.

Typical ABR standards (such as HSL and MPEG-DASH) use the HTTP protocol to control the acquisition and distribution of video. The data size of request data (HTTP request packets) by ABR is relatively large. However, the data size of acknowledgement data (ACK packets) in TCP and QUIC protocols is smaller than that of the request data (HTTP request packets).

Therefore, the request data (HTTP request packets) and the acknowledgement data (ACK packets) can be distinguished based on the data size. In the case of ABR video data, the request data includes information such as image quality and segments of the video data to be obtained. Therefore, the data size of one request data is at least several hundred bytes or more. On the other hand, the acknowledgement data does not include complex information, and the data size of the acknowledgement data is much smaller than that of the request data (about 100 bytes).

Therefore, the data relay apparatus30A according to the present disclosure determines whether the uploaded data is the request data or the acknowledgement data based on the data size of the uploaded data transmitted from the CL10to the OS20. This method can be applied regardless of whether the uploaded data is encrypted or not.

The data relay apparatus30A judges the request data according to the method described above, and determines whether or not accelerated playback is being performed in the CL10according to the transmission intervals at which the request data is transmitted from the CL10to the OS20.

FIGS.10to12show graphs in which the request data from the CL10is observed when the same video data of the same image quality is played at different playback speeds in the CL10. InFIGS.10to12, the horizontal axes represent time, and the vertical axes represent the data size of the request data. Furthermore,FIG.10shows the request data during playback at 1× speed,FIG.11shows the request data during playback at 1.5× speed, andFIG.12shows the request data during playback at 2× speed.

As shown inFIGS.10to12, the transmission intervals of the request data from the CL10is longest during playback at 1× speed (FIG.10) and shortest during playback at 2× speed (FIG.12). From this, it is understood that the faster the playback speed is, the shorter the transmission intervals of the request data from the CL10are.

Therefore, the data relay apparatus30A determines whether or not accelerated playback is being performed in the CL10based on the transmission intervals of request data from the CL10.

Example embodiments of the present disclosure will be described below.

First Example Embodiment

FIG.13shows a configuration example of a data relay apparatus30A according to a first example embodiment. As shown inFIG.13, the data relay apparatus30A according to the first example embodiment is arranged between CL (Client)10and OS (Origin Server)20. The CL10, the OS20, and the data relay apparatus30A shown inFIG.13constitute a distribution system.

The CL10and the data relay apparatus30A and the data relay apparatus30A and the OS20are connected by different networks. Typically, the CL10and the data relay apparatus30A are connected by a wireless network, and the data relay apparatus30A and the OS20are connected by a wired network. However, the network combination is not limited thereto, and any other combination may be used.

The CL10is a client terminal which requests that the OS20transmit video data and receives video data to be distributed as a response to the request. Specific examples of the CL10include a mobile phone including a smartphone, a tablet terminal, a personal computer, and a television with a network connection function. The OS20is a distribution server that distributes video data as a response to a request from the CL10.

The data relay apparatus30A according to the first example embodiment is a device that relays communication between the CL10and the OS20and applies traffic optimization processing. The data relay apparatus30A according to the first example embodiment includes a communication processing unit301, an ABR video determination unit302, an accelerated playback determination unit303, a determination threshold value database304, an optimization application unit305, and an optimization policy database306.

The communication processing unit301relays communication in the data relay apparatus30A. When the data relay apparatus30A terminates TCP/UDP communication, the communication processing unit301corresponds to an application that operates as a proxy (proxy server) to the OS20.

Based on the uploaded data from the CL10and the response data from the OS20, the ABR video determination unit302determines whether the communication between the CL10and the OS20is a communication related to the distribution of ABR video data. For example, the ABR video determination unit302determines whether or not the communication is a communication related to the distribution of the ABR video data based on the IP address information included in the header information and the data size information. However, the determination method is not limited thereto.

The accelerated playback determination unit303observes the uploaded data transmitted from the CL10to the OS20, and determines whether or not accelerated playback of the video data is being performed in the CL10based on the data size of the uploaded data and the transmission intervals. Specifically, the accelerated playback determination unit303determines whether or not the uploaded data is the request data based on the data size of the uploaded data, and further determines whether or not accelerated playback is performed based on the transmission intervals of the request data.

Details of the operation of the accelerated playback determination unit303are as follows. That is, the accelerated playback determination unit303observes the communication determined by the ABR video determination unit302as the communication related to the distribution of the ABR video data. The accelerated playback determination unit303determines whether the uploaded data is the request data or not based on the data size of the uploaded data transmitted from the CL10to the OS20.

The transmission intervals of the request data from the CL10at the time of accelerated playback differ for each OS20. Therefore, the accelerated playback determination unit303provides the information on the OS20to the determination threshold value database304as key information, and obtains the threshold value of the transmission intervals of the request data for determining accelerated playback for the OS20. Then, the accelerated playback determination unit303determines whether or not accelerated playback is being performed in the CL10by comparing the transmission intervals of the request data from the CL10with the threshold value obtained from the determination threshold value database304, and when it is determined that accelerated playback is being performed, it also determines the playback speed of the accelerated playback. Note that the accelerated playback determination unit303may obtain a plurality of threshold values for the OS20from the determination threshold value database304, and determine whether or not accelerated playback is being performed in the CL10or determine the playback speed based on which range of the plurality of ranges divided by the plurality of threshold values the transmission intervals of the request data from the CL10belong to.

When the accelerated playback determination unit303determines that accelerated playback is being performed in the CL10, the accelerated playback determination unit303notifies the optimization application unit305of the playback speed of the accelerated playback.

As described above, the transmission intervals of the request data from the CL10during accelerated playback differ for each OS20. Therefore, the determination threshold value database304stores a threshold value of the transmission intervals of the request data for determining accelerated playback for each OS20. When the determination threshold value database304receives an inquiry from the accelerated playback determination unit303, the determination threshold value database304receives the information on the OS20as key information and returns the threshold value for the OS20. The determination threshold value database304may store a plurality of threshold values for each OS20and return the plurality of threshold values for the OS20in response to an inquiry from the accelerated playback determination unit303.

The optimization application unit305receives video data from a communication processing unit301as response data from the OS20, and performs traffic optimization processing for controlling a transmission bitrate on the video data.

Details of the operation of the optimization application unit305are as follows. That is, the optimization application unit305provides the information on the communication between the CL10and the OS20(such as the IP address of the CL10and the OS20) as key information to the optimization policy database306, and inquires as to which optimization policy is to be applied to the communication. When the optimization application unit305receives the notification of the playback speed of the accelerated playback from the accelerated playback determination unit303, the optimization application unit305provides to the optimization policy database306information on the playback speed of the accelerated playback together with the communication information described above as key information, and inquires as to which optimization policy is to be applied.

The optimization application unit305obtains the optimization policy from the optimization policy database306as a result of the inquiry. The optimization policy also includes the information about the transmission bitrate of the ABR video data. The optimization application unit305performs traffic optimization processing of video data based on the optimization policy obtained from the optimization policy database306.

The optimization policy database306determines the optimization policy to be applied to the communication (such as the IP address of the CL10and the OS20) in response to the inquiry containing the information on the communication between the CL10and the OS20from the optimization application unit305, and returns the determined optimization policy to the optimization application unit305. Furthermore, when the optimization application unit305has received a notification of the playback speed of the accelerated playback from the accelerated playback decision unit303, the optimization policy database306determines an optimization policy to be applied to the communication in response to the query containing the information on the communication described above from the optimization application unit305and the playback speed of the accelerated playback, and returns the determined optimization policy to the optimization application unit305.

FIGS.14and15show diagrams for explaining an operation example of the data relay apparatus30A according to the first example embodiment. InFIGS.14and15, the same steps have the same reference numerals.

As shown inFIGS.14and15, when the communication processing unit301receives video data request data (HTTP request packet) from the CL10(Step S41), the communication processing unit301provides the information (such as the IP address of the CL10and the OS20) of the communication between the CL10and the OS20to the ABR video determination unit302(Step S42).

Based on the communication information received from the communication processing unit301, the ABR video determination unit302determines whether or not the communication between the CL10and the OS20is a communication related to the distribution of the ABR video data (Step S43).

For example, when the ABR video determination unit302specifies that the destination of the request data is the OS based on the destination IP address included in the header information on the request data, the ABR video determination unit302may determine that the communication is related to the distribution of the ABR video data. Furthermore, when the ABR video determination unit302determines that the communication is related to the distribution of the ABR video data, the ABR video determination unit302determines that the response data (video data) transmitted from the OS20to the CL10is the target of traffic optimization.

The ABR video determination unit302may perform a similar determination when the ABR video determination unit302receives not only the uploaded data from the CL10but also the response data (video data) from the OS20in Step S48described later. For example, when the ABR video determination unit302specifies that the source of the response data is the OS based on the source IP address included in the header information on the response data, the ABR video determination unit302may determine that the communication is related to the distribution of the ABR video data.

The ABR video determination unit302returns to the communication processing unit301the determination result of whether or not the communication between the CL10and the OS20is related to the distribution of the ABR video data (Step S43). Furthermore, when the ABR video determination unit302determines that the communication is related to the distribution of the ABR video data, the ABR video determination unit302also notifies the communication processing unit301that the response data (video data) transmitted from the OS20to the CL10is the target of traffic optimization.

Here, when the ABR video determination unit302determines that the communication is related to the distribution of the ABR video data, the communication processing unit301activates the accelerated playback determination unit303(Step S44).

The accelerated playback determination unit303provides the information on the OS20to the determination threshold value database304as key information, and obtains a threshold value of the transmission intervals of the request data for determining accelerated playback for the OS20(Step S45).

In addition, the accelerated playback determination unit303observes the communication determined to be the communication related to the distribution of the ABR video data by the ABR video determination unit302, and determines whether or not the uploaded data is the request data based on the data size of the uploaded data. When the accelerated playback determination unit303determines that the uploaded data is the request data, the accelerated playback determination unit303compares the transmission intervals of the request data with the threshold value obtained from the determination threshold value database304in Step S45to determine whether or not accelerated playback is being performed in the CL10, and when it is determined that accelerated playback is being performed, the playback speed of accelerated playback is also determined.

When the accelerated playback determination unit303determines that accelerated playback is being performed in the CL10, the accelerated playback determination unit303notifies the optimization application unit305of the playback speed of accelerated playback (Step S46).

The communication processing unit301transfers the request data from the CL10to the OS20(Step S47). Note that when the ABR video determination unit302determines that the communication is not a communication related to the distribution of the ABR video data, the communication processing unit301transfers the request data from the CL10to the OS20without activating the accelerated playback determination unit303(Step S47).

The communication processing unit301receives response data (video data) corresponding to the request data of the CL10from the OS20(Step S48).

Here, when the ABR video determination unit302determines that the response data (video data) from the OS20is the target of traffic optimization, the communication processing unit301provides the response data (video data) to the optimization application unit305(Step S49).

The optimization application unit305provides the information (such as the IP address of the CL10and the OS20) of the communication between the CL10and the OS20as key information to the optimization policy database306, and inquires as to which optimization policy is to be applied to the communication. Furthermore, when the optimization application unit305has received the notification of the playback speed of the accelerated playback from the accelerated playback determination unit303, the optimization application unit305provides the information on the playback speed of the accelerated playback together with the information on the communication described above as key information to the optimization policy database306, and inquires as to which optimization policy is to be applied.

The optimization policy database306determines the optimization policy to be applied to the communication between the CL10and the OS20in response to the inquiry from the optimization application unit305, and returns the determined optimization policy to the optimization application unit305(Step S50). The optimization policy also includes information on the transmission bitrate of the response data (video data).

Based on the optimization policy acquired from the optimization policy database306, the optimization application unit305performs traffic optimization processing for controlling the transmission bitrate on the response data (video data), and returns the video data subjected to traffic optimization processing to the communication processing unit301(Step S51).

The communication processing unit301transmits the video data returned from the optimization application unit305to the CL10(Step S52). If the ABR video determination unit302determines that the response data (video data) from the OS20is not the target of traffic optimization, the communication processing unit301transmits the response data (video data) to the CL10without transmitting it to the optimization application unit305(Step S52).

If it is determined in the steps S44and S45that accelerated playback is being performed in the CL10while the Steps S41to S52are repeated, the accelerated playback determination unit303notifies the optimization application unit305of the playback speed of the accelerated playback (Step S46). In response to this, the optimization application unit305performs traffic optimization processing based on the optimization policy for accelerated playback (Step S50).

According to the first example embodiment, the data relay apparatus30A determines whether or not the uploaded data is request data based on the data size of the uploaded data transmitted from the CL10to the OS20, and further determines whether or not accelerated playback of video data is being performed in the CL10based on the transmission intervals of the request data.

Here, the data size and the transmission intervals of the uploaded data are information that can also be obtained by the data relay apparatus30A. Therefore, the data relay apparatus30A can determine from the information that can be obtained by the data relay apparatus30A whether or not the video data is being played using accelerated playback in the CL10.

The data relay apparatus30A can also determine whether the video data is being played using accelerated playback in the CL10, so that when the data relay apparatus30A determines that the video data is being played using accelerated playback in the CL10, it can perform traffic optimization processing such as, for example, increasing the transmission bitrate of the video data to be transmitted to the CL10as shown inFIG.5. Thus, the CL10can optimize traffic and prevent QoE from becoming poor during the playback of the video data using accelerated playback.

Second Example Embodiment

FIG.16shows a configuration example of a data relay apparatus30B according to a second example embodiment. Note that the second example embodiment corresponds to the example embodiment in which the first example embodiment described above is conceptualized in a higher level.

As shown inFIG.16, the data relay apparatus30B according to the second example embodiment is arranged between a CL (client terminal)10and an OS (distribution server)20that distributes the video data, and transmits the video data distributed from the OS20to the CL10.

The data relay apparatus30B according to the second example embodiment includes a first determination unit311and a second determination unit312. The first determination unit311and the second determination unit312correspond to the combination of the communication processing unit301and the accelerated playback determination unit303according to the first example embodiment described above.

The first determination unit311receives the uploaded data transmitted from the CL10to the OS20and determines whether or not the uploaded data is the specified upload data based on the data size of the uploaded data.

The second determination unit312determines whether or not the video data is being played using accelerated playback in the CL10based on the transmission interval of the specified uploaded data determined by the first determination unit311.

According to the second example embodiment, the data relay apparatus30B determines whether or not the uploaded data is the specified uploaded data based on the data size of the uploaded data transmitted from the CL10to the OS20, and further determines whether or not the video data is being played using accelerated playback in the CL10based on the determined transmission intervals of the specified uploaded data.

Here, the data size and the transmission intervals of the uploaded data are information that can also be obtained by the data relay apparatus30B. Therefore, the data relay apparatus30B can determine from the information that can be obtained by the data relay apparatus30B whether or not the video data is being played using accelerated playback in the CL10.

The data relay apparatus30B according to the second example embodiment may further include a control unit for controlling the transmission bitrate of the video data to be transmitted to the CL10based on the determination result of the accelerated playback by the second determination unit312. This control unit corresponds to the combination of the communication processing unit301and the optimization application unit305according to the first example embodiment described above.

Based on the data size of the uploaded data transmitted from the CL10to the OS20, the first determination unit311may determine whether the uploaded data is request data for requesting video data or acknowledgement data for notifying that video data has been received. The specified uploaded data may be request data.

When the second determination unit312determines that accelerated playback of the video data is being performed in the CL10, it may further determine the playback speed of the accelerated playback performed in the CL10based on the transmission intervals of the request data. Furthermore, the control unit may also control the transmission bitrate of the video data to be transmitted to the CL10based on the determination result of the playback speed of the accelerated playback by the second determination unit312.

Third Example Embodiment

FIG.17shows a hardware configuration example of a data relay apparatus30C according to a third example embodiment. As shown inFIG.17, the data relay apparatus30C according to the third example embodiment includes a processor321and a memory322.

The processor321may be, for example, a microprocessor, an MPU (Micro Processing Unit), or a CPU (Central Processing Unit). The processor321may include a plurality of processors.

The memory322consists of a combination of a volatile memory and a nonvolatile memory. The memory322may include storage located away from the processor321. In this case, the processor321may access the memory322via an I (Input)/O (Output) interface, which is not shown.

The data relay apparatuses30A and30B of the first and second example embodiments described above may have the hardware configuration shown inFIG.17. A program is stored in the memory322. The program includes an instruction group (or software code) for causing the computer to perform one or more functions of the data relay apparatus30A or30B described in the first and second example embodiments above when read into the computer. The communication processing unit301, the ABR video determination unit302, the accelerated playback determination unit303, the optimization application unit305, the first determination unit311, and the second determination unit312of the data relay apparatuses30A and30B described above may be implemented by the processor321reading and executing the program stored in the memory322. The determination threshold value database304and the optimization policy database306of the data relay apparatus30A described above may be implemented by the memory322.

The program described above may also be stored in a non-temporary computer-readable medium or a tangible storage medium. By way of example, but not limitation, a computer-readable medium or a tangible storage medium may include random-access memory (RAM), read-only memory (ROM), flash memory, solid-state drive (SSD) or other memory technology, CD-ROM, digital versatile disc (DVD), Blu-ray (Trademark) disc or other optical disc storage, magnetic cassette, magnetic tape, magnetic disc storage or other magnetic storage device. The program may be transmitted on a temporary computer-readable medium or communication medium. By way of example, but not limitation, a temporary computer-readable medium or communication medium may include an electrical, optical, acoustic, or other form of propagating signal.

Although the present disclosure has been described with reference to the example embodiments, the present disclosure is not limited to the example embodiments described above. Various changes in the configurations and details of the present disclosure may be made within the scope of the present disclosure that may be understood by those skilled in the art.

In addition, although the industrial applicability of the present disclosure is clear from the above description, the present disclosure may be used, for example, for communication flow control for TCP/UDP communication between the CL and the OS in mobile communications (cellular networks).

Furthermore, the present disclosure can also be used for communication flow control for TCP/UDP communication through various access networks such as wireless LAN (Local Area Network), wired LAN, optical fiber, etc., instead of a cellular network.

REFERENCE SIGNS LIST