Title: It is not Beauty I Demand
1It is not Beauty I Demand George Darley
2Video on Demand
- One video server
- Many video data
- Many clients
- Client want to watch at any time
3Assumptions
- Constant bitrate stream
- Perfect network transport
4Unicast Solution
- One channel per client
- No start-up latency
- No client buffer
- Low client bandwidth
- Large server bandwidth
- Not scalable
5Multicast Solution
- Batching
- aggregate client requests
- serve using multicast
- clients have to wait
- No client buffer
- Low client bandwidth
- Scheduling Policies for an On-Demand Video
Server with Batching - Dan, Sitaram, Shahabuddin, IBM
6Multicast Solution
- User-centered approach
- Scheduling data based on user requests
- Data-centered approach
- Dont care about user
- Just broadcast popular video
7Multicast Solution
- Batching
- Staggered Broadcast
8Staggered Broadcast
Video
C0
C1
C2
9Staggered Broadcast
- 2 hour video
- 5 minutes waiting time
- Number of channels
- 2 x 60 / 5 24
- Required bandwidth
1.5Mbps x 24 36Mbps
10Multicast Solution
- Batching
- Staggered Broadcast
- clients have to wait
- No client buffer
- Low client bandwidth
- Huge server bandwidth
11Multicast Solution
- Batching
- Staggered Broadcast
- Periodic Broadcast
12Periodic Broadcast
Video
C0
C1
C2
13Pyramid Broadcast
Video
C0
C1
C2
14Pyramid Broadcast
Video 1
Video 2
C0
C1
C2
15Pyramid Broadcast
Video
C0
C1
C2
16Analysis of Pyramid Broadcast
- Notations
- B Total available bandwidth
- Bv Bandwidth of video
- Tv Total length of each video
- K Number of segments per video
- Ti Length of segment i
- ? Factor in geometric series
17Channel Bandwidth
playback time Ti
i
i1
i1
Doh! Just miss it!
download time Ti1Bv/Bi
Download time for Ti1 needs to be smaller than
Ti for segment i1 to arrive in time.
18Channel Bandwidth
19? 2
20Start-up Latency
- Worst case waiting time T1
21Optimal ?
T1
?
2.5
22Storage Requirements
(TK TK-1)Bv
23Pyramid Broadcast
- Large client bandwidth (?KBv)
- Huge client buffer (7080 Tv)
24Permutation-based Pyramid Broadcast
C0
C1
C2
25Channel Bandwidth
playback time Ti
i
i1
i1
i1
i1
Doh! Just miss it!
download time Ti1Bv/Bi
X
X needs to be smaller than Ti for segment i1 to
arrive in time.
26Channel Bandwidth
p number of sub-channels per segments
27Client Latency
28Storage Requirement
- One channel at a time
- Can pause and wait
29Storage Requirement
pause
k-1
k-1
k
k
resume
Within time X, better not consume all data in
buffer.
X
30Storage Requirement
- Let buffer content be of size M
- Time to consume the buffer M/Bv
31Comparisons
Scheme Storage Servers BW Clients BW
Pyramid 70 ?KBv 4-5 Bv
Pyramid 20 (?p)KBv 2-3 Bv
Carter, Long and Paris Video on Demand
Broadcasting Protocols
32Pyramid Broadcasting
33Skyscraper Broadcasting
- Observations
- storage requirement is affected by size of the
largest chunk - So, lets limit the size of the largest chunk!
34Pyramid
Skyscraper
35Skyscraper Broadcasting
- Uses series
- 1 2 2 5 5 12 12 25 25 52 52 W W W
36Skyscraper Example
37Skyscraper Example
38Comparisons
Scheme Storage Servers BW Clients BW
Pyramid 70 ?KBv 4-5 Bv
Pyramid 20 (?p)KBv 2-3 Bv
Skyscraper 10 KBv 1-2 Bv
Carter, Long and Paris Video on Demand
Broadcasting Protocols
39Other schemes
- Pagoda Broadcasting 1 3 5 15 25 75 125
- Harmonic Broadcasting
- Equal segment size, varies bandwidth instead!
40Multicast Solution
- Batching
- Staggered Broadcast
- Periodic Broadcast
- Sending rate playback rate
- May need multiple channels
- Need additional client buffer
- Need to wait
41Multicast Solution
- Batching
- Staggered Broadcast
- Periodic Broadcast
- Patching
42Patching
Time
mcast
unicast
Client Request
43Patching
Patching Window W
Time
mcast
mcast
Client Request
44Grace Patching
- if W lt B
- client buffer videoW .. end
- unicast video0 .. W
- else
- mcast video0 .. end
45Example
- 30 minutes video
- 15 minutes buffer
- One request per minute
465.271.225
46Example
- What if patching window 5 min?
47Supporting VCR Operations
- Pause
- Fast Forward
- Rewind
- Forward Search
- Backward Search
- Slow Mo
48Two Types of Operations
- Continuous (all)
- Discrete Time (pause,ff,rwd)
49Discrete Time
- Easier to implement
- Simple in staggered broadcasting
50Continuous Time
- Requires buffering of future frames and previous
frames
Abram-Profeta and K.G. Shin, "Providing
Unrestricted VCR Functions in Multicast
Video-on-Demand Servers,"
51Normal Playback
Channel U
Before
Channel U
After
52Pause
Channel U
Before
Channel U
After
53Pause Too Long!
Channel U
Before
Channel U
After
54Channel I
Channel U
Before
Channel I
After
55FF
Channel U
Before
Channel U
After
56FF Too Far!
Channel U
Before
Channel I
After
57RWD
Channel U
Before
Channel U
After
58RWD Too Much!
Channel U
Before
Channel I
After
59Forward Search
Channel U
Before
Channel U
After
60Forward Search Too Far!
Channel U
Before
Channel I
After
61Backward Search
Channel U
Before
Channel U
After
62Backward Search
Channel U
Before
Channel I
After
Prefetched at Reverse Order, at Faster Rate
63Slow Motion
Channel U
Before
Channel U
After
64Slow Motion
Channel U
Before
Channel I
After
65The Aftermath
- When playback resumes, what to do with Channel I?
- Answer Merge back with Channel U
66Merging Operation
- Find a target channel whose play point is not
too far ahead
67Merging Case 1
Channel I
Before
Channel U
68Merging Case 1
During
Channel U
69Merging Case 1
After
Channel U
70Merging Case 2
Channel I
Before
Channel U
71Merging Case 2
Channel I
Before
Channel U
72Merging Case 2
Channel I
During
Channel U
73Merging Case 2
Channel I
During
Channel U
74Merging Case 2
After
Channel U
75Summary
- VoD broadcast protocols
- batching
- periodic broadcast
- patching
- Supporting VCR functionalities