Method, user terminal and server for determining download quality of a video

KR1020260132219APending Publication Date: 2026-09-02KAKAO CORP
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
KR1020250024802
Authority / Receiving Office
KR · KR
Patent Type
Applications
Current Assignee / Owner
Filing Date
2025-02-26
Publication Date
2026-09-02

Smart Images

  • Figure PAT00002_ABST
    Figure PAT00002_ABST
Patent Text Reader

Abstract

A method for determining the download quality of a video by a user terminal of the present invention comprises the steps of: downloading a video including a plurality of segments; determining a first estimated data size downloadable for the video based on a buffer, throughput, playback rate, and safety factor associated with the video; determining a first actual data size required for an actual download of the video based on a bitrate, segment duration, latency, and segment download factor associated with the video—wherein the segment download factor is related to the number of segment downloads—and determining the download quality of the video based on the first estimated data size and the first actual data size.
Need to check novelty before this filing date? Find Prior Art

Description

Technology Field

[0001] The present invention relates to a method for a user terminal to determine the download quality of a video. Background Technology

[0002] Recently, video playback services have undergone various technological advancements to enable users to watch their desired videos quickly and smoothly. Among these services, streaming, which allows videos to be played while being downloaded, is widely used. Streaming transmits video data from a server to a user's terminal in real time, allowing for immediate playback on the device and enabling users to enjoy content without any waiting time for downloads.

[0003] One of the core technologies of streaming is the effective management of the buffer. Video data is temporarily stored in the user's device buffer via the network before playback, and this buffer must be maintained appropriately according to the network environment and data transmission speed. However, if the network conditions are unstable or the data transmission speed is slow, the buffer may be exhausted, leading to buffering where the video stops. This buffering phenomenon can be a major factor degrading the user's viewing experience.

[0004] To address this, modern video streaming services are striving to provide an optimal video playback environment by analyzing network conditions and user device performance. In other words, various technical approaches to optimizing video playback services are being proposed, and the importance of technology that selects and provides the optimal video quality to the user during playback is being highlighted. Prior art literature

[0005] Republic of Korea Registered Patent No. 10-2015-0110329 (Published on Oct. 02, 2015) The problem to be solved

[0006] The purpose of the present invention is to enable a user terminal to select the optimal download quality while minimizing buffering during playback of a video, based on the buffer, throughput, and playback speed of the video on the user terminal.

[0007] The present invention aims to determine the download quality based on the expected data size and actual data size related to the download of a specific video, and to change the download quality as the buffer and network environment change. means of solving the problem

[0008] A method for determining the download quality of a video by a user terminal of the present invention comprises the steps of: downloading a video including a plurality of segments; determining a first estimated data size downloadable for the video based on a buffer, throughput, playback rate, and safety factor associated with the video; determining a first actual data size required for an actual download of the video based on a bitrate, segment duration, latency, and segment download factor associated with the video—wherein the segment download factor is related to the number of segment downloads—and determining the download quality of the video based on the first estimated data size and the first actual data size.

[0009] In one embodiment of the present invention, the segment includes a first type segment that can be played independently and a second type segment that cannot be played independently, and the step of downloading the video includes, as the download quality is changed, a step of checking the type of segment to be downloaded with the changed quality, and if the type of segment to be downloaded with the changed quality is a second type segment, a step of downloading from the first segment closest to the segment to be downloaded with the changed quality to the segment to be played with the changed quality - the first segment is included in the first type segment - and the first segment may be a segment preceding the segment to be downloaded with the changed quality.

[0010] In one embodiment of the present invention, in the step of determining the first expected data size, the first expected data size may be determined by the following formula (1).

[0011] Formula (1): Estimated data size = ((buffer * safety factor) / (playback rate)) * throughput

[0012] In one embodiment of the present invention, the safety factor may be determined to be any one of 0.80 to 1.0.

[0013] In one embodiment of the present invention, in the step of determining the first actual data size, the first actual data size may be determined by the following formula (2).

[0014] Formula (2): Actual data size = Bitrate * (Segment length + Latency) * Segment down factor

[0015] In one embodiment of the present invention, when downloading the video, there is a bitrate corresponding to each download quality, and the download quality of the video may correspond to the highest download quality satisfying the following formula (3).

[0016] Formula (1): Estimated data size = ((buffer * safety factor) / (playback rate)) * throughput

[0017] Formula (2): Actual data size = Bitrate * (Segment length + Latency) * Segment down factor

[0018] Formula (3): Estimated data size ≥ Actual data size

[0019] In one embodiment of the present invention, the method may further include the steps of confirming an increase in throughput during the download of the video, confirming a second estimated data size to which the increased throughput is applied, and requesting a server to download a segment according to an increased download quality based on the second estimated data size.

[0020] In one embodiment of the present invention, the download quality has a predetermined level, and when the download quality is at a minimum level, in the step of increasing the download quality, the user terminal can increase the download quality to a download quality level one step higher.

[0021] In one embodiment of the present invention, the method may further include the steps of confirming a reduction in throughput during the download of the video, confirming a third estimated data size to which the reduced throughput is applied, and requesting the download of a segment according to the reduced download quality based on the third estimated data size.

[0022] In one embodiment of the present invention, the step of requesting a download of the segment may include the step of confirming the reduced download quality, which is downloadable faster than continuing to perform a download of the existing segment.

[0023] In one embodiment of the present invention, the download quality has a predetermined level, the third expected data size is smaller than the first actual data size, and when the download quality is at a minimum level, the step of requesting the download is not performed, and the download quality for the segment can be maintained at the download quality of the minimum level.

[0024] In one embodiment of the present invention, the method further includes a step of checking for a change in throughput during the download of the video, wherein the change in throughput can be checked only when download data exceeding a predetermined standard is obtained.

[0025] In one embodiment of the present invention, if the throughput decreases during the download of the video, the method may further include a step of checking whether there is a download quality capable of downloading the video within the buffer.

[0026] In one embodiment of the present invention, the step of determining whether the buffer satisfies a predetermined condition is further included, and the steps of determining the first expected data size, determining the first actual data size, and determining the download quality may be performed only when the predetermined condition is satisfied.

[0027] In one embodiment of the present invention, if the download time of a specific segment is less than or equal to a predetermined time, the download time may be determined to a predetermined value.

[0028] In one embodiment of the present invention, the download time may be determined by the predetermined value only when the data size of the specific segment is greater than or equal to the predetermined size.

[0029] A user terminal for determining the download quality of a video according to the present invention comprises a memory and a processor connected to the memory and configured to execute commands included in the memory, wherein the processor is configured to perform the steps of: downloading a video comprising a plurality of segments; determining a first estimated data size downloadable for the video based on a buffer, throughput, playback rate, and safety factor associated with the video; determining a first actual data size required for actual downloading of the video based on a bitrate, segment duration, latency, and segment download factor associated with the video—wherein the segment download factor is related to the number of segment downloads—and playing the video through the download quality determined based on the first estimated data size and the first actual data size.

