SPECIÁLNÍ PŘENOSY OBRAZU A ZVUKU Miloš Liška CESNET prosinec 2017 Laboratoř pokročilých síťových technologií FI MU M. Liška, UltraGrid, CESNET Speciální přenosy Přenosy obrazu s vysokým rozlišením (HD, 2K, 4K, 8K), vysoce kvalitním zvukem a velmi nízkým zpožděním Detaily, imerze Interaktivita, vzdáleně ovládané aplikace Zachycení rychlých pohybů M. Liška, UltraGrid, CESNET Příklady použití Vědecké vizualizace Medicína Kardiologie, chirurgie, endoskopie M. Liška, UltraGrid, CESNET Příklady použití Výuka výuka na dálku s vysokým stupněm imerze M. Liška, UltraGrid, CESNET Příklady použití Televizní a filmový průmysl vzdálená produkce a postprodukce restaurování filmového materiálu Vzdálená konzole BaseLight v CinePostu (Barrandov) M. Liška, UltraGrid, CESNET Příklady použití Aplikace pro spolupráci na dálku sdílení a kombinování různých druhů médií Vzdálené ovládání přístrojů Telemikroskopie na University of Southern California Řada dalších aplikací Ale celé to není jen o velikosti obrazu a jeho rozlišení... M. Liška, UltraGrid, CESNET Příklady použití Umění distribuovaná představení: hudba, tanec, divadlo M. Liška, UltraGrid, CESNET Příklady použití Aplikace s vysokou snímkovou frekvencí Aplikace s velkou barevnou hloubkou až. 16 b na barevný kanál aplikace ve filmovém průmyslu, přenosy HDR videa nebo v např. v patologii M. Liška, UltraGrid, CESNET Několik úvah, než se posuneme dál Co znamená vysoká kvalita přenosů na síti? Datové toky pro nekomprimované video [Gb/s] Rozlišení 30fps, 8b 60fps, 10b 120fps, 16b HD - 1080p (1920×1080) 1.4 3.5 11.1 4K - 2160p (3840×2160) 5.6 13.9 44.5 8K - 4320p (7680×4320) 22.2 55.6 177.9 Sub-sampling barevného prostoru 4:2:2 = 2/3 datového toku 4:1:1 or 4:2:0 - 1/2 datového toku M. Liška, UltraGrid, CESNET Několik úvah, než se posuneme dál Potřebujeme nekomprimované video? Ve většině případů samozřejmě ne! lidský zrak má omezené schopnosti pro archivní účely lze použít bezztrátovou kompresi (ta ale poskytuje jen omezené kompresní poměry) Nízkolatenční aplikace cílem je minimalizovat end-to-end zpoždění při zachování kvality obrazu dostatečná propustnost (de)komprese typicky pouze intra-frame komprese (nebo inter-frame komprese s jednosměrnou predikcí M. Liška, UltraGrid, CESNET Několik úvah, než se posuneme dál Co jsou interaktivní aplikace? Streaming vs. interaktivní aplikace v reálném čase Typická omezení jsou daná lidským vnímáním zpoždění ITU-T G.115: 150 ms zpoždění jednosměrné audio komunikace přes telefonní linku v případě některých aplikací lze tolerovat 400ms RTT (experimenty se vzdáleným ovládáním robotů na operačních sálech) jiné aplikace jsou mnohem citlivější, např. vzdálené, distribuované koncerty vyžadují teoreticky zpoždění <35ms Otázky synchronizace obrazu a zvuku většina lidí pozná desynchronizaci obrazu a zvuku o 100 ms a více (lip-sync) hudebníci jsou mnohem citlivější M. Liška, UltraGrid, CESNET UltraGrid Technologie dostupná platforma pro vysoce kvalitní, interaktivní přenosy obrazu a zvuku vyvíjená i v laboratoři Sitola na FI MU švýcarský nůž pro vysoce kvalitní přenosy videa a audia postavená na běžně dostupném (herním) HW podpora Linuxu, MacOS X a Windows běžně dostupné karty pro zahytávání obrazu a zvuku běžné grafické karty 10GE síť je výhoda, ale určitě není nutná co nejnižší zpoždění na běžně dostupném HW open-source software, BSD (GPL) licence M. Liška, UltraGrid, CESNET Přenosy po síti Přenos pomocí protokolů UDP/RTP Vlastní rozšíření protokolu RTP, které umožňuje například autokonfiguraci přenosu Forward Error Correction Low-density Generator Matrix LDGM CPU a GPU implementace CPU (s využitím SSE) používáme kvůli režii přenosu CPU↔GPU packet loss do 10% se dá zvládnout s rozumnou režií umožňuje přežít až 20% packet loss při použití JPEG komprese Reed-Solomon codes M. Liška, UltraGrid, CESNET Požadavky na šířku pásma M. Liška, UltraGrid, CESNET Výkon komprese Propustnost implementace kompresních mechanismů v UltraGridu (Intel® Core™ i7-4960X CPU @ 3.6GHz (6 jader), NVIDIA GeForce GTX 960 GPU) Komprese Nejvyšší dosažený výkon RTDXT:DXT1 4K 60 fps RTDXT:DXT5 4K 60 fps GPU DXT 4K 60 fps GPU JPEG:90 4K 120 fps nebo 8K 60 fps H.264 (ffmpeg) 4K 30 fps H.265 (ffmpeg) 4K 24 fps (skoro) H.264 a H.265 (NVENC) 2× 4K 30 fps M. Liška, UltraGrid, CESNET Zpoždění End-to-end zpoždění (od akvizice po přehrávání) v lokální síti <150 ms pro interaktivitu: ITU-T doporučení G.114 Video závisí na HW pro akvizici/přehrávání (a kompresi): 2–5.5 snímku videa a snímkové frekvenci → 40–183 ms nejnižší zpoždění přenosu videa 40 ms nekomprimované 60p video Blackmagic DeckLink 4K Extreme, Desktop Video 1.8.2, Linux Audio embedded spolu s videem: synchronizované nezávislý zdroj/přehrávání: nejnižší spolehlivé 15 ms lze manuálně upravit, tak aby zpoždění audia odpovídalo zpoždění videa M. Liška, UltraGrid, CESNET Zpoždění Metoda měření zpoždění přenosu videa Latency Measurements Methodology Gefen HD-SDI Generator BlackMagic SmartView Duo Capture UG Receiving UGStill camera HD-SDI HD-SDI local network HD-SDI Uncompressed ◾ 2 frames (67 ms, DeckLink HD → Kona 3G) Impact of compressions ◾ 2.5 frames (83 ms) for DXT1/5 M. Liška, UltraGrid, CESNET Paralelní GPU JPEG Paralelizace enkódování GPU JPEG přes více fyzických GPU 2x Nvidia Titan X, výkon 12.1 TFLOPS Nvidia M60, výkon až 9.6 TFLOPS Nvidia GTX 1080, výkon až 8.9 TFLOPS Výkon GPU JPEG komprese až 8K, 80 fps M. Liška, UltraGrid, CESNET H.265/HEVC nástupce H.264/AVC, libx265/ffmpeg vysoká míra paralelismu na CPU (Wavefront parallelism a frame parallelism) komprese více snímků naráz na úkor zpoždění 2 × Intel Xeon CPU E5-2660 v2 @ 2.20GHz 1080p – 60 fps nebo 4K – 24 fps potřeba akcelerovat na GPU M. Liška, UltraGrid, CESNET Nvidia NVENC SDK Akcelerace enkódování H.264/H.265 na GPU GPU Nvidia s jádry (Kepler), Maxwell a Pascal NVidia GTX 9xx – 2x 4K, 60 fps - uměle limitovaný výkon V praxi spíše 2x 4K, 30 fps Limitující faktor jsou paměťové přenosy Dobrý bitrate handling M. Liška, UltraGrid, CESNET Přenosy nekomprimovaného videa Poprvé v roce 2005 Brno → Batton Rouge a San Diego 1080i60 video, 8bpp, 4:2:2 subsampling = ≈1.485 Gbps M:N scénář, replikace streamů ve Starlightu, Chicago Brno Chicago San Diego Baton Rouge M. Liška, UltraGrid, CESNET Přenosy nekomprimovaného videa Jumbo frames 8500B Chelsio T110, později Myricom Myri-10GE UDP přenos → vždy na rychlosti odesílajícího rozhraní Výkon Chelsio T110 byl ale pouze cca 6 Gbps! M. Liška, UltraGrid, CESNET Přenosy nekomprimovaného videa Bursty Netýká se jen nekomprimovaného videa! Např. I frame u H.264 videa. Nutný traffic shaping → malý odesílací buffer navíc M. Liška, UltraGrid, CESNET Distribuovaná (hudební) představení Základní parametr je zpoždění přenosu Maximálně 35 ms end-to-end pro symfonický orchestr Záleží na stylu a tempu hudby (a nutnosti tempo přesně držet) Vážná hudba (do 35 ms) vs jazz (do 100 ms) vs tanec (ne nutně synchronní s hudbou) vs činohra (do 150 ms) Zpoždění zásadně ovlivňuje schopnost synchronizace v obou směrech M. Liška, UltraGrid, CESNET Distribuovaná (hudební) představení Kde se zpoždění zvuku bere Fyzikální zpoždění – 1 m fyzické vzdálenosti = ≈3 ms Bufferování zvuku při zpracování Nutné zlo, bez toho to vůbec nejde 44100 Hz vzorkovací frekvence = 0,023 ms/vzorek S tím nelze pracovat (např. context switch může trvat třeba 0,01 ms) → musíme zpracovávat více vzorků naráz 128 vzorků = ≈3 ms naráz M. Liška, UltraGrid, CESNET Distribuovaná (hudební) představení Kde se zpoždění zvuku bere – přenos (Alespoň v UltraGridu) pipeline Akvizice → paketizace → rekonstrukce z paketů → playback = >12 ms Kde se zpoždění zvuku bere – HW ‘ Analogový HW bez zpoždění Digitální HW? DANTE protocol. Virtuální zvuková karta pro DANTE má zpoždění ≈10 ms! M. Liška, UltraGrid, CESNET Distribuovaná (hudební) představení Kde se zpoždění zvuku bere – síť --- www.cesnet.cz ping statistics --- 100 packets transmitted, 100 packets received, 0.0% packet loss round-trip min/avg/max/stddev = 5.660/5.885/6.139/0.082 ms --- www.ucsd.edu ping statistics --- 100 packets transmitted, 100 packets received, 0.0% packet loss round-trip min/avg/max/stddev = 164.126/164.385/167.777/0.370 ms M. Liška, UltraGrid, CESNET Telematic Performances Zurich University of the Arts spolu s Run Run Shaw Creative Media Center na City University Hong Kong End-to-end zpoždění zvuku 135 ms síť + 30 ms přenos a zvukový HW v sálu → skutečná hudební interakce není možná Posunuté party Jedna strana vždy hraje podle toho, kdo vede Zpětná vazba pro vedoucího je extrémně zpožděná a rušivá M. Liška, UltraGrid, CESNET Přenosy 120fps videa Co znamená 120fps 1080p 120 fps video = 1920×1080×120×16 (4:2:2, 8b) = 3.7 Gbps Tj. totéž jako 4K 30 fps při stejném bpp a subsamplingu Při 120 fps je frametime 8.3 ms – 4× kratší čas pro zpracování snímku než u 30 fps videa Slow motion (slowmo) záznam vs. živé 120fps video (přes SDI nebo HDMI rozhraní) M. Liška, UltraGrid, CESNET Přenosy 120fps videa K čemu je to dobré? Extrémně věrně zachycené i rychlé pohyby (viz demo) Nízké zpoždění přenosu Snímky videa zpracováváme v rámci pipeline Zpoždění 4 snímků v pipeline = 33.2 ms zpoždění V tomto případě skutečně end-to-end zpoždění od kamery po displej (pokud je displej optimalizovaný pro hry) A kde je tedy problém? 2-4× kratší expozice → extrémně málo světla, malý dynamický rozsah M. Liška, UltraGrid, CESNET Live 8K přenosy 8K 60 fps video = 7680×4320×60×16 (4:2:2, 8b) = 31.85 Gbps 2012 - přenosy 8K videa z předem komprimovaných snímků čtených z diskového pole Aktuální výzva akvizice 8K obrazu z existující 8K kamery na komoditním HW Komoditní rozhraní pro akvizici videa aktuální 12G-SDI rozhraní pro přenos videa – 12 Gbps 24G-SDI ve vývoji – 24 Gbps síť architektura PC a zejména PCI-E sběrnice M. Liška, UltraGrid, CESNET Akvizice a odesílání videa Sony F65 + BPU-8000 od kolegů z PSNC 2x AJA CorVid88 (dohromady 16x 3G-SDI) Nvidia M60 accelerator nebo NVidia GTX 1080 (výkon >9 TFLOPS) Myricom Myri10GE Základní deska vs. fyzická konfigurace PCI-E slotů vs. fyzická velikost karet vs. požadavky karet na počet PCI-E lanes M. Liška, UltraGrid, CESNET Akvizice a odesílání videa Akvizice, zpracování a odesílání ve 4 4K, 60 fps dlaždicích Paralelní GPU JPEG komprese na Nvidida M60 Výsledný datový tok cca 3 Gbps M. Liška, UltraGrid, CESNET Příjem a zobrazování videa Akvizice, zpracování a odesílání ve 4 4K, 60 fps dlaždicích Paralelní GPU JPEG Výsledný datový tok ≈3.3 Gbps Myricom Myri10GE 2x Nvida Titan X nebo NVidia GTX 1080 plus NVidia Quadro M6000 4 komoditní 4K TV Zobrazování 2x4K 60 fps přes OpenGL spotřebuje >50% výkonu GPU M. Liška, UltraGrid, CESNET Streaming živého 8K obrazu Demo na TNC’16 BPU-8000 8K Video procesor SONY F65 8K Cam PC Ultragrid NXL-FR318 IP Live Streaming system PC Ultragrid NXL-FR318 IP Live Streaming system GEANT 40G (local Connection In the booth) 3Gb3Gb Camera control (zoom, position, etc.) POZNAN PRAGUE 16x SDI -> 4xHDMI 2.0 (4K)16x SDI 16x SDI 4x HDMI 2.0 (4K) NXL-FR318 IP Live Streaming system BPU-8000 8K Video procesor SONY F65 8K Cam M. Liška, UltraGrid, CESNET Výkon 8K přenosu 9000B jumbo frames! Škálovatelnost zobrazování videa Data snímku musí zůstat v paměti GPU (CUDA context) po dekompresi GPUJPEGu a musí být znovu použita v OpenGL contextu CUDA a OpenGL contexty neběží paralelně na architektuře NVidia Maxwell (funguje na architektuře Pascal) End-to-end zpoždění přenosu 27.6 cam+bpu + 50 aja + 11.4 enc +2 + 11.6 + 4 net + 6.2 dec + 27.3 disp = 140.1 ms M. Liška, UltraGrid, CESNET Děkuji za pozornost! http://www.sitola.cz/ http://www.ultragrid.cz/ M. Liška, UltraGrid, CESNET