CN111726301A - Congestion control method and system for guaranteeing video quality in real-time video - Google Patents

Congestion control method and system for guaranteeing video quality in real-time video Download PDF

Info

Publication number
CN111726301A
CN111726301A CN202010414567.9A CN202010414567A CN111726301A CN 111726301 A CN111726301 A CN 111726301A CN 202010414567 A CN202010414567 A CN 202010414567A CN 111726301 A CN111726301 A CN 111726301A
Authority
CN
China
Prior art keywords
state
code rate
bitrate
current
video data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202010414567.9A
Other languages
Chinese (zh)
Other versions
CN111726301B (en
Inventor
李海
耿若琳
侯舒娟
张钦
宋政育
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Institute of Technology BIT
Original Assignee
Beijing Institute of Technology BIT
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Institute of Technology BIT filed Critical Beijing Institute of Technology BIT
Priority to CN202010414567.9A priority Critical patent/CN111726301B/en
Publication of CN111726301A publication Critical patent/CN111726301A/en
Application granted granted Critical
Publication of CN111726301B publication Critical patent/CN111726301B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/25Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0882Utilisation of link capacity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0894Packet rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Multimedia (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

The invention discloses a congestion control method and a congestion control system for guaranteeing video quality in a real-time video, which can quickly respond to bandwidth change, overcome the defect of excessive increase of code rate, improve the tracking speed of the code rate on the bandwidth, improve the utilization rate of the bandwidth and overcome the defect of network congestion caused by excessive increase of the code rate. The specific scheme is as follows: video data packets are received in real time and a delay gradient is calculated. Carrying out overload detection on the current network state according to the delay gradient to obtain a current network state signal; the current network state signal is an overload state signal overload, a Normal state signal Normal or a low load state signal underrun. And constructing a finite state machine, and carrying out state conversion according to the current network state signal. And calculating the code rate according to the current state of the state machine. Based on the calculated next time tiAnd setting the sending code rate of the video data packet by the code rate at the moment.

Description

Congestion control method and system for guaranteeing video quality in real-time video
Technical Field
The invention relates to the technical field of network transmission, in particular to a congestion control method and a congestion control system for guaranteeing video quality in real-time video.
Background
Network congestion is a common network transmission problem in datagram switching networks based on IP protocols, and has a serious influence on the quality of network transmission, and network congestion is one of the main causes of network throughput reduction, network packet loss and the like, and these problems make upper-layer applications unable to effectively utilize network bandwidth to obtain a high-quality network transmission effect. Especially in the communication field, the communication quality is seriously affected by the problems of packet loss, delay, jitter and the like caused by network congestion, and if the problems cannot be solved well, a communication product cannot be normally used in a real environment.
The gcc (google con gesteroncontrol) congestion control algorithm is mainly divided into two parts: one is packet loss based congestion control and one is delay based congestion control. The two congestion control algorithms are respectively realized at the sending end and the receiving end, the estimated bandwidth calculated by the congestion control algorithm of the receiving end can be fed back to the sending end through a remb message of RTCP, the sending end synthesizes the results of the two control algorithms to obtain a final sending code rate, and sends a data packet according to the code rate.
The basic idea of congestion control based on packet loss is to judge the congestion degree of a network according to the amount of packet loss, and if the packet loss is more, the network is considered to be more congested, and the sending rate needs to be reduced to relieve the network congestion; if no packet is lost, this indicates that the network condition is good, and at this time, the transmission code rate can be increased, and whether more bandwidth is available or not can be detected upwards. Based on the congestion control of delay, the GCC uses the delay gradient to judge the congestion degree of the network, and the algorithm thereof is divided into several parts: time-of-arrival filter, overload detector, rate controller.
After the original GCC congestion control algorithm is applied to the system, when the bandwidth situation is changed from poor to good, the code rate is still maintained at a lower level, bandwidth waste is caused, and the quality of a video received by a user is poor. Based on this shortcoming, the algorithm is improved.
The existing GCC congestion control algorithm has the following defects: when the bandwidth is increased from low, the code stream calculated by the algorithm is much lower than the bandwidth, and the change of the bandwidth is not quickly tracked to improve the code rate. The reason is that when the input signal of the state machine is under use, no matter which state the current state is in, the secondary state is hold, and when the current state is in the hold state, the code rate change strategy is kept unchanged, so that the code rate is not increased in real time; once the code rate is increased, the increased code rate is too high and exceeds the range of the bandwidth, so that network congestion is caused, packet loss is increased, and video is blocked, and the reasons are that multiplicative increase is adopted when the code rate is increased, and the increased code rate is too large and exceeds the range of the bandwidth.
Figure 1 shows the bandwidth tracking effect of a conventional GCC congestion control algorithm. When the bandwidth fluctuates for a short time, the sensitivity of detecting low bandwidth is high, the low bandwidth can be tracked within 1-2s, but the low bandwidth is not sensitive to bandwidth increase, and the code rate is slowly increased. The curve in the lower graph reflects the rate change curve of the congestion control algorithm before optimization when the bandwidth changes once in 12 seconds, and it can be seen from the graph that the rate is maintained at a low rate when the bandwidth increases, and the rate is delayed by 10 seconds in response to the increase of the bandwidth, and the rate is increased by more than 300 kbps.
It can be seen that the GCC congestion control algorithm is conservative in policy, cannot quickly reflect and utilize available bandwidth resources, and is not applicable to real-time video communication emphasizing video quality; the code rate increase strategy causes the code rate to be increased too much, thus aggravating network congestion and packet loss. The existing congestion control algorithm has the disadvantages of slow tracking speed of bandwidth in the video transmission process, improper speed increase and incapability of meeting the requirements.
Disclosure of Invention
In view of this, the present invention provides a congestion control method and system for guaranteeing video quality in a real-time video, which can quickly respond to bandwidth changes, overcome the defect of excessive increase of the bitrate, increase the tracking speed of the bitrate on the bandwidth, increase the bandwidth utilization rate, and overcome the defect of network congestion caused by excessive increase of the bitrate.
In order to achieve the purpose, the technical scheme of the invention is as follows: a congestion control method for guaranteeing video quality in real-time video comprises the following steps:
step one, receiving a video data packet in real time and calculating a delay gradient.
Secondly, carrying out overload detection on the current network state according to the delay gradient to obtain a current network state signal; the current network state signal is an overload state signal overload, a Normal state signal Normal or a low load state signal underrun.
Step three, constructing a finite state machine: the method comprises a code rate reduction state Decrease, a code rate maintenance state Hold and a code rate Increase state Increate, wherein an initial state of a finite state machine is preset, a current network state signal is input into the finite state machine, and if the input is Overuse, the finite state machine is directly converted into a Decrease state; if the input is Normal, the finite state machine is directly converted into the Hold state; if the input is underrun and the current state of the finite-state machine is Decrease, the finite-state machine is converted into the Hold state; if the input is Underrun and the current state of the finite state machine is not Decrease, the finite state machine transitions to Incase state.
And step four, according to the current state of the state machine, calculating the code rate according to the following mode:
1) when the current state of the state machine is an Increase state and the difference of the distance detection bandwidths is larger than a set threshold value, the next moment is tiThe code rate at the moment is:
Ar(ti)=max(min(Ar(ti-1)+max(0.2×Ar(ti-1),1000),1.4×incoming_bitrate),incoming_bitrate)
wherein A isr(ti) Is tiThe code rate of the moment; a. ther(ti-1) For the current time instant, i.e. ti-1The code rate of the moment; the incoming _ bitrate is a received data rate calculated according to the statistics of received video data packets; calculating whether the difference of the distance detection bandwidth is greater than a set threshold value according to the rate of receiving the video data packet;
2) when the current state of the state machine is an Increase state and the difference of the distance detection bandwidth is not greater than a set threshold value, the next moment is tiThe code rate at a time is
Ar(ti)=max(min(Ar(ti-1)+max(averOfPacket,1000),1.4×incoming_bitrate),incoming_bitrate)
Wherein averOfPacket is the average data volume of the video data packet, and the incoming _ bitrate is the received data bitrate obtained by statistical calculation according to the received video data packet;
averOfPacket=bits_per_frame/packets_per_frame
wherein bits _ per _ frame is the amount of data per frame, and packets _ per _ frame is the number of packets contained in a frame;
3) when the current state of the state machine is the Decrease state, the next moment is tiThe code rate at a time is
Ar(ti)=min(0.75×incoming_bitrate,Ar(ti-1))
Wherein the incoming _ bitrate is a received data bitrate statistically calculated from received video data packets;
4) when the current state signal of the state machine is Hold, the code rate is kept unchanged, namely the next moment tiThe code rate at the moment is equal to the current moment ti-1The code rate of the moment;
step five, according to the calculated next time tiAnd setting the sending code rate of the video data packet by the code rate at the moment.
Further, step one, receiving the video data packet in real time, and calculating the delay gradient, specifically:
presetting a time interval of a data packet group, wherein all video data packets received in the time interval of one data packet group are a group; for a current group of video data packets, the arrival time of the last video data packet minus the sending time of the first video data packet is taken as a time delay; the difference between the time delay of the current group of video data packets and the time delay of the last group of video data packets is used as the delay gradient of the current group of video data packets.
Further, the second step specifically comprises:
presetting overload threshold Th1And a low load threshold Th0If the retardation gradient is greater than overThreshold Th1Then the current network status signal is overflow.
If the delay gradient is less than the low-load threshold Th0The current network status signal is underrun.
If the delay gradient is at [ Th0,Th1]Within the range, the current network state signal is Normal.
Further, in the fourth step, calculating whether the difference between the distance detection bandwidths is greater than a set threshold according to the rate of receiving the video data packet, specifically:
the receiving rate of the video data packets is integrating _ bitrate, an initial value of an average maximum bitrate avg _ max _ bitrate is set as the receiving rate of the first group of video data packets, and the average maximum bitrate avg _ max _ bitrate updated every group of video data packets is:
avg_max_bitrate=(1-α)×avg_max_bitrate_last+α×incoming_bitrate
where α is a set constant coefficient, the constant coefficient may be set empirically in the present invention, for example, the constant coefficient α may be set to 0.05 in the embodiment of the present invention.
Updating the maximum code rate variance var _ max _ bitrate as:
var_max_bitrate=(1-α)×var_max_bitrate_last+α×(avg_max_bitrate-incoming_bitrate)2
updating the standard deviation std _ max _ bitrate of the maximum code rate as follows:
Figure BDA0002494569930000051
when the Increase _ bitrate is greater than the sum of the avg _ max _ bitrate and the std _ max _ bitrate in the release state, the distance detection bandwidth is considered to have a larger difference. And (4) considering that the distance detection bandwidth has small difference every time the Decrease state is entered.
Further, the bits _ per _ frame is the amount of data per frame, and is updated after each rate calculation:
bits_per_frame=current_bitrate/frame_per_second。
where frame _ per _ second is the number of frames per second; current _ bitrate is the current bitrate.
Furthermore, the code rate adjustment time interval is set to be within 4s, and in each code rate adjustment time interval, the first step to the fifth step are executed to adjust the code rate.
Another embodiment of the present invention provides a congestion control system for guaranteeing video quality in a real-time video, the system including a video transmitting terminal, a video receiving terminal, a time filter, an overload detector, a state converter, and a code rate calculator;
and the video sending end is used for receiving the video data packet according to the sending code rate adjusted in real time.
And the video receiving end is used for receiving the video data packet in real time.
And a time filter for calculating a delay gradient according to the transmission time and the reception time of the video data packet.
The overload detector is used for carrying out overload detection on the current network state according to the delay gradient to obtain a current network state signal; the current network state signal is an overload state signal overload, a Normal state signal Normal or a low load state signal underrun.
A state transition machine to construct a finite state machine: the method comprises a code rate reduction state Decrease, a code rate maintenance state Hold and a code rate Increase state Increate, wherein an initial state of a finite state machine is preset, a current network state signal is input into the finite state machine, and if the input is Overuse, the finite state machine is directly converted into a Decrease state; if the input is Normal, the finite state machine is directly converted into the Hold state; if the input is underrun and the current state of the finite-state machine is Decrease, the finite-state machine is converted into the Hold state; if the input is Underrun and the current state of the finite state machine is not Decrease, the finite state machine transitions to Incase state.
And the code rate calculator is used for carrying out code rate calculation according to the current state of the state machine in the following way:
1) when the current state of the state machine is an Increase state and the difference of the distance detection bandwidths is larger than a set threshold value, the next moment is tiThe code rate at the moment is:
Ar(ti)=max(min(Ar(ti-1)+max(averOfPacket,1000),1.4×incoming_bitrate),incoming_bitrate)
wherein A isr(ti) Is tiThe code rate of the moment; a. ther(ti-1) For the current time instant, i.e. ti-1The code rate of the moment; the incoming _ bitrate is a received data rate calculated according to the statistics of received video data packets; calculating whether the difference of the distance detection bandwidth is greater than a set threshold value according to the rate of receiving the video data packet;
2) when the current state of the state machine is an Increase state and the difference of the distance detection bandwidth is not greater than a set threshold value, the next moment is tiThe code rate at the moment is:
Ar(ti)=max(min(Ar(ti-1)+max(averOfPacket,1000),1.4×incoming_bitrate),incoming_bitrate)
wherein averOfPacket is the average data volume of the video data packet, and the incoming _ bitrate is the received data bitrate obtained by statistical calculation according to the received video data packet;
averOfPacket=bits_per_frame/packets_per_frame
wherein bits _ per _ frame is the amount of data per frame, and packets _ per _ frame is the number of packets contained in a frame;
3) when the current state of the state machine is the Decrease state, the next moment is tiThe code rate at a time is
Ar(ti)=min(0.75×incoming_bitrate,Ar(ti-1))
Wherein the incoming _ bitrate is a received data bitrate statistically calculated from received video data packets;
4) when the current state signal of the state machine is Hold, the code rate is kept unchanged, namely the next moment tiThe code rate at the moment is equal to the current moment ti-1The code rate at the moment.
The code rate calculator calculates the sending code rate adjusted in real time and sends the sending code rate adjusted in real time to the video sending end.
Further, the video sending end adjusts the code rate according to the sending code rate adjusted in real time according to the set adjusting time interval.
Has the advantages that:
the invention provides a congestion control method and a system for ensuring video quality in real-time video, wherein the scheme is based on the traditional GCC congestion control algorithm scheme, and the original congestion control algorithm is optimized and adapted according to the requirements and technical characteristics of the system, so that the tracking speed of code rate on bandwidth is improved, the bandwidth utilization rate is improved, and the defect of network congestion caused by excessive increase of the code rate is overcome. The invention adopts a state conversion mechanism of modification optimization and a strategy of quickly responding to bandwidth change, overcomes the problem that the code rate cannot be quickly tracked when the bandwidth is increased, enables the calculated code rate to quickly track the bandwidth change, and improves the bandwidth utilization rate so as to meet the target requirement of improving the video picture quality within the range allowed by the bandwidth. The invention adopts the optimized code rate change function, overcomes the defect of excessive increase of the code rate and avoids aggravating network congestion.
Drawings
FIG. 1 is a diagram of the bandwidth tracking effect of a conventional GCC congestion control algorithm;
FIG. 2 is a diagram illustrating a state change trend of a finite state machine according to an embodiment of the present invention;
fig. 3 is a flowchart of a congestion control method for guaranteeing video quality in real-time video according to an embodiment of the present invention;
fig. 4 is a block diagram of a congestion control system for guaranteeing video quality in real-time video according to an embodiment of the present invention;
FIG. 5 is a diagram illustrating the effect of bandwidth tracking with 4 seconds as the variation interval in the bandwidth according to an embodiment of the present invention;
fig. 6 is a graph of the bandwidth tracking effect of the bandwidth at 6 second variation intervals in the embodiment of the present invention.
Detailed Description
The invention is described in detail below by way of example with reference to the accompanying drawings.
The invention provides a congestion control method for guaranteeing video quality in a real-time video, the flow of which is shown in figure 3, and the method is characterized by comprising the following steps:
step one, receiving a video data packet in real time and calculating a delay gradient.
In the embodiment of the invention, the code rate adjustment time interval is preset, a group of video data packets can be received in the code rate adjustment time interval, for a current group of video data packets, the arrival time of the last video data packet minus the arrival time of the first video data packet is used as the arrival time difference, the sending time of the last video data packet minus the sending time of the first video data packet is used as the sending time difference, and the difference between the arrival time difference and the sending time difference is used as the delay gradient of the current group of video data packets.
In the embodiment of the invention, the code rate adjustment time interval is set to be within 4s, and in each code rate adjustment time interval, the first step to the fifth step are executed to adjust the code rate.
Secondly, carrying out overload detection on the current network state according to the delay gradient to obtain a current network state signal; the current network state signal is an overload state signal overload, a Normal state signal Normal or a low load state signal underrun.
Presetting overload threshold Th1And a low load threshold Th0If the delay gradient is greater than the overload threshold Th1Then the current network status signal is overflow.
If the delay gradient is less than the low-load threshold Th0The current network status signal is underrun.
If the delay gradient is at [ Th0,Th1]Within the range, the current network state signal is Normal.
Step three, constructing a finite state machine: the method comprises a code rate reduction state Decrease, a code rate maintenance state Hold and a code rate Increase state Increate, wherein an initial state of a finite state machine is preset, a current network state signal is input into the finite state machine, and if the input is Overuse, the finite state machine is directly converted into a Decrease state; if the input is Normal, the finite state machine is directly converted into the Hold state; if the input is underrun and the current state of the finite-state machine is Decrease, the finite-state machine is converted into the Hold state; if the input is Underrun and the current state of the finite state machine is not Decrease, the finite state machine transitions to Incase state.
In the embodiment of the present invention, the state change trend of the constructed finite state machine is shown in fig. 2.
And step four, according to the current state of the state machine, calculating the code rate according to the following mode:
1) when the current state of the state machine is an Increase state and the difference of the distance detection bandwidths is larger than a set threshold value, the next moment is tiThe code rate at the moment is:
Ar(ti)=max(min(Ar(ti-1)+max(0.2×Ar(ti-1),1000),1.4×incoming_bitrate),incoming_bitrate)
wherein A isr(ti) Is tiThe code rate of the moment; a. ther(ti-1) For the current time instant, i.e. ti-1The code rate of the moment; the incoming _ bitrate is the received data rate statistically calculated from the received video data packets.
In the embodiment of the invention, whether the difference of the distance detection bandwidth is greater than the set threshold value is calculated according to the speed of receiving the video data packet.
The receiving rate of the video data packets is integrating _ bitrate, an initial value of an average maximum bitrate avg _ max _ bitrate is set as the receiving rate of the first group of video data packets, and the average maximum bitrate avg _ max _ bitrate updated every group of video data packets is:
avg_max_bitrate=(1-α)×avg_max_bitrate_last+α×incoming_bitrate
where α is a set constant coefficient, the constant coefficient may be set empirically in the present invention, for example, the constant coefficient α may be set to 0.05 in the embodiment of the present invention.
Updating the maximum code rate variance var _ max _ bitrate as:
var_max_bitrate=(1-α)×var_max_bitrate_last+α×(avg_max_bitrate-incoming_bitrate)2
updating the standard deviation std _ max _ bitrate of the maximum code rate as follows:
Figure BDA0002494569930000101
when the Increase _ bitrate is greater than the sum of the avg _ max _ bitrate and the std _ max _ bitrate in the Increase state, the difference of the distance detection bandwidth is considered to be greater than a set threshold, and the difference of the distance detection bandwidth is considered to be not greater than the set threshold when the Decrease state is entered.
2) When the current state of the state machine is an Increase state and the difference of the distance detection bandwidth is not greater than a set threshold value, the next moment is tiThe code rate at the moment is:
Ar(ti)=max(min(Ar(ti-1)+max(averOfPacket,1000),1.4×incoming_bitrate),incoming_bitrate)
wherein averOfPacket is the average data volume of the video data packet, and incoming _ bitrate is the received data rate calculated according to the statistics of the received video data packet.
averOfPacket=bits_per_frame/packets_per_frame
Wherein bits _ per _ frame is the amount of data per frame, and packets _ per _ frame is the number of packets contained in a frame; in the embodiment of the invention, the maximum packet is 1200 bytes according to the setting.
packets_per_frame=bits_per_frame/(8×1200)。
In the embodiment of the invention, the bits _ per _ frame is the data volume of each frame, and the bits _ per _ frame is updated after the code rate calculation is completed each time:
bits_per_frame=current_bitrate/frame_per_second;
where frame _ per _ second is the number of frames per second; current _ bitrate is the current bitrate.
3) When the current state of the state machine is the Decrease state, the next moment is tiThe code rate at a time is
Ar(ti)=min(0.75×incoming_bitrate,Ar(ti-1))
Wherein the incoming _ bitrate is a received data bitrate statistically calculated from received video data packets.
4) When the current state signal of the state machine is Hold, the code rate is kept unchanged, namely the next moment tiThe code rate at the moment is equal to the current moment ti-1The code rate of the moment;
step five, according to the calculated next time tiAnd setting the sending code rate of the video data packet by the code rate at the moment.
Another embodiment of the present invention further provides a congestion control system for guaranteeing video quality in a real-time video, as shown in fig. 4, the system includes a video sending end, a video receiving end, a time filter, an overload detector, a state converter, and a code rate calculator.
And the video sending end is used for receiving the video data packet according to the sending code rate adjusted in real time.
And the video receiving end is used for receiving the video data packet in real time.
A time filter for calculating a delay gradient according to a transmission time and a reception time of the video data packet; the calculations may be performed according to the calculations given in the above embodiments.
The overload detector is used for carrying out overload detection on the current network state according to the delay gradient to obtain a current network state signal; the current network state signal is an overload state signal override, a Normal state signal Normal or a low-load state signal underrun; the calculation can be made according to the overload detection method given in the above embodiment.
A state transition machine to construct a finite state machine: the method comprises a code rate reduction state Decrease, a code rate maintenance state Hold and a code rate Increase state Increate, wherein an initial state of a finite state machine is preset, a current network state signal is input into the finite state machine, and if the input is Overuse, the finite state machine is directly converted into a Decrease state; if the input is Normal, the finite state machine is directly converted into the Hold state; if the input is underrun and the current state of the finite-state machine is Decrease, the finite-state machine is converted into the Hold state; if the input is Underrun and the current state of the finite state machine is not Decrease, the finite state machine transitions to Incase state.
And the code rate calculator is used for carrying out code rate calculation according to the current state of the state machine in the following way:
1) when the current state of the state machine is an Increase state and the difference of the distance detection bandwidths is larger than a set threshold value, the next moment is tiThe code rate at the moment is:
Ar(ti)=max(min(Ar(ti-1)+max(0.2×Ar(ti-1),1000),1.4×incoming_bitrate),incoming_bitrate)
wherein A isr(ti) Is tiThe code rate of the moment; a. ther(ti-1) For the current time instant, i.e. ti-1The code rate of the moment; the incoming _ bitrate is a received data rate calculated according to the statistics of received video data packets; and calculating whether the difference of the distance detection bandwidth is greater than a set threshold value according to the rate of receiving the video data packets.
2) When the current state of the state machine is an Increase state and the difference of the distance detection bandwidth is not greater than a set threshold value, the next moment is tiThe code rate at the moment is:
Ar(ti)=max(min(Ar(ti-1)+max(averOfPacket,1000),1.4×incoming_bitrate),incoming_bitrate)
wherein averOfPacket is the average data volume of the video data packet, and the incoming _ bitrate is the received data bitrate obtained by statistical calculation according to the received video data packet;
averOfPacket=bits_per_frame/packets_per_frame
where bits _ per _ frame is the amount of data per frame and packets _ per _ frame is the number of packets contained in a frame. As set, the packet is 1200 bytes at maximum.
packets_per_frame=bits_per_frame/(8×1200)
3) When the current state of the state machine is the Decrease state, the next moment is tiThe code rate at a time is
Ar(ti)=min(0.75×incoming_bitrate,Ar(ti-1))
Wherein the incoming _ bitrate is a received data bitrate statistically calculated from received video data packets.
4) When the current state signal of the state machine is Hold, the code rate is kept unchanged, namely the next moment tiThe code rate at the moment is equal to the current moment ti-1The code rate at the moment.
The code rate calculator calculates the sending code rate adjusted in real time and sends the sending code rate adjusted in real time to the video sending end.
In the embodiment of the invention, the video sending end carries out code rate adjustment according to the set adjustment time interval and the sending code rate adjusted in real time.
Fig. 5 is a diagram illustrating a bandwidth tracking effect of a bandwidth at intervals of 4 seconds, and it can be seen that the congestion control scheme for guaranteeing video quality in real-time video provided by the embodiment of the present invention can meet the demand.
Fig. 6 shows a bandwidth tracking effect diagram with 6 seconds as a change interval of bandwidth, and it can be seen that the congestion control scheme for guaranteeing video quality in real-time video provided by the embodiment of the present invention can meet the demand.
In summary, the above description is only a preferred embodiment of the present invention, and is not intended to limit the scope of the present invention. Any modification, equivalent replacement, or improvement made within the spirit and principle of the present invention should be included in the protection scope of the present invention.

