Video code rate adjustment method and device, computer equipment, storage medium and program product

By combining different branch models and uncertainties of the bandwidth estimation model, the video bitrate is dynamically adjusted, which solves the problem that existing video bitrate adjustment methods cannot balance timeliness and stability, and improves video playback quality.

CN121547653APending Publication Date: 2026-02-17CHINA TELECOM CLOUD TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202511810246.X
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-12-03
Publication Date
2026-02-17

AI Technical Summary

Technical Problem

Existing video bitrate adjustment methods struggle to balance the timeliness of bitrate adjustment with the stability of video playback.

Method used

By using the first and second branch models of the bandwidth estimation model, the bandwidth estimate is determined with the objectives of maximum throughput and minimum congestion probability, respectively. In combination with uncertainty, a preset fusion strategy and correction mechanism are adopted to dynamically adjust the video bitrate.

Benefits of technology

It achieves a balance between video stability and response speed under bandwidth fluctuations, thus improving the video playback effect.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121547653A_ABST
    Figure CN121547653A_ABST
Patent Text Reader

Abstract

The invention relates to a video code rate adjustment method and device, computer equipment, a storage medium and a program product. The method comprises the following steps: in a process of receiving a data packet of a target video, obtaining network measurement data corresponding to the data packet; determining a first bandwidth estimation value by taking the maximum throughput as a target based on a first branch model in the bandwidth estimation model and the network measurement data; based on a second branch model and network measurement data in the bandwidth estimation model, determining a second bandwidth estimation value and uncertainty by taking the minimum congestion probability as a target; and determining a target code rate according to the first bandwidth estimation value, the second bandwidth estimation value and the uncertainty, and adjusting the code rate of the target video to the target code rate, thereby jointly realizing the target code rate determination based on the first bandwidth estimation value obtained by taking the maximum throughput as the target and the second bandwidth estimation value obtained by taking the minimum congestion probability as the target. The video stability and the response speed are both considered, and the video playing effect is further improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of network transmission technology, and in particular to a video bitrate adjustment method, apparatus, computer equipment, storage medium, and program product. Background Technology

[0002] As internet video services expand from traditional on-demand and live streaming to highly interactive, low-latency scenarios such as cloud gaming and remote real-time collaboration, users are placing more stringent demands on the smoothness and picture quality of video services. Against this backdrop, Adaptive Bitrate (ABR) technology has become a core means of ensuring user experience. Its key lies in dynamically adjusting the video bitrate based on real-time network conditions to achieve a balance between smooth playback and clear picture quality amidst bandwidth fluctuations.

[0003] However, existing video bitrate adjustment methods struggle to balance the timeliness of bitrate adjustment with the stability of video playback. Summary of the Invention

[0004] Therefore, it is necessary to provide a video bitrate adjustment method, apparatus, computer equipment, storage medium, and program product to address the aforementioned technical problems.

[0005] Firstly, this application provides a video bitrate adjustment method. The method includes:

[0006] During the process of receiving data packets of the target video, the network measurement data corresponding to the data packet is obtained;

[0007] Based on the first branch model in the bandwidth estimation model and the network measurement data, a first bandwidth estimate is determined; the first branch model is used to determine the bandwidth estimate with the maximum throughput as the objective.

[0008] Based on the second branch model in the bandwidth estimation model and the network measurement data, the second bandwidth estimate and uncertainty are determined; the second branch model is used to determine the bandwidth estimate with the goal of minimizing the congestion probability.

[0009] Based on the first bandwidth estimate, the second bandwidth estimate, and the uncertainty, the target bitrate is determined, and the bitrate of the target video is adjusted to the target bitrate.

[0010] In one embodiment, determining the target bit rate based on the first bandwidth estimate, the second bandwidth estimate, and the uncertainty includes:

[0011] The first bandwidth estimate and the second bandwidth estimate are fused based on a preset fusion strategy to obtain the target bandwidth estimate;

[0012] The target bit rate is determined based on the target bandwidth estimate and the uncertainty.

[0013] In one embodiment, the preset fusion strategy includes at least one of the following: a linear weighted fusion strategy, a Kalman filtering strategy, and a Bayesian fusion strategy.

[0014] In one embodiment, determining the target bit rate based on the target bandwidth estimate and the uncertainty includes:

[0015] Based on this uncertainty and the preset risk coefficient, the estimated target bandwidth is corrected to obtain the target bandwidth;

[0016] The target bitrate is determined from a set of preset video bitrates based on the target bandwidth, the buffer length of the player corresponding to the target video, and the preset upscaling / downscaling thresholds for the target video.

[0017] In one embodiment, the target bandwidth estimate is corrected based on the uncertainty and a preset risk coefficient to obtain the target bandwidth, including:

[0018] Determine the product of the square root of the uncertainty and the preset risk coefficient;

[0019] The target bandwidth is obtained by subtracting the product from the estimated target bandwidth.

[0020] In one embodiment, the network measurement data includes the round-trip time series of the data packet, data delivery rate, and minimum round-trip latency. The determination of a first bandwidth estimate based on a first branch model in the bandwidth estimation model and the network measurement data includes:

[0021] Based on the first branch model, the bottleneck bandwidth is determined according to the round-trip time series, the data delivery rate, and the minimum round-trip delay, and the first bandwidth estimate is determined according to the bottleneck bandwidth.

