Hlavní navigace

MAC OS X je taky unix (5): Multimediální technologie

2. 6. 2005
Doba čtení: 5 minut

Sdílet

Dnešním dílem se dotkneme oblasti, ve které Macy již tradičně vynikají a ke které jsou nejlépe uzpůsobené; bude řeč o multimediálních technologiích. Podíváme se na některé důležité základní služby pro zpracování obrazu, zvuku a videa a ukážeme si, že Mac OS s přechodem od tradičních Finder systémů k Unixu neztratil nic ze své multimediální síly. Jaké technologie tedy dnes uvidíte? Začneme zpracováním multimédií na úrovni zajímavé pro programátory, tedy technologiemi CoreAudio, OpenAL, CoreImage&CoreVideo a QuickTime.

Zvuk

Ještě než se pustíme do rozboru grafické síly Mac OS X, rád bych se zastavil u neméně kvalitního zvukového podsystému. Když vynecháme drobnosti, zůstanou nám v rukou tři robustní frameworky pro nahrávání, přehrávání a úpravu zvuku, a na ty se teď postupně podíváme:

CoreAudio

CoreAudio je nejsilnější a nejvíce nízkoúrovňová zvuková knihovna v Mac OS X. Stojí přibližně na stejné úrovni jako linuxový OSS nebo ALSA, ale nabízí jednoduše přístupné API i pro vysokoúrovňové aplikace (ačkoliv ty většinou používají QuickTime). Kromě standardních vstupních, výstupních a mixovacích funkcí umí CoreAudio perfektně syntetizovat MIDI, vytvářet abstraktní zařízení (MIDI, duplikáty zvukové karty pro náročné aplikace apod…) a samozřejmě pracovat s neomezeným počtem kanálů. Podpora zařízení je perfektní; ať už se jedná o mikrofon připojený přes FireWire, nebo klávesy na USB, CoreAudio je rozezná a automaticky zkonfiguruje, přiřadí abstraktní zařízení a připraví k práci. Celé pracuje v 64bitovém formátu dat, takže neklade prakticky žádná omezení na velikost a kvalitu záznamu, které byste mohli překonat s hardware příštích sto let. Latence i výkon jsou prvotřídní a i slabší stroje stíhají bez problémů v reálném čase pracovat s mnoha vnějšími zařízeními (elektrická kytara je jedním z mnoha příkladů). CoreAudio je rozšiřitelné pomocí systému tzv. Audio Units, kterých v základu obsahuje celou řadu a kterých se dá ještě více stáhnout nebo dokoupit. Audio Unit může být prakticky cokoliv, od krátkého zvuku pro syntetizátor MIDI až po stream server pro TCP/IP. Samozřejmě je CoreAudio jako součást systému plně optimalizováno pro Velocity Engine (AlviTec) a pracuje s plovoucí desetinnou čárkou.

OpenAL

Tato obecně známá multiplatformní open source zvuková knihovna si svou cestu do Mac OS X našla až v zatím poslední verzi 10.4 Tiger. Ačkoliv i dříve nebyl problém OpenAL na Mac OS X nainstalovat (koneckonců, Mac OS X je taky Unix:), teprve nyní je obsažen v základním systému, a je tedy snadno přístupný jako kvalitní alternativa k API CoreAudio nebo QuickTime. OpenAL poskytuje, stejně jako na jiných systémech, přístup ke zvukovému systému pomocí jednoduchého, rychlého a hlavně přenositelného API, a stává se tak jakýmsi OpenGL v oblasti zvuku. Zatímco na ostatních BSD systémech pracuje OpenAL se zvukovou kartou přímo, na Mac OS X, podobně jako na Linuxu, používá systémové knihovny, tedy CoreAudio. Tento framework je většinou nejvhodnější volbou pro více-platformní projekty, hry a aplikace pracující s prostorovým zvukem, ale rozhodně se nehodí na příliš vysokoúrovňové záležitosti.

QuickTime

