djvutool
Shellový nástroj djvutool, jsem vytvořil v létě 2015, původně proto, že mne zajímalo, jaký efekt bude mít na velikost a kvalitu obrazu výsledného DjVu souboru použití algoritmů, které nabízí při generování masky nástroj didjvu.
Nicméně jsem šel ještě dál a integroval do něj funkcionality, které mi zjednodušily práci jak s DjVu soubory, tak se soubory s nimiž se pracuje při korektuře obsahu.
Je to skript pro Bourne shell (bash), co využívá nástroje z DjVuLibre, didjvu, ocrodjvu a jiné, pro vytváření DjVu souborů a zpracování jejich textové i metadatové vrstvy.
https://github.com/velwant/djvutool
Použití
Volby
- -t|--test
- Při použití parametru
--test
se v případě, kdy je použit rovněž parametr--alg
, přidá do názvu výsledného DjVu souboru také řetězec s názvem algoritmu. Lze tedy otestovat, který z algoritmů vydá nejlepší výsledek a ten následně aplikovat na ostatní stránky téhož typu. Viz ukázkový příklad použití…
Příklady použití
Využití volby --test
Nejprve vyrobím referenční DjVu soubor, kde bude pouze pozadí:
$ c44 005-orig.jpg 005-orig.djvu $ ls -Ss1pq --block-size=1 005-orig* 1265664 005-orig.jpg 446464 005-orig.djvu
$ djvutool --test 005.jpg export djvu 1 $ djvutool --test --alg niblack 005.jpg export djvu 1 $ … $ stat --printf="%s\t%n\n" 005* | sort -n 36450 005b.jpg.djvu.djvu – jednobarevné popředí 36474 005b.jpg.djvu 36486 005b.jpg.white-rohrer.djvu 42207 005c.jpg.djvu.djvu – nejvěrnější podání 42235 005c.jpg.djvu 42239 005c.jpg.otsu.djvu 42337 005c.jpg.tsai.djvu 42666 005c.jpg.sauvola.djvu 43183 005.jpg.djvu 43214 005c.jpg.niblack.djvu 43219 005.jpg.sauvola.djvu 43309 005.djvu – bez vrstvy popředí 43536 005.jpg.tsai.djvu 43537 005.jpg.djvu.djvu 43750 005.jpg.niblack.djvu 43752 005.jpg.otsu.djvu 51154 005c.jpg.shading-subtraction.djvu 51356 005.jpg.white-rohrer.djvu 53140 005.jpg.shading-subtraction.djvu 75503 005c.jpg.bernsen.djvu 82638 005.jpg.bernsen.djvu 91288 005c.jpg.brink.djvu 99888 005.jpg.brink.djvu 324199 005c.jpg.white-rohrer.djvu 442428 005-orig.djvu – bez oddělené vrstvy popředí 1155603 005.jpg – originál bez pozadí 1263423 005-orig.jpg – originál 1330890 005c.jpg – věrné podání 1745783 005b.jpg – jednobarevné popředí
V tomto konkrétním případě šlo o test, jaký bude mít vliv aplikace generického barevného pozadí stránky. Výsledky zcela jasně ukázaly, že při aplikaci generického pozadí sice bude o pár bajtů lepší výsledek, použije-li djvutool didjvu s aplikovaným algoritmem djvu
, ovšem bez vyžití didjvu, jen s použitím utilit z balíku Netpbm se vygeneruje výsledek srovnatelný a rychleji.
- Nejhůř ve srovnání se vstupními daty v JPEG formátu vychází komprese do jedné vrstvy pozadí. Výsledný soubor
souboru 005-orig.djvu
je bez vrstvy pozadí, kterou lze využít k OCR, bude jen 2.85x menší než vstupní souborsouboru 005-orig.jpg
- Nejlepší komprese (34.66x menšího souboru) lze dosáhnout, když nahradíme barevné popředí, jednou barvou (konvertován byl obrázek
005b.jpg
) – to můžeme použít v případě, že zpracovávaný dokument pracuje se dvěma kontrastními barvami. - Ale nejvěrnější výsledek zpracování bude, když vytáhneme pomocí černobílé masky originální barevné popředí, sloučíme ho s generickým pozadím a teprve výsledný obrázkem zkonvertujeme do DjVu (obrázek
005c.jpg
). A kompresní poměr bude „horší” jen o 4.72% (~30x menší soubor)