PV188 Principy zpracování a přenosu multimédií Miloš Liška xliskaOfi.muni.cz podzim 2018 Zvuk ► Podélné mechanické vlnění v látkovém prostředí (vzduch), které je schopno vyvolat v lidském uchu sluchový vjem ► Frekvence v rozsahu přibližně 20 Hz až 22 kHz ► Aplikují se běžné fyzikální jevy jako pro jiná vlnění: ► odraz ► ohyb ► difrakce Vnímání zvuku ► Složitý proces, závislý na mnoha faktorech, pro který zatím nebyla vytvořena uspokojivá teorie ► Frekvenční rozsah ► Frekvenční rozsah zvuku, který většina lidí vnímá, začíná kolem 20 Hz a dosahuje ke 22 kHz. S rostoucím věkem horní hranice výrazně klesá. ► Dynamický rozsah ► Dynamický rozsah lidského ucha (rozdíl mezi nejhlasitějším a nejtišším vnímatelným zvukem) je uprostřed slyšitelného frekvenčního pásma asi 120 dB. Na okrajích pásma je mnohem menší. ► Rozlišování frekvence ► Schopnost rozlišit frekvence tónů se u každého člověka liší a je frekvenčně závislá. Uprostřed slyšitelného frekvenčního pásma je rozlišovací schopnost vyšší než na okrajích pásma. Vnímání zvuku ► Frekvenční maskování ► Schopnost odlišit dva frekvenčně blízké tóny. Pokud znějí dva tóny současně, může jeden z nich potlačit slyšitelnost toho druhého. Maximální úroveň maskovaného signálu je závislá na frekvenční vzdálenosti a úrovni maskujícího signálu. Maskovací schopnost je též závislá na frekvenci maskujícího tónu. Vnímání tónů s blízkými frekvencemi je ovlivněno šířkou kritického pásma. To má na nejnižších kmitočtech velikost kolem 100 Hz, zatímco na nejvyšších kmitočtech dosahuje až 4 kHz. Využití u některých algoritmů pro kompresi zvukových dat, např. MP3, Vorbis nebo ATRAC. ► Časové maskování ► Pokud po hlasitém tónu následuje stejný tón s menší hlasitostí, je jeho vnímání potlačeno. Potlačen může být i tichý tón předcházející maskovacímu tónu. Zpracování zvuku ► Akvizice zvuku ► Diskrétní reprezentace spojitého zvukového vlnění ► Zpracování diskrétních zvukových dat ► Analýza zvuku za použití psychoakustických modelů ► Použití zvukových filtrů: ekvalizace, odstranění šumu a echa apod. ► Datová komprese ► Uložení na datový nosič, pevný disk apod. ► Přenos po síti Akvizice zvuku ► A/D převodník, typicky zvuková karta v PC ale i jiná zařízení (mobilní telefon, PDA, MP3 přehrávač) ► Obvykle schopnost zpracování 2 (ale i více) audio kanálů ► Mikrofonní a linkový vstup (viz přednášky Ing. Šilera) ► Kvalita akvizice zvuku závisí nejvíce na parametrech použitého zařízení (vzorkovací frekvence, přesnost vnitřních hodin, odstup signálu od šumu apod.) Vzorkování ► Odebírání vzorku signálu v definovaných časových intervalech ► Definovaný interval = vzorkovací frekvence ► Typické vzorkovací frekvence: ► 8 kHz - telefony ► 11 kHz - lidská řeč ► 22 kHz - kvalita odpovídající audiokazetě ► 44.1kHz - CD ► 48 kHz, 96 kHz, 192 kHz - DVD Vzorkování Odbočka k Nyquistovu teorému ► Nutná (ale ne postačující) podmínka pro to, abychom dokázali dobře rekonstruovat původní zvuk ► Vzorkovací frekvence musí být více než dvakrát větší, než největší frekvence vzorkovaného zvuku. ► Lidské ucho slyší frekvence maximálně 22 kHz z toho plyne vzorkovací frekvence 44.1 kHZ ► Podvzorkované frekvence se „schovají" za jiné frekvence Kvantování ► Diskrétní reprezentace hodnoty intenzity zvuku ► Pro lepší představu rozdělení svislé osy zvukové křivky na diskrétní hodnoty ► 1 bit odpovídá přibližně 6dB ► Typické reprezentace: ► 8 bitů na vzorek (256 úrovní) - telefon ► 16 bitů na vzorek (65 536 úrovní) - CD ► 24 bitů na vzorek (16 777 216 úrovní) - DVD ► 64 bitů na vzorek - použití v sonarech □ s Chyby v kvantování ► Několik úrovní intenzity zvuku se reprezentuje jednou hodnotou = kvantovací šum ► Lze vylepšovat: ► Ditheringem ► Nelineárním kvantováním ► Ucho vnímá zvuk zhruba logaritmicky ► Zhuštění úrovní v oblasti, kde je to třeba. U zvuku je vhodné jemněji rozlišovat v oblasti nízkých kmitočtů, protože ucho je v této oblasti citlivější na šum. Kvantování PCM ► Pulse Code Modulation ► Analogový signál —> vzorkování —> kvantování —> PCM ► Datové toky: ► 8kHz x 8b x 1 kanál = 64kbps ► 192kHz x 24b x 2 kanály = 9000kbps ► Použití: ► digitální telefonní linky CD, DVD audio, DVD ► Běžně implementované v HW ► Zvukové karty, audio přehrávače, digitální záznamníky ► AD / DA převodník ► Závislost na externím hodinovém signálu Další formáty záznamu audia ► DPCM (Differential Pulse Code Modulation) ► Ztrátová komprese, používá 4 bity na záznam rozdílů mezi dvěma vzorky nezávisle na původním kvantování ► ADPCM (Adaptive Pulse Code Modulation) ► snaha o prediktivní analýzu potřebného počtu bitů pro záznam rozdílu mezi dvěma vzorky v závislosti na složitosti signálu ► /i-law (A-law v Evropě) ► podobná komprese jako ADPCM, použití v digitální telekomunikaci (zejména Japonsko a USA), kvantování jednotlivých rozdílů odpovídá 13 bitům ► LPCM (Linear Predictive Coding) ► Až 8 kanálů pro audio; vzorkovací frekvence 48 kHz nebo 96 kHz; 16, 20 nebo 24 bitů na vzorek ► Maximální bitrate (datový tok) 6.144 MBps CD audio ► Red book audio standard (Philips a Sony v roce 1980) ► 2 audio kanály ► Vzorkovací frekvence 44.1 kHz, 16 bitů na vzorek, PCM ► Bit rate = 44100 vzorků/s x 16 bitů/vzorek x 2 kanály = 172.2 kBps (více než 10 MB za minutu) ► Hodnoty jednotlivých vzorků jsou v rozmezí -32768 do +32767. ► Data nejsou ukládána sekvenčně, kombinovaná detekce a oprava chyb ► Pozn. pod čarou: ► Jakákoliv ochrana proti kopírování porušuje red book standard ► S nástupem MP3 se z red book CD stává poněkud obsoletní technologie DVD audio ► Ukládání vysoce věrného (hi-fi) zvukového obsahu na DVD média ► Srovnání s CD ► Větší kapacita nosiče, větší stopáž ► Mnohem větší kvalita záznamu, větší vzorkovací frekvence, více bitů na vzorek ► Mnoho možných konfigurací počtu audio kanálů (1.0 až 7.1) 16-, 20- or 24-bit 44.1 kHz 48 kHz SS.2 kHz 96 kHz 176.4 kHz 192 kHz Mono (1.0) Ye.5 Yes Yes Yes Yes Yes Stereo 12.0} Ye.5 Vbs Ye.5 Yes Ye.5 Yes Quad (4.0) Ye.5 Yes Ye.5 Yes No No Surround (5.1) Yes >fes Yes Yes No No ► Záznam audia ve formátu LPCM ► Nekomprimované audio ► Většina DVD přehrávačů ale podporuje maximálně 16 bitů na vzorek při 48 kHz ► Maximální možný bitrate pro všechny kanály je 9.6Mbps_ Mixování audia ► Směšování dvou zvukových vln mm vywv hms 0.0005 0.0010 0.0015 0.0020 0.0025 0.0030 0.0035 0.0040 0.0045 0.005 i i i i 1 i i i i 1 i i i i 1 i i i i 1 i i i i 1 i i i i 1 i i i i 1 i i i i 1 i i i i 1 i i i i 1 i HHI H1H1Í ros ■nu MM in \ / F KW III HiVII AI rán íi HJ nu iirukm IW KM ftVM KWilBVQffifJI HHH1 ■imi raa >0 Q,o Mixování audia ► Směšování dvou zvukových vstupů ►C=A+B ► Předpokládáme floating point PCM s hodnotami < —1,1 > Mixování audia - normalizace ► Smixované výstupní audio stále reprezentujeme jako floating point PCM s hodnotami < — 1,1 > ► Výstup je třeba normalizovat tak, aby výsledky byly vždy v tomto intervalu ► Clipping ► C = min(Cmax, max(Cmini A + B)) Mixování audia - normalizace ► Lineární attenuace ► Co když je jeden ze zdrojů potichu? ► Výstup je celkově utlumený. Mixování audia - normalizace ► Pre nebo post-mix normalizace ► C = maA+%} Vi e N, i < T C range -range ► T je celkový počet vzorků, Ci a minimem. ► Problém při zpracování v reálném čase je vzdálenost mezi maximem Mixování audia - normalizace ► Dynamická komprese rozsahu - lineární ^ ieMA-2> bezztrátová transformace ► Koeficienty pro méně důležitá frekvenční pásma (na základě poznatků o vnímání zvuku) zahazujeme —> princip ztrátového kódování zvuku MPEG-I Layer III ► Ztrátový kompresní mechanismus, ISO/IEC Standard v roce 1991, první rozšířená implementace Fraunhofer society v roce 1994. ► Komprimuje PCM audio v poměru přibližně 1:11 ► Použití psychoakustického modelu ► na základě znalostí o lidském sluchu zahazujeme ty části signálu, které lidské ucho hůře slyší, nebo neslyší vůbec ► na základě znalostí o zpracovávaném signálu (vážná hudba, metalový koncert apod.) vybíráme ta frekvenční pásma, která jsou nejpodstatnější ► Komprese signálu: ► Komprese probíhá ve frekvenční doméně ► MDCT—^nelineární kvantování—^ H uf f ma novo kódování PCM?-* Frekvenční filtry Kvantovaní, kódování Formátovaní proudu dat MP3 Psychoakustický model MPEG-I Layer III ► Dostupné bitraty: ► 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256 a 320 kbps ► VBR - audio v MP3 je dělené do rámců, každý rámec může mít jiný bitrate ► Dostupné vzorkovací frekvence: ► 32, 44.1 a 48 kHz ► Mono, Stereo, Joint-stereo ► Člověk lépe pozičně lokalizuje zvuky s vyššími frekvencemi. Celá spodní část spektra se sloučí do jediného kanálu a navíc se uloží informace, jak prostorově posouvat zuky o určitých frekvencích. ► Typické parametry kódování: ► 44.1 kHz při 128 kbps se považuje za dobrý standard ► Slyšitelně lepších výsledků lze dosáhnout při 192 kbps (zhruba ideální bitrate pro MP3 kompresi) MPEG-I Layer III (CBR vs. VBR) ► CBR ► Pro každý komprimovaný časový segment původního signálu máme k dispozici stejný objem dat ► Objem dat dostupný pro kompresi signálu nemusí být efektivně využitý ► VBR ► Komprimovaný signál dělíme na časové segmenty a těm variabilně přiřazujeme bitrate na základě složitosti signálu ► Dva průchody ► Analýza složitosti signálu v jednotlivých časových segmentech ► Přiřazení bitrate každému segmentu na základě složitosti signálu a např. průměrného bitrate nebo cílového objemu dat ► Vyšší kvalita komprimovaného signálu při zachování stejného objemu dat ► VBR lze teoreticky provést i jednoprůchodově na základě koeficientu kvality q. Pak ale nelze kontrolovat objem dat nutný pro kompresi signálu. MPEG-I Layer III (dokončení) ► Podpora metadat v podobě ID3 tágu ► Omezení a problémy formátu MP3 ► Slyšitelné artefakty při nižších bitratech (ozvěny apod.) ► Maximální bitrate 320kbps ► Licenční poplatky MPEG-I Layer II ► Ztrátový kompresní mechanismus navržený v roce 1991 ► DVD, DVB-T, interně v rádiích ► Sub-band kódování audia: ► Komprese probíhá v časové doméně ► Signál se rozdělí na 32 frekvenčních pásem, na základě psychoakustického modelu se některá zahodí a ostatní se komprimují samostatně. ► Dostupné bitraty: ► 32, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320 a 384 kbps ► 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144 a 160 kbps (navíc v MPEG-2 layer II) ► Dostupné vzorkovací frekvence: ► 32, 44.1 a 48 kHz ► 16, 22.05 a 24kHz (navíc v MPEG-2 layer II) ► MP2 nedokáže využít podobnost signálu ne jednotlivých kanálech. Při méně než 256 kbps je méně účinná než MP3. Vorbis ► Opensource ztrátová komprese obvykle spojovaná s obálkovým formátem OGG. ► Kódování audia: ► Obdobné jako u MP3 ► Pokročilejší kvantování ► Redukce šumu na základě statistických měření ► Podle poslechových testů dosahuje lepších výsledků než MP3 při kódování na 128 kbps ► Typické parametry kódování: ► 44.1 kHz při 160 kbps se považuje za ideální nastavení ► Metadata „comments" obdobně jako u MP3 <□► < [fp ► 4 = k 4 = k = O Q, O Srovnäni kvality komprese MPEG-I Layer 3 vs. Ogg Vorbis 1000Hz 3000Hz 5000Hz 7000Hz 9000Hz 11000Hz 13000Hz 15000Hz 17000Hz 20000Hz Algorithm: Spectrum Function: Hamming window Size: 512 Axis Export. Linear frequency ^ Close Referencni wav - 44 kHz, 16 b, stereo Srovnäni kvality komprese MPEG-I Layer 3 vs. Ogg Vorbis -66dB -69dB -72dB- -75dB -7SdB -84dB -90dB 1000Hz 3000Hz 5000Hz 7000Hz 9000Hz 11000Hz 13000Hz 15000Hz 17000Hz 20000Hz Algorithm: Spectrum Size: 1512 Export. Function: Hanning window Axis: Linear frequency * Close Ogg Vorbis - qlO cca. 427 kbps (Oggenc 1.0.2) Srovnäni kvality komprese MPEG-I Layer 3 vs. Ogg Vorbis -45dB -48dB -51dB -54dB -57dB -60dB -66dB -69dB -72dB -75dB -73dB -84dB -90dB lOOOHz 3000Hz 5000Hz 7000Hz 9000Hz 11000Hz 13000Hz 15000Hz 17000Hz 20000Hz Algorithm: Spectrum Size: 512 Export.. Function: Hanning window t Axis: Linear frequency Close Ogg Vorbis - q8 cca. 236kbps (Oggenc 1.0.2) Srovnäni kvality komprese MPEG-I Layer 3 vs. Ogg Vorbis -60dB -63dB -66dB -69dB -72dB -75dB -73dB -84dB -90dB lOOOHz 3000Hz 5000Hz 7000Hz 9000Hz 11000Hz 13000Hz 15000Hz 17000Hz 20000Hz Algorithm: Spectrum Size: 512 Export.. Function: Hanning window t Axis: Linear frequency Close Ogg Vorbis - q4 cca. 122kbps (Oggenc 1.0.2) Srovnäni kvality komprese MPEG-I Layer 3 vs. Ogg Vorbis -60dB -63dB -66dB -69dB -72dB -75dB -73dB -84dB -90dB lOOOHz 3000Hz 5000Hz 7000Hz 9000Hz 11000Hz 13000Hz 15000Hz 17000Hz 20000Hz Algorithm: Spectrum Size: 512 Export.. Function: Hanning window t Axis: Linear frequency Close Ogg Vorbis - qO cca. 56 kbps (Oggenc 1.0.2) Srovnäni kvality komprese MPEG-I Layer 3 vs. Ogg Vorbis .....iii -6 3 dB -66dB -69dB -72dB -75dB -73dB -04(1 B -90dB 1000Hz 3000Hz 5000Hz 7000Hz 9000Hz 11000Hz 13000Hz 15000Hz 17000Hz 20000Hz Algorithm: Spectrum Function: Hanning window 512 Export... Linear frequency •) Close MPEG-I Layer 3 - studio quality = 256 kbps (Lame 3.95) □ s Srovnäni kvality komprese MPEG-I Layer 3 vs. Ogg Vorbis -45dB -48dB| -51dB -54dB -57dB -60dB -63dB -66dB -69dB 72dB -7SdB -SldB -84dB -90dB lOOOHz 3000Hz 5000Hz 7000Hz 9000Hz 11000Hz 13000Hz 15000Hz 17000Hz 20000Hz Algorithm: Spectrum w Size: 512 t Export... Function: Hanning window T Axis: Linear frequency $ Close MPEG-I Layer 3 - CD quality = 192 kbps (Lame 3.95) □ <3 Srovnání kvality komprese MPEG-I Layer 3 vs. Ogg Vorbis -GdB -45dB 48dB -51dB -54dB -57dB -GOdB -63dB -66dB -69dB -72dB -7SdB -BldB -84dB -90dB lOOOHz 3000Hz ' 5000Hz ' 7000Hz ' 9000Hz 11000Hz 13000Hz 15000Hz 17000Hz 20000Hz Algorithm: Spectrum Size: 512 Export.. Function: Hanning window $ Axis: Linear frequency Close MPEG-I Layer 3 - hifi quality = 160 kbps (Lame 3.95) >0 0,0 Srovnäni kvality komprese MPEG-I Layer 3 vs. Ogg Vorbis Algorithm: Spectrum Size: 512 w Export... Function: Flanning window Axis: Linear frequency M. W Close MPEG-I Layer 3 - tape quality = 112 kbps (Lame 3.95) □ S1 Srovnäni kvality komprese MPEG-I Layer 3 vs. Ogg Vorbis -90dB lOOOHz 3000Hz 5000Hz 7000Hz 9000Hz 11000Hz 13000Hz 15000Hz 17000Hz 20000Hz Algorithm: Spectrum Size: 512 Export... Function: Flanning window Axis: Linear frequency Close MPEG-I Layer 3 - voice quality = 56 kbps (Lame 3.95) AAC ► Standard pro ztrátovou kompresi skupiny MPEG (MPEG-4 part 3, MP4) ► Technologický nástupce formátu MP3 ► Kódování audia: ► Silně využívá psychoakustické modely ► Eliminuje redundance v již zakódovaném signálu ► Implementuje samoopravné kódy ► Jinak funguje obdobně jako MPEG-1 Layer III ► Modulární přístup ke kódování audia" ► Existuje několik kódovacích profilů včetně Low latency ► V závislosti na volbě profilu lze dosáhnout při 96kbps stejných výsledků jako u MP3 při 128kbps ► Téměř libovolné vzorkovací frekvence 8 kHz až 96 kHz ► Podpora pro až 48 audio kanálů (MP3 podporuje 2) FLAC ► Opensource bezztrátový kompresní formát ► Vzorky jsou kódovány pouze s celočíselnou přesností. To ale na druhou stranu eliminuje chyby vzniklé zaokrouhlováním a umožňuje přesnou reprodukci. ► Libovolná vzorkovací frekvence ► Každý vzorek může být kvantován 4 až 32 bity ► Dosahuje kompresního poměru přibližně 20 až 30% ve srovnání s PCM Speex ► Opensource ztrátový formát určený pro kompresi řeči ► Samohlásky vyžadují vyšší bitrate ► Naopak sykavky, f apod. lze kódovat s nízkým bitratem ► Vzorkovací frekvence: 8 kHz (lze použít až s 48 kHz) ► Bitrate: CBR i VBR při 2kbps až 44kbps ► Lze použít buď s obálkovým formátem ogg a nebo přímo přenášet po síti pomocí protokolu UDP nebo RTP ► VBR kódování vs. přenos po síti ► Robustní proti výpadkům způsobeným přenosem Opus ► Opensource ztrátový formát určený pro přenos digitalizovaného hlasu, videokonference, streamování hudby ► Nízkolatenční komprese zvuku, fixní latence 26.5ms ► Detekuje typ zvuku a míchá principy lineární predikce (nízký bitrate, SILK režim), modifikované diskrétní kosinové transformace (vysoký bitrate, CELT režim) a „hybridní režim", kdy řeč do frekvence 8 kHz je kódována LP, zatímco řeč nad 8 kHz je kódována pomocí MDCT. All we see or seem is but a dream within a dream. E. A. Poe ► Elektromagnetické vlnění s velmi úzkou šířkou spektra (viditelné světlo) odražené od objektů v okolí a dopadající na na světlocitlivě buňky sítnice oka ► V porovnání s jakoukoliv digitální technikou je v jistých oblastech oko spolu s mozkem velice dokonalá soustava (dynamický rozsah vidění, schopnost vyvážení bílé, rychlost ostření, noční vidění atd.) Vnímání obrazu ► Soustava oko a mozek není dokonalá úplně - naštěstí ► Obrazová paměť ► Člověk nevnímá obraz kontinuálně ale v „kvantech" ► Obrazový vjem jsme schopni zpracovat přibližně každých 60 ms ► Oko nevnímá všechny složky obrazu stejně ► Nejcitlivěji vnímáme jas obrazu ► Oko nevidí přirozeně zcela ostře ► Mozek má tendence si domýšlet části vjemu na základě zkušeností Barevné prostory ► RGB ► YUV ► Y - luminance (luma), jas ► U, V - chrominance Y = 0.299/? + 0.587 G + 0.1146 U = 0.147/? + 0.289G + 0.4366 = 0.492(6 - Y) Y = 0.615/? + 0.515G + 0.1006 = 0.877(/? - Y) ► YCrCb ► YUV + scale + offset Y = 0.299/? + 0.587 G + 0.1146 Cb = -0.168736/? - 0.331264G + 0.56 C = 0.5/? - 0.418688G - 0.0813126 ► Prakticky veškeré moderní kompresní mechanismy pro kompresi videa pracují s reprezentací YUV (kromě M J PEG) Vzorkování ► Rozlišení obrazu pří akvizici jej dělí na vzorky ► Typicky 768x576 bodů, 1920x1080 bodů apod ► 4:2:2 Lint, 1 I Line Lint Lint [6] ■o ■ ■ o o - -H -0 1 0 1 - o ■ o - 1 0 1 0 1 1 0 1 0 1 o ■o ■ o % o ► 4:2:0 Lint Lint Lint Lint 4 ¥ Cr ¥ 51 ¥ Ůndjr ¥ Ůndjr ,;0. O cP-c £p- O -cP- O -- O c -eP- o -cP- o -ep- c eP- o -■ o o >0 o,o Vzorkování ► 4:1:1 "y" " y"1 Cd Cg Ůrtly Ůn\y Ůnly ■ Line Line Line O o o o o o — 1— ■ o '-1-' —1 — e '—i—' O '-1-' ■ o '-1-' o '-1-' ■ o '-1-' ■ o '-1-' e 1—i—' o '-1-' ■ o '-1-' o '-1-' e *—i—' w ■ ■ o c o m ■ o ■ o € ► 4:0:0 - Monochromatický obraz ► Viz http://www.adamwilt.com/pix-sampling.html SDTV formáty ► Rodina standardů popisující rozlišení a framerate videa ► V digitálním světě: ► PAL: 720x576 obrazových bodů, 25fps ► NTSC: 720x480 obrazových bodů, 29.97fps ► VCD ► 352x288 obrazových bodů (PAL) ► 352x240 obrazových bodů (NTSC) ► S VCD ► 2.7x rozlišení VCD ► Nekonzistentní implementace rozlišení v přehrávačích HDTV formáty ► Notace ► Počet řádků v rozlišení ► Progresive frames (p) nebo interlaced fields (i) ► Počet snímků (frames) nebo polí (fields) za sekundu ► 1080p: 1920 x 1080 (30p, 29.97p, 24p, 23.976p) ► 1080i: 1920 x 1080 (30i, 29,97i) ► 720p: 1280 x 720 (60p, 59.94p, 30p, 29.97p, 24p, 23.976p) ► Větší rozlišení 2K, 4K, 8K SDTV vs. HDTV o CT- « I- I 0 450 i/p, DV NT$C PAL 576i/p 720p 4S0 576 720 1080 >0 0,0 SDTV vs. HDTV 4K Ultra HD 3840x5160 8.294,200 Pixels HDTV 2K 1920 x 1080 £,073,600 Pixels SDTV 720 x480 365,600 Pixels ► Počet obrazových snímků za sekundu ► Nejstarší technologie začínaly na 6 - 8 snímcích za seknudu ► V současnosti jsou nejpoužívanější hodnoty 25fps (PAL), 29.97fps (NTSC) a 24fps (klasický film) ► Lze se setkat i s jinými hodnotami (např.: 23.976fps) ► Pro dosažení iluze pohybu je třeba alespoň 10fps ► Psychologická hranice skutečně použitelné iluze pohybu je spíše 12.5 fps Interlaced vs. progressive scan ► Progressive scan ► Celý snímek je zaznamenaný a zobrazený najednou ► Interlaced scan ► Snímek je temporálně rozdělen na dvě pole, zaznamenáváme a zobrazujeme jen polovinu snímku s dvojnásobnou frekvencí ► Sudé a liché půlsnímky ► Lepší zachycení rychle se pohybujících objektů ► Ztráta vertikálního rozlišení Nekomprimované video ► PAL: 768 x 576 x 2A[b/pixel (RGB)] x 25[fps] = 265,420,800 bps ► HDTV: 1920 x 1080 x 2A[b/pixel (YUV)] x 2/3[4 : 2 : 2sampling] x 30[fps] = 995,328,000 bps ► 4K: 3840 x 2160 x 30[b/pixel (YUV)][A : 4 : Asampling] x 60[fps] = 14,929,920,000 bps ► 8K: 7680 x 4320 x 2A[b/pixel(YUV)] x 2/3[4 : 2 : 2sampling] x 60[fps] = 31,850,496,000 bps Nekomprimované video vs. zpracování na PC ► USB2 - 480Mbps, USB3 - 5Gbps, USB-C - lOGbps ► Thunderbolt3 - 40Gbps ► PCIe v3 xl - 8Gbps, x8 - 64Gbps, xl6 - 128Gbps ► Intel DC S3710 1.2TB SSD read - 4.4Gbps, write - 4.1Gbps ► 4K: 643s, 8K:301s ► Síť běžně lGbps, lOGbps, na PC max 40Gbps o ť5> = 1 -OQ.O DCT ► Diskrétní kosinová transformace ► Vychází z Fourierovy transformace, ale na rozdíl od ní jsou jejím oborem hodnot reálná čísla ► Komplexní hodnoty Fourierovy transformace nejsou tak vhodné pro reprezentaci v PC ► Každý blok obrazu (viz makrobloky u MPEGu) převede na nekonečnou řadu frekvenčních koeficientů ► DCT není kompresní mechanismus <— bloky obrazu jsou pomocí DCT reprezentovány zcela přesně ► Na základě psychovizuálního modelu se vyberou důležité koeficienty (zejména ty, které reprezentují jasovou složku obrazu) a ostatní se zahodí <— základ ztrátové komprese Jak funguje MPEG - I, P, B frames ► Obraz se rozloží do bloků (16x16, 8x8, 4x4) - tzv. Makrobloky ► V každém bloku se pomocí DCT vypočítají frekvenční koeficienty DC (jas), AC (barva) ► Frekvenční koeficienty se dále kvantují ► 3 typy snímků ► I frame - Intrapicture, referenční snímek ► P frame - Predicted, rozdíl oproti předchozímu snímku ► B frame - Bidirectional predicted, interpolace mezi předchozím a následujícím snímkem ► P frame nemá smysl bez předchozího I frame ► B frame nemá smysl bez předchozího I frame a následujícího P frame ► MPEG nijak nedefinuje poměry l,P a B snímků Jak funguje MPEG - interframe vs. intraframe komprese ► Intraframe komprese ► Každý snímek komprimujeme zvlášť, odděleně a kompletně ► Interframe komprese ► Při kompresi můžeme s úspěchem využít vztahy mezi snímky ► V rámci stejné scény se ve snímku pohybují jen konkrétní objekty, zbytek scény je statický ► Ukládáme jen referenční snímek a dále změny mezi referenčním a dalšími (předchozími) snímky Jak funguje MPEG - motion vector ► Motion vector ► P a B frames ► Motion vector je čtveřice (dvoudimenzionální vektor) popisující offset souřadnic makrobloku v aktuálním snímku proti souřadnicím téhož makrobloku v referenčním snímku ► P frame - Motion vector vzhledem k předchozímu referenčnímu snímku ► B frame - Motion vector vzhledem k následujícímu referenčnímu snímku ► Motion estimation (motion compensation) ► Mezi dvěma snímky hledáme odpovídající makrobloky ► Vyhledávání na základě jasové složky makrobloku Motion JPEG (MJPEG) ► Série obrázků komprimovaná pomocí JPEGu ► Intraframe komprese —> pouze I snímky ► Vhodné pro střih ► Malé zpoždění při kompresi videa - vhodné pro přenos po síti ► Často HW podpora (starší digitální fotoaparáty, levné USB videokamery) ► Obvykle nízká rozlišení (320x240, 640x480) ► 10, 12 nebo 15fps ► Kvalita obrazu odpovídá přibližně kvalitě ,,50" nastavené u JPEGu, bitrate maximálně 1 Mbps ► Obvykle ve spojení s obálkovým formátem AVI nebo MOV MPEG-1 ► Celá rodina standardů, part-2 definuje kompresi videa ► Podpora pouze progressive scan videa ► Návrh počítal s kompresí jakéhokoliv obrazu až po rozlišení 4095x4095 obrazových bodů ► Většina implementací dovolovala pouze 352x240 ► Maximální bitrate 1.5 Mbps ► VCD ► Kvalita má být srovnatelná s VHS. MPEG-1 ale vytváří řadu viditelných obrazových artefaktů. ► Rozlišení 352x240 bodů (PAL) při 1150 kbps MPEG-2 ► Part-2 rodiny standardů MPEG-2, zpětně kompatibilní s MPEG-1 ► Podporuje kódování interlaced videa ► MPEG-2 kódování není optimalizované pro bitrate nižší než 1 Mbps ► I, P a B snímky, GOP - Group Of Pictures je sekvence I, P a B snímků libovolné délky. Obvykle sekvence 15 snímků l_BB_P_BB_P_BB_P_BB_P_BB_. ► CBR i VBR pro jednotlivé GOP (např. změnou kvantování) ► Několik profilů rozdělených do úrovní Abbr. Name Frames YUV Streams Comment SP Simple Profile P, 1 4:2:0 1 no interlacing MP Main Profile P, 1. B 4:2:0 1 422P 4:2:2 Profile P. 1. B 4:2:2 1 SNR SNR Profile P. 1. B 4:2:0 1-2 SNR: Signal to Noise Ratio SP Spatial Profile P, 1. B 4:2:0 1-3 low, normal and high quality decoding HP High Profile P, 1. B 4:2:2 1-3 Abbr. Name Pixel/line - Lines Framerate (Hz) Bitrate (Mbit/s) LL Low Level 352 288 30 4 ML Main Level 720 576 30 15 H-14 High 1440 1440 1152 30 60 HL High Level 1920 1152 30 80 MPEG-2 Profile @ Level Resolution (px) Framerate max. (Hz) Sampling Bitrate (Mbit/s) Example Application SP@LL 176 X 144 15 4:2:0 0.096 Wireless handsets SP@ML 352 x 288 15 4:2:0 0.384 PDAs 320 x 240 24 MP@LL 352 x 28S 30 4:2:0 4 Set-top boxes (STB) MP@ML 720 X 480 30 4:2:0 15 (DVD: 9.8) DVD,SD-DVB 720 X 576 25 MP@H-14 1440 x 1080 30 4:2:0 60 (HDV: 25) HDV 1280 x 720 30 MP@HL 1920 x 1080 30 4:2:0 80 ATSC 10801, 720P60, HD-DVB (HDTV) 1230 X 720 60 422P®LL 4:2:2 422P@ML 720 x 480 30 4:2:2 50 Sony IMX using l-frame only, Broadcast "contribution" video (l&P only) 720 X 576 25 422P@H-14 1440 x 1080 30 4:2:2 80 Potential future MPEG-2-based HD products from Sony and Panasonic 1230 X 720 60 422P@HL 1920 X1080 30 4:2:2 300 Potential future MPEG-2-based HD products from Panasonic 1280 x 720 60 ► Typické použití: ► DVD, DVB, HDV, HDTV <□► < [fp ► 4 = k 4 = k = O Q, O Komprese obdobná MPEG-2 kompresi Kompresní mechanismus není zatížený licenčními poplatky Použití ve spotřební elektronice (digitální kamery, některé DVD rekordéry a pod.) Komprese: ► Intraframe komprese ► ► ► ► ► ► Vidce data Blocking Shuffling DCT Quantization VLC Compressed video data Makrobloky 8x8 obrazových bodů Shuffling zprůměruje množství obrazové informace v celém snímku promícháním makrobloků —>► celý snímek je komprimován stejně DCT - DC koeficienty (jas), AC koeficienty (barva) Kvantování - DC koeficienty se nemění, kvantují se pouze A< koeficienty Huffmanovo kódování Pevný datový tok 25 Mbps (pro představu cca. 3.2 MBps) Co je MPEG-4 ► Celá rodina různých standardů ► ISO 14496-1 (Systems), Animace/lnteraktivita (DVD menu) ► ISO 14496-2 (Video), např.: Advanced Simple Profile (ASP), tj. implementace jako XviD, DivX5, 3ivx... ► ISO 14496-3 (Audio), Advanced Audio Coding (AAC) ► ISO 14496-10 (Video), Advanced Video Coding (AVC), také známé jako H.264 ► ISO 14496-14 (Container), MP4 obálkový formt (přípona .mp4) ► ISO 14496-17 (Subtitles), MPEG-4 formát pro titulky a jejich časování ► Ne vše ze standardu MPEG-4 musí být nutně implementované MPEG-4 part 2 ASP profile ► Navržený pro rekompresi a zálohování MPEG-2 videa z DVD ► Rozlišení až do velikosti PAL při 30fps ► Generuje l,P i B frames ► Global Motion Compensation ► Pro velké pohyby společné dvěma snímkům se použije pouze jeden Motion vector ► Custom quantization, Adaptive quantization ► h.263 matice - vhodná pro nižší bitraty, rozmazaný obaz ► MPEG matice - vhodná pro vyšší bitraty ► VBR lze nastavovat pro každý snímek ► Kodeky: ► XviD, DivX5, DivX4/0penDivX, ffmpeg MPEG4, Nero Digital a mnoho dalších ► DivX3.11 (MS MPEG-4), RV9, VP6 and WMV9 nejsou zcela MPEG-4 kompatibilní ► HW implementace - certifikace „DivX" MPEG-4/AVC (H.264) ► Vychází z MPEG-4, návrh z roku 2003 ► Kouzla H.264 ► CAVLC (Context-Adaptive Variable Length Coding) ► CABAC (Context-Adaptive Binary Arithmetic Coding) ► Nástroje pro kódování proudu (makrobloky + motion vektory + reference...) ► CABAC dokáže uspořit 10-15% dat v porovnání s CAVLC, ale je to pomalá metoda ► Obě metody jsou bezztrátové ► Deblocking filter - po zakódování každého snímku (ale dříve než je snímek použit jako referenční) eliminuje blokování obrazu ► Proměnná velikost makrobloku - cokoliv mezi 16x16 a 4x4 obrazových bodů ► Dovoluje více referenčních snímků pro aktuální snímek při motion estimation MPEG-4/AVC (H.264) ► Baseline Profile: l/P-Frames, progresivní scan, CAVLC ► Extended Profile: l/P/B/SP/SI-Frames, progresivní scan, CAVLC ► Main Profile: l/P/B-Frames, progresivní a interlaced scan, CAVLC nebo CABAC ► High Profile: navíc k Main Profile: 8x8 makrobloky, uživatelsky nastavitelné kvantování, bezztrátová komprese, více vzorkovacích schémat na vstupu (4:4:4...) High Efficiency Video Coding (HEVC/H.265) ► MPEG-H Part 2 - technologický nástupce MPEG-4/AVC (H.264), Duben 2013 ► Dvojnásobný kompresní poměr oproti MPEG-4/AVC (H.264) při zachování kvality ► Gary J. Sullivan, Jens-Rainer Ohm, Woo-Jin Han, Thomas Wiegand: Overview of the High Efficiency Video Coding (HEVC) Standard, IEEE Transactions on Circuits and Systems for Video Technology, vol. 22, no. 12, December 2012, http://iphome.hhi.de/wiegand/assets/pdfs/2012_12_ IEEE-HEVC-Overview.pdf High Efficiency Video Coding (HEVC/H.265) ► Proc je HEVC o tolik efektivnejsi? H.264 Bandwidth Consumption HEVC H »J- MGME^FKUHCY OTHOCQOMO Bandwidth Consumption Same quafhty of video datar the H_265 can save 70~SO% bandwidth sources mm ■||H«"r -f jriPKl jumi* iimi Jin H.265 can transfer the high quality video data(720p) at half of the bandwidth, so you can enjoy the4K*2K video even at a bw-irrtemetepeed environments *-2Mb&). High Efficiency Video Coding (HEVC/H.265) ► Podpora paralelního zpracování - frame paralelismus a wavefront tile paralelismus ^-100 r l_ 110 112 114 LJ -102 r 118 120 122 T~ 124* 5 x—1 r í j -104 Ť "*126 128 130 T 132* H -106 f 134 ~ #~ 1361 ll -108 «1 150 152 156 158 «I 160 High Efficiency Video Coding (HEVC/H.265) ► Profily ► Main, Main 10 a Main Still Picture Feature Version 1 Range extensions Main Main 10 Main 12 Main 4:2:2 10 Main 4:2:2 12 Main 4:4:4 10 Main 4:4:4 12 Bit depth 8 8 to 10 8 to 12 8 to 10 8 to 12 8 to 10 8 to 12 Chroma sampling formats 4:2:0 4:2:0 4:2:0 4:2:0/4:2:2 4:2:0/4:2:2 4:2:0/4:2:2/4:4:4 4:2:0/4:2:2/4:4:4 4:0:0 (Monochrome] No No Yes Yes Yes Yes Yes High precision weighted prediction No No Yes Yes Yes Yes Yes MinCR reduced to half its base value No No No Yes Yes Yes Yes Inter color component prediction No No No No No Yes Yes Intra block copy No No No No No Yes Yes Intra smoothing disabling No No No No No Yes Yes Residual DPCM inter/intra No No No No No Yes Yes Transform skip block sizes larger than 4x4 No No No No No Yes Yes Transform skip context/rotation No No No No No Yes Yes Extended precision processing No No No No No No No Separate color plane Mn High Efficiency Video Coding (HEVC/H.265) iroká škála úrovní Level Max luma sample rate (samples/s) Max luma picture size (samples) Max bit rate for Main, Main 10, and Main 12 profiles (kbit/s)[Al Example picture resolution @ highest frame rate^ [MaxDpbSize^]) Main tier High tier Click here to hide/show additional examples 1 552,960 36,864 128 - 128X96@33,7 (6) 176*144@15,0 (6) 2 3,686,400 122,880 1,500 - 176xl44@100.0 [16] 352x288@30,0 (6] 2.1 7,372,800 245,760 3,000 - 352X288@S0,0 (12) 640X360@30,0 (6) 3 16,588,800 552,960 6,000 - 640x360@67,5 (12) 720x576@37,5 (8) 960X540@30,0 (6) 3.1 33,177,600 983,040 10,000 - 720X576(375.0 (12) 960X540@60.0 (8) 1280X720@33.7 (6) 4 66,846,720 2,228,224 12,000 30,000 1,280X720(368,0 (12) 1,920X1,080(332,0 (6) 2,048X1,080@30,0 (6) 4.1 133,693,440 20,000 50,000 1,280X720@136.0 (12) 1,920x1,080@64.0 (6) 2,048xl,080@60.0 (6) 5 267.386,880 8,912,896 25,000 100,000 1,920X1,0B0@128,0 (16) 3,840X2,160@32,0 (6) 4,096X2,160@30,0 (6) 5.1 534,773,760 40,000 160,000 1,920x1,0B0@256.0 (16) 3,840x2,160@64,0 (6) 4,096x2,160@60,0 (6) 5.2 1,069,547,520 60,000 240,000 1,920X1,080@300,0 (16) 3,840X2,160@128,0 (6) 4,096X2,160@120.0 (6) 6 1,069,547,520 35,651,584 60,000 240,000 3,840X2,160@128,0 (16) 7,680X4,320@32,0 (6) B,192X4,320@30,0 (6) 6.1 2,139,095,040 120,000 480,000 3,840X2,160(3256.0 (16) 7,680X4,320(364.0 (6) B,192x4,320(360.0 (6) 6.2 4,278,190,080 240,000 800,000 3,840X2,160@300,0 [16] 7,680X4,320@128,0 (6) 8,192X4,320@120,0 (6) Theora ► Jeden z nejmladších kompresních mechanismů z léta 2004 ► Opensource návrh i implementace ► Přímá konkurence pro MPEG-4 kompresní mechanismy ► Vlastnosti: ► Ztrátová komprese ► Makrobloky 8x8 obrazových bodů ► Podpora pro vzorkování 4:2:0, 4:2:2, a 4:4:4 (MPEG-4 ASP podporuje pouze 4:2:0) ► Podpora motion compensation jen na úrovni jednotlivých bloků ► Podpora VBR kódování ► Obsahuje pouze I a P frames ► Dovoluje více referenčních snímků pro aktuální snímek při motion estimation VC-1 ► ► Standard SMPTE implementovaný Microsoftem jako Windows Media Video 9, alternativa ke klasickým DCT based MPEG kodekům Simple, Main a Advanced profile Podpora kódování interlaced videa bez nutnosti převodu do progressive režimu Simple Main Advanced Baseline intra frame compression Ye;. Yes Yes Variable-sized transform Yes Yes Yes 16-bit transform Yes Ye 5 Yas Overlapped transform Yes. Yes Yes 4 motion vector per macroblock Yes Yes Yes 'u pixel luminance motion compensation Yes Yes Yes JA pixel chrominance motion compensation No Ye 5 Yas Start codes No Yes Yes Extended motion vectors No Yes Yes Loop filter No Yes Yes Dynamic resolution change No Yes Yes Adaptive macroblock quantisation No Yes Yes B frames No Yes Yes Intensity compensation No Yes Yes Range adjustment No Yes Yes Field and frame coding modes No No Yes GOP Layer No No Yes Display metadata No No Yas Simple Main Advanced Profile Level Maximum Bit Rate Resolutions by Framerate Low 96 kbit/5 176 x 144 / 15 (QCIF) Simple Medium 384 kbit/s 240 X 176 / 30 352 x 288 / 15 (GIF) Low 2 Mbit/s 320 x 240 / 24 [QVGA] Main Medium 10 Mbit/s 720 X 480 / 30 (480p) 720 x 576 / 25 (576p) High 20 Mbit/5 1920 x 1080 / 30 (1080p) LO 2 Mbit/s 352 X 288 / 30 (GIF) LI 10 Mbit/s 720 x 480 / 30 (NTSC-SD) 720 x 576 / 25 (PAL-SD) Advanced L2 20 Mbit/s 720 X 480 / 60 (480p) 1280 x 720 / 30 (720p) L3 45 Mbit/s 1920 X 1080 / 24 (1080p) 1920 x 1080 / 30 (1080i) 1280 X 720 / 50 (720p) L4 135 Mbit/5 1920 x 1080 / 60 (1080p) 2048 x 1536 / 24 Snow ► Expedimentální waveletová komprese ► Výborná kvalita obrazu při nízkých bitratech v porovnání s klasickými kodeky ► Analogový signál se reprezentuje pomocí oscilujcí vlny konečné délky ► Obecně vhodnjší pro reprezentaci obrazu s vysokofrekvenčními složkami (extrémní příklad: hvězdy na noční obloze) ► Vysokofrekvenčí složky lze reprezentovat menším množstvím dat než v případě DCT transformace ► Další wavelet compression based kodeky: Tarkin (Ogg), Dirac (BBC), Pixlet (Apple) Parametry kódování ► Závislé na mnoho faktorech ► Objem komprimovaných dat (rozlišení x reprezentace barevného prostoru x framerate) vs. bitrate pro kodek ► Lze zmenšit rozlišení ► Obvykle nelze zmenšit framerate ► Zmenšení rozlišení = větší kvalita obrazu při stejném bitrate. Ale horší kvalita reprodukce video obvykle zobrazujeme na obrazovce s větším rozlišením. Je nutné škálovat obraz —>► horší kvalita obrazu. ► Bitrate je obvykle daný kapacitou média «— 600 - 1000 kbps pro film (1-2 hodiny) ukládaný na CD. ► Nastavení poměru I,P a B frames a GOP ► Problémy s přehráváním ► Neúčinné VBR u MPEG-2 Srovnání kompresních mechanismů/kodeků Features Standards (Profiles) Non Std MPEG-1 MPEG-2 MPEG-1 ASP MPEG-4 AVC Main MPEG-4 AVC High VC-1 Ogg Theora SNOW B-Frames y y y y Slices Error Resilience y y y y y y Interlace (PAFF7MBAFF) y y y y y Entropy Encoding Huffman Huffman Huffman EHp-Golomb or Adaptive Arithmetic EHp-Golomb or Adaptive Arithmetic Huffman and Bitplane Adaptive Huffman Adaptive Range Motion Block Size 16h16 16k16 16k16/3k8 16k16/16h8 8h8/8k4/4k4 16k16/16h8 8h8/8k4/4k4 16k16/8k3 8k4 or 4k4 16k16/8k3 32h32/16h16 orSKS Motion Search Precision One FíhěI or Half RKel Half RhbI Half RksI or Quarter RKel Quarter RkbI Quarter RkbI Half RKel or Quarter RKel Half RkbI Half RKel or Quarter RKel OBMC y GMC (Global Motion Compensation) y Intra Prediction DC SkS DC SkS AC SkS Spatial 16k16/4k4 Spatial 16k16/8kS or 4k4 AC SkS DC SkS DC 32h32/16h16 or SkS Spatial Transform DCT SkS DCT SkS DCT SkS HCT 4k4 HCT 8k8/4k4 8k8/8k4/4k4 DCT SkS Wavelet 13/7, 3/7 or 5/3 Bit Exact Decoding y y y y y Lossless Mode y y Custom Quantizer Matrix y y y y y In-loop Deblocking Filter y y y y N/A Multiple Reference Frames y y 2 MaK Weighted Prediction y y pp Only YUV Colour Formats 4:2:0 4:2:0 4:2:2,4:4:4 4:2:0 4:2:0 4:0:0,4:2:0 4:2:2,4:4:4 4:2:0 4:2:0 4:2:2,4:4:4 4:0:0,4:2:0 Srovnání kompresních mechanismů/kodeků ► doom9.org annual codecs shootouts ► MSU Video Group - http://www.compression.ru/video/ ► Bitrate handling ► Výkon kodeku při kompresi (fps) ► Kvalita kódování (závisí i na kvalitě implementace kodeku) ► Objektivní PSNR metriky ► Peek signál to noise raio ► Poměr mezi maximální možnou sílou signálu a sílou šumu vzniklého kompresí ► Subjektivní vizuální hodnocení ► Výsledky obou metod nemusí korelovat ► http://www.compression.ru/video/codec_comparison/pdf/ MSU_MPEG4_Comparison_eng.pdf ► http://www. doom9.org/index. htm l?/codecs-q uali-105-l.htm ► http://www. doom9.org/index. htm l?/codecs-mai n-105-l.htm Obálkové formáty ► AVI ► Audio Video Interleave ► Obálkový formát MS z roku 1992 ► FourCC identifikace kodeku ► AVI vs. AVI 2.0 ► Více audio a video stop ► Podpora pro stopy větší než 2 GB ► Dnes poněkud obsoletní, ale stále velmi používaný ► Nepodporuje titulky a moderní kodeky (Vorbis apod.) ► Existují různé hacky nekompatibilní s většinou přehrávačů ► MOV ► Obálkový formát pro QuickTime ► Jedna nebo vice stop pro audio, video, efekty nebo text (titulky) ► Quictime reference - odkaz např. na video, které je uložené kdekoliv jinde na disku nebo na síti ► Vhodné pro střih <□► < [fp ► 4 = k 4 = k = O Q, O Obálkové formáty ► OggMedia ► Nezaměňovat s Ogg - formát proudu dat pro uložení audia nebo videa komprimovaného kodeky Vorbis, Theora apod. ► OggMedia rezšiuje možnosti formátu Ogg ► Podpora kapitol ► Více stop s titulky ► Více audio stop různých formátů (MP3, AC3, Vorbis, WAV) ► Matroska ► Opensource návrh obálkového formátu, vystavěný na binárním ekvivalentu XML (EBML) ► Rychlé procházení audiem nebo videem (seek) ► Implementuje menu jako u DVD ► Podpora pro streaming <□► < [fp ► 4 = k 4 = k = O Q, O Obálkové formáty ► MPEG-4 (MP4) ► Vychází z obálkového formátu Apple Quicktime ► Audio, video plus MPEG-4 titulky ► Pomoci tzv. private stream lze do obálky MP4 vložit téměř jakákoliv data (např. vobsub titulky apod) ► DivX6 ► Interaktivní menu ► Více stop s titulky ► Více audio stop ► Kapitoly ► Další textová metadata ► Podpora různých audio a video formátů ► a další... Multimédia v sítích ► Proč multimédia a datové sítě? ► Dobrý zdroj dat, relativně velké objemy, specifické nároky na samotný přenos ► Aplikace multimediálních přenosů ► Streaming ► Videokonference ► aplikace požadující zcela konkrétní vlastnosti přenosu multimediálních dat (např. end-to-end zpoždění) ► požadavky na přenos zásadně ovlivňují možnosti zpracování multimediálních dat Parametry kódování videa pro přenos sítí ► Objem komprimovaných dat (rozlišení x reprezentace barevného prostoru x framerate) vs. kapacita sítě vs. rychlost kódování multimediálního streamu vs. nároky na zpoždění přenosu ► Typicky malý bitrate (řádově max. jednotky Mbps), ačkoliv pro kvalitní přenosy se používá bitrate v řádu desítek i stovek Mbps ► Lze snížit rozlišení ► Lze snížit framerate - u videokonferencí není framerate tolik podstatný ► Problematické použití VBR ► Nemá smysl používat B frames, opatrně např. i s délkou GOP Protokoly na transportní vrstvě - TCP ► Stavový protokol na transportní vrstvě ISO/OSI modelu ► Vlastnosti významné pro multimediální přenosy ► Bezchybný přenos ► Retransmise ztracených paketů ► Pakety vždy dorazí ve správném pořadí ► Kontrola zahlcení linky ► Férový protokol ► Nevýhody TCP pro multimediální přenosy ► Bezchybnost přenosu je na úkor nízké latence ► Férovost nedovoluje dostatečnou šířku pásma na vytížených linkách Protokoly na transportní vrstvě - UDP ► Bezstavový protokol na transportní vrstvě ISO/OSI modelu ► Nespolehlivý protokol ► Pakety mohou přicházet mimo původní pořadí ► Pakety se mohou ztratit bez jakéhokoliv upozornění ► Ale odpadá režie s ověřováním, ze každý paket dorazil v pořádku a hlavně s retransmisemi ► V porovnání s TCP minimalistický, efektivnější a rychlejší ► UDP prakticky nezvyšuje latenci při přenosu multimediálních dat ► Multimediální aplikace využívají v drtivé většině případů protokol UDP pro přenos dat (až na speciální případy) Protokoly na transportní vrstvě ► RTP ► Real-Time Transport Protocol ► Postavený nad protokolem UDP ► Klíčové vlastnosti ► Identifikace obsahu ► Sekvenční číslování paketů ► Časové značky pro jednotlivé pakety ► Protokol sám od sebe nezaručuje kvalitu přenosu, pouze poskytuje prostředky pro zaručení kvality aplikacím ► RTCP ► RTP Control Protocol (RTCP) ► Real time control protocol doplňuje protokol RTP ► Poskytuje out-of-band informace pro řízení proudu dat přenášeného pomocí RTP ► RTCP poskytuje aplikaci zpětnou vazbu na kvalitu přenosu pomocí protokolu RTP Protokoly pro přenos multimediálního obsahu ► RTSP ► Real-time Streaming Protocol ► Stavový protokol založený na HTTP požadavcích (GET apod.) ► Ovládání streaming serveru (VCR příkazy jako Play, Pause a Stop) a přístup k souborům podle času ► Pro přenos dat se používá protokol RTP + RTCP případně jeho proprietami obdoba RDT ► ► MMS ► Microsoft Media Services nebo také Netshow services ► Proprietami protokol pro streaming ► Pro přenos dat se používají protokoly UDP nebo i TCP pokud se nezdaří vyjednat spojení na protokolu UDP ► Jako poslední z možností je "streaming" pomocí upraveného protokolu HTTP (tedy opět nad protokolem TCP) Chybovost přenosu a oprava chyb ► Nutnější hlavně u zvuku, používá se samozřejmě i u přenosu obrazu ► Buffery ► Forward Error Correction (FEC) ► XORování ► posílání druhého proudu (v nižší kvalitě) ► prokládání (interleaving) ► oprava chyb na straně klienta ► nahrazení daty z předchozího paketu ► interpolace □ s = ► Posílání druhého proudu i i síť 1 1 2 2 3 3 4 r 1 2 výpadek 3 4 1 interleaving 5 6 7 8 9 10 11 12 13 14 15 16 síť 1 5 9 13 2 6 1014 3 7 1115 4 8 12 16 1 5 9 13 2 6 10 14 výpadek 4 8 12 16 5 6 8 9 10 12 13 14 16 Point-to-point vs. multipoint ► Point-to-point ► Multipoint ► 1:N ► Rozšíření point-to-point schématu ► Streaming - VOD ► Streaming - push schéma ► Multimediální stream se může šířit sítí v mnoha kopiích a zahlcovat ji ► M:N ► Typicky videokonference ► Problémy šíření multimediálních streamů ► Firewally ► Nat Unicast Multicast ► Efektivní schéma pro posílání multimediálních dat ► Routery vytvářejí optimální strom cest po kterých se šíří multimediální data ► Postavený na protokolu UDP (nad TCP nemá smysl, TCP vytváří spojení mezi dvěma konkrétními uzly) ► Relativně nespolehlivé schéma ► Multicast se v nešíří napříč všemi sítěmi ► Bezpečnostní rizika Multicast Zrcadla, Content Delivery Networks ► SW který přijímá multimediální streamy od jednotlivých klientů a přeposílá je ostatním připojeným klientům ► Vytváří překryvovou síť, která emuluje multicast v síti, kde se multicast nešíří ► Neřeší problém redundance multimediálních streamů na jednotlivých linkách ► Možná schémata použití - 1:N, M:N Videokonference vs. Streaming ► Streaming ► Způsob doručení multimediálního obsahu klientům prostřednictvím sítě ► Přidaná hodnota porovnání s prostým stažením multimediálního obsahu ► Live streaming ► Doručování multimediálního obsahu, který vzniká živě během streamování ► Video on Demand vs. pasivní příjem ► Pasivní příjem se obvykle používá pro příjem živých streamů ► Je samozřejmě možné streamovat i multimediální archivy ► Video a audio nelze kódovat libovolně. ► Videokonference (přenosy s nízkým zpožděním) ► Jednoznačný požadavek na interaktivitu ► V porovnání se streamingem přináší další omezující požadavky na zpracování videa a audia. Videokonference vs. Streaming ► Streaming ► Díky jednosmernosti provozu můžeme data bufferovat ► Latence při přenosu vznikající při kompresi videa není problém ► Latence vznikající přenosem v síti a její rozptyl také není podstatná - lze řešit bufferem ► Videokonference (přenosy s nízkým zpožděním) ► Při přenosu nelze používat buffery ani na straně odesílajícího ani na straně příjemce - vyžadujeme interaktivitu a tedy nízké latence ► Potřeba využívat kodeky s nízkou latencí ► Latence a její rozptyl při přenosu sítí je také velmi problematická Web rowser media player dient HTTP GET presentation desc. SETUP PLAY media stream PAUSE TEARDOWN Web server media server server Formáty Vhodné pro streaming ► Kompresní mechanismy ► Nejsme limitování nutností udržet nízkou end-to-end latenci —>► z tohoto hlediska lze použít prakticky libovolný kodek ► Komprese musí být realtime což diskvalifikuje zejména vaweletovou kompresi ale i některé pokročilé MPEG profily ► Obvykle pouze CBR kódování - u VBR nejsme dobře schopni předvídat, zda nepřekročíme bitrate daný dostupným pásmem ► Audio - MP3, Vorbis, AAC nebo Opus ► Video - H.264, HEVC, VP8 nebo VP9 ► Obálkové formáty ► Zapouzdření více proudů videa a audia ► Metadata ► Podpora pro zotavení z chyb způsobených přenosem ► Adaptace na změny parametrů přenosových linek ► MP4, FLV, WebM nebo ASF Flash video ► Obvykle varianta H.263, případně MJPEG, MPEG4 AVC ► Audio ve formátu PCM, ADPCM nebo MP3, AAC ► Široká podpora v přehrávačích napříč platformami (nejen Macromedia Flash player) ► Streaming pomocí proprietárního Real Time Messaging Protocol (RTMP) protokolu od Adobe a Flash Media serveru ► Progressive download ► Přenos protokolem HTTP —>► neblokované firewally ► Libovolný přístup k videu není nutné přehrávat sekvenčně ► Buffer na straně klienta ► Neporadí si s kolísající šířkou pásma a s nižší šířkou pásma než je bitrate videa AS F ► Advanced Systems Formát, dříve Advanced Streaming Formát ► Proprietami obálkový formát Microsoftu, podpora streamování ► Podpora pro přehrávání obsahu ze streaming serveru, HTTP serveru nebo z lokálního disku ► Specifikuje strukturu pro ukládání audia a videa a přístup k jednotlivým multimediálním proudům ► Nespecifikuje konkrétní formáty pro kódování audia nebo videa, ale obvykle se používá spolu s Windows Media Video resp. Windows Media Audio ► Implementuje techniky pro korekci chyb vzniklých během přenosu ► Podpora DRM (pouze ve spojení s WMW nebo WMA) Streaming na síti ► Základní přenos RTP + RTCP a RTSP ► Real Time Messaging Protocol - RTMP ► Apple HTTP Live Streaming - HLS ► Dynamic Adaptive Streaming over HTTP - MPEG-DASH ► Posun klientů od samostatných aplikací k webovému prohlížeči ► Podpora v HTML5 ► Proprietami protokol Macromedia/Adobe ► TCP přenos dat (včetně šifrování a enkapsulace do HTTP požadavků) ► Fragmentace dat - 64B pro audio, 128B pro video ► V rámci RTMP sezení několik nezávislých kanálů pro přenos RPC, audia, videa apod.) ► Není podpora v HTML5, pouze Adobe Flash Apple HTTP Live streaming ► Všechny dotazy a přenos multimediálních dat probíhají nad protokolem HTTP ► Možnost přizpůsobení datového toku aktuální propustnosti sítě ► Videa (H.264 video a MP3, AAC nebo AC-3 audio) se zakódují do MPEG-TS transportu, který je určen pro přenos multimediálních dat ► Každé takové video se následně rozdělí na malé segmenty, které umožňují například posouvání ve videu bez nutnosti čekání na stažení celého videa ► Adaptivní bitrate ► Klient si dle vlastního uvážení stahuje segmenty a skládá z nich původní média ► Přímá podpora v HTML5 Dynamic Adaptive Streaming over HTTP ► Adaptivní technologie ► Média jsou rozdělena na rámce ► Přenos pomocí HTTP ► Technologie agnostická vůči zpracování audia/videa ► MPEG4 nebo MPEG-TS kontejner ► Není přímo podporovaný v HTML5, ale existují knihovny v JS