[0030] A method for a server of the present invention to provide a segment according to the download quality of a video comprises the steps of: receiving a request from a user terminal to download a video including a plurality of segments; and, in accordance with the request, providing at least one segment among the plurality of segments, wherein the at least one segment is a segment according to the download quality determined based on an estimated data size determined based on a buffer, throughput, playback rate, and safety factor related to the video of the user terminal, and an actual data size determined based on a bitrate, segment duration, latency, and a segment download factor related to the video of the user terminal, and the segment download factor is related to the number of segment downloads.

[0031] A server providing segments according to the download quality of a video according to the present invention comprises a memory and a processor connected to the memory and configured to execute commands included in the memory, wherein the processor comprises the steps of receiving a request to download a video including a plurality of segments from a user terminal and, in accordance with the request, providing at least one segment among the plurality of segments, wherein the at least one segment is a segment according to the download quality determined based on an estimated data size determined based on a buffer, throughput, playback rate, and safety factor related to the video of the user terminal, and an actual data size determined based on a bitrate, segment duration, latency, and a segment download factor related to the video of the user terminal, and the segment download factor is related to the number of segment downloads. Effects of the invention

[0032] The present invention has the advantage of enabling the user terminal to select the optimal download quality while minimizing buffering during playback of a video, based on the buffer, throughput, and playback speed of the video on the user terminal.

[0033] The present invention has the advantage of determining the download quality based on the expected data size and actual data size related to the download of a specific video, and changing the download quality as the buffer and network environment change. Brief explanation of the drawing

[0034] FIG. 1 is a diagram illustrating an example of a network environment according to one embodiment of the present invention. FIG. 2 is a flowchart illustrating a method for a user terminal of the present invention to determine the download quality of a video. FIG. 3 is a diagram illustrating an algorithm for determining the download quality of a video by a user terminal of the present invention. FIG. 4 illustrates an exemplary bitrate corresponding to the download quality of a video according to one embodiment of the present invention. FIG. 5 schematically illustrates the process of downloading a video according to one embodiment of the present invention. FIG. 6 is a diagram illustrating how a user terminal according to an embodiment of the present invention increases the download quality of a video as the throughput increases. FIG. 7 is a diagram illustrating how a user terminal according to an embodiment of the present invention reduces the download quality of a video as the throughput decreases. FIG. 8 is a diagram illustrating an algorithm for determining whether a user terminal, according to an embodiment of the present invention, will cancel the current download and attempt to download at a different quality. FIG. 9 is a flowchart illustrating a method for a server of the present invention to provide segments according to the download quality of a video. Specific details for implementing the invention

[0035] Hereinafter, embodiments disclosed in this specification will be described in detail with reference to the attached drawings. Identical or similar components regardless of drawing symbols are assigned the same reference number, and redundant descriptions thereof will be omitted. Furthermore, in describing the embodiments disclosed in this specification, if it is determined that a detailed description of related prior art could obscure the essence of the embodiments disclosed in this specification, such detailed description will be omitted.

[0036] Terms including ordinal numbers, such as first, second, etc., may be used to describe various components, but said components are not limited by said terms. These terms are used solely for the purpose of distinguishing one component from another.

[0037] Singular expressions include plural expressions unless the context clearly indicates otherwise.

[0038] In this application, each step described may be performed regardless of the order listed, except where it must be performed in the order listed by a particular causal relationship.

[0039] In this application, terms such as “comprising” or “having” are intended to specify the existence of the features, numbers, steps, actions, components, parts, or combinations thereof described in the specification, and should be understood as not precluding the existence or addition of one or more other features, numbers, steps, actions, components, parts, or combinations thereof.

[0041] The present invention will be described below with reference to the attached drawings.

[0042] FIG. 1 is a diagram illustrating an example of a network environment according to one embodiment of the present invention.

[0043] A network environment according to an embodiment of the present invention illustrated in FIG. 1 may include a user terminal (10) and a server (20). The user terminal (10) may correspond to at least one user terminal connected to the server (20) via a network. Here, the user terminal (10) may include a PC, mobile device, or tablet, and is not limited to a specific terminal.

[0044] The network is not limited to a specific communication method and may include not only communication methods utilizing communication networks that the network can include (e.g., mobile communication networks, wired internet, wireless internet, broadcasting networks) but also short-range wireless communication.

[0045] For example, a user terminal (10) may be a terminal used by logging in with a user account registered in an application related to a video provision service provided by a server (20). Here, the application is not limited in method and can be executed in various ways, such as Web, Android, and iOS applications.

[0046] The user terminal (10) may include a communication unit (11), an input unit (12), an output unit (13), a memory (14), and a processor (15).

[0047] The communication unit (11) can communicate with the server (20) or other terminals via wired or wireless means.

[0048] The input unit (12) can receive various information through user operation and input actions. Such an input unit (12) can be a touchscreen module, keyboard, mouse, button, camera, stylus, microphone, etc.

[0049] The user terminal (10) can receive user interaction through the input unit (12). Interaction refers to the user operating the input unit to input information reflecting the user's selection or intention into the user terminal (10). For example, the interaction may be a touch on a touchscreen, a click on a mouse, typing on a keyboard, sound input from a microphone, image capture by a camera, motion recognition by a motion sensor, etc.

[0050] The output unit (13) can output various information. The output unit (13) may be a display device, a speaker, a vibration generating device, a tactile generating device, etc. In some cases, the output unit (13) may be a device (e.g., Bluetooth earphones) that receives and outputs a signal by being connected to a user terminal (10) via wired or wireless communication (e.g., short-range wireless communication such as Bluetooth).

[0051] The memory (14) functions as a storage medium and can store a number of applications running on the user terminal (10), data for the operation of the user terminal (10), and commands. This memory (14) may be provided in hardware in the form of various storage devices such as ROM, RAM, flash drive, hard drive, etc., or in the form of web storage.

[0052] In one embodiment, an application including a function to provide video streaming may be stored in the memory (14).

[0053] The processor (15) can determine the download quality of the video by controlling the overall operation of the communication unit (11), input unit (12), output unit (13) and memory (14).

[0054] In the present invention, a user terminal (10) can download a video comprising a plurality of segments. The user terminal (10) can determine a first estimated data size for downloadable video based on a buffer, throughput, playback rate, and safety factor related to the video, and can determine a first actual data size required for actual downloading of the video based on a bitrate, segment duration, latency, and segment download factor related to the video. Here, the segment download factor may be related to the number of segment downloads. The user terminal (10) can determine the download quality of the video based on the first estimated data size and the first actual data size.