[0022] In one embodiment, the network measurement data includes the round-trip time series of the data packets. The determination of a second bandwidth estimate and uncertainty based on the second branch model in the bandwidth estimation model and the network measurement data includes:

[0023] Based on the second branch model, the variance of the round-trip time series is determined as the uncertainty, the network congestion trend is determined according to the delay gradient of the round-trip time series, and the second bandwidth estimate is determined according to the network congestion trend.

[0024] Secondly, this application also provides a video bitrate adjustment device. The device includes:

[0025] The acquisition module is used to acquire network measurement data corresponding to the data packet of the target video during the process of receiving the data packet;

[0026] The first determining module is used to determine a first bandwidth estimate based on the first branch model in the bandwidth estimation model and the network measurement data; the first branch model is used to determine the bandwidth estimate with the maximum throughput as the objective.

[0027] The second determining module is used to determine the second bandwidth estimate and uncertainty based on the second branch model in the bandwidth estimation model and the network measurement data; the second branch model is used to determine the bandwidth estimate with the goal of minimizing the congestion probability;

[0028] The third determining module is used to determine the target bitrate based on the first bandwidth estimate, the second bandwidth estimate, and the uncertainty, and adjust the bitrate of the target video to the target bitrate.

[0029] Thirdly, this application also provides a computer device. The computer device includes a memory and a processor, the memory storing a computer program, and the processor executing the computer program to perform the following steps:

[0030] During the process of receiving data packets of the target video, the network measurement data corresponding to the data packet is obtained;

[0031] Based on the first branch model in the bandwidth estimation model and the network measurement data, a first bandwidth estimate is determined; the first branch model is used to determine the bandwidth estimate with the maximum throughput as the objective.

[0032] Based on the second branch model in the bandwidth estimation model and the network measurement data, the second bandwidth estimate and uncertainty are determined; the second branch model is used to determine the bandwidth estimate with the goal of minimizing the congestion probability.

[0033] Based on the first bandwidth estimate, the second bandwidth estimate, and the uncertainty, the target bitrate is determined, and the bitrate of the target video is adjusted to the target bitrate.

[0034] Fourthly, this application also provides a computer-readable storage medium. This computer-readable storage medium stores a computer program thereon, which, when executed by a processor, performs the following steps:

[0035] During the process of receiving data packets of the target video, the network measurement data corresponding to the data packet is obtained;

[0036] Based on the first branch model in the bandwidth estimation model and the network measurement data, a first bandwidth estimate is determined; the first branch model is used to determine the bandwidth estimate with the maximum throughput as the objective.

[0037] Based on the second branch model in the bandwidth estimation model and the network measurement data, the second bandwidth estimate and uncertainty are determined; the second branch model is used to determine the bandwidth estimate with the goal of minimizing the congestion probability.

[0038] Based on the first bandwidth estimate, the second bandwidth estimate, and the uncertainty, the target bitrate is determined, and the bitrate of the target video is adjusted to the target bitrate.

[0039] Fifthly, this application also provides a computer program product. This computer program product includes a computer program that, when executed by a processor, performs the following steps:

[0040] During the process of receiving data packets of the target video, the network measurement data corresponding to the data packet is obtained;

[0041] Based on the first branch model in the bandwidth estimation model and the network measurement data, a first bandwidth estimate is determined; the first branch model is used to determine the bandwidth estimate with the maximum throughput as the objective.

[0042] Based on the second branch model in the bandwidth estimation model and the network measurement data, the second bandwidth estimate and uncertainty are determined; the second branch model is used to determine the bandwidth estimate with the goal of minimizing the congestion probability.

[0043] Based on the first bandwidth estimate, the second bandwidth estimate, and the uncertainty, the target bitrate is determined, and the bitrate of the target video is adjusted to the target bitrate.

[0044] The aforementioned video bitrate adjustment method, apparatus, computer equipment, storage medium, and program product, during the process of receiving data packets of the target video, acquire network measurement data corresponding to the data packets; based on the first branch model in the bandwidth estimation model and the network measurement data, determine a first bandwidth estimate with the maximum throughput as the objective; based on the second branch model in the bandwidth estimation model and the network measurement data, determine a second bandwidth estimate and uncertainty with the minimum congestion probability as the objective; determine the target bitrate based on the first bandwidth estimate, the second bandwidth estimate, and the uncertainty, and adjust the bitrate of the target video to the target bitrate. Thus, the target bitrate is determined by combining the first bandwidth estimate obtained with the maximum throughput as the objective and the second bandwidth estimate obtained with the minimum congestion probability as the objective, balancing video stability and response speed, thereby improving the video playback effect. Attached Figure Description

[0045] Figure 1 This is an internal structure diagram of a computer device provided in an embodiment of this application;

[0046] Figure 2This is a flowchart illustrating a video bitrate adjustment method provided in an embodiment of this application;

[0047] Figure 3 This is a flowchart illustrating a target bitrate determination method provided in an embodiment of this application;

[0048] Figure 4 This is a flowchart illustrating another target bitrate determination method provided in an embodiment of this application;

[0049] Figure 5 This is a structural block diagram of a video bitrate adjustment device provided in an embodiment of this application. Detailed Implementation

[0050] To make the objectives, technical solutions, and advantages of this application clearer, the following detailed description is provided in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative and not intended to limit the scope of this application.

