Bandwidth Estimation Method, Device, Equipment, and Storage Medium
Through iterative update bandwidth estimation method, combining delay-based bandwidth estimation and transmitter update bandwidth, the problem of insufficient bandwidth estimation accuracy in the existing technology under high packet loss rate is solved, and more stable and accurate bandwidth estimation is achieved.
Patent Information
- Application Number
- CN202310299153.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-03-24
- Publication Date
- 2025-06-03
- Estimated Expiration
- 2043-03-24
AI Technical Summary
The bandwidth estimation method of video streams in existing video conferencing is insufficient in the case of high packet loss rate, and cannot effectively adapt to the case of exceeding 10%.
By obtaining the previous optimal bandwidth estimate, calculating the bandwidth estimate based on the delay, obtaining the transmitter update bandwidth updated by the sender based on the packet loss rate, and iteratively updating the candidate bandwidth estimate, the optimal bandwidth estimate is determined based on the objective function.
Improve bandwidth estimation accuracy, especially in the case of high packet loss rate, ensuring the stability and accuracy of bandwidth estimation.
Smart Images

Figure CN116248973B_ABST
Abstract
Description
Background Art
[0002] Currently, the bandwidth estimation methods for video streams in video conferencing mainly deal with bandwidth estimation in the case of no packet loss or a small packet loss rate, and are not applicable to the case of a relatively high packet loss rate, such as a packet loss rate exceeding 10%. In the implementation of SendSideBandwidthEstimation (sender-side bandwidth estimation) in Webrtc (Web Real-Time Communication), by default, the bandwidth is adjusted downward when the packet loss rate exceeds 10%. For continuous packet loss and a packet loss rate above 10%, the bandwidth estimation result will keep decreasing to the lowest. The implementation of LossBasedBweV2 (bandwidth estimation based on packet loss rate version 2) is for continuous packet loss, but it can only adapt to the case of a small packet loss rate.
[0003] Therefore, how to improve the accuracy of bandwidth estimation is a technical problem that those skilled in the art urgently need to solve. Summary of the Invention
[0004] In order to overcome the defects of the above-mentioned prior art, the present application provides a bandwidth estimation method, device, equipment and storage medium, so as to improve the accuracy of bandwidth estimation.
[0005] According to one aspect of the present application, a bandwidth estimation method is provided, including:
[0006] Obtain the previous best bandwidth estimation;
[0007] Calculate the delay-based bandwidth estimation according to the transmission packet feedback information;
[0008] Obtain the sender-updated bandwidth updated by the sender based on the packet loss rate;
[0009] Iteratively update the candidate bandwidth estimation according to the delay-based bandwidth estimation, the updated bandwidth and the previous best bandwidth estimation, and determine the optimal candidate bandwidth estimation from the candidate bandwidth estimations based on the objective function calculated during the iteration process; and
[0010] Take the optimal bandwidth estimation as the current best bandwidth estimation.
[0011] In some embodiments of the present application, the objective function is a joint probability distribution function based on the estimated packet loss rate, and the objective function is calculated based on the candidate bandwidth estimation and the first-order derivative and second-order derivative of the objective function with respect to the candidate bandwidth estimation.
[0012] Among them, the first-order derivative of the objective function with respect to the candidate bandwidth estimation is obtained by conversion according to the first-order derivative of the estimated packet loss rate with respect to the candidate bandwidth estimation and the first-order derivative of the objective function with respect to the estimated packet loss rate.
[0013] The second derivative of the objective function with respect to the candidate bandwidth estimate is obtained by conversion based on the first derivative of the candidate bandwidth estimate with respect to the estimated packet loss rate and the second derivative of the objective function with respect to the estimated packet loss rate.
[0014] In some embodiments of the present application, the candidate bandwidth estimate is iteratively updated using the coordinate descent method and the Newton iteration method. The candidate bandwidth estimate includes the persistent packet loss rate and the receiver-side bandwidth estimate updated by the receiver based on the persistent packet loss rate. During the iterative update process of the candidate bandwidth estimate, the persistent packet loss rate and the receiver-side bandwidth estimate of the candidate bandwidth estimate are alternately updated.
[0015] In some embodiments of the present application, during the iterative update process of the candidate bandwidth estimate, when the value of the current objective function is less than the value of the previous objective function, the iterative update process is exited.
[0016] In some embodiments of the present application, the delay-based bandwidth estimate is obtained by using a delay-based estimation method. Calculating the delay-based bandwidth estimate based on the transmission packet feedback information includes:
[0017] Adjusting the input bit rate of the delay-based estimation method according to the persistent packet loss rate of the previous best bandwidth estimate.
[0018] In some embodiments of the present application, the best bandwidth estimate limits the upper limit of the bandwidth estimate for the sender to update the bandwidth.
[0019] In some embodiments of the present application, the bandwidth estimation method is implemented based on SendSideBandwidthEstimation and LossBasedBweV2 of webrtc.
[0020] According to another aspect of the present application, there is also provided a bandwidth estimation device, including:
[0021] A previous best bandwidth estimate acquisition module configured to acquire a previous best bandwidth estimate;
[0022] A delay-based bandwidth estimate calculation module configured to calculate a delay-based bandwidth estimate according to the transmission packet feedback information;
[0023] A sender-side updated bandwidth acquisition module configured to acquire the sender-side updated bandwidth updated by the sender based on the packet loss rate;
[0024] An optimal candidate bandwidth estimate determination module configured to iteratively update the candidate bandwidth estimate according to the delay-based bandwidth estimate, the updated bandwidth, and the previous best bandwidth estimate, and determine the optimal candidate bandwidth estimate from the candidate bandwidth estimates based on the objective function calculated during the iteration; and
[0025] The current best bandwidth estimation determination module is configured to use the optimal bandwidth estimation as the current best bandwidth estimation.
[0026] According to another aspect of the present application, an electronic device is further provided. The electronic device includes: a processor; a storage medium, on which a computer program is stored, and when the computer program is run by the processor, the steps described above are executed.
[0027] According to another aspect of the present application, a storage medium is further provided. A computer program is stored on the storage medium, and when the computer program is run by a processor, the steps described above are executed.
[0028] Thus, the solution provided by the present application has the following advantages compared with the prior art:
[0029] Compared with the method of using only the delay-based bandwidth estimation or updated bandwidth for bandwidth estimation, or selecting a bandwidth from multiple candidate bandwidths to calculate the objective function, since the single bandwidth estimation has a relatively simple estimation method, in actual use, problems such as valuation fluctuations and poor valuation accuracy are likely to occur. According to the present application, the candidate bandwidth estimation is iteratively updated based on the delay-based bandwidth estimation, updated bandwidth, and the previous best bandwidth estimation. Based on the bandwidth estimations obtained by using different estimation methods, the advantages of multiple bandwidth estimations can be integrated to improve the bandwidth estimation accuracy; using the iterative method to determine the current best bandwidth estimation based on the previous best bandwidth estimation can ensure that the valuation is relatively stable. BRIEF DESCRIPTION OF THE DRAWINGS
[0030] By referring to the accompanying drawings and describing its exemplary embodiments in detail, the above and other features and advantages of the present application will become more apparent.
[0031] Figure 1 The flowchart of the bandwidth estimation method according to an embodiment of the present application is shown.
[0032] Figure 2 The flowchart of the bandwidth estimation method according to a specific embodiment of the present application is shown.
[0033] Figure 3 The block diagram of the bandwidth estimation device according to an embodiment of the present application is shown.
[0034] Figure 4 A schematic diagram of a computer-readable storage medium in an exemplary embodiment of the present disclosure is shown.
[0035] Figure 5 A schematic diagram of an electronic device in an exemplary embodiment of the present disclosure is shown. DETAILED DESCRIPTION OF THE EMBODIMENTS
[0036] Example embodiments will now be described more fully with reference to the accompanying drawings. However, the example embodiments can be implemented in various forms and should not be construed as limited to the examples set forth herein; rather, these embodiments are provided so that this application will be more complete and comprehensive, and will fully convey the concept of the example embodiments to those skilled in the art. The described features, structures, or characteristics can be combined in any suitable manner in one or more embodiments.
[0037] In addition, the accompanying drawings are only schematic illustrations of the present application and are not necessarily drawn to scale. The same reference numerals in the drawings denote the same or similar parts, and thus repeated descriptions thereof will be omitted. Some of the block diagrams shown in the drawings are functional entities and do not necessarily correspond to physically or logically independent entities. These functional entities can be implemented in software form, or implemented in one or more hardware modules or integrated circuits, or implemented in different networks and / or processor devices and / or microcontroller devices.
[0038] The flowcharts shown in the accompanying drawings are only illustrative and do not necessarily include all the steps. For example, some steps can be further decomposed, while some steps can be combined or partially combined. Therefore, the actual execution order may be changed according to the actual situation.
[0039] To overcome the defects of the above-mentioned prior art, the present application provides a bandwidth estimation method, apparatus, device, and storage medium, thereby improving the accuracy of bandwidth estimation.
[0040] First, refer to Figure 1 , Figure 1 , which shows a flowchart of the bandwidth estimation method according to an embodiment of the present application. The bandwidth estimation method provided by the present application includes:
[0041] Step S110: Obtain the previous best bandwidth estimate.
[0042] Specifically, the previous best bandwidth estimate is the best bandwidth estimate obtained during the previous bandwidth estimation, that is, the current best bandwidth estimate obtained when steps S110 to S150 were executed last time.
[0043] Step S120: Calculate the delay-based bandwidth estimate according to the transport packet feedback information.
[0044] Specifically, the reception of the transport packet feedback information can be implemented through TransportPacketFeedback. TransportPacketFeedback is the entry for processing after receiving the transport packet feedback information, and the time interval of the transport packet feedback information can be set as needed. The delay-based bandwidth estimate can be estimated by using a delay-based estimation method.
[0045] Step S130: Obtain the updated bandwidth of the sender based on the packet loss rate.
[0046] Specifically, the updated bandwidth of the sender can be estimated by using the SendSideBandwidthEstimation (sender bandwidth estimation) method. This application is not limited thereto. The updated bandwidth of the sender can be updated and adjusted based on the previous best bandwidth estimate on the basis of SendSideBandwidthEstimation.
[0047] Step S140: Iteratively update the candidate bandwidth estimate according to the delay-based bandwidth estimate, the updated bandwidth, and the previous best bandwidth estimate, and determine the optimal candidate bandwidth estimate from the candidate bandwidth estimates based on the objective function calculated during the iteration process.
[0048] Specifically, this application can implement multiple different iterative update methods, which will be described in detail in the subsequent elaboration.
[0049] Step S150: Use the optimal bandwidth estimate as the current best bandwidth estimate.
[0050] Thus, in the bandwidth estimation method provided by this application, compared with using only the delay-based bandwidth estimate or the updated bandwidth for bandwidth estimation, or calculating the objective function by selecting a bandwidth from multiple candidate bandwidths, since the single bandwidth estimate has a relatively single estimation method, it is prone to the problem of estimation fluctuation during actual use. This application iteratively updates the candidate bandwidth estimate according to the delay-based bandwidth estimate, the updated bandwidth, and the previous best bandwidth estimate. While being able to integrate the advantages of multiple bandwidth estimates based on the bandwidth estimates obtained by using different estimation methods, using the iterative method enables the current best bandwidth estimate to be determined according to the previous best bandwidth estimate, which can ensure that the estimation is relatively stable. Thus, the bandwidth estimation accuracy is improved.
[0051] In some specific implementations, the bandwidth estimation method can be implemented based on SendSideBandwidthEstimation and LossBasedBweV2 of webrtc, so that it can be changed on the basis of the existing bandwidth estimation algorithm, improving the bandwidth estimation accuracy without affecting the existing bandwidth estimation algorithm.
[0052] In some embodiments, the objective function is a joint probability distribution function based on the estimated packet loss rate. The objective function can be calculated according to the candidate bandwidth estimate. Specifically, the first-order derivative and the second-order derivative of the objective function with respect to the candidate bandwidth estimate are obtained based on the first-order derivative of the estimated packet loss rate with respect to the candidate bandwidth estimate, the first-order derivative and the second-order derivative of the objective function with respect to the estimated packet loss rate. Thus, through the derivative relationship, the objective function can be calculated based on the candidate bandwidth estimate. The above calculation method can also be directly modified to the corresponding interface of LossBasedBweV2 (LossBasedBweV2::GetDerivatives interface).
[0053] In some specific implementations of the above calculation method, the candidate bandwidth estimate may include the persistent packet loss rate inherent_loss and the receiver bandwidth estimate loss_limited_bandwidth updated by the receiver based on the persistent packet loss rate. The estimated packet loss rate loss_pro of a single packet can be calculated according to the following formula:
[0054]
[0055] where Sending_rate is the sending code rate within the corresponding statistical time, and Sending_rate can be stored in the LossBasedBweV2::observations_ array. Each element in the array approximately corresponds to the statistics within the observation_duration_lower_bound time.
[0056] The derivatives of loss_pro with respect to inherent_loss and loss_limited_bandwidth are respectively:
[0057]
[0058]
[0059] The objective function J(loss_pro) obtained based on the joint probability distribution of the estimated packet loss rate is:
[0060]
[0061] where N loss(i) is the number of lost packets within the corresponding statistical time. N recv(i) is the number of received packets within the corresponding statistical time. N loss(i) and N recv(i) can be stored in the LossBasedBweV2::observations_ array in the same way as sending_rate.
[0062] The first and second derivatives of the objective function with respect to loss_pro are as follows:
[0063]
[0064]
[0065] According to the chain rule, the first and second derivatives of the objective function with respect to inherent_loss and loss_limited_bandwidth can be obtained:
[0066]
[0067]
[0068]
[0069]
[0070] Based on the above formula, the calculation of the objective function based on the candidate bandwidth estimation can be realized.
[0071] In some embodiments, the candidate bandwidth estimation is iteratively updated using the coordinate descent method and the Newton iteration method. During the iterative update process of the candidate bandwidth estimation, the continuous packet loss rate of the candidate bandwidth estimation and the receiver bandwidth estimation are alternately updated to gradually maximize the objective function.
[0072] Thus, in the iterative process of the present application, the receiver bandwidth estimation can be updated based on the continuous packet loss rate, and the continuous packet loss rate can be updated based on the receiver bandwidth estimation. This embodiment can more accurately estimate the continuous packet loss rate inherent_loss and solve the problem of bandwidth estimation in the continuous packet loss scenario.
[0073] In some embodiments, during the iterative update process of the candidate bandwidth estimation, when the value of the current objective function is less than the value of the previous objective function, the iterative update process is exited. Since the iterative update gradually maximizes the objective function, if the objective function decreases, the update process can be exited in a timely manner to avoid redundant objective function calculations.
[0074] In some embodiments, the delay-based bandwidth estimation is obtained by using a delay-based estimation method. Calculating the delay-based bandwidth estimation according to the transmission packet feedback information includes: adjusting the input bitrate of the delay-based estimation method according to the continuous packet loss rate of the previous best bandwidth estimation. Specifically, in the case of a high packet loss rate, the input bitrate acknowledged_bitrate of the delay-based estimation method can only represent the bitrate size received by the receiving end. Due to the influence of continuous packet loss, the received bitrate is smaller than the transmitted bitrate. Therefore, in this embodiment, the input bitrate is corrected by the continuous packet loss rate inherent_loss of the previous best bandwidth estimation to estimate the transmitted bitrate. For example, the input bitrate can be corrected to: acknowledged_bitrate / (1–inhernt_loss). This application is not limited thereto, and other transmitted bitrate estimation methods and input bitrate correction methods are within the protection scope of this application.
[0075] In some embodiments, the best bandwidth estimation limits the upper limit of the bandwidth estimation for the sender to update the bandwidth. Specifically, if the bandwidth estimated in LossBasedBweV2 is directly used as the output of SendSideBandwidthEstimation (sender bandwidth estimation), the bandwidth estimation obtained in this way may have large fluctuations, which will affect the stability of the entire system. For this reason, this embodiment combines the original algorithm in SendSideBandwidthEstimation to adjust the sender to update the bandwidth. In the original algorithm, the SendSideBandwidthEstimation::UpdateEstimate function adjusts the bandwidth according to the relationship between the real-time packet loss rate and the threshold. In this embodiment, the sender can update the bandwidth by the difference between the real-time packet loss rate and inherent_loss, and the adjusted sender bandwidth update will not take effect directly. Instead, it will be used as one of the candidate bandwidths to re-evaluate and calculate the upper limit of the bandwidth estimate in LossBasedBweV2, and in turn limit the sender to update the bandwidth. Finally, it will be used as the final estimation result of SendSideBandwidthEstimation. In this embodiment, LossBasedBweV2 can only be responsible for the estimation of inherent_loss and the determination of the upper limit of the bandwidth estimate based on packet loss. The SendSideBandwidthEstimation::UpdateEstimate function can be called periodically or when the packet loss rate is updated. Further, the best bandwidth estimation and the delay-based bandwidth estimation can simultaneously limit the upper limit of the sender to update the bandwidth.
[0076] The following refers to Figure 2 ,Figure 2 The flowchart of the bandwidth estimation method according to a specific embodiment of the present application is shown. Figure 2 First, the transmission packet feedback information is received. Specifically, it can be implemented through TransportPacketFeedback, which is the entry point for the revelation program to process the received transmission packet feedback information. The time interval of the transmission packet feedback information can be set as needed. For example, it can be 100 milliseconds.
[0077] Step S201: Adjust the input bit rate of the delay-based estimation method according to the continuous packet loss rate of the previous best bandwidth estimation, and calculate the delay-based bandwidth estimation.
[0078] Step S202: Obtain the previous best bandwidth estimation.
[0079] Step S203: Obtain the updated bandwidth of the sender based on the packet loss rate updated by the sender.
[0080] Step S204: Update the candidate bandwidth estimation according to the delay-based bandwidth estimation, the updated bandwidth, and the previous best bandwidth estimation.
[0081] Step S205: Determine whether to end the iteration.
[0082] If the determination in step S205 is yes, then execute step S210: Adjust the input bit rate of the delay-based estimation method according to the continuous packet loss rate of the previous best bandwidth estimation, and calculate the delay-based bandwidth estimation.
[0083] If the determination in step S205 is no, then execute step S206: Use the coordinate descent method and the Newton iteration method to iteratively update the candidate bandwidth estimation.
[0084] Step S207: Calculate the objective function.
[0085] Step S208: Determine whether the objective function is greater than the maximum objective function.
[0086] If the determination in step S208 is yes, then execute step S209: Record the current objective function as the value of the maximum objective function, and record the corresponding candidate bandwidth estimation. After step S209, execute step S205.
[0087] If the determination in step S208 is no, then execute step S205.
[0088] After receiving the transmission feedback information, step S211 can also be executed: Update the statistical value. The updated statistical value can be used in the iterative update of the candidate bandwidth estimation and the calculation of the objective function. The statistical value can include the number of lost packets N within the corresponding statistical time loss(i) , and the number of received packets N within the corresponding statistical time recv(i), values such as the sending rate sending_rate within the corresponding statistical time are stored in the LossBasedBweV2::observations_ array.
[0089] Thus, this embodiment can more accurately estimate the inherent loss of continuous packet loss, and at the same time does not affect the original bandwidth estimation scheme in WebRTC, solving the problem of bandwidth estimation in the scenario of continuous packet loss.
[0090] The above exemplarily shows multiple implementation manners of the present application. The present application is not limited thereto. In each implementation manner, the addition, omission, and sequence change of steps are all within the protection scope of the present application; each implementation manner can be implemented alone or in combination.
[0091] Next, in combination with Figure 3 Describe the bandwidth estimation device 300 provided by the present application. The bandwidth estimation device 300 includes a previous best bandwidth estimation acquisition module 310, a delay-based bandwidth estimation calculation module 320, a sender updated bandwidth acquisition module 330, an optimal candidate bandwidth estimation determination module 340, and a current best bandwidth estimation determination module 350.
[0092] The previous best bandwidth estimation acquisition module 310 is configured to acquire the previous best bandwidth estimation;
[0093] The delay-based bandwidth estimation calculation module 320 is configured to calculate the delay-based bandwidth estimation according to the transmission packet feedback information;
[0094] The sender updated bandwidth acquisition module 330 is configured to acquire the sender updated bandwidth updated by the sender based on the packet loss rate;
[0095] The optimal candidate bandwidth estimation determination module 340 is configured to iteratively update the candidate bandwidth estimation according to the delay-based bandwidth estimation, the updated bandwidth, and the previous best bandwidth estimation, and determine the optimal candidate bandwidth estimation from the candidate bandwidth estimations based on the objective function calculated during the iteration process; and
[0096] The current best bandwidth estimation determination module 350 is configured to use the optimal bandwidth estimation as the current best bandwidth estimation.
[0097] In the bandwidth estimation device provided by the present application, compared with the method of using only delay-based bandwidth estimation or updated bandwidth for bandwidth estimation, or selecting a bandwidth from multiple candidate bandwidths to calculate the objective function, since the single bandwidth estimation has a relatively single estimation method, in actual use, problems such as valuation fluctuations and poor valuation accuracy are likely to occur. The present application iteratively updates the candidate bandwidth estimation based on the delay-based bandwidth estimation, updated bandwidth, and the previous best bandwidth estimation. Based on the bandwidth estimations obtained using different estimation methods, the advantages of multiple bandwidth estimations can be integrated to improve the bandwidth estimation accuracy; using an iterative method to determine the current best bandwidth estimation based on the previous best bandwidth estimation can ensure that the valuation is relatively stable.
[0098] The bandwidth estimation device 300 of the present application can be implemented in the form of software, hardware, firmware, or any combination thereof. Figure 3 Only the bandwidth estimation device 300 provided by the present application is schematically shown. Without departing from the concept of the present application, the splitting, merging, and addition of modules are all within the protection scope of the present application.
[0099] In an exemplary embodiment of the present disclosure, a computer-readable storage medium is further provided, on which a computer program is stored. When the program is executed by, for example, a processor, the steps of the bandwidth estimation method described in any one of the above embodiments can be implemented. In some possible implementation manners, various aspects of the present application can also be implemented in the form of a program product, which includes program code. When the program product runs on a terminal device, the program code is used to cause the terminal device to execute the steps described in the bandwidth estimation method part of the present specification according to various exemplary embodiments of the present application.
[0100] Reference Figure 4 As shown, a program product 800 for implementing the above method according to an embodiment of the present application is described. It can be a portable compact disc read-only memory (CD-ROM) and includes program code, and can run on a terminal device, such as a personal computer. However, the program product of the present application is not limited thereto. In this document, the readable storage medium can be any tangible medium that contains or stores a program, and the program can be used by or combined with an instruction execution system, apparatus, or device.
[0101] The program product may employ any combination of one or more readable media. The readable media may be a readable signal medium or a readable storage medium. A readable storage medium may be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination of the foregoing. More specific examples (a non-exhaustive list) of the readable storage medium include: an electrical connection having one or more wires, a portable disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.
[0102] The computer-readable storage medium may include a data signal propagated in a baseband or as part of a carrier wave, in which the readable program code is carried. Such a propagated data signal may take various forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination of the foregoing. The readable storage medium may also be any readable medium other than the readable storage medium, which can send, propagate, or transmit a program for use by or in connection with an instruction execution system, apparatus, or device. The program code contained on the readable storage medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
[0103] The program code for performing the operations of this application may be written in any combination of one or more programming languages, including object-oriented programming languages such as Java, C++, etc., and also including conventional procedural programming languages such as the "C" language or similar programming languages. The program code may be executed entirely on the tenant computing device, partially on the tenant device, executed as a stand-alone software package, partially on the tenant computing device and partially on a remote computing device, or entirely on a remote computing device or server. In the case of a remote computing device, the remote computing device may be connected to the tenant computing device through any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computing device (e.g., by using an Internet service provider to connect through the Internet).
[0104] In an exemplary embodiment of the present disclosure, an electronic device is further provided. The electronic device may include a processor and a memory for storing executable instructions of the processor. Wherein, the processor is configured to execute the steps of the bandwidth estimation method described in any one of the foregoing embodiments by executing the executable instructions.
[0105] Those skilled in the art can understand that various aspects of the present application can be implemented as a system, a method, or a program product. Therefore, various aspects of the present application can be specifically implemented in the following forms, namely: a complete hardware implementation, a complete software implementation (including firmware, microcode, etc.), or an implementation combining hardware and software aspects, which can be collectively referred to herein as "circuitry", "module", or "system".
[0106] Reference is now made to Figure 5 to describe the electronic device 600 according to this embodiment of the present application. Figure 5 The illustrated electronic device 600 is merely an example and should not impose any limitation on the functions and scope of use of the embodiments of the present application.
[0107] As Figure 5 shown, the electronic device 600 is presented in the form of a general-purpose computing device. The components of the electronic device 600 may include, but are not limited to: at least one processing unit 610, at least one storage unit 620, a bus 630 connecting different system components (including the storage unit 620 and the processing unit 610), a display unit 640, etc.
[0108] Among them, the storage unit stores program code, and the program code can be executed by the processing unit 610, so that the processing unit 610 executes the steps according to various exemplary embodiments of the present application described in the above bandwidth estimation method section of this specification. For example, the processing unit 610 can execute the steps as shown in Figure 1 herein.
[0109] The storage unit 620 may include a readable medium in the form of a volatile storage unit, such as a random access storage unit (RAM) 6201 and / or a cache storage unit 6202, and may further include a read-only storage unit (ROM) 6203.
[0110] The storage unit 620 may further include a program / utility 6204 having a set (at least one) of program modules 6205. Such program modules 6205 include, but are not limited to: an operating system, one or more application programs, other program modules, and program data. Each or some combination of these examples may include the implementation of a network environment.
[0111] The bus 630 may represent one or more of several types of bus structures, including a storage unit bus or a storage unit controller, a peripheral bus, a graphics acceleration port, a processing unit, or a local bus using any of the various bus structures.
[0112] The electronic device 600 can also communicate with one or more external devices 700 (such as a keyboard, a pointing device, a Bluetooth device, etc.), and can also communicate with one or more devices that enable a tenant to interact with the electronic device 600, and / or communicate with any device (such as a router, a modem, etc.) that enables the electronic device 600 to communicate with one or more other computing devices. Such communication can be carried out through the input / output (I / O) interface 650. Moreover, the electronic device 600 can also communicate with one or more networks (such as a local area network (LAN), a wide area network (WAN), and / or a public network, such as the Internet) through the network adapter 660. The network adapter 660 can communicate with other modules of the electronic device 600 through the bus 630. It should be understood that, although not shown in the figure, other hardware and / or software modules can be used in combination with the electronic device 600, including but not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data backup storage systems, etc.
[0113] Through the description of the above embodiments, those skilled in the art can easily understand that the exemplary embodiments described herein can be implemented by software, or can be implemented by a combination of software and necessary hardware. Therefore, the technical solutions according to the embodiments of the present disclosure can be embodied in the form of a software product, which can be stored in a non-volatile storage medium (which can be a CD-ROM, a USB flash drive, a mobile hard disk, etc.) or on a network, including several instructions to enable a computing device (which can be a personal computer, a server, or a network device, etc.) to execute the above bandwidth estimation method according to the embodiments of the present disclosure.
[0114] Thus, it can be seen that the solution provided by the present application has the following advantages compared with the prior art:
[0115] Compared with the method of estimating bandwidth by using only the delay-based bandwidth estimation or updating the bandwidth, or calculating the objective function by selecting a bandwidth from multiple candidate bandwidths, since the single bandwidth estimation has a relatively single estimation method, in actual use, problems such as valuation fluctuations and poor valuation accuracy are likely to occur. The present application iteratively updates the candidate bandwidth estimation according to the delay-based bandwidth estimation, the updated bandwidth, and the previous best bandwidth estimation. Based on the bandwidth estimations obtained by using different estimation methods, the advantages of multiple bandwidth estimations can be integrated to improve the bandwidth estimation accuracy; using an iterative method to determine the current best bandwidth estimation based on the previous best bandwidth estimation can ensure that the valuation is relatively stable.
[0116] Other embodiments of the present disclosure will be readily apparent to those skilled in the art upon consideration of the specification and practice of the invention disclosed herein. This application is intended to cover any variations, uses, or adaptations of the present disclosure that follow the general principles of the present disclosure and include known common general knowledge or conventional technical means in the technical field not disclosed in the present disclosure. The specification and examples are only to be considered as exemplary, and the true scope and spirit of the present disclosure are pointed out by the appended claims.
Claims
1. A bandwidth estimation method, characterized in that, it includes: Obtaining the previous best bandwidth estimate; Calculating a delay-based bandwidth estimate according to the transmission packet feedback information, where the delay-based bandwidth estimate is estimated by a delay-based estimation method, and the calculating of the delay-based bandwidth estimate according to the transmission packet feedback information includes: adjusting the input bit rate of the delay-based estimation method according to the continuous packet loss rate of the previous best bandwidth estimate; Obtaining the updated bandwidth of the sender updated based on the packet loss rate; Iteratively updating the candidate bandwidth estimate according to the delay-based bandwidth estimate, the updated bandwidth, and the previous best bandwidth estimate, and determining the optimal candidate bandwidth estimate from the candidate bandwidth estimates based on the objective function calculated during the iteration process; and Taking the optimal candidate bandwidth estimate as the current best bandwidth estimate.
2. The bandwidth estimation method according to claim 1, characterized in that, the objective function is a joint probability distribution function based on the estimated packet loss rate, and the objective function is calculated based on the candidate bandwidth estimate, the first derivative and the second derivative of the objective function with respect to the candidate bandwidth estimate, wherein, the first derivative of the objective function with respect to the candidate bandwidth estimate is obtained by conversion according to the first derivative of the estimated packet loss rate with respect to the candidate bandwidth estimate and the first derivative of the objective function with respect to the estimated packet loss rate; the second derivative of the objective function with respect to the candidate bandwidth estimate is obtained by conversion according to the first derivative of the estimated packet loss rate with respect to the candidate bandwidth estimate and the second derivative of the objective function with respect to the estimated packet loss rate.
3. The bandwidth estimation method according to claim 1, characterized in that, the candidate bandwidth estimate is iteratively updated by the coordinate descent method and the Newton iteration method, the candidate bandwidth estimate includes the continuous packet loss rate and the receiver bandwidth estimate updated by the receiver based on the continuous packet loss rate, and during the iterative update process of the candidate bandwidth estimate, the continuous packet loss rate and the receiver bandwidth estimate of the candidate bandwidth estimate are alternately updated.
4. The bandwidth estimation method according to claim 1, characterized in that, during the iterative update process of the candidate bandwidth estimate, when the value of the current objective function is less than the value of the previous objective function, the iterative update process is exited.
5. The bandwidth estimation method according to claim 1, characterized in that, the best bandwidth estimate limits the upper limit of the bandwidth estimate for updating the sender bandwidth.
6. The bandwidth estimation method according to claim 1, characterized in that, the bandwidth estimation method is implemented based on SendSideBandwidthEstimation and LossBasedBweV2 of webrtc.
7. A bandwidth estimation device, characterized in that, it includes: A previous best bandwidth estimate acquisition module configured to acquire a previous best bandwidth estimate; A delay-based bandwidth estimation calculation module, configured to calculate a delay-based bandwidth estimation according to transmission packet feedback information, where the delay-based bandwidth estimation is obtained by using a delay-based estimation method, and the calculating the delay-based bandwidth estimation according to the transmission packet feedback information includes: adjusting an input bit rate of the delay-based estimation method according to a continuous packet loss rate of the previous best bandwidth estimation; A sender update bandwidth acquisition module, configured to acquire a sender update bandwidth updated by the sender based on a packet loss rate; An optimal candidate bandwidth estimation determination module, configured to iteratively update a candidate bandwidth estimation according to the delay-based bandwidth estimation, the updated bandwidth, and the previous best bandwidth estimation, and determine an optimal candidate bandwidth estimation from the candidate bandwidth estimations based on an objective function calculated during the iteration process; and A current best bandwidth estimation determination module, configured to use the optimal candidate bandwidth estimation as the current best bandwidth estimation.
8. An electronic device, characterized in that, the electronic device includes: a processor; a memory, on which a computer program is stored, and when the computer program is run by the processor, it executes: the bandwidth estimation method according to any one of claims 1 to 6.
9. A storage medium, characterized in that, a computer program is stored on the storage medium, and when the computer program is run by a processor, it executes: the bandwidth estimation method according to any one of claims 1 to 6.
Citation Information
Patent Citations
Network congestion control method, device and terminal equipment
CN109587073A
Receiver, communication system, available bandwidth estimation method, and storage medium in which program is stored
US20200389381A1