c44 (DjVuLibre)
Tento DjVuPhoto enkodér do formátu IW44 slouží ke kompresi obrazové informace. Mezi hlavní cíle sledované při návrhu DjVu, patřilo nejenom dosažení vysokého kompresního poměru, ale také plynulé zobrazování velkých obrázků i na strojích s omezeným množstvím paměti. Formát IW44 proto používá wavelet koeficienty, které se průběžně aktualizují během dekódování obrazu. Díky nim může prohlížeč rychle poskytnutout libovolnou část obrazu, bez zdlouhavého přepočítávání.
Dekódování obrazu a přepočet těchto koeficientů probíhá při zobrazování souběžně, proto hodně záleží na tom, jak byla komprese do IW44 provedena. Při nevhodně zvolených parametrech sice můžeme dosáhnout menší velikosti výstupního souboru, ovšem zaplatíme za to zvýšenými nároky při zpětné interpretaci obrazové informace.
Použití c44
c44 [ volby ] vstupní_soubor [ výstupní_soubor ]
|
Vstupní soubor může být buď ve formátu PGM (portable gray-map) nebo PPM (portable pixmap). Enkodér akceptuje také obrázky komprimované ve formátu JPEG. V takovém případě je však doporučeno používat pouze vysoce kvalitní JPEG soubory (tj. s nízkým kompresním poměrem a v maximální velikosti).
Volby které ovlivňují výslednou kvalitu komprese
Tyto volby lze kombinovat jen v omezené míře. Prioritu má vždy ta, je uvedena naposled |
- -slice
- nastavení počtu řezů na vrstvu. Mezní hodnoty jsou od 1 do 140. DjVuPhoto soubor je logicky složen ze sekvence "řezů" (slices). Ty jsou složeny do vrstev (chunks) a z těchto vrstev se pak postupně renderuje obrázek. Prohlížeč DjVu souborů je díky tomu schopen zobrazit přinejmenším částečně obrázek již po zpracování prvního řezu. Běžná vrstva pozadí u DjVuPhoto souboru obvykle obsahuje celkem 80 až 120 řezů rozdělených do 1 až 4 vrstev.
- Při zpracování přidává c44 jednotlivé řezy do aktuální vrstvy tak dlouho, dokud nedosáhne předem definovaného kritéria. Tímto kritériem může být:
- počet řezů
- velikost souboru nebo
- nastavení celkové kvality.
- Při předávání argumentů pro počet řezů jednotlivých vrstev, se hodnoty od sebe oddělují buď čárkou, nebo znaménkem plus. Při použití plus se použije stejný počet řezů na vrstvu, jako je definován číslem. Je-li použitá čárka, pak musí číslu odpovídat celkový počet řezů na aktuální úrovni
-slice 74+13+10
bude mít stejný efekt jako
-slice 74,87,97
- vrstva bude mít 74 řezů
- vrstva 13 řezů
- vrstva 10 řezů
- Je-li počet řezů (a vrstev) příliš vysoký, narůstá velikost DjVu souboru
- Je-li počet řezů příliš nízký, zůstávají na výsledném obraze viditelné artefakty (rozostření hran, šmouhy v obraze, atp.)
- Je-li většina řezů soustředěna do první vrstvy, pak to má vliv na plynulost prohlížení, protože se obrázky renderují "skokem". Je-li naopak většina řezů soustředěna do následujících vrstev, je při prohlížení pozorovatelné postupné doostření obrazu. Ve většině případů je tedy asi nejjednodušší ponechat rozdělení řezů na automatice. Pouze v případě složitějších obrazů, jako jsou např. velké historické mapy. je asi lepší použít řezů více.
- -size
- nastavení velikosti vrstvy v bajtech ( Barevné řezy jsou do vrstvy přidávány tak dlouho, dokud není dosaženo určené velikosti. )
- -bpp
- nastavení velikosti vrstvy v bitech na pixel ( Dobrý výsledek dává -bpp 0.25,0.5,1 )
- -percent
- specifikace velikosti vrstvy procentuálně vůči celkové velikosti vstupního souboru (Pozor, výsledek se může výrazně lišit v závislosti na použitém formátu vstupního souboru. Nezapomeňte že formáty jako např. JPEG budou před konverzí dekomprimovány )
- -decibel
- Pozor, předcházející hodnota musí být vždy nižší než následující. (Tato volba může výrazně ovlivnit čas komprese)
- -dbfrac
- indikuje že hodnoty, předané parametrem -decibel mohou být vzorek.. ( Tato volba se používá souběžně s volbou -decibel. Je vhodná zvláště při kompresi souborů, které obsahují velké souvislé barevné plochy, např. obrázky s velkým bílým okrajem)
Aplikace masky
- -mask
- předávaným parametrem je cesta k černobílému PBM souboru stejných rozměrů jako je Vstupní soubor.
Maska se používá, pokud chceme komprimovat obrázek jako pozadí a odfiltrovat z něj text či kresbu, která bude ve vrstvě popředí. Každý černý pixel masky říká enkodéru, že hodnota stejného pixelu ve vstupním souboru je nepodstatná. Ten pak nahrazuje tyto odmaskované pixely barvou, která má nejmenšími nároky na enkódování.
Volby, které ovlivní výsledné barevné podání
Barevné podání lze ovlivnit nastavením sytosti barev ( chrominance ) a jasu ( luminance ). Volby které ovlivňují nastavení barev jsou:
- -crcbnone
- při kompresi dojde k zahození barevných složek (zůstane pouze jasová ) výsledný obrázek tak bude ve stupních šedi
- -crcbnormal
- barevné složky obrázku jsou kódované ve stejném poměru jako jasová
- -crcbhalf
- hodnota všech barevných složek je snížena o polovinu jasu
- -crcbfull
- nejvyšší možné nastavení kvality kódování barev ( alternativa k -crcbnormal )
- -crcbdelay
- Volba, jejímž parametrem je číslo, které udává počet řezů u kterých má být zredukována barevná informace (výchozí hodnota je 10), takže hodnota 0 odpovídá volbě -crcbnormal (resp. -crcbfull).
- -gamma
- upravuje nastavení gammy výchozího souboru. Ta by měla odpovídat hodnotě zařízení na kterém bude obrázek zobrazován. Výchozí hodnota, která by měla odpovídat standardnímu monitoru je 2.2
Volby které ovlivní defaultní zobrazení stránky
- -dpi
- Rozlišení v dpi. Může se pohybovat v hodnotách od 25 do 1200 (výchozí hodnota je 100) Určuje v jaké výchozí velikosti bude soubor zobrazovat dekodér