[0051] As internet video services expand from traditional on-demand and live streaming to highly interactive, low-latency scenarios such as cloud gaming and remote real-time collaboration, users are placing more stringent demands on the smoothness and picture quality of video services. Against this backdrop, Adaptive Bitrate (ABR) technology has become a core means of ensuring user experience. Its key lies in dynamically adjusting the video bitrate based on real-time network conditions to achieve a balance between smooth playback and clear picture quality amidst bandwidth fluctuations.

[0052] However, existing video bitrate adjustment methods struggle to balance the timeliness of bitrate adjustment with the stability of video playback.

[0053] The video bitrate adjustment method provided in this application embodiment can be applied to, for example, Figure 1 The application environment shown. Figure 1 This is an internal structure diagram of a computer device provided in an embodiment of this application. The computer device may be a server, and its internal structure diagram may be as follows: Figure 1 As shown, the computer device includes a processor, memory, and a network interface connected via a system bus. The processor provides computing and control capabilities. The memory includes non-volatile storage media and internal memory. The non-volatile storage media stores the operating system, computer programs, and a database. The internal memory provides an environment for the operation of the operating system and computer programs stored in the non-volatile storage media. The network interface is used to communicate with external terminals via a network connection. When the computer program is executed by the processor, it implements a video bitrate adjustment method.

[0054] Those skilled in the art will understand that Figure 1The structure shown is merely a block diagram of a portion of the structure related to the present application and does not constitute a limitation on the computer device to which the present application is applied. Specific computer devices may include more or fewer components than those shown in the figure, or combine certain components, or have different component arrangements.

[0055] In one embodiment, such as Figure 2 As shown, Figure 2 This is a flowchart illustrating a video bitrate adjustment method provided in an embodiment of this application. This method can be applied to... Figure 1 The method, using a computer device, includes the following steps:

[0056] S201: During the process of receiving data packets of the target video, obtain the network measurement data corresponding to the data packets.

[0057] Optionally, during the process of receiving data packets of the target video at the receiving end, the QUIC (Quick UDP Internet Connections) protocol can be used to obtain network measurement data corresponding to preset network measurement indicators from the QUIC layer.

[0058] For example, network measurement data may include: round-trip time (RTT) sequence of data packets, delivery rate, packet loss information, and minimum round-trip delay (min_rtt).

[0059] Among them, the round-trip time of a data packet includes the precise round-trip delay of each data packet; the data delivery rate includes the amount of data successfully acknowledged by the other end per unit time; the packet loss information includes the sequence number and time of the lost data packet; and the minimum round-trip delay includes the minimum round-trip delay observed over a period of time, which is used to characterize the physical propagation delay of the network.

[0060] S202, Based on the first branch model in the bandwidth estimation model and network measurement data, determine the first bandwidth estimate.

[0061] The first branch model is used to determine the bandwidth estimate with the maximum throughput as the objective.

[0062] Optionally, the model trained based on the BBR (Bottleneck Bandwidth and Round-trip propagation time) algorithm can be used as the first branch model, and the first branch model can be used to determine the first bandwidth estimate based on the BBR algorithm.

[0063] For example, round-trip time series, data delivery rate, and minimum round-trip delay can be used as inputs to the first branch model. The first branch model continuously probes the network's bottleneck bandwidth and propagation delay. Based on the bottleneck bandwidth and propagation delay, a first bandwidth estimate B_BBR is determined with the maximum throughput as the objective. The first bandwidth estimate B_BBR is then used as the output of the first branch model.

[0064] S203, Based on the second branch model in the bandwidth estimation model and network measurement data, determine the second bandwidth estimate and uncertainty.

[0065] The second branch model is used to determine the bandwidth estimate with the goal of minimizing the congestion probability.

[0066] Alternatively, the model trained based on the GCC (Google Congestion Control) algorithm can be used as the second branch model, and the second branch model can be used to determine the second bandwidth estimate based on the GCC algorithm.

[0067] For example, the round-trip time series and packet loss rate within a certain time window can be used as input to the second branch model. The delay gradient of the RTT sequence can be analyzed by the second branch model to determine the network congestion trend. Based on the network congestion trend, the goal is to avoid congestion, that is, to determine the second bandwidth estimate B_GCC with the goal of minimizing the congestion probability.

[0068] Optionally, the second branch model can also perform statistical analysis on the round-trip time series, for example, by using Z-score to remove outliers from the round-trip time series, and then calculating the variance of the round-trip time series after removing outliers to obtain the uncertainty.

[0069] In this embodiment of the application, the output of the second branch model includes a second bandwidth estimate B_GCC and uncertainty.

[0070] S204. Based on the first bandwidth estimate, the second bandwidth estimate, and the uncertainty, determine the target bitrate and adjust the bitrate of the target video to the target bitrate.

[0071] In one possible implementation, a target bandwidth estimate can be selected from a first bandwidth estimate and a second bandwidth estimate based on actual needs, and then the target bit rate can be determined based on the target bandwidth estimate and the uncertainty.

[0072] For example, if the actual requirement is high bandwidth for the current scenario, the first bandwidth estimate is determined as the target bandwidth estimate, and then the target bitrate is determined based on the target bandwidth estimate and the uncertainty. Alternatively, if the actual requirement is to avoid congestion for the current scenario, the second bandwidth estimate is determined as the target bandwidth estimate, and then the target bitrate is determined based on the target bandwidth estimate and the uncertainty.

