PV188 Principy zpracování a přenosu multimédií Miloš Liška xliska@fi.muni.cz podzim 2013 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 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) AC3 Formát také známý jako Dolby Digital Podpora až osmi audio kanálů, typicky v konfiguraci 5.1 nebo 7.1 (ale i mono, stereo, quadro, 2.1, 4.1 apod.) V konfiguraci 5.1 se používá pevný bitrate 448 kbps Srovnatelný s MP3 kompresí Lze přehrvat i jako 2.0 MP3 Windows Media Audio (WMA) Proprietární formát Microsoftu Podporuje Digital Rights Management (DRM) Kodeky: Windows Media Audio 7 lossy compression Windows Media Audio 9 Voice Windows Media Audio 9.2 Lossless Windows Media Audio 10 Professional (96 kHz 24-bit 7.1 audio) Constant Bitrate, VRB i bezztrátová komprese Kvalita komprese je srovnatelná s MP3, při méně než 64 kbps je WMA jednoznačně lepší 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 RealAudio Proprietární formát RealNetworks Formát vhodný pro streaming Řada bitratů 6 až 176 kbps, optimalizace na řeč, hudbu, dolby surround Používá se celá řada kodeků: lpcJ: IS-54 VSELP (RealAudio 1) 28_8: G.728 LD-CELP (RealAudio 2) dnet: Dolby AC3 (RealAudio 3) sipr: Sipro Lab Telecom ACELP-NET (RealAudio 4/5) cook: G2/Cook Codec (RealAudio 6) atrc: Sony ATRAC3 (RealAudio 8) raac: MPEG-4 LC-AAC (RealAudio 10) racp: MPEG-4 HE-AAC (RealAudio 10) ralf: RealAudio Lossless Format (RealAudio 10) 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 × 30[b/pixel(YUV )] × 30[fps] × 2/3[4 : 2 : 2sampling] = 1, 244, 160, 000 bps Není příliš vhodné pro ukládání na pevný disk Není ani příliš vhodné pro další zpracování na PC Přesto může mít uplatnění (viz přenosy videa na síti) 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 B frames Motion vector je čtveřice Souřadnice makrobloku ve snímku Motion vector vzhledem k předchozímu referenčnímu snímku Motion vector vzhledem k následujícímu referenčnímu snímku Pro každý pixel makrobloku jeho změna vzhledem k 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 Podpora paralelního zpracování - tiles 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 barevnho 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 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 Videokonference 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 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 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 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 RealVideo Proprietární kompresní formát od RealNetworks Zaměření na streamované video Celkem 4 různé kodeky. Počáteční verze postavené na H.263 (RV10, RV20). Dnes proprietární kodek údajně postavený na silně modifikovaném H.263 resp. MPEG-4 AVC (RV30, RV40). Podpora pro CBR i VBR kódování Použití ve spojení s obálkovým formátem Real Media, Real Time Streaming protokolem (RTSP), Real streaming serverem a technologií SureStream Windows Media Video Proprietátrní množina kompresních mechanismů původně vyvinutých pro streaming na nízkých bitratech Komprese založená na nestandardních verzích MPEG-4 ASP, dnes téměř výhradně VC-1 Obvykle ve spojení s obálkovým formátem ASF (pro streaming) Jako podmnožina možností obálkového formátu ASF existuje obálkový formát nazvaný Windows Media Video (neplést s kodekem a už vůbec ne s kompresními mechanismy) MPEG-TS vs. MPEG-PS MPEG-TS Definuje způsob synchronizace a přenosu MPEG audia a videa Součást rodiny standardů MPEG-2, ale neomezuje se pouze na MPEG-2 video nebo audio Přenos po nespolehlivých linkách → error correction Lze multiplexovat i dalši data (např.: televizní program) Použití: streaming MPEG videa, DVB MPEG-PS Prostý kontejner pro video a audio ve formátu MPEG RealMedia Obálkový formát podporující formáty RealAudio resp. RealVideo Proprietární formát Dva obálkové formáty rm – přenos CBR kódovaného videa rmvb – přenos VBR kódovaného videa Podpora pro streaming Podpora pro SureStream – v obálce je uložený tentýž stream vícekrát s různými parametry kódování a zejména bitratem Dále definuje maximální a průměrný bitrate uloženého videa, doporučenou velikost bufferu přehrávače apod. Široká podpora metadat Včetně například hodnocení závadnosti obsahu 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) 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 Standardy ve videokonferencích H.323 a SIP (Session Initiation Protocol) často komerční řešení s HW podporou Polycom ViewStation FX, Tandberg 880 MS Netmeeting, GnomeMeeting, Ekiga, OHphoneX, CUSeeMe, OpenH323, OpenWengo Voice over IP Architektura H.323 videokonferencí HW a SW klienti (SW klienti nejsou vetšinou příliš kompatibilní se zbytkem světa) Brány (gateways) přechody mezi sítěmi konverze dat pro různé sítě Gatekeepery překlady adres, management šířky pásma autentizace, autorizace, accounting (AAA) Multipoint Connection Units (MCU) H.323 je v podstatě point-to-point protokol MCU přidává možnost spojení point-to-multipoint MCU Multipoint Control Unit Obdoba zrcadel pro videokonference Používá se ve spojení s H.323 videokonferencemi a H.260 telekonferencemi nad ISDN (viz příští přednáška) Vyjednává parametry komunikace s jednotlivými klienty (kodeky, šířku pásma apod.) Na rozdíl od zrcadla MCU řeší mixování audia a videa od jednotlivých účastníků Typicky drahé zařízení implementované v HW Architektura H.323 H.323 stack Komunikace v H.323 Ukázka H.323 videokonference SIP Session Initiation Protocol RFC 3261 (starší RFC 2543) a řada dalších navazujících RFC Čistě textový protokol Entity klient (UAC) i server (UAS) současně proxy server redirect server na rozdíl od proxy serverů jen překládá adresy, ale nejedná za klienty Registrar přebírá registrační funkci gatekeeperu v H.323 SIP – zprávy INVITE: Přizvání účastníka ACK: Potvrzení přizvání. BYE: Zrušení spojení mezi účastníky CANCEL: Zrušení vyhledávání účastníka nebo zrušení požadavku INVITE OPTIONS: Vyjednání informací o možnostech serveru REGISTER: Registruje uživatelovo aktuální umístění INFO: Signalizace v rámci sezení SIP – příklad zpráv SDP – Session Description Protocol Informace o sezení (session) jméno sezení, účel sezení, čas informace o šířce pásma kontaktní informace Informace o médiích typy médií (audio, video) transportní protokol (RTP, UDP) formát médií (H.261, H.263, GSM) v případě použití multicastu adresa a port SIP – navázání a ukončení spojení SIP – složitější scénáře S přesměrováním UAC zkontaktuje RedirectServer, který pošle informaci o momentálním umístění UAC UAC zkontaktuje přímo UAS S proxy serverem proxy server vytvoří za UAC spojení na závěr utváření spojení přijde klientovi od UAS přes proxy 200/OK s přímou adresou UAS UAC pošle ACK přímo UAS a další komunikace jde přímo nebo je možno udržovat komunikaci přes proxy SIP – konference multipoint-to-multipoint Dialup conference bridge (podobné MCU, volá se adresa mostu) Distributed multiparty conference (bez serveru) Multicast (INVITE se posílá do multicastové skupiny, neuplatňuje se full-mesh signalizace) V případě pouze 3 účastníků může jeden UA pozvat třetího účastníka a sám fungovat jako mixer