Adaptive Video Streaming Over Internet Using Dynamic Video Transcoding By Lam Ling Shun, Felix
Content ► Background ► System Model ► Real-time Heuristic Rate Control Algorithm ► Trace-driven Simulation Results ► Conclusions and Future Research
Background ► Problem of no global QoS to Video streaming UDP – Packet losses TCP – Packet Delay Bandwidth Internet Video Quality Degradation
Background ► Solution 1: TCP-friendly streaming control Reduce network congestion Smoother Transmission Rate Controlled and predictable delay Examples: ► LIMD/H by Kim, Lu and Bharghavan [1] LIMD with packet loss differentiation ► SCP (Streaming Control Protocol) by Cen, Pu and Walpole [2] Combine rate-based and window-based flow control
Background ► Solution 2: Video Rate Adaptation Adapt the video content to available network bandwidth Examples: ► Jacobs and Eleftheriadis ’ s algorithm [3] Maintain Server buffer occupancy ► Cuetos and Ross ’ s algorithm [4] Maintain Client buffer occupancy Works well on TCP and other TCP-friendly streaming control [4]
System Model TCP
System Model – Server Side ► Transcoder MPEG-1 Transcoder Transcoder b max Video bit rate b max Transcoded Video bit rate Original Video Transcoded Video b min
System Model – Server Side ► Assumptions on Transcoder NEGLIGIBLE transcoding time CBR-encoded video Same b max along the video Constant b min along the video Note: In practice, b min varies along the video b max Transcoded Video bit rate b min
► Rate Control System Model – Server Side Rate Control Video bit rate b(t) TCP Throughput C(t) Client Buffer Occupancy B(t)
System Model – Server Side ► Rate Control (Cont ’ ) Goal ► Minimize probability of client buffer underflow ► Maximize average transcoded video bit rate Principle ► Maintain a certain level of client buffer occupancy (in terms of seconds worth of video data)
System Model – Server Side ► Rate Control (Cont ’ ) Slot-based Rate Control ► The video bit rate is determined for each video segment with playback duration M. ► Choice of M Small More adaptive to bandwidth fluctuation. Limited by the resolution of the Transcoder. Affect the complexity of the system. b max b min Transcoded Video bit rate Video time b1b1 b2b2 b3b3 b4b4 M M M M
System Model – Client Side ► Initial Prefetch Initially, the client prefetches up to B T seconds’ worth of video data with bit rate b max before decoding. BTBTBTBT T 0 ( Prefetch delay ) Transmission Time Client Buffer Occupancy BTBTBTBT b max Video time Video bit rate
Real-time Heuristic Rate Control Algorithm ► Immediately after a slot has been sent, the video bit rate for the next slot is calculated. ► Estimates of the TCP throughput and client buffer occupancy are used in the calculation. ► Reasons for estimating client buffer occupancy at the server: Reduce overhead of client feedback Compatibility with existing video clients, eg. MediaPlayer.
Real-time Heuristic Rate Control Algorithm ► Estimation of Customer Buffer Occupancy (B k ) Case 1: No client buffer underflow has occurred T0T0T0T0 BTBTBTBT TkTkTkTk Time when the k th slot has been sent T k -T 0 kM Cumulative Data Consumed Cumulative Data Transmitted 0 Transmission time Cumulative Video Data (seconds) B(t) t B k = B k ’ =kM – (T k -T 0 ) BkBk
Real-time Heuristic Rate Control Algorithm ► Estimation of Customer Buffer Occupancy (B k ) Case 2: Client Buffer Underflow has occurred Client buffer underflow found at the time the u th slot has been sent Transmission time Cumulative Video Data (seconds) TuTu TkTkTkTk uM uM+T k -T u kM BkBk B k = B k ’ =(k-u)M – (T k -T u ) The previous client buffer underflow encountered
Real-time Heuristic Rate Control Algorithm ► Estimation of average TCP throughput for sending the k+1 th slot (D k+1 ’ ) C i-W+1 … C i-W+2 CiCi ii-1i-W+2i-W+1TkTk C avg_W i+1 TCP throughput Transmission time D k+1 ’ =MIN(C i, C avg_W )
Real-time Heuristic Rate Control Algorithm
► Compute b k+1 : Case 1: B k ’ <= B T ► Target: B k+1 =B T ► B T = B k ’ +M - b k+1 M /D k+1 ’ Bk’Bk’ BTBT b k+1 M /D k+1 ’ M b k+1 =[1- (B T - B k ’ ) /M ] D k+1 ’
Real-time Heuristic Rate Control Algorithm ► Compute b k+1 : Case 2: B k ’ > B T ► Target: B k+1 =aB T +(1-a) B k ’, 0<=a<=1 ► a is used to trade off between average video bit rate and client buffer underflow ratio Bk’Bk’ BTBT b k+1 M /D k+1 ’ M aB T +(1-a) B k ’ =[1- a(B T - B k ’ ) /M ] D k+1 ’ b k+1 =[1- a(B T - B k ’ ) /M ] D k+1 ’
Real-time Heuristic Rate Control Algorithm ► Heuristic Algorithm For k = T 0 /M to n -1: Step 1: Compute B k ’ and D k ’ Step 2: Compute the value of b k+1 : If B k ’ <= B T b k+1 = [1-(B T - B k ’ )/M] D k+1 ’ b k+1 = [1-(B T - B k ’ )/M] D k+1 ’else b k+1 = [1-a(B T - B k ’ )/M] D k+1 ’ b k+1 = [1-a(B T - B k ’ )/M] D k+1 ’ Step 3: b k+1 =MIN(MAX(b k+1, b min ), b max )
Real-time Heuristic Rate Control Algorithm ► Problem of overestimating D k+1 D k+1 ’ >> D k+1 Bk’Bk’ BTBT b k+1 M /D k+1 ’ M b k+1 M /D k+1 Client buffer underflow!!
Real-time Heuristic Rate Control Algorithm ► Transmission Deadline Strategy (TDS) The transmission Deadline (X k+1 ) = The time at which the transmission of the k+1 th slot is expected to end = T k + b k+1 M /D k+1 ’ Any unsent data at the server buffer would be discarded at X k+1, a new slot would be formed Bk’Bk’ BTBT b k+1 M /D k+1 ’ M ’ b k+1 M ’ /D k+1 Probability of client buffer underflow reduced
Trace-driven Simulation Results ► Source of traces Throughput trace of a persistent TCP connection between University of Science and Technology of China (USTC) and CUHK Number of hops: 15 Time : 11:00 a.m. to 8:00 p.m. (9 hours) The 9-hour trace is divided into 9 1-hour traces for simulations
Trace-driven Simulation Results ► System settings b max = 1.1 Mbps b min = 200 Kbps B T = 5 seconds W = 2 M = 1 second B max = 50 MBytes
Trace-driven Simulation Results ► Maximum Average Video bit rate for underflow ratio = 0 CR DVT JE DVT-TDS
Trace-driven Simulation Results ► Maximum Average Video bit rate for underflow ratio = CR DVT JE DVT-TDS
Trace-driven Simulation Results ► Maximum Average Video bit rate for underflow ratio = CR DVT JE DVT-TDS
Trace-driven Simulation Results ► Predictability on Underflow Ratio DVT-TDS DVT CR
Trace-driven Simulation Results ► Predictability on Underflow Ratio DVT DVT-TDS CR
Trace-driven Simulation Results ► Predictability on Average video bit rate DVT-TDS CR DVT
Trace-driven Simulation Results ► Predictability on Average video bit rate DVT-TDS CR DVT
Conclusions and Future Research ► Conclusions DVT and DVT-TDS have much better performance than JE ’ s algorithm, and have comparable performance as CR ’ s algorithm in terms of client buffer underflow probability and average video bit rate. DVT-TDS offers higher predictability in the performance
Conclusions and Future Research ► Future Research Consideration of the variation of video quality Dynamic Optimization of system parameters Integration with other TCP-friendly congestion control algorithms
References [1] T. Kim, S. Lu and V. Bharghavan, “ Improving Congestion Control Performance Through Loss Differentiation, ” Proc. IEEE Int. Conf. Computers and Communications, 1999, pp [2] S. Cen, C. Pu and J. Walpole, “ Flow and Congestion Control for Internet Media Streaming Applications, ” Proc. SPIE/ACM MMCN ’ 98, Jan [3] D. Bansal and H. Balakrishnan, “ Binomial Congestion Control Algorithms, ” Proc. IEEE INFOCOM, 2001, pp [4] S. Jacobs and A. Eleftheriadis, “ Streaming video using dynamic rate shaping and TCP congestion control, ” Journal of Visual Communication and Image Representation, vol.9, issue 3, Sept. 1998, pp [5] P. de Cuetos, K. Ross, “ Adaptive Rate Control for Streaming Stored Fine-Grained Scalable Video, ” NOSSDAV ’ 02, Miami, Florida, May , 2002.
Real-time Heuristic Rate Control Algorithm ► Notations C(t) – Maximum TCP available throughput at time t C i – The average TCP throughput for the i th second since transmission starts B(t) – Client buffer occupancy in terms of seconds ’ worth of video data at time t B k – The client buffer occupancy when the k th slot of video is sent B T – The initial client buffer occupancy b(t) – The video bit rate at video time t b k – The video bit rate of the k th slot of video b max – The original average video bit rate b min – The lowest achievable average video bit rate B k ’ - The estimate of client buffer occupancy when the k th slot of video is sent D k ’ - The estimate of average TCP throughput for sending the k th slot of video M – The video duration for each slot of video n – Number of slots