Dynamic(Adap,ve(Streaming(over(HTTP:(From(Content(Crea,on(to(Consump,on(    Chris,an(Timmerer(                            ...
Video$Predominant$on$the$Internet$     •  RealB/me$video$is$more$than$50%$of$the$traffic$at$peak$periods$     •  Mobile$traffi...
...$but$User$Frustra/on$is$High!!!$     •    Wrong$format$     •    Wrong$protocol$     •    Plugin$required$     •    DRM...
Dynamic$Adap/ve$Streaming$over$HTTP$     •  In$a$nutshell$…$Ack$&$©:$Christopher$Müller$     Oct$29,$2012$             DAS...
Presenters$Chris,an(Timmerer(                                            Carsten(Griwodz(Assistant$professor$at$the$Ins/tu...
Tutorial$Outline$       –  Scope$and$design$principles$       –  Data$model$       –  Profiles$       –  GPAC$       –  VLC...
Dynamic(Adap,ve(                   Streaming(over(HTTP((DASH)(                            Chris,an(Timmerer(and(Christophe...
What$is$DASH?$hZp://en.wikipedia.org/wiki/Dash_(disambigua/on)$Oct$29,$2012$               DASH$Tutorial,$ACM$Mul/media$20...
Dynamic$Adap/ve$Streaming$over$HTTP$(DASH)$Proprietary(Solu,ons(       Int’l(Standard(Solu,ons(V1(             Int’l(Stand...
DASH$Design$Principles$      •  DASH$is$not$            –  system,$protocol,$presenta/on,$codec,$interac/vity,$DRM,$client...
Scope$of$DASH$           Server(                                                               Client(                    ...
What$is$specified$–$and$what$is$not?$      Oct$29,$2012$            DASH$Tutorial,$ACM$Mul/media$2012$   12$Ack$&$©:$Thomas...
DASH$Data$Model$                                                                                              Segment Info...
Media$Presenta/on$Descrip/on$      •  Redundant$informa/on$of$Media$Streams$for$the$purpose$to$         ini/ally$select$or...
MPD$Schema$Overview$      Oct$29,$2012$           DASH$Tutorial,$ACM$Mul/media$2012$   15$Ack$&$©:$Iraj$Sodagar$
MPD$Schema$B$Representa/on$      Oct$29,$2012$      DASH$Tutorial,$ACM$Mul/media$2012$   16$Ack$&$©:$Iraj$Sodagar$
DASH$Adapta/onSets$&$Subsets$ Adapta,onSet(id="grpH1"(                    Adapta/onSet$by$codec,$language,$resolu/on,$    ...
Segment$Indexing$      •  Provides$binary$informa/on$in$ISO$box$structure$on$            –  Accessible$units$of$data$in$a$...
Segment$Indexing$                                                                  seg1.mp4 Segment(Index(in(MPD(only(    ...
Switch$Point$Alignment$      •  Segment$alignment$            –  Permits$nonBoverlapping$decoding$and$presenta/on$of$segme...
Profiles$      •  Subset$(restric/ons)$of$the$func/onality$      •  Target$specific$applica/ons/domains$      •  As$of$now,$...
Adap/ve$Streaming$Summary$      •    For$on$demand$                                         •    For$live$            –  C...
Adapta/on$Problem$      Choose$sequence$and$/ming$of$requests$to$minimize$      probability$of$reBbuffers$and$maximize$qual...
Poten/al$Future$Work$Items$•  MMSys’11$Keynote$       –  HTTP$Adap/ve$Streaming$in$Prac/ce$by$Mark$Watson$(Nezlix)$       ...
DASH(“Encoder”,(Dataset,(and(Players(     Stefan(Lederer,(Christopher(Müller,(Benjamin(Rainer,(and(Chris,an(Timmerer(     ...
DASH@GPAC: MP4Box & MP42TS     !  Multimedia Packagers       •  MPEG-2 TS for DASH profiles       •  ISOBMFF Packager & An...
DASHEncoder$•  DASH$Content$Genera/on$Tool$       –  Encoding$+$Mul/plexing$+$MPD$genera/on$       –  Generates$isoffmain$p...
DASHEncoder$                •  h.264:$       $x264$/$ffmpeg$                •  AAC: $        $ffmpeg$   Encode$      •  [Web...
Dataset$•  Dataset(with(DASH(Content(       –  Long$sequences$in$high$quality$       –  Various$segmentBlength$versions$  ...
Dataset$Sequences$                Name              Source(Quality                Length      Genre      Big$Buck$Bunny$  ...
DASH$Dataset$Sequences$Oct$29,$2012$   DASH$Tutorial,$ACM$Mul/media$2012$   31$
Bitrates$and$Resolu/ons$ #                 Anima,on                              Sport                     Movie 1        ...
DASH$Content$Types$•  Segment(Size:$       –  Seconds:$1,$2,$4,$6,$10,$15$•  File(Organiza,on(       –  Segmented$       –...
DASH@GPAC: Playback!     DASHClient                             !  Integrated in Osmo4     •  DASH ISOBMFF, M2TS (+ HLS)  ...
DASH$VLC$Plugin$Architecture$•  Four$major$   components$and$   two$controller$   classes$•  Easy$Adapta/on$   Logic$Inter...
DASH$VLC$Plugin$Features$•  Officially$part$of$VLC$and$as$library$(libdash)$•  Provides$a$simple$interface$to$integrate$new$...
VLC$Architecture$•  Interface:$User$   interac/on$e.g.$stop,$play$   etc.$•  Access:$HTTP,$RTP$etc.$•  StreamBFilter:$Reco...
DASH$in$JavaScript$(DASHBJS)$•  Completely$implemented$in$JavaScript$–$no$   (3rd$party)$plugins$required$•  Makes$use$of$...
DASHBJS$Architecture$Oct$29,$2012$        DASH$Tutorial,$ACM$Mul/media$2012$   39$
DASHBJS$(cont’d)$•  Bandwidth$/$throughput$es/ma/on$       –  …$is$done$each$/me$a$segment$is$retrieved$       –  At$the$b...
Showcases$•    Sintel$Trailer$@$480p$       –    5$representa/on$from$200$kbps$to$2000$kbps$video$bitrate$       –    128$...
Conclusions$•  EndBtoBend$DASH$tools$available$       –  GPAC$provides$support$for$ISOBMFF,$M2TS,$and$beyond$       –  DAS...
An(Evalua,on(of(Dynamic(Adap,ve(Streaming(      over(HTTP(in(Vehicular(Environments(                 Christopher(Müller,(S...
Methodology$•  Experiment(1(/(Track(1((601(seconds)$       –  Drive$on$the$freeway$A2,$passing$by$the$city$of$Villach$in$t...
Metrics$•  Average$bitrate$       –  Overall$performance$for$the$en/re$session$•  Number$of$quality$switches$       –  Diff...
Experimental$Setup$•  Bandwidth$Shaping$       –  Ubuntu$11.04$w/$Linux$hierarchical$token$bucket$(htb)$       –  Availabl...
Dataset$•  All$experiments$have$been$performed$with$   the$same$content$based$on$[Lederer2012]$•  The$content$has$been$enc...
Microsor$Smooth$Streaming$•  Client$based$on$Windows$7,$Microsor$   Silverlight$and$Firefox$7$•  Server$based$on$Windows$S...
Microsor$Smooth$Streaming$(cont’d)$•  Few$switches$with$a$good$average$bitrate$•  Nevertheless$close$to$unsmoothness$at$se...
Adobe$Dynamic$HTTP$Streaming$•  Client$is$based$on$Ubuntu$11.04,$Firefox$7$and$   the$Open$Source$Media$Framework$player$•...
Adobe$Dynamic$HTTP$Streaming$(cont’d)$•  High$number$of$unsmooth$seconds$•  Rather$binary$and$unpredictable$Oct$29,$2012$ ...
Apple$HTTP$Live$Streaming$•  Client$is$based$on$Mac$OS$X$Snow$Leopard$   10.6$and$Safari$5$•  Content$has$been$generated$w...
Apple$HTTP$Live$Streaming$(cont’d)$•  Very$few$switches$with$a$lower$bitrate$•  Large$buffer$for$energy$awareness$Oct$29,$2...
Our$MPEGBDASH$Implementa/on$•  Client:$DASH$VLC$Plugin$[Mueller2011]$on$   Ubuntu$11.04$$•  Server:$Ubuntu$11.04$which$hos...
Our$MPEGBDASH$Implementa/on$(cont’d)$•  Non$stepwise$switching$$•  Good$average$bitrate$and$stable$buffer$$Oct$29,$2012$   ...
MPEGBDASH$AVC$Oct$29,$2012$     DASH$Tutorial,$ACM$Mul/media$2012$   56$
MPEGBDASH$SVC$Oct$29,$2012$     DASH$Tutorial,$ACM$Mul/media$2012$   57$
Summary$      Name(     Average(Bitrate(   Average(Switches(             Average(Unsmoothness(                    [kbps]( ...
Conclusions$•  Microsor$Smooth$Streaming$       –  Performs$very$well$w.r.t.$average$bitrate$       –  Yes,$deserves$the$n...
DASH$@$AAU/ITEC$                                                        hZp://dash.itec.aau.at/$                          ...
Acknowledgments$•  EC$projects$for$par/ally$funding$this$ac/vity$       –  ALICANTE$project$(FP7BICTB248652)$             ...
References$•    Christopher$Müller,$Daniele$Renzi,$Stefan$Lederer,$Stefano$Baàsta$and$Chris/an$Timmerer,$“Using$     Scala...
IEEE$JSAC:$Adap/ve$Media$Streaming$    •    Guest$Editors$           –  Chris/an$Timmerer,$AlpenBAdriaB              Unive...
Thank$you$for$your$aZen/on$            ...$ques/ons,$comments,$etc.$are$welcome$…$                                        ...
A Comparison of Quality Scheduling inCommercial Adaptive HTTP Streaming     Solutions on a 3G Network  Haakon Riiser, Håko...
Fluctuating Bandwidth ProblemUniversity of Oslo   DASH Tutorial, ACM Multimedia 2012
Fluctuating Bandwidth Problem                     Ferry                                        Subway              Questio...
Adaptive Delivery: Tested Systems!  Adobe Strobe Media Playback (v1.6.328 for Flash 10.1)   using HTTP Dynamic Streaming F...
Adaptive Delivery: Test Content!  Video: Norwegian football game (i.e. soccer)!  H.264/AVC                            Why ...
Comparison of Existing Quality Schedulers       Bus:                                                          Configured f...
Comparison of Existing Quality Schedulers       Metro:                For the Netview algorithm see:                “Video...
Conclusion   Difference between players’ quality scheduler dominates   the overhead   Adobe: maximizes aggressiveness at t...
A Comparison of Quality Scheduling inCommercial Adaptive HTTP Streaming     Solutions on a 3G Network  Haakon Riiser, Håko...
Prediction       Metro:            Location-based bandwidth-lookup service for bitrate (video quality) planning:    Algori...
Prediction: Metro       Metro:                                                          From:                             ...
Quality-of-Experience Considerations                 withRelevance for Adaptive HTTP Streaming     Pengpeng Ni, Ragnhild E...
Adaptive Delivery: Test Content!  Video: Norwegian football game (i.e. soccer)!  H.264/AVC!  2 second segments         Que...
Why visual quality studies?   UDP-based streaming                                    DASH & similar               resists ...
Why visual quality studies?   UDP-based streaming                                 DASH & similar    Resilience to packet l...
PSNR Peak Signal-to-Noise Ratio A prevalent video quality metric                                    (2B − 1)2             ...
User experience: reduced PSNRUniversity of Oslo           DASH Tutorial, ACM Multimedia 2012
PSNR                ReferenceExample fromProf. Touradj Ebrahimi,ACM MM09 keynotePSNR = 24.9 dB              PSNR = 24.9 dB...
PSNR Peak Signal-to-Noise Ratio A prevalent video quality metric In addition to this: •  several different PSNR computatio...
Conclusion You encounter Quality-of-Experience measurements based on PSNR everywhere in the literature. •  it is very easy...
QoE Effects of Changing Layers in   Adaptive HTTP Streaming  Pengpeng Ni, Ragnhild Eg, Alexander Eichhorn,   Pål Halvorsen...
Image-based metrics can fail badly:                     FlickeringUniversity of Oslo           DASH Tutorial, ACM Multimed...
Layered content    Used SPEG as layer encoded video format                                  [avail. from C. Krasic, UBC]  ...
Layered content    Comparing PSNR    with layer change counting: S(v) =        − v i+1     ∑v      i       These observati...
Layer fluctuation in scalable video streamingUniversity of Oslo   DASH Tutorial, ACM Multimedia 2012
We need guidelines for video adaptation strategies   To cope with the bandwidth fluctuation, which scalability   dimension...
We investigate visual artifact issues via several   subjective tests   Previous Findings               Human perception of...
Flickering effects: the visual artifacts caused by layer fluctuation in scalable video  Flicker arises from recurrent chan...
Blurriness flicker exampleBlur flickerAmplitude: 480x320px – 120x80pxFrequency: 10f / 3 Hz University of Oslo   DASH Tutor...
Noise flicker exampleNoise flickerAmplitude: QP24 – QP40Frequency: 90f / 0.33 Hz University of Oslo    DASH Tutorial, ACM ...
Motion flicker exampleMotion flickerAmplitude: 30fps – 3fpsFrequency: 6f / 5 Hz University of Oslo       DASH Tutorial, AC...
How to describe different layer fluctuations?Layer fluctuation pattern     -  Frequency: The time interval it takes for a ...
Layer fluctuation pattern in Spatial dimension    Full bit stream, QH   F =1/2, A = QH-QL  F = 1/4 , A = QH-QL  F = 1/6 , ...
Layer fluctuation pattern in Temporal  dimension  Full bit stream, 30fps F =1/4, A = 30-15fps F = 1/8 , A = 30-15fpsF = 1/...
Method    Participants                                            Procedure    •  28 paid, voluntary participants         ...
Stability scores - Period                                                                                                 ...
Stability scores - Amplitude 100 %                                    100 %                                         100 % ...
Video quality                         2                                                                      Constant high...
Acceptance - Noise flicker                                     2                                                          ...
Acceptance – Blur flicker                                     2                                                           ...
Acceptance – Motion flicker                                     2                                                         ...
Conclusions   With longer flicker frequencies (high periods), acceptance of video   quality increases in the spatial dimen...
Network Behaviour of DASH Traffic  Tomas Kupka, Pål Halvorsen, Carsten Griwodz
Stream liveness!  The time it takes for an event to appear on the screenLiveness = 0s                                     ...
Live traffic pattern                                                 Segmented live stream                                ...
VoD traffic pattern                                            Segmented video file                                       ...
Transporting DASH              1. Does the request synchronization lead to problem?              2. Can we reduce such pro...
Evaluated modificationsTCP congestion control alternatives    TCP’s behave differently for short On traffic               ...
TCP congestion control alternatives                     Liveness                                        Router queue drops...
TCP congestion control alternatives                                                          packet losses                ...
TCP congestion control alternativeslowest quality                                                                         ...
Evaluated modifications   Increasing segment length: give TCP more time                                              vs.  ...
2 second vs. 10 second segmentslowest quality                                                                 highest qual...
Evaluated modifications Request distribution: avoid request synchronization                R1     R2                      ...
Client request distribution     Client A:       S1                              S2        S3                              ...
Client request distribution             Synchronous requests                                    Distributed requestsUniver...
Client request distributionlowest quality                                                                   highest qualit...
Evaluated modificationsCWND limit: restrict CWND to the max. bitrate available                     CWND                   ...
Client request distribution                     Liveness                                        Router queue dropsUniversi...
CWND limitation                     Liveness                                        Router queue dropsUniversity of Oslo  ...
Conclusion   TCP CC alternatives: TCP Vegas is good, but not practical   Segment duration:   No evidence of longer segment...
DASH Tutorial: Summary Introduction to MPEG DASH DASH tools Examples of DASH (and DASH-like) systems’ performance QoE cons...
Upcoming SlideShare
Loading in...5
×

Dynamic Adaptive Streaming over HTTP: From Content Creation to Consumption

36,378

Published on

Published in: Technology
1 Comment
36 Likes
Statistics
Notes
  • Hi Professor, can I ask for a copy of this slides share? Thanks!
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total Views
36,378
On Slideshare
0
From Embeds
0
Number of Embeds
70
Actions
Shares
0
Downloads
0
Comments
1
Likes
36
Embeds 0
No embeds

No notes for slide

Dynamic Adaptive Streaming over HTTP: From Content Creation to Consumption

  1. 1. Dynamic(Adap,ve(Streaming(over(HTTP:(From(Content(Crea,on(to(Consump,on( Chris,an(Timmerer( Carsten(Griwodz(AlpenHAdriaHUniversität(Klagenfurt( Simula(Research(Laboratory( Universitätsstraße(65H67( P.O.Box(134(AH9020(Klagenfurt(am(Wörthersee( 1325(Lysaker,(Norway( +43$463$2700$3621$ +47$67$82$82$00$ chris/an./mmerer@itec.aau.at$ griff@simula.no$ ACM(Mul,media(2012,(Nara,(Japan( 29th(October,(2012(
  2. 2. Video$Predominant$on$the$Internet$ •  RealB/me$video$is$more$than$50%$of$the$traffic$at$peak$periods$ •  Mobile$traffic$is$growing$exponen/ally,$all$delivered$over$the$top$(OTT)$hZp://www.sandvine.com/downloads/documents/Phenomena_1H_2012/Sandvine_Global_Internet_Phenomena_Report_1H_2012.pdf$ Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 2$
  3. 3. ...$but$User$Frustra/on$is$High!!!$ •  Wrong$format$ •  Wrong$protocol$ •  Plugin$required$ •  DRM$issues$ •  Long$startBup$delay$ •  Low$quality$ •  Frequent$stalls$ •  Bitrate$intense$ •  No$DVD/PVR$experience$Ack:$Thomas$Stockhammer$ Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 3$
  4. 4. Dynamic$Adap/ve$Streaming$over$HTTP$ •  In$a$nutshell$…$Ack$&$©:$Christopher$Müller$ Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 4$
  5. 5. Presenters$Chris,an(Timmerer( Carsten(Griwodz(Assistant$professor$at$the$Ins/tute$of$Informa/on$ Head$of$the$Media$department$of$research$company$Technology$(ITEC),$Mul/media$Communica/on$Group$ Simula$Research$Laboratory,$and$professor$of$Computer$(MMC),$AlpenBAdriaBUniversität$Klagenfurt,$Austria.$His$ Science$at$the$University$of$Oslo.$He$received$his$Dipl.Bresearch$interests$include$immersive$mul/media$ Inf.$degree$from$Paderborn$University$in$1993$and$Dr.Bcommunica/on,$streaming,$adapta/on,$and$Quality$of$ Ing.$degree$from$Technische$Universität$Darmstadt$in$Experience$(QoE).$He$was$the$general$chair$of$ 2000.$He$worked$for$IBM$from$1993–98$and$par/cipated$WIAMIS’08,$AVSTP2P’10$(coBlocated$with$ACMMM’10),$ in$the$standardiza/on$of$MHEG.$His$research$is$WoMAN’11$(coBlocated$with$ICME’11),$and$TPC$coBchair$ concerned$with$streaming$media,$ranging$from$scalable$of$QoMEX’12.$He$has$par/cipated$in$several$ECBfunded$ distribu/on$architectures$through$opera/ng$system$and$projects,$notably$DANAE,$ENTHRONE,$P2PBNext,$ protocol$support$to$subjec/ve$visual$quality$assessment.$$ALICANTE,$and$SocialSensor.$He$is$an$Associate$Editor$for$ He$was$coBchair$of$ACM$NOSSDAV$2008,$ACM/IEEE$IEEE$Computer$Science$Compu/ng$Now,$Area$Editor$for$ NetGames$2011,$SPIE/ACM$MMCN$2006$and$2007,$Track$Elsevier$Signal$Processing:$Image$Communica/on,$Review$ chair$of$ACM$MM$2008,$TPC$chair$of$ACM$MMSys$2012$Board$Member$of$IEEE$MMTC,$editor$of$ACM$SIGMM$ and$is$general$chair$of$MMSys$2013.$He$is$Associate$Records,$and$member$of$ACM$SIGMM$Open$Source$ Editor$of$ACM$TOMCCAP$and$EditorBinBChief$of$the$Sorware$CommiZee.$He$also$par/cipated$in$ISO/MPEG$ newsleZer$ACM$SIGMM$Records.$The$Media$group$work$for$several$years,$notably$in$the$area$of$MPEGB21,$ publishes$news$at$hZp://mpg.ndlab.net.$His$publica/ons$MPEGBM,$MPEGBV,$and$DASH$(incl.$DASH$promoters$ can$be$found$at$hZp://simula.no/people/griff/group).$He$received$his$PhD$in$2006$from$the$Klagenfurt$ bibliography.$University.$Publica/ons$and$MPEG$contribu/ons$can$be$found$under$hZp://research./m$merer.com,$follow$him$on$hZp://www.twiZer.com//mse7,$and$subscribe$to$his$blog$hZp://blog./mmerer.com.$Full$bio$can$be$found$at$hZp://wwwBitec.uniBklu.ac.at/~/mse/cv/.$ DASH$Tutorial,$ACM$Mul/media$2012$Oct$29,$2012$ 5$
  6. 6. Tutorial$Outline$ –  Scope$and$design$principles$ –  Data$model$ –  Profiles$ –  GPAC$ –  VLC$media$player$plugin,$libdash$ –  Javascript$&$HTML5$=>$DASHBJS$ –  Mobile,$heterogeneous$environments$ –  Quality$of$Experience$(QoE)$ –  Synchroniza/on$Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 6$
  7. 7. Dynamic(Adap,ve( Streaming(over(HTTP((DASH)( Chris,an(Timmerer(and(Christopher(Müller( ( AlpenHAdriaHUniversität(Klagenfurt((AAU)(!(Faculty(of(Technical(Sciences((TEWI)(!(Department(of(Informa,on( Technology((ITEC)(!(Mul,media(Communica,on((MMC)(!(Sensory(Experience(Lab((SELab)( research./mmerer.com$!$blog./mmerer.com$!$selab.itec.aau.at$!$dash.itec.aau.at$!$stcsn.ieee.net$ chris/an./mmerer@itec.aau.at$ ACM(Mul,media(2012,(Nara,(Japan( 29th(October,(2012(Acknowledgment:$Thomas$Stockhammer$(QUALCOMM),$Mark$Watson$(Nezlix),$Iraj$Sodagar$(Microsor)$
  8. 8. What$is$DASH?$hZp://en.wikipedia.org/wiki/Dash_(disambigua/on)$Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 8$
  9. 9. Dynamic$Adap/ve$Streaming$over$HTTP$(DASH)$Proprietary(Solu,ons( Int’l(Standard(Solu,ons(V1( Int’l(Standard(Solu,ons(V2( Apple(HTTP(Live( Streaming(( 3GPP(Rel.9(Adap,ve( 3GPP(Rel.10(DASH( Adobe(HTTP( HTTP(Streaming(( Dynamic(Streaming(( V3…$ Microsoe(Smooth( Streaming( OIPF(HTTP(Adap,ve( MPEGHDASH( Streaming( Neflix( Akamai( Movenetworks’( Movestreaming(( Amazon( .(.(.( /me$ hZp://mul/mediacommunica/on.blogspot.com/2010/05/hZpBstreamingBofBmpegBmedia.html$ Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 9$
  10. 10. DASH$Design$Principles$ •  DASH$is$not$ –  system,$protocol,$presenta/on,$codec,$interac/vity,$DRM,$client$specifica/on$ •  DASH$is$an$enabler$ –  It$provides$formats$to$enable$efficient$and$highBquality$delivery$of$streaming$ services$over$the$Internet$ –  It$is$considered$as$one$component$in$an$endBtoBend$service$ –  System$defini/on$ler$to$other$organiza/ons$(SDOs,$fora,$companies,$etc.)$ •  Design$choices$ –  Enable$reuse$of$exis/ng$technologies$(containers,$codecs,$DRM$etc.)$ –  Enable$deployment$on$top$of$HTTPBCDNs$(Web$Infrastructures,$caching)$ –  Enable$very$high$userBexperience$(low$startBup,$no$rebuffering,$trick$modes)$ –  Enable$selec/on$based$on$network$and$device$capability,$user$preferences$ –  Enable$seamless$switching$ –  Enable$live$and$DVDBkind$of$experiences$ –  Move$intelligence$from$network$to$client,$enable$client$differen/a/on$ –  Enable$deployment$flexibility$(e.$g.,$live,$onBdemand,$/meBshir$viewing)$ –  Provide$simple$interoperability$points$(profiles)$ Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 10$Ack$&$©:$Thomas$Stockhammer$
  11. 11. Scope$of$DASH$ Server( Client( 1( MF( MF( 2( DF( DF(ISOBM ISOBM FF( easy$ easy$ FF( conversion$ conversion$M2TS( M2TS(Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 11$
  12. 12. What$is$specified$–$and$what$is$not?$ Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 12$Ack$&$©:$Thomas$Stockhammer$
  13. 13. DASH$Data$Model$ Segment Info Initialization Segment http://www.e.com/ahs-5.3gpMedia Presentation Media Segment 1 Period, start=0s Period, start=0s • start=100 Representation 1 http://www.e.com/ahs-5-1.3gs … … • baseURL=http://www.e.com/ • bandwidth=500kbit/s • width 640, height 480 Media Segment 2 Representation 1 … start=10s http://www.e.com/ahs-5-2.3gs Period, start=100s 500kbit/s Segment Info … duration=10s Media Segment 3 start=20s Representation 2 Template: http://www.e.com/ahs-5-3.3gh 100kbit/s ./ahs-5-$Index$.3gs Period, start=295s … … … Media Segment 20 start=190s http://www.e.com/ahs-5-20.3gs Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 13$Ack$&$©:$Thomas$Stockhammer$
  14. 14. Media$Presenta/on$Descrip/on$ •  Redundant$informa/on$of$Media$Streams$for$the$purpose$to$ ini/ally$select$or$reject$Adapta/onSets$of$Representa/ons$ –  Examples:$Codec,$DRM,$language,$resolu/on,$bandwidth$ •  Access$and$Timing$Informa/on$ –  HTTPBURL(s)$and$byte$range$for$each$accessible$Segment$ –  Earliest$next$update$of$the$MPD$on$the$server$ –  Segment$availability$start$and$end$/me$in$wallBclock$/me$ –  Approximated$media$start$/me$and$dura/on$of$a$Media$Segment$in$ the$media$presenta/on$/meline$ –  For$live$service,$instruc/ons$on$star/ng$playout$such$that$media$ segments$will$be$available$in$/me$for$smooth$playout$in$the$future$ •  Switching$and$splicing$rela/onships$across$Representa/ons$ •  Rela/vely$liZle$other$informa/on$ Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 14$Ack$&$©:$Thomas$Stockhammer$
  15. 15. MPD$Schema$Overview$ Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 15$Ack$&$©:$Iraj$Sodagar$
  16. 16. MPD$Schema$B$Representa/on$ Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 16$Ack$&$©:$Iraj$Sodagar$
  17. 17. DASH$Adapta/onSets$&$Subsets$ Adapta,onSet(id="grpH1"( Adapta/onSet$by$codec,$language,$resolu/on,$ bandwidth,$views,$etc.$–$very$flexible$(in$combina/on$ Representa,on(id="repH1"( with$xlink)!$ Representa,on(id="repH2"( "  Ranges$for$the$@bandwidth,$@width,$@height$and$ @frameRate$ .(.(.( Representa,on(id="repHn"( Subset(id="ssH1"( Contains(group="grpH1"( Adapta,onSet(id="grpH2"( Contains(group="grpH4"( Representa,on(id="repH1"( Contains(group="grpH7"( Representa,on(id="repH2"( .(.(.( Representa,on(id="repHn"( Subsets$ "  Mechanism$to$restrict$the$combina/on$of$ .(.(.( ac#ve$Groups$ "  Expresses$the$inten/on$of$the$creator$of$the$ Adapta,onSet(id="grpHm"( Media$Presenta/on$$ Representa,on(id="repH1"(Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 17$ Representa,on(id="repH2"(
  18. 18. Segment$Indexing$ •  Provides$binary$informa/on$in$ISO$box$structure$on$ –  Accessible$units$of$data$in$a$media$segment$ –  Each$unit$is$described$by$ •  Byte$range$in$the$segments$(easy$access$through$HTTP$par/al$GET)$ •  Accurate$presenta/on$dura/on$(seamless$switching)$ •  Presence$of$representa/on$access$posi/ons,$e.g.$IDR$frames$ •  Provides$a$compact$bitrateBoverB/me$profile$to$client$ –  Can$be$used$for$intelligent$request$scheduling$ •  Generic$Data$Structure$usable$for$any$media$segment$ format,$e.g.$ISO$BMFF,$MPEGB2$TS,$etc.$ •  Hierarchical$structuring$for$efficient$access$ •  May$be$combined$with$media$segment$or$may$be$separate$ Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 18$Ack$&$©:$Thomas$Stockhammer$
  19. 19. Segment$Indexing$ seg1.mp4 Segment(Index(in(MPD(only( <MPD> seg2.mp4 ... <URL sourceURL="seg1.mp4"/> <URL sourceURL="seg2.mp4"/> ... </MPD> <MPD> seg.mp4 ... <URL sourceURL="seg.mp4" range="0-499"/> <URL sourceURL="seg.mp4" range="500-999"/> </MPD> Segment(Index(in(MPD(+(Segment(( <MPD> sidx ... .mp4 <Index sourceURL=”sidx.mp4"/> <URL sourceURL="seg.mp4"/> </MPD> seg.mp4 Segment(Index(in(Segment(only(( <MPD> ... <BaseURL>seg.mp4</BaseURL> sidx seg.mp4 </MPD>Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 19$
  20. 20. Switch$Point$Alignment$ •  Segment$alignment$ –  Permits$nonBoverlapping$decoding$and$presenta/on$of$segments$from$ different$representa/ons$ •  Stream$Access$Points$(SAPs)$ –  Presenta/on$/me$and$posi/on$in$segments$at$which$random$access$and$ switching$can$occur$ •  Bitstream$Switching$ –  Concatena/on$of$segments$from$different$representa/ons$results$in$ conforming$bitstream$ •  Alignment$and$SAPs$can$ also$apply$for$subsegments$ •  Preferable$switching$points$ are$segment/subsegment$ boundaries$for$which$ –  Alignment$holds$across$ representa/ons$ –  The$switchBto$ representa/on$starts$with$ a$SAP$ Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 20$Ack$&$©:$Mark$Watson$and$Thomas$Stockhammer$
  21. 21. Profiles$ •  Subset$(restric/ons)$of$the$func/onality$ •  Target$specific$applica/ons/domains$ •  As$of$now,$mainly$related$to$supported$segment$ formats$ Full(Profile( ISOBMFF(Main( MPEGB2$ MPEGH2( ISOBMFF$ ISOBMFF$ TS$Simple$ TS(Main( On$Demand$ Live$ •  More$restric/ons$may$be$added$ Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 21$Ack:$Thomas$Stockhammer$
  22. 22. Adap/ve$Streaming$Summary$ •  For$on$demand$ •  For$live$ –  Chunks$are$unnecessary$and$costly$ –  Chunks$are$unavoidable$ –  Byte$range$requests$have$caching$and$ –  S/ll$value$in$decoupling$request$size$ flexibility$advantages$ from$chunk$size$ –  Separate$audio/video$essen/al$for$ –  Mul/ple$language$audio$tracks$are$rare$ language$support$ –  May$need$manifest$updates$ •  For$both$ –  Switch$point$alignment$required$for$most$CE$decoding$pipelines$ Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 22$Ack$&$©:$Mark$Watson$and$Thomas$Stockhammer$
  23. 23. Adapta/on$Problem$ Choose$sequence$and$/ming$of$requests$to$minimize$ probability$of$reBbuffers$and$maximize$quality$ Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 23$Ack$&$©:$Mark$Watson$
  24. 24. Poten/al$Future$Work$Items$•  MMSys’11$Keynote$ –  HTTP$Adap/ve$Streaming$in$Prac/ce$by$Mark$Watson$(Nezlix)$ –  Future$work$ •  Good$models$for$future$bandwidth$ •  Tractable$representa/ons$of$future$choices$B$how$to$efficiently$search$ the$choice$space$ •  What$are$the$quality$goals?$•  Call$for$adapta/on$logics$ –  Efficient$implementa/ons$of$the$actual$adapta/on$logic$which$is$ responsible$for$the$dynamic$and$adap/ve$part$of$DASH$ hZp://mul/mediacommunica/on.blogspot.com/2011/02/betaBversionBofBvlcBdashBplugin.html$•  Get$it$deployed$and$adopted$(e.g.$W3C,$DVB$–$what$is$ necessary?)$•  Join$this$ac/vity,$everyone$is$invited$–$get$involved$in$and$ exited$about$DASH!$Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 24$
  25. 25. DASH(“Encoder”,(Dataset,(and(Players( Stefan(Lederer,(Christopher(Müller,(Benjamin(Rainer,(and(Chris,an(Timmerer( (AlpenHAdriaHUniversität(Klagenfurt((AAU)(!(Faculty(of(Technical(Sciences((TEWI)(!(Department(of(Informa,on( Technology((ITEC)(!(Mul,media(Communica,on((MMC)(!(Sensory(Experience(Lab((SELab)( hZp://research./mmerer.com$!$hZp://blog./mmerer.com$!$hZp://dash.itec.aau.at/ mailto:chris/an./mmerer@itec.uniBklu.ac.at$ ACM(Mul,media(2012,(Nara,(Japan( 29th(October,(2012( Acknowledgments.$This$work$was$supported$in$part$by$the$European$Commission$in$the$context$of$the$ALICANTE$project$(FP7B ICTB248652),$SocialSensor$(FP7BICTB287975),$and$the$COST$Ac/on$IC1003$QUALINET.$$
  26. 26. DASH@GPAC: MP4Box & MP42TS !  Multimedia Packagers •  MPEG-2 TS for DASH profiles •  ISOBMFF Packager & Analyser !  DASH Segmenter •  ISOBMFF and M2TS segments -  All DASH profiles supported -  URL-template naming scheme •  Segment indexing (SIDX) •  GOP-align segments or fragments (MediaSourceExtension) •  Automatic AdaptationSet selection -  Media type, codec, language, PAR -  Handle groups (same media but not switchable) !  DASH live simulator -  Manages MPD update and timeline continuityjean.lefeuvre@telecom-paristech.fr http://gpac.sourceforge.net
  27. 27. DASHEncoder$•  DASH$Content$Genera/on$Tool$ –  Encoding$+$Mul/plexing$+$MPD$genera/on$ –  Generates$isoffmain$profile$compliant$MPDs$ –  Fully$configurable$using$a$configBfile$ –  Enables$batch$processing$ –  Currently$uses$x264$and$GPAC‘s$MP4Box$ –  Easy$extensible$to$further$$ encoders$&$mul/plexers$ –  hZp://dash.itec.aau.at/$Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 27$
  28. 28. DASHEncoder$ •  h.264:$ $x264$/$ffmpeg$ •  AAC: $ $ffmpeg$ Encode$ •  [WebM,$etc.]$ •  MP4Box: $Video$/$Audio$/$Video$+$Audio$ •  [e.g.$WebM/MKV$Segmenter]$Container$ •  Generate$one$MPD$ •  Subfolder$Organiza/on$ MPD$ •  MPD$Transforma/on$Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 28$
  29. 29. Dataset$•  Dataset(with(DASH(Content( –  Long$sequences$in$high$quality$ –  Various$segmentBlength$versions$ –  Free$available$for$DASH$experiments$$ –  PSNR$values$per$frame$•  Problem:(Content(Rights( –  CCBAZribu/on$2.0$Generic$(CCHBY(2.0)$License$or$similar$$ –  Free$to$Share,$Free$to$Remix$ –  Note:$YouTube$introduces$CCBBY$in$June$2011!$•  Nego,a,on(with(content(owner(Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 29$
  30. 30. Dataset$Sequences$ Name Source(Quality Length Genre Big$Buck$Bunny$ 1080p$YUV 09:46 Anima/on$$ Elephants$Dream$ 1080p$YUV 10:54 Anima/on$ Red$Bull$Playstreets 1080p,$6$Mbit$H.264$ 01:37:28 Sport$ The$Swiss$Account$ 1080p,$6$Mbit$H.264 57:34 Sport$ Valkaama 1080p,$6$Mbit$H.264$ 01:33:05 Movie$ Of$Forest$and$Men SD 10:53 Movie$Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 30$
  31. 31. DASH$Dataset$Sequences$Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 31$
  32. 32. Bitrates$and$Resolu/ons$ # Anima,on Sport Movie 1 50$kbit/s,$$320x240 100$kbit/s,$$320x240 50$kbit/s,$320x240 2 100$kbit/s,$$320x240 150$kbit/s,$$320x240 100$kbit/s,$320x240 3 150$kbit/s,$$320x240 200$kbit/s,$$480x360 150$kbit/s,$$320x240 4 200$kbit/s,$$480x360 250$kbit/s,$$480x360 200$kbit/s,$$480x360 5 250$kbit/s,$$480x360 300$kbit/s,$$480x360 250$kbit/s,$$480x360 6 300$kbit/s,$$480x360 400$kbit/s,$$480x360 300$kbit/s,$$480x360 7 400$kbit/s,$$480x360 500$kbit/s,$$854x480 400$kbit/s,$$480x360 8 500$kbit/s,$$480x360 700$kbit/s,$$854x480 500$kbit/s,$$854x480 9 600$kbit/s,$$854x480$ 900$kbit/s,$$854x480 600$kbit/s,$$854x48010 700$kbit/s,$$854x480$ 1,2$Mbit/s,$$854x480 700$kbit/s,$$854x48011 900$kbit/s,1280x720$ 1,5$Mbit/s,1280x720 900$kbit/s,1280x72012 1,2$Mbit/s,1280x720$ 2,0$Mbit/s,1280x720 1,2$Mbit/s,1280x72013 1,5$Mbit/s,1280x720$ 2,5$Mbit/s,1280x720 1,5$Mbit/s,1280x72014 2,0$Mbit/s,1280x720$ 3,0$Mbit/s,1920x1080 2,0$Mbit/s,1920x108015 2,5$Mbit/s,1920x1080$ 4,0$Mbit/s,1920x1080 2,5$Mbit/s,1920x108016 3,0$Mbit/s,1920x1080$ 5,0$Mbit/s,1920x1080 3,0$Mbit/s,1920x108017 4,0$Mbit/s,1920x1080 6,0$Mbit/s,1920x1080 4,0$Mbit/s,1920x108018 5,0$Mbit/s,1920x1080 $ 5,0$Mbit/s,1920x108019 Oct$29,$2012$ 6,0$Mbit/s,1920x1080 $ DASH$Tutorial,$ACM$Mul/media$2012$ 6,0$Mbit/s,1920x1080 32$20 8,0$Mbit/s,1920x1080 $ $
  33. 33. DASH$Content$Types$•  Segment(Size:$ –  Seconds:$1,$2,$4,$6,$10,$15$•  File(Organiza,on( –  Segmented$ –  One$file$per$representa/on,$Byte$Range$Requests$•  e.g.:(Big(Buck(Bunny( –  (120(Encodings$needed$ –  Only$6(DASH(Encoder$runs$Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 33$
  34. 34. DASH@GPAC: Playback!  DASHClient !  Integrated in Osmo4 •  DASH ISOBMFF, M2TS (+ HLS) •  Many input formats and -  With or without bitstreamSwitching codecs -  Support for multiple Periods •  Composition engine •  All profiles except onDemand (SVG, BIFS, X3D) (ongoing) !  Try it! -  VoD through « live » or « main » •  Included in libgpac •  Local files and http(s) playback •  Independent from player •  Various download policies GPAC DASH MPD Playback Media Bring Your Own Segments DASH APP !!jean.lefeuvre@telecom-paristech.fr http://gpac.sourceforge.net
  35. 35. DASH$VLC$Plugin$Architecture$•  Four$major$ components$and$ two$controller$ classes$•  Easy$Adapta/on$ Logic$Interface$for$ Researchers$and$ Developers$•  Flexible$HTTP$ structure$for$further$ improvements$e.g.$ persistent$ hZp://dash.itec.aau.at/$ connec/ons$ Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 35$
  36. 36. DASH$VLC$Plugin$Features$•  Officially$part$of$VLC$and$as$library$(libdash)$•  Provides$a$simple$interface$to$integrate$new$ Adapta/on$Logics$•  Dynamic$adapta/on$to$the$available$bandwidth$•  Flexible$for$further$improvements,$e.g.,$profiles,$ persistent$connec/ons$and$pipelining$•  Source$code$is$available$through$the$VLC$git$ repository$and$at:$ hZp://wwwBitec.aau.at/dash$Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 36$
  37. 37. VLC$Architecture$•  Interface:$User$ interac/on$e.g.$stop,$play$ etc.$•  Access:$HTTP,$RTP$etc.$•  StreamBFilter:$Recording,$ Dynamic$Streaming$•  Demux:$MP4,$M2TS,$ MKV$•  Decoder:$H264,$VP8$etc.$ Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 37$
  38. 38. DASH$in$JavaScript$(DASHBJS)$•  Completely$implemented$in$JavaScript$–$no$ (3rd$party)$plugins$required$•  Makes$use$of$the$Media$Source$API$provided$ by$Google$Chrome$ –  Support$for$WebM$and$ISOBMFF$•  Provides$/me$based$and$byte$based$buffers$ –  E.g.,$use$as$input$for$adapta/on$logics$•  Flexible$adapta/on$logics$ –  Easy$to$extend$exis/ng$ones$or$integrate$your$ own$Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 38$
  39. 39. DASHBJS$Architecture$Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 39$
  40. 40. DASHBJS$(cont’d)$•  Bandwidth$/$throughput$es/ma/on$ –  …$is$done$each$/me$a$segment$is$retrieved$ –  At$the$beginning$the$MPD$is$used$to$have$an$educated$guess$on$the$ bandwidth$ –  To$bypass$proxy$caching$“noBcache”$is$set$in$the$HTTP$Request$Header$ (will$influence$the$throughput$es/ma/on)$•  Representa/on$selec/on$is$based$on:$ w1bn−1 + w2 bm bn = w1 + w2 –  bnB1$denotes$the$throughput$calculated$at$the$nB1th$segment$ –  bm$depicts$the$throughput$measured$with$the$nth$segment$ –  bn$is$used$to$decide$which$representa/on$should$be$selected$ –  The$weights$(w1$and$w2)$are$used$to$mimic$op/mis/c$or$pessimis/c$ behavior$•  Simple$adapta/on$logic,$easy$to$extend,$modify…$Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 40$
  41. 41. Showcases$•  Sintel$Trailer$@$480p$ –  5$representa/on$from$200$kbps$to$2000$kbps$video$bitrate$ –  128$kbps$audio$for$all$representa/ons$ –  Showcase:$hZp://wwwBitec.uniBklu.ac.at/dash/js/dashtest.html$$ –  MPD:$hZp://wwwBitec.uniBklu.ac.at/dash/js/content/sintel_mul/_rep.mpd$•  Big$Buck$Bunny$@$480p$ –  7$representa/ons$from$200$kbps$to$4700$kbps$video$bitrate$ –  128$kbps$audio$for$all$representa/ons$ –  Showcase:$hZp://wwwBitec.uniBklu.ac.at/dash/js/dashtestBbunny.html$$ –  MPD:$hZp://wwwBitec.uniBklu.ac.at/dash/js/content/bigbuckbunny.mpd$•  Big$Buck$Bunny$@$1080p$ –  7$representa/ons$from$1000$kbps$to$8000$kbps$ –  128$kbps$audio$for$all$representa/ons$ –  Showcase:$hZp://wwwBitec.uniBklu.ac.at/dash/js/dashtestBbunny1080p.html$$ –  MPD:$hZp://wwwBitec.uniBklu.ac.at/dash/js/content/bigbuckbunny_1080p.mpd$Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 41$
  42. 42. Conclusions$•  EndBtoBend$DASH$tools$available$ –  GPAC$provides$support$for$ISOBMFF,$M2TS,$and$beyond$ –  DASH$VLC$plugin$and$libdash$(world$first$DASH$player)$ –  DASHBJS$for$easy$Web$integra/on$(HTML5,$Javascript)$•  Flexible$architecture,$easy$to$extend,$e.g.:$ –  Add$your$own$profile$(!!!)$ –  Add$your$own$buffer$model$ –  Add$your$own$bandwidth$es/ma/on,$adapta/on$logic$•  Open$source:$hZp://dash.itec.aau.at$|$ hZp://gpac.sourceforge.net$ –  Feel$free$to$use$it,$please$acknowledge/reference$us$Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 42$
  43. 43. An(Evalua,on(of(Dynamic(Adap,ve(Streaming( over(HTTP(in(Vehicular(Environments( Christopher(Müller,(Stefan(Lederer,(and(Chris,an(Timmerer( (AlpenHAdriaHUniversität(Klagenfurt((AAU)(!(Faculty(of(Technical(Sciences((TEWI)(!(Department(of(Informa,on( Technology((ITEC)(!(Mul,media(Communica,on((MMC)(!(Sensory(Experience(Lab((SELab)( hZp://research./mmerer.com$!$hZp://blog./mmerer.com$!$hZp://dash.itec.aau.at/ mailto:chris/an./mmerer@itec.uniBklu.ac.at$ ACM(Mul,media(2012( 29th(October,(2012( Acknowledgments.$This$work$was$supported$in$part$by$the$European$Commission$in$the$context$of$the$ALICANTE$project$(FP7B ICTB248652),$SocialSensor$(FP7BICTB287975),$and$the$COST$Ac/on$IC1003$QUALINET.$$
  44. 44. Methodology$•  Experiment(1(/(Track(1((601(seconds)$ –  Drive$on$the$freeway$A2,$passing$by$the$city$of$Villach$in$the$direc/on$to$ Klagenfurt.$•  Experiment(2(/(Track(2((575(seconds)$ –  From$the$AlpenBAdriaBUniversität$Klagenfurt$on$the$freeway$A2$un/l$the$ service$area$around$Techelsberg.$•  Experiment(3(/(Track(3((599(seconds)$ –  From$the$service$area$around$Techelsberg$on$the$freeway$A2$to$the$exit$of$ Klagenfurt.$Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 44$
  45. 45. Metrics$•  Average$bitrate$ –  Overall$performance$for$the$en/re$session$•  Number$of$quality$switches$ –  Different$representa/on$due$available$bandwidth$•  Buffer$level$ –  Es/mated$with$download$/mestamp$(DTS)$and$ presenta/on$/mestamp$(PTS)$•  Number$of$unsmooth$seconds$ –  Buffer$empty$Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 45$
  46. 46. Experimental$Setup$•  Bandwidth$Shaping$ –  Ubuntu$11.04$w/$Linux$hierarchical$token$bucket$(htb)$ –  Available$bandwidth$will$be$adjusted$every$2s$due$to$the$recorded$ traces$and$2s$segment$length$•  Network$Emula/on$ –  Emulates$a$round$trip$/me$of$150ms$•  HTTP$Server$ –  Server$based$on$Windows$Server$2008$and$IIS$/$Ubuntu$11.04$and$ Apache$Web$Server$•  Evalua/on$Client$ –  Windows$or$Linux$depending$on$the$evalua/on$system$Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 46$
  47. 47. Dataset$•  All$experiments$have$been$performed$with$ the$same$content$based$on$[Lederer2012]$•  The$content$has$been$encoded$with$x264$•  14$different$bitrates$from$100kbps$to$ 4500kbps$•  Segments$with$a$length$of$2$seconds$ –  Restricted$by$Microsor$Smooth$Streaming$•  That$content$has$been$used$for$all$three$ scenarios$Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 47$
  48. 48. Microsor$Smooth$Streaming$•  Client$based$on$Windows$7,$Microsor$ Silverlight$and$Firefox$7$•  Server$based$on$Windows$Server$2008$and$IIS$ with$Media$Services$4.0$•  Content$has$been$mul/plexed$with$IIS$ Transform$Manager$1.0$Beta$•  PTS$has$been$taken$from$the$request$URL$•  DTS$comes$from$the$bandwidth$emula/on$ node$Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 48$
  49. 49. Microsor$Smooth$Streaming$(cont’d)$•  Few$switches$with$a$good$average$bitrate$•  Nevertheless$close$to$unsmoothness$at$second$300$Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 49$
  50. 50. Adobe$Dynamic$HTTP$Streaming$•  Client$is$based$on$Ubuntu$11.04,$Firefox$7$and$ the$Open$Source$Media$Framework$player$•  The$server$component$hosts$the$Flash$Media$ Server$in$development$edi/on$•  The$content$has$been$generated$with$the$ Adobe$File$Packager$for$Adobe$Dynamic$ Streaming$Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 50$
  51. 51. Adobe$Dynamic$HTTP$Streaming$(cont’d)$•  High$number$of$unsmooth$seconds$•  Rather$binary$and$unpredictable$Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 51$
  52. 52. Apple$HTTP$Live$Streaming$•  Client$is$based$on$Mac$OS$X$Snow$Leopard$ 10.6$and$Safari$5$•  Content$has$been$generated$with$Microsor$ Transform$Manager$ –  Transmul/plexing$of$mp4$to$MPEGB2$TS$ –  Chops$the$transport$stream$into$segments$of$2$ seconds$length$•  The$only$system$that$uses$MPEGB2$TS$Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 52$
  53. 53. Apple$HTTP$Live$Streaming$(cont’d)$•  Very$few$switches$with$a$lower$bitrate$•  Large$buffer$for$energy$awareness$Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 53$
  54. 54. Our$MPEGBDASH$Implementa/on$•  Client:$DASH$VLC$Plugin$[Mueller2011]$on$ Ubuntu$11.04$$•  Server:$Ubuntu$11.04$which$hosts$an$Apache$ Web$server$•  Content$based$on$DASH$dataset$generated$ with$DASHEncoder$•  Simple$(naïve)$adapta/on$logic$Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 54$
  55. 55. Our$MPEGBDASH$Implementa/on$(cont’d)$•  Non$stepwise$switching$$•  Good$average$bitrate$and$stable$buffer$$Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 55$
  56. 56. MPEGBDASH$AVC$Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 56$
  57. 57. MPEGBDASH$SVC$Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 57$
  58. 58. Summary$ Name( Average(Bitrate( Average(Switches( Average(Unsmoothness( [kbps]( [Number(of(Switches]( [Seconds]( Microsor$ 1522$ 51$ 0$ Adobe$ 1239$ 97$ 64$ Apple$ 1162$ 7$ 0$ MPEGBDASH$ 1045$ 141$ 0$ Naïve*$ MPEGBDASH$ 1464$ 166$ 0$ Pipelined*$ MPEGBDASH$ 2341$ 81$ 0$ AVC**$ MPEGBDASH$ 2738$ 101$ 0$ SVC**$*$…$MoVid/MMSys,$February$2012$**$…$EUSIPCO,$August$2012$Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 58$
  59. 59. Conclusions$•  Microsor$Smooth$Streaming$ –  Performs$very$well$w.r.t.$average$bitrate$ –  Yes,$deserves$the$name$smooth$streaming$•  Apple$HLS$ –  Less$quality$switches$due$to$large$buffer$ –  Designed$for$mobile$devices,$energy$awareness$•  Adobe$HDS$ –  Binary$decision$between$the$highest$and$the$lowest$representa/on$ –  Stalls,$reBbuffering$=>$low$QoE$$•  Our$MPEGBDASH$implementa/on$ –  Achieves$a$good/superior$average$bitrate$ –  In$striking$distance$to$the$top,$space$for$improvements$though$(e.g.,$buffer$ management)$•  Disclaimer:$comparison$of$specific$client$implementa/ons,$not$formats$ (manifest/segment),$not$technology$Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 59$
  60. 60. DASH$@$AAU/ITEC$ hZp://dash.itec.aau.at/$ $ DASH$VLC$Plugin$ $ DASHEncoder$ $ libdash$ $ Dataset$ $ DASHBJS$ $ Join$this$ac/vity,$everyone$ is$invited$–$get$involved$in$ and$exited$about$DASH!$ $Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 60$
  61. 61. Acknowledgments$•  EC$projects$for$par/ally$funding$this$ac/vity$ –  ALICANTE$project$(FP7BICTB248652)$ •  hZp://www.ictBalicante.eu$ –  SocialSensor$project$(FP7BICTB287975)$ •  hZp://www.socialsensor.org$ –  COST$ICT$Ac/on$IC1003$ •  QUALINET$–$European$Network$on$Quality$ of$Experience$in$Mul/media$Systems$and$Services$ •  hZp://www.qualinet.eu/$•  DASH$Industry$Forum$ –  hZp://www.dashif.com$•  Christopher$Müller:$VLC$Plugin,$libdash$•  Stefan$Lederer:$DASHEncoder,$dataset,$DASHBJS$•  Benjamin$Rainer:$DASHBJS$•  Hermann$Hellwagner$for$his$advice$and$feedback$•  ISO/IEC$MPEG$and$its$par/cipa/ng$members$for$their$construc/ve$ feedback$during$the$standardiza/on$process$Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 61$
  62. 62. References$•  Christopher$Müller,$Daniele$Renzi,$Stefan$Lederer,$Stefano$Baàsta$and$Chris/an$Timmerer,$“Using$ Scalable$Video$Coding$for$Dynamic$Adap/ve$Streaming$Over$HTTP$in$Mobile$Environments”,$In$ Proceedings$of$the$20th$European$Signal$Processing$Conference$2012,$Bucharest,$Romania,$August$ 27B31,$2012.$•  Benjamin$Rainer,$Stefan$Lederer,$Christopher$Müller$and$Chris/an$Timmerer,$“A$Seamless$Web$ Integra/on$of$Adap/ve$HTTP$Streaming”,$In$Proceedings$of$the$20th$European$Signal$Processing$ Conference$2012,$Bucharest,$Romania,$August$27B31,$2012.$•  Stefan$Lederer,$Christopher$Müller$and$Chris/an$Timmerer,$“PeerBAssisted$Dynamic$Adap/ve$ Streaming$over$HTTP$–$System$Design$and$Evalua/on”,$In$Proceedings$of$the$IEEE$Interna/onal$ Packet$Video$Workshop$2012,$Munich,$Germany,$May$10B11,$2012.$•  Christopher$Müller,$Stefan$Lederer$and$Chris/an$Timmerer,$“An$Evalua/on$of$Dynamic$Adap/ve$ Streaming$over$HTTP$in$Vehicular$Environments”,$In$Proceedings$of$the$4th$ACM$Workshop$on$ Mobile$Video,$Chapel$Hill,$North$Carolina,$February$24,$2012.$•  Stefan$Lederer,$Christopher$Müller$and$Chris/an$Timmerer,$“Dynamic$Adap/ve$Streaming$over$ HTTP$Dataset”,$In$Proceedings$of$the$ACM$Mul/media$Systems$Conference$2012,$Chapel$Hill,$North$ Carolina,$February$22B24,$2012.$•  Christopher$Müller$and$Chris/an$Timmerer,$“A$VLC$Media$Player$Plugin$enabling$Dynamic$Adap/ve$ Streaming$over$HTTP”,$In$Proceedings$of$the$ACM$Mul/media$2011,$ScoZsdale,$Arizona,$November$ 28,$2011.$•  Christopher$Müller$and$Chris/an$Timmerer,$“A$TestBBed$for$the$Dynamic$Adap/ve$Streaming$over$ HTTP$featuring$Session$Mobility”,$In$Proceedings$of$the$ACM$Mul/media$Systems$Conference$ 2011,$San$Jose,$California,$February$23B25,$2011.$•  Chris/an$Timmerer$and$Christopher$Müller,$“HTTP$Streaming$of$MPEG$Media”,$In$Proceedings$of$ the$Streaming$Day$2010,$Udine,$Italy,$September$16B17,$2010.$Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 62$
  63. 63. IEEE$JSAC:$Adap/ve$Media$Streaming$ •  Guest$Editors$ –  Chris/an$Timmerer,$AlpenBAdriaB Universität$Klagenfurt,$Austria$ –  Ali$C.$Begen,$CISCO,$Canada$ –  Thomas$Stockhammer,$QUALCOMM,$ USA$ –  Carsten$Griwodz,$Simula$Research$ Laboratory,$Norway$ –  Bernd$Girod,$Stanford$University,$USA$ •  Important$Dates$ –  1st$Submission:$Apr$1,$2013$ –  Reviews$Available:$Jul$1,$2013$ –  2nd$Submission:$Aug$31,$2013$ –  Final$Acceptance$Decision:$Oct$31,$2013$ –  CameraBready:$Dec$1,$2013$ –  Publica/on:$2nd$quarter$2014$hZp://mul/mediacommunica/on.blogspot.com/2012/07/jsacBspecialBissueBadap/veBmedia.html$ Oct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 63$
  64. 64. Thank$you$for$your$aZen/on$ ...$ques/ons,$comments,$etc.$are$welcome$…$ $ $ $Ass.BProf.$Dipl.BIng.$Dr.$Chris/an$Timmerer$ Klagenfurt$University,$Department$of$Informa/on$Technology$(ITEC)$ Universitätsstrasse$65B67,$AB9020$Klagenfurt,$AUSTRIA$ chris/an./mmerer@itec.uniBklu.ac.at$ hZp://research./mmerer.com/$ Tel:$+43/463/2700$3621$Fax:$+43/463/2700$3699$ ©Copyright:Chris#anTimmererOct$29,$2012$ DASH$Tutorial,$ACM$Mul/media$2012$ 64$
  65. 65. A Comparison of Quality Scheduling inCommercial Adaptive HTTP Streaming Solutions on a 3G Network Haakon Riiser, Håkon S. Bergsaker, Paul Vigmostad, Pål Halvorsen, Carsten Griwodz
  66. 66. Fluctuating Bandwidth ProblemUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
  67. 67. Fluctuating Bandwidth Problem Ferry Subway Question: How well do adaptive streaming media solutions adapt? Bus TramUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
  68. 68. Adaptive Delivery: Tested Systems!  Adobe Strobe Media Playback (v1.6.328 for Flash 10.1) using HTTP Dynamic Streaming Format!  Apple’s native iPad player (iOS v4.3.3) using native HLS format!  Microsoft Silverlight/IIS Smooth (v4.0.60531.0 on Win7) using native Smooth format and default desktop scheduler!  Netview Media Client (v2011-10-10) using Apple HLS format (worst case) and Netview 3G schedulerServer!  Apache v2.2.14!  CodeShop Unified Streaming Platform v1.4.25!  Throttling module for trace-based bandwidth limitation, 1sec resolution University of Oslo DASH Tutorial, ACM Multimedia 2012
  69. 69. Adaptive Delivery: Test Content!  Video: Norwegian football game (i.e. soccer)!  H.264/AVC Why is the bandwidth!  2 second segments increase non-linear? Bitrate increase Akamai recommendations provides dimishing!  6 quality levels: 250, 500, 750, 1000, 1500, 3000 kbps return on visual quality increase. The just noticable difference is not achieved at 250 kbps steps.University of Oslo DASH Tutorial, ACM Multimedia 2012
  70. 70. Comparison of Existing Quality Schedulers Bus: Configured for desktops Ferry: Configured for mobilesUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
  71. 71. Comparison of Existing Quality Schedulers Metro: For the Netview algorithm see: “Video Streaming Using a Location-based Bandwidth-Lookup Service for Bitrate Planning”, Haakon Riiser, Tore Endestad, Paul Vigmostad, Carsten Griwodz, Pål Halvorsen, TOMCCAP, July 2012University of Oslo DASH Tutorial, ACM Multimedia 2012
  72. 72. Conclusion Difference between players’ quality scheduler dominates the overhead Adobe: maximizes aggressiveness at the expense of stability Apple: maximize stability at the expense of aggressiveness Microsoft Silverlight: good compromise Netview: similar to Microsoft, outperforms in this configuration !  Many people commute using the same route !  Many mobile devices have GPS receivers !  What about crowdsourcing the throughput on the commute paths at various times of day?University of Oslo DASH Tutorial, ACM Multimedia 2012
  73. 73. A Comparison of Quality Scheduling inCommercial Adaptive HTTP Streaming Solutions on a 3G Network Haakon Riiser, Håkon S. Bergsaker, Paul Vigmostad, Pål Halvorsen, Carsten Griwodz
  74. 74. Prediction Metro: Location-based bandwidth-lookup service for bitrate (video quality) planning: Algorithm: !  Calculate the predicted amount of data that historically can be downloaded !  Calculate maximum steady quality without getting buffer-underruns !  Safety: reactive algorithm fallbackUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
  75. 75. Prediction: Metro Metro: From: “Video Streaming Using a Location-based Bandwidth-Lookup Service for Bitrate Planning”, Haakon Riiser, Tore Endestad, Paul Vigmostad, Carsten Griwodz, Pål Halvorsen, TOMCCAP, July 2012University of Oslo DASH Tutorial, ACM Multimedia 2012
  76. 76. Quality-of-Experience Considerations withRelevance for Adaptive HTTP Streaming Pengpeng Ni, Ragnhild Eg, Alexander Eichhorn, Pål Halvorsen, Carsten Griwodz
  77. 77. Adaptive Delivery: Test Content!  Video: Norwegian football game (i.e. soccer)!  H.264/AVC!  2 second segments Question: What is “good” adaptation? Akamai recommendations!  6 quality levels: 250, 500, 750, 1000, 1500, 3000 kbpsUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
  78. 78. Why visual quality studies? UDP-based streaming DASH & similar   resists packets loss –  scales to available bandwidth   random loss –  congestion loss Applications Applications –  Commercial VoD: Netflix,   IPTV Akamai, Microsoft, Apple,   DVD-H Comoyo, ...   video conferencing –  MPEG DASH   classical RTSP/RTP servers –  Free VoD: Youtube, Metacafe, Dailymotion, Vimeo, Revver, Flixya ... Internet Client WLAN ServerUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
  79. 79. Why visual quality studies? UDP-based streaming DASH & similar Resilience to packet loss Resilience to buffer underruns Possibly resilience to bit errors Active adaptation (client- side decision) Possibly active adaptation (server-side decision) Internet Client WLAN ServerUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
  80. 80. PSNR Peak Signal-to-Noise Ratio A prevalent video quality metric (2B − 1)2 PSNR = 10log10 MSE where: 1 M N MSE = ∑∑ [Ima (x, y) − Imb (x, y)]2 MN y =1 x =1 M, N = image dimensions Ima , Imb = pictures to compare B= bit depthUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
  81. 81. User experience: reduced PSNRUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
  82. 82. PSNR ReferenceExample fromProf. Touradj Ebrahimi,ACM MM09 keynotePSNR = 24.9 dB PSNR = 24.9 dB PSNR = 24.9 dB University of Oslo DASH Tutorial, ACM Multimedia 2012
  83. 83. PSNR Peak Signal-to-Noise Ratio A prevalent video quality metric In addition to this: •  several different PSNR computations for color images •  different PSNR for different color spaces (RGB,YUV) •  visible influence of the encoding format These problems hurts all metrics that are based on PSNR Improved by image quality metrics such as •  SSIM variants •  rate distortion metricsUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
  84. 84. Conclusion You encounter Quality-of-Experience measurements based on PSNR everywhere in the literature. •  it is very easy to compute •  it is probably working to assess the quality of images with bit errors Be very careful when you encounter 1.  PSNR-based objective metrics 2.  adaptation mechanisms whose effectiveness is proven by PSNR !  It’s easy to complain. !  But how to do better?University of Oslo DASH Tutorial, ACM Multimedia 2012
  85. 85. QoE Effects of Changing Layers in Adaptive HTTP Streaming Pengpeng Ni, Ragnhild Eg, Alexander Eichhorn, Pål Halvorsen, Carsten Griwodz, Michael Zink
  86. 86. Image-based metrics can fail badly: FlickeringUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
  87. 87. Layered content Used SPEG as layer encoded video format [avail. from C. Krasic, UBC] shape 1 shape 2 layers layersA frames frames amplitude of layer variation layers layersB frames frames frequency of layer variationUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
  88. 88. Layered content Comparing PSNR with layer change counting: S(v) = − v i+1 ∑v i These observations discredit v i ∈v PSNR, where v is the vector of frames and vi is the number of layers of a but they don’t provide a real alternative. frame These observations indicate that frequentE change Shape € A B C D F G is problematic. PSNR of shape 1 62.86 61.46 63.15 48.01 49.40 66.02 29.84 PSNR of SPEG 2 outdated. 73.28 52.38 25.08 26.95 63.28 64.30 But shape is 49.47 SPEG scaling decisions were based on intuition. S(v)Adaptive1HTTP Streaming today is based 2 H.264. of shape 2 6 2 2 on 0.5 0 S(v) of shape 2 2 4 1 0 0 0.5 2 Subjective assessment 0.35 0.55 0.73 1.18 1.02 2.18 -0.24University of Oslo DASH Tutorial, ACM Multimedia 2012
  89. 89. Layer fluctuation in scalable video streamingUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
  90. 90. We need guidelines for video adaptation strategies To cope with the bandwidth fluctuation, which scalability dimension is generally preferable for video adaptation? Within each dimension, which scaling pattern generates the least annoying flicker effect? Is it possible to control the annoyance of flicker effects? How is subjective video quality related to other factors, such as content, devices?University of Oslo DASH Tutorial, ACM Multimedia 2012
  91. 91. We investigate visual artifact issues via several subjective tests Previous Findings   Human perception of video quality are content and context dependent   There is no general preference order of scaling dimensions   High frequency may cause flicker effect that is regarded as worse than constant low image quality   In mobile scenario, a frame rate above 12 fps does not cause noticeable visual artifacts   In HDTV scenario, a frame rate of 12 fps does generate noticeable motion jerkiness Challenges of subjective tests:   Efficient and reliable experimental design that avoids fatigue and learning effectUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
  92. 92. Flickering effects: the visual artifacts caused by layer fluctuation in scalable video Flicker arises from recurrent changes in spatial or temporal quality, some so rapid that the human visual system only perceives fluctuations within the video. Noise flicker Blur flicker Motion flicker Compression scaling Resolution scaling Frame rate scalingUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
  93. 93. Blurriness flicker exampleBlur flickerAmplitude: 480x320px – 120x80pxFrequency: 10f / 3 Hz University of Oslo DASH Tutorial, ACM Multimedia 2012
  94. 94. Noise flicker exampleNoise flickerAmplitude: QP24 – QP40Frequency: 90f / 0.33 Hz University of Oslo DASH Tutorial, ACM Multimedia 2012
  95. 95. Motion flicker exampleMotion flickerAmplitude: 30fps – 3fpsFrequency: 6f / 5 Hz University of Oslo DASH Tutorial, ACM Multimedia 2012
  96. 96. How to describe different layer fluctuations?Layer fluctuation pattern -  Frequency: The time interval it takes for a video sequence return to its previous status -  Amplitude: The quality difference between the two layers being switched -  Dimension: Spatial or temporal, artifact type Layer Frequency and Amplitude are the interesting factors in our subjective test University of Oslo DASH Tutorial, ACM Multimedia 2012
  97. 97. Layer fluctuation pattern in Spatial dimension Full bit stream, QH F =1/2, A = QH-QL F = 1/4 , A = QH-QL F = 1/6 , A = QH-QLF = 1/24 , A = QH-QL Sub stream QL Bandwidth consumption in all of the changing patterns is the same, due to the same amplitude. References QH and QL differ.University of Oslo DASH Tutorial, ACM Multimedia 2012
  98. 98. Layer fluctuation pattern in Temporal dimension Full bit stream, 30fps F =1/4, A = 30-15fps F = 1/8 , A = 30-15fpsF = 1/12 , A = 30-15fpsF = 1/24 , A = 30-15fps Sub stream 15fps Although the average bit-rate is the same, the visual experience of different patterns may not be identical. University of Oslo DASH Tutorial, ACM Multimedia 2012
  99. 99. Method Participants Procedure •  28 paid, voluntary participants •  Field study at university library •  9 females, 19 males •  Presented on iPod touch devices •  Age 19 – 41 years (mean 24) - Resolution 480x320 •  Self-reported normal hearing, - Frame rate 30 fps and normal/corrected vision •  12 sec video duration •  Random presentations •  Optional number of blocksUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
  100. 100. Stability scores - Period 100 %100 % 100 % 90 % 90 % 90 % 80 % 80 % 80 % 70 % 70 % 70 % 60 % 60 % 60 % 50 % Unstable 50 % Unstable 50 % 40 % 40 % 40 % Stable Stable 30 % 30 % 30 % 20 % 20 % 20 % 10 % 10 % 10 % 0% 0% 0% HQ LQ HQ LQ 10f 30f 60f 90f 10f 30f 60f 90f 180f 180f 6f 6f HQ 30f 60f 90f 180f LQ Perceived quality stability Perceived quality stability Perceived quality stability across period levels for across period levels for across period levels for Noise flicker Blur flicker Motion flickerUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
  101. 101. Stability scores - Amplitude 100 % 100 % 100 % 90 % 90 % 90 % 80 % 80 % 80 % 70 % 70 % 70 % 60 % 60 % 60 % Unstable 50 % Unstable 50 % 50 % 40 % 40 % Stable Stable 40 % 30 % 30 % 30 % 20 % 20 % 20 % 10 % 10 % 10 % 0% 0% 240x160 120x80 0% QP28 QP32 QP36 QP40 px 15fps 10fps 5fps 3fps Perceived quality stability Perceived quality stability Perceived quality stability across amplitude levels for across amplitude levels for across amplitude levels for Noise flicker Blur flicker Motion flickerUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
  102. 102. Video quality 2 Constant high quality QP 28 QP 32 QP 36 referencesMean Acceptance Score QP 40 1 Constant low quality 0 reference, QP28 −1 Not investigated here: relation between qualities −2 HQ 6f 10f 30f 60f 90f 180f LQ Period Noise L1 QP24 L0 QP28, QP32, QP36, QP40 Period 1/5s, 1/3s, 1s, 2s, 3s, 6s Content 4 mid/long distance shots From: “Flicker Effects in Adaptive Video Streaming to Handheld Devices”, Pengpeng Ni, Ragnhild Eg, Alexander Eichhorn, Carsten Griwodz, Pål Halvorsen ACM Multimedia 2011 University of Oslo DASH Tutorial, ACM Multimedia 2012
  103. 103. Acceptance - Noise flicker 2 QP 28 QP 32 QP 36 Mean Acceptance Score QP 40 1 0 −1 −2 HQ 6f 10f 30f 60f 90f 180f LQ PeriodUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
  104. 104. Acceptance – Blur flicker 2 240x160 Mean Acceptance Score 120x80 1 0 −1 −2 HQ 6f 10f 30f 60f 90f 180f LQ PeriodUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
  105. 105. Acceptance – Motion flicker 2 15 fps 10 fps 5 fps Mean Acceptance Score 3 fps 1 0 −1 −2 HQ 30f 60f 90f 180f LQ PeriodUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
  106. 106. Conclusions With longer flicker frequencies (high periods), acceptance of video quality increases in the spatial dimension Amplitude (quality difference) has larger effect than frequency, both for stability and acceptance For noise flicker, large quality differences are rated more acceptable with less frequent quality shifts. For blur flicker, improved acceptance with less frequent shifts is more pronounced for the smallest quality difference. The flicker effect varies across contents, particularly for motion flicker. The three types of flicker have different influences on stability and quality acceptance scores. Scores are generally lower for blur flicker.University of Oslo DASH Tutorial, ACM Multimedia 2012
  107. 107. Network Behaviour of DASH Traffic Tomas Kupka, Pål Halvorsen, Carsten Griwodz
  108. 108. Stream liveness!  The time it takes for an event to appear on the screenLiveness = 0s playout University of Oslo DASH Tutorial, ACM Multimedia 2012
  109. 109. Live traffic pattern Segmented live stream Limiting factors: Download synchronization -  Server speed -  Client speed Connection is idle -  Client buffer size -  Segment availability bandwidth time 2s 2sUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
  110. 110. VoD traffic pattern Segmented video file Limiting factors: -  Server speed -  Client speed -  Client buffer size •  not in real systems bandwidth •  buffer size is limited •  behaviour like live etc. when buffer is full timeUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
  111. 111. Transporting DASH 1. Does the request synchronization lead to problem? 2. Can we reduce such problem?Experiments with ns-2 Clients •  20 min. stream •  6 bitrates (250 to 3000 kb/s) •  2 sec. segments •  TCP CC CUBIC Bottleneck link 100 mb/s Web serverUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
  112. 112. Evaluated modificationsTCP congestion control alternatives TCP’s behave differently for short On traffic NewReno CUBIC CWND CWND time time University of Oslo DASH Tutorial, ACM Multimedia 2012
  113. 113. TCP congestion control alternatives Liveness Router queue dropsUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
  114. 114. TCP congestion control alternatives packet losses CUBIC Vegaslonger router queue TCP Vegas shares the network much better than TCP CUBIC Unfortunately, TCP Vegas looses to all other TCPs in sharing University of Oslo DASH Tutorial, ACM Multimedia 2012
  115. 115. TCP congestion control alternativeslowest quality highest quality left: Cubic, right: Vegas" Vegas delivers better liveness Cubic delivers higher quality University of Oslo DASH Tutorial, ACM Multimedia 2012
  116. 116. Evaluated modifications Increasing segment length: give TCP more time vs. 2 second segments 10 second segmentsUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
  117. 117. 2 second vs. 10 second segmentslowest quality highest quality TCPTCP gets out of slowstart CWND for 2 sec. segments Quality not better for longer segments high Quality low University of Oslo DASH Tutorial, ACM Multimedia 2012
  118. 118. Evaluated modifications Request distribution: avoid request synchronization R1 R2 R1 R2 R3 R3 vs. S1 available S1 availableUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
  119. 119. Client request distribution Client A: S1 S2 S3 time Client B: S1 S2 S3 timeUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
  120. 120. Client request distribution Synchronous requests Distributed requestsUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
  121. 121. Client request distributionlowest quality highest quality Distribution of the number of segments of different quality left: Sychronized, right: Distributed" University of Oslo DASH Tutorial, ACM Multimedia 2012
  122. 122. Evaluated modificationsCWND limit: restrict CWND to the max. bitrate available CWND timeUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
  123. 123. Client request distribution Liveness Router queue dropsUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
  124. 124. CWND limitation Liveness Router queue dropsUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
  125. 125. Conclusion TCP CC alternatives: TCP Vegas is good, but not practical Segment duration: No evidence of longer segments being better (network view) Client request distribution leads to good quality and liveness CWDN limitation leads to better fairnessUniversity of Oslo DASH Tutorial, ACM Multimedia 2012
  126. 126. DASH Tutorial: Summary Introduction to MPEG DASH DASH tools Examples of DASH (and DASH-like) systems’ performance QoE considerations Interaction of DASH and TCPUniversity of Oslo DASH Tutorial, ACM Multimedia 2012

×