[0073] In another alternative implementation, the first bandwidth estimate and the second bandwidth estimate can be fused to obtain the target bandwidth estimate, and then the target bit rate can be determined based on the target bandwidth estimate and the uncertainty.

[0074] Optionally, after calculating the target bitrate, the receiving end can transmit its own playback status (current player buffer duration) and network measurement data back to the sending end through the QUIC protocol feedback channel, so that the entire system forms a dynamically adjusted closed loop.

[0075] In this embodiment, during the process of receiving data packets of the target video, network measurement data corresponding to the data packets is acquired; based on the first branch model in the bandwidth estimation model and the network measurement data, a first bandwidth estimate is determined with the maximum throughput as the objective; based on the second branch model in the bandwidth estimation model and the network measurement data, a second bandwidth estimate and uncertainty are determined with the minimum congestion probability as the objective; based on the first bandwidth estimate, the second bandwidth estimate, and the uncertainty, the target bitrate is determined, and the bitrate of the target video is adjusted to the target bitrate. Thus, the target bitrate is determined by combining the first bandwidth estimate obtained with the maximum throughput as the objective and the second bandwidth estimate obtained with the minimum congestion probability as the objective, which takes into account both video stability and response speed, thereby improving the video playback effect.

[0076] Reference Figure 3 , Figure 3 This is a flowchart illustrating a target bitrate determination method provided in an embodiment of this application. This embodiment relates to a possible implementation of how to determine the target bitrate based on a first bandwidth estimate, a second bandwidth estimate, and uncertainty. Based on the above embodiment, step S204 includes the following steps:

[0077] S301, the first bandwidth estimate and the second bandwidth estimate are fused based on a preset fusion strategy to obtain the target bandwidth estimate.

[0078] Optionally, the first bandwidth estimate and the second bandwidth estimate can be fused based on at least one of the linear weighted fusion strategy, the Kalman filtering strategy, and the Bayesian fusion strategy to obtain the target bandwidth estimate.

[0079] Taking the linear weighted fusion strategy as an example, the weights of the first branch model and the second branch model can be determined based on network measurement data. The first bandwidth estimate and the second bandwidth estimate are then weighted and summed based on the weights to obtain the target bandwidth estimate.

[0080] For example, the above linear weighted fusion strategy can be expressed as:

[0081] (1)

[0082] In formula (1), This is the target bandwidth estimate. These are the weights corresponding to the first branch model. These are the weights corresponding to the second branch model.

[0083] Taking the Kalman filtering strategy as an example, the output of one branch model (such as BBR) can be used as the "predicted value" and the output of another branch model (such as GCC) can be used as the "observed value". The target bandwidth estimate can be obtained by iteratively updating the Kalman filtering algorithm.

[0084] Taking the Bayesian fusion strategy as an example, the outputs of the two branch models can be regarded as independent probability distributions. The posterior probability distribution after fusion can be calculated by Bayes' formula, and its mean is the target bandwidth estimate.

[0085] It should be noted that the above examples are all based on a single preset fusion strategy. Multiple preset fusion strategies can also be combined to jointly determine the target bandwidth estimate.

[0086] S302, determine the target bit rate based on the target bandwidth estimate and uncertainty.

[0087] For example, the target bandwidth estimate can be corrected based on the uncertainty to obtain the target bandwidth, and then the target bandwidth can be directly used as the target bit rate.

[0088] Alternatively, the target bandwidth estimate can be corrected based on the uncertainty to obtain the target bandwidth, and then the target bitrate can be determined based on the target bandwidth, the buffer length of the player corresponding to the target video, and the preset ups and downsampling thresholds of the target video.

[0089] In this embodiment, the first bandwidth estimate and the second bandwidth estimate are fused based on a preset fusion strategy to obtain the target bandwidth estimate; the target bitrate is determined based on the target bandwidth estimate and the uncertainty. Thus, by fusing the first bandwidth estimate obtained with the maximum throughput as the target and the second bandwidth estimate obtained with the minimum congestion probability as the target, both video stability and response speed are taken into account during the video bitrate adjustment process.

[0090] Reference Figure 4 , Figure 4 This is a flowchart illustrating another target bitrate determination method provided in this application embodiment. This embodiment relates to a possible implementation of how to determine the target bitrate based on a target bandwidth estimate and uncertainty. Based on the above embodiment, step S302 includes the following steps:

[0091] S401, based on the uncertainty and the preset risk coefficient, the target bandwidth estimate is corrected to obtain the target bandwidth.

[0092] For example, to avoid lag caused by instantaneous network fluctuations, the target bandwidth estimate can be corrected based on uncertainty and a preset risk coefficient to obtain a conservative "safe bandwidth," i.e., the target bandwidth. The above correction process can be expressed as:

[0093] (2)

[0094] In formula (2), For target bandwidth, To preset the risk coefficient, The value represents the uncertainty.

[0095] S402, determine the target bitrate from the preset video bitrate set based on the target bandwidth, the buffer length of the player corresponding to the target video, and the preset upscaling / downscaling threshold of the target video.