Claims (8)

1. A congestion control method for guaranteeing video quality in real-time video is characterized by comprising the following steps:
receiving a video data packet in real time and calculating a delay gradient;
secondly, carrying out overload detection on the current network state according to the delay gradient to obtain a current network state signal; the current network state signal is an overload state signal override, a Normal state signal Normal or a low-load state signal underrun;
step three, constructing a finite state machine: the method comprises a code rate reduction state Decrease, a code rate maintenance state Hold and a code rate Increase state Increate, wherein an initial state of a finite state machine is preset, a current network state signal is input into the finite state machine, and if the input is Overuse, the finite state machine is directly converted into a Decrease state; if the input is Normal, the finite state machine is directly converted into a Hold state; if the input is underrun and the current state of the finite-state machine is Decrease, converting the finite-state machine into a Hold state; if the input is underrun and the current state of the finite state machine is not Decrease, converting the finite state machine into an Incease state;
and step four, according to the current state of the state machine, calculating the code rate according to the following mode:
1) when the current state of the state machine is an Increase state and the difference of the distance detection bandwidths is larger than a set threshold value, the next moment is tiThe code rate at a time is
Ar(ti)=max(min(Ar(ti-1)+max(0.2×Ar(ti-1),1000),1.4×incoming_bitrate),incoming_bitrate)
Wherein A isr(ti) Is tiThe code rate of the moment; a. ther(ti-1) For the current time instant, i.e. ti-1The code rate of the moment; the incoming _ bitrate is a received data rate obtained by statistical calculation according to a received video data packet; calculating whether the difference of the distance detection bandwidth is greater than a set threshold value according to the rate of receiving the video data packet;
2) when the current state of the state machine is an Increase state and the difference of the distance detection bandwidth is not greater than a set threshold value, the next moment is tiThe code rate at a time is
Ar(ti)=max(min(Ar(ti-1)+max(averOfPacket,1000),1.4×incoming_bitrate),incoming_bitrate)
Wherein averOfPacket is the average data volume of the video data packet, and the incoming _ bitrate is the received data bitrate obtained by statistical calculation according to the received video data packet;
averOfPacket=bits_per_frame/packets_per_frame
wherein bits _ per _ frame is the amount of data per frame, and packets _ per _ frame is the number of packets contained in a frame;
3) when the current state of the state machine is the Decrease state, the next moment is tiThe code rate at a time is
Ar(ti)=min(0.75×incoming_bitrate,Ar(ti-1))
Wherein the incoming _ bitrate is a received data bitrate statistically calculated from received video data packets;
4) when the current state signal of the state machine is Hold, the code rate is kept unchanged, namely the next moment tiThe code rate at the moment is equal to the current moment ti-1The code rate of the moment;
step five, according to the calculated next time tiAnd setting the sending code rate of the video data packet by the code rate at the moment.
2. The method of claim 1, wherein step one, receiving video data packets in real time and calculating delay gradients, comprises:
presetting a time interval of a data packet group, wherein all video data packets received in the time interval of one data packet group are a group;
for a current group of video data packets, the arrival time of the last video data packet minus the sending time of the first video data packet is taken as a time delay;
the difference value of the time delay of the current group of video data packets and the last group of video data packets is used as the delay gradient of the current group of video data packets.
3. The method according to claim 1 or 2, wherein the second step is specifically:
presetting overload threshold Th1And a low load threshold Th0If said delay gradient is greater than said overload threshold Th1If the current network state signal is overflow, the current network state signal is overflow;
if the delay gradient is smaller than the low load threshold Th0If the current network state signal is underrun, determining that the current network state signal is underrun;
if the delay gradient is at [ Th0,Th1]And if so, the current network state signal is Normal.
4. The method according to claim 3, wherein in the fourth step, calculating whether the difference between the distance detection bandwidths is greater than a set threshold according to the rate of receiving the video data packets comprises:
the receiving rate of the video data packets is integrating _ bitrate, an initial value of an average maximum bitrate avg _ max _ bitrate is set as the receiving rate of the first group of video data packets, and the average maximum bitrate avg _ max _ bitrate updated every group of video data packets is:
avg_max_bitrate=(1-α)×avg_max_bitrate_last+α×incoming_bitrate
wherein alpha is a set coefficient constant;
updating the maximum code rate variance var _ max _ bitrate as:
var_max_bitrate=(1-α)×var_max_bitrate_last+α×(avg_max_bitrate-incoming_bitrate)2
updating the standard deviation std _ max _ bitrate of the maximum code rate as follows:
Figure FDA0002494569920000031
in the Increase state, if the receiving code rate integrating _ bitrate is greater than the sum of the avg _ max _ bitrate and the std _ max _ bitrate, the difference of the distance detection bandwidth is considered to be greater than a set threshold, and the difference of the distance detection bandwidth is considered to be not greater than the set threshold when the device enters the Decrease state every time.
5. The method of claim 1, 2 or 4, wherein the bits _ per _ frame is the amount of data per frame, and the bits _ per _ frame is updated after each rate calculation:
bits_per_frame=current_bitrate/frame_per_second
where frame _ per _ second is the number of frames per second; current _ bitrate is the current bitrate.
6. The method of claim 1, wherein the code rate adjustment time interval is set to be within 4s, and the code rate adjustment is performed in steps one to five in each code rate adjustment time interval.
7. A congestion control system for guaranteeing video quality in real-time video is characterized by comprising a video sending end, a video receiving end, a time filter, an overload detector, a state converter and a code rate calculator;
the video sending end is used for receiving the video data packet according to the sending code rate adjusted in real time;
the video receiving end is used for receiving a video data packet in real time;
the time filter is used for calculating a delay gradient according to the sending time and the receiving time of the video data packet;
the overload detector is used for carrying out overload detection on the current network state according to the delay gradient to obtain a current network state signal; the current network state signal is an overload state signal override, a Normal state signal Normal or a low-load state signal underrun;
the state transition machine is used for constructing a finite state machine: the method comprises a code rate reduction state Decrease, a code rate maintenance state Hold and a code rate Increase state Increate, wherein an initial state of a finite state machine is preset, a current network state signal is input into the finite state machine, and if the input is Overuse, the finite state machine is directly converted into a Decrease state; if the input is Normal, the finite state machine is directly converted into a Hold state; if the input is underrun and the current state of the finite-state machine is Decrease, converting the finite-state machine into a Hold state; if the input is underrun and the current state of the finite state machine is not Decrease, converting the finite state machine into an Incease state;
the code rate calculator is used for calculating the code rate according to the current state of the state machine in the following mode:
1) when the current state of the state machine is an Increase state and the difference value of the distance detection bandwidth is larger than a set threshold value, the next moment is tiThe code rate at a time is
Ar(ti)=max(min(Ar(ti-1)+max(averOfPacket,1000),1.4×incoming_bitrate),incoming_bitrate)
Wherein A isr(ti) Is tiThe code rate of the moment; a. ther(ti-1) For the current time instant, i.e. ti-1The code rate of the moment; the incoming _ bitrate is a received data rate calculated according to the statistics of received video data packets; calculating whether the difference value of the distance detection bandwidth is greater than a set threshold value according to the rate of receiving the video data packet;
2) when the current state of the state machine is an Increase state and the difference of the distance detection bandwidth is not greater than a set threshold value, the next moment is tiThe code rate at the moment is:
Ar(ti)=max(min(Ar(ti-1)+max(averOfPacket,1000),1.4×incoming_bitrate),incoming_bitrate)
wherein averOfPacket is the average data volume of the video data packet, and the incoming _ bitrate is the received data bitrate obtained by statistical calculation according to the received video data packet;
averOfPacket=bits_per_frame/packets_per_frame
wherein bits _ per _ frame is the amount of data per frame, and packets _ per _ frame is the number of packets contained in a frame;
3) when the current state of the state machine is the Decrease state, the next moment is tiThe code rate at a time is
Ar(ti)=min(0.75×incoming_bitrate,Ar(ti-1))
Wherein the incoming _ bitrate is a received data bitrate statistically calculated from received video data packets;
4) when state machineWhen the current state signal is Hold, the code rate remains unchanged, i.e. the next time tiThe code rate at the moment is equal to the current moment ti-1The code rate of the moment;
and the code rate calculator calculates the obtained real-time adjusted sending code rate and sends the obtained real-time adjusted sending code rate to the video sending end.
8. The system of claim 7, wherein the video sending end performs a code rate adjustment according to the real-time adjusted sending code rate according to a set adjustment time interval.
CN202010414567.9A 2020-05-15 2020-05-15 Congestion control method and system for guaranteeing video quality in real-time video Active CN111726301B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010414567.9A CN111726301B (en) 2020-05-15 2020-05-15 Congestion control method and system for guaranteeing video quality in real-time video

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010414567.9A CN111726301B (en) 2020-05-15 2020-05-15 Congestion control method and system for guaranteeing video quality in real-time video

