Link bandwidth estimation method, apparatus, device, storage medium, and program product
By using bitrate and resolution filters in link bandwidth estimation, the problem of inaccurate link bandwidth estimation is solved, improving the stability of live video streaming and user experience.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- BIGO TECH PTE LTD
- Filing Date
- 2023-04-06
- Publication Date
- 2026-07-03
AI Technical Summary
Existing link bandwidth estimation methods suffer from high false detection rates and limited detection capabilities, leading to unstable bitrate control and affecting the latency and smoothness of live video streaming.
By acquiring the data transmission parameters and video scene of the link, the bit rate reference bandwidth and resolution reference bandwidth are calculated using the bit rate filter and resolution filter, thereby improving the accuracy and stability of bandwidth estimation.
It improves the accuracy and stability of bandwidth estimation, reduces latency, stuttering, and smoothness fluctuations caused by network jitter, and optimizes the user viewing experience.
Smart Images

Figure CN116546276B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of communication technology, and in particular to link bandwidth estimation methods, apparatus, devices, storage media, and program products. Background Technology
[0002] During a live broadcast, the video recorded by the broadcaster in real time needs to be encoded and sent to the backend server to provide stable and smooth content for viewers. However, the broadcaster's network may be variable, either in an unstable and unreliable environment or facing network challenges caused by multiple users sharing the same link. In this complex and ever-changing network environment, the broadcaster's sending end needs to estimate the network link bandwidth in real time and control the encoding bitrate to match the network capacity; otherwise, a poor user experience will result.
[0003] On the one hand, overestimating bandwidth can cause the encoding bitrate to exceed the actual network forwarding rate. Excess video data will accumulate in the transmission queue, resulting in high latency. In severe cases, viewers may experience buffer exhaustion and playback interruptions due to the receiving speed being lower than the video playback speed. On the other hand, underestimating bandwidth can limit the encoding bitrate, failing to provide the expected higher definition and smoother video experience. Furthermore, while allowing for latency jitter and ensuring bandwidth utilization, the stability of bandwidth and bitrate control also significantly impacts QoE (Quality of Experience), such as fluctuations in image quality or frame rate smoothness. To ensure the transmission quality of live video streaming, in a typical live video streaming scenario with an end-to-end latency of 0.5 seconds, the uplink employs the BBR (Bottleneck Bandwidth and RTT) congestion control algorithm. This involves recording data packet transmission and observing the latency and reception rate of the receiver's ACK (Acknowledge Character) feedback. Furthermore, by estimating Btlbw (Bottleneck Bandwidth) and RTTprob (Round-Trip Time prob) using model control theory, the algorithm ultimately outputs Cwnd (CongestionWindow) and PacingRate (Packet Sending Rate) to control packet transmission. The BBR congestion control algorithm aims to operate at the bottleneck link bandwidth with minimal latency, exhibiting excellent performance. During live streaming, the bitrate output needs to be controlled based on real-time sending capabilities. However, the actual sending rate of the BBR congestion control algorithm is jointly controlled by the packet sending rate and the network sending window. The packet sending rate limits the data transmission speed, while the network sending window limits the total amount of data sent. Since a single packet sending rate or bottleneck link bandwidth cannot directly represent the actual sending rate, additional bandwidth estimation is needed for bitrate control to reduce stuttering and insufficient bandwidth utilization caused by overestimating or underestimating the actual sending rate.
[0004] In related technologies, the uplink utilizes additional congestion detection methods to estimate the actual data transmission capacity. When congestion is detected, it indicates that the link is at full load, and the actual receiving rate is used as the estimated bandwidth. When no congestion is detected, the BLTbw estimated by the BBR is used as the bandwidth sampling point, which has a good ability to cope with network changes. However, it still has two problems: First, congestion detection has a certain false detection rate. Overestimating or underestimating the actual transmission rate will negatively affect the accuracy and stability of the bit rate control. Second, the detection method is one-sided. The BBR itself has its own specific congestion control strategy, and the additional congestion detection may not be consistent with the BBR's state and needs. For example, when the BBR determines that additional data needs to be sent, the additional congestion detection may determine that there is congestion, resulting in a lower bandwidth estimate and causing the output bit rate to fail to meet the BBR's transmission requirements. This inconsistent behavior can easily cause unstable negative effects, such as transmission backlog or insufficient transmission. Insufficient transmission can easily affect the BBR's detection of BLTbw. Summary of the Invention
[0005] This application provides a link bandwidth estimation method, apparatus, device, storage medium, and program product, which solves the problem that incorrect bandwidth estimation negatively affects the accuracy and stability of bitrate control. It can improve the accuracy and stability of bandwidth estimation, thereby improving the ability to cope with network changes. While maximizing bandwidth utilization, it reduces latency, stuttering, and smoothness fluctuations caused by network jitter, thereby ensuring streaming quality and optimizing the user viewing experience.
[0006] In a first aspect, embodiments of this application provide a link bandwidth estimation method, the method comprising:
[0007] Obtain the data transmission parameters of the link and the video scene, and calculate the estimated bandwidth based on the data transmission parameters;
[0008] The estimated bandwidth is calculated based on the set rate filter to obtain the rate reference bandwidth;
[0009] The estimated bandwidth is calculated based on the video scene and the set resolution filter to obtain the resolution reference bandwidth.
[0010] Secondly, embodiments of this application also provide a link bandwidth estimation device, comprising:
[0011] The acquisition module is configured to acquire data transmission parameters and video scenes from the link.
[0012] The bandwidth estimation module is configured to calculate the estimated bandwidth based on the data transmission parameters.
[0013] The bit rate bandwidth module is configured to calculate the bit rate reference bandwidth based on the set bit rate filter;
[0014] The resolution bandwidth module is configured to calculate the estimated bandwidth to obtain the resolution reference bandwidth based on the video scene and the set resolution filter.
[0015] Thirdly, embodiments of this application also provide a link bandwidth estimation device, the device comprising:
[0016] One or more processors;
[0017] Storage device, configured to store one or more programs,
[0018] When the one or more programs are executed by the one or more processors, the one or more processors implement the link bandwidth estimation method described in the embodiments of this application.
[0019] Fourthly, embodiments of this application also provide a non-volatile storage medium for storing computer-executable instructions, which, when executed by a computer processor, are configured to perform the link bandwidth estimation method described in embodiments of this application.
[0020] Fifthly, embodiments of this application also provide a computer program product, which includes a computer program stored in a computer-readable storage medium. At least one processor of the device reads from the computer-readable storage medium and executes the computer program, causing the device to perform the link bandwidth estimation method described in embodiments of this application.
[0021] In this embodiment, the data transmission parameters of the link and the video scene are obtained, and the estimated bandwidth is calculated based on the data transmission parameters. Then, the estimated bandwidth is calculated based on the set bitrate filter to obtain the bitrate reference bandwidth. Finally, the estimated bandwidth is calculated based on the video scene and the set resolution filter to obtain the resolution reference bandwidth. Using the above techniques, bandwidth estimation based on real-time data transmission parameters of the link can improve the accuracy of bandwidth estimation and maximize bandwidth utilization. Filtering the estimated bandwidth by setting a bitrate filter helps improve real-time transmission efficiency and meet high sensitivity requirements. By considering the different frame rate and resolution requirements of different video scenes, the ability to cope with network changes is improved. By setting a resolution filter and simultaneously filtering the estimated bandwidth in conjunction with the video scene, the stability of bandwidth estimation is improved, reducing latency, stuttering, and smoothness fluctuations caused by network jitter, thereby ensuring streaming quality and optimizing the user viewing experience. Attached Figure Description
[0022] Figure 1A flowchart illustrating a link bandwidth estimation method provided in this application embodiment;
[0023] Figure 2 A flowchart illustrating a method for calculating estimated bandwidth provided in an embodiment of this application;
[0024] Figure 3 A flowchart illustrating another method for calculating estimated bandwidth provided in this application embodiment;
[0025] Figure 4 A flowchart illustrating a method for calculating a resolution reference bandwidth, provided in an embodiment of this application;
[0026] Figure 5 A flowchart illustrating a method for determining resolution filtering coefficients provided in this application embodiment;
[0027] Figure 6 A flowchart illustrating another link bandwidth estimation method provided in this application embodiment;
[0028] Figure 7 A structural block diagram of a link bandwidth estimation device provided in an embodiment of this application;
[0029] Figure 8 This is a schematic diagram of the structure of a link bandwidth estimation device provided in an embodiment of this application. Detailed Implementation
[0030] The embodiments of this application will be further described in detail below with reference to the accompanying drawings and examples. It should be understood that the specific embodiments described herein are merely illustrative of the embodiments of this application and are not intended to limit the scope of the embodiments. Furthermore, it should be noted that, for ease of description, only the parts relevant to the embodiments of this application are shown in the accompanying drawings, not the entire structure.
[0031] The terms "first," "second," etc., used in the specification and claims of this application are used to distinguish similar objects and not to describe a specific order or sequence. It should be understood that such use of data can be interchanged where appropriate so that embodiments of this application can be implemented in orders other than those illustrated or described herein, and the objects distinguished by "first," "second," etc., are generally of the same class and the number of objects is not limited; for example, a first object can be one or more. Furthermore, in the specification and claims, "and / or" indicates at least one of the connected objects, and the character " / " generally indicates that the preceding and following objects are in an "or" relationship.
[0032] The link bandwidth estimation method provided in this application is applicable to link bandwidth estimation for video transmission in various application scenarios, including online live streaming, video conferencing, and video calls. The aforementioned application scenarios are merely exemplary and illustrative; in practical applications, link bandwidth estimation can also be used in other scenarios, which this application does not limit. This application aims to provide a link bandwidth estimation method, apparatus, device, storage medium, and program product that can improve the accuracy and stability of bandwidth estimation, thereby enhancing the ability to cope with network changes. While maximizing bandwidth utilization, it reduces latency, stuttering, and smoothness fluctuations caused by network jitter, thus ensuring streaming quality and optimizing the user viewing experience.
[0033] The link bandwidth estimation method provided in this application embodiment can be executed by a computer device. The computer device refers to any electronic device with data computing, processing and storage capabilities, such as mobile phones, PCs (Personal Computers), tablet computers and other terminal devices, or servers and other devices. This application embodiment does not limit the scope of the computer device.
[0034] Figure 1 A flowchart of a link bandwidth estimation method provided in this application embodiment specifically includes the following steps:
[0035] Step S101: Obtain the data transmission parameters of the link and the video scene, and calculate the estimated bandwidth based on the data transmission parameters.
[0036] The video scenario can be categorized based on factors such as the video content, its geographical location, and the one-way or two-way transmission characteristics. For example, video scenarios can include real-time and non-real-time scenarios. Non-real-time scenarios include entertainment live streams and game live streams, while real-time scenarios include video calls and online multiplayer. Different video scenarios have different requirements for clarity and smoothness, thus requiring bandwidth estimation based on the specific video scenario to effectively adjust the bitrate output. The data transmission parameters of the link can be specific indicators that characterize the network status of the link, such as the data transmission status and congestion status of the link. Data transmission parameters can include the sending window size, the amount of data that can be continuously transmitted, the amount of data that can be transmitted but not yet acknowledged, the round-trip time of the original link, and the bottleneck link bandwidth. The sending window size represents the amount of data that can be continuously transmitted, the amount of data that can be transmitted but not yet acknowledged, the round-trip time of the original link, and the bottleneck link bandwidth, representing the minimum bandwidth among all links on the end-to-end path. Optionally, data transmission parameters can be obtained based on congestion control algorithms, such as the BBR congestion control algorithm and the TCPA congestion control algorithm. To ensure the clarity and smoothness of video data transmission, one or more data transmission parameters can be combined to calculate the estimated bandwidth. The estimated bandwidth can be the current data transmission rate of the link. For example, the estimated bandwidth can be obtained by adding a gain coefficient to the bottleneck link bandwidth. Alternatively, the data transmission volume can be estimated by the transmission window size and the amount of data transmitted in the link, and the estimated bandwidth can be obtained by combining the link round-trip time.
[0037] In one embodiment, Figure 2 A flowchart illustrating a method for calculating estimated bandwidth provided in this application embodiment shows an exemplary method for calculating estimated bandwidth based on data transmission parameters, such as... Figure 2 As shown, it specifically includes:
[0038] Step S1011: Perform smoothing filtering on the original link round-trip delay to obtain the smoothed link round-trip delay.
[0039] For example, the original link round-trip time (RTT) is specifically measured from the time the sender begins sending data to the time the sender receives an acknowledgment from the receiver. Network jitter can cause varying degrees of change in the RTT, leading to fluctuations in the transmission rate. Optionally, a smoothed RTT can be calculated by applying a smoothing filter. The smoothing filter method can be simple moving average, exponential moving average, or weighted moving average, etc., and this application does not impose any restrictions on this.
[0040] In one embodiment, taking the use of exponential moving average filtering as an example, the raw link round-trip time R at the current time i is...tti The smoothed link round-trip time is calculated by performing a smoothing filter. The specific calculation formula is as follows:
[0041]
[0042] in Let σ be the smoothed link round-trip time delay of the previous moment, and σ be the link round-trip time delay filtering coefficient. σ can be adaptively adjusted according to network jitter conditions; optionally, σ = 0.75. The calculation formula is as follows:
[0043]
[0044] In one embodiment, a weighted moving average filter can also be used. By referencing the link round-trip delay at three consecutive time points and setting different weights, the link round-trip delay at the intermediate time point, i.e., the smoothed link round-trip delay at the current time point, can be obtained.
[0045] Therefore, by smoothing the link round-trip delay, network jitter can be effectively addressed, fluctuations in estimated bandwidth can be reduced, and the stability of the estimated bandwidth output under different application scenarios can be improved, which is conducive to stable bit rate output.
[0046] Step S1012: Calculate the first transmittable rate based on the transmit window size, the amount of data transmitted via the link, and the smoothed link round-trip delay.
[0047] Here, the first transmittable rate can be the data transmission rate of the link transmitter. The amount of data that the link can transmit at the current moment can be obtained based on the difference between the transmission window size and the amount of data transmitted in flight. By combining this with the smoothed link round-trip delay, the transmittable rate of the link at the current moment can be reasonably estimated. Optionally, at the current moment i, the transmittable rate is determined based on the transmission window size Cwnd. i Inflight link flight data volume i and smooth link round-trip latency The first transmittable rate, CanSend, is calculated. i The following formula can be used for calculation:
[0048]
[0049] Specifically, when link congestion occurs, data packets will queue in the link and arrive with a delay, increasing the inflight data volume. i It will gradually increase within the sending window size Cwnd. i With the sending window size Cwnd remaining unchanged i Inflight link flight data volume iThe difference will gradually decrease, smoothing out the link round-trip delay. It will also gradually increase, causing the first sendable rate (CanSend) to decrease. i As the data gradually approaches zero, the sending rate at the sending end will drop to zero until the data remaining on the link is received by the receiving end and an acknowledgment message is sent back. Simultaneously, the inflight data volume on the link decreases. i The data will gradually decrease, allowing the sender to resume data transmission. This avoids excessive data accumulation on the link when bandwidth suddenly drops, thus preventing congestion and alleviating full-load conditions, reducing the risk of data loss, and improving data transmission stability.
[0050] Step S1013: Determine the smaller value between the first transmittable rate and the bottleneck link bandwidth as the estimated bandwidth.
[0051] For example, when the first sendable rate is CanSend i Compared to bottleneck link bandwidth BLTbw i When the bandwidth is large, to avoid exacerbating link congestion, the bottleneck link bandwidth Bltbw is used. i The estimated bandwidth E of link i at the current moment i When the first transmit rate is CanSend i Compared to bottleneck link bandwidth BLTbw i At this time, the bottleneck link bandwidth is Bltbw. i The estimated value may be higher than the actual available bandwidth of the link. Therefore, to avoid exacerbating data congestion on the link, the first available sending rate (CanSend) should be used. i The estimated bandwidth E of link i at the current moment i The specific calculation formula is as follows:
[0052] E i =min(CanSend) i ,Bltbw i )
[0053] The above-mentioned method, by comparing the first transmittable rate and the bottleneck link bandwidth, effectively responds to network changes, reduces network congestion, and ensures the quality of data transmission.
[0054] In one embodiment, Figure 3 The flowchart illustrates another method for calculating estimated bandwidth provided in this application embodiment. It provides an exemplary method for calculating estimated bandwidth based on data transmission parameters, wherein the data transmission parameters further include the average receiving rate, such as... Figure 3 As shown, it also specifically includes:
[0055] Step S1014: Determine the larger value between the first transmission rate and the average reception rate as the second transmittable rate.
[0056] Wherein, the average receiving rate can be the average rate at which the link receiver receives data. In step S1014, after step S1012, when the first transmittable rate approaches 0, the link is in a full-load state. The receiver will receive data at an average receiving rate close to the bottleneck link bandwidth, while the link fly-through data will be released at the average receiving rate. Therefore, since the link fly-through data will be delayed in release due to the delay of the receiver's acknowledgment message, but the actual average transmitting rate is equal to the average receiving rate, to avoid the first transmittable rate approaching 0 due to the delayed release of the link fly-through data, optionally, the first transmitting rate CanSend... i With average received rate AckRate i The larger value is determined as the second transmittable rate CanSend′ at the current time i. i The specific calculation formula is as follows:
[0057] CanSend′ i =max(CanSend) i AckRate i )
[0058] As mentioned above, limiting the minimum first transmit rate to the average receive rate is beneficial to the stability of data transmission and ensures the clarity and smoothness requirements of different application scenarios.
[0059] Step S1015: Determine the smaller value between the second transmittable rate and the bottleneck link bandwidth as the estimated bandwidth.
[0060] Specifically, after step S1014, step S1015 can replace step S1013, and the second transmittable rate CanSend′ is changed. i BLTbw (Bottleneck Link Bandwidth) i The smaller value in the range is determined as the estimated bandwidth E. i The specific calculation formula is as follows:
[0061] E i =min(CanSend′) i ,Bltbw i )
[0062] As described above, when the link bandwidth drops sharply, the transmit rate gradually converges to the actual average receive rate, and the estimated bandwidth is greater than or equal to the average receive rate. Conversely, when the link bandwidth increases suddenly, the transmit rate will be greater than the bottleneck link bandwidth detected by the congestion control method, and the estimated bandwidth is less than or equal to the bottleneck link bandwidth. Therefore, the estimated bandwidth can closely match the transmit control of the congestion control method, effectively improving the accuracy and sensitivity of the rate estimation.
[0063] Step S102: Calculate the estimated bandwidth based on the set bit rate filter to obtain the bit rate reference bandwidth.
[0064] The rate filter can be an algorithm module that performs filtering calculations on the estimated bandwidth, and the resulting rate reference bandwidth is used for rate control of the encoder. For example, after calculating the estimated bandwidth in step S101, to better match the actual transmission bandwidth of the link, the rate filter can be used to calculate the rate reference bandwidth, which is beneficial for subsequent rate control. The rate filter can be a first-order exponential smoothing filter, a second-order exponential smoothing filter, or a third-order exponential smoothing filter; this application does not impose any restrictions.
[0065] In one embodiment, the bit rate filter uses fixed bit rate filtering coefficients, wherein the bit rate filtering parameters can be weight setting parameters for bit rate filtering calculation. Step S102 specifically includes:
[0066] Step S1021: Calculate the second bit rate reference bandwidth based on the bit rate filtering coefficients, the estimated bandwidth, and the first bit rate reference bandwidth, wherein the first bit rate reference bandwidth is the bit rate reference bandwidth calculated at the previous moment.
[0067] For example, based on the bit rate filtering coefficient β at the current time i i Estimated bandwidth E i and the first code rate reference bandwidth R of the previous time step i-1 i-1 The second code rate reference bandwidth R at the current time i is calculated. i The specific calculation formula is as follows:
[0068] R i =β i ×E i +R i-1 ×(1-β i )
[0069] Optional, rate filtering coefficient β i =0.85, then the second code rate reference bandwidth R at the current time i is 0.85. i The calculation formula is as follows:
[0070] R i =0.85×E i +R i-1 ×0.15
[0071] As mentioned above, setting a bit rate filter can help improve the ability to cope with network changes, enhance real-time transmission efficiency, reduce latency and stuttering caused by network jitter, and meet sensitivity requirements.
[0072] Step S103: Calculate the estimated bandwidth based on the video scene and the set resolution filter to obtain the resolution reference bandwidth.
[0073] The resolution filter can be an algorithm module that performs filtering calculations on the estimated bandwidth, and the resulting resolution reference bandwidth is used for encoder resolution control. For example, after calculating the estimated bandwidth in step S101, to better meet the stability requirements of different application scenarios and reduce image quality fluctuations and the problem of overflow and transmission backlog caused by low-bitrate coding segments at high resolution, a resolution reference bandwidth can be calculated using the set resolution filter to facilitate subsequent resolution control. The resolution filter can be a first-order exponential smoothing filter, a second-order exponential smoothing filter, or a third-order exponential smoothing filter; this application does not impose any restrictions.
[0074] In one embodiment, Figure 4 A flowchart illustrating a method for calculating a resolution reference bandwidth is provided in this application embodiment. The flowchart describes a process for calculating the resolution reference bandwidth. Figure 4 As shown, the specific steps include:
[0075] Step S1031: Determine the resolution filtering coefficients of the resolution filter based on the video scene.
[0076] The resolution filtering parameters can be the weight settings for the resolution filtering calculation. For example, video scenes can be divided into real-time and non-real-time scenes based on different real-time requirements. Real-time scenes include video calls and live chat scenarios, which require higher real-time performance and smoothness. Non-real-time scenes include entertainment live streams and game live streams, which require higher clarity and image quality. Unlike bitrate filters, resolution filters are associated with video scenes, and different video scenes correspond to different resolution filtering coefficients.
[0077] Step S1032: Calculate the second resolution reference bandwidth based on the resolution filter coefficients, the estimated bandwidth, and the first resolution reference bandwidth, wherein the first resolution reference bandwidth is the resolution reference bandwidth calculated at the previous moment.
[0078] For example, based on the resolution coefficient β′ at the current time i i Estimated bandwidth E i and the first resolution reference bandwidth R′ of the previous time step i-1 i-1 The second resolution reference bandwidth R′ at the current time i is calculated. i The specific calculation formula is as follows:
[0079] R′ i =β′ i×E i +R′ i-1 ×(1-β′ i )
[0080] As mentioned above, by setting a resolution filter and a resolution coefficient that adapts to changes in estimated bandwidth, it is beneficial to meet the requirements of different application scenarios for clarity and smoothness, and improve the stability of bandwidth estimation.
[0081] As described above, the estimated bandwidth is calculated by acquiring the data transmission parameters of the link and the video scene. Then, a bitrate reference bandwidth is calculated based on the set bitrate filter. Finally, a resolution reference bandwidth is calculated based on the estimated bandwidth using the video scene and a set resolution filter. Using these techniques, bandwidth estimation based on real-time data transmission parameters of the link improves bandwidth estimation accuracy and maximizes bandwidth utilization. Setting a bitrate filter to filter the estimated bandwidth improves real-time transmission efficiency and meets high sensitivity requirements. Considering the different frame rate and resolution requirements of various video scenes enhances the ability to adapt to network changes. Setting a resolution filter and combining it with the video scene to filter the estimated bandwidth improves bandwidth estimation stability and reduces latency, stuttering, and smoothness fluctuations caused by network jitter, thereby ensuring streaming quality and optimizing the user viewing experience.
[0082] Figure 5 A flowchart illustrating a method for determining resolution filter coefficients is provided in this application embodiment. Figure 5 As shown, the specific steps include:
[0083] Step S1021: Calculate the second bit rate reference bandwidth based on the bit rate filtering coefficients, the estimated bandwidth, and the first bit rate reference bandwidth, wherein the first bit rate reference bandwidth is the bit rate reference bandwidth calculated at the previous moment.
[0084] Step S10311: When the video scene is a real-time scene, the resolution filter coefficients are calculated using the base filter coefficients as the base and the ratio of the estimated bandwidth to the second resolution reference bandwidth as the exponent.
[0085] The base filter coefficients can be static components of the resolution filter coefficients, with fixed values. For example, using the base filter coefficients θ as the base and the estimated bandwidth E at the current time i... i The second resolution reference bandwidth R′ of the previous time i-1 i-1 The ratio is the exponent, used to calculate the resolution filtering coefficient β′ in the real-time scene. i The specific calculation formula is as follows:
[0086]
[0087] Optionally, if the base filter coefficient θ = 0.95, then the resolution filter coefficient β′ in the real-time scene at the current time i is... i The calculation formula is as follows:
[0088]
[0089] In one embodiment, the aforementioned resolution filtering coefficient β′ is combined i The second resolution reference bandwidth R′ at the current time i i The specific calculation formula is as follows:
[0090]
[0091] As can be seen from the above formula, when the estimated bandwidth decreases, the second resolution reference bandwidth is obtained through weighted filtering; when the estimated bandwidth increases, the second resolution reference bandwidth is obtained through deweighted filtering. Thus, by setting dynamic resolution filtering coefficients, the final second resolution reference bandwidth satisfies the "slow increase and fast decrease" rule, meeting the real-time and smoothness requirements of real-time scenarios.
[0092] Step S10312: When the video scene is a non-real-time scene, the resolution filter coefficients are calculated using the base filter coefficients as the base and the ratio of the second resolution reference bandwidth to the estimated bandwidth as the exponent.
[0093] For example, with the base of the fundamental filter coefficients θ, the second resolution reference bandwidth R′ at the previous time i-1 is... i-1 The estimated bandwidth E at time i i The ratio is the exponent, used to calculate the resolution filtering coefficient β′ in non-real-time scenarios. i The specific calculation formula is as follows:
[0094]
[0095] Optionally, if the base filter coefficient θ = 0.95, then the resolution filter coefficient β′ in the non-real-time scenario at the current time i is... i The calculation formula is as follows:
[0096]
[0097] In one embodiment, the aforementioned resolution filtering coefficient β′ is combined i The second resolution reference bandwidth R′ at the current time i i The specific calculation formula is as follows:
[0098]
[0099] As can be seen from the above formula, when the estimated bandwidth decreases, the second resolution reference bandwidth is obtained through weighted filtering; when the estimated bandwidth increases, the second resolution reference bandwidth is obtained through weighted filtering. Thus, by setting dynamic resolution filtering coefficients, the final second resolution reference bandwidth follows the "fast increase and slow decrease" rule, meeting the clarity and high image quality requirements of non-real-time scenarios.
[0100] Figure 6 A flowchart illustrating another link bandwidth estimation method provided in this application embodiment shows a process for controlling the video bitrate and video resolution after obtaining the bitrate reference bandwidth and resolution reference bandwidth, such as... Figure 6 As shown, it includes:
[0101] Step S201: Obtain the data transmission parameters of the link and the video scene, and calculate the estimated bandwidth based on the data transmission parameters;
[0102] Step S202: Calculate the estimated bandwidth based on the set code rate filter to obtain the code rate reference bandwidth;
[0103] Step S203: Calculate the estimated bandwidth based on the video scene and the set resolution filter to obtain the resolution reference bandwidth.
[0104] Step S204: Control the video bitrate based on the bitrate reference bandwidth;
[0105] Step S205: Control the video resolution based on the resolution reference bandwidth.
[0106] Therefore, by controlling the video bitrate based on the bitrate reference bandwidth and the video resolution based on the resolution reference bandwidth, different control requirements can be met. This comprehensively balances the bandwidth budget for clarity and smoothness at different frame rates and resolutions, improves bitrate control performance, and ultimately enhances the quality of user experience.
[0107] Figure 7 This is a structural block diagram of a link bandwidth estimation device provided in an embodiment of this application. The device is configured to execute the link bandwidth estimation method provided in the above embodiment, and has corresponding functional modules and beneficial effects for executing the method. Figure 7 As shown, the device specifically includes:
[0108] The acquisition module 101 is configured to acquire the data transmission parameters of the link and the video scene;
[0109] The bandwidth estimation module 102 is configured to calculate the estimated bandwidth based on the data transmission parameters.
[0110] The bit rate bandwidth module 103 is configured to calculate the bit rate reference bandwidth based on the set bit rate filter;
[0111] The resolution bandwidth module 104 is configured to calculate the estimated bandwidth based on the video scene and the set resolution filter to obtain the resolution reference bandwidth.
[0112] As described above, the estimated bandwidth is calculated by acquiring the data transmission parameters of the link and the video scene. Then, a bitrate reference bandwidth is calculated based on the set bitrate filter. Finally, a resolution reference bandwidth is calculated based on the estimated bandwidth using the video scene and a set resolution filter. This approach, using real-time data transmission parameters of the link for bandwidth estimation, improves the accuracy of bandwidth estimation and maximizes bandwidth utilization. Setting a bitrate filter to filter the estimated bandwidth enhances real-time transmission efficiency and meets high sensitivity requirements. Considering the different frame rate and resolution requirements of various video scenes improves the ability to adapt to network changes. Setting a resolution filter and combining it with the video scene to filter the estimated bandwidth improves bandwidth estimation stability and reduces latency, stuttering, and smoothness fluctuations caused by network jitter, thereby ensuring streaming quality and optimizing the user viewing experience.
[0113] In one possible embodiment, data transmission parameters include the sending window size, link flight data volume, raw link round-trip time, and bottleneck link bandwidth. The bandwidth estimation module 102 is specifically configured as follows:
[0114] The smoothed link round-trip time is obtained by performing a smoothing filter on the original link round-trip time;
[0115] The first transmittable rate is calculated based on the transmit window size, the link flight data volume, and the smoothed link round-trip delay.
[0116] The smaller of the first transmittable rate and the bottleneck link bandwidth is determined as the estimated bandwidth.
[0117] In one possible embodiment, the data transmission parameters further include the average receiving rate, and the bandwidth estimation module 102 is further configured as follows:
[0118] The larger value between the first transmission rate and the average reception rate is determined as the second transmittable rate;
[0119] The smaller of the second transmittable rate and the bottleneck link bandwidth is determined as the estimated bandwidth.
[0120] In one possible embodiment, the bit rate filter uses fixed bit rate filtering coefficients, and the bit rate bandwidth module 103 is specifically configured as follows:
[0121] The second bit rate reference bandwidth is calculated based on the bit rate filtering coefficients, the estimated bandwidth, and the first bit rate reference bandwidth, wherein the first bit rate reference bandwidth is the bit rate reference bandwidth calculated at the previous moment.
[0122] In one possible embodiment, the resolution bandwidth module 104 is specifically configured as follows:
[0123] The resolution filtering coefficients of the resolution filter are determined based on the video scene.
[0124] The second resolution reference bandwidth is calculated based on the resolution filtering coefficients, the estimated bandwidth, and the first resolution reference bandwidth, wherein the first resolution reference bandwidth is the resolution reference bandwidth calculated at the previous moment.
[0125] In one possible embodiment, the video scene includes a real-time scene and a non-real-time scene, and the resolution bandwidth module 104 is further configured as follows:
[0126] When the video scene is a real-time scene, the resolution filter coefficients are calculated with the base filter coefficients as the base and the ratio of the estimated bandwidth to the second resolution reference bandwidth as the exponent.
[0127] When the video scene is a non-real-time scene, the resolution filter coefficients are calculated using the base filter coefficients as the base and the ratio of the second resolution reference bandwidth to the estimated bandwidth as the exponent.
[0128] In one possible embodiment, the device further includes a control module 105 configured to:
[0129] The video bitrate is controlled based on the bitrate reference bandwidth.
[0130] The video resolution is controlled based on the aforementioned resolution reference bandwidth.
[0131] Figure 8 This is a schematic diagram of the structure of a link bandwidth estimation device provided in an embodiment of this application, as shown below. Figure 8 As shown, the device includes a processor 201, a memory 202, an input device 203, and an output device 204; the number of processors 201 in the device can be one or more. Figure 8 Taking a processor 201 as an example; the processor 201, memory 202, input device 203, and output device 204 in the device can be connected via a bus or other means. Figure 8Taking a bus connection as an example, the memory 202, as a computer-readable storage medium, can be configured to store software programs, computer-executable programs, and modules, such as the program instructions / modules corresponding to the link bandwidth estimation method in this embodiment. The processor 201 executes various functional applications and data processing of the device by running the software programs, instructions, and modules stored in the memory 202, thereby implementing the aforementioned link bandwidth estimation method. The input device 203 can be configured to receive input digital or character information and generate key signal inputs related to user settings and function control of the device. The output device 204 may include a display device such as a screen.
[0132] This application also provides a non-volatile storage medium containing computer-executable instructions, which, when executed by a computer processor, are configured to perform a link bandwidth estimation method described in the above embodiments, comprising:
[0133] Obtain the data transmission parameters of the link and the video scene, and calculate the estimated bandwidth based on the data transmission parameters;
[0134] The estimated bandwidth is calculated based on the set rate filter to obtain the rate reference bandwidth;
[0135] The estimated bandwidth is calculated based on the video scene and the set resolution filter to obtain the resolution reference bandwidth.
[0136] It is worth noting that in the above-described embodiments of the link bandwidth estimation device, the various units and modules included are only divided according to functional logic, but are not limited to the above division, as long as the corresponding functions can be achieved; in addition, the specific names of each functional unit are only for easy differentiation and are not configured to limit the protection scope of the embodiments of this application.
[0137] In some possible implementations, various aspects of the methods provided in this application can also be implemented as a program product comprising program code that, when run on a computer device, is configured to cause the computer device to perform the steps of the methods according to the various exemplary embodiments of this application described above. For example, the computer device may perform the link bandwidth estimation method described in the embodiments of this application. The program product may be implemented using any combination of one or more readable media.
Claims
1. A link bandwidth estimation method, characterized in that, include: The data transmission parameters of the link and the video scene are obtained. An estimated bandwidth is calculated based on the data transmission parameters. The data transmission parameters include the sending window size, the amount of data flying through the link, the original link round-trip time, and the bottleneck link bandwidth. The process of calculating the estimated bandwidth based on the data transmission parameters includes: performing a smoothing filter on the original link round-trip time to calculate a smoothed link round-trip time; calculating a first transmittable rate based on the sending window size, the amount of data flying through the link, and the smoothed link round-trip time; and determining the smaller value between the first transmittable rate and the bottleneck link bandwidth as the estimated bandwidth. The estimated bandwidth is calculated based on the set rate filter to obtain the rate reference bandwidth; The estimated bandwidth is calculated based on the video scene and the set resolution filter to obtain the resolution reference bandwidth.
2. The link bandwidth estimation method according to claim 1, characterized in that, The data transmission parameters also include the average receiving rate, and after calculating the first transmittable rate based on the sending window size, the link flight data volume, and the smoothed link round-trip delay, the parameters further include: The larger value between the first transmittable rate and the average receive rate is determined as the second transmittable rate; Accordingly, determining the smaller of the first transmittable rate and the bottleneck link bandwidth as the estimated bandwidth includes: The smaller of the second transmittable rate and the bottleneck link bandwidth is determined as the estimated bandwidth.
3. The link bandwidth estimation method according to any one of claims 1-2, characterized in that, The bit rate filter uses fixed bit rate filtering coefficients, and the bit rate reference bandwidth is calculated based on the set bit rate filter, including: The second bit rate reference bandwidth is calculated based on the bit rate filtering coefficients, the estimated bandwidth, and the first bit rate reference bandwidth, wherein the first bit rate reference bandwidth is the bit rate reference bandwidth calculated at the previous moment.
4. The link bandwidth estimation method according to any one of claims 1-2, characterized in that, The step of calculating the estimated bandwidth based on the video scene and the set resolution filter to obtain the resolution reference bandwidth includes: The resolution filtering coefficients of the resolution filter are determined based on the video scene. The second resolution reference bandwidth is calculated based on the resolution filtering coefficients, the estimated bandwidth, and the first resolution reference bandwidth, wherein the first resolution reference bandwidth is the resolution reference bandwidth calculated at the previous moment.
5. The link bandwidth estimation method according to claim 4, characterized in that, The video scene includes real-time scenes and non-real-time scenes, and the step of determining the resolution filter coefficients based on the video scene includes: When the video scene is a real-time scene, the resolution filter coefficients are calculated with the base filter coefficients as the base and the ratio of the estimated bandwidth to the second resolution reference bandwidth as the exponent. When the video scene is a non-real-time scene, the resolution filter coefficients are calculated using the base filter coefficients as the base and the ratio of the second resolution reference bandwidth to the estimated bandwidth as the exponent.
6. The link bandwidth estimation method according to claim 1, characterized in that, After calculating the bitrate reference bandwidth and resolution reference bandwidth, the following is also included: The video bitrate is controlled based on the bitrate reference bandwidth. The video resolution is controlled based on the aforementioned resolution reference bandwidth.
7. A link bandwidth estimation device, characterized in that, include: The acquisition module is configured to acquire the data transmission parameters of the link and the video scene. The data transmission parameters include the sending window size, the amount of data in the link flight, the original link round-trip time, and the bottleneck link bandwidth. The estimated bandwidth module is configured to calculate the estimated bandwidth based on the data transmission parameters. Specifically, the estimated bandwidth module is configured to: perform smoothing filtering on the original link round-trip delay to calculate the smoothed link round-trip delay; calculate the first transmittable rate based on the sending window size, the link flight data volume, and the smoothed link round-trip delay; and determine the smaller value between the first transmittable rate and the bottleneck link bandwidth as the estimated bandwidth. The bit rate bandwidth module is configured to calculate the bit rate reference bandwidth based on the set bit rate filter; The resolution bandwidth module is configured to calculate the estimated bandwidth to obtain the resolution reference bandwidth based on the video scene and the set resolution filter.
8. A link bandwidth estimation device, the device comprising: One or more processors; A storage device configured to store one or more programs, which, when executed by one or more processors, cause the one or more processors to implement the link bandwidth estimation method according to any one of claims 1-6.
9. A non-volatile storage medium storing computer-executable instructions, which, when executed by a computer processor, are configured to perform the link bandwidth estimation method of any one of claims 1-6.
10. A computer program product, comprising a computer program, characterized in that, When the computer program is executed by a processor, it implements the link bandwidth estimation method according to any one of claims 1-6.