Ačkoliv si většina lidí myslí opak, QuickTime není jenom skvělý (alespoň na Mac OS a ve verzi 7 PRO :)) přehrávač videa, ale také poměrně robustní a univerzální knihovna a framework. Kromě té výraznější části sloužící k přehrávání videa obsahuje QuickTime ještě rozsáhlý výběr funkcí pro práci se zvukem. Většinou když v Mac OS pustíte MP3, MIDI nebo OGG a nepoužíváte zrovna MPlayer, slyšíte výstup z QuickTime; používají ho například iTunes, QuickTime Player, DVD Player a jiné. Toto API poskytuje jednoduchý a vysokoúrovňový přístup prakticky k veškeré funkcionalitě Core Audia, jako např. syntéze zvuku nebo přehrávání MIDI. Navíc obsahuje sadu kodeků a rozhraní pro plug-iny; tak se například dá doinstalovat podpora OGG. QuickTime podporuje široké spektrum formátů a kodeků, umí streamovat oběma směry i nahrávat zvuk z vnějších zařízení. Je tedy vidět, že co se audia týče, je QuickTime zcela kompletní API a nepostrádá prakticky žádnou funkcionalitu, snad kromě podpory některých exotičtějších kodeků (Vorbis & spol.).

Obraz

Samozřejmě, zpracování obrazu je první věc, která vás na Mac OS X upoutá: vše je v PDF formátu, po celém systému funguje OpenGL akcelerace s 32bitovou přesností, alpha kanály a vektory. Systém vývojářům i uživatelům na všech úrovních poskytuje robustní, transparentní a především rychlé grafické nástroje, na které se teď postupně podíváme.

CoreImage&CoreVideo

Podobně jako CoreAudio poskytuje snadný přístup ke zvukovým zařízením, slouží dvojice frameworků CoreImage a CoreVideo ke snadnému a rychlému zpracování obrazu. Obě technologie poskytují stejný rozsah funkcionality, jsou snadno přístupné přes QuickTime a Cocoa a dosahují neobvykle rychlých a přesných výsledků. CoreImage je aplikovatelné vždy na jeden obrázek, zatímco CoreVideo pracuje stejným způsobem s řadou snímků za sebou, tedy s videem. CoreImage umí ořezávát, přebarvovat či prolínat obrazy, obsahuje rozsáhlou sadu filtrů jako rozmazávání nebo nasvicování obrazu, a protože je optimalizováno pro Velocity Engine a používá GPU grafické karty, dosahuje vysoké přesnosti v plovoucí desetinné čárce, způsobuje minimální ztrátu kvality obrazu a funguje úžasně rychle. Stejně jako CoreAudio pracují i tyto technologie na bázi tzv. Image Units, což opět může prakticky cokoliv, od rastrového vzorku až po plug-in s novými filtry. Core Image a Core Video jsou v systému zahrnuty od verze 10.4 Tiger a pro svou funkčnost vyžadují grafickou kartu s nejméně 64 MB video paměti a s podporou programovatelných pipelines. Pokud taková karta v systému není, CoreImage efekty se jednoduše nezobrazí a jsou nahrazeny graficky a výpočetně jednodušší verzí, nebo nejsou zobrazeny vůbec.

DT24

Opět QuickTime

I z pohledu zpracování obrazu a videa je QuickTime skvělá a především kompletní knihovna s podporou řady formátů videa i obrázků, optimalizací pro Velocity Engine a rozhraním pro plug-iny. Od verze systému 10.4 Qu­ickTime zastřešuje frameworky CoreImage a CoreVideo, jakož i CoreAudio, OpenGL a jiné. Má podporu interaktivních videí, pravděpodobně nejlepší streamování na trhu a vývojářům poskytuje ideální rozhraní pro přístup k nízkoúrovňovým technologiím. Na QuickTime ještě narazíme několikrát během probírání dalších multimediálních technologií a nakonec se na něj ještě jednou podíváme vcelku jako na robustní víceúčelový framework.

Dnešním dílem výčet multimediálních frameworků v Mac OS X zdaleka nekončí – příště se konečně podrobně podíváme na implementaci OpenGL, Quartz Composer, Quartz 2D a s tím spojenou správu barev pomocí ColorSync a na PDF podsystém.

Byl pro vás článek přínosný?