PV188 Principy zpracování a přenosu multimédií Miloš Liška xliska@fi.muni.cz podzim 2016 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.1 kHz - 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 Podvzorkování 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ě 6 dB 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 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: 8 kHz × 8 b × 1 kanál = 64 kbps 192 kHz × 24 b × 2 kanály = 9000 kbps Použití: digitální telefonní linky, CD, DVD audio, DVD Bež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 µ-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 × 16 bitů/vzorek × 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) 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.6 Mbps Mixování audia Směšování dvou zvukových vln 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(Cmin, A + B)) Mixování audia – normalizace Lineární attenuace C = A+B 2 Co když je jeden ze zdrojů potichu? Výstup je celkově utlumený. Mixování audia – normalizace Pre nebo post-mix normalizace C = A+B max(|Ai +Bi |) Crange 2 ∀i ∈ N, i ≤ T T je celkový počet vzorků, Crange je vzdálenost mezi maximem a minimem. Problém při zpracování v reálném čase. Mixování audia – normalizace Dynamická komprese rozsahu - lineární x = A + B, t = 0.6 Všechny amplitudy jsou v rozsahu, nízké a střední amplitudy jsou OK, vysoké amplitudy jsou ztlumené Mixování audia – normalizace Dynamická komprese rozsahu - logaritmická x = A + B, t = 0.6 Všechny amplitudy jsou v rozsahu, nízké a střední amplitudy jsou OK, vysoké amplitudy nejsou tolik utlumené jako v případě lineární komprese Princip ztrátové komprese Obecný přístup ztrátové komprese je jednoduchý. Po úvodním předzpracování se přeskupí nebo transformují data tak, aby bylo možno lehce oddělit důležité informace od nedůležitých. Nedůležité informace se pak potlačí mnohem více (zahodí) než důležité a nakonec se výsledek zkomprimuje některým z bezeztrátových kompresních algoritmů. Transformace dat MDCT převede původní data do jiné domén, typicky z časové do frekvenční Potlačení části dat psychoakustický model, který určuje, jaká data mohou být potlačena nebo dokonce úplně odstraněna (nahrazena nulami) při kompresi zvuku se hledají frekvence, které člověk stejně nemůže vnímat a ty se zahodí MDCT Modifikovaná diskrétní kosínová transformace MDCT v každém z kanálů transformuje analogový signál na frekvenční koeficienty Výstupem MDCT je řada frekvenčních koeficientů → 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í→Huffmanovo kódování 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 tagu Omezení a problémy formátu MP3 Slyšitelné artefakty při nižších bitratech (ozvěny apod.) Maximální bitrate 320 kbps 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 24 kHz (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 Srovnání kvality komprese MPEG-I Layer 3 vs. Ogg Vorbis Referenční wav – 44 kHz, 16 b, stereo Srovnání kvality komprese MPEG-I Layer 3 vs. Ogg Vorbis Ogg Vorbis – q10 cca. 427 kbps (Oggenc 1.0.2) Srovnání kvality komprese MPEG-I Layer 3 vs. Ogg Vorbis Ogg Vorbis – q8 cca. 236 kbps (Oggenc 1.0.2) Srovnání kvality komprese MPEG-I Layer 3 vs. Ogg Vorbis Ogg Vorbis – q4 cca. 122 kbps (Oggenc 1.0.2) Srovnání kvality komprese MPEG-I Layer 3 vs. Ogg Vorbis Ogg Vorbis – q0 cca. 56 kbps (Oggenc 1.0.2) Srovnání kvality komprese MPEG-I Layer 3 vs. Ogg Vorbis MPEG-I Layer 3 – studio quality = 256 kbps (Lame 3.95) Srovnání kvality komprese MPEG-I Layer 3 vs. Ogg Vorbis MPEG-I Layer 3 – CD quality = 192 kbps (Lame 3.95) Srovnání kvality komprese MPEG-I Layer 3 vs. Ogg Vorbis MPEG-I Layer 3 – hifi quality = 160 kbps (Lame 3.95) Srovnání kvality komprese MPEG-I Layer 3 vs. Ogg Vorbis MPEG-I Layer 3 – tape quality = 112 kbps (Lame 3.95) Srovnání kvality komprese MPEG-I Layer 3 vs. Ogg Vorbis 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 96 kbps stejných výsledků jako u MP3 při 128 kbps 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 2 kbps až 44 kbps 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. Obraz 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.299R + 0.587G + 0.114B U = 0.147R + 0.289G + 0.436B = 0.492(B − Y ) V = 0.615R + 0.515G + 0.100B = 0.877(R − Y ) YCrCb YUV + scale + offset Y = 0.299R + 0.587G + 0.114B Cb = −0.168736R − 0.331264G + 0.5B C = 0.5R − 0.418688G − 0.081312B Prakticky veškeré moderní kompresní mechanismy pro kompresi videa pracují s reprezentací YUV (kromě MJPEG) Vzorkování Rozlišení obrazu pří akvizici jej dělí na vzorky Typicky 768×576 bodů, 1920×1080 bodů apod. 4:2:2 4:2:0 Vzorkování 4:1:1 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: 720×576 obrazových bodů, 25 fps NTSC: 720×480 obrazových bodů, 29.97 fps VCD 352×288 obrazových bodů (PAL) 352×240 obrazových bodů (NTSC) SVCD 2.7× 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 × 1080 (30p, 29.97p, 24p, 23.976p) 1080i: 1920 × 1080 (30i, 29,97i) 720p: 1280 × 720 (60p, 59.94p, 30p, 29.97p, 24p, 23.976p) Větší rozlišení 2K, 4K, 8K SDTV vs. HDTV SDTV vs. HDTV Framerate 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 25 fps (PAL), 29.97 fps (NTSC) a 24 fps (klasický film) Lze se setkat i s jinými hodnotami (např.: 23.976 fps) Pro dosažení iluze pohybu je třeba alespoň 10 fps 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 × 576 × 24[b/pixel(RGB)] × 25[fps] = 265, 420, 800 bps HDTV: 1920 × 1080 × 24[b/pixel(YUV )] × 2/3[4 : 2 : 2sampling] × 30[fps] = 995, 328, 000 bps 4K: 3840 × 2160 × 30[b/pixel(YUV )][4 : 4 : 4sampling] × 60[fps] = 14, 929, 920, 000 bps 8K: 7680 × 4320 × 24[b/pixel(YUV )] × 2/3[4 : 2 : 2sampling] × 60[fps] = 31, 850, 496, 000 bps Nekomprimované video vs. zpracování na PC USB2 – 480Mbps, USB3 – 5Gbps, USB-C – 10Gbps Thunderbolt3 – 40Gbps PCIe v3 ×1 – 8Gbps, ×8 – 64Gbps, ×16 – 128Gbps Intel DC S3710 1.2TB SSD read – 4.4Gbps, write – 4.1Gbps 4K: 643s, 8K:301s Síť běžně 1Gbps, 10Gbps, na PC max 40Gbps DCT Diskrétní kosínová 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ů (16×16, 8×8, 4×4) – 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 I,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í (320×240, 640×480) 10, 12 nebo 15 fps 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í 4095×4095 obrazových bodů Většina implementací dovolovala pouze 352×240 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í 352×240 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ů I_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í MPEG-2 Typické použití: DVD, DVB, HDV, HDTV Digital Video (DV) 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 apod.) Komprese: Intraframe komprese Makrobloky 8×8 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 AC 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/Interaktivita (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 30 fps Generuje I,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/OpenDivX, 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 16×16 a 4×4 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: I/P-Frames, progresivní scan, CAVLC Extended Profile: I/P/B/SP/SI-Frames, progresivní scan, CAVLC Main Profile: I/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) Podpora paralelního zpracování – frame paralelismus a wavefront tile paralelismus High Efficiency Video Coding (HEVC/H.265) Profily Main, Main 10 a Main Still Picture High Efficiency Video Coding (HEVC/H.265) Široká škála úrovní 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 8×8 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 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í × reprezentace barevného prostoru × 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ů 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 signal 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.html?/codecs-quali-105-1.htm http://www.doom9.org/index.html?/codecs-main-105-1.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 více 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 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 Obálkové formáty MPEG-4 (MP4) Vychází z obálkového formátu Apple Quicktime Audio, video plus MPEG-4 titulky Pomocí tzv. private stream lze do obálky MP4 vložit téměr 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í × reprezentace barevného prostoru × 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 proprietární obdoba RDT MMS Microsoft Media Services nebo také Netshow services Proprietární 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 Posílání druhého proudu Interleaving 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í multimédiá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 jednosměrnosti 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á Streaming 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 (ne jen 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 ASF Advanced Systems Format, dříve Advanced Streaming Format Proprietární 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 Real Time Messaging Protocol Proprietární 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