[0096] For example, the highest bitrate less than the target bandwidth can be determined from a preset set of video bitrates. Then, the bitrate of the video currently being played by the player can be obtained. Finally, the target bitrate is determined based on the highest bitrate, the bitrate of the video currently being played by the player, the buffer length of the player corresponding to the target video, and the preset upscaling / downscaling threshold of the target video.

[0097] If the highest bitrate is lower than the bitrate of the video being played by the player, or if the current buffer length of the player is lower than the low buffer threshold in the preset up / down threshold, then the bitrate is downgraded, and the maximum value between the next lower bitrate of the current bitrate and the highest bitrate mentioned above is used as the target bitrate.

[0098] If the highest bitrate is greater than the bitrate of the video being played by the player, and the current buffer length of the player is higher than the high buffer threshold in the preset up / down threshold, then the upshift will be applied, and the highest bitrate will be used as the target bitrate.

[0099] If none of the above conditions are met, the bitrate will remain unchanged; that is, the bitrate of the video currently being played by the player will be used as the target bitrate.

[0100] To provide a clearer description of the embodiments of this application, a linear weighted fusion strategy is used as an example, and pseudocode is used for illustrative explanation:

[0101] Step 1: Data Acquisition and Parallel Estimation: Continuously acquire network measurement data through the QUIC layer. The BBR branch model and the GCC branch model work in parallel, calculating the current B_BBR and B_GCC at the end of each decision cycle (e.g., 500ms).

[0102] Step 2: Dynamic Weight Calculation: The weights of the BBR and GCC branch models are dynamically calculated based on network stability. In this embodiment, the variance of RTT is used as the core indicator of network stability.

[0103] / / Pseudocode: Calculate dynamic weights

[0104] function calculate_dynamic_weights(rtt_samples_list):

[0105] / / 1. Calculate the variance of RTT within the sliding window.

[0106] rtt_variance = variance(rtt_samples_list)

[0107] / / 2. Set an empirical "normal" variance threshold

[0108] / / For example, if RTT fluctuations are considered stable within 5ms, then the variance is 25.

[0109] MAX_NORMAL_VARIANCE = 25.0

[0110] / / 3. Calculate the instability index (0.0 represents very stable, 1.0 represents very unstable)

[0111] instability_score = min(1.0, rtt_variance / MAX_NORMAL_VARIANCE)

[0112] / / 4. Assign weights based on the instability index

[0113] / / The more unstable the network, the higher the weight of GCC.

[0114] / / The more stable the network, the higher the weight of BBR.

[0115] weight_gcc = instability_score

[0116] weight_bbr = 1.0 - weight_gcc

[0117] return (weight_bbr, weight_gcc)

[0118] Step 3, Weighted Fusion: After obtaining the dynamic weights, calculate the target bandwidth estimate B_est.

[0119] / / Pseudocode: Perform weighted fusion

[0120] function fuse_estimates(B_BBR, B_GCC, weight_bbr, weight_gcc):

[0121] B_est = weight_bbr * B_BBR + weight_gcc * B_GCC

[0122] return B_est

[0123] Step 4, Bitrate Decision: After calculating B_est, execute the target bitrate selection logic.

[0124] / / Pseudocode: Bitrate Decision

[0125] class ABRController:

[0126] / / Preset parameters

[0127] RISK_FACTOR_k = 2.0 / / Risk factor

[0128] LOW_BUFFER_THRESHOLD_L = 8.0 / / Low buffer threshold (seconds)

[0129] HIGH_BUFFER_THRESHOLD_H = 20.0 / / High buffer threshold (seconds)

[0130] function select_bitrate(B_est, Var_est, bufferLevel, available_rates):

[0131] / / 1. Calculate the target bandwidth

[0132] standard_deviation = sqrt(Var_est)

[0133] B_safe = B_est - RISK_FACTOR_k * standard_deviation

[0134] / / 2. Find the highest currently supported bitrate

[0135] target_rate = find_highest_rate_below(B_safe, available_rates)

[0136] / / 3. Make the final decision based on the buffer.

[0137] current_rate = get_current_playing_rate()

[0138] / / Downshifting logic (highest priority)

[0139] if (target_rate < current_rate) OR (bufferLevel < LOW_BUFFER_THRESHOLD_L):

[0140] return max(get_next_lower_rate(current_rate), target_rate) / / Immediately downgrade

[0141] / / Upgrade logic (most conservative)

[0142] if (target_rate > current_rate) AND (bufferLevel > HIGH_BUFFER_THRESHOLD_H):

[0143] return target_rate / / Confirm upgrade

[0144] / / Maintain logic

[0145] return current_rate

[0146] It should be understood that although the steps in the flowcharts of the embodiments described above are shown sequentially according to the arrows, these steps are not necessarily executed in the order indicated by the arrows. Unless explicitly stated herein, there is no strict order restriction on the execution of these steps, and they can be executed in other orders. Moreover, at least some steps in the flowcharts of the embodiments described above may include multiple steps or multiple stages. These steps or stages are not necessarily completed at the same time, but can be executed at different times. The execution order of these steps or stages is not necessarily sequential, but can be performed alternately or in turn with other steps or at least some of the steps or stages of other steps.

[0147] Based on the same inventive concept, this application also provides a video bitrate adjustment device for implementing the video bitrate adjustment method described above. The solution provided by this device is similar to the solution described in the above method; therefore, the specific limitations in one or more video bitrate adjustment device embodiments provided below can be found in the limitations of the video bitrate adjustment method described above, and will not be repeated here.

