digitalizace / digivpraxi

Problémy, podivnosti, a hlavně BEST PRACTICES digi v knihovnách
0 stars 0 forks source link

alternativy Kakadu #6

Open bezverec opened 2 months ago

bezverec commented 2 months ago

Malý průzkum. Zajímalo by mě, jestli někdo aktivně používá něco jiného na konverzi skenů do formátu JPEG2000. U nás je to taky Kakadu, tuším ve verzi 7.8., demoverze. CLI na Linuxu, konverzi a OCR Tesseract spouštíme před importem do ProArcu přes náš vlastní skript.

Je to téma, které bych případně rád otevřel na nadcházející schůzce ke standardům NDK, ale vlastně nevím, jestli to téma k otevření je. Mám za to, že Kakadu (v nějaké implementaci) je v knihovnách standard, ale je to jen moje domněnka.

My jinak na konverze mimo JPEG2000 rádi používáme ImageMagick, ale nemáme otestované, jestli by to bylo validní i podle NDK JPEG2000 profilů. Pokud ano, zvažovali bychom opuštění Kakadu. ChatGPT 3.5 mi příkazy z Kakadu do ImageMagick syntaxe převedlo takto. Nevím, jestli je to správně :)

Archivní kopie (Archival Copy) convert example.tif -compress JPEG2000 -define jp2:tile-width=4096 -define jp2:tile-height=4096 -define jp2:rate=1 -define jp2:quality=100 -define jp2:numresolutions=5 -define jp2:cblkwidth=64 -define jp2:cblkheight=64 -define jp2:mode=real -define jp2:code-block-size=64x64 -define jp2:epc=t -define jp2:sop=t -define jp2:eph=t example.jp2

Zpřístupňující kopie (Production Master Copy) Kompresní poměr 1:8 convert example.tif -compress JPEG2000 -define jp2:tile-width=1024 -define jp2:tile-height=1024 -define jp2:rate=3 -define jp2:quality=100 -define jp2:numresolutions=5 -define jp2:cblkwidth=64 -define jp2:cblkheight=64 -define jp2:mode=real -define jp2:code-block-size=64x64 -define jp2:layers=12 -define jp2:mode=bypass example.jp2

Kompresní poměr 1:10 convert example.tif -compress JPEG2000 -define jp2:tile-width=1024 -define jp2:tile-height=1024 -define jp2:rate=2.4 -define jp2:quality=100 -define jp2:numresolutions=5 -define jp2:cblkwidth=64 -define jp2:cblkheight=64 -define jp2:mode=real -define jp2:code-block-size=64x64 -define jp2:layers=12 -define jp2:mode=bypass example.jp2

Kompresní poměr 1:20 convert example.tif -compress JPEG2000 -define jp2:tile-width=1024 -define jp2:tile-height=1024 -define jp2:rate=1.2 -define jp2:quality=100 -define jp2:numresolutions=5 -define jp2:cblkwidth=64 -define jp2:cblkheight=64 -define jp2:mode=real -define jp2:code-block-size=64x64 -define jp2:layers=12 -define jp2:mode=bypass example.jp2

Kompresní poměr 1:30 convert example.tif -compress JPEG2000 -define jp2:tile-width=1024 -define jp2:tile-height=1024 -define jp2:rate=0.8 -define jp2:quality=100 -define jp2:numresolutions=5 -define jp2:cblkwidth=64 -define jp2:cblkheight=64 -define jp2:mode=real -define jp2:code-block-size=64x64 -define jp2:layers=12 -define jp2:mode=bypass example.jp2

Připomínám i teď už starší článek: https://knihovnarevue.nkp.cz/archiv/2018-1/recenzovane-prispevky/jpeg-2000-jako-archivni-format-obrazovych-dat https://knihovnarevue.nkp.cz/archiv/dokumenty/2018-1/ostrakova.pdf

filak commented 2 months ago

Už roky používáme OpenJPEG - parametry konverze:

MC

  opj_compress -i a.tif -o a_mc_opj.jp2 -p RPCL -t "4096,4096" -c "[256,256],[256,256],[128,128]" -SOP -EPH -TP R -M 1 -I -threads ALL_CPUS

UC

 opj_compress -i a.tif -o a_uc_opj.jp2 -p RPCL -t "1024,1024" -c "[256,256],[256,256],[128,128]" -SOP -EPH -TP R -M 1 -r 20 -threads ALL_CPUS

Pro úplnost KDU parametry konverze:

MC

 kdu_compress -i a.tif -o a_mc_kdu.jp2 "Cblk={64,64}" Corder=RPCL "Stiles={4096,4096}" "Cprecincts={256,256},{256,256},{128,128}" ORGtparts=R Clayers=1 Clevels=5 "Cmodes={BYPASS}" "Cuse_sop=yes" "Cuse_eph=yes" "Creversible=yes"

UC

 kdu_compress -i a.tif -o a_uc_kdu.jp2 "Cblk={64,64}" Corder=RPCL "Stiles={1024,1024}" "Cprecincts={256,256},{256,256},{128,128}" ORGtparts=R -rate 1.2 Clayers=12 Clevels=5 "Cmodes={BYPASS}" "Cuse_sop=yes" "Cuse_eph=yes"
bezverec commented 2 months ago

@filak super, díky moc! :) Určitě vyzkoušíme.

bezverec commented 2 months ago

Když už se tohle řeší (děkuju), doplním ještě tedy nejvíce známé kodeky/knihovny/software.

Také doplním kontext. My neradi spoléháme na proprietární software, pokud to není třeba z důvodu kvality, jednoduchosti obsluhy, nebo podpory vyloženě nutné - a někdy to nutné je. Kdo zaznamenal novou licenční politiku Broadcomu po akvizici hypervizoru VMware, může (ale nemusí) mít další argument proč na proprietární software nespoléhat. Zdá se mi rozumné mít po ruce nějakou ověřenou zálohu s příjemnější licencí. A protože pro nás je sice snadné zařadit do linky jiný konvertor, není pro nás triviální mít jistotu, že vyprodukujeme NDK validní soubory. No a protože má Národní knihovna brainpower a know-how, chtěl jsem navrhnout, jestli by nezvážila ke Kakadu přidat do standardu (na web) i alternativu i se správnými parametry. V článku N. Ostráková koneckonců psala

Obrazy ve formátu JP2, které nyní Národní knihovna ČR archivuje, byly vytvořeny pomocí nástrojů Kakadu a OpenJPEG. Oba uvedené nástroje dokáží vytvořit soubory JP2 dle profilů NDK.

Přijde mi, že by to i ostatním institucím mohlo pomoct.