[0055] Here, a buffer refers to a memory space that temporarily stores data during video streaming. The user terminal (10) stores downloaded video data in the buffer before playback and adjusts the difference between the download speed and the playback speed to play the video without interruption.

[0056] Here, throughput refers to the amount of data that a server (20) (or network) can transmit per unit of time. Throughput can be measured in bps (bits per second). Throughput can be determined by the network environment. For example, throughput may increase if the network environment improves. Conversely, throughput may decrease if the network environment deteriorates.

[0057] Here, the playback rate refers to the speed at which a video is played on a user terminal (10). The playback rate may generally be 1x (1.0x) as the default speed. However, the playback rate can be determined by the user's settings. For example, the user can set the playback rate to 2x (2.0x) to play the video twice as fast. Conversely, the user can set the playback rate to 0.5x (0.5x) to play the video twice as slow.

[0058] If buffering occurs during live video playback and the video fails to keep up with the time at which it needs to be played in real time, the user terminal (10) can increase the playback speed. Through this, the user can play the video at a time close to real time.

[0059] In some cases, the maximum playback speed may be limited if the buffer is insufficient. For example, if the buffer is insufficient, the maximum playback speed may be limited to 1.0 or lower.

[0060] Here, the Safety Factor refers to a coefficient applied to lower the actual buffer value when determining the video download quality based on the buffer. Specifically, a corrected buffer value can be determined by multiplying the actual buffer value by the Safety Factor. Subsequently, the download quality can be selected based on the corrected buffer value. In this case, by calculating the buffer value conservatively, the application of excessively high quality is prevented, and a stable playback environment can be maintained.

[0061] Here, the estimated data size refers to the size of data that can be reliably downloaded while playing the video. Reliably downloadable means that phenomena such as the video stopping or buffering do not occur. The estimated data size can be determined based on the buffer, throughput, playback speed, and safety factor related to the video of the user terminal (10).

[0062] Here, bitrate refers to the data transfer speed required to play a video. Bitrate can be measured in units of bps (bits per second). A higher bitrate may result in better download quality. In such cases, more network bandwidth may be required compared to a lower bitrate. Conversely, a lower bitrate may result in lower download quality but reduce the demand for network bandwidth.

[0063] Here, a segment refers to a small unit of data into which a video is divided. For streaming, the video can be divided into segments of a certain length and transmitted over a network. A user terminal (10) can receive and play the video in segment units.

[0064] A segment may include a first type segment that can be played independently and a second type segment that cannot be played independently. Whether it can be played independently may be determined by whether the segment includes an I-Frame. An I-Frame may be a frame consisting of complete image data that does not depend on other frames.

[0065] Here, the segment length refers to the temporal length of each segment in video streaming. For example, the segment length can be set to a short time, such as 0.5 seconds, 1 second, 2 seconds, etc. Accordingly, the user terminal (10) can provide a streaming service by downloading each segment and playing the segment at the same time.

[0066] If the segment length is short, it can adapt quickly to changes in the network environment, but network overhead may increase. Specifically, if the segment length is short, the number of packets that must be transmitted from the server (20) to the user terminal (10) increases, which may increase network overhead. Conversely, if the segment length is long, overhead is reduced, but the adaptation speed may be slow. As such, the segment length can act as an important variable in adjusting the quality and stability of the streaming service.

[0067] Here, the delay time refers to the time taken for the user terminal (10) to request data from the server (20) and to obtain the data. Specifically, the delay time may refer to the time from when the user terminal (10) sends a request to download a segment to the server (20) for video playback until the server (20) receives the download request.

[0068] In existing video players, the general method for calculating throughput was to use only the pure download time. However, this does not reflect the time from requesting a download to receiving it, which may cause some error. Therefore, the present invention can minimize error in determining image quality by additionally reflecting the delay time.

[0069] Here, the segment down factor may be a value for the number of connected segments when downloading segments by connecting them. For example, when downloading one Type 1 segment that can be played independently and one Type 2 segment that cannot be played independently by connecting them, the segment down factor may be 2. Also, when downloading one Type 1 segment and two Type 2 segments by connecting them, the segment down factor may be 3. Conversely, when downloading only one Type 1 segment without connecting segments, the segment down factor may be 1.

[0070] Here, the actual data size refers to the size of the data actually downloaded while playing the video. The actual data size can be determined based on the bitrate, segment length, delay time, and segment down factor associated with the video of the user terminal (10).

[0071] Here, download quality refers to the quality reflected when a segment is played back. The higher the download quality, the higher the resolution and bitrate can be. Conversely, the lower the download quality, the lower the resolution and bitrate can be. In other words, since the bitrate increases as the download quality increases, the buffer can be exhausted more quickly in the same network environment.

[0073] The server (20) may be implemented as a computer device or multiple computer devices that provide commands, code, files, content, services, etc. The server (20) may be a server (20) capable of transmitting and receiving information by communicating with a user terminal (10) through a network.

[0074] The server (20) may include a processor (21), memory (22) and a communication unit (23).

[0075] The processor (21) can control the overall operation of the memory (22) and the communication unit (23) to provide information about the download quality to the user terminal (10).

[0076] The memory (22) functions as a storage medium and can store a number of applications running on the server (20), data for the operation of the server (20), and commands. In one embodiment, the memory (22) may store an application that includes a function for providing video streaming.

[0077] These memory (22) may be provided in hardware in the form of various storage devices such as ROM, RAM, flash drive, hard drive, etc., or in the form of web storage.

[0078] The communication unit (23) can communicate with the user terminal (10) via a network in a wired / wireless manner.

[0079] The server (20) of the present invention can provide segments according to the download quality of the video according to the network environment of the user terminal (10).

[0080] In the present invention, the server (20) receives a request from a user terminal (10) to download a video including a plurality of segments, and in response to the request, may provide at least one segment among the plurality of segments. Here, the at least one segment may be a segment according to the download quality determined based on an estimated data size determined based on a buffer, throughput, playback rate, and safety factor related to the video of the user terminal (10), and an actual data size determined based on a bitrate, segment duration, latency, and a segment download factor related to the video of the user terminal (10). Here, the segment download factor may be related to the number of segment downloads.

[0082] Hereinafter, with reference to FIGS. 2 to 9, an embodiment of a method for determining the download quality of a video by a user terminal (10) of the present invention will be described.

[0083] FIG. 2 is a flowchart for explaining a method in which a user terminal (10) of the present invention determines the download quality of a video.

[0084] In step (201), the user terminal (10) downloads a video containing multiple segments.

[0085] A user terminal (10) can request a download of a video from a server (20). Here, the video may include multiple segments. The user terminal (10) can request multiple downloads for multiple segments.

[0086] A request for a download of a video by a user terminal (10) may be a download request for each of multiple segments. Specifically, the user terminal (10) may request to download one segment per download request for multiple segments. In this case, if the video contains N segments, the user terminal (10) may request N downloads.

