Title: Rate Adaptations
1Rate Adaptations
2You are Here
Encoder
Decoder
Middlebox
Sender
Receiver
Network
3Senders Algorithm
- open UDP socket
- foreach video frame
- chop into packets
- add RTP header
- send to network
4Senders Algorithm
- open UDP socket
- foreach video frame
- chop into packets
- add RTP header
- send to network
- wait for 1/fps seconds
5Senders Algorithm
- open UDP socket
- foreach video frame
- chop into packets
- foreach packet
- add RTP header
- send to network
- wait for size/bps seconds
6Rules
- Transmission rate should match encoding rate
- Transmission should not be too bursty
7Two Approaches
- Just send at a fix rate
- or I hope the network can handle it approach
8Effects on TCP Simulation
From Sisalem, Emanuel and Schulzrinne paper
on Direct Adjustment Algorithm
9Effects on TCP
10Demo
- Effects of UDP on TCP without congestion control
11Two Approaches
- Just send at a fix rate
- or I hope the network can handle it approach
- Adapt transmission/encoding rate to network
condition
12How to Adapt?
- if network condition is bad
- reduce rate
- else if network condition is so-so
- do nothing
- else if network condition is good
- increase rate
13How to ..
- Know network condition is bad?
- increase/decrease rate?
14Adapting Output Rate
- if network condition is bad
-
- else if network condition is so-so
- do nothing
- else if network condition is good
15Question
16Observation 1
- Should never change your rate more than an
equivalent TCP
17Observation 2
- ? and ? should depend on network conditions and
current rate.
18Goal Fair Share of Bottleneck
- let r r current rate b bottleneck
bandwidth S current share
19S vs ?
?
S
1
20Value of ?
(Assuming one receiver)
21Limit of ?
- M packet size
- ? round trip time
- T period between evaluation of ?
22Limit of ?
- M packet size
- ? round trip time
- T period between evaluation of ?
23loss rate vs ?
?
1
1
loss rate
24Value of m
- where
- is the loss rate
- k is a constant
(Assuming one receiver)
25(No Transcript)
26What is Needed?
27Estimating b Packet Pair
28Estimating b Packet Pair
29Estimating b Packet Pair
30Evaluation
31More TCP-Friendly Rate Control
32TCP-Equation
Window size behavior in TCP/IP with constant loss
probability T. Ott, J. Kemperman, and M.
Mathis June 1997, HPCS 1997
33TCP-Equation
Equation-Based Congestion Control for Unicast
Applications Sally Floyd, Mark Handley, Jitendra
Padhye, and Joerg Widmer.August 2000. SIGCOMM
2000
34Another Transport Protocol
- Datagram Congestion Control Protocol (DCCP)
- Implements congestion control but not reliability
35Rules
- Transmission rate should match encoding rate
- Transmission should not be too bursty
36Rate Control
- Given a rate, how to encode the video with the
given rate?
37Reduce Frame Rate
38Reduce Frame Resolution
39Increase Quantization
40Drop AC components
41Trouble with Stored Video
- Reducing rate requires partial decoding and
re-encoding - Solution Layered Video
42Layered Video
43Layered Video
Layer 1
Layer 2
Layer 3
44Layering Scheme
45Layering Scheme
46Layering Scheme
30
8
2
30
8
2
0
30
-6
-1
0
0
-6
-1
1
0
0
0
1
0
0
0
0
47Layering Scheme
- Fine Granularity Scalability (FGS)
1 1 0 0 0 0 0 0
1 1 1 0 0 0 1 0
1 0 0 1 0 1 0 1
1 0 0 0 0 1 0 0
48Rate Adaptation
- To increase rate, send more layers
- To decrease rate, drop some layers
49MS Windows Streaming Media
50Intelligent Streaming
- Multiple-Bit-Rate Encoding
- Intelligent Bandwidth Control
- bit rate selection
- thinning
- Intelligent Image Processing
51Intelligent Streaming
- How exactly does it work?
- Sorry, its proprietary
52Is WSM TCP friendly?
- Measurements of the Congestion Responsiveness of
Windows Streaming Media - J. Nichols et. al., NOSSDAV 2004
- All figures taken from the original NOSSDAV
presentation
53(No Transcript)
54340kbps clip, 725kbps bottleneck
55Transmission is Bursty
56340kbps clip, 725kbps bottleneck
57548kbps Clip - 725kbps Bottleneck
581128kbps Clip - 725kbps Bottleneck
59725kbps Bottleneck
Buffering
Playout
Single Encoded Bit Rate
60725kbps Bottleneck
- Multiple Encoded Bit Rate
Buffering
Playout
61Conclusion
- Two phases buffering playout
- Not always TCP-friendly