Optimizing the Quality of Scalable Raj Kumar Rajendran Video Streams in P2P Networks Dan Rubenstein Dept of Electrical Engineering Columbia University • Video time-sliced fixed-bytesize epochs • Epoch 1 • – Minimizes waste and variability – Maximizes smoothness Time – In practice: future bandwidth availability not known • We develop on-line algorithms that allocates current bandwidth to download current or future parts of the video Bandwidth Time Solution Naïve Solutions Same-Index (Greedy) – Allocate all currently available bandwidth to nearest future epoch • video displayed • Smallest-Bin (Conservative) – Allocate all current bandwidths to future epoch with fewest layers –Waste: the amount of unused available bandwidth –Smoothness: the average change in video quality –Variability: the standard deviation Bandwidth from a single Epoch Largest Hill: Allocate to earliest epoch maintaining slope Our Solution: Constrained Allocators – Problem: Large variation in the quality of •Formulate measures of video quality We identify an off-line algorithm when future bandwidth availability is known We prove optimality: Video bitrate Buffering • Novel Prefetching Approach: Epoch 5 • How do we use available bandwidth chunks of current epoch? Approach • • Attempt to maximize utilization, given smoothness constraints Bound the downhill slope of allocations Three variants Mean Hill: Most empty epoch smaller than mean, maintaining slope Wide Hill: Earliest epoch smaller than mean maintaining slope – Problem: Wastes bandwidth Video Quality of Constrained Allocators – 0 0.57 1.04 1.51 1.91 2.28 2.62 2.94 • 3.9 Best SameIndex SmallestBin LargeHill WideHill MeanHill 3.5 3.3 3.1 2.9 2.7 2.5 0.57 1.04 1.51 1.91 2.28 2.62 2.94 Std. Dev (chunks/period) – – Mean-hill and wide hill allocators perform close to the bound Largest hill performs a little worse Naïve Allocators perform poorly 64 1. 73 1. 92 1. 08 2. 32 2. 67 2. 86 97 64 4 Results – 3.7 0 1. – 0.1 73 0.5 0.2 1. 1 0.3 92 1.5 0.4 1. – – Best SameIndex SmallestBin LargeHill WideHill MeanHill Best SameIndex SmallestBin LargeHill WideHill MeanHill 0.5 08 2 0.6 2. 2.5 0.7 32 0.57 1.04 1.51 1.91 2.28 2.62 2.94 Input: bandwidth traces obtained while downloading video from a P2P network Tested on DSL and T1 Video downloaded from multiple peers Waste, smoothness, Variabilty measured with increasing epoch lengths 2. – 0 2. Constrained Allocators vastly outperform naïve allocators and are close to the bound The naïve allocators perform well on one of the measures but poorly overall Experiment 67 – • 2. Results 2 97 • 4 Best SameIndex SmallestBin LargeHill WideHill MeanHill 2. – 6 Bandwidth Trace Experiments: Smoothness – Input bandwidth simulated Increasing variance, constant mean Waste,smoothness, variability measured Best SameIndex SmallestBin LargeHill WideHill MeanHill 8 Variability – Waste% Experiment Smoothness • Viewing scalably encoded videos in P2P systems without smart prefecthing strategies yields a poor viewing experience • We provide an off-line algorithm that provides the optimal performance given bandwidth constraints • We provide on-line algorithms that perform close to the optimum and vastly outperform naïve algorithms • 10 Variability Impact Simulation Results Waste% 12 10 9 8 7 6 5 4 3 2 1 0 2. Experimental Verification 86 •How do we maximize video quality timevarying bandwidth? Bitrate 2. • Challenge: what should • Video streaming in P2P available bandwidth be systems is a potential killer app used to prefetch? – Downloading all layers of • Bandwidth availability to current portion can create a client fluctuates unpleasant variation in unpredictably and rapidly video quality as bandwidth with time availability changes • Solution: use scalable – Prefetching one layer at a coding (FGS) to break time unnecessarily forces viewing of initial portion of up video into M layers video at lowest quality • Viewing more layers = higher fidelity viewing Discretized Model: Best SameIndex SmallestBin LargeHill WideHill MeanHill 3.8 3.6 3.4 3.2 3 2. 97 2. 86 2. 67 2. 32 2. 08 1. 92 1. 73 1. 64 The Problem Method Std. Dev (chunks/period)