[0087] Here, a segment may refer to a small data unit into which a video is divided. When downloading a video, the user terminal (10) can provide a streaming service by downloading the video divided into multiple segments and playing the corresponding segments simultaneously.

[0088] In some cases, a download request for a video may be a request to download multiple segments (or all of multiple segments).

[0089] The user terminal (10) can sequentially play the downloaded segments. Specifically, the segments may include an I-Frame, a P-Frame, and a B-Frame. Here, the I-Frame may be a frame consisting of complete image data that does not depend on other frames. Therefore, the I-Frame can reconstruct the entire screen using only that frame.

[0090] A P-Frame can be a prediction frame created based on a previous I-Frame or another P-Frame. In other words, a P-Frame stores parts with minimal change and can construct the screen by referencing data from the previous frame. In the case of a P-Frame, it can be stored with a much smaller data size compared to an I-Frame.

[0091] A B-Frame can be a frame that predicts data by referencing both the previous and next frames. Specifically, a B-Frame can store only the most efficient data by analyzing the difference between the preceding and subsequent frames. Through this, B-Frames can maximize compression efficiency even in scenes with a lot of movement. Additionally, since B-Frames contain only the minimum necessary information, their data size can be smaller than that of I-Frames and P-Frames.

[0092] The user terminal (10) can decode an I-Frame to construct an initial screen and then provide a smooth image (e.g., a non-buffering image) through a P-Frame or a B-Frame.

[0094] In step (203), the user terminal (10) determines a first estimated downloadable data size for a video based on a buffer, throughput, playback speed, and safety factor associated with the video.

[0095] In some cases, the user terminal (10) may perform steps (203) to (207) only when the buffer satisfies a predetermined condition. Here, the predetermined condition may be set so that the buffer value is relatively lower than the value generally required in streaming (e.g., 10 seconds) (e.g., 2 seconds to 4 seconds or less).

[0096] The user terminal (10) may determine whether the buffer satisfies a predetermined condition before performing step (203), and may perform steps (203) through (207) only if the predetermined condition is satisfied. Alternatively, the user terminal (10) may always perform steps (203) through (207) regardless of the buffer value.

[0097] The user terminal (10) may not determine the download quality according to the method described below when there is no buffer for the video in certain situations. Here, the specific situation in which there is no buffer for the video may be a situation such as when playing the video for the first time or when changing the playback point of the video.

[0098] The user terminal (10) can determine the expected data size. The expected data size can be determined based on the buffer, throughput, playback speed, and safety factor. Specifically, the expected data size can be determined by the following formula (1).

[0099] Formula (1): Estimated data size = (((buffer)*safety factor) / (playback rate))*throughput

[0100] Here, throughput can be determined based on the average throughput of N segments actually downloaded recently and a safety factor of throughput (which corresponds to a different value from the safety factor of the buffer). For example, throughput can be calculated by multiplying the average throughput of 4 segments downloaded recently by a safety factor of 0.9.

[0101] In some cases, throughput may be determined based on the throughput of the last downloaded segment rather than the average value. For example, if the throughput of the last downloaded segment is less than a predetermined value than the throughput of the previously downloaded segment (e.g., less than 0.5 times), it may be determined based on the throughput calculated last.

[0102] In some cases, the throughput of the last downloaded segment may be withheld from being applied when calculating the average value. Specifically, if the throughput of the last downloaded segment is more than twice the throughput of the previously downloaded segment, the throughput of the last downloaded segment may be withheld from being applied when calculating the average value. In such cases, the user terminal (10) may download one more segment with the same quality. Then, when downloading one more segment, the throughput of the last downloaded segment may be applied when calculating the average value only if it is confirmed that the throughput is more than twice the same as the previous segment download.

[0103] Referring to Equation (1), the user terminal (10) can conservatively correct the buffer value by multiplying the actual buffer value by a safety factor. The safety factor can be set to any value greater than 0.0 and less than or equal to 1.0. If the value of the safety factor is set too low, the corrected buffer value may become too low and may fail to reflect the actual network environment. In this case, the actual network environment may not be reflected, and an appropriate image quality may not be selected. Therefore, the safety factor may be a value between 0.5 and 1.0. Preferably, the safety factor may be determined to be any one of the values ​​between 0.8 and 1.0.

[0104] For example, if the buffer has a value within 2 seconds and the safety factor has a low value such as 0.5, the corrected buffer value can be corrected to a low value such as 1 second. In this case, even if the actual network environment is good, the server (20) can continuously provide low quality based on the corrected buffer value.

[0105] The user terminal (10) can determine the first estimated data size through the formula (1). Specifically, the first estimated data size can be determined by substituting the buffer value that the user terminal (10) has for the video, a safety factor that is predetermined (or determined by the user terminal (10)), the playback speed of the video of the user terminal (10), and the throughput that takes into account the network environment of the user terminal (10) into the formula (1).

[0106] In some cases, the delay time may not be reflected in the following formula (2) (in such cases, only the 'delay time' variable is removed from formula (2)). In such cases, the delay time may be reflected in formula (1) instead of formula (2). That is, the delay time may be reflected in either formula (1) or formula (2). For example, if the delay time is not reflected in formula (2), formula (1) may reflect the delay time according to the following formula.

[0107] When reflecting the delay time in Formula (1)

[0108] Estimated data size = (((buffer - latency) * safety factor) / (playback rate)) * throughput

[0110] In step (205), the user terminal (10) determines a first actual data size required for an actual download of a video based on the bitrate, segment length, delay time, and segment down factor associated with the video.

[0111] The user terminal (10) can determine the actual data size. The actual data size can be determined based on the bit rate, segment length, delay time, and segment down factor. Specifically, the actual data size can be determined by the following formula (2).

[0112] Formula (2): Actual data size = Bitrate * (Segment length + Latency) * Segment down factor

[0113] Here, latency can be determined based on the average latency of N segments actually downloaded recently and a safety factor for latency (corresponding to a different value than the safety factor of the buffer). For example, latency can be calculated by multiplying the average latency of 4 segments downloaded recently by a safety factor of 0.9 for throughput.

[0114] Referring to formula (2), it can be seen that the user terminal (10) calculates the data size by multiplying by a segment download factor. When the user terminal (10) downloads while playing a video, the user terminal (10) may use a so-called streaming method of downloading and playing each segment included in the video. The segments may include a first type segment that can be played independently and a second type segment that cannot be played independently.

[0115] As described above, the first type segment can be played independently, but the second type segment may not be playable independently. Unless otherwise defined, the following description will assume that the first segment is the first type segment and the second segment is the second type segment.

