210 likes | 349 Views
Layered Range Multicast for Video On Demand. Duc A. Tran Kien A. Hua Tai T. Do. Agenda. Introduction Layered Range Multicast (LRM) Network Model Quality of Service Overlay Cache Design Service Procedure Performance Evaluation Conclusion. Introduction. Problems
E N D
Layered Range Multicast for Video On Demand Duc A. Tran Kien A. Hua Tai T. Do
Agenda • Introduction • Layered Range Multicast (LRM) • Network Model • Quality of Service • Overlay Cache Design • Service Procedure • Performance Evaluation • Conclusion
Introduction • Problems • Clients requests arrive at different times cannot be batched to share a single multicast stream easily • VoD services to heterogeneous clients
Introduction • Layered Range Multicast (LRM) • Layered video coding • Video streams are encoded into several layers • Video quality improves by receiving more layers • “Range Multicast” • Transmit a range of continuous frames to the participating clients • If requested play point is in the range, new clients can still join a multicast group without additional server bandwidth
Layered Range Multicast (LRM) • Rationale • Prolong the usefulness of a multicast stream • Overview • Root node, non-Root nodes (application-level routers) • Clients receive video stream from root with QoS, through some non-root nodes • Non-root nodes cache some video streams layers
Root NR NR NR client client client client client client Network Model • LRM-enable nodes • Interconnected by unicast path • Root nodes, non-Root nodes • Root Nodes • Front-end node for video server • Store full quality (all layers) video streams • Non-Root Nodes • Representatives of local community of clients, Rep(X)
Quality of Service • Video Stream V is encoded into L layers • Basic layer: v1 • Enhancement layers: v2, v3, …,vL • Decode v1 and some enhancement layers according to the required QoS • QoS level j = Vj (={v1, v2, …,vj}) • Clients request video stream by specifying j
C2L . . . C1L . . . . . . CNL C2L-1 CNL-1 C1L-1 CN1 C11 C21 CN C1 C2 Overlay Cache Design … • Non-root nodes reserve an amount of local storage • Divided into equally sized chunks C1, C2, …, CN • CK is divided into sub-chunks, CK1, CK2, …, CKL • N depends on the capability of the node
Caching Algorithm • When Vj arrives • For each layer l of Vj (l ∈ {1, 2, …, j}) • Find an empty sub-chunk of layer l for caching vl • Otherwise, select a sub-chunk of layer l that is in “free” state for the longest time • Otherwise, vl will not be cached
Service Procedure • Seeking Phase • Client node X requests a video Vj (video V with quality level j) to Rep(X) • Rep(X) send request find(X, V, J) to all adjacent-on-overlay nodes
Seeking Phase • On receiving find() • Root node return found() • Non-Root node • Compute list L = {vl1, vl2, …, vlj} ⊂ Vjs.t. it got L in cache • If L is empty, forward find() to adjacent nodes, except root • If L is non-empty, send found(L) to Rep(X) • Rep(X) receives (R1, L1), (R2, L2), …, (Rn, Ln)
Seeking Phase • Use the following greedy algorithm to select nodes: • Set L = EMPTY, i = 0 • Put all the current foundmessages into Qx • WHILE (L = Vj) • WHILE (Qx = EMPTY) Waiting • Dequeue (Ri, Li) from Qx • Send node Ri an ackmessage asking it to send the layers specified in Li \ L to the client • L = L ∪ Li, i = i + 1 • If there are more coming foundmessages to Rep(X), then put them into Qx • Send each of the rest of nodes in Qx a nackmessage to deny its offer.
Transmission & Leaving Phase • Transmission Phase • Each serving node transmits to client a stream consisting of the layers specified in ack • Delivery path is the reversal of the path that the serving node received find() from Rep(X) • Leaving Phase • Client send quit() to Rep(X) • Rep(X) send quit() to all serving nodes
Data provided by intermediate nodes Total amount of data provided Performance Evaluation • Metrics • Bandwidth Saving • System Throughput • Ratio of served requests to total simulated time
Conclusion • LRM provides: • Better service latency • Reduced server bandwidth demand • Efficient and feasible implementation on Internet
Thought • Is layering existing video contents (e.g. DVD, VCD, …) feasible? • What is the performance impact when non-root nodes fail?