Adaptive Video Adaptive Video Streaming Over Streaming Over Internet Using Internet Using Dynamic Video Dynamic Video Transcoding Transcoding By Lam Ling Shun, Felix By Lam Ling Shun, Felix
May 31, 2015
Adaptive Video Adaptive Video Streaming Over Internet Streaming Over Internet
Using Dynamic Video Using Dynamic Video TranscodingTranscoding
By Lam Ling Shun, FelixBy Lam Ling Shun, Felix
ContentContent
►BackgroundBackground►System ModelSystem Model►Real-time Heuristic Rate Control Real-time Heuristic Rate Control
AlgorithmAlgorithm►Trace-driven Simulation ResultsTrace-driven Simulation Results►Conclusions and Future ResearchConclusions and Future Research
BackgroundBackground
► Problem of no global QoS to Video streamingProblem of no global QoS to Video streaming UDP – Packet lossesUDP – Packet losses TCP – Packet DelayTCP – Packet Delay
Bandwidth
Internet
Video Quality Degradation
BackgroundBackground
►Solution 1: TCP-friendly streaming controlSolution 1: TCP-friendly streaming control Reduce network congestionReduce network congestion Smoother Transmission RateSmoother Transmission Rate Controlled and predictable delayControlled and predictable delay Examples:Examples:
►LIMD/H by Kim, Lu and Bharghavan [1]LIMD/H by Kim, Lu and Bharghavan [1] LIMD with packet loss differentiationLIMD with packet loss differentiation
►SCP (Streaming Control Protocol) by Cen, Pu and SCP (Streaming Control Protocol) by Cen, Pu and Walpole [2]Walpole [2]
Combine rate-based and window-based flow controlCombine rate-based and window-based flow control
BackgroundBackground
►Solution 2: Video Rate AdaptationSolution 2: Video Rate Adaptation Adapt the video content to available network Adapt the video content to available network
bandwidthbandwidth Examples:Examples:
►Jacobs and Eleftheriadis’s algorithm [3]Jacobs and Eleftheriadis’s algorithm [3] Maintain Server buffer occupancyMaintain Server buffer occupancy
►Cuetos and Ross’s algorithm [4]Cuetos and Ross’s algorithm [4] Maintain Client buffer occupancyMaintain Client buffer occupancy
Works well on TCP and other TCP-friendly streWorks well on TCP and other TCP-friendly streaming control [4]aming control [4]
System ModelSystem Model
M P E G- 1E n c o de d
Vide o
T r an s c o d er
R ate C o n tr o lIn
terne
t
D ec o d er
c ( t)
c ( t) b ( t)
b ( t) Bm ax
B( t)
b m ax b m ax
b m in
S e rve r C lie n t
b1b2
b3
b4
TCP
System Model – Server SideSystem Model – Server Side
►TranscoderTranscoder MPEG-1 TranscoderMPEG-1 Transcoder
Transcoder
bmax
Video bit rate
bmax
TranscodedVideo bit rate
Original Video Transcoded Video
bmin
System Model –Server SideSystem Model –Server Side
►Assumptions on TranscoderAssumptions on Transcoder NEGLIGIBLE transcoding timeNEGLIGIBLE transcoding time CBR-encoded video CBR-encoded video Same Same bbmaxmax along the vid along the vid
eoeo Constant Constant bbminmin along the video along the video Note: In practice, Note: In practice, bbmin min varies along the videovaries along the video
bmax
TranscodedVideo bit rate
bmin
►Rate ControlRate Control
System Model – Server SideSystem Model – Server Side
Rate Control
Video bit rate b(t)
TCP Throughput C(t)
Client Buffer Occupancy B(t)
System Model – Server SideSystem Model – Server Side
►Rate Control (Cont’)Rate Control (Cont’) GoalGoal
►Minimize probability of client buffer underflowMinimize probability of client buffer underflow►Maximize average transcoded video bit rateMaximize average transcoded video bit rate
PrinciplePrinciple►Maintain a certain level of client buffer occupancy Maintain a certain level of client buffer occupancy
(in terms of seconds worth of video data)(in terms of seconds worth of video data)
System Model – Server SideSystem Model – Server Side
►Rate Control (Cont’)Rate Control (Cont’) Slot-based Rate ControlSlot-based Rate Control
►The video bit rate is determined for each video segThe video bit rate is determined for each video segment with playback duration ment with playback duration MM..
►Choice of Choice of MM Small Small More adaptive to bandwidth fluctuation. More adaptive to bandwidth fluctuation. Limited by the resolution of the Transcoder.Limited by the resolution of the Transcoder. Affect the complexity of the system.Affect the complexity of the system.
bmax
bmin
Transcoded Video bit rate
Video time
b1
b2
b3
b4
M
M
MM
System Model – Client SideSystem Model – Client Side
► Initial PrefetchInitial Prefetch Initially, the client prefetches up to Initially, the client prefetches up to BBTT secondsecond
s’ worth of video data with bit rate s’ worth of video data with bit rate bbmax max beforbefore decoding.e decoding.
BBTT
TT0 0 ((Prefetch delayPrefetch delay))Transmission Time
Clie
nt
Buff
er
Occ
upancy
BBTT
bbmaxmax
Video time
Vid
eo b
it r
ate
Real-time Heuristic Rate Control Real-time Heuristic Rate Control AlgorithmAlgorithm
► ImmediatelyImmediately after a slot has been sent, the after a slot has been sent, the video bit rate for the next slot is calculated.video bit rate for the next slot is calculated.
►Estimates of the Estimates of the TCP throughputTCP throughput and and clienclient buffer occupancyt buffer occupancy are used in the calculat are used in the calculation.ion.
►Reasons for estimating client buffer occupReasons for estimating client buffer occupancy at the server:ancy at the server: Reduce overhead of client feedbackReduce overhead of client feedback Compatibility with existing video clients, eg. MCompatibility with existing video clients, eg. M
ediaPlayer.ediaPlayer.
Real-time Heuristic Rate Control Real-time Heuristic Rate Control AlgorithmAlgorithm
►Estimation of Customer Buffer Occupancy (Estimation of Customer Buffer Occupancy (BBk k )) Case 1: No client buffer underflow has occurredCase 1: No client buffer underflow has occurred
TT00
BBTT
TTkk Time when the k th slot has been sent
TTkk-T-T00
kMkM
Cumulative Data Consumed
Cumulative Data Transmitted
0
Transmission time
Cum
ula
tive V
ideo D
ata
(se
conds)
B(t)
t
BBkk = = BBkk’’=kM – (=kM – (TTkk-T-T0 0 ))
Bk
Real-time Heuristic Rate Control Real-time Heuristic Rate Control AlgorithmAlgorithm
►Estimation of Customer Buffer Occupancy (Estimation of Customer Buffer Occupancy (BBk k )) Case 2: Client Buffer Underflow has occurred Case 2: Client Buffer Underflow has occurred
Client buffer underflow found at the time the u th slot has been sent
Transmission time
Cum
ula
tive V
ideo D
ata
(se
conds)
Tu TTkk
uM
uM+TuM+Tkk--TTuu
kMBk
BBkk = = BBkk’’=(=(k-uk-u))MM – ( – (TTkk-T-Tu u ))
The previous client bufferunderflow encountered
Real-time Heuristic Rate Control Real-time Heuristic Rate Control AlgorithmAlgorithm
►Estimation of average TCP throughput for Estimation of average TCP throughput for sending the sending the k+1 k+1 th slot (th slot (DDk+1k+1’’ ))
Ci-W+1
…Ci-W+2
Ci
ii-1i-W+2i-W+1 Tk
Cavg_W
i+1
TC
P t
hro
ugh
put
Transmission time
Dk+1’=MIN(Ci , Cavg_W)
Real-time Heuristic Rate Control AlgoritReal-time Heuristic Rate Control Algorithmhm
0
200000
400000
600000
800000
1000000
1200000
1400000
1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52
Actual Throughput Estimation
Real-time Heuristic Rate Control Real-time Heuristic Rate Control AlgorithmAlgorithm
►Compute Compute bbk+1k+1:: Case 1: Case 1: BBkk’’ <= <= BBTT
►Target: Target: BBk+1k+1==BBTT
►BBT T = = BBkk’ ’ ++M M -- b bk+1k+1M M //DDk+1k+1’’
Bk’BT
bk+1M /Dk+1’
M
bbk+1k+1 =[1- (=[1- (BBTT - - BBkk’ ’ ) /) /M M ] ] DDk+1k+1’’
Real-time Heuristic Rate Control Real-time Heuristic Rate Control AlgorithmAlgorithm
►Compute Compute bbk+1k+1:: Case 2: Case 2: BBkk’’ > > BBTT
►Target: Target: BBk+1 k+1 ==aBaBTT++(1-a) B(1-a) Bkk’ , 0<=a<=1’ , 0<=a<=1►a a is used to trade offis used to trade off
between between average video bit rate andaverage video bit rate andclient buffer underflow ratioclient buffer underflow ratio Bk’BT
bk+1M /Dk+1’
M
aBaBTT++(1-a) B(1-a) Bkk’’
bk+1=[1- =[1- aa((BBTT - - BBkk’ ’ ) /) /M M ] ] DDk+1k+1’’
Real-time Heuristic Rate Control Real-time Heuristic Rate Control AlgorithmAlgorithm
► Heuristic AlgorithmHeuristic AlgorithmFor For kk = = TT00/M /M to to nn -1: -1:Step 1: Compute Step 1: Compute BBkk
’’ and and DDkk’’
Step 2: Compute the value of Step 2: Compute the value of bbk+1k+1::If If BBkk
’’ <= <= BBT T
bbk+1 k+1 = [1-(= [1-(BBT T - - BBkk’’ )/)/MM] ] DDk+1k+1
’’ else else
bbk+1 k+1 = [1-= [1-aa((BBT T - - BBkk’’ )/)/MM] ] DDk+1k+1
’’
Step 3: Step 3: bbk+1 k+1 =MIN(MAX(=MIN(MAX(bbk+1 k+1 , , bbminmin ), ), bbmaxmax))
Real-time Heuristic Rate Control Real-time Heuristic Rate Control AlgorithmAlgorithm
► Problem of overestimating Problem of overestimating DDk+1k+1 DDk+1k+1’ ’ >>>> D Dk+1k+1
Bk’BT
bk+1M /Dk+1’
M
bk+1M /Dk+1
Client buffer underflow!!
Real-time Heuristic Rate Control Real-time Heuristic Rate Control AlgorithmAlgorithm
►Transmission Deadline Strategy (TDS)Transmission Deadline Strategy (TDS) The transmission Deadline (The transmission Deadline (XXk+1k+1) )
= The time at which the= The time at which the transmission of the transmission of the k+1k+1 th slot is expected th slot is expected to end to end
= = TTkk + + bbk+1k+1M M //DDk+1k+1’’ Any unsent data at the serverAny unsent data at the server
buffer would be discarded at buffer would be discarded at XXk+1 k+1 ,,a new slot would be formeda new slot would be formed
Bk’BT
bk+1M /Dk+1’
M ’
bk+1M ’ /Dk+1
Probability of client buffer underflow reduced
Trace-driven Simulation Trace-driven Simulation ResultsResults
►Source of tracesSource of traces Throughput trace of a persistent TCP Throughput trace of a persistent TCP
connection between University of Science connection between University of Science and Technology of China (USTC) and and Technology of China (USTC) and CUHKCUHK
Number of hops: 15Number of hops: 15 Time : 11:00 a.m. to 8:00 p.m. (9 hours)Time : 11:00 a.m. to 8:00 p.m. (9 hours) The 9-hour trace is divided into 9 1-hour The 9-hour trace is divided into 9 1-hour
traces for simulationstraces for simulations
Trace-driven Simulation Trace-driven Simulation ResultsResults
►System settingsSystem settings bbmaxmax = 1.1 Mbps = 1.1 Mbps bbminmin = 200 Kbps= 200 Kbps BBT T = 5 seconds= 5 seconds WW = 2 = 2 MM = 1 second = 1 second BBmaxmax = 50 MBytes = 50 MBytes
Trace-driven Simulation Trace-driven Simulation ResultsResults
► Maximum Average Video bit rate for underflow ratio = 0Maximum Average Video bit rate for underflow ratio = 0
0
200000
400000
600000
800000
1000000
1200000
1 2 3 4 5 6 7 8
Trace Number
Max
Ave
rage
Vid
eo b
it ra
te (b
ps)
CR
DVT
JE
DVT-TDS
Trace-driven Simulation Trace-driven Simulation ResultsResults
► Maximum Average Video bit rate for underflow ratio = Maximum Average Video bit rate for underflow ratio = 0.0040.004
0
200000
400000
600000
800000
1000000
1200000
1 2 3 4 5 6 7 8
Trace Number
Max
Ave
rage
Vid
eo b
it ra
te (b
ps) CR
DVT
JE
DVT-TDS
Trace-driven Simulation Trace-driven Simulation ResultsResults
► Maximum Average Video bit rate for underflow ratio = Maximum Average Video bit rate for underflow ratio = 0.0080.008
0
200000
400000
600000
800000
1000000
1200000
1 2 3 4 5 6 7 8
Trace Number
Max
Ave
rage
Vid
eo b
it ra
te (b
ps)
CR
DVT
JE
DVT-TDS
0
0.002
0.004
0.006
0.008
0.01
0.012
0.014
0.016
0.018
0.02
0 0.2 0.4 0.6 0.8 1
Parameter values
Und
erflo
w R
atio
Trace-driven Simulation Trace-driven Simulation ResultsResults
► Predictability on Underflow RatioPredictability on Underflow Ratio
DVT-TDS
DVT
CR
Trace-driven Simulation Trace-driven Simulation ResultsResults
► Predictability on Underflow RatioPredictability on Underflow Ratio
0
0.002
0.004
0.006
0.008
0.01
0.012
0.014
0.016
0.018
0.02
0 0.02 0.04 0.06 0.08 0.1
Parameter values
Und
erflo
w R
atio
DVT
DVT-TDS
CR
Trace-driven Simulation Trace-driven Simulation ResultsResults
► Predictability on Average video bit ratePredictability on Average video bit rate
655000
657000
659000
661000
663000
665000
667000
669000
671000
673000
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Parameter values
Ave
rage
Vid
eo b
it ra
te (b
ps)
DVT-TDS
CR
DVT
Trace-driven Simulation Trace-driven Simulation ResultsResults
► Predictability on Average video bit ratePredictability on Average video bit rate
655000
657000
659000
661000
663000
665000
667000
669000
671000
673000
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1
Parameter values
Ave
rage
Vid
eo b
it ra
te (b
ps)
DVT-TDS
CR
DVT
Conclusions and Future Conclusions and Future ResearchResearch
►ConclusionsConclusions DVT and DVT-TDS have much better performaDVT and DVT-TDS have much better performa
nce than JE’s algorithm, and have comparabnce than JE’s algorithm, and have comparable performance as CR’s algorithm in terms of le performance as CR’s algorithm in terms of client buffer underflow probability and averagclient buffer underflow probability and average video bit rate.e video bit rate.
DVT-TDS offers higher predictability in the perDVT-TDS offers higher predictability in the performanceformance
Conclusions and Future Conclusions and Future ResearchResearch
►Future ResearchFuture Research Consideration of the variation of video Consideration of the variation of video
qualityquality Dynamic Optimization of system Dynamic Optimization of system
parametersparameters Integration with other TCP-friendly Integration with other TCP-friendly
congestion control algorithmscongestion control algorithms
ReferencesReferences
[1] T. Kim, S. Lu and V. Bharghavan, “Improving Congestion Control [1] T. Kim, S. Lu and V. Bharghavan, “Improving Congestion Control Performance Through Loss Differentiation,” Performance Through Loss Differentiation,” Proc. IEEE Int. Conf. Proc. IEEE Int. Conf. Computers and CommunicationsComputers and Communications, 1999, pp. 140-145., 1999, pp. 140-145.
[2] S. Cen, C. Pu and J. Walpole, “Flow and Congestion Control for Int[2] S. Cen, C. Pu and J. Walpole, “Flow and Congestion Control for Internet Media Streaming Applications,” ernet Media Streaming Applications,” Proc. SPIE/ACM MMCN’9Proc. SPIE/ACM MMCN’988, Jan. 1998., Jan. 1998.
[3] D. Bansal and H. Balakrishnan, “Binomial Congestion Control Alg[3] D. Bansal and H. Balakrishnan, “Binomial Congestion Control Algorithms,” orithms,” Proc. IEEE INFOCOMProc. IEEE INFOCOM, 2001, pp. 631-640. , 2001, pp. 631-640.
[4] S. Jacobs and A. Eleftheriadis, “Streaming video using dynamic ra[4] S. Jacobs and A. Eleftheriadis, “Streaming video using dynamic rate shaping and TCP congestion control,” te shaping and TCP congestion control,” Journal of Visual ComJournal of Visual Communication and Image Representationmunication and Image Representation, vol.9, issue 3, Sept. 1998, , vol.9, issue 3, Sept. 1998, pp.211-222.pp.211-222.
[5] P. de Cuetos, K. Ross, “Adaptive Rate Control for Streaming Store[5] P. de Cuetos, K. Ross, “Adaptive Rate Control for Streaming Stored Fine-Grained Scalable Video,” d Fine-Grained Scalable Video,” NOSSDAV’02NOSSDAV’02, Miami, Florida, , Miami, Florida, May 12-14, 2002.May 12-14, 2002.
Real-time Heuristic Rate Control Real-time Heuristic Rate Control AlgorithmAlgorithm
► NotationsNotations
C(t) C(t) – Maximum TCP available throughput at time – Maximum TCP available throughput at time tt CCii – The average TCP throughput for the – The average TCP throughput for the i i thth second since transmission startssecond since transmission starts B(t)B(t) – Client buffer occupancy in terms of seconds’ worth of video data at time – Client buffer occupancy in terms of seconds’ worth of video data at time tt BBk k – The client buffer occupancy when the – The client buffer occupancy when the k k th slot of video is sentth slot of video is sent BBT T – The initial client buffer occupancy– The initial client buffer occupancy b(t) b(t) – The video bit rate at video time – The video bit rate at video time tt bbkk – The video bit rate of the – The video bit rate of the k k th slot of videoth slot of video bbmax max – The original average video bit rate – The original average video bit rate bbminmin – The lowest achievable average video bit rate– The lowest achievable average video bit rate BBkk
’’ - The estimate of client buffer occupancy when the - The estimate of client buffer occupancy when the kk th slot of video is sent th slot of video is sent DDkk
’’ - The estimate of average TCP throughput for sending the - The estimate of average TCP throughput for sending the k k th slot of videoth slot of video M M – The video duration for each slot of video– The video duration for each slot of video n n – Number of slots– Number of slots