[0148] In one embodiment, such as Figure 5 As shown, Figure 5 This is a structural block diagram of a video bitrate adjustment device provided in an embodiment of this application. The device 500 includes:

[0149] The acquisition module 501 is used to acquire network measurement data corresponding to the data packets during the process of receiving data packets of the target video.

[0150] The first determining module 502 is used to determine a first bandwidth estimate based on the first branch model in the bandwidth estimation model and network measurement data; the first branch model is used to determine the bandwidth estimate with the maximum throughput as the objective.

[0151] The second determining module 503 is used to determine the second bandwidth estimate and uncertainty based on the second branch model in the bandwidth estimation model and network measurement data; the second branch model is used to determine the bandwidth estimate with the goal of minimizing the congestion probability.

[0152] The third determining module 504 is used to determine the target bitrate based on the first bandwidth estimate, the second bandwidth estimate, and the uncertainty, and adjust the bitrate of the target video to the target bitrate.

[0153] In one embodiment, the third determining module 504 includes:

[0154] The fusion unit is used to fuse the first bandwidth estimate and the second bandwidth estimate based on a preset fusion strategy to obtain the target bandwidth estimate.

[0155] The first determining unit is used to determine the target bit rate based on the target bandwidth estimate and uncertainty.

[0156] In one embodiment, the preset fusion strategy includes at least one of the following: linear weighted fusion strategy, Kalman filtering strategy, and Bayesian fusion strategy.

[0157] In one embodiment, the first determining unit includes:

[0158] The correction subunit is used to correct the target bandwidth estimate based on the uncertainty and the preset risk coefficient to obtain the target bandwidth.

[0159] The determination subunit is used to determine the target bitrate from a preset video bitrate set based on the target bandwidth, the buffer length of the player corresponding to the target video, and the preset upscaling / downscaling threshold of the target video.

[0160] In one embodiment, the correction subunit is specifically used to determine the product of the square root of the uncertainty and the preset risk coefficient; the target bandwidth is obtained by subtracting the product from the target bandwidth estimate.

[0161] In one embodiment, network measurement data includes round-trip time series of data packets, data delivery rate, and minimum round-trip latency, and the first determining module 502 includes:

[0162] The second determining unit is used to determine the bottleneck bandwidth based on the first branch model, according to the round-trip time series, data delivery rate and minimum round-trip delay, and to determine the first bandwidth estimate based on the bottleneck bandwidth.

[0163] In one embodiment, the network measurement data includes round-trip time series of data packets, and the second determining module 503 includes:

[0164] The third determining unit is used to determine the variance of the round-trip time series as uncertainty based on the second branch model, determine the network congestion trend based on the delay gradient of the round-trip time series, and determine the second bandwidth estimate based on the network congestion trend.

[0165] Each module in the aforementioned video bitrate adjustment device can be implemented entirely or partially through software, hardware, or a combination thereof. These modules can be embedded in the processor of a computer device in hardware form or independent of it, or stored in the memory of a computer device in software form, so that the processor can call and execute the corresponding operations of each module.

[0166] In one embodiment, a computer device is provided, including a memory and a processor, wherein the memory stores a computer program, and the processor executes the computer program to perform the following steps:

[0167] During the process of receiving data packets of the target video, network measurement data corresponding to the data packets is acquired;

[0168] Based on the first branch model in the bandwidth estimation model and network measurement data, a first bandwidth estimate is determined; the first branch model is used to determine the bandwidth estimate with the maximum throughput as the objective.

[0169] Based on the second branch model in the bandwidth estimation model and network measurement data, the second bandwidth estimate and uncertainty are determined; the second branch model is used to determine the bandwidth estimate with the goal of minimizing the congestion probability.

[0170] Based on the first bandwidth estimate, the second bandwidth estimate, and the uncertainty, the target bitrate is determined, and the bitrate of the target video is adjusted to the target bitrate.

[0171] In one embodiment, the processor, when executing a computer program, also performs the following steps:

[0172] The first bandwidth estimate and the second bandwidth estimate are fused based on a preset fusion strategy to obtain the target bandwidth estimate;

[0173] The target bit rate is determined based on the target bandwidth estimate and uncertainty.

[0174] In one embodiment, the preset fusion strategy includes at least one of the following: linear weighted fusion strategy, Kalman filtering strategy, and Bayesian fusion strategy.

[0175] In one embodiment, the processor, when executing a computer program, also performs the following steps:

[0176] The target bandwidth is obtained by correcting the estimated value based on the uncertainty and the preset risk coefficient.

[0177] The target bitrate is determined from a set of preset video bitrates based on the target bandwidth, the buffer length of the player corresponding to the target video, and the preset upscaling / downscaling thresholds for the target video.

[0178] In one embodiment, the processor, when executing a computer program, also performs the following steps:

[0179] The result of multiplying the square root of the uncertainty by the preset risk coefficient;

[0180] The target bandwidth is obtained by subtracting the product from the target bandwidth estimate.

[0181] In one embodiment, the processor, when executing a computer program, also performs the following steps:

[0182] Based on the first branch model, the bottleneck bandwidth is determined according to the round-trip time series, data delivery rate and minimum round-trip delay, and the first bandwidth estimate is determined based on the bottleneck bandwidth.

