WO2018058711A1 - 一种带宽自适应控制***及方法 - Google Patents
一种带宽自适应控制***及方法 Download PDFInfo
- Publication number
- WO2018058711A1 WO2018058711A1 PCT/CN2016/102467 CN2016102467W WO2018058711A1 WO 2018058711 A1 WO2018058711 A1 WO 2018058711A1 CN 2016102467 W CN2016102467 W CN 2016102467W WO 2018058711 A1 WO2018058711 A1 WO 2018058711A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- bandwidth
- preset value
- delay
- current time
- packet loss
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0896—Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0823—Errors, e.g. transmission errors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/65—Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
Definitions
- the present invention relates to the field of communications, and more particularly to a bandwidth adaptive control system and method.
- the existing bandwidth adaptive algorithm automatically adjusts the bandwidth according to parameters such as packet loss rate, delay, and jitter of the RTCP feedback.
- these algorithms are simple and use a single information.
- the bandwidth is automatically adjusted. The effect is not ideal, there will be problems such as stagnation, picture screen, sound discontinuity, etc., which seriously affects the wide application of audio and video services.
- the invention provides a bandwidth adaptive control system, which can provide a high-precision bandwidth estimation value in a complex network situation, effectively perform automatic bandwidth adjustment, and ensure transmission of network signals.
- the bandwidth adaptive control system provided by the present invention includes a control device, and the bandwidth adaptive control system includes a control device, and the control device includes a sending end, and the sending end includes:
- a determining module configured to determine whether the packet loss rate and the delay meet the preset condition, where the preset condition includes the packet loss rate > a first preset value and the delay > a second preset value;
- the packet rate, rtt represents the delay
- k and b are constant, and satisfies 1>(1-k*p)>0
- the bandwidth of the current time is estimated according to the second bandwidth formula
- the second bandwidth formula is: Where X is the estimated bandwidth of the current time, s is the average size of multiple rtp packets, R is the delay, p is the packet loss rate, b is a TCP acknowledgement every b rt packets, and RT0 is the TCP timeout.
- the average value of the estimated bandwidths A p and X of the current time is set to the bandwidth A t of the current time.
- the adjusting module is further configured to: when the difference between the estimated bandwidths Ap and X at the current time is greater than the first preset threshold, take the smaller of the bandwidths Ap and X of the current time. The value is set to the bandwidth A t of the current time.
- the bandwidth adaptive control system further includes an encoder, the encoder including:
- a control module configured to determine the bandwidth of the current time T A A bandwidth on a time point t-1 if the difference between the value is greater than a second preset threshold when the second value is greater than the preset threshold, according to the current time
- the bandwidth updates the target bit rate of the encoder.
- the preset condition further includes a third preset value ⁇ the packet loss rate ⁇ the first preset value, and the delay> the second preset value, the packet loss rate> Determining the first preset value and the fourth preset value ⁇ the delay time ⁇ the second preset value, when the determining module determines the third preset value ⁇ the packet loss rate ⁇ the first a preset value and the delay > the second preset value, or determining the packet loss rate > the first preset value and the fourth preset value ⁇ the delay period
- the preset condition further includes: the packet loss rate ⁇ the third preset value and the delay ⁇ the fourth preset value, when the determining module determines that the packet loss rate is ⁇
- control device further includes:
- the receiving end is configured to feed back the RTCP packet to the sending end, where the RTCP packet includes the packet loss rate and the time delay;
- the sending end further includes an obtaining module, where the acquiring module is configured to receive the RTCP packet, and obtain the packet loss rate and the delay from the RTCP packet.
- control module of the encoder is further configured to calculate a ratio ⁇ of a current target code rate to a current time bandwidth, determine a value range in which the ratio ⁇ is located, and query a numerical range corresponding to the ratio ⁇ .
- the encoder further includes a parameter adjustment module, configured to determine a target code rate range in which the adjusted target code rate is located, and adjust and distinguish according to a target code rate range in which the adjusted target code rate is located Rate parameter, frame rate parameter.
- a parameter adjustment module configured to determine a target code rate range in which the adjusted target code rate is located, and adjust and distinguish according to a target code rate range in which the adjusted target code rate is located Rate parameter, frame rate parameter.
- the invention also provides a bandwidth adaptive control method, which can provide a high-precision bandwidth estimation value in a complex network situation, effectively perform automatic bandwidth adjustment, and ensure transmission of network signals.
- the bandwidth adaptive control method provided by the present invention includes:
- the preset condition includes the packet loss rate > a first preset value and the delay > a second preset value
- a p (1 - k * p) * A p - 1 - (rtt * b)
- a p represents the estimated bandwidth at the current time
- a p-1 represents the bandwidth of the previous moment
- p represents the packet loss rate
- rtt represents the delay
- k and b is a constant and satisfies 1>(1-k*p)>0
- a p ⁇ A p-1 estimates the bandwidth of the current time according to the second bandwidth formula, which is:
- X is the estimated bandwidth of the current time
- s is the average size of multiple rtp packets
- R is the delay
- p is the packet loss rate
- b is a TCP acknowledgement every b rt packets
- RT0 is the TCP timeout.
- a p-bandwidth estimate is determined at the current time, the magnitude of the difference between X, when the difference between the estimated bandwidth of A p at the current time, X is less than a first preset threshold, taking the The average of the estimated bandwidths A p and X at the current time is set to the bandwidth A t at the current time.
- the bandwidth adaptation method further includes:
- the smaller value of the bandwidths A p and X at the current time is set as the bandwidth A t of the current time.
- the bandwidth adaptation method further includes:
- the bandwidth adaptation method further includes:
- the bandwidth adaptation method further includes:
- the bandwidth adaptation method further includes:
- the bandwidth adaptation method further includes:
- the bandwidth adaptation method further includes:
- the broadband adaptive control system and method provided by the invention utilizes packet loss rate information and delay information for bandwidth estimation, can obtain a more accurate bandwidth budget, and can provide high-precision bandwidth estimation even in complex network situations. Value, effectively adjust the bandwidth automatically to ensure the transmission of network signals.
- the broadband adaptive control system and method provided by the invention can also calculate the ratio of the current target code rate of the encoder to the current estimated bandwidth, and adjust the target code rate according to the numerical range in which the ratio is located, according to the adjusted target code rate.
- the resolution parameter and the frame rate parameter are adjusted to ensure that the encoded data of the audio and video can be transmitted under a certain bandwidth, thereby improving the reliability of the encoded data transmission.
- FIG. 1 is an application environment diagram of a bandwidth adaptive control system according to an embodiment of the present invention
- FIG. 2 is a functional block diagram of a transmitting end of a control device according to Embodiment 2 of the present invention.
- FIG. 3 is a functional block diagram of a transmitting end of a control device according to Embodiment 3 of the present invention.
- FIG. 4 is a functional block diagram of a fourth encoder according to an embodiment of the present invention.
- FIG. 5 is a functional block diagram of a fifth encoder according to an embodiment of the present invention.
- FIG. 6 is a flowchart of a broadband adaptive control method according to Embodiment 6 of the present invention.
- FIG. 7 is a flowchart of a broadband adaptive control method according to Embodiment 7 of the present invention.
- FIG. 8 is a flowchart of a broadband adaptive control method according to an eighth embodiment of the present invention.
- FIG. 1 is an application environment diagram of a bandwidth adaptive control system according to an embodiment of the present invention.
- the bandwidth adaptive control system shown in FIG. 1 the transmitting end 10 of the control device, the receiving end 20 of the control device, and the encoder 1, the data communication between the transmitting end 10 and the receiving end 20, and the encoder 1 and the transmitting end Data communication is carried out.
- FIG. 2 is a functional block diagram of a transmitting end of a control device according to Embodiment 2 of the present invention.
- the transmitting end 10 of the control device shown in FIG. 2 includes a judging module 103 and an adjusting module 105.
- the functional modules of the control device of this embodiment are described in detail below.
- the determining module 103 determines whether the packet loss rate and the delay meet the preset condition, wherein the preset condition includes a packet loss rate > a first preset value and a delay > a second preset value.
- the second bandwidth formula is: Where X is the estimated bandwidth of the current time, s is the average size of multiple rtp packets, R is the delay, p is the packet loss rate, b is a TCP acknowledgement every b rt packets, and RT0 is the TCP timeout.
- transmission time and determines the bandwidth of the estimated time of the current a p, the magnitude of the difference between X, when the difference between the current time estimate the bandwidth of a p, X is smaller than the first predetermined threshold value, take the current
- the average of the estimated bandwidths A p and X at the moment is set to the bandwidth A t at the current time.
- the adjustment module 105 takes the smaller value of the bandwidth A p and X at the current time as the current value.
- the bandwidth of the moment A t is the bandwidth of the moment A t .
- the adjustment module 105 calculates the estimated bandwidth A p based on the third bandwidth formula.
- the specific process is as follows: when the judging module judges the third pre- Set the value ⁇ packet rate ⁇ first preset value and delay> second preset value, or judge the packet loss rate>first preset value and the fourth preset value ⁇ delay ⁇ second preset value
- the adjustment module 105 calculates the estimated bandwidth A p based on the fourth bandwidth formula.
- the specific process is as follows: the determining module 103 determines whether the packet loss rate and the delay meet the preset.
- FIG. 3 is a functional block diagram of a transmitting end of a control device according to Embodiment 3 of the present invention.
- the transmitting end 10 of the control device includes an obtaining module 101, a determining module 103, and an adjusting module 105.
- the following describes the function modules.
- the obtaining module 101 receives the RTCP packet sent from the receiving end 20, and obtains the packet loss rate and the delay from the RTCP packet, where the RTCP packet includes the current packet loss rate information and the delay information.
- the functions of the determining module 103 and the adjusting module 105 are the same as those of the determining module 103 and the adjusting module 105 shown in FIG. 2, and details are not described herein again.
- FIG. 4 is a functional block diagram of a fourth encoder according to an embodiment of the present invention.
- the encoder 1 shown in FIG. 4 includes a control module 2.
- the control module 2 determines the bandwidth of the current time T A A bandwidth on a time point t-1 if the difference between the value is greater than a second preset threshold, when greater than a second predetermined threshold value, the encoder according to the bandwidth update the current time Target code rate.
- FIG. 5 is a functional block diagram of a fifth encoder according to an embodiment of the present invention.
- the encoder shown in 5 includes a control module 2 and a parameter adjustment module 3.
- the control module 2 of the encoder 1 calculates the ratio ⁇ of the current target code rate to the current time bandwidth, determines the numerical range in which the ratio ⁇ is located, and queries the target rate adjustment formula corresponding to the numerical range in which the ratio ⁇ is located, according to the target code rate adjustment formula.
- the formula set for the ⁇ 0.5 interval is: the target code rate is equal to 0.5 multiplied by the current estimated bandwidth;
- control module 2 adjusts the current target code rate to a value obtained by multiplying 0.5 by the current estimated bandwidth
- control module 2 adjusts the current target code rate to a value obtained by multiplying the current estimated bandwidth by 0.55;
- control module 2 adjusts the current target code rate to a value obtained by multiplying 0.65 by the current estimated bandwidth
- control module 2 adjusts the current target code rate to a value obtained by multiplying 0.75 by the current estimated bandwidth
- control module 2 adjusts the current target code rate to a value obtained by multiplying 0.85 by the estimated bandwidth of the current time;
- control module 2 adjusts the current target code rate to a value obtained by multiplying 0.9 by the estimated bandwidth of the current time.
- the parameter adjustment module 3 of the encoder 1 determines the target code rate range in which the adjusted target code rate is located, and adjusts the resolution parameter and the frame rate parameter according to the target code rate range in which the adjusted target code rate is located. For example, when the target code rate is greater than 2048 kbps, the parameter adjustment module 3 adjusts the resolution to 1080P, the frame rate to 25 or 30 frames/second, and when the target code rate is less than or equal to 2048 kbps.
- the parameter adjustment module 3 When the target code rate is greater than 1024 kbps, the parameter adjustment module 3 will distinguish The rate adjustment is 720P, the frame rate is adjusted to 25 or 30 frames/second, and when the target code rate is less than or equal to 1024 kbps and the target code rate is greater than 512 kbps, the parameter adjustment module 3 adjusts the resolution to 4 CIF/D1/VGA. Adjusting the frame rate to 25 or 30 frames/second.
- the parameter adjustment module 3 adjusts the resolution to CIF, the frame rate to 25 or 30 frames/second, when the target code rate is less than or equal to 128 kbps, the parameter adjustment module 3 adjusts the resolution to QCIF and adjusts the frame rate to 15 or 20 frames/second.
- the present invention also provides a bandwidth adaptive control method, which is described in detail below.
- FIG. 6 is a flowchart of a bandwidth adaptive control method according to Embodiment 6 of the present invention.
- step S601 the transmitting end 10 receives the RTCP message transmitted from the receiving end.
- step S602 the obtaining module 101 of the transmitting end 10 analyzes information such as RTT, packet loss rate p, packet size, and jitter from the RTCP packet.
- step S603 the determination module 103 of the receiving end 10 determines whether the packet loss rate p is zero.
- step S607 when the packet loss rate p is zero, the estimated bandwidth in the REMB message is selected as the predicted bandwidth, that is, the bandwidth estimated by the receiving end 10 according to the Kalman filter, and the process proceeds to step 612.
- step 611 the adjustment module 105 determines whether the predicted bandwidth selected in step S608 is different from the current bandwidth. When not, when the change occurs, the bandwidth is updated and the target code rate of the encoder is adjusted.
- step S604 when the packet loss rate p is not zero, the adjustment module 105 calculates the estimated bandwidth Ap based on the first bandwidth formula. Specifically, the calculation process is as follows: the determining module 103 determines whether the packet loss rate and the delay meet the preset condition.
- the preset condition includes a packet loss rate > a first preset value and a delay > a second preset value, and the adjustment module 105 determines that the packet loss rate > the first preset value and the delay > the second preset value
- Estimating the current time bandwidth according to the first bandwidth formula Ap (1-k*p)*Ap-1-(rtt*b), where Ap represents the estimated bandwidth of the current time, and Ap-1 represents the previous one.
- the predicted bandwidth at the time, p represents the packet loss rate, rtt represents the delay, k and b are constant, and satisfies 1>(1-k*p)>0, and Ap ⁇ Ap-1.
- step S605 when the packet loss rate p is not zero, the adjustment module 105 calculates the estimated bandwidth based on the second bandwidth formula.
- the second bandwidth formula is:
- X is the estimated bandwidth of the current time
- s is the average size of multiple rtp packets
- R is the delay
- p is the packet loss rate
- b is a TCP acknowledgement every b rt packets
- RT0 is the TCP timeout. Time passed.
- step S604 when the packet loss rate p is not zero, the adjustment module 105 further calculates the estimated bandwidth Ap based on the third bandwidth formula.
- the specific process is as follows: when the determining module determines the third preset value ⁇ The packet loss rate ⁇ the first preset value and the delay>the second preset value, or the packet loss rate>the first preset value and the fourth preset value ⁇ delay ⁇ the second preset value are adjusted
- step S604 when the packet loss rate p is not zero, the adjustment module 105 further calculates the estimated bandwidth A p based on the fourth bandwidth formula.
- the specific process is as follows: the determining module 103 determines the packet loss rate and time. Whether the delay condition satisfies the preset condition, the preset condition further includes a packet loss rate ⁇ the third preset value and the delay time ⁇ the fourth preset value, when the determining module determines the packet loss rate ⁇ the third preset value and the delay ⁇
- a p-1 represents the estimated bandwidth at the previous moment
- p represents the packet loss rate
- rtt represents the delay
- k and b are constant, satisfies k>1, b>1, and A p >A p-1 .
- step S606 the adjustment module 105 determines the magnitude of the difference between the estimated bandwidths Ap, X at the current time. Specifically, it is judged whether or not the predicted bandwidth Ap, X satisfies the formula (Ap-X) * 2 / (Ap + X) > 6%.
- step S608 when the difference between the estimated bandwidths Ap and X of the current time is greater than the first preset threshold, the adjustment module 105 sets the smaller value of the bandwidths Ap and X at the current time as the current time. the bandwidth of a t. Specifically, when A p and X satisfy the formula (Ap-X)*2/(Ap+X)>6%, the smaller value of the bandwidths A p and X at the current time is set as the bandwidth A t of the current time. .
- step S609 when the difference between the estimated bandwidths Ap and X of the current time is less than the first preset threshold, the average value of the estimated bandwidths Ap and X at the current time is set as the bandwidth A of the current time. t . Specifically, when A p and X do not satisfy the formula (Ap-X)*2/(Ap+X)>6%, the average value in the bandwidths A p and X at the current time is set as the bandwidth A t at the current time. .
- step S610 the encoder control module 2 determines a current time T A bandwidth A bandwidth on a time difference between t-1 is greater than a second predetermined threshold value. Specifically, it is judged whether
- step S611 when greater than the second preset threshold, the control module 2 of the encoder 1 updates the target code rate of the encoder according to the bandwidth of the current time. Specifically, when
- FIG. 7 is a flowchart of a bandwidth adaptive control method according to Embodiment 7 of the present invention.
- step S701 the obtaining module 101 of the receiving end 10 acquires the RTCP packet sent by the generating terminal 20, wherein the RTCP packet includes the current packet loss rate information, and the delay information includes the current packet loss rate information.
- the extension module receives the current packet loss rate p and the delay rtt from the RTCP packet.
- step S703 the determination module 103 of the receiving end 10 determines the condition that the packet loss rate p and the delay rrt satisfy.
- step S705 the determining module determines that the packet loss rate > the first preset value and the delay > the second preset value, then proceeds to step S713, for example, if the preset condition is p>8%&&rtt>8 milliseconds If it is determined in step S705 that the acquisition packet loss rate p>8% and the acquired delay rtt>8 milliseconds, the process proceeds to step S713.
- step S707 the determining module 103 determines the third preset value ⁇ the packet loss rate ⁇ the first preset value and the delay>the second preset value, or determines the packet loss rate>the first preset value and the fourth If the preset value ⁇ delay ⁇ the second preset value, the process proceeds to step S415. For example, it is determined in step S707 that 2% ⁇ current packet loss rate p ⁇ 8% and current delay rtt > 8 milliseconds, or currently lost. When the packet rate p>8% and 4 milliseconds ⁇ current delay rtt ⁇ 8 milliseconds, the flow proceeds to step S715.
- step S709 the determining module 103 determines that the packet loss rate ⁇ the third preset value and the delay ⁇ the fourth preset value, then proceeds to step S717, for example, determines the current packet loss rate p ⁇ 2% and the current time. If the delay rrt ⁇ 4 ms, the process proceeds to step S717.
- step S711 it is determined that the packet loss rate and the delay do not satisfy the condition, and the process proceeds to step S719, where the packet loss rate and the delay do not satisfy the condition, that is, the packet loss rate > the first preset value and the delay > the second preset are not satisfied.
- third preset value ⁇ packet rate ⁇ first preset value and delay> second preset value
- packet loss rate>first preset value and fourth preset value ⁇ delay ⁇ second preset Value
- packet loss rate ⁇ third preset value and delay ⁇ fourth preset value for example, it is judged that p>8% cannot be satisfied and rtt>8 milliseconds, 2% ⁇ p ⁇ 8%, and rtt>8 Milliseconds, or p>8% and 4 milliseconds ⁇ rtt ⁇ 8 milliseconds, p ⁇ 2%&&rtt ⁇ 4 milliseconds.
- step S719 the adjustment module 105 estimates the bandwidth of the previous moment as the bandwidth of the current time, and performs bandwidth adjustment according to the calculated bandwidth.
- FIG. 8 is a flowchart of a bandwidth adaptive control method according to Embodiment 8 of the present invention.
- the control module 2 calculates a ratio ⁇ of the current target code rate to the current estimated bandwidth, determines a numerical range in which the ratio ⁇ is located, and a target rate adjustment formula corresponding to the numerical range in which the ratio ⁇ is located, and calculates a target code rate according to the target rate adjustment formula.
- the specific process in this embodiment is as follows:
- step S11 the encoder is adjusted to update the target code rate.
- step S12 the control module 2 of the encoder 1 acquires the target code rate D and the predicted bandwidth p, and the control module 2 calculates the ratio ⁇ of the current target code rate D to the current estimated bandwidth A t to determine the range of values in which the ratio ⁇ is located.
- step S13 the control module 2 determines that the ratio ⁇ ⁇ 0.5, and proceeds to step S19.
- the parameter adjustment module 3 determines whether the current target code rate is within the preset time period or whether the consecutive preset times are maintained within the same target code rate range, when the target code When the rate is maintained within the same target code rate range within a preset time period or the preset target code rate is different, and the adjusted target code rate is different from the target code rate range of the current target code rate, according to the adjusted target code
- the target code rate range at which the rate is located adjusts the resolution parameter and the frame rate parameter.
- step S25 the parameter adjustment module 3 determines whether the target code rate is maintained for at least 2 minutes or more than 20 times in a target code rate range, and determines whether the adjusted target code rate and the target code rate before the adjustment are not in the same target. Within the code rate range.
- step S26 the parameter adjustment module 3 adjusts the resolution according to the target code rate range in which the adjusted target code rate is located. Rate parameter, frame rate parameter.
- step S27 when the parameter adjustment module 3 determines that the target code rate is greater than 2048 kbps, that is, BW>2M, the parameter adjustment module 3 adjusts the resolution to 1080P and the frame rate to 25 or 30 frames/second.
- the broadband adaptive control system and method provided by the invention utilizes packet loss rate information and delay information for bandwidth estimation, can obtain a more accurate bandwidth budget, and can provide high-precision bandwidth estimation even in complex network situations. Value, effectively adjust the bandwidth automatically to ensure the transmission of network signals.
- the broadband adaptive control system and method provided by the invention can also calculate the ratio of the current target code rate of the encoder to the current estimated bandwidth, and adjust the target code rate according to the numerical range in which the ratio is located, according to the adjusted target code rate.
- the resolution parameter and the frame rate parameter are adjusted to ensure that the encoded data of the audio and video can be transmitted under a certain bandwidth, thereby improving the reliability of the encoded data transmission.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种带宽自适应控制***,该***中的控制设备包括发送端,发送端包括:判断模块,用于判断丢包率、时延是否满足预设条件;调整模块,用于当判断模块判断出丢包率满足预设条件时,根据第一带宽公式预估当前时刻的带宽Ap,根据第二带宽公式预估当前时刻的带宽X,判断当前时刻的预估带宽Ap、X之间差值的大小,当当前时刻的预估带宽Ap、X之间差值小于第一预设阈值时,取当前时刻的预估带宽Ap、X的平均值设置为当前时刻的带宽At。本发明还提供一种宽带自适应控制方法。本发明提供的宽带自适应的控制***及方法能在复杂网络情况下提供高准度的带宽预估值,有效地进行带宽自动调整。
Description
本发明涉及通信领域,更具体地说,涉及一种带宽自适应控制***及方法。
近些年,由于通信技术、网络技术和视频压缩技术的发展,基IP网络的音视频通信越来越受到广泛的应用,特别是在视频会议、视频监控、视频指挥调度、远程教育、远程医疗会诊等领域都广泛实用。其中音视频传输是其广泛应用的关键技术,而在一些特殊通信信道(比如无线网络),带宽有限并且带宽波动较大,网络抖动、延迟、丢包等使得很难为这些地方提供可靠的音视频业务。
现有的带宽自适应算法主要根据RTCP反馈的丢包率、时延、抖动等参数对带宽进行自动调整,但是这些算法简单且利用的信息单一,在实际的复杂网络环境下,带宽自动调整的效果并不理想,会出现卡顿,画面花屏,声音断续等问题,这严重影响了音视频业务的广泛应用。
发明内容
本发明提供了一种带宽自适应控制***,能在复杂网络情况下提供高准度的带宽预估值,有效地进行带宽自动调整,确保网络信号的传输。
本发明提供的带宽自适应控制***包括控制设备,所述带宽自适应控制***包括控制设备,所述控制设备包括发送端,所述发送端包括:
判断模块,用于判断丢包率、时延是否满足预设条件,其中所述预设条件包括所述丢包率>第一预设值且所述时延>第二预设值;
调整模块,用于当所述判断模块判断出所述丢包率>所述第一预设值且所述时延>所述第二预设值时,根据第一带宽公式Ap=(1-k*p)*Ap-1-(rtt*b)预估当前时刻的带宽,其中,Ap表示当前时刻的预估带宽、Ap-1表示前一时
刻的预测带宽、p表示丢包率、rtt表示时延、k和b为常数、且满足1>(1-k*p)>0,Ap<Ap-1,根据第二带宽公式预估当前时刻的带宽,所述第二带宽公式为:其中,X表示当前时刻的预估带宽,s表示多个rtp包的平均大小、R表示时延、p表示丢包率、b表示每隔b个rtp包发送一个TCP确认、RT0表示TCP超时重传的时间,判断所述当前时刻的预估带宽Ap、X之间的差值的大小,当所述当前时刻的预估带宽Ap、X之间的差值小于第一预设阈值时,取所述当前时刻的预估带宽Ap、X的平均值设置为当前时刻的带宽At。
进一步地,所述调整模块,还用于在当前时刻的预估带宽Ap、X之间的差值大于第一预设阈值时,取所述当前时刻的带宽Ap、X中的较小值设置为当前时刻的带宽At。
进一步地,所带宽自适应控制***还包括编码器,所述编码器包括:
控制模块,用于判断所述当前时刻的带宽At与上一时刻的带宽At-1之间的差异是否大于第二预设阈值,当大于所述第二预设阈值时,根据当前时刻的带宽更新所述编码器的目标码率。
进一步地,所述预设条件还包括第三预设值<所述丢包率<所述第一预设值且所述时延>所述第二预设值、所述丢包率>所述第一预设值且第四预设值<所述时延<所述第二预设值,当所述判断模块判断出所述第三预设值<所述丢包率<所述第一预设值且所述时延>所述第二预设值、或者判断出所述丢包率>所述第一预设值且所述第四预设值<所述时延<所述第二预设值时,所述调整模块,还用于根据第三带宽公式Ap=(1-k*p)*Ap-1+(rtt*b)计算当前时刻的预估带宽,其中,Ap表示当前时刻的预估带宽、Ap-1表示前一时刻的预估带宽、p表示丢包率、rtt表示时延、k和b为常数、且满足1>(1-k*p)>0,Ap<Ap-1。
进一步地,所述预设条件还包括所述丢包率<所述第三预设值且所述时延<所述第四预设值,当所述判断模块判断出所述丢包率<所述第三预设值且所述时延<所述第四预设值时,所述调整模块,还用于根据第四带宽公式Ap=k*Ap-1+(rtt*b)预估当前时刻的带宽,其中,Ap表示当前时刻的预估带宽、Ap-1表示前一时刻的预估带宽、p表示丢包率、rtt表示时延、k和b为常数、
满足k>1,b>1,Ap>Ap-1。
进一步地,所述控制设备还包括:
接收端,用于向所述发送端反馈RTCP报文,所述RTCP报文包括所述丢包率、所述时延;
所述发送端还包括获取模块,所述获取模块,用于接收所述RTCP报文,并从所述RTCP报文获取所述丢包率、所述时延。
进一步地,所述编码器的所述控制模块,还用于计算当前目标码率与当前时刻的带宽的比值γ,判断所述比值γ所处数值范围,查询所述比值γ所处数值范围对应的目标码率调节公式,根据所述目标码率调节公式计算目标码率,根据所述计算出的目标码率对当前目标码率进行调节,其中,所述目标码率调节公式为:目标码率=a*当前预估带宽,0<a<1。
进一步地,所述编码器还包括参数调节模块,用于判断所述调节后的目标码率所处的目标码率范围,根据所述调节后的目标码率所处的目标码率范围调整分辨率参数、帧率参数。
本发明还提供一种带宽自适应的控制方法,能在复杂网络情况下提供高准度的带宽预估值,有效地进行带宽自动调整,确保网络信号的传输。
本发明提供的带宽自适应控制方法包括:
判断丢包率、时延是否满足预设条件,其中所述预设条件包括所述丢包率>第一预设值且所述时延>第二预设值;
当判断出所述丢包率>所述第一预设值且所述时延>所述第二预设值时,根据第一带宽公式Ap=(1-k*p)*Ap-1-(rtt*b)预估当前时刻的带宽,其中,Ap表示当前时刻的预估带宽、Ap-1表示前一时刻的带宽、p表示丢包率、rtt表示时延、k和b为常数、且满足1>(1-k*p)>0,Ap<Ap-1,并根据第二带宽公式预估当前时刻的带宽,所述第二带宽公式为:
判断所述当前时刻的预估带宽Ap、X之间的差值的大小,当所述当前时刻的预估带宽Ap、X之间的差值小于第一预设阈值时,取所述当前时刻
的预估带宽Ap、X的平均值设置为当前时刻的带宽At。
进一步地,所述带宽自适应方法还包括:
在当前时刻的预估带宽Ap、X之间的差值大于第一预设阈值时,取所述当前时刻的带宽Ap、X中的较小值设置为当前时刻的带宽At。
进一步地,所述带宽自适应方法还包括:
判断所述当前时刻的带宽At与上一时刻的带宽At-1之间的差异是否大于第二预设阈值,当大于所述第二预设阈值时,根据当前时刻的带宽更新编码器的目标码率。
进一步地,所述带宽自适应方法还包括:
所述预设条件还包括第三预设值<所述丢包率<所述第一预设值且所述时延>所述第二预设值、所述丢包率>所述第一预设值且第四预设值<所述时延<所述第二预设值,当判断出所述第三预设值<所述丢包率<所述第一预设值且所述时延>所述第二预设值、或者判断出所述丢包率>所述第一预设值且所述第四预设值<所述时延<所述第二预设值时,根据第三带宽公式Ap=(1-k*p)*Ap-1+(rtt*b)计算当前时刻的预估带宽,其中,Ap表示当前时刻的预估带宽、Ap-1表示前一时刻的预估带宽、p表示丢包率、rtt表示时延、k和b为常数、且满足1>(1-k*p)>0,Ap<Ap-1。
进一步地,所述带宽自适应方法还包括:
所述预设条件还包括所述丢包率<所述第三预设值且所述时延<所述第四预设值,当判断出所述丢包率<所述第三预设值且所述时延<所述第四预设值时,根据第四带宽公式Ap=k*Ap-1+(rtt*b)预估当前时刻的带宽,其中,Ap表示当前时刻的预估带宽、Ap-1表示前一时刻的预估带宽、p表示丢包率、rtt表示时延、k和b为常数、满足k>1,b>1,At>At-1。
进一步地,所述带宽自适应方法还包括:
接收RTCP报文,所述RTCP报文包括所述丢包率、所述时延;
从所述RTCP报文获取所述丢包率、所述时延。
进一步地,所述带宽自适应方法还包括:
计算所述编码器的当前目标码率与当前时刻的带宽的比值γ;
判断所述比值γ所处数值范围,查询所述比值γ所处数值范围对应的目标码率调节公式;
根据所述目标码率调节公式计算目标码率,根据所述计算出的目标码率对当前目标码率进行调节,其中,所述目标码率调节公式为:目标码率=a*当前预估带宽,0<a<1。
进一步地,所述带宽自适应方法还包括:
判断所述调节后的目标码率所处的目标码率范围,根据所述调节后的目标码率所处的目标码率范围调整分辨率参数、帧率参数。
本发明提供的宽带自适应的控制***及方法利用丢包率信息和时延信息进行带宽估算,能够得到更为准确的带宽预算,即使在复杂网络情况下也能提供高准度的带宽预估值,有效地进行带宽自动调整,确保网络信号的传输。本发明提供的宽带自适应的控制***及方法还能计算编码器当前目标码率与当前预估带宽的比值,并根据比值所在的数值范围对目标码率进行调节,根据调节后的目标码率对分辨率参数、帧率参数进行调节,确保在一定带宽下,能够传输音视频的编码数据,提高编码数据传输的可靠性。
图1是本发明实施例一带宽自适应控制***的应用环境图;
图2是本发明实施例二控制设备的发送端的功能模块图;
图3是本发明实施例三控制设备的发送端的功能模块图;
图4是本发明实施例四编码器的功能模块图;
图5是本发明实施例五编码器的功能模块图;
图6是本发明实施例六宽带自适应控制方法的流程图;
图7是本发明实施例七宽带自适应控制方法的流程图;
图8是本发明实施例八宽带自适应控制方法的流程图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
请参阅图1,图1是本发明实施例一带宽自适应控制***的应用环境图。图1所示的带宽自适应控制***:控制设备的发送端10、控制设备的接收端20、以及编码器1,发送端10与接收端20之间进行数据通信,编码器1与发送端之间进行数据通信。
参阅图2,图2是本发明实施例二控制设备的发送端的功能模块图。图2所示的控制设备的发送端10包括判断模块103、调整模块105。下面对本实施例的控制设备的各功能模块进行详细介绍。
判断模块103判断丢包率、时延是否满足预设条件,其中预设条件包括丢包率>第一预设值且时延>第二预设值。调整模块105在判断模块103判断出丢包率>第一预设值且时延>第二预设值时,根据第一带宽公式Ap=(1-k*p)*Ap-1-(rtt*b)预估当前时刻的带宽,其中,Ap表示当前时刻的预估带宽、Ap-1表示前一时刻的预测带宽、p表示丢包率、rtt表示时延、k和b为常数、且满足1>(1-k*p)>0,Ap<Ap-1,并根据第二带宽公式预估当前时刻的带宽,第二带宽公式为:其中,X表示当前时刻的预估带宽,s表示多个rtp包的平均大小、R表示时延、p表示丢包率、b表示每隔b个rtp包发送一个TCP确认、RT0表示TCP超时重传的时间,并判断当前时刻的预估带宽Ap、X之间的差值的大小,当当前时刻的预估带宽Ap、X之间的差值小于第一预设阈值时,取当前时刻的预估带宽Ap、X的平均值设置为当前时刻的带宽At。需要补充说明的是,调整模块105在当前时刻的预估带宽Ap、X之间的差值大于第一预设阈值时,取当前时刻的带宽Ap、X中的较小值设置为当前时刻的带宽At。
需要补充说明的是,需要补充说明的是,当丢包率p不为零时,调整模块105还基于第三带宽公式计算预估带宽Ap,具体过程如下:当判断模块判断出第三预设值<丢包率<第一预设值且时延>第二预设值、或者判断出丢包率>第一预设值且第四预设值<时延<第二预设值时,调整模块,还用于根据第三带宽公式Ap=(1-k*p)*Ap-1+(rtt*b)计算当前时刻的预估带宽,其中,Ap表示当前时刻的预估带宽、Ap-1表示前一时刻的预估带宽、p表示丢包率、rtt表示时延、k和b为常数、且满足1>(1-k*p)>0,Ap<Ap-1。
进一步补充说明的是,当丢包率p不为零时,调整模块105还基于第
四带宽公式计算预估带宽Ap,具体过程如下:判断模块103判断丢包率、时延是否满足预设条件,预设条件还包括丢包率<第三预设值且时延<第四预设值,当判断模块判断出丢包率<第三预设值且时延<第四预设值时,调整模块,还用于根据第四带宽公式Ap=k*Ap-1+(rtt*b)预估当前时刻的带宽,其中,Ap表示当前时刻的预估带宽、Ap-1表示前一时刻的预估带宽、p表示丢包率、rtt表示时延、k和b为常数、满足k>1,b>1,Ap>Ap-1。
当判断模块103判断出丢包率、时延不满足预设条件,调整模块105将前一时刻的带宽预估为当前时刻的带宽,即Ap=Ap-1,其中,预设条件包括:丢包率>第一预设值且时延>第二预设值、第三预设值<丢包率<第一预设值且时延>第二预设值、丢包率>第一预设值且第四预设值<时延<第二预设值、丢包率<第三预设值且时延<第四预设值。
参阅图3,图3是本发明实施例三控制设备的发送端的功能模块图。
控制设备的发送端10包括获取模块101、判断模块103、调整模块105。下面对个功能模块进行说明。获取模块101接收从接收端20发送的RTCP报文,并从RTCP报文获取丢包率、时延,其中,RTCP报文包括当前的丢包率信息、时延信息。判断模块103、调整模块105的功能与图2所示的判断模块103、调整模块105的功能相同,在此不再赘述。
参阅图4,图4是本发明实施例四编码器的功能模块图。图4所示的编码器1包括控制模块2。控制模块2判断当前时刻的带宽At与上一时刻的带宽At-1之间的差异是否大于第二预设阈值,当大于第二预设阈值时,根据当前时刻的带宽更新编码器的目标码率。
参阅图5,图5是本发明实施例五编码器的功能模块图。5所示的编码器包括控制模块2、参数调节模块3。编码器1的控制模块2计算当前目标码率与当前时刻的带宽的比值γ,判断比值γ所处数值范围,查询比值γ所处数值范围对应的目标码率调节公式,根据目标码率调节公式计算目标码率,根据计算出的目标码率对当前目标码率进行调节,其中,目标码率调节公式为:目标码率=a*当前预估带宽,0<a<1。举例来说,在一般情况下,可以将γ的取值范围划分为多个数值范围,例如,将数值划分为γ<0.5、0.5<=γ<0.6、0.6<=γ<0.7、0.7<=γ<0.8、0.8<=γ<0.9、0.9<=γ。在划分数值范围的同时,设置每个数值范围对应的目标码率计算公式,设置公式
如下:
为γ<0.5区间设置的公式为:目标码率等于0.5乘以所述当前预估带宽所得的值;
为0.5<=γ<0.6区间设置的公式为:目标码率等于0.55乘以所述当前预估带宽所得的值;
为0.6<=γ<0.7区间设置的公式为:目标码率等于0.65乘以所述当前预估带宽所得的值;
为0.7<=γ<0.8区间设置的公式为:目标码率等于0.75乘以当前预估带宽所得的值;
为0.8<=γ<0.9区间设置的公式为:前目标码率调整为0.85乘以当前时刻的预估带宽所得的值;
为0.9<=γ<1区间设置的公式为:目标码率调整为0.9乘以当前时刻的预估带宽所得的值。
当γ<0.5时,控制模块2将所述当前目标码率调整为0.5乘以所述当前预估带宽所得的值;
当0.5<=γ<0.6时,控制模块2将所述当前目标码率调整为0.55乘以所述当前预估带宽所得的值;
当0.6<=γ<0.7时,控制模块2将所述当前目标码率调整为0.65乘以所述当前预估带宽所得的值;
当0.7<=γ<0.8时,控制模块2将所述当前目标码率调整为0.75乘以当前预估带宽所得的值;
当0.8<=γ<0.9时,控制模块2将所述当前目标码率调整为0.85乘以当前时刻的预估带宽所得的值;
当0.9<=γ时,控制模块2将所述当前目标码率调整为0.9乘以当前时刻的预估带宽所得的值。
编码器1的参数调节模块3判断调节后的目标码率所处的目标码率范围,根据调节后的目标码率所处的目标码率范围调整分辨率参数、帧率参数。举例来说,当所述目标码率大于2048kbps时,所述参数调节模块3将分辨率调整为1080P、将帧率调整为25或者30帧/秒,当所述目标码率小于等于2048kbps且所述目标码率大于1024kbps时,参数调节模块3将分辨
率调整为720P、将帧率调整为25或者30帧/秒,当所述目标码率小于等于1024kbps且所述目标码率大于512kbps时,参数调节模块3将分辨率调整为4CIF/D1/VGA、将帧率调整为25或者30帧/秒,当所述目标码率小于等于512kbps且所述目标码率大于128kbps时,参数调节模块3将分辨率调整为CIF、将帧率调整为25或者30帧/秒,当所述目标码率小于等于128kbps时,参数调节模块3将分辨率调整为QCIF、将帧率调整为15或者20帧/秒。
本发明还提供带宽自适应的控制方法,下面进行详细介绍。
参阅图6,图6是本发明实施例六带宽自适应的控制方法的流程图。
在步骤S601中,发送端10接收从接收端传输的RTCP报文。
在步骤S602中,发送端10的获取模块101从RTCP报文中分析出RTT,丢包率p,包大小和抖动等信息。
在步骤S603中,接收端10的判断模块103判断丢包率p是否为零。
在步骤S607中,当丢包率p为零时,选择REMB报文中的预估带宽作为预测带宽,即接收端10根据卡尔曼滤波器估算出的带宽,并进入步骤612。
在步骤611中,调整模块105判断在步骤S608中选择的预测带宽和当前的带宽是否不同,当不同时,即发生变化的时候,更新带宽,调整编码器的目标码率。
在步骤S604中,当丢包率p不为零时,调整模块105基于第一带宽公式计算预估带宽Ap,具体地计算过程如下:判断模块103判断丢包率、时延是否满足预设条件,其中预设条件包括丢包率>第一预设值且时延>第二预设值,调整模块105判断模块判断出丢包率>第一预设值且时延>第二预设值时,根据第一带宽公式Ap=(1-k*p)*Ap-1-(rtt*b)预估当前时刻的带宽,其中,Ap表示当前时刻的预估带宽、Ap-1表示前一时刻的预测带宽、p表示丢包率、rtt表示时延、k和b为常数、且满足1>(1-k*p)>0,Ap<Ap-1。
在步骤S605中,当丢包率p不为零时,调整模块105基于第二带宽公式计算预估带宽,具体地,第二带宽公式为:
需要补充说明的是,在步骤S604中,当丢包率p不为零时,调整模块105还基于第三带宽公式计算预估带宽Ap,具体过程如下:当判断模块判断出第三预设值<丢包率<第一预设值且时延>第二预设值、或者判断出丢包率>第一预设值且第四预设值<时延<第二预设值时,调整模块,还用于根据第三带宽公式Ap=(1-k*p)*Ap-1+(rtt*b)计算当前时刻的预估带宽,其中,Ap表示当前时刻的预估带宽、Ap-1表示前一时刻的预估带宽、p表示丢包率、rtt表示时延、k和b为常数、且满足1>(1-k*p)>0,Ap<Ap-1。
进一步补充说明的是,在步骤S604中,当丢包率p不为零时,调整模块105还基于第四带宽公式计算预估带宽Ap,具体过程如下:判断模块103判断丢包率、时延是否满足预设条件,预设条件还包括丢包率<第三预设值且时延<第四预设值,当判断模块判断出丢包率<第三预设值且时延<第四预设值时,调整模块,还用于根据第四带宽公式Ap=k*Ap-1+(rtt*b)预估当前时刻的带宽,其中,Ap表示当前时刻的预估带宽、Ap-1表示前一时刻的预估带宽、p表示丢包率、rtt表示时延、k和b为常数、满足k>1,b>1,Ap>Ap-1。
当判断模块103判断出丢包率、时延不满足预设条件,调整模块105将前一时刻的带宽预估为当前时刻的带宽,即Ap=Ap-1,其中,预设条件包括:丢包率>第一预设值且时延>第二预设值、第三预设值<丢包率<第一预设值且时延>第二预设值、丢包率>第一预设值且第四预设值<时延<第二预设值、丢包率<第三预设值且时延<第四预设值。
在步骤S606中,调整模块105判断当前时刻的预估带宽Ap、X之间的差值的大小。具体地,判断预测带宽Ap、X是否满足公式(Ap-X)*2/(Ap+X)>6%。
在步骤S608中,调整模块105在当前时刻的预估带宽Ap、X之间的差值大于第一预设阈值时,取当前时刻的带宽Ap、X中的较小值设置为当前时刻的带宽At。具体地,当Ap、X满足公式(Ap-X)*2/(Ap+X)>6%时,取当前时刻的带宽Ap、X中的较小值设置为当前时刻的带宽At。
在步骤S609中,当当前时刻的预估带宽Ap、X之间的差值小于第一预设阈值时,取当前时刻的预估带宽Ap、X的平均值设置为当前时刻的带宽
At。具体地,当Ap、X不满足公式(Ap-X)*2/(Ap+X)>6%时,取当前时刻的带宽Ap、X中的平均值设置为当前时刻的带宽At。
在步骤S610中,编码器1的控制模块2判断当前时刻的带宽At与上一时刻的带宽At-1之间的差异是否大于第二预设阈值。具体地,判断|(At-At-1)/At-1|>10%是否成立。
在步骤S611中,当大于第二预设阈值时,编码器1的控制模块2根据当前时刻的带宽更新编码器的目标码率。具体地,当|(At-At-1)/At-1||>10%成立时,根据当前时刻的带宽At调整编码器的目标码率、更新带宽。
参阅图7,图7是本发明实施例七带宽自适应的控制方法的流程图。
在步骤S701中,接收端10的获取模块101获取发生端20发送的RTCP报文,其中,RTCP其中,RTCP报文包括当前的丢包率信息、时延信息包括当前的丢包率信息、时延信息,接收端10的获取模块101从RTCP报文中获取当前的丢包率p和时延rtt。
在步骤S703中,接收端10的判断模块103判断丢包率p、时延rrt满足的条件。
在步骤S705中,判断模块判断出丢包率>第一预设值且时延>第二预设值,则进入步骤S713,举例来说,如果预设条件为p>8%&&rtt>8毫秒,在步骤S705中,判断出获取丢包率p>8%、且获取的时延rtt>8毫秒,则进入步骤S713。
在步骤S713中,调整模块105根据带宽公式At=(1-k*p)*At-1-(rtt*b)预估当前时刻的带宽,其中,At表示当前时刻的带宽、At-1表示前一时刻的带宽、p表示丢包率、rtt表示时延、k和b为常数、且满足1>(1-k*p)>0,At<At-1,举例来说带宽公式可为At=(1-0.8p)*At-1-(rtt*150),根据计算出的带宽进行带宽调节。
在步骤S707中,判断模块103判断出第三预设值<丢包率<第一预设值且时延>第二预设值、或者判断出丢包率>第一预设值且第四预设值<时延<第二预设值,则进入步骤S415,例如,在步骤S707中判断出2%<当前的丢包率p<8%且当前时延rtt>8毫秒、或者当前丢包率p>8%且4毫秒<当前的时延rtt<8毫秒,则进入步骤S715。
在步骤S715中,调整模块105根据带宽公式At=(1-k*p)*At-1+(rtt*b)预估当前时刻的带宽,其中,At表示当前时刻的带宽、At-1表示前一时刻的带宽、p表示丢包率、rtt表示时延、k和b为常数、且满足1>(1-k*p)>0,At<At-1,,例如带宽公式可为At=(1-0.6p)*At-1+(rtt*100),根据计算出的带宽进行带宽调节。
在步骤S709中,判断模块103判断出丢包率<第三预设值且时延<第四预设值,则进入步骤S717,例如判断出当前的丢包率p<2%且当前的时延rrt<4毫秒,则进入步骤S717。
在步骤S717中,调整模块105根据带宽公式At=k*At-1+(rtt*b)预估当前时刻的带宽,其中,At表示当前时刻的带宽、At-1表示前一时刻的带宽、p表示丢包率、rtt表示时延、k和b为常数、满足k>1,b>1,At>At-1。举例来说,带宽公式可为At=(1.04)*At-1+(rtt*200),根据计算出的带宽进行带宽调节。
在步骤S711中,判断出丢包率、时延不满足条件,进入步骤S719,丢包率、时延不满足条件即不满足丢包率>第一预设值且时延>第二预设值、第三预设值<丢包率<第一预设值且时延>第二预设值、丢包率>第一预设值且第四预设值<时延<第二预设值、丢包率<第三预设值且时延<第四预设值,举例来说,判断出不能满足p>8%且rtt>8毫秒、2%<p<8%且rtt>8毫秒、或者p>8%且4毫秒<rtt<8毫秒、p<2%&&rtt<4毫秒。
在步骤S719中,调整模块105将前一时刻的带宽预估为当前时刻的带宽,根据计算出的带宽进行带宽调节。
参阅图8,图8是本发明实施例八带宽自适应的控制方法的流程图。
控制模块2计算当前目标码率与当前预估带宽的比值γ,判断比值γ所处数值范围,查询比值γ所处数值范围对应的目标码率调节公式,根据目标码率调节公式计算目标码率,根据计算出的目标码率对当前目标码率进行调节,其中,目标码率调节公式为:目标码率=a*当前预估带宽,0<a<1。补充说明的是,在不同的数值范围,a对应的数值是不同的。本实施例中的具体流程如下:
在步骤S11中,调整编码器,更新目标码率。
在步骤S12中,编码器1的控制模块2获取目标码率D、预测带宽p,
控制模块2计算当前目标码率D与当前预估带宽At的比值γ,判断比值γ所处数值范围。
在步骤S13中,控制模块2判断出述比值γ<0.5,进入步骤S19。
在步骤S19中,控制模块2根据目标码率调节公式计算目标码率,其中目标码率调节公式为:目标码率=0.5*预测带宽At。
在步骤S14中,控制模块2判断出述比值0.5<=γ<0.6,进入步骤S20。
在步骤S20中,控制模块2根据目标码率调节公式计算目标码率,其中目标码率调节公式为:目标码率=0.55*预测带宽At。
在步骤S15中,控制模块2判断出述比值0.6<=γ<0.7,进入步骤S21。
在步骤S21中,控制模块2根据目标码率调节公式计算目标码率,其中目标码率调节公式为:目标码率=0.65*预测带宽At。
在步骤S16中,控制模块2判断出述比值0.7<=γ<0.8,进入步骤S22。
在步骤S22中,控制模块2根据目标码率调节公式计算目标码率,其中目标码率调节公式为:目标码率=0.75*预测带宽At。
在步骤S17中,控制模块2判断出述比值0.8<=γ<0.9,进入步骤S23。
在步骤S23中,控制模块2根据目标码率调节公式计算目标码率,其中目标码率调节公式为:目标码率=0.85*预测带宽At。
在步骤S18中,控制模块2判断出述比值0.9=<γ,进入步骤S24。
在步骤S24中,控制模块2根据目标码率调节公式计算目标码率,其中目标码率调节公式为:目标码率=0.9*预测带宽At。
为了防止太过频繁地调整分辨率和帧率等编码参数,参数调节模块3判断当前目标码率是否在预设时间段内或者是否连续预设次数维持在同一目标码率范围内,当目标码率在预设时间段内或者连续预设次数维持在同一目标码率范围内、且调节后的目标码率与当前的目标码率所处的目标码率范围不同时,根据调节后的目标码率所处的目标码率范围调整分辨率参数、帧率参数。在本实施了中具体步骤如下:
在步骤S25中,参数调节模块3判断目标码率是否在一个目标码率范围内维持至少2分钟或者连续20次以上,并且判断调节后的目标码率与调节前的目标码率是否不在同一目标码率范围内。
当目标码率在一个目标码率范围内维持至少2分钟或者连续20次以
上,并且调节后的目标码率与调节前的目标码率不在同一目标码率范围内时,在步骤S26中,参数调节模块3根据调节后的目标码率所处的目标码率范围调整分辨率参数、帧率参数。具体调整步骤如下:
在步骤S27中,当参数调节模块3判断出目标码率大于2048kbps时,即BW>2M,参数调节模块3将分辨率调整为1080P、将帧率调整为25或者30帧/秒。
在步骤S28中,当参数调节模块3判断出目标码率小于等于2048kbps且目标码率大于1024kbps时,即1M<BW<=2M时,参数调节模块3将分辨率调整为720P、将帧率调整为25或者30帧/秒。
在步骤S29中,当参数调节模块3判断出目标码率小于等于1024kbps且目标码率大于512kbps时,即512K<BW<=1M时,参数调节模块3将分辨率调整为4CIF/D1/VGA、将帧率调整为25或者30帧/秒。
在步骤S30中,当目标码率小于等于512kbps且目标码率大于128kbps时,即1M<BW<=2M时,参数调节模块3将分辨率调整为CIF、将帧率调整为25或者30帧/秒。
在步骤S31中,当目标码率小于等于128kbps时,即BW<=128K时,参数调节模块3将分辨率调整为QCIF、将帧率调整为15或者20帧/秒。
本发明提供的宽带自适应的控制***及方法利用丢包率信息和时延信息进行带宽估算,能够得到更为准确的带宽预算,即使在复杂网络情况下也能提供高准度的带宽预估值,有效地进行带宽自动调整,确保网络信号的传输。本发明提供的宽带自适应的控制***及方法还能计算编码器当前目标码率与当前预估带宽的比值,并根据比值所在的数值范围对目标码率进行调节,根据调节后的目标码率对分辨率参数、帧率参数进行调节,确保在一定带宽下,能够传输音视频的编码数据,提高编码数据传输的可靠性。
以上仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (16)
- 一种带宽自适应控制***,所述带宽自适应控制***包括控制设备,所述控制设备包括发送端,其特征在于,所述发送端包括:判断模块,用于判断丢包率、时延是否满足预设条件,其中所述预设条件包括所述丢包率>第一预设值且所述时延>第二预设值;调整模块,用于当所述判断模块判断出所述丢包率>所述第一预设值且所述时延>所述第二预设值时,根据第一带宽公式Ap=(1-k*p)*Ap-1-(rtt*b)预估当前时刻的带宽,其中,Ap表示当前时刻的预估带宽、Ap-1表示前一时刻的预测带宽、p表示丢包率、rtt表示时延、k和b为常数、且满足1>(1-k*p)>0,Ap<Ap-1,根据第二带宽公式预估当前时刻的带宽,所述第二带宽公式为:其中,X表示当前时刻的预估带宽,s表示多个rtp包的平均大小、R表示时延、p表示丢包率、b表示每隔b个rtp包发送一个TCP确认、RT0表示TCP超时重传的时间,判断所述当前时刻的预估带宽Ap、X之间的差值的大小,当所述当前时刻的预估带宽Ap、X之间的差值小于第一预设阈值时,取所述当前时刻的预估带宽Ap、X的平均值设置为当前时刻的带宽At。
- 如权利要求1所述的带宽自适应控制***,其特征在于,所述调整模块,还用于在当前时刻的预估带宽Ap、X之间的差值大于第一预设阈值时,取所述当前时刻的带宽Ap、X中的较小值设置为当前时刻的带宽At。
- 如权利要求1-2任一一项所述的带宽自适应控制***,其特征在于,还包括编码器,所述编码器包括:控制模块,用于判断所述当前时刻的带宽At与上一时刻的带宽At-1之间的差异是否大于第二预设阈值,当大于所述第二预设阈值时,根据当前时刻的带宽更新所述编码器的目标码率。
- 如权利要求1所述的带宽自适应控制***,其特征在于,所述预设条件还包括第三预设值<所述丢包率<所述第一预设值且所述时延>所述第二预设值、所述丢包率>所述第一预设值且第四预设值<所述时延<所述第二预设值,当所述判断模块判断出所述第三预设值<所述丢包率<所述第一预设值且所述时延>所述第二预设值、或者判断出所述丢包率>所述第一预设值 且所述第四预设值<所述时延<所述第二预设值时,所述调整模块,还用于根据第三带宽公式Ap=(1-k*p)*Ap-1+(rtt*b)计算当前时刻的预估带宽,其中,Ap表示当前时刻的预估带宽、Ap-1表示前一时刻的预估带宽、p表示丢包率、rtt表示时延、k和b为常数、且满足1>(1-k*p)>0,Ap<Ap-1。
- 如权利要求1所述的带宽自适应控制***,其特征在于,所述预设条件还包括所述丢包率<所述第三预设值且所述时延<所述第四预设值,当所述判断模块判断出所述丢包率<所述第三预设值且所述时延<所述第四预设值时,所述调整模块,还用于根据第四带宽公式Ap=k*Ap-1+(rtt*b)预估当前时刻的带宽,其中,Ap表示当前时刻的预估带宽、Ap-1表示前一时刻的预估带宽、p表示丢包率、rtt表示时延、k和b为常数、满足k>1,b>1,Ap>Ap-1。
- 如权利要求1所述的带宽自适应控制***,其特征在于,所述控制设备还包括:接收端,用于向所述发送端反馈RTCP报文,所述RTCP报文包括所述丢包率、所述时延;所述发送端还包括获取模块,所述获取模块,用于接收所述RTCP报文,并从所述RTCP报文获取所述丢包率、所述时延。
- 如权利要求3所述的带宽自适应控制***,其特征在于,所述编码器的所述控制模块,还用于计算当前目标码率与当前时刻的带宽的比值γ,判断所述比值γ所处数值范围,查询所述比值γ所处数值范围对应的目标码率调节公式,根据所述目标码率调节公式计算目标码率,根据所述计算出的目标码率对当前目标码率进行调节,其中,所述目标码率调节公式为:目标码率=a*当前预估带宽,0<a<1。
- 如权利要求7所述的带宽自适应控制***,其特征在于,所述编码器还包括参数调节模块,用于判断所述调节后的目标码率所处的目标码率范围,根据所述调节后的目标码率所处的目标码率范围调整分辨率参数、帧率参数。
- 一种带宽自适应控制方法,其特征在于,包括:判断丢包率、时延是否满足预设条件,其中所述预设条件包括所述丢包率>第一预设值且所述时延>第二预设值;当判断出所述丢包率>所述第一预设值且所述时延>所述第二预设值 时,根据第一带宽公式Ap=(1-k*p)*Ap-1-(rtt*b)预估当前时刻的带宽,其中,Ap表示当前时刻的预估带宽、Ap-1表示前一时刻的带宽、p表示丢包率、rtt表示时延、k和b为常数、且满足1>(1-k*p)>0,Ap<Ap-1,并根据第二带宽公式预估当前时刻的带宽,所述第二带宽公式为:判断所述当前时刻的预估带宽Ap、X之间的差值的大小,当所述当前时刻的预估带宽Ap、X之间的差值小于第一预设阈值时,取所述当前时刻的预估带宽Ap、X的平均值设置为当前时刻的带宽At。
- 如权利要求9所述的带宽自适应控制方法,其特征在于,还包括:在当前时刻的预估带宽Ap、X之间的差值大于第一预设阈值时,取所述当前时刻的带宽Ap、X中的较小值设置为当前时刻的带宽At。
- 如权利要求9-10任一一项所述的带宽自适应控制方法,其特征在于,还包括:判断所述当前时刻的带宽At与上一时刻的带宽At-1之间的差异是否大于第二预设阈值,当大于所述第二预设阈值时,根据当前时刻的带宽更新编码器的目标码率。
- 如权利要求9所述的带宽自适应控制方法,其特征在于,还包括:所述预设条件还包括第三预设值<所述丢包率<所述第一预设值且所述时延>所述第二预设值、所述丢包率>所述第一预设值且第四预设值<所述时延<所述第二预设值,当判断出所述第三预设值<所述丢包率<所述第一预设值且所述时延>所述第二预设值、或者判断出所述丢包率>所述第一预设值且所述第四预设值<所述时延<所述第二预设值时,根据第三带宽公式Ap=(1-k*p)*Ap-1+(rtt*b)计算当前时刻的预估带宽,其中,Ap表示当前时刻的预估带宽、Ap-1表示前一时刻的预估带宽、p表示丢包率、rtt表示时延、k和b为常数、且满足1>(1-k*p)>0,Ap<Ap-1。
- 如权利要求9所述的带宽自适应控制方法,其特征在于,还包括:所述预设条件还包括所述丢包率<所述第三预设值且所述时延<所述第 四预设值,当判断出所述丢包率<所述第三预设值且所述时延<所述第四预设值时,根据第四带宽公式Ap=k*Ap-1+(rtt*b)预估当前时刻的带宽,其中,Ap表示当前时刻的预估带宽、Ap-1表示前一时刻的预估带宽、p表示丢包率、rtt表示时延、k和b为常数、满足k>1,b>1,At>At-1。
- 如权利要求9所述的带宽自适应控制方法,其特征在于,还包括:接收RTCP报文,所述RTCP报文包括所述丢包率、所述时延;从所述RTCP报文获取所述丢包率、所述时延。
- 如权利要求11所述的带宽自适应控制方法,其特征在于,还包括:计算所述编码器的当前目标码率与当前时刻的带宽的比值γ;判断所述比值γ所处数值范围,查询所述比值γ所处数值范围对应的目标码率调节公式;根据所述目标码率调节公式计算目标码率,根据所述计算出的目标码率对当前目标码率进行调节,其中,所述目标码率调节公式为:目标码率=a*当前预估带宽,0<a<1。
- 如权利要求15所述的带宽自适应控制方法,其特征在于,还包括:判断所述调节后的目标码率所处的目标码率范围,根据所述调节后的目标码率所处的目标码率范围调整分辨率参数、帧率参数。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610873943.4A CN106357453A (zh) | 2016-09-30 | 2016-09-30 | 一种带宽自适应控制***及方法 |
CN201610873943.4 | 2016-09-30 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2018058711A1 true WO2018058711A1 (zh) | 2018-04-05 |
Family
ID=57867086
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2016/102467 WO2018058711A1 (zh) | 2016-09-30 | 2016-10-18 | 一种带宽自适应控制***及方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN106357453A (zh) |
WO (1) | WO2018058711A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114389976A (zh) * | 2022-03-23 | 2022-04-22 | 北京汇金春华科技有限公司 | 视频帧传输网络传输管理方法及相关设备 |
CN114390320A (zh) * | 2022-02-18 | 2022-04-22 | 百果园技术(新加坡)有限公司 | 数据编码码率自适应调节方法、装置、设备和存储介质 |
CN114666225A (zh) * | 2022-03-10 | 2022-06-24 | 阿里巴巴(中国)有限公司 | 带宽调整方法、数据传输方法、设备及计算机存储介质 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106954101B (zh) * | 2017-04-25 | 2020-04-28 | 华南理工大学 | 一种低延迟实时视频流媒体无线传输的丢帧控制方法 |
CN107659386A (zh) * | 2017-09-19 | 2018-02-02 | 深圳乐腾无线科技有限公司 | 一种基于路由器解决实时应用WiFi下丢包的方法 |
WO2019192361A1 (en) * | 2018-04-06 | 2019-10-10 | Huawei Technologies Co., Ltd. | Congestion control in network communications |
CN111385574B (zh) * | 2018-12-28 | 2021-08-10 | 北京字节跳动网络技术有限公司 | 视频编码中的码率控制方法、装置、移动终端及存储介质 |
CN111836079B (zh) * | 2019-04-18 | 2022-09-02 | 杭州海康威视数字技术股份有限公司 | 一种视频码流的传输方法及装置 |
CN110266551B (zh) * | 2019-07-29 | 2021-06-25 | 腾讯科技(深圳)有限公司 | 一种带宽预测方法、装置、设备及存储介质 |
CN111225254B (zh) * | 2020-01-20 | 2023-04-18 | 视联动力信息技术股份有限公司 | 一种视频传输方法、装置、终端设备及存储介质 |
CN111314145A (zh) * | 2020-02-25 | 2020-06-19 | 邦彦技术股份有限公司 | 一种流量控制方法、终端、交换机 |
CN111405327B (zh) * | 2020-04-03 | 2022-12-09 | 广州市百果园信息技术有限公司 | 网络带宽预测模型训练方法、视频数据播放方法及装置 |
CN112533074B (zh) * | 2020-12-01 | 2023-08-11 | 国家电网有限公司 | 数据传输方法及装置 |
CN114629826B (zh) * | 2020-12-14 | 2024-05-28 | 京东方科技集团股份有限公司 | 一种网络最大带宽估计方法、装置、电子设备及存储介质 |
CN116708134B (zh) * | 2023-07-12 | 2024-05-14 | 韩山师范学院 | 基于流量控制的点对点网络传输*** |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103401665A (zh) * | 2013-06-28 | 2013-11-20 | 国家超级计算深圳中心(深圳云计算中心) | 集群存储***中重传超时计时器的优化方法及装置 |
CN103840917A (zh) * | 2014-03-28 | 2014-06-04 | 北京邮电大学 | 一种基于网络编码的多路并行传输方案 |
-
2016
- 2016-09-30 CN CN201610873943.4A patent/CN106357453A/zh active Pending
- 2016-10-18 WO PCT/CN2016/102467 patent/WO2018058711A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103401665A (zh) * | 2013-06-28 | 2013-11-20 | 国家超级计算深圳中心(深圳云计算中心) | 集群存储***中重传超时计时器的优化方法及装置 |
CN103840917A (zh) * | 2014-03-28 | 2014-06-04 | 北京邮电大学 | 一种基于网络编码的多路并行传输方案 |
Non-Patent Citations (2)
Title |
---|
WANG HAILING ET AL.: "Stream control based on bandwidth adaptative buffer technology", COMPUTER ENGINEERING, vol. 31, no. 9, 31 May 2005 (2005-05-31), pages 182 - 184 * |
ZHENG ZHIYONG: "Design of high bandwidth controller in active queue management", BULLETIN OF SCIENCE AND TECHNOLOGY, vol. 28, no. 12, 31 December 2012 (2012-12-31), pages 224 - 226 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114390320A (zh) * | 2022-02-18 | 2022-04-22 | 百果园技术(新加坡)有限公司 | 数据编码码率自适应调节方法、装置、设备和存储介质 |
CN114390320B (zh) * | 2022-02-18 | 2024-02-13 | 百果园技术(新加坡)有限公司 | 数据编码码率自适应调节方法、装置、设备和存储介质 |
CN114666225A (zh) * | 2022-03-10 | 2022-06-24 | 阿里巴巴(中国)有限公司 | 带宽调整方法、数据传输方法、设备及计算机存储介质 |
CN114666225B (zh) * | 2022-03-10 | 2023-11-17 | 阿里巴巴(中国)有限公司 | 带宽调整方法、数据传输方法、设备及计算机存储介质 |
CN114389976A (zh) * | 2022-03-23 | 2022-04-22 | 北京汇金春华科技有限公司 | 视频帧传输网络传输管理方法及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN106357453A (zh) | 2017-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2018058711A1 (zh) | 一种带宽自适应控制***及方法 | |
WO2018058701A1 (zh) | 一种基于丢包率的控制设备及方法 | |
US9191664B2 (en) | Adaptive bitrate management for streaming media over packet networks | |
JP4265609B2 (ja) | ビデオ会議装置、装置、ビデオ会議システム、方法およびこの方法を実行するように適合された命令プログラムを含んだデバイス可読媒体または波形 | |
EP3016395A1 (en) | Video encoding device and video encoding method | |
US8588071B2 (en) | Device and method for adaptation of target rate of video signals | |
US10218761B2 (en) | Method and device for adjusting bit rate in video calling based on voice over long-term evolution and video over long-term evolution, and mobile terminal | |
US9049340B2 (en) | Method and apparatus for adjusting site bandwidth, conferencing terminal, and media control server | |
KR100641159B1 (ko) | Rtcp패킷 기반의 적응적 멀티미디어 데이터 전송률추정방법 | |
CN105491461B (zh) | 一种视频传输方法 | |
EP2772010B1 (en) | Optimizing video-call quality of service | |
JP2015536594A (ja) | 積極的なビデオフレームドロップ | |
CN106231353A (zh) | VoIP通信方法及装置 | |
US10659514B2 (en) | System for video monitoring with adaptive bitrate to sustain image quality | |
EP3103220A1 (en) | System and method for dynamic effective rate estimation for real-time video traffic | |
WO2018058700A1 (zh) | 一种编码器及控制方法 | |
CN111741249B (zh) | 一种网络拥塞检测方法及装置 | |
US20160277468A1 (en) | Adapting Encoded Bandwidth | |
CN105812710A (zh) | 视频通话过程中优化图像质量的方法及*** | |
JP2017069849A (ja) | 映像制御装置、映像配信システムおよび映像制御方法 | |
CN101472131A (zh) | 带有运动感知功能的视频电话及其图像质量增强方法 | |
CN107483990B (zh) | 一种流媒体传输的动态码率调节方法、装置及传输*** | |
US20160277467A1 (en) | Adapting Encoded Bandwidth | |
CN115378832A (zh) | 拥塞检测方法、装置及流媒体传输***、电子设备和介质 | |
CN111212308B (zh) | 一种无线网络自适应调节的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 16917458 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 16917458 Country of ref document: EP Kind code of ref document: A1 |