WebRTC QoS

Outline

Bandwidth Estimation

       Delay Based Control
       Loss Based Control

Error Concealment

       RTP  Retransmission(NACK)
       FEC
       PLI/SLI/RPSI

Packet Arrival Model

Group of Packets, merge together the packets arrived  in a burst.
Using Abstract Send Time – RTP Head Extension.
T(i) – T(i-1)  means  the difference of the departure time of packet group i and i-1. 
t(i) – t(i-1)  means the difference of the arrival time of the packet group i and i-1
The difference of delay between the packet group i and i-1 is defined as d(i) = t(i) – t(i-1) – (T(i) – T(i-1))
Model the d(i) as stochastic process w:   d(i) = w(i) = m(i) + v(i),  m(i) is the mean of stochastic process w,   v(i) is the noise. 

Arrival Time Filter

Model the m(i+1) = m(i) + u(i),  u(i) is the Gaussion statistic with the zero mean and variance q(i), q(i) is RECOMMANDED equal to 10^-3.
d(i) = m(i) + v(i),  v(i) is zero mean white noise var_v = E{v(i)^2}.
z(i) = d(i) – m_hat(i), where m_hat(i) is the estimation of m(i).
m_hat(i) = m_hat(i-1)  + z(i) * k(i)
k(i) = (e(i-1) + q(i))/(var_v_hat(i) + e(i-1) + q(i))
e(i) = (1-k(i))*(e(i-1)+q(i))
var_v_hat(i) = max(alpha*var_v_hat(i-1) + (1-alpha)*z(i)^2, 1)
alpha = (1-chi)^(30/1000*f_max),   where f_max = max{1/(T(j) – T(j-1)} for j in i-K+1, … , i,  chi is the filter coefficient, typically choose as a number in [0.001, 0.1].

Over-use Detector

The output of  Arrival Time Filter is the delay estimation m(i).
m(i) is compared with the threshold del_var_th(i), An estimate above the threshold is considered as an indication of over-use, but over-use will be signaled only if over-use has been detected for at least overuse_time_th milliseconds, however, if m(i) less than m(i-1), overuse will not be signaled.   Similarly, the underuse is detected when m(i) less than -del_var_th(i).  If neigher overuse or underuse is detected,  the detector will be in normal state. 
del_var_th(i) = del_var_th(i) + (t(i)-t(i-1))*K(i)*(|m(i)| - del_var_th(i-1)),  where del_var_th(is) is RECOMMANDED to clamp to the range [6, 600].

Rate Control

Delay Based Estimation
      R_hat_delay(i) = 1/T * sum(L(j)) for j from 1 to N(i)
      A_hat_delay(i) = A_hat_delay(i-1) + max(1000, alpha*expected_packet_size_bits) if under-use
       A_hat_delay(i) = beta*R_hat_delay(i),   beta is RECOMMANDED to 0.85 if over-use
Loss Based Estimation
      Do nothing if loss between 2% ~ 10%
      R_hat_loss(i) = R_hat(i-1)*(1 – 0.5*lossRate) if loss is more than 10%
      R_hat_lss(i) = R_hat(i-1)*(1+0.08) if loss is less than 2% 
Combined Rate Control
      R_hat = min(R_hat_loss, A_hat_delay)

REMB Format

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|V=2|P| FMT=15 | PT=206 | length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SSRC of packet sender |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SSRC of media source |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Unique identifier ’R’ ’E’ ’M’ ’B’ |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Num SSRC | BR Exp | BR Mantissa |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SSRC feedback |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
FMT = 15,   Application Layer Message.  
PT = 206,  Payload Specific Feedback Message

Retransmission and FEC Combined Error Concealment

FEC – Forward Error Correction
      RFC 5109 XOR FEC,  [m, 1] Pattern,   1 redundant packet for 1 packets group.
RTP Retransmission
      Retrasmission plays key roles in lossy network as our test. 
      How to build NACK feedback,   dependent on Video Jitter Buffer Status. 
      Sender/Receiver Delay Control,   lots of accuracy control here.  
PLI/SLI/RPSI
     To re-sync decoder with encoder. 

Reference:

Draft-ietf-rmcat-gcc-02
Draft-ietf-rtcweb-rtp-usage-26
Draft-alverstrand-rmcat-remb-03
RFC 3550  RTP
RFC 4584  Extended RTP Profile
RFC 5104  Codec Control Message in the RTP AVPF
Official Site:  www.webrtc.org

你可能感兴趣的:(多媒体)