[0116] When the network environment changes, the user terminal (10) can download a segment of a download quality suitable for the network environment and play it. Here, when determining the download quality suitable for the network environment, the download quality can be determined based on the length of the buffer currently remaining. That is, even if the network quality changes, if the buffer is sufficient, the download quality can be maintained at a high quality. However, if the buffer is insufficient, the download quality can be changed to a low quality. As the download quality of the video changes, the user terminal (10) can send a request to the server (20) to download a segment according to the changed quality.

[0117] The user terminal (10) can check the type of segment downloaded with changed quality. If the type of segment downloaded with changed quality is a first type segment, the user terminal (10) can play the segment downloaded with changed quality independently. Accordingly, the user terminal (10) can download and play the segment.

[0118] However, in contrast to this, if the type of segment downloaded with changed quality is a second type segment, the user terminal (10) may not be able to play the segment downloaded with changed quality independently even if it downloads the segment downloaded with changed quality. Therefore, the user terminal (10) can play the segment by downloading the first segment again, which can be played independently, and starting decoding again from the first segment. Here, the first segment may be the segment closest to the segment downloaded with changed quality. Also, the first segment may be a segment earlier than the segment downloaded with changed quality.

[0119] The user terminal (10) can download segments according to various methods.

[0120] For example, a user terminal (10) may request multiple downloads corresponding to the number of segments. For example, the user terminal (10) may send four download requests to the server (20) to download four segments. That is, only one segment can be downloaded per request. In this case, by downloading one segment per request, the rapidly changing network can be appropriately reflected.

[0121] As another example, the user terminal (10) may request to download multiple segments at once. However, in this case, it may not be able to adequately reflect the rapidly changing network.

[0122] The segment down factor may correspond to a value for the number of segments being downloaded. Specifically, if the segment downloaded with changed quality is the first segment, the segment down factor may be 1. Conversely, if the segment downloaded with changed quality is the second segment, the segment down factor may be 2 or more. Specifically, if there are N second-type segments between the first segment and the second segment, the segment down factor may be N+2. For example, if there is one second-type segment (third segment) between the first segment and the second segment, the user terminal (10) downloads the first segment, the second segment, and the third segment all to play the second segment, so the segment down factor may be 3.

[0123] The user terminal (10) can determine the first actual data size through the formula (2). Specifically, the first actual data size can be determined by substituting the bitrate corresponding to the download quality of the user terminal (10), the length of the segment being downloaded, the delay time due to communication between the user terminal (10) and the server (20), and the segment download coefficient according to the segment being downloaded into the formula (2).

[0124] When the user terminal (10) plays a video, there may be a bitrate corresponding to each download quality. For example, if the download quality is 360p, the bitrate may be 864 to 1328 (kbps). Also, if the download quality is 480p, the bitrate may be 1328 to 2128 (kbps). In this way, as the download quality (level) increases, the bitrate may also increase.

[0126] In step (207), the user terminal (10) plays a video with a download quality determined based on a first estimated data size and a first actual data size.

[0127] The user terminal (10) can determine the download quality. Specifically, the user terminal (10) can determine the download quality based on the expected data size and the actual data size. If the expected data size is large, the user terminal (10) determines that the network environment is good and can increase the download quality. Conversely, if the expected data size is small, the user terminal (10) determines that the network environment is bad and can decrease the download quality.

[0128] Specifically, the user terminal (10) can determine the download quality by comparing the expected data size and the actual data size. Here, when determining the download quality, the reference expected data size may be the first expected data size. Also, when determining the download quality, the reference actual data size may be the first actual data size. When determining the download quality, the user terminal (10) can determine the highest download quality that satisfies the following formula (3) as the download quality of the video.

[0129] Formula (1): Estimated data size = ((buffer * safety factor) / (playback rate)) * throughput

[0130] Formula (2): Actual data size = Bitrate * (Segment length + Latency) * Segment down factor

[0131] Formula (3): Estimated data size ≥ Actual data size

[0133] The user terminal (10) can change the download quality when the network environment changes during video playback. The user terminal (10) can increase the download quality if the network environment improves during video playback. Conversely, the user terminal (10) can decrease the download quality if the network environment deteriorates during video playback. As an example, an improvement in the network environment may result in an increase in the throughput for downloading the video. Conversely, a deterioration in the network environment may result in a decrease in the throughput for downloading the video.

[0134] The user terminal (10) can verify an increase in throughput. Referring to Equation (1), as throughput increases, the estimated data size can also increase proportionally. Here, the estimated data size to which the increased throughput is applied may be the second estimated data size. The user terminal (10) can increase the download quality based on the second estimated data size.

[0135] More specifically, the user terminal (10) can select a download quality level higher than the download quality and apply a corresponding bitrate to the actual data size. Here, the actual data size to which the bitrate corresponding to the high download quality is applied may be a second actual data size.

[0136] If the second expected data size is greater than or equal to the second actual data size, the user terminal (10) can increase the download quality of the video to a higher level of download quality. After that, the user terminal (10) can send a request to the server (20) to download a segment corresponding to the increased higher level of download quality.

[0137] When the download quality of the video being played is at the minimum level, the user terminal (10) can increase the download quality by one step when the user terminal (10) increases the download quality. For example, when the download quality of the video being played by the user terminal (10) is Level 1, even if the user terminal (10) can immediately change the download quality to Level 3, the user terminal (10) can increase the download quality to Level 2 instead of Level 3. After that, the user terminal (10) can sequentially increase the download quality from Level 2 to Level 3.

[0138] This may be intended to prevent buffering from occurring due to a sudden change in image quality on the user terminal (10). Specifically, if the network environment temporarily improves and then immediately returns to its original state (normal state), and the video is played at a high level of download quality, the buffer may be quickly lost. In this case, buffering may occur in the video as the network environment returns to its original state (normal state). Therefore, the user terminal (10) may sequentially increase the download quality of the video to play the video stably.

[0139] In contrast, when the user terminal (10) reduces the download quality, it can reduce the download quality all at once. For example, if the download quality of the video being played on the user terminal (10) is Level 4, the user terminal (10) can immediately reduce the download quality to Level 1 as the network environment deteriorates.

[0140] This means that if the network environment does not immediately reflect the deterioration, the buffer may be quickly depleted due to the high bitrate. In such cases, buffering may occur in the video as the buffer is depleted. Therefore, the user terminal (10) can reduce the download quality of the video all at once to play the video stably.

[0141] The user terminal (10) may change the download quality only when it has obtained download data exceeding a predetermined standard. Specifically, the user terminal (10) may not change the download quality based on the fact that it receives the first changed data as the network environment changes. The user terminal (10) may determine that the network environment has changed only when it has obtained download data exceeding a predetermined standard (e.g., three changed download data).

[0142] For example, if the size of the segment being downloaded is very small, the time taken to download the segment may be very short. In such cases, the user terminal (10) may determine that the throughput has increased even though the network environment has not actually improved. To prevent the throughput from being determined to have temporarily increased as in such cases, the user terminal (10) may determine that the network environment has changed based on download data exceeding a predetermined standard.

