Distribution design support method, distribution design support apparatus and program

11477502 · 2022-10-18

Assignee

Inventors

Cpc classification

International classification

Abstract

This streaming design assistance method assists in the selection of an encoding condition for increasing the watching time in adaptive bitrate video streaming by causing a computer to execute: estimating a relationship between a watching time or an abandonment rate and an application quality index according to a mathematical model on the basis of an actual value of a watching time of each of a plurality of first sessions related to video streaming and an actual value of an application quality index of each of the sessions; estimating the application quality index of each of the sessions for each of a plurality of encoding conditions related to video streaming on the basis of the plurality of encoding conditions and an actual value of time-series throughput of each of a plurality of second sessions; and applying the application quality index estimated under each of the encoding conditions to the relationship to estimate an average watching time of the plurality of second sessions.

Claims

1. A streaming design assistance method for causing a computer to: estimate a relationship between a watching time or an abandonment rate and an application quality index, the relationship being estimated according to a mathematical model on the basis of an actual value of a watching time of each of a plurality of first sessions related to adaptive bitrate video streaming and an actual value of the application quality index of each of the first sessions, the application quality index being an index of a quality that a user experiences while the user watches a video provided by the adaptive bitrate video streaming; estimate, on the basis of a plurality of encoding conditions related to the adaptive bitrate video streaming and an actual value of time-series throughput of each of a plurality of second sessions, a value of the application quality index of each of the second sessions for each of the plurality of encoding conditions, the plurality of second sessions being the same as or different from the plurality of first sessions; and apply the estimated value of the application quality index under each of the encoding conditions to the estimated relationship to estimate an average watching time of the plurality of second sessions.

2. The streaming design assistance method according to claim 1, wherein the estimating of the relationship further involves estimating a relationship between a user attribute and the watching time or the abandonment rate on the basis of an actual value of the user attribute.

3. The streaming design assistance method according to claim 1, wherein the estimating of the relationship further involves estimating a relationship between a content attribute and the watching time or the abandonment rate on the basis of an actual value of the content attribute.

4. The streaming design assistance method according to claim 1, wherein the applying of the application quality index involves specifying the encoding condition in which the average watching time is the largest.

5. The streaming design assistance method according to claim 1, wherein the application quality index is a playback stop percentage, a playback stop count percentage, an average bitrate, a frame rate, a playback start delay, a normalized playback stop time, a bitrate change percentage, or an accumulated bitrate change time.

6. A streaming design assistance device comprising: a processor; and a memory storing program instructions that cause the processor to: estimate a relationship between a watching time or an abandonment rate and an application quality index, the relationship being estimated according to a mathematical model on the basis of an actual value of a watching time of each of a plurality of first sessions related to adaptive bitrate video streaming and an actual value of the application quality index of each of the first sessions, the application quality index being an index of a quality that a user experiences while the user watches a video provided by the adaptive bitrate video streaming; estimate, on the basis of a plurality of encoding conditions related to the adaptive bitrate video streaming and an actual value of time-series throughput of each of a plurality of second sessions, a value of the application quality index of each of the second sessions for each of the plurality of encoding conditions, the plurality of second sessions being the same as or different from the plurality of first sessions; and apply the estimated value of the application quality index under each of the encoding conditions to the estimated relationship to estimate an average watching time of the plurality of second sessions.

7. The streaming design assistance device according to claim 6, wherein the processor specifies the encoding condition in which the average watching time is the largest.

8. A non-transitory computer-readable storage medium that stores therein a program for causing a computer to execute the streaming design assistance method according to claim 1.

9. The streaming design assistance device according to claim 6, wherein the application quality index is a playback stop percentage, a playback stop count percentage, an average bitrate, a frame rate, a playback start delay, a normalized playback stop time, a bitrate change percentage, or an accumulated bitrate change time.

Description

BRIEF DESCRIPTION OF DRAWINGS

(1) FIG. 1 is a diagram illustrating a hardware configuration example of a streaming design assistance device 10 according to a first embodiment.

(2) FIG. 2 is a diagram illustrating a functional configuration example of the streaming design assistance device 10 according to the first embodiment.

(3) FIG. 3 is a flowchart for describing an example of a processing procedure executed by the streaming design assistance device 10 according to the first embodiment.

(4) FIG. 4 is a diagram illustrating a functional configuration example of a streaming design assistance device 10 according to a second embodiment.

(5) FIG. 5 is a flowchart for describing an example of a processing procedure executed by the streaming design assistance device 10 according to the second embodiment.

(6) FIG. 6 is a diagram illustrating a functional configuration example of a streaming design assistance device 10 according to a third embodiment.

