Adaptive bitrate streaming using video quality information
The adaptive bitrate algorithm optimizes profile level selection by incorporating quality metric values to reduce bandwidth and costs during peak periods, ensuring consistent quality and improved playback resilience.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- BEIJING YOJAJA SOFTWARE TECHNOLOGY DEVELOPMENT CO LTD
- Filing Date
- 2024-10-01
- Publication Date
- 2026-04-20
AI Technical Summary
Content providers face high delivery costs during peak periods due to the use of high-quality profile levels that consume more bandwidth, despite adaptive bitrate algorithms optimizing for available bandwidth without considering quality perception.
An adaptive bitrate algorithm that considers both available bandwidth and quality perception by using quality metric values to select profile levels, particularly during peak periods, reducing data transfer and conserving bandwidth.
Reduces bandwidth usage and delivery costs during peak periods while maintaining similar perceived quality, enhancing playback resilience with a larger buffer to mitigate network interruptions.
Smart Images

Figure 0007848281000011 
Figure 0007848281000012 
Figure 0007848281000013
Abstract
Description
[Technical Field]
[0001] Cross-reference of related applications
[0001] In accordance with Section 119(a) of the United States Patent Act (35 U.S.C.), this application has and claims the rights to the benefits as of the filing date of Chinese Patent Application No. 2023112867242, entitled “ADAPTIVE BITRATE STREAMING USING VIDEO QUALITY INFORMATION,” filed in China on 7 October 2023, the contents of which are incorporated herein by reference in their entirety for all purposes. [Background technology]
[0002]
[0002] In adaptive bitrate streaming, content (e.g., video or audio) is divided into segments. The segments are then encoded at several levels, sometimes called profile levels. Each profile level may be associated with different characteristics that can be based on bitrate or quality. Content providers can use a content delivery network to deliver segments to client devices. Adaptive bitrate algorithms can monitor available bandwidth and dynamically adjust the profile level requested for the content. Because client devices can request the profile level that they deem optimal for the available bandwidth, adaptive bitrate algorithms can ensure that an optimal viewing experience is produced on the client device.
[0003]
[0003] The content delivery network can charge the content provider based on the amount of data transferred. The charge amount can be based on multiplying the data amount transferred during a certain period by a rate. In some examples, the content delivery network can charge more during a specific period of a day, sometimes called the peak period. For example, one peak period can be considered the evening hours when a large number of client devices are streaming content via a playback session. One non-peak period can be during the day when the number of active playback sessions is low because a large number of users are not streaming content. Therefore, for the content provider, transferring a large amount of data during the peak period can result in high costs.
[0004]
[0004] The amount of data transferred can be determined by the selected profile level. For example, at a higher profile level, the bitrate and quality may be higher, and thus a larger bitrate can be used to transfer data via the content delivery network. In contrast, using a low profile level allows for a smaller bitrate. The content delivery network can measure the data amount based on the bytes transferred. Therefore, if a low-quality profile level with a low bitrate is used, the cost should be lower compared to a high-quality profile level with a high bitrate. However, an adaptive bitrate algorithm is configured to request a profile level based on the available bandwidth and can determine the profile level of the highest possible bitrate that is predicted not to cause rebuffering.
Summary of the Invention
[0005]
[0005] The accompanying drawings are for illustrative purposes only and serve only to provide examples of possible configurations and operations of the systems, devices, methods, and computer program products of the disclosed invention. These drawings in no way limit any changes in shape and details that may be made by those skilled in the art without departing from the spirit and scope of the disclosed embodiments.
Brief Description of the Drawings
[0006] [Figure 1]
[0006] A diagram showing a simplified system implementing an adaptive bitrate algorithm using bitrate and quality according to some embodiments. [Figure 2A]
[0007] A diagram showing a graph for selecting a profile level when the quality difference is minimized according to some embodiments. [Figure 2B]
[0008] A diagram showing an example of cost reduction when using a quality metric value to select a profile level according to some embodiments. [Figure 3]
[0009] A diagram showing a simplified flowchart of a method for determining a peak period and a quality metric value according to some embodiments. [Figure 4]
[0010] A diagram showing an example of a quality metric value according to some embodiments. [Figure 5]
[0011] A diagram showing an example of sending a peak period and a quality metric value using the DASH protocol according to some embodiments. [Figure 6]
[0012] A diagram showing an example of a playlist for sending a quality metric value using the HLS protocol according to some embodiments. [Figure 7]
[0013] A diagram showing a simplified flowchart of a profile level selection method using an adaptive bitrate algorithm according to some embodiments. <于 [Figure 8]
[0014] A figure showing a table of calculated scores for several embodiments. [Figure 9]
[0015] A diagram showing a simplified flowchart of a method for implementing an adaptive bitrate algorithm based on peak periods, according to several embodiments. [Figure 10]
[0016] A diagram illustrating a video streaming system that communicates with multiple client devices via one or more communication networks, according to one embodiment. [Figure 11]
[0017] Figure 11 shows a device for viewing video content and advertisements. [Modes for carrying out the invention]
[0007]
[0018] This specification describes techniques for content delivery systems. The following description includes numerous illustrative examples and specific details to provide a thorough understanding of several embodiments. Some embodiments defined by the claims may include some or all of the features in these examples, either individually or in combination with other features described below, and may further include modifications and equivalents of the features and concepts described herein.
[0008]
[0019] System Overview
[0020] A content delivery system can determine a profile level to select based on available bitrate and quality. In contrast to using only bitrate, an adaptive bitrate algorithm can also consider quality when selecting a profile level during content delivery. For example, an adaptive bitrate algorithm might determine whether a slight improvement in quality from a lower bitrate first profile level to a higher bitrate second profile level makes selecting the higher bitrate second profile level unnecessary. Selecting the first profile level during peak periods can conserve bandwidth usage, thereby reducing the amount of data transferred and thus lowering costs. Using a lower profile level can also use less bandwidth than currently available, potentially allowing buffers to buffer more data. A larger data buffer can improve content delivery by making content playback more resilient to future bandwidth changes. For example, a network interruption may have less impact on playback if data from the buffer can be used while the interruption resolves. Furthermore, networks may be more congested during peak periods, and using a lower profile level may improve content delivery by using less bandwidth, although the quality may remain largely the same. The cost of delivering content may also be reduced during peak periods.
[0009]
[0021] system
[0022] Figure 1 shows a simplified system 100 that implements an adaptive bitrate algorithm using bitrate and quality in several embodiments. System 100 includes a server system 102 and client devices 104. Although a single example of the server system 102 and client devices 104 is shown, multiple examples of the server system 102 and client devices 104 can be understood. For example, multiple client devices 104 may be requesting content from a single server system 102 or multiple server systems 102.
[0010]
[0023] The server system 102 includes a content management system 106 that can facilitate the distribution of content to client devices 104. For example, the content management system 106 can communicate with multiple content distribution networks 118 (also called content distribution networks 118) so that content is distributed to multiple client devices 104. The content distribution networks 118 include servers that can distribute content to client devices 104. The content may be video, audio, or other types of content. For the purposes of discussion, video may be used, but other types of content may be used instead of video. In some embodiments, the content distribution networks 118 distribute segments of video to the client devices 104. The segment may be a portion of a video, such as a 6-second video. The video may be encoded at multiple profile levels, corresponding to different levels that may be different levels of bitrate or quality (e.g., resolution). The client device 104 may request one segment of video from one of the profile levels based on the current network conditions. For example, client device 104 can use an adaptive bitrate algorithm to select a video profile level based on the estimated current available bandwidth and other network conditions.
[0011]
[0024] The client device 104 may include a mobile phone, smartphone, set-top box, television, living room device, tablet device, or other computing device. The client device 104 may include a media player 110 displayed on interface 112. The media player 110 or the client device 104 can request content from the content distribution network 118.
[0012]
[0025] A profile ladder may be provided to the client device 104 for the segments that may be requested. The profile ladder can list different profile levels for each segment. The adaptive bitrate algorithm 114 can determine which profile level to select for each segment. The client device 104 can send a request for the segments associated with the profile levels. For example, the client device 104 can use identification information about the profile levels to request a segment. The content distribution network 118 can then send the video segments for the requested profile levels to the client device 104, and the client device 104 can then display the segments on the media player 110 of interface 112. The client device 104 may change the profile level requested for a segment based on the current network conditions.
[0013]
[0026] The peak period prediction system 108 can predict when a peak period may occur. For example, there may be a peak period that occurs during the day. In some embodiments, the peak period may be defined by the content distribution network 118 and may be based on the number of currently active playback sessions, such as when the number of playback sessions meets a threshold (e.g., exceeds a threshold). For example, the content distribution network 118 may designate a period as a peak period when an average of 1 million playback sessions occur simultaneously during that period. Other criteria, such as the total count of playback sessions during a period, may be used to determine when a peak period occurs. The content management system 106 may not know when a peak period may be designated by the content distribution network 118. Therefore, the peak period prediction system 108 may analyze historical data to determine when a peak period may be designated by the content distribution network 118. If there are multiple content distribution networks 118, the peak period prediction system 108 can perform the same process for each content distribution network 118.
[0014]
[0027] The quality determination system 116 can determine quality metric values for profile levels. These quality metric values may be numerical values used to determine quality characteristics. They may indicate the perceived quality of the content. In some embodiments, video multi-method assessment fusion (VMAF) can be used as a quality metric because it may correlate highly with perceived video quality. Perceived video quality allows for the estimation of the video quality perceived by a human user while viewing the content. If the difference in perceived quality is very small, a human user may not be able to distinguish that small difference. Other metrics, such as peak signal-to-noise ratio (PSNR), may also be used. These metrics may differ from parameters such as bitrate and resolution, which are used to encode the profile levels of the segments. That is, VMAF is a different metric from resolution. The quality determination system 116 can analyze the segments for each profile level and determine quality metric values for each profile level of each segment.
[0015]
[0028] The content management system 106 can provide peak duration forecasts and quality metric values to client devices 104 via a content distribution network 118 or the like. In some embodiments, the peak duration forecasts and quality metric values may be provided by communications sent using a streaming protocol such as dynamic adaptive streaming over HTTP (DASH) or HTTP live streaming (HLS). The streaming protocol may refer to the communications separately, such as a DASH manifest or an HLS playlist. The communications may send information necessary to request a segment of content for a playback session, such as a link to a segment in the content, control information (e.g., segment length), and other information. The peak duration forecasts and quality metric values may also be provided using other methods, such as out-of-band communications on a control channel. The communications are sent in-band using DASH or HLS, as the information about the peak duration and quality metric values is sent in a manifest or playlist that is being sent to enable streaming of the content.
[0016]
[0029] The adaptive bitrate algorithm 114 can use peak period forecasts and quality metric values to determine the profile level to request for future segments. As discussed above, the adaptive bitrate algorithm 114 can incorporate quality metric values in addition to bitrate when selecting the profile level to request.
[0017]
[0030] Figure 2A shows a graph 200 for selecting a profile level when the quality difference is minimal, according to several embodiments. The Y-axis is the quality metric and the X-axis is the bitrate. The first curve 202 is based on the characteristics of a first instance of content, and the second curve 204 is based on the characteristics of a second instance of content. In curve 202, the quality difference between selecting the first profile level at 206-1 and selecting the second profile level at 208-1 is minimal and may not be perceived by the user. However, in curve 204, the quality change between selecting the first profile level at 206-2 and selecting the second profile level at 208-2 is not minimal and may be perceived by the user. Although the term minimal is used, a threshold may be used to determine when the quality difference is minimal (e.g., difference < threshold). Thus, when curve 202 occurs, a profile level with a lower bitrate at 206-1 may be selected. However, when curve 204 occurs, a profile level of 208-2 may be chosen at a higher bitrate because its perceived quality is much more likely to be noticed by the user.
[0018]
[0031] Figure 2B shows examples of cost savings when using quality metric values to select a profile level, according to several embodiments. The Y-axis may represent bandwidth usage, and the X-axis may represent the time of day. During the peak period of 212, curve 214 shows the bandwidth usage when selecting the profile level at 206-1. Curve 214 shows the bandwidth usage when selecting the profile level at 208-1. Thus, selecting a profile level with a lower bitrate results in cost savings. However, the perceived quality difference is minimal and may not be perceived by human users.
[0019]
[0032] Peak period and quality metric values
[0033] The following describes the determination of peak period values and quality metric values according to several embodiments. Figure 3 shows a simplified flowchart 300 of a method for determining peak periods and quality metric values according to several embodiments. In 302, the server system 102 receives historical data. The historical data may be for a period of time, such as N days, where N is a number. In some embodiments, the historical data may show the number of replay sessions that were active during a portion of a day. In some embodiments, each day may have a cumulative replay session count for each hour of the day. In that case, one or more times with a number of session counts exceeding a threshold may be represented as peak times. Other methods may also be used to determine peak periods, such as analyzing the number of bytes transferred per day, and the period with the largest number of bytes transferred is selected.
[0020]
[0034] In 304, the peak period prediction system 108 can determine the peak period from historical data. When the peak period is prone to change, the peak period prediction system 108 can use a prediction method to predict the peak period based on predicted traffic. In some embodiments, Day D1...D N The data is sorted by time, D N This is the data for the most recent day. The peak period forecasting system 108 is for day D N and D i Calculate the "distance" between i=1...N-1, where the distance may be the Euclidean distance or another vector distance metric. Variables v1...v k This is a list of the k days closest to day N, arranged in order of proximity. The predicted traffic is:
[0021]
number
[0022] and
[0023]
number
[0024] The peak period prediction system 108 is
[0025]
number
[0026] Calculate the peak time h, where [h-∈, h+∈] is the peak period, h is time, and ∈ is an adjustable parameter measured in units of time.
[0027]
[0035] For example, there are two hours that can be peak times depending on the circumstances, so the daily traffic data shows the active replay session count for each of those hours, and the historical data covers a period of N=5 days, which means there are five 2D vectors, each representing the daily traffic data. With k=3, that data is shown in Table I.
[0028] [Table 1]
[0029] The first column lists the days, the second column lists the traffic data, the third column lists the distance between that day and the current day, and the fourth column lists the variables v1...v, which are the k days closest to that day N. k The items are listed in order of proximity, and in the fifth column, the variable α j The values are listed. The predicted traffic data for day N+1 is:
[0030]
number
[0031] Weighted average
[0032]
number
[0033] Therefore, the values for [6,7] are the predicted active playback session counts for each of the peak time candidates. The second time with more sessions can be considered the peak time for D6. In practice, the peak time candidates are usually all hours of the day, so the traffic data for each day is 24-hour data, which is D i This means that it is a 24-dimensional vector.
[0034]
[0036] When the peak period for each day can be stable, such as between 7 PM and 9 PM, the peak period is hardcoded and cannot be predicted for a certain period. Subsequently, additional historical data can be reanalyzed, and the peak period can be redetermined.
[0035]
[0037] In step 306, the server system 102 transmits the peak period to the client device 104 via the content distribution network 118, etc. As described above, the peak period may be inserted into communications transmitted during a playback session or into out-of-band communications. An example of sending the peak period will be described later.
[0036]
[0038] In step 308, the quality determination system 116 calculates quality metric values at the profile level. Quality metric calculation can be performed in parallel with or consecutively with peak period calculation. Quality metric values can be numerical values that determine the quality characteristics of a segment for each profile level of content. As discussed above, VMAF can be used as a quality metric due to its high correlation with subjective ratings of affective video quality that can be obtained by human evaluation. The quality determination system 116 can analyze segments of content instances and assign quality metric values to each profile level of the segment.
[0037]
[0039] At 310, the server system 102 can transmit the quality metric value to the client device 104 via the content delivery network 118 or the like. As described above, the quality metric value can be inserted into the communication transmitted during the playback session or the out-of-band communication. An example of sending the quality metric value will be described later. FIG. 4 is a diagram showing an example of the quality metric value according to some embodiments. The graph 400 shows the quality levels of three segments, segment 1, segment 2, and segment 3, at 402, although an instance of the content can have a number of segments. The Y-axis represents quality, and the X-axis represents the time of the content instance. Also, profile level 1, profile level 2, and profile level 3 are shown, although other profile levels can be understood. The quality determination system 116 can analyze the content of the segment and assign a quality metric value to the combination of the segment and the profile level. For example, the combination of segment 1 and profile level 1 has a quality value of q 1,1 = 22; having segment 1, where 1,1 are the segment and profile identifiers. Profile level 2 has a quality metric value of q 1,2 = 43, and having segment 1, and profile level 3 has a quality metric value of q 1,3 = 80. Segment 2 and segment 3 also have quality metric values assigned to their respective profile levels.
[0038]
[0040] In a 404 error, a content-level quality metric value is displayed. The content-level quality metric may be the average of a segment at one profile level for an instance of content. In some embodiments, the content-level quality metric value may be the average of the respective quality metric scores for all segments at a particular profile level. For example, profile level 1 has an average of [22, 21, and 23]=22. Profile level 2 has an average of 44, and profile level 3 has an average of 83. In some cases where providing segment-level quality metrics is unacceptable, for example, if too many segments would significantly increase the manifest size, the content-level quality metric may be sent as a substitute for one or more segment-level quality metric values.
[0039]
[0041] As described above, peak duration and quality metric values may be transmitted during a playback session using in-band or out-of-band communication. Communication may be transmitted using various protocols used to implement messaging during a playback session. The adaptive bitrate algorithm 114 may be configured to receive quality metric values when communication is received during the playback process. In DASH, a manifest file describing the requested segments is transmitted. In HLS, multi-variant playlists and multiple media playlists may be transmitted to describe the profile level and the requested segments.
[0040]
[0042] Figure 5 shows examples of sending peak periods and quality metric values using the DASH protocol in several embodiments. In this example, the quality metric value is sent as a property of the DASH protocol. In 502, the average quality for profile level 1 is sent using the expression tag. The average value for profile level 1 is 23. Next, in 504, the quality metric value for each segment of profile level 1 is sent using the segment URL property. For example, the quality metric value is 22 for segment 1, i.e., seg_1, 21 for segment 2, i.e., seg_2, and 23 for segment 3, i.e., seg_3.
[0041]
[0043] The quality metric value for profile level 2 is shown as 506, with an average value of 43. Next, for profile level 2, the quality metric values for segment 1, segment 2, and segment 3 are 43, 45, and 42, respectively, with a value of 508. While the above quality metric values are transmitted using these properties, other properties may be used. Additionally, peak periods may be transmitted using a different property or through a different communication other than the communication about the streaming protocol.
[0042]
[0044] Figure 6 shows an example of playlist 600 for sending quality metric values using the HLS protocol, according to several embodiments. Quality metric values can be sent using HLS properties. The multivariant playlist tag EXT-X-Stream-INF is used to specify content-level video quality with a new attribute called AVERAGE-QUALITY. Media playlist tags can be defined to specify segment-level quality metric values for each segment. The media playlist tag EXT-X-Quality can specify the segment-level quality metric for each segment. For example, in 602, the average quality for the first profile level is 23, in 604, the average quality for the second profile level is 43, and in 606, the average quality for the third profile level is 83. The EXT-X-Quality media playlist tag then specifies the segment-level quality metric value for each segment. For example, 608 shows a media playlist for the first profile level. In 610, the quality metric value for segment 1 may be 22; in 612, the quality metric value for segment 2 may be 21; and in 614, the quality metric value for segment 3 may be 22. Additionally, the peak period may be transmitted using a different property or by a different communication other than the communication about the streaming protocol.
[0043]
[0045] The communications transmitted in Figures 5 and 6 include other information used to request segments for playback during a playback session by the client device 104, such as using a link with segments. Quality metric values and peak periods may be conveyed to the client device 104 in these communications.
[0044]
[0046] Profile Level Selection
[0047] The client device 104 can use the adaptive bitrate algorithm 114 to select a profile level for one or more upcoming segments. The client device 104 can then send a request for a segment at the selected profile level, and the segment is subsequently delivered to the client device 104 by the content delivery network 118. The adaptive bitrate algorithm 114 uses the available bandwidth, the segment's bitrate, and the segment's quality metric value to select a profile level in its decision-making process.
[0045]
[0048] Figure 7 shows a simplified flowchart 700 of a profile selection method using the adaptive bitrate algorithm 114 in several embodiments. In 702, the client device 104 receives a communication containing quality metric values. As discussed above, the quality metric values may be received as a communication transmitted using a streaming protocol.
[0046]
[0049] In step 704, the adaptive bitrate algorithm 114 determines an estimate of the rebuffering time. This estimate allows us to estimate the possible rebuffering time over a future period for each profile level. Rebuffering may occur when there is not enough data in the buffer to support continuous playback of the content. The rebuffering time estimate can be used to assess the risk of rebuffering when selecting a different profile level. The rebuffering time is the time at which rebuffering may occur in the future. For example, the rebuffering time could be 3 seconds. A rebuffering time of zero may indicate that rebuffering may not occur. In some examples, the adaptive bitrate algorithm 114 estimates the possible buffering time over a future period for each profile level. This step is for assessing the risk of rebuffering when selecting a different profile level.
[0047]
[0050] In some embodiments, the adaptive bitrate algorithm 114 estimates the possible rebuffering time between downloading the next L segments, for example, from segment i to i+L-1. The adaptive bitrate algorithm 114 uses the function F(buf+Δ,B,i,j)⇒r ij The logic can be formulated as follows, which means that the rebuffering time during the download of segment i to i+L-1 at quality level j is calculated by function F, using the information of the current buffer length buf, buffer length offset Δ, and estimated bandwidth B.
[0048]
[0051] The adaptive bitrate algorithm 114 calculates the rebuffering time using function F as follows: The adaptive bitrate algorithm 114 calculates r ij Initialize =0 and buf'=buf+Δ. For k from i to i+L-1: download time of segment k,
[0049]
number
[0050] Here, s kj r is the size of segment k with quality level j. The estimated rebuffering time while downloading segment k is r = max(0, t - buf'). The adaptive bitrate algorithm 114 calculates the rebuffering time as follows: r ij =r ij Add to +r, buffer length: buf'=max(0,buf'-t)+d k Update here d k is the duration of segment k. The adaptive bitrate algorithm 114 rebuffers time r for each quality level j ∈ [1, M]. ij The rebuffering time is calculated as an M-dimensional vector R, where R is the rebuffering time.
[0051]
[0052] The estimation method can simulate buffer length changes. The adaptive bitrate algorithm 114 estimates the rebuffering time for future L=3 segments to predict how long rebuffering will last during the download of segments i, i+1, and i+2. In this estimation, the estimated bandwidth B is constant for all segments and at all quality levels.
[0052]
[0053] In some examples, the current "adjusted" buffer length buf+Δ is 1 second, and the duration of each segment is d i It is also constant at 5 seconds. The estimation simulates the following process continuously: For the download of segment i (for example, from 0 seconds to 5 seconds), the estimated download time
[0053]
number
[0054] The duration is 5 seconds, which means that the media player is downloading segment i from 0 to 5 seconds. While the download is in progress, the content continues to play. Since the buffer only contains 1 second's worth of content, the buffer becomes empty after 1 second. Playback stalls and buffering occurs until new content (the newly downloaded segment) is received; in this case, the re-buffering time r is 4 seconds. The buffer is then filled with new content, and in this case, the buffer length becomes 5 seconds, equal to the duration of segment i.
[0055]
[0054] The adaptive bitrate algorithm 114 simulates the download of segment i+1 (for example, from 5 seconds to 11 seconds). The estimated buffer length before downloading segment i+1 is 5 seconds. Similarly, the estimated download time is 6 seconds (because segment i+1 is larger in size). Rebuffering occurs at 10 seconds and lasts for 1 second until segment i+1 is finally downloaded at 11 seconds. The buffer is filled with new content and the buffer length becomes 5 seconds, which is equal to the duration of segment i+1.
[0056]
[0055] The adaptive bitrate algorithm 114 simulates the download of segment i+2 (from 11 seconds to 15 seconds). The estimated download time is 4 seconds. Since the buffer still contains 5 seconds of content to be played, no rebuffering occurs until segment i+2 is finally downloaded at 15 seconds. Thus, the total estimated rebuffering time r for segment i with quality j is ij This totals 5 seconds (4 seconds for segment i and 1 second for segment i+1).
[0057]
[0056] In step 706, the adaptive bitrate algorithm 114 determines the bitrate. The adaptive bitrate algorithm 114 can use the bitrate for the profile level of the segment and the estimated rebuffering time to determine which profile level to select. The adaptive bitrate algorithm 114 can use a similar function to determine the bitrate and the quality determination, which will be described later. This function can use the bitrate when calculating the bitrate determination, or a quality metric value when calculating the quality determination. This function estimates the rebuffering time for the profile level, outputs a score, and selects a profile level based on that score.
[0058]
[0057] In some embodiments, the function is G(X,R,μ,σ)⇒j'. X={x j} is an M-dimensional vector representing the bitrate of profile level j. When using the bitrate, the adaptive bitrate algorithm 114 uses x j =b j That is, set the bitrate of profile level j. The adaptive bitrate algorithm 114 is 704, and the above rebuffering time R = {r ij We estimate}. The coefficient μ is a coefficient for combining X and R. The coefficient μ is different or may not be used when X is a bitrate value or a quality metric value. This is because if we use the same value for μ, the magnitude and quality of the bitrate will be different when compared to the rebuffering time, so the tradeoff between video bitrate and rebuffering time will be significantly different from the tradeoff between video quality and rebuffering time. In the following example, when the unit of bitrate is kbps, μ=200 means that 1 second of rebuffering cancels out a bitrate increase of 200kbps. Such an increase in video bitrate is common and may be achievable. However, if this value of μ is applied to a quality metric such as VMAF, which is usually in the range of 20-100, it means that 1 second of rebuffering cancels out a VMAF increase of 200. Such an improvement in video quality is not achievable given the usual range above. The threshold σ is a threshold for indicating whether two profile levels of the same segment have similar perceived quality, and this is |x j1 -x j2 When |≦σ|, it means that the first profile level j1 and the second profile level j2 may be considered to have similar quality (for example, within a threshold). The threshold σ may differ when analyzing bitrate versus quality.
[0059]
[0058] The adaptive bitrate algorithm 114 calculates the function G as follows: The adaptive bitrate algorithm 114 initializes the decision j'=1. For profile levels j from 1 to M: The adaptive bitrate algorithm 114 calculates the score s for this level. jCalculate: s j =x j -μ×r ij Profile level j may be distinguished from profile j' with respect to bitrate, with a higher score, for example, |x j’ -x j |>σ and s j >s j’ If it has, the adaptive bitrate algorithm 114 selects profile:j'=j. If the bitrate is used, the adaptive bitrate algorithm 114 determines the profile level j b =G({b j},R,μ b ,σ b ) is determined. In order to make that decision consistent with the adaptive bitrate algorithm that did not use quality metric values, a threshold σ is used. b It can be set to 0.
[0060]
[0059] After determining the bitrate, the adaptive bitrate algorithm 114 can determine the quality. 708 The adaptive bitrate algorithm 114 determines the quality metric value for the segment's profile level.
[0061]
[0060] In step 710, the adaptive bitrate algorithm 114 determines the quality. Based on the quality determination, a profile level can be selected. Using the above function, the adaptive bitrate algorithm 114 determines the quality metric value: j q =G({q ij},R,μ q ,σ q Another decision can be calculated based on ). When using the quality metric value, the adaptive bitrate algorithm 114 is x j =q ij This sets the quality metric value of segment i at profile level j. Profile level j can be distinguished from profile j' with respect to the quality metric value, with a higher score, for example, |x j’ -x j |>σ and s j >sj’ If it has, the adaptive bitrate algorithm 114 selects profile:j'=j. When using the quality metric value, the adaptive bitrate algorithm 114 determines the profile level j q =G({q ij},R,μ q ,σ q ) will be decided.
[0062]
[0061] In 712, the adaptive bitrate algorithm 114 selects a profile level based on the bitrate determination and quality determination. Various methods can be used to select a profile level. In some embodiments, the adaptive bitrate algorithm 114 may select the lower of the profile levels selected from the bitrate determination and quality determination. For example, the adaptive bitrate algorithm 114 may select min(j b Today J q The adaptive bitrate algorithm 114 selects the lower profile level for segment i using the following method. In some examples, if profile level 8 and profile level 6 are selected, the adaptive bitrate algorithm 114 selects profile level 6 as the preferred profile level. Profile level 6 is expected to have a lower bitrate compared to profile level 8.
[0063]
[0062] The following describes an example of calculating the profile level using the bitrate determination and the quality determination. Figure 8 shows Table 800 of the calculated scores according to several embodiments. Column 802 contains the profile level, column 804 contains the rebuffering time, column 806 contains the bitrate (kbps), column 808 contains the quality metric values (VMAF), column 810 contains the bitrate determination score, and column 812 contains the quality determination score. The scores for the bitrate determination and quality determination may be affected by the rebuffering time of profile 6 and profile 7. For example, in profile 6, a rebuffering time of 2 seconds results in a bitrate score of 2100 when the bitrate is 2500 and a quality score of 70.68 when the quality metric value is 90.68.
[0064]
[0063] After scoring, the bitrate and quality are determined by the threshold σ b and σ q It depends on the threshold σ, in order to align the decision with the adaptive bitrate algorithm that did not use quality metric values, as discussed above. b This can be set to 0. Therefore, the bitrate determination will be 814, resulting in a profile level of 6 with a maximum score of 2100.
[0065]
[0064] In quality determination, the adaptive bitrate algorithm 114 determines that the limit increase in quality metric values when upgrading the profile level is very small from profile level 4 to profile level 8 in column 808 (for example, the quality metric values are 89.66, 90.25, 90.68, and 90.99 respectively). q If = 0, the quality determination is 816, resulting in a profile level of 5 with a maximum score of 90.25. When the quality metric score changes by less than 1, it may be difficult for human users to perceive, so there is a possibility of σ q If =1, the quality determination is a score higher than profile level 4, and |xj’ Since there is no quality level j' with a quality metric of -x4|>1, the profile level is 4. Profile level 5 has a quality metric score of 90.25, which is less than 1 from 89.66. Therefore, since profile 4 has a lower bitrate, profile 4 is selected.
[0066]
[0065] If the profile level for quality determination is lower than the profile level determined by bitrate determination, the adaptive bitrate algorithm 114 may update the buffer length offset, which is used during bitrate determination and quality determination to add the saved download time to the buffer length offset obtained by using the lower profile level. That is, by using a profile level lower than the profile level that would normally have been selected without considering the quality metric value, the buffer length may increase because the available bandwidth may be greater considering the bitrate of the lower profile level compared to the bitrate of the higher profile level. By adding the saved buffer length to the buffer length offset, the adaptive bitrate algorithm 114 may not know that there is more available buffer length that would avoid switching to a profile level higher than the desired profile level when the adaptive bitrate algorithm is next evaluated.
[0067]
[0066] By adding the buffer length to the buffer length offset, an additional buffer length may be added to address any potential future network problems. This can improve the playback process because the buffer can have an additional buffer length that is resilient to sudden changes in network conditions. The logic for adding the additional buffer length may be as follows: The adaptive bitrate algorithm 114 calculates the download time to be saved.
[0068]
number
[0069] Next, the adaptive bitrate algorithm 114 adds the saved download time to the buffer length offset: Δ = Δ + d. Following the previous example, the threshold σ b =0 and threshold σ q When = 1, the bitrate is determined by j b =6, and the quality determination is j q Since =4, the final selected quality level is min(j b Today J q ) becomes = 4, and the buffer length offset is,
[0070]
number
[0071] It will be updated as follows.
[0072]
[0067] Peak period
[0068] Figure 9 The method may be implemented based on when the peak period is specified. For example, the process may become more aggressive in reducing the bitrate during the peak period.
[0073]
[0069] Figure 9 shows a simplified flowchart 900 of a method for implementing an adaptive bitrate algorithm based on a peak period according to several embodiments. In 902, the adaptive bitrate algorithm 114 receives information about the peak period. As discussed above, information about the peak period may be received as communication, such as by a manifest or playlist, or as out-of-band communication.
[0074]
[0070] In 904, the adaptive bitrate algorithm 114 determines whether a peak period will be experienced at a future point in time. For example, a peak period may represent an hour in a day, a few minutes in a day, a portion of a day, etc. When a peak period is approaching, in 906, the adaptive bitrate algorithm 114 adjusts the peak period parameters. For example, the adaptive bitrate algorithm 114 may adjust the parameters for bitrate determination or quality determination based on the peak period being experienced. In some embodiments, when in a peak period, the adaptive bitrate algorithm 114 may adjust the parameters to relax the requirements for determining the similarity of quality metric values between two profile levels in order to save more bandwidth. For example, the adaptive bitrate algorithm 114 may adjust σ q Two thresholds σ1 < σ2 can be preset as the threshold values. When it is in the peak period, the adaptive bitrate algorithm 114 relaxes the threshold σ to determine the similarity of video quality between the two quality levels. q Set =σ2, in which case this can save more bandwidth usage. Otherwise, at 908, when it is a non-peak period, the adaptive bitrate algorithm 114 will set the threshold σ to obtain higher quality. q Set =σ1. That is, threshold σ q By setting the threshold σ² to be equal to the threshold σ², the adaptive bitrate algorithm 114 can tolerate more quality differences between profile levels in order to save more bandwidth. Otherwise, if it is not during the peak period, the threshold σ q This value is equal to threshold σ1, which is smaller than threshold σ2. A lower value may indicate a preference for selecting a profile level with higher quality video. For example, a threshold of σ1 might result in selecting a profile level with higher quality over one that saves bandwidth.
[0075]
[0071] At 910, the adaptive bitrate algorithm 114 performs the process of selecting a profile level using the bitrate determination and the quality determination. If it is not a peak period, the parameters for the non-peak period may be used for the bitrate determination and the quality determination. If a peak period is experienced, the parameters for the peak period may be used for the bitrate determination and the quality determination. Other processes may also be used. For example, if it is not a peak period, the quality determination may not be calculated. Rather, only the profile level determined by the bitrate determination may be used.
[0076]
[0072] Conclusion
[0073] Therefore, the adaptive bitrate algorithm 114 can reduce the average bitrate during peak periods while maintaining similar perceived quality. Thus, bandwidth can be saved during peak periods, potentially reducing costs. However, the perceived quality is almost the same and may not be noticeable to the user. In addition, the buffer offset adjustment may be used to increase the buffer length. The increased buffer length can improve playback performance by reducing the amount of re-buffering that may occur.
[0077]
[0074] System
[0075] The features and embodiments disclosed herein may be implemented in combination with a video streaming system 1000 that communicates with multiple client devices over one or more communication networks, as shown in Figure 10. Embodiments of the video streaming system 1000 are described merely to present an example of an application that enables the delivery and distribution of content prepared in accordance with this disclosure. It should be understood that this technology is not limited to streaming video applications but may be adapted to other applications and distribution mechanisms.
[0078]
[0076] In one embodiment, a media program provider may include a library of media programs. For example, media programs may be aggregated and delivered through a site (e.g., a website), an application, or a browser. Users can access the media program provider's site or application and request media programs. Users may be restricted to requesting only media programs provided by the media program provider.
[0079]
[0077] In system 1000, video data may be obtained from one or more sources, for example from video source 1010, for use as input to video content server 1002. Input video data may consist of raw or edited frame-based video data in any suitable digital format, for example, Moving Picture Experts Group (MPEG)-1, MPEG-2, MPEG-4, VC-1, H.264 / Advanced Video Coding (AVC), High Efficiency Video Coding (HEVC), or other formats. In an alternative form, video may be provided in a non-digital format and converted to a digital format using a scanner or transcoder. Input video data may consist of various types of video clips or programs (for example, television programs, movies, and other content produced as primary content of interest to consumers). Video data may also include audio, or only audio may be used.
[0080]
[0078] The video streaming system 1000 may include one or more computer servers or modules 1002, 1004, 1007 distributed on one or more computers. Each server 1002, 1004, 1007 may include or be operably coupled to one or more data stores 1009 (e.g., databases, indexes, files, or other data structures). The video content server 1002 may have access to data stores (not shown) of various video segments. The video content server 1002 may supply video segments instructed by a user interface controller that communicates with client devices. As used herein, a video segment refers to a limited portion of frame-based video data, such as that which may be used in a streaming video session for viewing television programs, movies, recorded live performances, or other video content.
[0081]
[0079] In some embodiments, the video ad server 1004 can access a data store of relatively short videos (e.g., 10-second, 30-second, or 60-second video ads) configured as advertisements for a particular advertiser or message. These advertisements may be provided on behalf of advertisers in exchange for some kind of payment, or they may contain promotional messages, public service messages, or any other information from the system 1000. The video ad server 1004 can serve video ad segments when directed by a user interface controller (not shown).
[0082]
[0080] The video streaming system 1000 may also include a server system 102.
[0083]
[0081] The video streaming system 1000 may further include an integrated streaming component 1007 that integrates video content and video advertisements into a streaming video segment. For example, the streaming component 1007 may be a content server or a streaming media server. A controller (not shown) can determine the selection or configuration of advertisements in the streaming video based on any suitable algorithm or process. The video streaming system 1000 may include other modules or units not shown in Figure 10, such as a management server, a trading server, network infrastructure, an ad selection engine, etc.
[0084]
[0082] The video streaming system 1000 can be connected to a data communication network 1012. The data communication network 1012 may consist of a local area network (LAN), a wide area network (WAN) (e.g., the Internet), a telephone network, a wireless network 1014 (e.g., a wireless cellular telecommunications network (WCS)), or any combination thereof or a similar network.
[0085]
[0083] One or more client devices 1020 may communicate with the video streaming system 1000 via a data communication network 1012, a wireless network 1014, or another network. Such client devices may include, for example, one or more laptop computers 1020-1, a desktop computer 1020-2, a "smart" mobile phone 1020-3, a tablet device 1020-4, a network-enabled television 1020-5, or a combination thereof, via a router 1018 for the LAN, via a base station 1017 for the wireless network 1014, or via some other connection. In operation, such client devices 1020 may send and receive data or commands to and from the system 1000 in response to user input received from a user input device or other input. Accordingly, the system 1000 may supply the client devices 1020 with video segments and metadata from the data store 1009 corresponding to the selection of media programs. The client device 1020 can output video content from a streaming video segment to a media player using a display screen, projector, or other video output device, and can also receive user input for interacting with the video content.
[0086]
[0084] The distribution of audio and video data can be carried out in various ways, such as streaming, from the streaming component 1007 to remote client devices via computer networks, telecommunications networks, and combinations thereof. During streaming, the content server continuously streams the audio and video data to a media player component that operates at least partially on the client device, and the media player component can play the audio and video data as soon as it receives the streaming data from the server. Although streaming has been discussed, other distribution methods may also be used. The media player component can start playing the video data immediately after receiving the initial portion of the data from the content provider. Conventional streaming techniques use a single provider to deliver the stream of data to a group of end users. Delivering a single stream to a large audience may require large bandwidth and processing power, and the bandwidth required by the provider may increase as the number of end users increases.
[0087]
[0085] Streaming media can be delivered on demand or live. Streaming allows for immediate playback at any point in a file. End users can skip through the media file to start playback or to change playback to any point in the media file. Therefore, end users do not have to wait for the file to be downloaded gradually. Typically, streaming media is delivered from a small number of dedicated servers with high bandwidth capabilities via specialized devices that accept requests for video files and, using information about the format, bandwidth, and structure of these files, deliver the appropriate amount of data necessary to play the video at the speed required for playback. The streaming media server can also reveal the transmission bandwidth and capabilities of the media player of the receiving client. Streaming component 1007 can communicate with client device 1020 using control messages and data messages to adapt to changing network conditions as the video is played. These control messages may include commands to enable control functions on the client, such as fast forward, rewind, pause, or seek to a specific part of the file.
[0088]
[0086] The streaming component 1007 transmits only the necessary amount of video data at the required rate, so that precise control over the number of streams supplied can be maintained. Viewers cannot watch high-data-transfer-rate video over a transmission medium with a low data-transfer-rate. However, a streaming media server can (1) provide users with random access to video files, (2) monitor who is watching which video program and for how long, (3) use transmission bandwidth more efficiently because only the amount of data necessary to support the viewing experience is transmitted, and (4) video files are discarded by the media player without being stored on the viewer's computer, thus allowing for greater control over the content.
[0089]
[0087] The streaming component 1007 can use TCP-based protocols such as the Hypertext Transfer Protocol (HTTP) and the Real-Time Messaging Protocol (RTMP). The streaming component 1007 can also deliver live webcasts and multicast them, which allows multiple clients to tune into a single stream, thereby saving bandwidth. The streaming media player does not have to rely on buffering the entire video to randomly access any point in the media program. Instead, this random access is achieved using control messages sent from the media player to the streaming media server. Other protocols used for streaming are HTTP live streaming (HLS) or Dynamic Adaptive Streaming over HTTP (DASH). The HLS and DASH protocols deliver video over HTTP via a playlist of small segments, which are typically available at various bitrates from one or more content delivery networks (CDNs). This allows the media player to switch both the bitrate and content source on a segment-by-segment basis. This switch helps compensate for potential network bandwidth fluctuations and infrastructure failures that may occur during video playback.
[0090]
[0088] The distribution of video content by streaming can be achieved under various models. In one model, the user pays for viewing a video program, for example, by paying a fee for access to a library of media programs, or for access to a limited portion of a media program, or by using a pay-per-view service. In another model, which was widely adopted by broadcast television shortly after the start of broadcast television, the sponsor pays for presenting a media program in exchange for the right to present advertisements during or adjacent to the program presentation. In some models, advertisements are inserted at predetermined times within the video program, which may be called "ad slots" or "ad breaks." In streaming video, the media player may be configured so that the client device cannot play the video without also playing certain advertisements within designated ad slots.
[0091]
[0089] Referring to Figure 11, a schematic diagram of a device 1100 for viewing video content and advertisements is shown. In a selected embodiment, the device 1100 may include a processor (CPU) 1102 operably coupled to a processor memory 1104, which holds binary-coded functional modules for execution by the processor 1102. Such functional modules may include an operating system 1106 for handling system functions such as input / output and memory access, a browser 1108 for displaying web pages, and a media player 1110 for playing videos. The modules may further include an adaptive bitrate algorithm 114. The memory 1104 may hold additional modules not shown in Figure 11, for example, modules for performing other operations described elsewhere in this specification.
[0092]
[0090] Bus 1114 or other communication components may support the transmission of information within the device 1100. Processor 1102 may be a specialized or dedicated microprocessor that can be configured or operable to perform a particular task in accordance with the features and aspects disclosed herein by executing machine-readable software code that defines a particular task. Processor memory 1104 (e.g., random access memory (RAM) or other dynamic storage device) may be connected to bus 1114 or directly to processor 1102 and may store information and instructions to be executed by processor 1102. Memory 1104 may also store temporary variables or other intermediate information during the execution of such instructions.
[0093]
[0091] A computer-readable medium in the storage device 1124 is connected to the bus 1114 and can store static information and instructions of the processor 1102. For example, the storage device (CRM) 1124 can store modules of the operating system 1106, browser 1108, and media player 1110 when the device 1100 is powered off, and the modules from the storage device can be loaded into the processor memory 1104 when the device 1100 is powered on. The storage device 1124 may include a non-transient computer-readable storage medium that holds information, instructions, or any combination thereof (for example, instructions that, when executed by the processor 1102, set or enable the device 1100 to perform one or more operations of the method described herein).
[0094]
[0092] The network communication (comm.) interface 1116 may also be connected to the bus 1114. The network communication interface 1116 can provide or support bidirectional data communication between the device 1100 and one or more external devices, such as a streaming system 1000, optionally via a router / modem 1126 and a wired or wireless connection 1125. In an alternative or additional configuration, the device 1100 may include a transceiver 1118 connected to an antenna 1129, through which the device 1100 can communicate wirelessly with a base station or router / modem 1126 of a wireless communication system. Alternatively, the device 1100 may communicate with the video streaming system 1000 via a local area network, a virtual private network, or other network. In yet another alternative configuration, the device 1100 may be incorporated as a module or component of the system 1000 and communicate with other components via the bus 1114 or in some other manner.
[0095]
[0093] The apparatus 1100 may be connected to the display unit 1128 (for example, via the bus 1114 and the graphics processing unit 1120). The display 1128 may include any suitable configuration for displaying information to the operator of the apparatus 1100. For example, the display 1128 may include or utilize a liquid crystal display (LCD), a touchscreen LCD (e.g., a capacitive display), a light-emitting diode (LED) display, a projector, or other display device for presenting information to the user of the apparatus 1100 on a visual display.
[0096]
[0094] One or more input devices 1130 (for example, an alphanumeric keyboard, microphone, keypad, remote controller, game controller, camera, or camera array) may be connected to the bus 1114 via the user input port 1122 to transmit information and commands to the device 1100. In a selected embodiment, the input devices 1130 may provide or support control of cursor positioning. Such cursor control devices, also called pointing devices, may be configured as a mouse, trackball, trackpad, touchscreen, cursor directional keys, or other device for receiving or tracking physical movement and converting that movement into electrical signals indicating cursor movement. The cursor control device may be incorporated into the display unit 1128, for example, using a touch-sensitive screen. The cursor control device can transmit directional information and command selections to the processor 1102 and control cursor movement on the display 1128. The cursor control device may have two or more degrees of freedom, for example, allowing the device to specify the cursor position in a plane or three-dimensional space.
[0097]
[0095] Some embodiments may be implemented on a non-temporary computer-readable storage medium for use in or in connection with an instruction execution system, device, system, or machine. This computer-readable storage medium contains instructions for controlling a computer system to carry out the methods described in some embodiments. This computer system may include one or more computing devices. The instructions may be configured or operable to carry out what is described in some embodiments when executed by one or more computer processors.
[0098]
[0096] Throughout this specification and the subsequent claims, “a,” “an,” and “the” include the plural form unless otherwise specified by the context. Also, throughout this specification and the subsequent claims, the meaning of “in” includes “inside” and “on top” unless otherwise specified by the context.
[0099]
[0097] The above description illustrates various embodiments, along with examples of how aspects of several embodiments may be carried out. The above examples and embodiments should not be considered as the only embodiments, but are presented to illustrate the applicability and advantages of several embodiments as defined by the following claims. Based on the above disclosure and the following claims, other configurations, embodiments, and equivalents may be used without departing from the scope of this disclosure as defined by the claims. The following is a direct reproduction of the claims as originally filed. [C1] Receiving quality metric values for profile levels in multiple profile levels of a content segment, To select a first profile level, the available bandwidth and associated bitrate of the profile levels among the plurality of profile levels are evaluated, To select a second profile level, the quality metric value for the profile level among the plurality of profile levels is evaluated, Based on the first profile level and the second profile level, a profile level is selected from the plurality of profile levels, and the selected profile level is required for the segment. A method that includes [a certain feature]. [C2] Receiving the aforementioned quality metric value The method of C1, comprising receiving the quality metric value as a communication containing information for requesting the segment of the content. [C3] Receiving the aforementioned quality metric value The method of C1, comprising receiving the quality metric value as a communication containing information about the plurality of profile levels. [C4] Receiving the aforementioned quality metric value The method of C1, comprising receiving the quality metric value using a property associated with a protocol used to send information about the plurality of profile levels. [C5] In order to select the first profile level, the available bandwidth and associated bitrate of the profile level among the plurality of profile levels are evaluated. Based on a comparison of the available bandwidth and the respective bitrates of the profile levels, a score is generated for each of the multiple profile levels. Selecting the first profile level based on the respective scores for each of the multiple profile levels. A method of C1 comprising: [C6] To generate the aforementioned score, Based on the available bandwidth, the rebuffering time for the profile level among the multiple profile levels is calculated, Based on the rebuffering time and the respective bitrates of the profile levels, the score for the profile level is generated. A method of C5 comprising the same as described above. [C7] In order to select the second profile level, the quality metric value for the profile level among the plurality of profile levels is evaluated. Based on the aforementioned quality metric values, a score is generated for each of the multiple profile levels. Selecting the first profile level based on the score of each of the profile levels among the plurality of profile levels. A method of C1 comprising: [C8] To generate the aforementioned score, Based on the available bandwidth, the rebuffering time for the profile level among the multiple profile levels is calculated, Based on the rebuffering time and the respective quality metric scores of the profile levels, the score for the profile level is generated. A method of C7 comprising the same. [C9] Calculate the rebuffering time for the profile level among the plurality of profile levels based on the available bandwidth and the bitrate of each of the profile levels, To select the first profile level and the second profile level, the rebuffering time for the profile level is used. A method of C1 that further includes the following: [C10] The segment comprises a first segment, and the method is Defining a first parameter value for a first time period and a second parameter value for a second time period, To select the second profile level for the first segment, the first parameter value is used when evaluating the quality metric value for the profile level among the plurality of profile levels, In order to select a third profile level from among the multiple profile levels for a second segment, the second parameter value is used when evaluating the quality metric value for a profile level among the multiple profile levels. A method of C1 that further includes the following: [C11] In order to select the first profile level, the available bandwidth and associated bitrate of the profile levels among the plurality of profile levels are evaluated. The method of C10, comprising using a third parameter value to select the first profile level. [C12] The segment comprises a first segment, and the method is Determining the time period, When selecting the profile level for the first segment occurs within the time period, the first profile level and the second profile level are used to select the profile level, If it is not within the aforementioned time period, then for the second segment, To select a third profile level, evaluate the available bandwidth and associated bitrate of the profile levels among the plurality of profile levels, and Selecting the third profile level from the aforementioned multiple profile levels. To carry out the above, and in this case, the third profile level is required for the second segment, A method of C1 that further includes the following: [C13] The first time period is predicted to be when the content distribution network charges a first price for distributing the content, The method according to C10, wherein the second time period is predicted to be when the content distribution network charges a second price for distributing the content, wherein the second price is lower than the first price. [C14] A non-temporary computer-readable storage medium storing computer-executable instructions, wherein when the computer-executable instructions are executed by a computing device, the computing device... Receiving quality metric values for profile levels among multiple profile levels of a content segment, To select a first profile level, the available bandwidth and associated bitrate of the profile levels among the plurality of profile levels are evaluated, To select a second profile level, the quality metric value for the profile level among the plurality of profile levels is evaluated, Based on the first profile level and the second profile level, a profile level is selected from the plurality of profile levels, and the selected profile level is required for the segment. A non-temporary, computer-readable storage medium that enables the execution of [a certain action]. [C15] Receiving time data from the delivery of content instances, The period during which the characteristics are satisfied is determined from the aforementioned data, The quality metric value for a profile in multiple profiles for a segment of a content instance is calculated based on an analysis of the characteristics of the segment. A method comprising transmitting the period and the quality metric value for a profile in the plurality of profiles for the segment to a client device, wherein the client device uses the period and the quality metric value to select a profile from the plurality of profiles for the segment. [C16] The method of C15, wherein the quality metric value for the profile is based on a characteristic that determines the perceived quality of the segment and each of the profiles. [C17] Sending the aforementioned quality metric values for the profile is: The method of C15, wherein the quality metric value for the profile is transmitted as a communication containing information for requesting the segment of content. [C18] The method of C17, wherein the quality metric value for the profile is transmitted in the communication using the characteristics of the protocol. [C19] Sending the aforementioned period The method of C15, wherein the aforementioned period is transmitted as a communication containing information for requesting the aforementioned segment. [C20] The method of C15, further comprising calculating the average of the profiles of multiple segments of the instance of the content using the quality metric values for the profiles of the multiple segments.
Claims
1. The system receives quality metric values for each profile level among multiple profile levels of a content segment, wherein the quality metric values determine the quality characteristics of the segment for each profile level among the multiple profile levels. With respect to the aforementioned segment, To select a first profile level from the plurality of profile levels for the segment, the available bandwidth and associated bitrate of the profile levels in the plurality of profile levels are evaluated. To select a second profile level among the plurality of profile levels for the segment, the quality metric value for the profile level among the plurality of profile levels is evaluated, wherein the first profile level is different from the second profile level. Based on the first profile level and the second profile level, a profile level is selected from the plurality of profile levels, and the selected profile level is required for the segment. To implement, A method that includes [a certain feature].
2. Receiving the aforementioned quality metric value, The method according to claim 1, comprising receiving the quality metric value as a communication containing information for requesting the segment of the content.
3. Receiving the aforementioned quality metric value, The method according to claim 1, further comprising receiving the quality metric value as a communication containing information about the plurality of profile levels.
4. Receiving the aforementioned quality metric value, The method according to claim 1, comprising receiving the quality metric value using a property associated with a protocol used to send information about the plurality of profile levels.
5. To select the first profile level, the available bandwidth and associated bitrate of the profile level among the plurality of profile levels are evaluated. Based on a comparison of the available bandwidth and the respective bitrates of the profile levels, a score is generated for each of the multiple profile levels. Selecting the first profile level based on the respective scores for each of the multiple profile levels. The method according to claim 1, comprising:
6. To generate the aforementioned score, Based on the available bandwidth, the rebuffering time for the profile level among the multiple profile levels is calculated, Based on the rebuffering time and the respective bitrates of the profile levels, the score for the profile level is generated. The method according to claim 5, comprising:
7. In order to select the second profile level, the quality metric value for the profile level among the plurality of profile levels is evaluated. Based on the aforementioned quality metric values, a score is generated for each of the multiple profile levels. Selecting the second profile level based on the score of each of the profile levels among the plurality of profile levels. The method according to claim 1, comprising:
8. To generate the aforementioned score, Based on the available bandwidth, the rebuffering time for the profile level among the multiple profile levels is calculated, Based on the rebuffering time and the respective quality metric scores of the profile levels, the score for the profile level is generated. The method according to claim 7, comprising:
9. Based on the available bandwidth and the bitrate of each of the profile levels, the rebuffering time for the profile level among the plurality of profile levels is calculated. To select the first profile level and the second profile level, the rebuffering time for the profile level is used. The method according to claim 1, further comprising:
10. The segment comprises a first segment, and the method is This involves defining a first parameter value for the peak period and a second parameter value for the non-peak period, To select the second profile level for the first segment, the first parameter value is used when evaluating the quality metric value for the profile level among the plurality of profile levels, In order to select a third profile level from among the multiple profile levels for a second segment, the second parameter value is used when evaluating the quality metric value for a profile level among the multiple profile levels. The method according to claim 1, further comprising:
11. To select the first profile level, the available bandwidth and associated bitrate of the profile levels among the plurality of profile levels are evaluated. The method according to claim 10, further comprising using a third parameter value to select the first profile level.
12. The segment comprises a first segment, and the method is Determining the peak period, When selecting the profile level for the first segment occurs within the peak period, the profile level is selected using the first profile level and the second profile level, When it is not within the aforementioned peak period, for the second segment, To select a third profile level, evaluate the available bandwidth and associated bitrate of the profile levels among the plurality of profile levels, and Selecting the third profile level from among the multiple profile levels without evaluating the quality metric value for the profile level among the multiple profile levels. To carry out the above, and in this case, the third profile level is required for the second segment. The method according to claim 1, further comprising:
13. The aforementioned peak period is predicted to be when the content distribution network charges a first price for distributing the content, The method according to claim 10, wherein the non-peak period is predicted to be when the content distribution network charges a second price for distributing the content, wherein the second price is lower than the first price.
14. A non-temporary computer-readable storage medium storing computer-executable instructions, wherein when the computer-executable instructions are executed by a computing device, the computing device... The system receives quality metric values for each profile level among multiple profile levels of a content segment, wherein the quality metric values determine the quality characteristics of the segment for each profile level among the multiple profile levels. With respect to the aforementioned segment, To select a first profile level from the plurality of profile levels for the segment, the available bandwidth and associated bitrate of the profile levels in the plurality of profile levels are evaluated. To select a second profile level among the plurality of profile levels for the segment, the quality metric value for the profile level among the plurality of profile levels is evaluated, Based on the first profile level and the second profile level, a profile level is selected from the plurality of profile levels, and the selected profile level is required for the segment. To implement, A non-temporary, computer-readable storage medium that enables the execution of [a certain action].
Citation Information
Patent Citations
Use of quality information for adaptive streaming of media content
JP2018023133A
Client, system, program, and method for controlling segment reception by image quality information
JP2018160805A
Session based adaptive playback profile decision for video streaming
JP2022074119A