[0143] Unlike the above, the user terminal (10) can detect a decrease in throughput during the download of the video. Referring to Equation (1), as the throughput decreases, the estimated data size can also decrease proportionally. Here, the estimated data size to which the reduced throughput is applied may be the third estimated data size. The user terminal (10) can reduce the download quality based on the third estimated data size.

[0144] Specifically, the user terminal (10) can reduce the download quality when the third estimated data size is smaller than the first actual data size. The user terminal (10) can select a download quality level lower than the download quality of the video and apply a corresponding bitrate to the actual data size. Here, the actual data size to which the bitrate corresponding to the lower download quality is applied may be the third actual data size.

[0145] If the third expected data size is greater than or equal to the third actual data size, the user terminal (10) can reduce the download quality of the video to a lower level of download quality. After that, the user terminal (10) can send a request to the server (20) to download a segment corresponding to the reduced lower level of download quality.

[0146] In some cases, even if the user terminal (10) confirms a decrease in throughput, if the download quality of the video being downloaded by the user terminal (10) is at the minimum quality, the user terminal (10) can continue to download the video at the minimum level of download quality without reducing the download quality.

[0147] That is, if the throughput decreases during the download of a video, the user terminal (10) can check whether there is a download quality capable of downloading the video within the buffer held by the user terminal (10). If there is a download quality capable of downloading within the buffer, the user terminal (10) can stop the download and change the download quality of the video to that quality.

[0148] If there is no downloadable quality within the buffer, the user terminal (10) can check whether there is a downloadable quality that can be downloaded faster than continuing to download the existing segment. If there is a downloadable quality that can be downloaded faster than continuing to download the existing segment, the user terminal (10) can cancel the existing download and download a new segment according to that quality (reduced download quality).

[0149] If there is no download quality available within the buffer, the user terminal (10) can check whether there is a download quality available that can be downloaded faster than continuing to download the existing download quality. If there is a download quality available that can be downloaded faster, the user terminal (10) can stop (or cancel) the existing download and download a new segment according to that quality (reduced download quality).

[0150] If the download time of a segment is less than or equal to a predetermined time, the user terminal (10) can determine the download time to a predetermined value. If the download time of a segment is too short, the throughput may be measured as high momentarily. In such cases, the throughput may be measured higher than the actual throughput, leading to the selection of a higher quality and consequently causing buffering. Therefore, to prevent this, if the download time of a segment is less than or equal to a predetermined time, the download time can be determined to a predetermined value.

[0151] For example, the predetermined time and the predetermined value may be 50ms. In this case, the user terminal (10) may determine the download time to be 50ms when the download time of the segment is 0.1ms.

[0152] The user terminal (10) can determine the download time to a predetermined value only when the data size of the segment is greater than or equal to a predetermined size. If the download time is determined to a predetermined value even when the segment size is very small, the throughput may be measured as low. Therefore, to prevent this, the download time can be determined to a predetermined value only when the data size of the segment is greater than or equal to a predetermined size.

[0154] FIG. 3 is a diagram illustrating an algorithm for determining the download quality of a video by a user terminal (10) of the present invention.

[0155] Referring to FIG. 3, the user terminal (10) can determine the download quality (300) based on the expected data size and the actual data size. The user terminal (10) can determine the expected data size according to Equation (1) (301). Additionally, the user terminal (10) can determine the expected data size according to Equation (2) (303).

[0156] Formula (1): Estimated data size = ((buffer * safety factor) / (playback rate)) * throughput

[0157] Formula (2): Actual data size = Bitrate * (Segment length + Latency) * Segment down factor

[0158] In the algorithm illustrated in FIG. 3, the bitrate initially applied to Equation (2) may be the bitrate (max) corresponding to the highest level of the video download quality. That is, it may first determine whether it is possible to download at the highest quality, and if download is possible, download at the highest quality, otherwise reduce the quality by one step. The user terminal (10) compares the expected data size with the actual data size (305), and if the expected data size is greater than or equal to the actual data size, it may download the segment at the corresponding download quality (313).

[0159] However, if the expected data size is smaller than the actual data size, it can be checked whether the download quality level is the minimum level (307). If the download quality level is the minimum level, the user terminal (10) can download the segment with that download quality (313). However, if the download quality level is not the minimum level and the expected data size is smaller than the actual data size, the download quality can be changed to a download quality level one step lower (309). After that, the user terminal (10) can apply the bitrate corresponding to the changed download quality to the actual data size (311).

[0160] After that, the user terminal (10) determines the actual data size changed according to step (303) and can perform step (305) again as shown in FIG. 3. If the expected data size in step (305) is greater than or equal to the actual data size, the video can be played with the changed download quality (313). Otherwise, steps (307) through (311) can be repeated once more.

[0162] FIG. 4 illustrates an exemplary bitrate corresponding to the download quality of a video according to one embodiment of the present invention.

[0163] Referring to Fig. 4, the bitrate can be determined according to the download quality.

[0164] For example, if the download quality is 360p, the bitrate can be determined to be between 864 and 1328 (kbps). Also, if the download quality is 480p, the bitrate can be determined to be between 1328 and 2128 (kbps). Also, if the download quality is 720p, the bitrate can be determined to be between 2628 and 4128 (kbps). Also, if the download quality is 1080p, the bitrate can be determined to be between 6192 and 8192 (kbps). Also, if the download quality is 1440p, the bitrate can be determined to be between 16192 and 35192 (kbps).

[0165] As illustrated in FIG. 4, if the download quality increases, the bitrate may also increase. If the bitrate increases, the actual data size may also increase according to Equation (2). Conversely, if the download quality decreases, the bitrate may also decrease. If the bitrate increases, the actual data size may also decrease according to Equation (2).

[0166] Formula (2): Actual data size = Bitrate * (Segment length + Latency) * Segment down factor

[0167] The download quality-bitrate relationship illustrated in FIG. 4 is illustrated exemplarily according to one embodiment, and the download quality-bitrate relationship can be determined according to various methods.

[0169] FIG. 5 schematically illustrates the process of a user terminal (10) downloading a plurality of segments according to one embodiment of the present invention.

[0170] Referring to FIG. 5, a user terminal (10) may request a download of a video from a server (20). The video may include a plurality of segments. The segments may include a first type segment that can be played independently and a second type segment that cannot be played independently.

[0171] A first type segment may be a segment containing an I-frame. For example, as shown in FIG. 5, segments 1, 2, 3, and 6 may be first type segments because they contain an I-frame. However, segments 4 and 5 may be second type segments because they do not contain an I-frame.

[0172] The user terminal (10) can play the video by downloading and playing each segment. However, if the user terminal (10) downloads segment 4 or segment 5, the user terminal (10) may not be able to play segment 4 or segment 5 independently.

[0173] Specifically, when playing segment 4, if the network environment changes and the download quality for segment 5 changes, the user terminal (10) can download segment 5 with the changed download quality. However, since segment 5 corresponds to a second type segment, it may not be possible to play it independently. Therefore, in order to play segment 5, the user terminal (10) can download segment 3, which is the closest first type segment before segment 5, again. That is, the user terminal (10) can download segment 3, segment 4, and segment 5 again.

[0174] The user terminal (10) can download each segment in parallel. Specifically, when the user terminal (10) requests a download of segments from the server (20), it can request a download for each segment individually. For example, the user terminal (10) can request a download for segment 3, segment 4, and segment 5, respectively. Additionally, the user terminal (10) can download each segment in parallel according to each request.

[0175] The segment download factor may be related to the number of downloads of the aforementioned segments. For example, since the segments downloaded by the user terminal (10) to play the segments with the changed quality applied are three (segments 3, 4, and 5), the segment download factor may be determined to be 3. After that, the user terminal (10) can start decoding again from segment 3 to play segment 5.

[0177] FIG. 6 is a diagram illustrating that a user terminal (10) according to one embodiment of the present invention increases the download quality of a video as the throughput increases.

[0178] Referring to FIG. 6, the user terminal (10) can increase the download quality of the video as the throughput increases. The download quality may have predetermined levels. For example, the download quality may have predetermined levels such as Level 1 (360p), Level 2 (480p), Level 3 (720p), and Level 4 (1080p).

[0179] When the download quality is at a minimum level, the user terminal (10) can increase the download quality one step at a time. For example, when the throughput of the user terminal (10) increases from 1000 (Kbps) or less to 10000 (Kbps) or more at once, the user terminal (10) can increase it sequentially from Level 1 to Level 2, rather than increasing it immediately from Level 1 to Level 4. After that, when the user terminal (10) confirms that the throughput is continuously 10000 (Kbps), it can increase it sequentially again from Level 2 to Level 3, and from Level 3 to Level 4.

[0180] Unlike the above, the user terminal (10) can increase the download quality by one or more steps (preferably by two steps) when the download quality is not at the minimum level. For example, if the download quality level is Level 2, the user terminal (10) can increase it directly from Level 2 to Level 4 without increasing it sequentially. That is, the user terminal (10) can increase it by one step when the download quality is at the minimum level, and by one or more steps when it is not at the minimum level.

[0181] Even if the user terminal (10) confirms an increase in throughput, if the download quality is at the highest level, it may not increase the download quality any further.

[0182] In Fig. 6, the horizontal axis is labeled as 'throughput' for convenience of explanation, but the horizontal axis can be set to the expected data size determined by formula (1) (increase).

[0183] Formula (1)(Increase): Estimated data size = ((Buffer * Safety factor) / (Playback rate)) * Increased throughput

[0185] FIG. 7 is a diagram illustrating how a user terminal (10) according to an embodiment of the present invention reduces the download quality of a video as the throughput decreases.

[0186] Referring to FIG. 7, the user terminal (10) can reduce the download quality of the video as the throughput decreases. The download quality may have predetermined levels. For example, the download quality may have predetermined levels such as Level 1 (360p), Level 2 (480p), Level 3 (720p), and Level 4 (1080p).

[0187] When the user terminal (10) reduces the download quality from the highest level, unlike in FIG. 6, it can reduce the download quality by more than one step at a time. For example, when the throughput of the user terminal (10) is reduced from 10,000 (Kbps) or more to 1,000 (Kbps) or less, the download quality level can be reduced directly from Level 4 to Level 1.

[0188] This is because when downloading high-bitrate segments at low throughput, the buffer may be quickly depleted. In such cases, buffering may occur in the video as the buffer is depleted. Therefore, the user terminal (10) can reduce the download quality of the video all at once to play the video stably.

[0189] Even if the user terminal (10) confirms a decrease in throughput, if the download quality is at the minimum level, it may not further reduce the download quality.

[0190] In Fig. 7, the horizontal axis is labeled as 'throughput' for convenience of explanation, but the horizontal axis can be set to the expected data size determined by formula (1) (decrease).

[0191] Formula (1)(Reduction): Expected data size = ((Buffer * Safety factor) / (Playback rate)) * Reduced throughput

[0193] FIG. 8 is a diagram illustrating an algorithm for determining whether a user terminal, according to an embodiment of the present invention, will cancel the current download and attempt to download at a different quality.

[0194] Referring to FIG. 8, the user terminal (10) can detect a decrease in throughput during the download of a segment (801). If throughput decreases, the expected data size may be reduced according to Equation (1).

[0195] Formula (1): Estimated data size = ((buffer * safety factor) / (playback rate)) * reduced throughput

[0196] If the estimated data size decreases to become smaller than the actual data size, it may be impossible to download the currently downloaded segment within the current buffer at the current download quality.

[0197] Accordingly, the user terminal (10) can check whether it is possible to download a segment at the current download quality within the current buffer as the throughput decreases (803). If the buffer is sufficient and it is possible to download a segment at the current download quality within the current buffer, the user terminal (10) can continue to download the segment at the current download quality (811).

[0198] However, if the user terminal (10) is unable to download a segment with the current quality within the current buffer, it can check whether there is another quality available for download within the current buffer (805). If there is another quality available for download within the current buffer, the user terminal (10) can cancel the download of the current segment and change it to another quality and download it again (809).

[0199] However, if there is no other quality available for download within the current buffer, the user terminal (10) can check whether there is another quality available for download faster than continuing to download at the current quality (807). If there is another quality available for download faster than continuing to download at the current quality, the user terminal (10) can cancel the download of the current segment and change to another quality and download it again (809).

[0200] However, if there is no other quality available that can be downloaded faster than the current download quality, the user terminal (10) can continue downloading segments at the current download quality (811).

[0202] FIG. 9 is a flowchart illustrating a method for a server (20) of the present invention to provide segments according to the download quality of a video.

[0203] For the convenience of explanation, the description of the step in Fig. 10 that is substantially identical to the step in Fig. 2 will be replaced with the description referring to Fig. 2.

[0204] In step (901), the server (20) receives a request from the user terminal (10) to download a video containing multiple segments. Since step (901) is identical to step (201) of FIG. 2, the description of step (901) is replaced by the description of step (201) of FIG. 2.

[0205] In step (903), the server (20) provides at least one of a plurality of segments upon request. Here, at least one segment is a segment according to download quality determined based on an estimated data size determined based on a buffer, throughput, playback rate, and safety factor related to the video of the user terminal, and an actual data size determined based on a bitrate, segment duration, latency, and segment download factor related to the video of the user terminal, and the segment download factor is related to the number of segment downloads. Since step (193) is identical to steps (203), (205), and (207) of FIG. 2, the description of step (903) is replaced by the description of steps (203), (205), and (207) of FIG. 2.