(7) FIG. 7 is a flowchart for describing an example of a processing procedure executed by the streaming design assistance device 10 according to the third embodiment.

(8) FIG. 8 is a diagram illustrating a functional configuration example of a streaming design assistance device 10 according to a fourth embodiment.

(9) FIG. 9 is a flowchart for describing an example of a processing procedure executed by the streaming design assistance device 10 according to the fourth embodiment.

DESCRIPTION OF EMBODIMENTS

(10) Hereinafter, an embodiment of the present invention will be described in detail with reference to the drawings. FIG. 1 is a diagram illustrating a hardware configuration example of a streaming design assistance device 10 according to a first embodiment. The streaming design assistance device 10 illustrated in FIG. 1 includes a drive device 100, an auxiliary storage device 102, a memory device 103, a CPU 104, an interface device 105, and the like connected to each other via a bus B.

(11) A program that realizes processing in the streaming design assistance device 10 is provided by a recording medium 101 such as a CD-ROM. When the recording medium 101 having the program stored therein is set on the drive device 100, the program is installed from the recording medium 101 into the auxiliary storage device 102 via the drive device 100. However, the program may not always be installed on the recording medium 101, but the program may be downloaded from another computer via a network. The auxiliary storage device 102 stores the installed program and stores necessary files, data, and the like.

(12) The memory device 103 reads the program from the auxiliary storage device 102 and stores the same when a program activation instruction is received. The CPU 104 executes a function related to the streaming design assistance device 10 according to the program stored in the memory device 103. The interface device 105 is used as an interface for connection to a network.

(13) FIG. 2 is a diagram illustrating a functional configuration example of the streaming design assistance device 10 according to the first embodiment. As illustrated in FIG. 2, the streaming design assistance device 10 includes an abandonment rate function estimation unit 11, an application quality index estimation unit 12, an encoding condition optimization unit 13, and the like in order to assist in streaming design related to the adaptive bitrate video streaming service. These units are realized by one or more programs installed on the streaming design assistance device 10 causing the CPU 104 to execute processing.

(14) The abandonment rate function estimation unit 11 receives, as its input, a “watching time in all sessions occurred in past certain period” and an “application quality index of all sessions” and outputs an “abandonment rate function” indicating the relationship between the watching time and the application quality index and the abandonment rate. The abandonment rate is a probability of watching to be abandoned (stopped) in an arbitrary watching time of a session which has been watched continuously until the watching time.

(15) The “watching time of all sessions occurred in past certain period” refers to a watching time of a plurality of all sessions (from the start to the end of a specific user watching specific content) occurred in a past certain period (an arbitrary setting period such as one hour, one day, or one week). The users and the content in respective sessions may be different or the same.

(16) The “application quality index of all sessions” is an actual value of the application quality index (a playback stop time, bitrate oscillation, and the like) of each session corresponding to the input watching time of “watching time of all sessions occurred in the past certain period”.

(17) The abandonment rate function estimation unit 11 estimates an “abandonment rate function” which is a function indicating an abandonment rate for an arbitrary watching time and an arbitrary application quality index with respect to the input. The “abandonment rate function” corresponds to a hazard function of a proportional hazard model in survival time analysis. The influence of an application quality index such as a playback stop time is taken into consideration therein, and an abandonment rate for the same watching time oscillates depending on a session.

(18) Specifically, an abandonment rate in a watching time t of a session i, that is, a hazard function h(z.sub.i,t) (a probability of watching to be abandoned in the watching time t under assumption that the session i has been watched continuously until the watching time t) of the watching time of the session i is represented by Formula (1) below.
[Formula 1]
h(z.sub.i,t)=h.sub.0(t)exp(γ.sup.Tz.sub.i)  (1)

(19) Here, z.sub.i is an application quality index vector of the session i. γ is a coefficient vector corresponding to the application quality index vector z.sub.i. h.sub.0(t) is an abandonment rate at the watching time t of a reference session watched under a reference quality (the quality when the application quality index vector is a zero vector). That is, the “abandonment rate function” is a model that represents the abandonment rates of individual sessions in a form of multiplying an abandonment rate of the reference session by the influence of an application quality index different for respective sessions.

(20) The application quality index vector z.sub.i in Formula (1) is a vector made up of variables such as, for example, a playback start delay, a playback stop count, an average playback stop time, an average bitrate, a bitrate oscillation count, and an accumulated bitrate change time. These variables may be quantitative variables or qualitative variables. Even if an original variable is a quantitative variable, the variable may be appropriately converted to a qualitative variable (a category variable or a dummy variable). For example, when an average bitrate has a value in the range of 90 kbps to 3500 kbps, the average bitrate may be input to the abandonment rate function estimation unit 11 in the state of a quantitative variable. Alternatively, for example, the average bitrate may be classified into six categories of less than 150 kbps, 150 kbps or more and less than 300 kbps, 300 kbps or more and less than 450 kbps, 450 kbps or more and less than 750 kbps, 750 kbps or more and less than 2250 kbps, and not less than 2250 kbps and be input to the abandonment rate function estimation unit 11 as category variables to which numbers 1, 2, 3, 4, 5, and 6 are sequentially allocated. Alternatively, the category variables of the six categories may be converted to the following five dummy variables and be input to the abandonment rate function estimation unit 11. That is, when a category of an average bitrate of not less than 2250 kbps is set as a reference, the category variables may be converted to five dummy variables including a dummy variable indicating whether the average bitrate corresponds to the category of less than 150 kbps, a dummy variable indicating whether the average bitrate corresponds to the category of 150 kbps or more and less than 300 kbps, a dummy variable indicating whether the average bitrate corresponds to the category of 300 kbps or more and less than 450 kbps, a dummy variable indicating whether the average bitrate corresponds to the category of 450 kbps or more and less than 750 kbps, and a dummy variable indicating whether the average bitrate corresponds to the category of 750 kbps or more and less than 2250 kbps.

(21) The coefficient vector γ in Formula (1) is estimated on the basis of a watching time t.sub.i (i=1, 2, . . . , N) of N sessions observed in a video watching experiment of adaptive bitrate video streaming and an application quality index vector z.sub.i of each session. The estimation is performed by a method of maximizing a partial likelihood represented by Formula (2) below.

(22) [ Formula 2 ] P L ( γ ) = .Math. i = 1 D exp ( γ T z i ) .Math. k R ( t i ) exp ( γ T z k ) ( 2 )

(23) Here, D is the number of sessions of which the watching has not been ended due to the end of experiment among N sessions observed in the experiment. i (=1, 2, . . . , D) is the ID of a session of which the watching has not been ended due to the end of experiment. R(t.sub.i) is a risk set at time t.sub.i, that is, a set of sessions of which the watching time is t.sub.i or more among N sessions.

(24) The application quality index estimation unit 12 receives, as its input, an “encoding condition candidate plan”, a “time-series throughput of all sessions occurred in past certain period”, and a “streaming algorithm” and outputs an “application quality index of all sessions occurred in the past certain period for each plan of the encoding condition”.

(25) The “encoding condition candidate plan” refers to a candidate plan of the encoding condition discussed by the video streaming service provider as a service providing condition of the adaptive bitrate video streaming. That is, the “encoding condition candidate plan” is a candidate plan related to how many stages of bitrate a video to be arranged on a streaming server will be encoded and a specific value to which the bitrate level of each stage will be set. For example, candidate plan 1 has six stages of 1 Mbps, 2.5 Mbps, 5 Mbps, 8 Mbps, 16 Mbps, and 40 Mbps and candidate plan 2 has six stages of 1.5 Mbps, 4 Mbps, 7.5 Mbps, 12 Mbps, 24 Mbps, and 60 Mbps.

(26) The “time-series throughput of all sessions occurred in past certain period” is an actual value of the time-series throughput observed in a plurality of all sessions occurred in a past certain period (an arbitrary setting period such as one hour, one day, or one week). The past certain period to be processed by the application quality index estimation unit 12 may be the same as or different from the past certain period to be processed by the abandonment rate function estimation unit 11. That is, each session to be processed by the application quality index estimation unit 12 may be the same as or different from each session to be processed by the abandonment rate function estimation unit 11.

(27) The “streaming algorithm” is an algorithm that determines which bitrate video segment (one obtained by dividing a video file into small units and also called a chunk) will be received by a terminal with respect to the throughput which varies from time to time. This algorithm is given in the form of a rule and is conditionally branched depending on a situation such as whether a segment is being downloaded, a buffer is full or depleted or neither of them, for example. For example, a rule that the highest bitrate lower than a measured throughput (for example, 75% or smaller) is selected on the basis of the measured value when the buffer is neither full nor depleted may be used. Moreover, a rule that the highest bitrate is selected when the buffer is full (for example, 20 seconds or more) and the lowest bitrate is selected when the buffer is depleted may be used. Furthermore, a rule that, when a download time is significantly longer than a playback time of a segment during downloading of the segment, it is determined that the throughput has decreased dramatically, the downloading is stopped, and the segment of the same content is downloaded again at the highest bitrate lower than the throughput measured recently may be used.

