Domácí video III - Formáty pro ukládání
20.12.1999, Emil Pavelka, zpráva
![Domácí video III - Formáty pro ukládání](navstevnost-a-redakce/1/img/website-800.jpg)
AVI, MJPEG, JPEG - s kompresí i bez.
Díl II - zdroje signálu
Z předchozích dvou dílů už přibližně víme, co budeme chtít ukládat, a tak se dnes podíváme na to, v jakém formátu se nám to uložit nabízí.
Sem tam si vystřihneme nějaký ten jednotlivý snímek. Pro tento účel nám vyhoví bitmapové soubory. U bitmapového souboru je každý bod obrazu vyjádřen určitým počtem bitů, v závislosti na počtu barev (například černobílý = 1bit, 256 barev = 8bitů a True color = 24bitů). K těm nejvíce rozšířeným patří formát BMP - přirozená bitmapa pro Windows, TIFF (Tagged Image File Format) je přenositelný mezi platformami PC a Macintosh, a existuje i verze s kompresí. Pro kompresi je ovšem zřejmě nejvíce rozšířen JPEG (Joint Photographics Expert Group). Ten používá komprese pomocí DCT (Discrete Cosine Transformation - dochází k omezení informace o barvě) a dosahuje vysokých kompresních poměrů při zachování přijatelné kvality.
Dobrá, ale my chceme zachytit něco, co se pohybuje. Tak co nás napadne jako první ? Jednoduché, nasnímáme si 25 snímků za sekundu a je to. Něco takového nás nenapadlo jako první. Tohle uměl například AVI (Audio Video Interleaved) již při svém narození ve Windows 3.1.(ovšem 160x120 bodů s patnácti snímky za sekundu). Ale není to ono.
Jak je velký nekomprimovaný bitmapový obrázek o velikosti 704x576 bodů v takzvaných pravých barvách (24 bitů)? Takže 704x576x24/8x25=30412800 bitů. Hmm.. 30 MB za sekundu - 1,8GB za minutu. To bychom asi neměli kam uložit. Když pomineme výslednou velikost (řekneme si, že uložíme na svůj 18GB disk 10 minut videa), pak takový datový tok stejně nezvládneme. Na opravdu dobrý SCSI disk v tomto rozlišení tak v 256 barvách.
Dnes se dá AVI video rozumně zachytávat v rozlišení tak 320x240, 24bit, 25 snímků za sekundu, což představuje datový tok cca 5,76 MB/s (Existují kompresní kodeky – Microsoft Video 1, Cinepak firmy Radius, nebo Intel Indeo. Výsledky u videa však nejsou nijak omračující.). S tím si poradí i solidní IDE disk.
Máme tu ovšem i jiná omezení. V souborovém systému FAT 16 je maximální velikost souboru 2GB (některé systémy to řeší pokračováním v dalším souboru). Od Windows 95 OSR2 je sice možno použít FAT 32, čímž se hranice posune na 8GB, ne každý hardware a software to však povolí.
Ano, zkomprimujeme každý z těch snímků
A máme tu MJPEG (Motion JPEG) Při kompresním poměru 8:1 je výsledek ještě stále velmi pěkný. A z 30MB/s datového toku máme rázem necelé 4MB/s (Komu je to málo nebo moc, ten si může vybrat jiný kompresní poměr. Většinou od 6:1 do 16:1).
To je krása, a jak dobře se nám to bude stříhat, když si můžeme vybírat po jednotlivých snímcích. Bohužel je to třeba podpořit hardwarově na kartě pro zachytávání videa. A kolik výrobců karet, tolik navzájem nepřehratelných MJPEG souborů. A abychom je od sebe opravdu nepoznali, tak budou mít všechny příponu AVI. Takový *.avi soubor, když přinesete k někomu, kdo nemá slučitelnou HW podporu, tak se na nic nepodíváte. Pokud chcete výsledky nahrát na video nic se neděje
My se ale chceme chlubit tím, co jsme vytvořili, a taky si to chceme uchovat v neporušené kvalitě. Začneme tedy pokukovat po něčem lépe standardizovaném. Tím jsou formáty MPEG (Motion Picture Experts Group). Takže se na nějaké podíváme.
MPEG 1 dává pěkné výsledky. Dobrý kompresní poměr, nízký datový tok. Dá se velmi dobře přehrát téměř u kohokoli. Dá se realizovat softwarově. Rozlišení 320x240 (max. 352x240) ovšem všechny nemusí uspokojit.
MPEG 2 - vynikající kvalita obrazu, rozlišení 720x576 (je používán kabelovými televizemi, satelitními televizemi, DVD). Nelze jej přehrát zase až tak na všem , je to ale lepší než MJPEG a budoucnost má růžovou.
To zní nějak moc dobře, v čem je problém? V možnostech střihu.To je zapříčiněno tím, že MPEG nekomprimuje a neukládá každý snímek zvlášť, nýbrž po sekvencích tří typů snímků. I snímky (Intra Pictures) jsou komprimovány obdobně jako MJPEG s možností komprimovat různé části obrazu různým stupněm komprese. P snímky (Predicted Pictures) jsou kódovány s ohledem na nejbližší předcházející I nebo P snímek. B snímky (Bidirectional Pictures) používají jako referenční jak nejbližší předcházející I nebo P snímek, tak i nejbližší následující I nebo P snímek. Celá sekvence potom může vypadat následovně:
I B B P B B P B B P B B P B B P
Protože abychom zrekonstruovali snímek B potřebujeme znát i nejbližší následující I nebo P snímek, MPEG si snímky přeskládá. Datový tok by potom vypadal takto:
I P B B P B B P B B P B B P B B
Střih lze tedy provádět v místech I snímků (počet I a P snímků lze nastavit).
To by snad pro obecné seznámení stačilo. Ještě se zmíníme o Quictktime formátu od Apple, který byl v dřívější době, kdy mu nekonkuroval MPEG velmi zajímavý. Je přenositelný mezi PC a Macintosh platformami, používá kompresi 5:1 až 25:1. Dnes se používá například na CD a pro video streaming - možnost přehrát video ze zdroje po Internetu, průběžně, bez nutnosti je celé nejdříve stáhnout. Tuto možnost nám dává také RealVideo a RealSystem G2, obé od Real Networks a Microsoft NetShow.
Příště se už dostaneme k počítači.