Publications (2)

Publication Number Publication Date
CN111726301A true CN111726301A (en) 2020-09-29
CN111726301B CN111726301B (en) 2022-03-22

Family

ID=72564525

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010414567.9A Active CN111726301B (en) 2020-05-15 2020-05-15 Congestion control method and system for guaranteeing video quality in real-time video

Country Status (1)

Country Link
CN (1) CN111726301B (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112291824A (en) * 2020-11-23 2021-01-29 武汉长江通信智联技术有限公司 Wireless video low-delay transmission method in 5G network
CN112653635A (en) * 2020-12-23 2021-04-13 百果园技术(新加坡)有限公司 Congestion control algorithm improvement method, device, equipment and storage medium
CN115801639A (en) * 2022-08-01 2023-03-14 天翼云科技有限公司 Bandwidth detection method and device, electronic equipment and storage medium
CN116260799A (en) * 2023-05-16 2023-06-13 北京庭宇科技有限公司 Method for adjusting network state and electronic equipment
CN115801639B (en) * 2022-08-01 2024-06-07 天翼云科技有限公司 Bandwidth detection method and device, electronic equipment and storage medium

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109905326A (en) * 2019-03-26 2019-06-18 武汉大学 A kind of rate drawdown parameter optimization method based on the Congestion Level SPCC factor

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109905326A (en) * 2019-03-26 2019-06-18 武汉大学 A kind of rate drawdown parameter optimization method based on the Congestion Level SPCC factor

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
GAETANO CARLUCCI 等: "Congestion Control for Real-time Communications:a comparison between NADA and GCC", 《2016 24TH MEDITERRANEAN CONFERENCE ON CONTROL AND AUTOMATION (MED)》 *
GAETANO CARLUCCI 等: "Congestion Control for Web Real-Time Communication", 《IEEE/ACM TRANSACTIONS ON NETWORKING》 *
GAETANO CARLUCCI 等: "Modelling and control for web real-time communication", 《53RD IEEE CONFERENCE ON DECISION AND CONTROL》 *
LEILEI WU 等: "GCC-β: Improving Interactive Live Video Streaming via an Adaptive Low-Latency Congestion Control", 《ICC 2019 - 2019 IEEE INTERNATIONAL CONFERENCE ON COMMUNICATIONS (ICC)》 *
LUCA DE CICCO 等: "Understanding the Dynamic Behaviour of the Google Congestion Control for RTCWeb", 《2013 20TH INTERNATIONAL PACKET VIDEO WORKSHOP》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112291824A (en) * 2020-11-23 2021-01-29 武汉长江通信智联技术有限公司 Wireless video low-delay transmission method in 5G network
CN112291824B (en) * 2020-11-23 2022-10-04 武汉长江通信智联技术有限公司 Wireless video low-delay transmission method in 5G network
CN112653635A (en) * 2020-12-23 2021-04-13 百果园技术(新加坡)有限公司 Congestion control algorithm improvement method, device, equipment and storage medium
CN115801639A (en) * 2022-08-01 2023-03-14 天翼云科技有限公司 Bandwidth detection method and device, electronic equipment and storage medium
CN115801639B (en) * 2022-08-01 2024-06-07 天翼云科技有限公司 Bandwidth detection method and device, electronic equipment and storage medium
CN116260799A (en) * 2023-05-16 2023-06-13 北京庭宇科技有限公司 Method for adjusting network state and electronic equipment

Also Published As

Publication number Publication date
CN111726301B (en) 2022-03-22

Similar Documents

Publication Publication Date Title
CN111726301B (en) Congestion control method and system for guaranteeing video quality in real-time video
US5892754A (en) User controlled adaptive flow control for packet networks
US7616572B2 (en) Call admission control/session management based on N source to destination severity levels for IP networks
US8868735B2 (en) Wide area network optimization
WO2017148260A1 (en) Voice code sending method and apparatus
EP2255535B1 (en) Device and method for adaptation of target rate of video signals
RU2450468C2 (en) System and method to adapt to network congestion
CN108401128B (en) Congestion control method in video call
EP2563034B1 (en) Dynamic Bandwidth Re-Allocation
CN105430532A (en) Control method and system for adaptive adjustment of video data transmission
WO2017000719A1 (en) Congestion control method and device based on queue delay
KR100728275B1 (en) APPARATUS AND METHOD FOR VARYING THE BANDWIDTH OF SERVICE ON QoS NETWORK
CN111935441B (en) Network state detection method and device
KR100333259B1 (en) Method for adapting committed information rate over frame relay switched network
WO2020253488A1 (en) Method and device for congestion control, communication network, and computer storage medium
KR20030089708A (en) Method of controlling a queue buffer
US20070115846A1 (en) Method for controlling data throughput in a storage area network
US20090010165A1 (en) Apparatus and method for limiting packet transmission rate in communication system
JPWO2006054442A1 (en) Transmitting apparatus, receiving apparatus, and communication system
CN106789385B (en) Video stream sending method, sending device and network camera
CN111193673B (en) Data transmission rate control method, system and user equipment
CN113206800B (en) Message caching method and device and network equipment
CN112995048B (en) Blocking control and scheduling fusion method of data center network and terminal equipment
CN111263102B (en) ViLTE video call congestion control method and system based on delay gradient accumulation
CN111741249B (en) Network congestion detection method and device

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant