Nachbearbeiten digitaler Quellen von Archive.org

Das Internet Archive Archive.org ist um die Langzeitarchivierung digitaler Daten bemüht und bietet seine Archivalien der Öffentlichkeit frei an. So findet man im Internet Archive die digitalen Kopien vieler gescannter Bücher deren Urheberschutz abgelaufen ist. Darunter sind viele Perlen der deutschen Klassiker, aber auch viele naturwissenschaftliche Klassiker wie bspw. Humboldt etc. Die Qualität der angeboten Scans schwankt dabei erheblich, teilweise fehlen ganze Seiten oder sind unleserlich, Gesamtwerke sind nicht immer vollständig. Eine andere Schwäche besteht darin, dass die bereitgestellten PDF- bzw. DJVU-Dateien oftmals durch starke Komprimierung aus den originalen Scandaten erzeugt wurden, weshalb ihre Anzeigequalität gegenüber den Originaldaten teilweise erheblich zurücksteht, was wiederum ihren Gebrauchswert als Ebook schmälert. Zumindest der letztgenannte Mangel kann behoben werden, sofern die originalen Daten zur Verfügung stehen. Was in diesem Fall zu tun ist, um bessere Resultate bei der Erzeugung von DJVU-Dateien zu erhalten, soll im folgenden erläutert werden:

Als Beispiel dient hier der Scan (unter Archive.org) einiger Postkarten mit Kupferstichen von Albrecht Dürer die der Verlag F.A. Ackermann in München herausbrachte. Der eingebettet Betrachter auf Archive.org zeigt die Stiche noch in einer ansprechenden Qualität an, die Überraschung erlebt man erst, wenn man sich eine Kopie als PDF- oder DJVU-File herunterlädt. Die feinen Details der Stiche sind durch die starke Kompression der angebotenen Dateien nicht mehr sichtbar. Glücklicherweise sind auf Archive.org in der Regel auch die Originaldaten der Scans vorhanden, gebündelt in einem TAR-Archiv tragen sie die Endung ..._orig_jp2.tar. Bei diesen Daten handelt es sich jedoch um die unbeschnittenen Daten, auch sind die Bilder in ihrer Lage noch nicht korrigiert. Die beschnittenen und ordentlich orientierten Bilder liegen oft in einem ZIP-Archiv mit der Endung ..._jp2.zip vor – falls nicht, muss man sich selbst an die Arbeit machen.

In unserem Beispiel mit Dürers Kupferstichen liegt jedoch das entsprechende ZIP-Archiv vor. Die JPEG-2000-Dateien des ZIP-Archivs müssen nun zuerst in ein etwas konventionelleres Format überführt werden, prinzipiell sollte man natürlich ein verlustfreies Format wählen, um keine weiteren Details zu verlieren. Ich benutze hier j2k_to_image aus der openjpeg-Suite. Anschließend sollte man die Bilder noch etwas nachschärfen, dazu benutze ich das Kommandozeilentool ImageMagick. Zum schärfen wird die Methode der unscharfen Maskierung (unsharp mask) eingesetzt, um Farbartefakte zu vermeiden wird das Bild vorher in den HSI-Farbraum zerlegt, von den Komponenten Hue, Saturation und Value (oder Intensität) wird nur die letztere, also das Bild mit der Intensität geschärft. Anschließend führt man die drei Komponenten wieder in ein einziges Bild im sRGB-Farbraum zusammen. Nun können die Bilder einzeln in ein DJVU-File überführt werden. Dabei sollte man auf eine Vorgabe der Qualität durch die Optionen -percent oder -decibel verzichten. Natürlich sind die DJVU-Dateien in der Regel deutlich größer als die auf Archive.org liegenden, sie haben aber auch eine deutlich höhere Qualität und letztlich zählt ja vor allem diese (Speicher wird ohnehin immer billiger).

Im folgenden Bild (Ausschnitt aus Dürers St. Christophorus) wurde zum Vergleich einmal ein Bildausschnitt aus dem ursprünglich heruntergeladenen PDF-File (links), dem nachgeschärften Bild aus dem ZIP-Archiv (rechts) gegenübergestellt. Die fein aufgelösten Strukturen des Stichs im rechten Bild rechtfertigen den Aufwand:

Vergleich

Das folgende Shell-Skript erledigt nun die vorher besprochenen Schritte:

# Konvertiere JPEG2000 nach PPM (kompl. Verzeichnis):
j2k_to_image -ImgDir . -OutFor ppm
# 
for i in `ls -1 *.ppm`;
do
# Separiere jedes Bild in H-, S- und I-Bestandteile 
convert $i -colorspace HSI -separate separate_HSI_%d.ppm
# Schärfe die I-Komponente
mogrify -unsharp 1.2x1.2+5+0 separate_HSI_2.ppm
# Führe die HSI-Bestandteile wieder in einem sRGB-File zusammen
convert separate_HSI_?.ppm  -set colorspace HSI -combine -colorspace sRGB $i
# Räume auf
rm separate_HSI_?.ppm
# Erzeuge ein DJVU-File
c44 $i $i.djvu
done
# Erzeuge einen DJVU-Container für alle Seiten
djvm -c dürer.djvu *.ppm.djvu