[0207] The technical features disclosed in each embodiment of the present invention are not limited to that embodiment only, and as long as they are not mutually incompatible, the technical features disclosed in each embodiment may be combined and applied to different embodiments.

[0208] Therefore, in each embodiment, the technical features are described primarily, but as long as the technical features are not mutually incompatible, they may be combined and applied together.

[0209] The present invention is not limited to the embodiments described above and the attached drawings, and various modifications and variations may be possible from the perspective of those skilled in the art to which the present invention belongs. Accordingly, the scope of the present invention should be defined not only by the claims of this specification but also by equivalents thereof. Explanation of the symbols

[0210] 10: User terminal 20: Server

Claims

Claim 1 A method for determining the download quality of a video by a user terminal comprises: a step of downloading a video including a plurality of segments; a step of determining a first estimated data size for downloadable to the video based on a buffer, throughput, playback rate, and safety factor associated with the video; a step of determining a first actual data size required for actual downloading to the video based on a bitrate, segment duration, latency, and segment download factor associated with the video, wherein the segment download factor is related to the number of segment downloads; and a step of determining the download quality of the video based on the first estimated data size and the first actual data size. Claim 2 A method for determining the download quality of a video, wherein, in claim 1, the segment includes a first type segment that can be played independently and a second type segment that cannot be played independently, and the step of downloading the video includes: a step of determining the type of segment downloaded with a changed quality as the download quality is changed; and, if the type of segment downloaded with a changed quality is a second type segment, a step of downloading from the first segment closest to the segment downloaded with a changed quality to the segment played with a changed quality - the first segment is included in the first type segment - and the first segment is a segment preceding the segment downloaded with a changed quality. Claim 3 In claim 1, in the step of determining the first estimated data size, the first estimated data size is determined by the following formula (1): Estimated data size = ((buffer * safety factor) / (playback speed)) * throughput. A method for determining the download quality of a video. Claim 4 A method for determining the download quality of a video, wherein, in claim 3, the safety factor is determined to be any one of 0.80 to 1.

0. Claim 5 In claim 1, in the step of determining the first actual data size, the first actual data size is determined by the following formula (2): Actual data size = Bitrate * (Segment length + Delay time) * Segment download factor. A method for determining the download quality of a video. Claim 6 In claim 1, when downloading the video, there is a bitrate corresponding to each download quality, and the download quality of the video corresponds to the highest download quality satisfying the following formula (3): Formula (1): Expected data size = ((buffer * safety factor) / (playback speed)) * throughput Formula (2): Actual data size = bitrate * (segment length + latency) * segment download factor Formula (3): Expected data size ≥ Actual data size Method for determining the download quality of a video. Claim 7 A method for determining the download quality of a video according to claim 1, further comprising: a step of confirming an increase in throughput during the download of the video; a step of confirming a second estimated data size to which the increased throughput is applied; and a step of requesting a server to download a segment according to the increased download quality based on the second estimated data size. Claim 8 In claim 7, the download quality has a predetermined level, and when the download quality is at a minimum level, in the step of increasing the download quality, the user terminal increases the download quality to a download quality level one step higher, a method for determining the download quality of a video. Claim 9 A method for determining the download quality of a video according to claim 1, further comprising: a step of confirming a reduction in throughput during the download of the video; a step of confirming a third estimated data size to which the reduced throughput is applied; and a step of requesting the download of a segment according to the reduced download quality based on the third estimated data size. Claim 10 A method for determining the download quality of a video, wherein the step of requesting the download of the segment comprises the step of confirming the reduced download quality that is downloadable faster than continuing to perform the download of the existing segment. Claim 11 A method for determining the download quality of a video, wherein, in claim 9, the download quality has a predetermined level, the third expected data size is smaller than the first actual data size, and the download quality is at a minimum level, the download quality for a segment is maintained at the download quality of the minimum level without performing the step of requesting the download. Claim 12 A method for determining the download quality of a video according to claim 1, further comprising the step of checking for a change in throughput during the download of the video, wherein the change in throughput is checked only when download data exceeding a predetermined standard is obtained. Claim 13 A method for determining the download quality of a video according to claim 1, further comprising the step of checking whether there is a download quality capable of downloading the video within the buffer when the throughput is reduced during the download of the video. Claim 14 A method for determining the download quality of a video according to claim 1, further comprising the step of determining whether the buffer satisfies a predetermined condition, wherein the step of determining the first expected data size, the step of determining the first actual data size, and the step of determining the download quality are performed only when the predetermined condition is satisfied. Claim 15 A method for determining the download quality of a video, wherein, in the case of claim 1, the download time of a specific segment is less than or equal to a predetermined time, the download time is determined to a predetermined value. Claim 16 A method for determining the download quality of a video, wherein, in claim 15, the download time is determined by the predetermined value only when the data size of the specific segment is greater than or equal to the predetermined size. Claim 17 A user terminal for determining the download quality of a video, comprising: a memory; and a processor connected to the memory and configured to execute instructions included in the memory, wherein the processor comprises: a step of downloading a video including a plurality of segments; a step of determining a first estimated data size downloadable for the video based on a buffer, throughput, playback rate, and safety factor associated with the video; a step of determining a first actual data size required for the actual download of the video based on a bitrate, segment duration, latency, and segment download factor associated with the video, wherein the segment download factor is related to the number of segment downloads; and a step of playing the video through the download quality determined based on the first estimated data size and the first actual data size. Claim 18 A method for a server to provide segments according to the download quality of a video, comprising: receiving a request from a user terminal to download a video including a plurality of segments; and providing at least one of the plurality of segments in accordance with the request, wherein the at least one segment is a segment according to the download quality determined based on an estimated data size determined based on a buffer, throughput, playback rate, and safety factor related to the video of the user terminal, and an actual data size determined based on a bitrate, segment duration, latency, and segment download factor related to the video of the user terminal, and wherein the segment download factor is related to the number of segment downloads. Claim 19 A server providing a segment according to the download quality of a video, wherein the processor comprises: a memory; and a processor connected to the memory and configured to execute commands included in the memory, wherein the processor comprises the steps of: receiving a request from a user terminal to download a video including a plurality of segments; and, in accordance with the request, providing at least one segment among the plurality of segments, wherein the at least one segment is a segment according to the download quality of a video determined based on an estimated data size determined based on a buffer, throughput, playback rate, and safety factor related to the video of the user terminal, and an actual data size determined based on a bitrate, segment duration, latency, and a segment download factor related to the video of the user terminal, and the segment download factor is a segment related to the number of segment downloads. Claim 20 A computer program stored on a storage medium in combination with hardware to execute the method of any one of claims 1 through 16 and 18.