Napsal: 11 čer 2012, 08:44
Další nicneříkající článek o JPEG. Už když napsal, že JPEG se objevil na začátku 80. let...
Je sice pravda, že ve specifikaci je popsána možnost vypočítat kvantizační tabulku z Q-factoru, stejně jako můžeš používat defaultní tabulku uvedenou tamtéž, ale také je tam napsáno, že to dělat nemusíš, a tabulku můžeš vzít kde chceš, stejně musí být v souboru vložena.
PC01: Uchovávat originál je zlaté pravidlo každého zaznamenávání!
Mnohé foťáky umožňují ukládat data ve formátu, kterému se všeobecně říká RAW, údajně by to měla být surová data ze smímače, je otázka jestli snad nejsou komprimována alespoň nějak bezeztrátově, ale rozhodně to není JPEG, a někdy je ten soubor i menší, než jaký by ho ten foťák vytvořil v JPEG.
To, s jakou "qvuvalitou" byl ten soubor komprimovám zjistíš z kvantizačních tabulek, které začínají markerem FFDB, protože ty mají (při daném způsobu DCT) největší vliv na ztrátovost komprese (=zaokrouhlovací chybu).
Například IrfanView nastavený na "75" má tabulky:
08 06 06 07 06 05 08 07 07 07 09 09 08 0A 0C 14 0D 0C 0B 0B 0C 19 12 13 0F 14 1D 1A 1F 1E 1D 1A 1C 1C 20 24 2E 27 20 22 2C 23 1C 1C 28 37 29 2C 30 31 34 34 34 1F 27 39 3D 38 32 3C 2E 33 34 32
a
09 09 09 0C 0B 0C 18 0D 0D 18 32 21 1C 21 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32
Pak samozřejmě záleží na tom, jestli je to Baseline DCT (podle markeru FFC0) nebo Progressive DCT (podle markeru FFC2), nebo jiná varianta JPEG.
Tabulky definující Huffmanovy kódy (začínají FFC4) mají význam pro bezeztrátovou část komprese. Většina programů a prakticky všechny foťáky si to usnadňují tím, že použijí defaultní tabulky, a o to nižší komprese dosáhnou. Zrovna IrfanView, zdá se, používá optimalizované Huffmanovo kódování, to znamená že během komprimace vypracuje každému obrázku takový kód, se kterým dosáhne nejlepší kódování pro daný obrázek.
Vlastně jsem se algoritmem JPEG začal původně zabývat právě proto, že mám averzi k jeho ztrátovosti a zanechávání fragmentů, prostě abych poznal nepřítele.
Je sice pravda, že ve specifikaci je popsána možnost vypočítat kvantizační tabulku z Q-factoru, stejně jako můžeš používat defaultní tabulku uvedenou tamtéž, ale také je tam napsáno, že to dělat nemusíš, a tabulku můžeš vzít kde chceš, stejně musí být v souboru vložena.
PC01: Uchovávat originál je zlaté pravidlo každého zaznamenávání!
Mnohé foťáky umožňují ukládat data ve formátu, kterému se všeobecně říká RAW, údajně by to měla být surová data ze smímače, je otázka jestli snad nejsou komprimována alespoň nějak bezeztrátově, ale rozhodně to není JPEG, a někdy je ten soubor i menší, než jaký by ho ten foťák vytvořil v JPEG.
To, s jakou "qvuvalitou" byl ten soubor komprimovám zjistíš z kvantizačních tabulek, které začínají markerem FFDB, protože ty mají (při daném způsobu DCT) největší vliv na ztrátovost komprese (=zaokrouhlovací chybu).
Například IrfanView nastavený na "75" má tabulky:
08 06 06 07 06 05 08 07 07 07 09 09 08 0A 0C 14 0D 0C 0B 0B 0C 19 12 13 0F 14 1D 1A 1F 1E 1D 1A 1C 1C 20 24 2E 27 20 22 2C 23 1C 1C 28 37 29 2C 30 31 34 34 34 1F 27 39 3D 38 32 3C 2E 33 34 32
a
09 09 09 0C 0B 0C 18 0D 0D 18 32 21 1C 21 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32
Pak samozřejmě záleží na tom, jestli je to Baseline DCT (podle markeru FFC0) nebo Progressive DCT (podle markeru FFC2), nebo jiná varianta JPEG.
Tabulky definující Huffmanovy kódy (začínají FFC4) mají význam pro bezeztrátovou část komprese. Většina programů a prakticky všechny foťáky si to usnadňují tím, že použijí defaultní tabulky, a o to nižší komprese dosáhnou. Zrovna IrfanView, zdá se, používá optimalizované Huffmanovo kódování, to znamená že během komprimace vypracuje každému obrázku takový kód, se kterým dosáhne nejlepší kódování pro daný obrázek.
Vlastně jsem se algoritmem JPEG začal původně zabývat právě proto, že mám averzi k jeho ztrátovosti a zanechávání fragmentů, prostě abych poznal nepřítele.