[0183] In one embodiment, a computer-readable storage medium is provided having a computer program stored thereon, the computer program performing the following steps when executed by a processor:

[0184] During the process of receiving data packets of the target video, network measurement data corresponding to the data packets is acquired;

[0185] Based on the first branch model in the bandwidth estimation model and network measurement data, a first bandwidth estimate is determined; the first branch model is used to determine the bandwidth estimate with the maximum throughput as the objective.

[0186] Based on the second branch model in the bandwidth estimation model and network measurement data, the second bandwidth estimate and uncertainty are determined; the second branch model is used to determine the bandwidth estimate with the goal of minimizing the congestion probability.

[0187] Based on the first bandwidth estimate, the second bandwidth estimate, and the uncertainty, the target bitrate is determined, and the bitrate of the target video is adjusted to the target bitrate.

[0188] In one embodiment, when the computer program is executed by a processor, it also performs the following steps:

[0189] The first bandwidth estimate and the second bandwidth estimate are fused based on a preset fusion strategy to obtain the target bandwidth estimate;

[0190] The target bit rate is determined based on the target bandwidth estimate and uncertainty.

[0191] In one embodiment, the preset fusion strategy includes at least one of the following: linear weighted fusion strategy, Kalman filtering strategy, and Bayesian fusion strategy.

[0192] In one embodiment, when the computer program is executed by a processor, it also performs the following steps:

[0193] The target bandwidth is obtained by correcting the estimated value based on the uncertainty and the preset risk coefficient.

[0194] The target bitrate is determined from a set of preset video bitrates based on the target bandwidth, the buffer length of the player corresponding to the target video, and the preset upscaling / downscaling thresholds for the target video.

[0195] In one embodiment, when the computer program is executed by a processor, it also performs the following steps:

[0196] The result of multiplying the square root of the uncertainty by the preset risk coefficient;

[0197] The target bandwidth is obtained by subtracting the product from the target bandwidth estimate.

[0198] In one embodiment, when the computer program is executed by a processor, it also performs the following steps:

[0199] Based on the first branch model, the bottleneck bandwidth is determined according to the round-trip time series, data delivery rate and minimum round-trip delay, and the first bandwidth estimate is determined based on the bottleneck bandwidth.

[0200] In one embodiment, when the computer program is executed by a processor, it also performs the following steps:

[0201] Based on the second branch model, the variance of the round-trip time series is determined as the uncertainty, the network congestion trend is determined according to the delay gradient of the round-trip time series, and the second bandwidth estimate is determined according to the network congestion trend.

[0202] In one embodiment, a computer program product is provided, including a computer program that, when executed by a processor, performs the following steps:

[0203] During the process of receiving data packets of the target video, network measurement data corresponding to the data packets is acquired;

[0204] Based on the first branch model in the bandwidth estimation model and network measurement data, a first bandwidth estimate is determined; the first branch model is used to determine the bandwidth estimate with the maximum throughput as the objective.

[0205] Based on the second branch model in the bandwidth estimation model and network measurement data, the second bandwidth estimate and uncertainty are determined; the second branch model is used to determine the bandwidth estimate with the goal of minimizing the congestion probability.

[0206] Based on the first bandwidth estimate, the second bandwidth estimate, and the uncertainty, the target bitrate is determined, and the bitrate of the target video is adjusted to the target bitrate.

[0207] In one embodiment, when the computer program is executed by a processor, it also performs the following steps:

[0208] The first bandwidth estimate and the second bandwidth estimate are fused based on a preset fusion strategy to obtain the target bandwidth estimate;

[0209] The target bit rate is determined based on the target bandwidth estimate and uncertainty.

[0210] In one embodiment, the preset fusion strategy includes at least one of the following: linear weighted fusion strategy, Kalman filtering strategy, and Bayesian fusion strategy.

[0211] In one embodiment, when the computer program is executed by a processor, it also performs the following steps:

[0212] The target bandwidth is obtained by correcting the estimated value based on the uncertainty and the preset risk coefficient.

[0213] The target bitrate is determined from a set of preset video bitrates based on the target bandwidth, the buffer length of the player corresponding to the target video, and the preset upscaling / downscaling thresholds for the target video.

[0214] In one embodiment, when the computer program is executed by a processor, it also performs the following steps:

[0215] The result of multiplying the square root of the uncertainty by the preset risk coefficient;

[0216] The target bandwidth is obtained by subtracting the product from the target bandwidth estimate.

[0217] In one embodiment, when the computer program is executed by a processor, it also performs the following steps:

[0218] Based on the first branch model, the bottleneck bandwidth is determined according to the round-trip time series, data delivery rate and minimum round-trip delay, and the first bandwidth estimate is determined based on the bottleneck bandwidth.

[0219] In one embodiment, when the computer program is executed by a processor, it also performs the following steps:

[0220] Based on the second branch model, the variance of the round-trip time series is determined as the uncertainty, the network congestion trend is determined according to the delay gradient of the round-trip time series, and the second bandwidth estimate is determined according to the network congestion trend.

