Method and system for dynamic parameter adjustment of adaptive bitrate algorithm
By detecting the change points of the playback condition in real time and dynamically adjusting the parameters of the adaptive bit rate algorithm, the problem of poor performance of the adaptive bit rate algorithm under different playback conditions is solved, and the video transmission quality and stability are improved.
Patent Information
- Application Number
- CN202211223553.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2021-10-22
- Filing Date
- 2022-10-08
- Publication Date
- 2025-08-29
- Estimated Expiration
- 2042-10-08
AI Technical Summary
The existing adaptive bit rate algorithm cannot perform optimal calculations when facing the differences in playback conditions between different client devices, resulting in the impact of video transmission quality and stability.
By detecting the change points of playback conditions in real time, dynamically adjusting the parameters of the adaptive bit rate algorithm, using the scene adjustment engine to generate parameter configurations for different playback conditions, and optimizing the selection of configuration files.
Improves video transmission quality and stability, ensuring rapid switching of configuration files under different playback conditions, optimizes performance, and reduces resource consumption.
Smart Images

Figure CN116017037B_ABST
Abstract
Description
Background Art
[0001] In video streaming, a profile ladder lists different profiles that can be used by client devices when streaming video clips. Each profile can be associated with a different level, such as a different level of bit rate and / or quality. Therefore, when playback conditions are good (e.g., available bandwidth is high), the client can request a profile with a higher level (e.g., bit rate and / or quality). Conversely, when playback conditions deteriorate (e.g., available bandwidth is low), the client device can request a profile with a lower level (e.g., bit rate and / or quality). When experiencing better playback conditions, the video transmission system will provide the client with a video profile with a higher level, which improves the quality of the video being streamed. When experiencing poorer playback conditions, the video transmission system will provide the client device with a profile with a lower level so that the client device can play the video without any playback issues, such as rebuffering or download failures.
[0002] The adaptive bitrate algorithm can analyze playback conditions to select a profile to use. The algorithm can use a fixed configuration, such as fixed parameters, in its analysis. The playback conditions experienced can vary significantly between different client devices. However, these parameters can be adjusted for general operation across all clients. In some cases, these parameters may not be optimal under varying conditions. As a result, the adaptive bitrate algorithm may sometimes operate suboptimally. BRIEF DESCRIPTION OF THE DRAWINGS
[0003] With respect to the following discussion and drawings, it is emphasized that the details shown represent examples for the purpose of illustrative discussion and are presented to provide a description of the principles and conceptual aspects of the present disclosure. In this regard, no attempt is made to show implementation details beyond what is necessary for a basic understanding of the present disclosure. The following discussion, taken in conjunction with the accompanying drawings, will enable those skilled in the art to clearly understand how to implement embodiments according to the present disclosure. Similar or identical reference numerals may be used to identify or otherwise refer to similar or identical elements in the various drawings and supporting descriptions. In the drawings:
[0004] Figure 1 A simplified system for utilizing scenarios to adjust parameters of an adaptive bitrate algorithm is shown in accordance with some embodiments.
[0005] Figure 2 An example of a scene adjustment engine according to some embodiments is shown.
[0006] Figure 3A A simplified flow chart of a method for performing change point detection according to some embodiments is shown.
[0007] Figure 3B An example of a signal being analyzed according to playback conditions is shown in accordance with some embodiments.
[0008] Figure 3C A simplified diagram of signals and change points is shown in accordance with some embodiments.
[0009] Figure 4 Shown is a simplified flow chart for determining playback conditions for a scene, according to some embodiments.
[0010] Figure 5 Examples of different playback partitioning rules that may be employed according to some embodiments are shown.
[0011] Figures 6A to 6C The application of different partitioning styles in distribution according to some embodiments is shown.
[0012] Figure 7A A simplified flow chart illustrating a method for adjusting parameters for each scene according to some embodiments is shown.
[0013] Figure 7B A graph showing rebuffering ratios for each scene according to some embodiments.
[0014] Figure 8 A more detailed example of a client device according to some embodiments is shown.
[0015] Figure 9 A simplified flow chart illustrating a method for adjusting parameters of an adaptive bitrate algorithm according to some embodiments is shown.
[0016] Figure 10 Examples of adjusting parameters for selection of scenes and profiles are shown according to some embodiments.
[0017] Figure 11 A video streaming system in communication with multiple client devices via one or more communication networks is shown according to one embodiment.
[0018] Figure 12 A schematic diagram showing an apparatus for viewing video content and advertisements. DETAILED DESCRIPTION
[0019] This document describes technologies for video transmission systems. For illustrative purposes, the following description sets forth numerous examples and specific details to provide a thorough understanding of some embodiments. Some embodiments, as defined in the claims, may include only some or all of the features described in these examples, or in combination with other features described below, and may also include modifications and equivalents of the features and concepts described herein.
[0020] Video delivery systems can improve playback by adjusting parameters used in adaptive bitrate algorithms. The playback conditions of a session can be detected in real time, and the parameters used by the adaptive bitrate algorithm can be adjusted dynamically. The playback conditions can be based on samples acquired during playback, such as bandwidth, bandwidth standard deviation, and rebuffering events. The adaptive bitrate algorithm can then analyze the playback conditions using the adjusted parameters to select a profile for requesting video segments during playback.
[0021] The challenge in parameter adjustment is determining how to adjust parameters when playback conditions change during a playback session. In some embodiments, before a playback session begins, the video transmission system can analyze historical playback conditions to identify different scenarios representing different sets of possible playback conditions. The video transmission system can then determine parameter settings for these different scenarios. The process of determining playback conditions and parameters for a scenario will be discussed in more detail below. Once the scenarios and the parameters for each scenario have been determined, the parameters can be adjusted in real time as a scenario is encountered during video playback.
[0022] A client device can detect the playback conditions being experienced during video playback. The client device can then determine when a change point occurs, which is the point at which a new scene should be adopted. For example, the client device can select a scene that includes the playback conditions from multiple scenes corresponding to the current playback conditions. The client can then adjust the parameters of the adaptive bitrate algorithm based on the parameters set for that scene. When using the adjusted parameters, the adaptive bitrate algorithm can select a profile to request segments during the playback session. Using the adjusted parameters can optimize the performance of the adaptive bitrate algorithm for the playback conditions currently being experienced in the playback session. This can increase the level (e.g., bitrate and / or quality) of the profile used when better playback conditions are being experienced, or decrease the level of the profile when worse playback conditions are being experienced. When playback conditions change, the adjusted parameters enable faster switching between different profiles because the adjusted parameters can be adjusted to perform best under the currently experienced playback conditions (e.g., selecting the best profile for the playback conditions).
[0023] System Overview
[0024] Figure 1A simplified system 100 for utilizing a scene to adjust parameters of an adaptive bitrate algorithm 110, according to some embodiments, is shown. System 100 includes a video delivery system 102, a client device 104, and a content delivery network 106. Video delivery system 102, content delivery network 106, and client device 104 can be implemented using one or more computing devices. Furthermore, while a single instance of video delivery system 102, content delivery network 106, and client device 104 is shown, it should be understood that system 100 can include more than one video delivery system 102, content delivery network 106, and / or client device 104. For example, video delivery system 102 can communicate with multiple client devices 104, and content delivery network 106 can send video to client devices 104 via multiple servers, etc. Furthermore, while video delivery system 102, content delivery network 106, and client device 104 are shown as separate entities, the functionality performed by them can be distributed among them or to other entities.
[0025] The video delivery system 102 can provide a video delivery service that allows a client device 104 to request a video, such as a video on demand or a live video from a live TV broadcast. The video delivery system 102 can provide an application to the client device 104 that can display an interface 112 on the client device 104. A user account can log into the application to access the video delivery service. The video delivery system 102 can then receive a video request from the client device 104 and process the video request to allow the client device 104 to stream the video.
[0026] The client device 104 may include a computing device that is capable of playing back videos in the interface 112, such as via a media player (not shown). The client device 104 may include a mobile phone, a smart phone, a set-top box, a television, a living room device, a tablet device, etc. The client device 104 may run on a platform that can be categorized by the type of device running on the platform. For example, a platform includes a mobile device platform, a living room device platform, etc. A user account used by a user can utilize the client device 104 to access the video transmission service. For example, a user account can log in to the video transmission service to identify the user account information. When the client device 104 receives a request for a video from the user account, the client device 104 can send a video request for the video to the video transmission system 102.
[0027] In the process of starting video playback, the video delivery system 102 may receive a request for a video from the client device 104. The video delivery system 102 may select a content delivery network 106 and provide information to the content delivery network 106 and / or the client device 104 to enable streaming of the video between the content delivery network 106 and the client device 104. The video delivery system 102 may also provide various information, such as a playback configuration and a media presentation description. The playback configuration may include, among other things, available profiles for streaming. The media presentation description may include information about available profiles, segment durations, and other characteristics of the video.
[0028] The content delivery network 106 includes servers that can transmit videos to the client devices 104. For example, the content delivery server system 116 may include one or more servers capable of transmitting videos to the client devices 104. In some embodiments, the content delivery server system 116 transmits video clips to the client devices 104. These clips may be portions of a video, such as six seconds of content. The video may be encoded into multiple profiles corresponding to different levels, which may be different levels of bit rate and / or quality. The multiple profiles may be referred to as a profile ladder 118. Each video may have an associated profile ladder 118 with profiles having different bit rates and / or quality levels. The profiles may be categorized into different levels, and each level may be associated with different characteristics. For example, each level may be associated with a different bit rate, such as 400 kilobytes per second (kbps), 650 kbps, 1000 kbps, 1500 kbps, ... and 12000 kbps. However, the levels may be associated with other characteristics, such as quality characteristics (e.g., resolution). For example, the levels may be a combination of bit rate and resolution. In some embodiments, the level can be determined based on how the video is encoded for the level, e.g., for a profile associated with 400 kbps, the video is encoded at a 400 kbps level. Profile levels can be referred to as higher or lower, with profiles having higher bitrates and / or qualities being rated as higher levels than profiles having lower bitrates and / or qualities. The client device 104 can request a video clip according to one of the profile levels based on current playback conditions. Playback conditions can be any conditions experienced based on video playback, such as available bandwidth, buffer length, etc. For example, the client device 104 can utilize an adaptive bitrate algorithm 110 to select a profile for a video based on the current available bandwidth, buffer length, and other playback conditions.
[0029] The client device 104 can play back a video during a playback session. The adaptive bitrate algorithm 110 can analyze the current playback conditions during the video playback session to select a profile from the profile ladder 118 associated with the video. The adaptive bitrate algorithm 110 can be configured with parameter values that the algorithm uses to select a profile from the profile ladder 118 based on the playback conditions. Typically, the parameter values can be fixed. However, the adaptive bitrate algorithm 110 can dynamically adjust the parameter values using an intra-session scene selector 114. As will be discussed in more detail below, scenes can represent different playback conditions that may be encountered. These scenes can allow the client device 104 to categorize the playback conditions currently being experienced. When a scene is encountered, the intra-session scene selector 114 can adjust the parameter values of the adaptive bitrate algorithm 110 based on the scene. The adaptive bitrate algorithm 110 can then select a profile to use for sending a request for the video segment being played back.
[0030] Scenes can be configured before video playback. For example, the scene adjustment engine 108 can receive multiple sessions, such as playback conditions of multiple historical playback sessions. In addition, scene adjustment can be performed using real-time playback conditions and / or historical playback conditions during the playback session. The scene adjustment engine 108 can then analyze the playback conditions to generate scenes, wherein each scene can be associated with a different set of playback conditions. For example, if bandwidth is being used, different scenes can be associated with different available bandwidth values and bandwidth fluctuations over time (e.g., standard deviation or variance). These scenes can be configured with one or more playback conditions, and different scenes have at least one different value for a playback condition. For example, bandwidth can be 400 megabytes / second (mbps) and 800mbps. In addition, different scenes can add or subtract a playback condition for another scene. For example, a first scene is associated with 400mbps, while a second scene is associated with a bandwidth standard deviation of 0.50.
[0031] Once the scenes are determined, the scene adjustment engine 108 generates parameter configurations for these scenes. This adjustment generates different parameter values based on the playback conditions associated with the scenes. The parameter value generation process is described in more detail below. Once the parameter configurations for the scenes are adjusted, the scene adjustment engine 108 can provide these configurations to the intra-session scene selector 114. Then, when a scene is encountered, the intra-session scene selector 114 can use the parameter configurations to adjust the parameter values used by the adaptive bitrate algorithm 110 during the video playback session.
[0032] The following describes the adjustment of session parameters, followed by the dynamic adjustment of parameters during playback.
[0033] Scene parameter adjustment
[0034] As described above, playback conditions associated with scenes and parameter values for each scene may be determined. Figure 2 An example of a scene adjustment engine 108 according to some embodiments is shown. The scene adjustment engine 108 includes a change point detection engine 202, a playback condition modeling engine 204, a scene partitioning engine 206, and a parameter selection adjuster 208.
[0035] The change point detection engine 202 receives playback conditions, which can be from historical playback sessions, real-time playback sessions, and / or simulated playback conditions. Simulated playback conditions can be conditions created manually or automatically, historical playback conditions can be from a previous playback session that has ended, and a real-time playback session can be the session currently playing back the video. The change point detection engine 202 can determine change points, which can be signals representing the playback conditions or changes in the underlying model of the time series. The playback conditions can be represented by signals from the playback session (e.g., network traces), which can represent the quality of service (QoS) performance of the session. The playback conditions can measure different conditions experienced, such as bandwidth, rebuffering, etc. Bandwidth can be unstable and fluctuating, making it difficult to determine when to adjust parameters during a playback session. Change points can provide defined times that can facilitate the selection of new scenes and the adjustment of parameter values. To provide change points for adjusting parameter values, the change point detection engine 202 can divide the playback conditions into different fixed windows of playback conditions, which can be used to determine when to adjust parameter values.
[0036] The change point detection engine 202 may use the following process to determine change points, although other processes may also be employed. Figure 3A A simplified flow chart 300 of a method for performing change point detection according to some embodiments is shown. At 302, the change point detection engine 202 receives playback conditions. The playback conditions may be represented by a signal or a time series, which may be measurements from one or more playback sessions.
[0037] At 304, the change point detection engine 202 analyzes the playback conditions to detect change points. The analysis can measure changes in the signal, and when these changes meet a threshold, the change point detection engine 202 can determine that a change point has occurred. The change in the signal can indicate when the parameter value of the adaptive bitrate algorithm 110 can be adjusted.
[0038] Figure 3BAn example of a signal being analyzed based on playback conditions according to some embodiments is shown. The X-axis can be time during video playback, while the Y-axis can be bandwidth (mbps). A signal is shown at 324, which can be a representation of samples of the received playback conditions, such as the mean of the bandwidth samples. To analyze the signal, different methods can be used to determine when a change point occurs. For example, for a video comprising multiple samples y0, y1, ..., y T-1 (T samples), the change point detection engine 202 can detect the discrete signal at time t1, t2, ..., t K Determine the sum of squared errors for all possible change point locations. In some embodiments, the change point can be determined by selecting a point that satisfies a threshold, such as a change point that minimizes the sum of squared errors of the signal. The sum of squared errors can be fitted to a line between the sample points, and then a sliding window is used to compare the sample points in the window to find the best fit by reducing the error. The error can be the sum of the differences between the actual value and the predicted value. Minimizing the sum of squared errors finds the point that minimizes the sum of squared errors of a portion of the signal. For discrete signals y0, y1, ..., y T-1 (Tsamples), the change point detection engine 202 can solve the following optimization problem for all possible change point locations t1, t2, ..., t k :
[0039]
[0040] in
[0041] For signals y0, y1, ..., y T-1 (Tsamples), each sample can be used as a change point. In addition, by controlling the distance between change points, the change points can be defined as t1, t2, ..., t K Note: t1<t2<…<t K , t0=0,t k+1 =T. Total represents the square error of the bandwidth samples between two adjacent change points, reflecting the fluctuation of the bandwidth during this period. In addition, the sum Represents the sum of squared errors between the change point window or all change points. Figure 3C A simplified diagram 350 of a signal 352 and change points according to some embodiments is shown. If the change points are chosen at times t1 and t2, the sum is equal to zero, i.e. therefore For each signal portion between the change points, the sum of the squared errors is zero because the bandwidth fluctuation in the signal between the change points is zero. If times t1 and t2 were not chosen as change points, the sum of the squared errors would have to be greater than zero because the bandwidth would fluctuate in all signal portions between the change points.
[0042] exist Figure 3B , the change point detection engine 202 determines change points at 322-1 and 322-2. The change points are determined based on changes in playback conditions in the signal 324 that meet a threshold. For example, by selecting a change point at 322-1, the first portion of the signal at 326 may have a sum of squared errors that meet a threshold (e.g., less than a value or zero). This is because if signal values after the change point at 322-1 were included, the error would likely increase because these values are further away from the signal value found in the first portion at 326. Another change point at 322-2 can be determined in a similar manner.
[0043] See again Figure 3A At 306, the change point detection engine 202 selects a change point as described above. Then, after determining change points 322-1 and 322-2, at 308, the change point detection engine 202 may store playback characteristics of the change points. For example, when using change points 322-1 and 322-2, the change point detection engine 202 may calculate the average bandwidth, the bandwidth standard deviation between change points 322-1 and 322-2, and the number of rebuffers. When using the metrics of average bandwidth, bandwidth standard deviation, and number of rebuffers, the change point detection engine 202 can map the current network conditions to a specific scenario based on any scenario partitioning rules, as discussed below. The client device 104 can use these playback characteristics during video playback to determine when to adjust the parameters of the adaptive bitrate algorithm 110. One reason for using change points is that playback conditions during a playback session may be unstable and change. By using change points, the client device 104 can determine different times when parameter values can be changed to improve playback. This provides static conditions that can be met to determine when to perform analysis. By using change points, the number of parameter adjustments can also be minimized. Changing parameter values during a playback session may have costs, such as the use of computing resources. In addition, changing parameter values may cause the adaptive bitrate algorithm 110 to operate in a different manner, which may be undesirable if the playback conditions have not changed significantly. Continuously changing parameter values may not be desirable when the playback conditions have not changed significantly.
[0044] A change point determines when analysis is performed for possible scene changes, but does not determine the scene. However, after a change point is determined, a scene is selected. To select a scene, the current playback conditions of the playback session are compared with the playback conditions associated with the scene. These playback conditions for the scene are also determined. See again Figure 2 After determining the change points, the playback condition modeling engine 204 can model playback conditions for each scene. The playback condition modeling can define playback conditions that may be associated with each scene, so that the client 104 can select one of the scenes during playback. In addition, the playback condition modeling can allow the scene adjustment engine 108 to adjust parameter values for each scene, which will be discussed below.
[0045] Figure 4 A simplified flowchart 400 is shown for determining playback conditions for a scene according to some embodiments. At 402, the playback condition modeling engine 204 generates a representation of the playback conditions. The representation can be a distribution of playback conditions, such as bandwidth, bandwidth fluctuations, and rebuffering events. While these playback conditions are described, other playback condition distributions are contemplated.
[0046] At 404, the playback condition modeling engine 204 analyzes the distribution of playback conditions for compliance with the zoning pattern rules. The zoning pattern rules can divide the distribution area into multiple scenes. Furthermore, different zoning pattern rules can divide the distribution in different ways. For example, different patterns can be used, such as a grid, but other patterns can also be used, such as a randomly drawn pattern, a circular pattern, any other shaped pattern, and a combination of various patterns.
[0047] At 406, the playback condition modeling engine 204 selects a partition pattern rule. The partition pattern rule may be selected based on the characteristics of the distribution. A method for selecting a partition pattern rule will be described below.
[0048] Figure 5Examples of different playback partitioning rules that can be used in accordance with some embodiments are shown. The partitioning pattern for each rule can be based on characteristics, such as data point density, to divide the distribution into partitions of varying sizes. Partitions can be determined in various ways, such as by a clustering algorithm that generates clusters based on data points. Clusters can be determined based on similar characteristics of data points within the clusters. Different clustering algorithms can be used to determine clusters. The partitioning pattern used can be based on the determined clusters. Partitioning pattern 502-1 can be a square grid that divides the distribution into four partitions, and partitioning pattern 502-2 can be a nine-square grid that divides the distribution into nine partitions. Partitioning pattern 502-3 can use quadtree partitioning, where each partition can be further partitioned using quadtree partitioning. For example, a partition can be consecutively divided by four other partitions. Partitioning pattern 502-4 can use different types of partitioning patterns. For example, partitions S10 and S11 use a rectangular partitioning pattern, while partitions S1-S9 use a quadtree partitioning pattern. While the above partitioning patterns are used, different partitioning patterns are contemplated.
[0049] The style may be selected based on the playback conditions used. Figures 6A to 6C FIG2 shows the application of different partitioning styles in a distribution according to some embodiments. The distribution can map rebuffering events to the average bandwidth and bandwidth standard deviation at which rebuffering events occur. Figure 6A In FIG. 6 , 602 - 1 illustrates a distribution with a four-square partition pattern. Partitions S1 and S3 may include a large number of data points from the distribution. However, partitions S2 and S4 may contain very few data points. Given the large number of data points in these partitions, using large partitions S1 and S3 may not be ideal. Furthermore, the small number of data points in partitions S2 and S4 may not be ideal due to a lack of data available to determine playback conditions for these partitions.
[0050] exist Figure 6B In FIG. 602-2, a nine-partition grid is shown according to some embodiments. As described above, Figure 6A Partitions S2 and S4 in the distribution may already have a very small number of data points. In the distribution, there may be more data points with lower bandwidth. To increase the number of data points in the partition, partitions S3, S6, and S9 can have more data points in the horizontal direction. Figure 6A The partitions S2 and S4 in the image are larger in area to capture more data points with lower bandwidth. At this time, a large number of data points are included in these partitions, which can be used to better characterize the playback conditions in each corresponding partition. In addition, Figure 6B Partitions S1, S2, S4, S5, S7, and S8 in Figure 6A The partitions S1 and S3 in are small. This allows smaller partitions to represent data points at a finer granularity.
[0051] There may still be a large number of data points in the lower left corner of the distribution in partition S1, while there may be a smaller number of data points in partitions S7 and S8. Figure 6C 602-3 shows a partitioning distribution that can also be used according to some embodiments. In some examples, there may be a large number of data points with an average bandwidth of less than 5 megabytes per second (mbps) and a standard deviation below 0.50. In this case, a quadtree partitioning style can be used for partitions S1, S2, S3, and S4, which were previously Figure 6B Partitions S8 and S10 are relatively large due to the small number of data points found in these areas and replace Figure 6B In addition, partition S9 can replace Figure 6B Partitions S7 and S8 in the ,area can be larger than partitions S1-S4 because the number of data points in these ,partitions is smaller.,Also, partitions S5, S6 and S7 can be larger than partitions S1-S4 because the number of ,data points in these partitions is smaller.
[0052] Therefore, the partition pattern rules divide the distribution based on the characteristics of the data points found in the distribution. Each partition in the pattern can represent a different playback condition. For example, in Figure 6A In , partition S1 represents an area of low bandwidth, low volatility, and high rebuffering ratio. This is an area of high rebuffering ratio because a large number of rebufferings are experienced. In addition, since the standard deviation in the bandwidth where rebuffering occurs (for example, multiple rebufferings occur at approximately the same average bandwidth) is low, this is an area of low volatility. Partition S2 represents an area of high bandwidth, low volatility, and low rebuffering ratio. This partition has a higher average bandwidth than partitions S1 and S3, a lower standard deviation of average bandwidth than partitions S3 and S4, and fewer rebuffering events than partitions S1 and S3. Partition S3 represents an area of low bandwidth, high volatility, and high rebuffering ratio. The standard deviation is higher than partition S1, indicating greater volatility, the average bandwidth is lower than partitions S2 and S4, and there are a large number of rebuffering events in partition S3 compared to partitions S2 and S4. Partition S4 represents an area of high bandwidth, high volatility, and low rebuffering ratio. Partition S4 has a higher average bandwidth than partitions S1 and S3, a higher standard deviation of bandwidth than partitions S1 and S2, and fewer rebuffering events than partitions S1 and S3. The same analysis can be used to characterize Figure 6B and Figure 6C See the other partitions in the table to see the number of data points, average bandwidth, and bandwidth standard deviation within the partition. Figure 4 At 408 , the playback condition modeling engine 204 applies the partition pattern rules to the playback conditions to determine scene characteristics.
[0053] Then, see again Figure 2, the scene partitioning engine 206 can output the characteristics of the scene. For example, according to the selected partitioning rules, the scene can have the above combination Figures 6A to 6C The scene partitioning engine 206 may send the features that determine the scene based on the partitioning pattern to the intra-session scene selector 114. When employing these scene features, the intra-session scene selector 114 may select a scene based on the real-time playback conditions encountered in the playback session.
[0054] When selecting a profile for the adaptive bitrate algorithm 110, the parameter selection adjuster 208 can select parameter values for each scenario. Some parameters may include a bandwidth safety factor, a low buffer watermark, simulation duration, a rebuffering penalty, a switching penalty, and so on. However, different adaptive bitrate algorithms 110 may utilize different parameters for profile selection. The bandwidth safety factor can be used to prevent bandwidth overestimation and future bandwidth degradation. For example, the adaptive bandwidth algorithm 110 may use the estimated bandwidth of the current playback session to determine the profile to select. The bandwidth can be calculated based on previously downloaded segments, and the bandwidth is equal to the segment size divided by the download time. Sometimes, this value may not be directly available, but can be multiplied by the bandwidth safety factor. This changes the estimated bandwidth used for profile selection. The bandwidth safety factor value can be made more or less aggressive. For example, a lower bandwidth safety factor can make the adaptive bandwidth algorithm 110 more conservative when switching profiles, while a higher bandwidth safety factor can make it more aggressive. The rebuffering penalty and switching penalty can be parameters in the reward formula used to select a profile. For example, a reward for switching to a new profile can be calculated, and the profile with the highest reward can be selected. An example of a reward calculation may be performed using the following formula: Reward = bitrate - rebufferPenalty * totalRebufferTime - switchPenalty * | currentbitrate - previousbitrate | (Reward = bitrate - rebuffer penalty * total rebuffer time - switch penalty * | currentbitrate - previousbitrate |). The rebuffer penalty (rebufferPenalty) and the switch penalty (switchPenalty) may be parameters in the formula. When simulating the download process for the subsequent N segments in the adaptive bitrate algorithm 110, a simulation duration parameter may be used. The value of N may be determined by the simulation duration parameter, where N = simulation duration / segment duration. For each profile, the adaptive bitrate algorithm 110 simulates the download process of the N segments using the estimated bandwidth, and if rebuffering occurs, the adaptive bitrate algorithm 110 records the total rebuffering time. After the simulation, the adaptive bitrate algorithm 110 may calculate a reward for each candidate profile and select the profile corresponding to the highest reward. The low buffer watermark parameter may be used to determine when rebuffering has occurred, as rebuffering may occur when the data in the buffer drops below a certain point determined by the low buffer watermark parameter.While the above parameters are discussed, other parameters are also contemplated.
[0055] The parameter selection adjuster 208 may utilize the playback conditions for each scene to generate optimal parameters for each corresponding scene. Figure 7AA simplified flowchart 700 of a method for adjusting parameters for each scenario according to some embodiments is shown. In 702, the parameter selection adjuster 208 receives characteristics of the scenario. These characteristics can be average bandwidth, bandwidth standard deviation, and rebuffering events. Then, in 704, the parameter selection adjuster 208 determines the download process for each scenario based on the corresponding characteristics of the scenario and different adaptive bitrate parameter configurations. For example, the parameter selection adjuster 208 can determine a network trace with the characteristics of each scenario. For each scenario, different parameter values are used to simulate playback to represent the streaming of video to the client device 104, and the parameter selection adjuster 208 can use different parameter values to record the performance of the playback. For example, playback conditions such as quality of service performance can be recorded. In one example, performance can be quantified by the rebuffering ratio. The parameter adjustment using the rebuffering ratio for each scenario will be described below.
[0056] The parameter selection adjuster 208 outputs the performance of each scene using different adaptive bitrate parameters in 706. Then, in 708, the parameter selection adjuster 208 analyzes the performance and selects parameters for each scene. Figure 7B Graph 720 shows the rebuffering ratio for each scene according to some embodiments. As described above, Figures 6A to 6C The distribution in may already represent the density of rebuffering events. Figure 7B Rebuffering events can be quantified based on the performance of the network trace for each scenario into a value reflecting the rebuffering performance in each region. That is, for each scenario, a network trace representative of that scenario is played back. The values shown for each scenario in 720 can then represent the performance of each scenario. As shown, each partition S1-S10 includes a rebuffering ratio value. A lower value can indicate a lower number of rebuffers in the network trace. A higher value can indicate a higher number of rebuffers in the network trace. When scenarios include higher rebuffering ratios, the adaptive bitrate algorithm 110 should be more conservative during these scenarios to reduce rebuffering events. However, for scenarios with lower rebuffering ratios, the adaptive bitrate algorithm 110 can be more aggressive in increasing the profile used because the probability of rebuffering is lower. In this case, partitions S1 (1% rebuffering ratio), S3 (0.73%), S6 (0.472%), and S9 (0.225%) may have higher rebuffering ratios compared to other scenarios, and the parameters for these partitions can be set more conservatively. However, partitions S2 (0.0009%), S4 (0.002%), S5 (0.00005%), S7 (0.0005%), S8 (0.000005%), and S10 (0.00045%) may have lower rebuffering ratios, and the parameters for these scenarios can be set more aggressively.
[0057] The process of determining the exact parameter values for the scenario can be different. For example, each network trace can be simulated using different parameters of the adaptive bitrate algorithm 110. The performance of each network trace can be analyzed. The parameter selection adjuster 208 can select the parameter values corresponding to the best performance of the network trace in each scenario. In other examples, different rebuffering ratios can be mapped to different parameter values. In addition, a predictive network can be used to output parameters based on the playback conditions and rebuffering ratios of each scenario. In some examples, a standard value for the bandwidth safety factor can be 0.65. When the adaptive bitrate algorithm 110 should be conservative, the bandwidth safety factor can be reduced to a range between 0 and 0.65, and when the adaptive bitrate algorithm 110 should be more aggressive, the bandwidth safety factor can be increased to a range between 0.65 and 1.
[0058] See again Figure 7A In 710, the parameter selection adjuster 208 provides the parameter values for the scenario to the client device 104. For example, see Figure 2 , the parameter selection adjuster 208 sends the parameter values for the scenarios to the intra-session scenario selector 114. After the parameter values for each scenario are selected, an intra-session scenario selection may be performed to adjust the parameter values.
[0059] In-session parameter adjustment
[0060] Figure 8 A more detailed example of a client device 104 according to some embodiments is shown. During a playback session, the intra-session scene selector 114 can select scenes and adjust parameters of the adaptive bitrate algorithm 110. The real-time change point detection engine 802 can determine when a change point is reached in the playback session of the currently playing video. For example, when the segment downloader 810 downloads segments during video playback, the playback conditions, such as the profile used, the download size, and the download time, can be stored in the historical playback conditions 806. The current playback conditions can be included with the playback conditions of the previously downloaded segments to form the historical playback conditions. The real-time change point detection engine 802 can receive the historical playback conditions and detect when a change point occurs based on the characteristics defined by the previously determined change points. For example, the real-time change point detection engine 802 can use a sliding window, such as covering the past 100 seconds of bandwidth data. When a new bandwidth sample is received, the real-time change point detection engine 802 moves the sliding window to remove the oldest sample and include the newest sample. The real-time change point detection engine 802 can then use the same Figure 3AThe real-time change point detection engine 802 detects whether a change point exists in the sliding window using the same method described in
[15] . If no change point is determined, the real-time change point detection engine 802 continues to use the current parameters. If a change point is determined, the real-time change point detection engine 802 calculates playback characteristics, such as average bandwidth and standard deviation, based on the bandwidth samples between the last two change points. These playback characteristics can then be used to select a scene.
[0061] When a change point occurs, the intra-session scene selector 114 may select a scene. Although the scene selection is discussed as occurring when a change point occurs, the intra-session scene selector 114 may perform the process at other times, such as continuously, at a specific time period (e.g., every 30 seconds or every minute, etc.), or at other times. However, as described above, employing change point detection may help minimize the resources used to change scenes.
[0062] The intra-session scene selector 114 can select a scene and provide the parameters of the scene to the adaptive bitrate algorithm 110. The adaptive bitrate algorithm 110 can then adjust the parameters in the parameter settings 808. The profile selection engine 810 can receive a profile ladder 118 that defines the profiles that can be selected for the session. For example, the profile ladder 118 can include different profiles with different bit rates and / or qualities (e.g., resolution). For the purposes of this discussion, only bit rates can be discussed. In some embodiments, bit rates can include 400 mbps, 650 mbps, 1000 mbps, ..., and 3800 mbps, etc. Different levels of profiles can indicate different levels of quality, for example, a higher bit rate can be associated with a higher quality.
[0063] The profile selection engine 810 can select a profile based on playback conditions, such as bandwidth prediction 804 and buffer size. For example, bandwidth prediction 804 can use historical playback conditions 806 to predict the bandwidth for the next N segments. Profile selection 810 can execute an algorithm that can use parameters to select a profile. As described above, parameters such as playback safety factor, rebuffering penalty, switching penalty, etc. can be adjusted based on the selected scene. However, different parameters used by the algorithm can be adjusted based on the selected scene. The adaptive bitrate algorithm 110 then uses the adjusted parameters to execute an algorithm to select a profile based on the current playback conditions, such as bandwidth and buffer size.
[0064] Once a configuration file has been selected using the adjusted parameters, the segment downloader 810 can download segments for that matching file. Note that parameter adjustments may or may not result in the selection of a new configuration file. Even with adjusted parameters, playback conditions may not guarantee that the configuration file will change. However, when playback conditions change, the adjusted parameter values may result in different configuration file changes than would have occurred using the previous parameter values.
[0065] After requesting a segment, the media player 814 can receive and play back the segment. After playing the segment, the segment downloader 810 can provide the used profile, download size, and download time to add to the historical playback conditions 806. In addition, the media player 814 can provide the current buffer size to the profile selection engine 810. The process then continues to determine when to switch profiles.
[0066] Figure 9 A simplified flow chart 900 of a method for adjusting parameters of the adaptive bitrate algorithm 110 according to some embodiments is shown. At 902, the change point detection 802 analyzes the playback conditions of the current playback session to detect changes. At 904, a determination is made as to whether a change point is detected. If a change point is detected, at 906, the intra-session scene selector 114 selects a scene based on the playback conditions and corresponding scene features. The playback conditions can be mapped to scene features, and a scene that satisfies (e.g., is closest to) the playback conditions can be selected. At 908, the adaptive bitrate algorithm 110 adjusts parameter values based on the scene.
[0067] If no change point is detected, a profile can be selected based on the existing parameters of the adaptive bitrate algorithm 110. However, if the parameter values are changed, then at 910, the adaptive bitrate algorithm 110 selects a profile based on the adjusted parameters. Then, at 912, the segment downloader 812 downloads the segments based on the selected profile. The process then repeats 902, with a change point being detected again at 902.
[0068] Example
[0069] An example illustrating scenario-based parameter adjustment will be described below. Figure 10 An example of selecting tuning parameters for a scene and a profile is shown according to some embodiments. Figure 10Graph 1002 shows the selected profile, graph 1004 shows the selected scene, and graph 1006 shows the bandwidth experienced. Graph 1002 may include a profile index on the Y-axis and a segment index on the X-axis. In addition, the buffer size is displayed on the Y-axis. Graph 1002 may include four lines. Line 1020 shows the profile index for the default adaptive bitrate algorithm, while line 1022 shows the profile index for the scene-based adaptive bitrate algorithm 110. Furthermore, line 1024 shows the buffer size for the default adaptive bitrate algorithm, while line 1026 shows the buffer size for the scene-based adaptive bitrate algorithm 110. The default adaptive bitrate algorithm may use a fixed set of parameter values, while the scene-based adaptive bitrate algorithm 110 may adjust the parameters based on the scene. Graph 1004 shows the scene index on the Y-axis and the segment index on the X-axis. Graph 1006 shows the bandwidth on the Y-axis and the segment index on the X-axis.
[0070] In some embodiments, the Figure 6C The quadtree scene partitioning shown. Before downloading each segment, a change point analysis is performed to determine whether the playback conditions have changed. The download process can be divided into four stages. For the first ten segments at 1008, the default configuration of the profile can be determined using the adaptive bitrate algorithm 110, and the download bandwidth of these segments is recorded. After downloading the first ten segments, the scene can be selected. Note that the first ten segments can be used to establish some data to be used, but it is not necessary to use the default parameters of the first ten segments. For example, at the beginning, a scene can be selected at the beginning of playback and the parameters of that scene can be used.
[0071] In the second stage at 1010, the intra-session scene selector 114 selects scene S1. Scene S1 may represent playback conditions of low bandwidth, low volatility, and a low rebuffering rate. For example, as shown in 1006, the bandwidth of the first ten segments may be low. In addition, there may be small bandwidth variations and a small amount of rebuffering. For example, when the buffer length is below a threshold, the rebuffering that occurs may be based on the buffer length.
[0072] After the 44th segment is downloaded, a change point is detected where the playback conditions, such as bandwidth, change sufficiently to meet the change point threshold. At this point, the bandwidth may change from approximately 500 bps to over 5000 bps. The intra-session scene selector 114 may select a new scene at this point. For example, the playback conditions may be: the bandwidth fluctuates significantly due to changes in bandwidth, and the bandwidth is low. The scene that best matches these playback conditions may be Figure 6CScenario S9 in Figure 1. Scenario S9 represents an area of low bandwidth, high volatility, and a high rebuffering rate. In this case, due to the high volatility and high rebuffering event rate, a more conservative decision can be made regarding profile selection. For example, one adjusted parameter could be to use a smaller bandwidth safety factor when estimating bandwidth, which could result in a lower profile than would normally be selected by the default adaptive bitrate algorithm.
[0073] In the third stage at 1012, from segment 44 to segment 60, the bandwidth is high and relatively stable. In this case, a change point can be detected because the bandwidth is now stable and a scene that is more relevant to the stable bandwidth is selected. This can be Figure 6C Scenario S2 in Figure 1 has a lower bandwidth standard deviation than scenario S9, meaning it is more suitable for playback conditions with stable bandwidth. In this case, scenario S2 is used to select the profile. Scenario S2 is associated with high bandwidth, low volatility, and a low rebuffering event rate, and adaptive bitrate algorithm 110 can make more aggressive decisions.
[0074] At the fourth stage at 1014, from segment 60 to segment 62, the bandwidth may drop dramatically, creating a change point. In this case, a scene with a higher fluctuating bandwidth, such as scene S9, may be selected. This results in a change from scene S2 to scene S9 at 1004. Then, at the fifth stage at 1016 after segment 62, the bandwidth stabilizes again, but at a lower bandwidth. In this case, the scene changes again to scene S1, representing a low-bandwidth and low-volatility scene. This results in a more conservative decision by the adaptive bitrate algorithm 110.
[0075] At 1002 , the selected profiles and buffer sizes can be compared between the default adaptive bitrate algorithm and the scene-based adaptive bitrate algorithm 110. During segments 49 through 60, the scene-based adaptive bitrate algorithm 110 can employ a higher-level profile than the default adaptive bitrate algorithm. This allows for streaming video at higher quality while maintaining a more stable and high bitrate. The scene-based adaptive bitrate algorithm 110 can employ a higher-level profile because scene S2 can have more aggressive parameters than the standard adaptive bitrate algorithm. However, the scene-based adaptive bitrate algorithm 110 makes more conservative decisions about the profile after segment 60 than the standard adaptive bitrate algorithm. In this case, the lower-level profile can be requested more quickly in the scene-based adaptive bitrate algorithm 110 than in the standard adaptive bitrate algorithm. Scene S9 in the scene-based adaptive bitrate algorithm 110 can have more conservative parameters than the standard adaptive bitrate algorithm. These more conservative parameters may be appropriate because bandwidth has decreased. This results in a larger buffer size when using the scene-based adaptive bitrate algorithm 110 than when using the default adaptive bitrate algorithm. A larger buffer size can avoid rebuffering events. For example, when the buffer size of the default adaptive bitrate algorithm reaches 0 at 1028, rebuffering may occur. However, at 1028, the buffer size of the scene-based adaptive bitrate algorithm 110 does not reach 0, and no rebuffering occurs. Therefore, the performance of profile selection using the scene-based adaptive bitrate algorithm 110 can be improved because the profile selection can adapt to changing playback conditions more quickly and rebuffering can be avoided.
[0076] in conclusion
[0077] By utilizing the scenario to adjust the parameters of the adaptive bitrate algorithm 110, the performance of the playback session can be improved. The parameter changes are different from profile changes based on the current playback conditions. In this case, the parameters used to determine when to change the profile are adjusted to the optimal parameters based on the current playback conditions. This allows the adaptive bitrate algorithm 110 to make the best choice for the profile, thereby reducing the number of rebuffering events when encountering poor playback conditions, while allowing a higher profile level to be selected when encountering better playback conditions.
[0078] system
[0079] like Figure 11As shown, the features and aspects disclosed herein can be implemented in conjunction with a video streaming system 1100 that communicates with multiple client devices via one or more communication networks. The description of various aspects of the video streaming system 1100 is merely intended to provide an example of an application for implementing the distribution and transmission of content prepared in accordance with the present disclosure. It should be appreciated that the present technology is not limited to streaming video applications and can be applied to other applications and transmission mechanisms.
[0080] In one embodiment, a media program provider may include a media program library. For example, media programs may be aggregated and provided through a site (e.g., a website), an application, or a browser. A user may access the site or application of a media program provider and request media programs. The user may be limited to requesting only media programs provided by the media program provider.
[0081] In system 1100, video data can be obtained from one or more sources, such as video source 1110, and used as input to video content server 1102. The input video data can include raw or edited frame-based video data in any suitable digital format, such as 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. Alternatively, the video can be provided in a non-digital format and converted to a digital format using a scanner and / or transcoder. The input video data can include various types of video clips or programs, such as television series, movies, and other content produced as primary content of interest to consumers. The video data can also include audio, or only audio can be used.
[0082] The video streaming system 1100 may include one or more computer servers or modules 1102, 1104, and / or 1107 distributed across one or more computers. Each server 1102, 1104, 1107 may include or be operatively coupled to one or more data stores 1109, such as databases, indexes, files, or other data structures. The video content server 1102 may access a data store (not shown) of various video clips. The video content server 1102 may provide video clips as directed by a user interface controller in communication with a client device. As used herein, a video clip refers to a delimited portion of frame-based video data, such as may be used in a streaming video session to view a television series, movie, recorded live performance, or other video content.
[0083] In some embodiments, the video ad server 1104 can access a data store of relatively short videos (e.g., 10-second, 30-second, or 60-second video ads) that are configured to display advertisements for a particular advertiser or message. The advertisements can be provided to the advertiser in exchange for some compensation or can include promotional messages, public service messages, or some other information from the system 1100. The video ad server 1104 can provide the video ad segments as directed by a user interface controller (not shown).
[0084] The video streaming system 1100 may also include a scene adjustment engine 108 .
[0085] The video streaming system 1100 may also include an integration and streaming component 1107 that integrates video content and video advertisements into a single streaming video segment. For example, the streaming component 1107 may be a content server or a streaming server. A controller (not shown) may determine the selection or configuration of advertisements in a streaming video based on any suitable algorithm or process. The video streaming system 1100 may include Figure 11 Other modules or units not shown, such as management server, business server, network infrastructure, advertisement selection engine, etc.
[0086] The video streaming system 1100 can be connected to a data communication network 1112. The data communication network 1112 can include a local area network (LAN), a wide area network (WAN) (e.g., the Internet), a telephone network, a wireless cellular telecommunication network (WCS) 1114, or some combination of these or similar networks.
[0087] One or more client devices 1120 can communicate with the video streaming system 1100 via a data communications network 1112, a wireless cellular telecommunications network 1114, and / or another network. These client devices can include, for example, one or more laptop computers 1120-1, desktop computers 1120-2, "smart" mobile phones 1120-3, tablet devices 1120-4, network-enabled televisions 1120-5, or combinations thereof, connected via a router 1118 for a LAN, a base station 1117 for a wireless cellular telecommunications network 1114, or some other connection. In operation, these client devices 1120 can send data or instructions to and receive data or instructions from the system 1100 in response to user input or other input received from a user input device. In response, the system 1100 can provide video clips and metadata from the data store 1109 to the client devices 1120 in response to selections of media programs. The client device 1120 may output video content from the streaming video clip in a media player using a display screen, projector, or other video output device, and receive user input for interacting with the video content.
[0088] Can adopt various methods, such as streaming, distribute audio-video data to remote client device from streaming component 1107 through computer network, telecommunication network and the combination of these networks.When streaming, content server is streamed continuously with audio-video data to the media player component that at least part is moved on client device, and this media player component can play audio-video data when receiving streaming data from server.Although streaming has been discussed, other transmission methods can also be adopted.The media player component can just start the playing of video data immediately after receiving the initial part of data from content provider.Traditional streaming technology adopts single provider to transmit data stream to one group of terminal users.May need high bandwidth and processing power to transmit single stream to a large number of audiences, and along with the increase of terminal user number, the bandwidth required by provider may increase.
[0089] Streaming media can be transmitted on demand or in real time. Streaming media enables instant playback at any point in the file. Terminal users can quickly browse media files to start playback, or switch to any point in the media file for playback. Therefore, terminal users do not need to wait for files to be downloaded step by step. Usually, streaming media is transmitted from several dedicated servers with high bandwidth capabilities via dedicated equipment. This dedicated equipment accepts requests for video files and utilizes information about the format, bandwidth and structure of these files to transmit the amount of data required for video playback at the rate required for video playback. The streaming media server can also consider the transmission bandwidth and capabilities of the media player on the destination client. Streaming media component 1107 can utilize control messages and data messages to communicate with client device 1120 to adapt to the playback conditions in the changes while the video is playing. These control messages can include commands for opening control functions (such as fast forward, fast rewind, pause or searching for a specific part of a file on the client).
[0090] Because the streaming component 1107 transmits video data only as needed and at the required rate, precise control over the number of streams provided can be maintained. A viewer cannot watch a video with a higher data rate over a lower data rate transmission medium. However, a streaming server has the following features: (1) provides users with random access to video files; (2) allows monitoring of who is watching what video programs and how long those video programs are watched; (3) makes more efficient use of transmission bandwidth because only the amount of data required to support the viewing experience is transmitted; and (4) the video files are not stored on the viewer's computer but are discarded by the media player, thereby achieving more control over the content.
[0091] Streaming component 1107 can adopt TCP-based protocols such as Hypertext Transfer Protocol (HTTP) and Real-time Messaging Protocol (RTMP). Streaming component 1107 can also transmit live webcasts and can perform multicasting, thereby allowing more than one client to listen to a single stream to save bandwidth. Streaming media players can provide random access to any point in a media program without relying on buffering of the entire video. Instead, this is achieved using control messages transmitted from the media player to the streaming media server. Other protocols used for streaming include HTTP Live Streaming (HLS) or Dynamic Adaptive Streaming over HTTP (DASH). HLS and DASH protocols transmit videos via a playlist of small segments over HTTP, typically providing these small segments at multiple bit rates from one or more content delivery networks (CDNs). This allows the media player to switch bit rates and content sources in a segment-by-segment manner. This switching helps compensate for network bandwidth differences and infrastructure failures that may occur during video playback.
[0092] Streaming of video content can be implemented in a variety of modes. In one mode, a user pays a fee to view a video program, for example, by paying for access to a library of media programs or a limited set of media programs, or by using a pay-per-view service. In another mode, which became widely adopted shortly after the advent of broadcast television, sponsors pay for the broadcast of a media program in exchange for the right to play advertisements during or adjacent to the program. In some modes, advertisements are inserted into the video program at predetermined times, which may be referred to as "ad breaks" or "commercial breaks." For streaming video, a media player can be configured so that a client device cannot play the video unless a predetermined advertisement is played within the designated commercial break.
[0093] See also Figure 12 , shows a schematic diagram of an apparatus 1200 for viewing video content and advertisements. In the selected embodiment, the apparatus 1200 may include a processor (CPU) 1202 operatively coupled to a processor memory 1204 that stores binary-coded functional modules executed by the processor 1202. These functional modules may include an operating system 1206 for handling system functions such as input / output and memory access, a browser 1208 for displaying web pages, and a media player 1210 for playing videos. These modules may also include an intra-session scene selector 114. The memory 1204 may store Figure 12 Additional modules not shown, such as modules for performing other operations described elsewhere in this document.
[0094] The bus 1214 or other communication components can support information communication within the device 1200. The processor 1202 can be a specialized or dedicated microprocessor that is configured or operable to perform specific tasks in accordance with the features and aspects disclosed herein by executing machine-readable software code that defines these specific tasks. A processor memory 1204 (e.g., a random access memory (RAM) or other dynamic storage device) can be connected to the bus 1214 or directly to the processor 1202 and store information and instructions to be executed by the processor 1202. The memory 1204 can also store temporary variables or other intermediate information during the execution of these instructions.
[0095] The computer-readable medium in the storage device 1224 can be connected to the bus 1214 and store static information and instructions for the processor 1202; for example, when the apparatus 1200 is powered off, the storage device (CRM) 1224 can store the modules 1206, 1208, 1210, and 1212, and when the apparatus 1200 is powered on, these modules can be loaded from the storage device into the processor memory 1204. The storage device 1224 can include a non-transitory computer-readable storage medium that stores information, instructions, or some combination thereof (e.g., instructions that, when executed by the processor 1202, cause the apparatus 1200 to be configured or operable to perform one or more operations of the methods described herein).
[0096] A communication interface 1216 may also be connected to the bus 1214. The communication interface 1216 may optionally provide or support two-way data communication between the apparatus 1200 and one or more external devices (e.g., the streaming system 1100) via a router / modem 1226 and a wired or wireless connection. Alternatively or in addition, the apparatus 1200 may include a transceiver 1218 connected to an antenna 1229, through which the apparatus 1200 may communicate wirelessly with a base station or router / modem 1226 of a wireless communication system. Alternatively, the apparatus 1200 may communicate with the video streaming system 1100 via a local area network, a virtual private network, or other network. Alternatively, the apparatus 1200 may be integrated as a module or component of the system 1100 and communicate with the other components via the bus 1214 or by some other form.
[0097] The apparatus 1200 may be connected to a display unit 1228, for example, via the bus 1214 and the graphics processing unit 1220. The display 1228 may include any suitable configuration for displaying information to an operator of the apparatus 1200. For example, the display 1228 may include or utilize a liquid crystal display (LCD), a touch screen LCD (e.g., a capacitive display), a light emitting diode (LED) display, a projector, or other display device to present information to a user of the apparatus 1200 in a visual display.
[0098] One or more input devices 1230 (e.g., an alphanumeric keyboard, microphone, keypad, remote control, game controller, camera, or camera array) can be connected to bus 1214 via user input port 1222 to communicate information and commands to device 1200. In selected embodiments, input device 1230 can provide or support control of cursor positioning. Such a cursor control device (also known as a pointing device) can be configured as a mouse, trackball, trackpad, touch screen, cursor direction keys, or other device for receiving or tracking physical movement and converting that movement into electrical signals indicating cursor movement. The cursor control device can be integrated into display unit 1228, for example, using a touch-sensitive screen. The cursor control device can communicate direction information and command selections to processor 1202 and control cursor movement on display 1228. The cursor control device can have two or more degrees of freedom, allowing the device to specify a cursor position in a two-dimensional or three-dimensional space, for example.
[0099] Exemplary embodiments
[0100] In some embodiments, a method includes: during video playback, a computing device uses a parameter value of an adaptive bitrate algorithm to analyze the playback of the video, wherein the adaptive bitrate algorithm uses the parameter value to select a profile from multiple profiles for requesting a segment of the video; when the playback condition meets a feature value of a scene among multiple scenes, the computing device selects the scene, wherein the multiple scenes are associated with different feature values; the computing device adjusts the parameter value of the adaptive bitrate algorithm based on the scene to generate an adjusted parameter value, wherein the multiple scenes have at least one different parameter value; and the computing device uses the adjusted parameter value of the adaptive bitrate algorithm to analyze the playback of the video.
[0101] In some embodiments, the method further comprises determining when a change point occurs based on analysis of the playback of the video, wherein the change point is used to determine when to select a scene.
[0102] In some embodiments, a change point indicates that playback conditions have changed.
[0103] In some embodiments, selecting the scene includes: comparing a feature value of each scene with a playback condition; and selecting the scene having a feature value determined to satisfy the playback condition.
[0104] In some embodiments, adjusting the parameter value includes changing the parameter value from a first value for the first scenario to a second value for the second scenario.
[0105] In some embodiments, utilizing the adjusted parameter value includes: utilizing the adjusted parameter value to select a new configuration file from the current configuration file for playing back the video.
[0106] In some embodiments, the method further comprises receiving a feature value for each of the plurality of scenes, wherein the feature value is determined by analyzing historical playback conditions to divide the playback conditions into different partitions associated with different feature values.
[0107] In some embodiments, the historical playback conditions are divided by analyzing multiple partition style rules to determine a partition style rule suitable for the historical playback conditions.
[0108] In some embodiments, the respective feature value for each of the plurality of scenes is selected based on a partition of the scene and the playback conditions in the partition.
[0109] In some embodiments, the method further comprises receiving a respective parameter value for each of the plurality of scenarios.
[0110] In some embodiments, the respective parameter value for each scene in the plurality of scenes is based on an analysis of respective playback conditions associated with each respective scene.
[0111] In some embodiments, the respective parameter values are selected based on an analysis of playback conditions and the performance of an adaptive bitrate algorithm employing the respective parameter values.
[0112] In some embodiments, a non-transitory computer-readable storage medium contains instructions that, when executed, control a computer system to: analyze the playback of the video using a parameter value of an adaptive bitrate algorithm during video playback, wherein the adaptive bitrate algorithm uses the parameter value to select a profile from multiple profiles for requesting a segment of the video; select the scene when the playback condition satisfies a feature value of a scene, wherein multiple scenes are associated with different feature values; adjust the parameter value of the adaptive bitrate algorithm based on the scene to generate an adjusted parameter value, wherein multiple scenes have at least one different parameter value; and analyze the playback of the video using the adjusted parameter value of the adaptive bitrate algorithm.
[0113] In some embodiments, a method includes: a computing device receiving playback conditions for playing one or more videos; the computing device analyzing the playback conditions to determine a plurality of scenes, wherein the plurality of scenes are associated with different feature values from the playback conditions; the computing device analyzing the feature value of each of the plurality of scenes to select a parameter value for an adaptive bitrate algorithm, wherein the adaptive bitrate algorithm utilizes the parameter value to select a profile from a plurality of profiles; and the computing device providing the feature values and parameter values for the plurality of scenes to a client device for use by the adaptive bitrate algorithm during video playback.
[0114] In some embodiments, analyzing the playback condition to determine the plurality of scenes includes analyzing the playback condition to divide the playback condition into different feature values.
[0115] In some embodiments, analyzing the playback condition to determine the plurality of scenes includes analyzing a plurality of partition pattern rules to determine the partition pattern rules that divide the playback condition.
[0116] In some embodiments, corresponding feature values of the plurality of scenes are selected based on a partition of the scene and a playback condition in the partition.
[0117] In some embodiments, analyzing the characteristic value of each of the plurality of scenes to select the parameter value includes analyzing a respective playback condition associated with each respective scene to select the parameter value for each scene.
[0118] In some embodiments, analyzing the characteristic value of each of the plurality of scenes to select the parameter value includes selecting the corresponding parameter value based on analyzing playback conditions and performance of an adaptive bitrate algorithm using the corresponding parameter value.
[0119] In some embodiments, the method further comprises analyzing the playback conditions to determine when a change point occurs based on the analysis of the playback conditions, wherein the change point is used to determine when to select a scene.
[0120] Some embodiments may be implemented in a non-transitory computer-readable storage medium for use by or in conjunction with an instruction execution system, apparatus, system, or machine. The computer-readable storage medium contains instructions for controlling a computer system to perform the methods described in some embodiments. The computer system may include one or more computing devices. When executed by one or more computer processors, the instructions may be configured or operable to perform the methods described in some embodiments.
[0121] As used in the description herein and throughout the claims that follow, “a,” “an,” and “the” include plural references unless the context clearly dictates otherwise. Furthermore, as used in the description herein and throughout the claims that follow, “in” includes “in” and “on” unless the context clearly dictates otherwise.
[0122] The above description shows examples of various embodiments and implementations of various aspects of some embodiments. The above examples and embodiments should not be considered the only embodiments, and are presented to illustrate the flexibility and advantages of some embodiments as defined by the appended claims. Based on the above disclosure and the following claims, other arrangements, embodiments, implementations and equivalents may be adopted without departing from the scope as defined by the claims.
Claims
1. A method for analyzing video playback, the method comprising: During playback of the video, a computing device analyzes the playback of the video using parameter values of an adaptive bitrate algorithm, wherein the adaptive bitrate algorithm uses the parameter values to select a profile from a plurality of profiles for requesting a segment of the video; When the first playback condition satisfies a feature value of a scene from a plurality of scenes, the computing device selects the scene, wherein the plurality of scenes are associated with different feature values, wherein the feature values are determined by analyzing the second playback condition to divide the second playback condition into different partitions associated with different feature values; The computing device adjusts a parameter value of the adaptive bitrate algorithm based on the scenario to generate an adjusted parameter value, wherein the plurality of scenarios have at least one different parameter value; as well as The computing device analyzes playback of the video using the adjusted parameter values of the adaptive bitrate algorithm.
2. The method according to claim 1, further comprising: Determining when change points occur is based on analyzing playback of the video, wherein the change points are used to determine when to select a scene. The method of claim 2 , wherein the change point indicates that the first playback condition has changed.
4. The method of claim 1 , wherein selecting the scenario comprises: comparing the feature value of each scene with the first playback condition; as well as A scene having a feature value determined to satisfy the first playback condition is selected.
5. The method of claim 1 , wherein adjusting the parameter value comprises: The parameter value is changed from a first value for a first scenario to a second value for a second scenario.
6. The method of claim 1 , wherein utilizing the adjusted parameter value comprises: A new configuration file for playing back the video is selected from the current configuration file using the adjusted parameter values.
7. The method according to claim 1, further comprising: A feature value for each of the plurality of scenes is received.
8. The method according to claim 7, wherein the second playback condition is divided by analyzing multiple partition style rules to determine a partition style rule suitable for the second playback condition. 9 . The method of claim 7 , wherein the corresponding feature value of each of the plurality of scenes is selected based on partitions of the scenes and playback conditions in the partitions.
10. The method according to claim 1, further comprising: A respective parameter value is received for each of the plurality of scenarios.
11. The method of claim 1 , wherein the respective parameter value for each of the plurality of scenes is based on an analysis of a respective second playback condition associated with each respective scene.
12. The method of claim 11, wherein the corresponding parameter value is selected based on an analysis of the second playback condition and a performance of an adaptive bitrate algorithm employing the corresponding parameter value.
13. A non-transitory computer-readable storage medium comprising instructions that, when executed, control a computer system to: During video playback, analyzing the playback of the video using parameter values of an adaptive bitrate algorithm, wherein the adaptive bitrate algorithm uses the parameter values to select a profile from a plurality of profiles for requesting segments of the video; selecting a scene from a plurality of scenes when the first playback condition satisfies a characteristic value of the scene, wherein the plurality of scenes are associated with different characteristic values, wherein the characteristic values are determined by analyzing the second playback condition to divide the second playback condition into different partitions associated with different characteristic values; adjusting a parameter value of the adaptive bitrate algorithm based on the scenario to generate an adjusted parameter value, wherein the plurality of scenarios have at least one different parameter value; as well as The playback of the video is analyzed using the adjusted parameter values of the adaptive bitrate algorithm.
14. A method for selecting parameter values for an adaptive bitrate algorithm, the method comprising: The computing device receives playback conditions for playing one or more videos; the computing device analyzing the playback conditions to divide the playback conditions into different partitions to determine a plurality of scenes, wherein the plurality of scenes are associated with different feature values from the playback conditions; The computing device analyzes a characteristic value of each of the plurality of scenes to select a parameter value for an adaptive bitrate algorithm, wherein the adaptive bitrate algorithm uses the parameter value to select a profile from a plurality of profiles; as well as The computing device provides the feature values and parameter values for the multiple scenes to the client device for use by the adaptive bitrate algorithm during video playback.
15. The method of claim 14, wherein analyzing the playback conditions to determine the plurality of scenes comprises: The playback conditions are analyzed to divide the playback conditions into different partitions associated with different feature values.
16. The method of claim 15, wherein analyzing the playback conditions to determine the plurality of scenes comprises: A plurality of partition pattern rules are analyzed to determine a partition pattern rule that divides the playback condition into different partitions. The method of claim 15 , wherein the corresponding feature values of the plurality of scenes are selected based on partitions of the scenes and playback conditions in the partitions.
18. The method of claim 14, wherein analyzing a feature value of each of the plurality of scenarios to select the parameter value comprises: Respective playback conditions associated with each respective scene are analyzed to select parameter values for each scene.
19. The method of claim 14, wherein analyzing a feature value of each of the plurality of scenarios to select the parameter value comprises: The corresponding parameter values are selected based on an analysis of the playback conditions and the performance of an adaptive bitrate algorithm using the corresponding parameter values.
20. The method of claim 14, further comprising: The playback conditions are analyzed to determine when a change point occurs based on the analysis of the playback conditions, wherein the change point is used to determine when to select a scene.
Citation Information
Patent Citations
Optimal Multi-Codec ABR Ladder Design
US20200236372A1