English version is available here.
JENIFFER steht für Java Enhanced Nef Image File Format EditoR. Version 2 benutzt stattdessen das Adobe-lizensierte DNG-Format mit offener Spezifikation als Input (NEF ist das proprietäre Format von Nikon).
Jeniffer2 is Open Source Software zur Entwicklung von DNG-Dateien zu TIFF, JPEG oder PNG und bietet eine große Auswahl an Demosaicing-Algorithmen. Es können außerdem Metadaten ausgelesen und die Ergebnisbilder verschiedener Algorithmen verglichen werden.
JENIFFER2 ist Open Source Software, der Quellcode liegt auf GitHub!
Momentan stellen wir 4 ausführbare Dateien zur Verfügung:
jeniffer2-linux-x64.bin
für Linux-Rechner mit Intel- oder AMD-Prozessorenjeniffer2-windows-x64.exe
für Windows-Rechner mit Intel- oder AMD-Prozessorenjeniffer2-mac-x64.bin
für Apple-Rechner mit Intel-Prozessorenjeniffer2-mac-aarch64.bin
für Apple-Rechner mit aarch64 (Apple Silicon) (experimentell, im Zweifelsfall muss JAR verwendet werden)
Für andere Distributionen oder 32-Bit-Systeme müssen Sie im Quellcode selbst die Plattform-Spezifischen Teile der Abhängigkeiten hinzufügen und Jeniffer2 selbst kompilieren.
Die Jar-Distribution (jeniffer2.jar
, jeniffer2-cli.jar
) benötigt eine Java Laufzeitumgebung (JRE) der Version 17 oder höher.
Sie können die Version ihrer aktuellen Java Laufzeitumgebung testen, indem sie
ein Teminal (MacOS/Linux) oder eine Eingabeaufforderung (Windows) öffnen und
java -version
eingeben. Die meisten Linux-Distributionen sollten Java bereits
installiert haben.
Wir empfehlen die Verwendung des OpenJDK JREs:
- Auf Linux sollten die meisten Distributionen das Paket
openjdk-17-jre
oderopenjdk-19-jre
in den Standard-Paketquellen haben, auf einem Debian-basierten Linux kann die Installation also übersudo apt-get install openjdk-17-jre
erfolgen. - Eclipse Temurin stellt Ausführbare Installer für alle Betriebssysteme zur Verfügung (Anleitung Windows, Anleitung MacOS, Anleitung Linux)
Wenn Sie Windows verwenden, sollten Sie darauf achten, die Option JAVA_HOME
Umgebungsvariable anpassen auszuwählen. Nur so können Sie Java von der Eingabeaufforderung aus starten und dabei Konfigurationsoptionen wie den verfügbaren Arbeitsspeicher anpassen.
Die meisten proprietären RAW-Formate können entweder mithilfe des Adobe DNG Converters (läuft nur auf Windows und MacOS) oder einem Online-Tool wie diesem in das DNG-Format konvertiert werden.
Wie man Jeniffer2 auführt, hängt vom Format und Betriebssystem ab:
Die Standalone-Binaries können Sie einfach durch Doppelklicken ausführen (auf MacOS/Linux müssen Sie vorher evtl die Datei noch ausführbar machen mit chmod +x
).
Um die Zeitmessungen und Debug-Output zu sehen, können sie auch aus
einem Terminal/Eingabeaufforderung ausgeführt werden.
Bekannte Probleme:
- Wenn auf Windows ein Fehler der Art
Error: Custom ( kind: Other, error: StringError("no tarball found inside binary") )
erscheint, sind eventuell die Überreste eines fehlgeschlagenen vorherigen Versuchs, Hilfsdateien zu entpacken, schuld. Wenn Sie in den OrdnerC -> Users -> <Username> -> AppData -> Local
navigieren (versteckter Ordner, die Einstellung, versteckte Ordner anzuzeigen, befindet sich im Windows Explorer im Tab "Ansicht"), können Sie den Ordnerwarp
löschen und es nochmal versuchen.
Um das Java-Archiv auszuführen, müssen Sie ein Terminal/eine Eingabeaufforderung in dem Ordner, in dem Sie die Datei gespeichert haben, öffnen, und den folgenden Befehl ausführen:
# auf Linux und Windows
java -jar jeniffer2.jar
# auf MacOS
java -XstartOnFirstThread -jar jeniffer2.jar
Für mehr Informationen zur CLI (Kommandozeilenversion), schauen Sie in die eingebaute Hilfe:
java -jar jeniffer2-cli.jar --help
Manche Laptops haben eine energiesparende und eine leistungsstarke
Grafikkarte eingebaut, und das Betriebssystem entscheidet anhand
verschiedener Kriterien, welche verwendet wird. Wenn beim Test der
auf der GPU implementierten Algorithmen ein Fehler angezeigt wird,
und sich in der Konsole der Fehlertext OpenGL Error 1285
(kein Grafikspeicher mehr) befindet,
wird vermutlich die falsche, schwächere Grafikkarte verwendet.
Auf Windows kann für jede Anwendung explizit eingestellt werden, welche
Grafikkarte verwendet wird: Unter Einstellungen -> Grafikeinstellungen
muss man die Einstellung "Desktop App" auswählen
und dann die Java-Binary der verwendeten Laufzeitumgebung auswählen.
Das ist vermutlich irgendwo im C:\Users\IHR_NAME\AppData
-Ordner,
also muss im Explorer im Tab "Ansicht" die Option eingestellt sein,
versteckte Dateien anzuzeigen. Für die Standalone Binary ist der Pfad
C:\Users\IHR_NAME\AppData\Local\warp\packages\jeniffer2-windows-x64.exe\jre\bin\java.exe
.
Java-Programme haben eine festgelegt maximale RAM-Belegung (Heap Size), der Standardwert auf Ihrem System ist möglicherweise zu gering. Um Jeniffer2 die Belegung von mehr Arbeitsspeicher zu ermöglichen, können Sie beim Programmstart explizit ein Maximum setzen, z.B. so:
java -Xmx8192M -jar Jeniffer2.1.jar
für 8GB oder so:
java -Xmx4096M -jar Jeniffer2.1.jar
für 4GB. Setzen Sie diesen Wert niemals auf die Menge des im System verbauten RAMs! Andere Programme und vor allem Ihr Betriebssystem benötigen ebenfalls Arbeitsspeicher, um zu funktionieren.
Jeniffer2 schreibt eine versteckte Datei namens folderSave
in den Ordner, in dem
es ausgeführt wird. Hier wird der zuletzt in der Baumansicht ausgeklappte Ordner
gespeichert, um diesen beim nächsten Öffnen wieder auszuklappen.
Jeniffer2 erstellt einen Ordner namens jeniffer2-logs
in dem Ordner, in dem es
aufgerufen wird. Hier werden Systeminformationen und Ausführungszeiten einzelner
Verarbeitungsschritte im CSV-Format gespeichert.
Sie können diese Dateien gerne mit einem Text-Editor, Python, R, Excel usw. öffnen,
wenn Sie neugierig sind. Im Code Repository gibt es Skripte, die Performanz und Akkuratheit testen und
Diagramme zeichnen!
Jeniffer2 wird unter der Leitung von Prof. Thomas Walter an der Uni Tübingen entwickelt.
Credits gehen an:
- Eugen Ljavin
- Joachim Groß
- Michael Kessler
- Claudia Grosch
- Andreas Reiter
- Florian Kellner
Alle Rechte am Adobe DNG Standard gehören Adobe, Inc.
Der Quellcode von Jeniffer2 ist unter der GPLv3 lizensiert, der volle Lizenztext sowie der Quellcode befinden sich im Code Repository.