[0221] Those skilled in the art will understand that all or part of the processes in the above embodiments can be implemented by a computer program instructing related hardware. The computer program can be stored in a non-volatile computer-readable storage medium. When executed, the computer program can include the processes of the embodiments described above. Any references to memory, databases, or other media used in the embodiments provided in this application can include at least one of non-volatile and volatile memory. Non-volatile memory can include read-only memory (ROM), magnetic tape, floppy disk, flash memory, optical memory, high-density embedded non-volatile memory, resistive random access memory (ReRAM), magnetic random access memory (MRAM), ferroelectric random access memory (FRAM), phase change memory (PCM), graphene memory, etc. Volatile memory can include random access memory (RAM) or external cache memory, etc. By way of illustration and not limitation, RAM can take many forms, such as Static Random Access Memory (SRAM) or Dynamic Random Access Memory (DRAM). The databases involved in the embodiments provided in this application may include at least one type of relational database and non-relational database. Non-relational databases may include, but are not limited to, blockchain-based distributed databases. The processors involved in the embodiments provided in this application may be general-purpose processors, central processing units, graphics processing units, digital signal processors, programmable logic devices, quantum computing-based data processing logic devices, etc., and are not limited to these.

[0222] The technical features of the above embodiments can be combined in any way. For the sake of brevity, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this specification.

[0223] The embodiments described above are merely illustrative of several implementation methods of this application, and while the descriptions are specific and detailed, they should not be construed as limiting the scope of this patent application. It should be noted that those skilled in the art can make various modifications and improvements without departing from the concept of this application, and these all fall within the protection scope of this application. Therefore, the protection scope of this application should be determined by the appended claims.

Claims

1. A video bitrate adjustment method, characterized in that, The method includes: During the process of receiving data packets of the target video, network measurement data corresponding to the data packets is acquired; Based on the first branch model in the bandwidth estimation model and the network measurement data, a first bandwidth estimate is determined; the first branch model is used to determine the bandwidth estimate with the maximum throughput as the objective. Based on the second branch model in the bandwidth estimation model and the network measurement data, a second bandwidth estimate and uncertainty are determined; the second branch model is used to determine the bandwidth estimate with the goal of minimizing the congestion probability. Based on the first bandwidth estimate, the second bandwidth estimate, and the uncertainty, a target bitrate is determined, and the bitrate of the target video is adjusted to the target bitrate.

2. The method according to claim 1, characterized in that, The step of determining the target bit rate based on the first bandwidth estimate, the second bandwidth estimate, and the uncertainty includes: The first bandwidth estimate and the second bandwidth estimate are fused based on a preset fusion strategy to obtain the target bandwidth estimate; The target bit rate is determined based on the target bandwidth estimate and the uncertainty.

3. The method according to claim 2, characterized in that, The preset fusion strategy includes at least one of the following: linear weighted fusion strategy, Kalman filter strategy, and Bayesian fusion strategy.

4. The method according to claim 2, characterized in that, Determining the target bit rate based on the target bandwidth estimate and the uncertainty includes: Based on the uncertainty and the preset risk coefficient, the estimated target bandwidth is corrected to obtain the target bandwidth; The target bitrate is determined from a preset set of video bitrates based on the target bandwidth, the buffer length of the player corresponding to the target video, and the preset upscaling / downscaling threshold of the target video.

5. The method according to claim 4, characterized in that, The step of correcting the target bandwidth estimate based on the uncertainty and the preset risk coefficient to obtain the target bandwidth includes: Determine the product of the square root of the uncertainty and the preset risk coefficient; The target bandwidth is obtained by subtracting the product from the estimated target bandwidth.

6. The method according to claim 1, characterized in that, The network measurement data includes the round-trip time series of the data packets, data delivery rate, and minimum round-trip latency. Determining the first bandwidth estimate based on the first branch model in the bandwidth estimation model and the network measurement data includes: Based on the first branch model, the bottleneck bandwidth is determined according to the round-trip time series, the data delivery rate, and the minimum round-trip delay, and the first bandwidth estimate is determined according to the bottleneck bandwidth.

7. The method according to claim 1, characterized in that, The network measurement data includes the round-trip time series of the data packets. The determination of the second bandwidth estimate and uncertainty based on the second branch model in the bandwidth estimation model and the network measurement data includes: Based on the second branch model, the variance of the round-trip time series is determined as the uncertainty, the network congestion trend is determined according to the delay gradient of the round-trip time series, and the second bandwidth estimate is determined according to the network congestion trend.

8. A video bitrate adjustment device, characterized in that, The device includes: The acquisition module is used to acquire network measurement data corresponding to the data packets of the target video during the process of receiving the data packets; The first determining module is used to determine a first bandwidth estimate based on the first branch model in the bandwidth estimation model and the network measurement data; the first branch model is used to determine the bandwidth estimate with the maximum throughput as the objective. The second determining module is used to determine a second bandwidth estimate and uncertainty based on the second branch model in the bandwidth estimation model and the network measurement data; the second branch model is used to determine the bandwidth estimate with the goal of minimizing the congestion probability; The third determining module is used to determine the target bitrate based on the first bandwidth estimate, the second bandwidth estimate, and the uncertainty, and adjust the bitrate of the target video to the target bitrate.

9. A computer device comprising a memory and a processor, wherein the memory stores a computer program, characterized in that, When the processor executes the computer program, it implements the steps of the method according to any one of claims 1 to 7.

10. A computer-readable storage medium having a computer program stored thereon, characterized in that, When the computer program is executed by a processor, it implements the steps of the method according to any one of claims 1 to 7.