Poznámky z 9. prezentace z UPG

This commit is contained in:
Filip Znachor 2023-05-25 13:25:01 +02:00
parent fcb7778f99
commit 35caf2ee49

View file

@ -0,0 +1,260 @@
# Základy multimédií
## Multimédia
- neexistuje přesná definice
- intuitivní definice
- spojení textu, audia, obrázku, animace nebo videa se zařízením, které je shopné jej prezentovat (PC, mobil, televize)
- pro účely UPG
- multimédia = video (bez zvuku i se zvukem) a audio
**Význam**
- komunikace mezi lidmi
- hlasové ovládání zařízení
- zabezpečení objektu a příbuzné
+ šíření vlastního názoru nebo umělecké produkce
+ prezentace produktu
+ vysvětlení složitějšího problému
+ upoutávky
+ ...
### Digitální video
- sekvence jednotlivých obrázků (snímků) doprovázená audiozáznamem, případně titulky
- snímky = bitmapové obrázky
- stejná velikost (rozlišení)
- stejná barevný model a bitová hloubka
- sousední snímky se odlišují jen mírně
- snímková frekvence (fps)
- minimálně 24 fps pro navození iluze plynulého pohybu
- záleží na rychlosti pohybu, který chceme zachytit
+ nejjednodušší podoba - adresář s obrázky
- nepraktické
- mnoho souborů, velmi neefektivní přístup ke snímkům
- informace o fps není součástí
- lepší je využít některý ze standardních formátů
**Velikost snímků (rozlišení)**
+ teoreticky libovolné
+ používá se standardní rozlišení nebo jeho násobky
- 240p 320x240 (4:3)
- 360p 480x360 (4:3) nebo 640x360 (16:9)
- 480p, 480i 640x480 (4:3) nebo 720x480 (3:2), resp. 704x480 (5:3) nebo 853x480 (16:9)
- 720p 1280x720 (16:9); HD
- 1080p, 1080i 1920x1080 (16:9); FullHD
- progressive scan (p)
- pixely zpracovávány řádek po řádce zleva doprava
- interlaced scan (i)
- pixely zpracovávány ob řádek zleva doprava
- určeno pro CRT monitory, dnes nevhodné
**Datový tok**
- počet bitů za sekundu, které je potřeba přenést
- FullHD (1920x1080) film s 29.97 FPS při 24 bitech na pixel = cca 178 MB/s
- velmi velký datový tok - potřeba použít kompresi
**Kodek** (**co**der-**dec**oder)
- algoritmus pro kompresi (coder) a dekompresi (decoder)
- transformuje data do úspornější podoby dle nastavení
- různé nastavitelné parametry
- musí být k dispozici na straně příjemce
- často součástí OS, některé lze doinstalovat
### Kompresní přístupy
**Barevné podvzorkování**
- zahození barevné informace (RGB na YCbCr, YCoCg, YUV, apod.)
**Statickou část scény neukládat vícekrát**
- rozsekání obrazu na makrobloky, ty uloženy vždy jen jednou
- pro další snímek informace, kam se makroblok posunul
- čas od času potřeba restartovat
**GOP = Group of Picture Size**
- určuje, jak často se snímek má kódovat jako klíčový
- 1 - každý je klíčový
- 30 - 1 klíčový snímek + 29 rozdílových
- nejčastěji používané
- dlouhé GOP (např. 300)
- pro archivní účely
**Možnosti volby velikosti datového toku**
- konstantní velikost (CBR, constant bit rate)
- každý snímek kódován přibližně stejným počtem bytů
- jednoduché, obsah snímku ignorován - něco příliš kvalitně, něco nedostatečně
- variabilní velikost (VBR, variable bit rate)
- snímky mohou být kódovány různě velkým počtem bytů
- udává se průměrný požadovaný tok + maximální povolený
- složitější algoritmy, obvykle preferováno
**Jednoprůchodová komprese**
+ snímek okamžitě zpracován a odeslán na výstup
+ úroveň komprese pro dosažení průměrného toku nutno odhadnout
+ jediné možné pro přímý přenos TV vysílání
**Víceprůchodová komprese**
+ obvykle dvouprůchodová
+ v prvním zjistí složitost snímků, v dalším provede vlastní kompresi
+ vhodné pro archivační účely, využíváno ve spojitosti s VBR
### Standardní formáty
**MPEG-2**
- DVD filmy, digitální TV, Blu-ray
- méně náročné dekódování
**VC-1**
- vylepšený MPEG-2
- pro internetové vysílání, Blu-ray
- patentováno - pro vytváření potřeba licence
- WMV, WMA kodek
**MPEG-4**
- stále se vyvíjející formát s mnoha doplňky (part)
- náročnější kódování, vyšší nároky na dekódování
- mnohem menší datový tok
- part 2: DivX, XviD, QuickTime kodek
- part 10: H.264 kodeky
- Blu-ray, YouTube, kabelová TV, vizuálně bezettrátová komprese
- nejrozšířenější volná implementace = x264
### Vytváření videa
**Zdroj obrazu**
- uspořádaná množina obrázků vytvořených nějakým programem
- animované filmy, animované vizualizace
- oblast obrazovky
- hardwarové zařízení (web kamera, ...)
Již při vytváření je nutné rozhondout, jak bude video distribuováno:
- soubor uložený na pevném médiu
- na začátku hlavička (rozlišení, frekvence, ...)
- poté vlastní video, často menší soubory
- streamovaně prostřednictvím TV nebo internetu
- datový proud rozdělen na drobné úseky (např. několik ms)
- hlavička před každým úsekem, větší soubory
## Audio
- zvuk = mechanické vlnění
- digitální audio = sekvence amplitud mechanického vlnění (tzv. vzorků)
**Vzorkovací frekvence**
- zavisí na rychlosti zachycovaného zvuku
- 16 kHz - stačí pro mluvené slovo
- 44.1 kHz - obsáhne celý slyšitelný rozsah
- zkresluje zabarvení tónu
- používáno v audio CD
- 48 kHz - nejčastěji užívaná frekvence
- 96 kHz, 192 kHz - DVD a Blu-ray
- umožňuje další editaci zvuku
**Datový tok**
- počet bitů za sekundu, které je potřeba přenést
- hudba se vzorkovací frekvencí 192 kHz při 8 bytech na vzorek = cca 1.5 MB/s
- písnička typické délky (4 min) = cca 350 MB
- hudba k filmu (120 min) = cca 10 GB
**Audio kanály**
- audio může obsahovat více kanálů
- ukládány nezávisle
- datový tok roste lineárně s počtem kanálů
- monofonní zvuk = 1 kanál
- stereofonní zvuk = 2 kanály
- domácí kino = 6 kanálů
**Snížení datového toku**
- nižší vzorkovací frekvence (ztráta kvality)
- komprese dat
- zvukové kodeky
- obvykle specifikována požadovaná velikost toku a kodek automaticky určí snížení kvality
- snížení počtu bytů vzorku
- kvantizace rozsahu
- nejčastěji 16 bitů / vzorek (-32768 ... 32767)
- další kompresní přístupy
### Standardní formáty
**WAV**
- pouze kvantizace na 16 nebo 8 bitů
- vhodné pro audio CD nebo další zpracování
Windows Media Audio (**WMA**)
- patentováno - potřeba licence
- umožňuje digitální ochranu
- kompresní poměry běžně až 10:1
MPEG-1 Audio Part 3 (**MP3**) nebo MPEG-2 Audio Advanced Audio Coding (**AAC**)
- patentováno
- nízké nároky na dekódování
- podporuje nejen CBR, ale i VBR
**OGG** Vorbis
- open-source
- srovnatelné s předchozím
## Kontejnery
- audio i video v jednom souboru
- vyžadují dva programy
- **multiplexor** (muxer) - odesílací strana
- slučuje proudy videa, zvuku a titulkových stop do jednoho proudu dat
- podporuje typicky různé video a audio kodeky
- informace o rozlišení, typu komprese pro video/audio, počet audio kanálů a jejich mapování na reproduktory jsou součástí proudu dat
- **demultiplexor** (demuxer, splitter) - přijímací strana
- separuje ze složitého proudu data, o které je zájem
- systém správy multimédií (typicky součást OS) předá separované proudy příslušným kodekům a jejich výstupy výstupním zařízením
**Nejčastější kontejnerové struktury**
- Audio Video Interleave (**AVI**)
- MPEG, např. MPEG-2 Transport Stream (MPEG-TS) nebo MPEG-4 (ASF)
- Matroska (MKV, WebM)
- Flash Video (FLV)
- Windows Media Video (WMV)
**Pro samostatné audio**
- lze použít obecné kontejnery pro video
- specializované audio kontejnery
- WAV, MP3, ...
Pro zjištění obsahu kontejneru je potřeba použít utilitu.
## Úprava videa
**Živé video**
- veškeré úpravy se provádí hned při vytváření
**Uložené video**
- větší možnosti
- změna datového toku, změna velikosti obrazu, oříznutí snímků, komprese lepším kodekem, střih, odšumění, ...
**Komerční nástroje**
- určeny pro profesionální úpravy
- např. Adobe Premiere, Camtasia Studio, Pinnacle Studio, ...
**Volně dostupné**
- určeno pro amaterské úpravy
- např. FFmpeg, ShotCut, ...
## Multimediální prezentace
- interaktivní prezentace s videosekvencemi
**Řešení 1.**
- celá prezentace uložená jako jedno video v běžném formátu
- interakce není k dispozici, videosoubor lze snadno distribuovat a zpřístupnit
**Řešení 2.**
- uložit prezentaci v DVD nebo Blu-ray formátu
- omezené možnosti interakce
- DVD - pouze menu ke spuštění částí a výběru zvukové stopy či titulků
- Blu-ray - totéž jako DVD + vykreslování vektorové grafiky přes video s možností reakce na ovladač BR přehráče
- vše distribuovat na DVD nebo Blu-ray
**Řešení 3.**
- napsat si vlastní interaktivní aplikaci v nějakém programovacím jazyce (Java, C++, C#, ...)
- maximální možnost interakce, složitější vývoj
- funguje na pratformách, pro které je přeložena
- videosekvence mohou být součástí aplikace nebo přehrávány z internetu
- vlastní server nebo CDN