(28) The application quality index estimation unit 12 estimates the following values by a simulation based on the streaming algorithm on the basis of the above-described input.

(29) The values are a bitrate level at each time point of reception or playback of a video segment received or played back in each session of a past certain period when each candidate plan of the encoding condition and the time-series throughput of all sessions are applied to the adaptive bitrate video streaming, and an application quality index (a playback stop time, a bitrate oscillation, or the like) observed as a result thereof.

(30) A known tool such as Sabre (https://github.com/UMass-LIDS/sabre/) can be used as a simulation tool that outputs an application quality index with respect to the input of an encoding condition, a streaming algorithm, and a time-series throughput.

(31) The encoding condition optimization unit 13 receives, as its input, the “abandonment rate function” which is the output of the abandonment rate function estimation unit 11 and the “application quality index of all sessions occurred in the past certain period for each plan of the encoding condition” which is the output of the application quality index estimation unit 12 and outputs an “encoding condition that maximizes the average watching time”.

(32) In response to the above inputs, the encoding condition optimization unit 13 applies the “abandonment rate function” to the “application quality index of all sessions occurred in past certain period for each plan of encoding condition” according to Formula (3) below with respect to each candidate plan of the encoding condition to estimate an average watching time E(t) in all sessions (an average value of expected value of the watching time of each session).

(33) [ Formula 3 ] E ( t ) = 1 N .Math. i = 1 N 0 f ( z i , t ) tdt ( 3 )

(34) Here, N is the number of sessions. f(z.sub.i,t) is a probability density function (dependent on the application quality index vector z.sub.i) of the watching time of the session i. When the hazard function h(z.sub.i,t) of Formula (1) is obtained, the probability density function f(z.sub.i,t) is also obtained.

(35) The encoding condition optimization unit 13 estimates the average watching time E(t) in all sessions and then derives the encoding condition that maximizes the average watching time E(t) as an optimal solution.

(36) Next, the processing procedure executed by the streaming design assistance device 10 will be described. FIG. 3 is a flowchart for describing an example of the processing procedure executed by the streaming design assistance device 10 according to the first embodiment.

(37) In step S101, the abandonment rate function estimation unit 11 receives, as its input, the actual values of a session-based watching time (for each session) of a plurality of all sessions occurred in the past certain period and a session-based application quality index (for each session). The actual values of the session-based application quality index and the session-based watching time may be stored in the auxiliary storage device 102 or the like, for example.

(38) Subsequently, the abandonment rate function estimation unit 11 estimates the abandonment rate function on the basis of the information input in step S101 (S102).

(39) Subsequently, the application quality index estimation unit 12 sets M encoding condition candidate plans and a streaming algorithm in itself (in the application quality index estimation unit 12) (S103). The M encoding condition candidate plans and the streaming algorithm may be stored in advance in the auxiliary storage device 102, for example.

(40) Subsequently, the application quality index estimation unit 12 receives, as its input, the session-based time-series throughput (for each session) of a plurality of all sessions occurred in the past certain period (S104). The past certain period to be processed by the application quality index estimation unit 12 may be the same as or different from the past certain period to be processed by the abandonment rate function estimation unit 11. That is, each session to be processed by the application quality index estimation unit 12 may be the same as or different from each session to be processed by the abandonment rate function estimation unit 11. Moreover, the session-based time-series throughput may be stored in advance in the auxiliary storage device 102, for example.

(41) Subsequently, the application quality index estimation unit 12 substitutes 1 into the variable i (S105). The variable i is the ID for identifying an encoding condition of each encoding condition candidate plan. The encoding condition ID of each encoding condition candidate plan is an integer of 1 to M. Subsequently, steps S107 to S109 are executed for each encoding condition (S106).

(42) In step S107, the application quality index estimation unit 12 executes a simulation in which the encoding condition (i) and the time-series throughput of each session are applied to adaptive bitrate video streaming on the basis of the streaming algorithm in units of session to estimate the application quality index of the session.

(43) Subsequently, the encoding condition optimization unit 13 estimates the average watching time in all sessions by applying the estimated session-based application quality index to Formula (3) (S108). Subsequently, the encoding condition optimization unit 13 adds 1 to i (S109) and returns to step S106.

(44) When steps S107 to S109 are executed for all (M) encoding condition candidate plans (S106: No), the encoding condition optimization unit 13 specifies an encoding condition candidate plan that maximizes the average watching time and outputs the encoding condition (S110). That is, the encoding condition candidate plan when the average watching time estimated in step S108 is the largest is output. The encoding condition optimization unit 13 may sort the M encoding condition candidate plans in descending order of average watching times estimated in step S108 and output the sorting result.

(45) As described above, according to the first embodiment, it is possible to construct a mathematical model for estimating a watching time on the basis of various factors related to the watching time. Moreover, it is possible to perform streaming design (optimization of encoding conditions) that maximizes the average watching time. Specifically, by estimating the average watching time for each setting value of the encoding condition, a condition that maximizes the average watching time among the candidate plans of the encoding condition is derived. Therefore, it is possible to assist in selection (streaming design) of an encoding condition for increasing the watching time in adaptive bitrate video streaming. As a result, it is possible to assist in optimization of an encoding condition.

(46) Next, a second embodiment will be described. In the second embodiment, differences from the first embodiment will be described. Features of the second embodiment, which are not specifically described, may be the same as those of the first embodiment.

(47) FIG. 4 is a diagram illustrating a functional configuration example of the streaming design assistance device 10 according to the second embodiment. In FIG. 4, the same or corresponding portions as those of FIG. 2 will be denoted by the same reference numerals, and the description thereof will be omitted. As illustrated in FIG. 4, the functions of the streaming design assistance device 10 are the same as those of the first embodiment, but the pieces of data input and output are different.

(48) In FIG. 4, a “user attribute of all sessions occurred in past certain period” is added to the input of the abandonment rate function estimation unit 11. This is an actual value of the user attribute related to the viewer of a video streamed in each session corresponding to the “watching time of all sessions occurred in past certain period” which is also the input of the abandonment rate function estimation unit 11.

(49) Since the “user attribute of all sessions occurred in past certain period” is added to the input of the abandonment rate function estimation unit 11, the hazard function represented by Formula (1) in the first embodiment is changed to Formula (4) below in the second embodiment.
[Formula 4]
h(x.sub.i,x.sub.i,t)=h.sub.0(t)exp(α.sup.Tx.sub.i+γ.sup.Tz.sub.i)  (4)

(50) Here, x.sub.i is a user attribute vector of a session i. z.sub.i is an application quality index vector. α is a coefficient vector corresponding to the user attribute vector x.sub.i. γ is a coefficient vector corresponding to the application quality index vector z.sub.i. h.sub.0(t) is an abandonment rate at a watching time t of a reference session that a reference user (a user of which the user attribute vector is a zero vector) watches under a reference quality (the quality in which the application quality index vector is a zero vector). That is, in the second embodiment, the “abandonment rate function” is a model that represents the abandonment rates of individual sessions in a form of multiplying the abandonment rate of the reference session by the influence of an application quality index and a user attribute different for respective sessions.

(51) In Formula (4), the user attribute vector x.sub.i is a vector made up of variables such as a gender, an age, or a user ID, for example. These variables may be quantitative variables or qualitative variables. Even if an original variable is a quantitative variable, the variable may be appropriately converted to a qualitative variable (a category variable or a dummy variable).

(52) The coefficient vectors α and γ in Formula (4) are estimated on the basis of a watching time t.sub.i (i=1, 2, . . . , N) of N sessions observed in a video watching experiment of adaptive bitrate video streaming and the user attribute vector x.sub.i and the application quality index vector z.sub.i of each session. The estimation is performed by a method of maximizing a partial likelihood represented by Formula (5) below.

(53) [ Formula 5 ] PL ( α , γ ) = .Math. i = 1 D exp ( α T x i + γ T z i ) .Math. k R ( t i ) exp ( α T x k + γ T z k ) ( 5 )

(54) Here, D is the number of sessions of which the watching has not been ended due to the end of experiment among N sessions observed in the experiment. i (=1, 2, . . . , D) is the ID of a session of which the watching has not been ended due to the end of experiment. R(t.sub.i) is a risk set at time t.sub.i, that is, a set of sessions of which the watching time is t.sub.i or more among N sessions.

(55) As illustrated in FIG. 4, in the second embodiment, a “user attribute corresponding to application quality index in all following sessions in following period” is added to the input of the encoding condition optimization unit 13. Here, the following period is the same period as the past certain period (an arbitrary setting period such as one hour, one day, or one week) serving as a target when the application quality index estimation unit 12 estimates an application quality index. Moreover, the all following sessions is a plurality of all sessions occurred in the following period.

(56) Since the “user attribute corresponding to application quality index of all following sessions in following period” is added to the input of the encoding condition optimization unit 13, the average watching time E(t) represented by Formula (3) in the first embodiment is changed to Formula (6) below in the second embodiment.

(57) [ Formula 6 ] E ( t ) = 1 N .Math. i = 1 N 0 f ( x i , z i , t ) tdt ( 6 )

(58) Here, N is the number of sessions. f(x.sub.i,z.sub.i,t) is a probability density function (dependent on the user attribute vector x.sub.i and the application quality index vector z.sub.i) of the watching time of the session i. When the hazard function h(x.sub.i,z.sub.i,t) of Formula (4) is obtained, the probability density function f(x.sub.i,z.sub.i,t) is also obtained.

(59) FIG. 5 is a flowchart for describing an example of the processing procedure executed by the streaming design assistance device 10 according to the second embodiment. In FIG. 5, the same steps as those of FIG. 3 will be denoted by the same step numbers and the description thereof will be omitted. As illustrated in FIG. 5, the flow of processing executed by the streaming design assistance device 10 is basically the same as that of the first embodiment. However, steps S101 and S104 are partially different, step S101 is replaced with step S101a and step S104 is replaced with step S104a.

(60) Specifically, an “actual value of session-based user attribute occurred in past certain period” is added to the input of step S101a. This is used as the input when the abandonment rate function estimation unit 11 estimates the abandonment rate function in step S102 and needs to be the same period and the same session as those of the “session-based watching time and session-based application quality index occurred in past certain period” which is the input of step S101a.

(61) The “actual value of session-based user attribute occurred in past certain period” is also added to the input of step S104a. This is used as the input when the encoding condition optimization unit 13 estimates the average watching time in all sessions in step S108 and needs to be the same period and the same session as those of the “estimated value of session-based application quality index” which is the input of step S108.

(62) As described above, according to the second embodiment, it is possible to construct a mathematical model for estimating the watching time by taking the user attribute of each session further into consideration. Moreover, according to the second embodiment, it is possible to perform streaming design (optimization of encoding conditions) that maximizes the average watching time.

(63) Next, a third embodiment will be described. In the third embodiment, differences from the first embodiment will be described. Features of the third embodiment, which are not specifically described, may be the same as those of the first embodiment.

(64) FIG. 6 is a diagram illustrating a functional configuration example of the streaming design assistance device 10 according to the third embodiment. In FIG. 6, the same or corresponding portions as those of FIG. 2 will be denoted by the same reference numerals, and the description thereof will be omitted. As illustrated in FIG. 6, the functions of the streaming design assistance device 10 are the same as those of the first embodiment, but the pieces of data input and output are different.

(65) In FIG. 6, a “content attribute of all sessions occurred in past certain period” is added to the input of the abandonment rate function estimation unit 11. This is an actual value of a content attribute related to content of a video streamed in each session corresponding to the “watching time of all sessions occurred in past certain period” which is also the input of the abandonment rate function estimation unit 11.

(66) Since the “content attribute of all sessions occurred in past certain period” is added to the input of the abandonment rate function estimation unit 11, the hazard function represented by Formula (1) in the first embodiment is changed to Formula (7) below in the third embodiment.
[Formula 7]
h(y.sub.i,z.sub.i,t)=h.sub.0(t)exp(β.sup.Tγ.sub.i+γ.sup.Tz.sub.i)  (7)

(67) Here, y.sub.i is a content attribute vector of a session i. z.sub.i is an application quality index vector. β is a coefficient vector corresponding to the content attribute vector y.sub.i. γ is a coefficient vector corresponding to the application quality index vector z.sub.i. h.sub.0(t) is an abandonment rate at a watching time t of a reference session in which reference content (content of which the content attribute vector is a zero vector) is watched under a reference quality (the quality in which the application quality index vector is a zero vector). That is, in the third embodiment, the “abandonment rate function” is a model that represents the abandonment rates of individual sessions in a form of multiplying the abandonment rate of the reference session by the influence of an application quality index and a content attribute different for respective sessions.

(68) In Formula (7), the content attribute vector y.sub.i is a vector made up of variables such as a content length, a genre, a ranking, or a content ID, for example. These variables may be quantitative variables or qualitative variables. Even if an original variable is a quantitative variable, the variable may be appropriately converted to a qualitative variable (a category variable or a dummy variable).

(69) The coefficient vectors β and γ in Formula (7) are estimated on the basis of a watching time t.sub.i (i=1, 2, . . . , N) of N sessions observed in a video watching experiment of adaptive bitrate video streaming and the content attribute vector y.sub.i and the application quality index vector z.sub.i of each session. The estimation is performed by a method of maximizing a partial likelihood represented by Formula (8) below.

(70) [ Formula 8 ] P L ( β , γ ) = .Math. i = 1 D exp ( β T y i + γ T z i ) .Math. k R ( t i ) exp ( β T y k + γ T z k ) ( 8 )

(71) Here, D is the number of sessions of which the watching has not been ended due to the end of experiment among N sessions observed in the experiment. i (=1, 2, . . . , D) is the ID of a session of which the watching has not been ended due to the end of experiment. R(t.sub.i) is a risk set at time t.sub.i, that is, a set of sessions of which the watching time is t.sub.i or more among N sessions.

(72) As illustrated in FIG. 6, in the third embodiment, a “content attribute corresponding to application quality index in all following sessions in following period” is added to the input of the encoding condition optimization unit 13. Here, the following period is the same period as the past certain period (an arbitrary setting period such as one hour, one day, or one week) serving as a target when the application quality index estimation unit 12 estimates an application quality index. Moreover, the all following sessions is a plurality of all sessions occurred in the following period.

(73) Since the “content attribute corresponding to application quality index of all following sessions in following period” is added to the input of the encoding condition optimization unit 13, the average watching time E(t) represented by Formula (3) in the first embodiment is changed to Formula (9) below in the third embodiment.

(74) [ Formula 9 ] E ( t ) = 1 N .Math. i = 1 N 0 f ( y i , z i , t ) tdt ( 9 )

(75) Here, N is the number of sessions. f(y.sub.i,z.sub.i,t) is a probability density function (dependent on the content attribute vector y.sub.i and the application quality index vector z.sub.i) of the watching time of the session i. When the hazard function h(y.sub.i,z.sub.i,t) of Formula (7) is obtained, the probability density function f(y.sub.i,z.sub.i,t) is also obtained.

(76) FIG. 7 is a flowchart for describing an example of the processing procedure executed by the streaming design assistance device 10 according to the third embodiment. In FIG. 7, the same steps as those of FIG. 3 will be denoted by the same step numbers and the description thereof will be omitted. As illustrated in FIG. 7, the flow of processing executed by the streaming design assistance device 10 is basically the same as that of the first embodiment. However, steps S101 and S104 are partially different, step S101 is replaced with step S101b and step S104 is replaced with step S104b.

(77) Specifically, an “actual value of session-based content attribute occurred in past certain period” is added to the input of step S101b. This is used as the input when the abandonment rate function estimation unit 11 estimates the abandonment rate function in step S102 and needs to be the same period and the same session as those of the “session-based watching time and session-based application quality index occurred in past certain period” which is the input of step S101b.

(78) The “actual value of session-based content attribute occurred in past certain period” is also added to the input of step S104b. This is used as the input when the encoding condition optimization unit 13 estimates the average watching time in all sessions in step S108 and needs to be the same period and the same session as those of the “estimated value of session-based application quality index” which is the input of step S108.

(79) As described above, according to the third embodiment, it is possible to construct a mathematical model for estimating the watching time by taking the content attribute of each session further into consideration. Moreover, according to the third embodiment, it is possible to perform streaming design (optimization of encoding conditions) that maximizes the average watching time.

(80) Hereinabove, three embodiments based on the proportional hazard model (a case where the application quality index only is considered, a case where the application quality index and the user attribute are considered, and a case where the application quality index and the content attribute are considered as the factors affecting the abandonment rate) have been described. However, a case where all factors including the application quality index, the user attribute, and the content attribute are considered may be exemplified as another embodiment.

(81) Next, a fourth embodiment will be described. In the fourth embodiment, differences from the first embodiment will be described. Features of the fourth embodiment, which are not specifically described, may be the same as those of the first embodiment.

(82) FIG. 8 is a diagram illustrating a functional configuration example of the streaming design assistance device 10 according to the fourth embodiment. In FIG. 8, the same or corresponding portions as those of FIG. 2 will be denoted by the same reference numerals, and the description thereof will be omitted. As illustrated in FIG. 8, the streaming design assistance device 10 of the fourth embodiment includes a watching time function estimation unit 14 instead of the abandonment rate function estimation unit 11. The watching time function estimation unit 14 is realized by one or more programs installed on the streaming design assistance device 10 causing the CPU 104 to execute processing.

(83) The watching time function estimation unit 14 receives, as its input, the “watching time of all sessions occurred in past certain period” and the “application quality index of all sessions” and outputs a “watching time function” indicating the relationship between the watching time and the application quality index.

(84) The “watching time function” follows an acceleration model in survival time analysis and a probability variable t representing the watching time of a session i is represented by Formula (10) below.
[Formula 10]
t=t.sub.0 exp(γ.sup.Tz.sub.i)  (10)

(85) Here, z.sub.i is an application quality index vector of the session i. γ is a coefficient vector corresponding to the application quality index vector z.sub.i. t.sub.0 is a probability variable representing the watching time of a reference session watched under a reference quality (the quality when the application quality index vector is a zero vector). That is, the “watching time function” is a model that represents the watching times of individual sessions in a form of multiplying a watching time of the reference session by the influence of an application quality index different for respective sessions.

(86) In the case of an acceleration model, unlike the proportional hazard model, it is necessary to assume a probability density function f(z.sub.i,t) of a watching time of the session i parametrically, and an exponential distribution, the Weibull distribution, a log-normal distribution, a log-logistic distribution, and the like can be assumed as a distribution. For example, a probability density function f(z.sub.i,t) when the Weibull distribution is assumed is represented by Formula (11) below.
[Formula 11]
f(z.sub.i,t)=pεt.sup.p-1 exp(−εt.sup.p)=pε{t.sub.0 exp(γ.sup.Tz.sub.i)}.sup.p-1exp[−ε{t.sub.0 exp(γ.sup.Tz.sub.i)}.sup.p]   (11)

(87) The coefficient vector γ in Formulae (10) and (11) is estimated on the basis of a watching time t.sub.i (i=1, 2, . . . , N) of N sessions observed in a video watching experiment of adaptive bitrate video streaming and an application quality index vector z.sub.i of each session. The estimation is performed by a method of maximizing a likelihood represented by Formula (12) below.
[Formula 12]
L(γ,p,ε)=Π.sub.i=1.sup.Nf(z.sub.i,t.sub.i).sup.γ.sup.iS(z.sub.i,t.sub.i).sup.1-δ.sup.i  (12)

(88) Here, f(z.sub.i,t.sub.i) is the probability density function represented by Formula (11) in which the watching time t.sub.i and the application quality index vector z.sub.i of the session i are substituted. S(z.sub.i,t.sub.i) is a survival function (a function representing a probability of watching being continued until the watching time) corresponding to the probability density function f(z.sub.i,t.sub.i) in which the watching time t.sub.i and the application quality index vector z.sub.i of the session i are substituted. Moreover, δ.sub.i is a binary variable that is 0 when watching is stopped due to the end of experiment and is 1 when watching is not stopped. That is, the coefficient vector γ is estimated by a method of maximizing the likelihood obtained by multiplying the probability that the watching time is t.sub.i or more for a session in which watching is stopped at the watching time t.sub.i and the probability that the watching time is t.sub.i for a session in which watching is ended at the watching time t.sub.i by the user's free will with respect to all sessions.

(89) FIG. 9 is a flowchart for describing an example of the processing procedure executed by the streaming design assistance device 10 according to the fourth embodiment. In FIG. 9, the same steps as those of FIG. 3 will be denoted by the same step numbers and the description thereof will be omitted. As illustrated in FIG. 9, the flow of processing executed by the streaming design assistance device 10 is basically the same as that of the first embodiment. However, steps S102 and S108 are partially different, step S102 is replaced with step S102a and step S108 is replaced with step S108a.

(90) Specifically, in step S102a, the watching time function estimation unit 14 estimates the watching time function. In step S108a, the encoding condition optimization unit 13 estimates the average watching time on the basis of Formula (3). In this case, the probability density function f(z.sub.i,t) in Formula (3) is represented by Formula (11).

(91) Hereinabove, one embodiment based on an acceleration model (a case where the application quality index only is considered as the factor that affects the abandonment rate) has been described. Similarly to the case of the proportional hazard model, a case where the application quality index and the user attribute are considered, a case where the application quality index and the content attribute are considered, and a case where all factors including the application quality index, the user attribute, and the content attribute are considered may be exemplified as other embodiments. That is, at least one of the second and third embodiments may be combined with the fourth embodiment.

(92) In the above description, examples of a proportional hazard model and an acceleration model are exemplified. However, in addition to these models, various regression models such as a linear regression model, a nonlinear regression model, a regression tree model, a random forest model, a support vector regression model, a neural network model, or a Bayesian network model may be used as a model that estimates the watching time.

(93) In the present embodiment, the abandonment rate function estimation unit 11 or the watching time function estimation unit 14 is an example of a first estimation unit. The application quality index estimation unit 12 is an example of a second estimation unit. The encoding condition optimization unit 13 is an example of a third estimation unit.

(94) While embodiments of the present invention have been described, the present invention is not limited to the above-described specific embodiments, and various modifications and changed can be made without departing from the spirit of the present invention described in the claims.

REFERENCE SIGNS LIST

(95) 10 Streaming design assistance device 11 Abandonment rate function estimation unit 12 Application quality index estimation unit 13 Encoding condition optimization unit 14 Watching time function estimation unit 100 Drive device 101 Recording medium 102 Auxiliary storage device 103 Memory device 104 CPU 105 Interface device B Bus