A távolbalátás technikája Modern videokódolási módszerek Szegedi Kornél Mérnök tanácsadó - globális ügyfelek 2014. február 29.
ARF H.261 WebRTC H.120 H.262 MXF RealVideo MP4 DivX H.264 SVC RTVideo EVO WMV H.263 VC-1 MPEG-H Xvid AVI Ogg HEVC MPEG-2 DV MPEG-1 H.265 MKV HTML5 VP8 VP9 MPEG-4 H.264 AVC AVS H.264UC SVC FLV ASF Cisco Public 2
Cisco Public 3
H.265 High Efficiency Video Coding (HEVC) Scalable Video Coding (SVC) és Simulcast Hibatűrő átviteli technikák HTML5 és WebRTC Cisco Public 4
Videokódolási szabványok - történelem Év ITU-T Közismert név ISO/IEC 1988 H.261 MPEG-1 1996 H.262, H.263 MPEG-2 1998 H.263+ MPEG-4 Part 2 2000 H.263++ 2003 H.264 AVC MPEG-4 Part 10 2007 H.264 SVC SVC MPEG-4 Part 10 SVC 2009 H.264 MVC MVC/Simulcast SVC MPEG-4 Part 10 MVC 2013 H.265 HEVC MPEG-H 201x H.265 SVC/MVC HEVC SVC/MVC MPEG-H MVC/SVC Cisco Public 5
Videokódolás dióhéjban
Videokódolás alapok 1 I-Frame 1 Intra-coded kép A teljes statikus kép kódolt formában 2 P-Frame 2 Predicted kép Az előző képből származtatott ( 1 ) Csak a különbségeket tartalmazza 3 P-Frame 3 Predicted kép Egy másik P-frame-ből is származtatható ( ) 2 Cisco Public 7
Videokódolás alapok Cisco Public 8
H.265 High Efficiency Video Coding (HEVC)
Mi az a H.265? Új videokódolási szabvány HEVC (High Efficiency Video Coding) MPEG-H Part2 A H.264 utódja Joint Collaborative Team on Video Coding (JCT-VC) fejlesztése ISO/IEC Moving Picture Experts Group (MPEG) ITU-T Video Coding Experts Group (VCEG) A Cisco is részt vesz a munkában (ITU-T VCEG) Több Cisco szabadalmat tartalmaz Cisco Public 10
H.265 - jellemzők H.264 HP-hez képest Nagyobb tömörítés Kisebb sávszélesség-igény Nagyobb képméret (320x240-7680x4320 (8K)) Jelentősen nagyobb kódolási számításigény Kissé nagyobb dekódolási számításigény Cisco Public 11
H.265 - tömörítés és kódolási komplexitás Enkóder komplexitás 5x H.265 HEVC Dekóder: 1x 2x 2x 1x H.264 HP (high profile) H.264 (base profile) 50% 100% Sávszélesség Cisco Public 12
Minőség a sávszélesség függvényében Source: Comparison of the Coding Efficiency of Video Coding Standards, IEEE Trans. Cir. Sys. Video Tech., Vol. 22, No. 12, Dec 2012 Cisco Public 13
Tömörítési algoritmus Nagyobb blokkméret 16x16 makroblokk helyett 64x64 Rekurzív négyszintes fát épít a blokkokból 10-20% megtakarítás Finomabb mozgáskövetés 8 helyett 33 irányvektor 15-20% megtakarítás Cisco Public 14
Miért kell még idő a H.265 elterjedéséhez? Új hardver Teljes megoldás szükséges, nem csak a végpontok A kódolás hatékony megvalósítása időt igényel A szabvány csak a dekódert és a formátumot definiálja Az enkóder algoritmus és hardver optimalizálása folyamatos További profilok és kiegészítések várhatók (pl. SVC, low complexity) Cisco Public 15
Sávszélesség-igény közel feleződik A számításigény megugrik Elterjedésére várni kell Cisco stratégiája: Do it right the first time! Cisco Public 16
Scalable Video Coding (SVC) és Simulcast
Jobb hibatűrés Jobb sávszélességkihasználás Nem kell MCU Alacsonyabb költség Végpontok és gyártók közti együttműködés Cisco Public 18
Mi a H.264 SVC? Scalable Video Coding Több, különböző minőségű jelfolyam kódolását végzi A kódolás a jelfolyamok közötti hasonlóságon alapul MCU nélküli konferencia különböző minőségű résztvevők között Lazán definiált szabvány Még fejlődik A gyártók különböző SVC implementációkkal rendelkeznek Nincs teljes kompatibilitás az egyes implementációk között Cisco Public 19
Példa: időbeli skálázás Különböző képfrissítési sebességű jelfolyamok T 0 30 fps T 1 60 fps T 0 30 fps T 1 60 fps T 0 30 fps T 1 60 fps T 0 30 fps T 0 7.5 T 3 60 T 2 30 T 3 60 T 1 15 T 3 60 T 2 30 T 3 60 T 0 7.5 Cisco Public 20
4 fős konferencia 4 időbeli réteg: 7.5/15/30/60 fps 60 fps LAN Switch HD SD CIF 60 fps 30 fps Távoli iroda 15 fps Wifi Hotspot Cisco Public 21
Példa: felbontásbeli skálázás 3 felbontás: 720p/360p/180p HD SD CIF EL (720p) EL (360p) BL (180p) BL = Base Layer EL = Enhancement Layer Switch (SVC) 360p video EL (360p) BL (180p) LAN Távoli iroda Wifi Hotspot Cisco Public 22
Példa: minőségi skálázás 3M/2M/1M azonos képfrissítés és felbontás mellett LAN HD SD CIF EL (3M) EL (2M) BL (1M) BL = Base Layer EL = Enhancement Layer Switch (SVC) 2M video EL (2M) BL (1M) Távoli iroda Wifi Hotspot Cisco Public 23
Simulcast SVC (SSVC) Független jelfolyamok LAN HD SD CIF 720p 360p 180p Switch (Simulcast SVC) 360p video Távoli iroda Wifi Hotspot Cisco Public 24
Sávszélességek összehasonlítása SVC Simulcast SVC Transzkódolás MCU-val 1.13 Mbps 1.13 Mbps 275 kbps 1.32 Mbps 1 Mbps 250 kbps 1 Mbps 1.Mbps 250 kbps 70 kbps 70 kbps 70 kbps Küldő 1.13 Mbps Vevők 1.48 Mbps Küldő 1.32 Mbps Vevők 1.32 Mbps Küldő 1 Mbps Vevők 1.32 Mbps 720p - 1.13 Mbps (1M+13% overhead) 360p - 275 kbps (250k+10% overhead) 180p 70 kbps 720p - 1 Mbps 360p - 250 kbps 180p 70 kbps 720p - 1 Mbps 360p - 250 kbps 180p 70 kbps Cisco Public 25
Kompatibilitás AVC végpontokkal SVC: Natív módon csak a legalacsonyabb minőségű stream MCU szükséges a jobb minőséghez Enhancement Layer to (i.e. 720p) Simulcast SVC: SVC végpont HD Enhancement Layer to (i.e. 360p) SD CIF Base Layer (i.e. 180p) Natív együttműködés a legjobb minőséggel Complete 720p AVC végpont SSVC végpont HD SD Complete 360p Complete 180p AVC végpont Cisco Public 26
Kompatibilitás Lync 2013-mal Microsoft által támogatott kodekek a Lync 2013-ban RTVideo H.264UC SVC Cisco a szabványos H.264 SVC-t támogatja (RFC6190) Cisco és MS Lync között a VCS biztosít átjárást H.264 SVC UCIF profilok Cisco Microsoft Cisco Public 27
Az SVC nem megoldás mindenre Van, ahol a Simulcast SVC vagy az MCU jobb lehet A kompatibilitás biztosítása körültekintést igényel Cisco Public 28
Videoátvitel hálózaton
Videoforgalom és a szávszélesség 1400 Hangforgalom 1400 Videoforgalom P-Frame I-Frame P-Frame 1000 1000 Bytes 600 600 VoIP csomagok 200 200 20 ms Time 33 msec Cisco Public 30
Videoforgalom és a szávszélesség 3500 I-Frame-ek 3000 2500 Sávszélesség (kbps) 2000 1500 1000 500 0 HD videohívás, 720p30 @ 1920 kbps (1792 kbps video + 128 kbps audio) Idő (s) Cisco Public 31
A csomagvesztés hatása a videoforgalomra Enkóder P1 P2 P3 P4 I1 Állókép Szemetelés P5 P2 P4 P5............ P1? I1 Pulzáló kép Dekóder P5 I1 I1 I1 P4 P3 P2 P1 Out of Sync (OOS) P-frame elveszett -> I-frame kérése I-frame kódolása és küldése időigényes Az I-frame is elveszhet Burst -> torlódás -> újabb csomagvesztés Villogás vagy pulzálás, ha az I-frame-ek megérkeznek Cisco Public 32
Intelligens videoátviteli technikák Cél Torlódás elkerülése Csomagvesztés hatásának gyorsabb csökkentése A hálózat optimális kihasználása Módszer Hibatűrés Ütemezett küldés GDR LTRF FEC Adaptív sebességváltoztatá s Cisco Public 33
Ütemezett küldés 1400 1000 Bytes 600 P-Frame I-Frame P-Frame P-Frame Enkóder: 33 ms-enként max. 1 frame Kisimított csomagküldés 200 33 ms P-Frame I-Frame P-Frame Time Nagy I-frame-ek küldése több időt vehet igénybe Az enkóder ezután kihagyhat 1-2 frame-et Cisco Public 34
Gradual Decoder Refresh (GDR) Változás rész Intra -macroblock rész Dekóder Enkóder I-frame elveszik -> újraküldés -> burst -> ismételt csomagvesztés A GDR több frame-ben küldi az I-frame-et I-makroblokkokat és származtatott makroblokkokat küld Az összes csomag megérkezik -> összeáll az I-frame Cisco Public 35
Long-Term Reference Frame (LTRF) LTRF1 Long-Term Reference Frame LTRF1 Enkóder P1 P2 P3 P4 P5 Repair P-Frame... P2 P4.........? P5 P4 P3 P2 P1 P1 P5 Dekóder ACK OOS LTRF1 (P4) I-frame-ek tárolása (max. 15 LTRF) A dekóder visszaigazolja A P-frame szármqzatatható a tárolt LTRF-ekből Nem kell egy teljes I-frame-et újraküldeni Cisco Public 36
Forward Error Correction (FEC) Enkóder Dekóder... LTRF Repair-P... R1 R2 011101000 110000110 010001100 111001010 110110100 101010010 XOR 100100010 000110010 111011110 FEC R1 XOR R2 FEC Kis mértékű csomagvesztés javítása újraküldés nélkül Változó mértékű lehet (x FEC csomag N adatcsomagonként) a frame fontosságától függően Lehet egyszerű (XOR) vagy komplexebb (Reed-Solomon) Cisco Public 37
Támogatás Cisco termékekben Termék Ütemezett küldés Adaptív sebességv. FEC LTRF 89xx, 99xx tervezett tervezett -- DX tervezett tervezett WebEx tervezett TX tervezett Jabber C/EX/MX/SX/Profile TS MCU (3.1) (3.1) (4.5) (4.5) ClearPath Cisco Public 38
ClearPath http://www.youtube.com/watch?v=mpsqfx0ndta Cisco Public 39
Nem minden a kódolás - az átviteltechnika is fontos a jó minőséghez Széles támogatás a Cisco termékekben Cisco Public 40
HTML5 és WebRTC
HTML5 SEMANTICS <!DOCTYPE html> <footer> <header> <audio> MathML <section> <video> <time> <output> OFFLINE / STORAGE Application Cache IndexedDB localstorage STYLING border-radius columns border-image CSS3 shadows backgrounds transitions animations MEDIA & GRAPHICS WebRTC <audio> <video> <canvas> WebGL XMLHttpRequest Web Workers Web Sockets window.history SVG INTEGRATION Drag & Drop Touch Events Geolocation PERFORMANCE Full Screen Cisco Public 42
Böngészők multimédiás támogatása Cisco Public 43
De... Gyártófüggő Platformfüggő Engedélyhez kötött Biztonsági kockázat Cisco Public 44
WebRTC Keretrendszer a böngészők multimédia-képessé tételére Nyílt forráskódú Videó, hang, szöveg, képernyőmegosztás, p2p játékok, stb. Nem kell plugin vagy app Egyszerű HTML és JavaScript API-kat használ Az elterjedt böngészők támogatják Cisco Public 45
Böngészők közötti kommunikáció Hang, videó SRTP Webes alkalmazások - HTTP/HTTPS (pl. HTML, CSS, JavaScript) Webszerver Cisco Public 46
Böngésző és egyéb eszköz közötti kommunikáció Hang, videó SRTP Webes alkalmazások - HTTP/HTTPS (pl. HTML, CSS, JavaScript) Webszerver Gateway SIP SIP proxy Cisco Public 47
WebRTC videokódolás Mandatory to Implement (MTI) Mi legyen a kötelezően implementálandó videokodek? VP8 Google nyílt forráskódú kodekje Nem elterjedt; különösen nem hardveres végpontokban H.264 A legelterjedtebb kodekek egyike Iparági szabvány Licenszköteles A Cisco ingyenessé tette Cisco Public 48
Natív multimédia támogatás böngészőkben A Cisco Jabber Guest is támogatja Együttműködés más videorendszerekkel Cisco Public 49
Köszönöm a figyelmet.