OmaStudio 0.2: 16-Bit-Mittelformat-RAW-Unterstützung und persistente Rust-Daemon-Architektur
Bewertung —OmaStudio wurde mit 48-Bit-RGB-Farbtiefe, einer 16-Bit-verlustfreien Pipeline für Mittelformat-Sensoren mit über 100 MP wie Fujifilm GFX und Hasselblad sowie einer persistenten Rust-Daemon-Architektur aktualisiert, die Live-Bearbeitung mit 60 FPS ermöglicht.

Inhalt
Zusammenfassung: Mit Version 0.2 von OmaStudio werden Bilder durchgängig mit 16 Bit pro Kanal verarbeitet. Der Artikel erklärt, warum der Unterschied zwischen 8 Bit und 16 Bit beim Aufhellen von Schatten deutlich wird, den persistenten Rust-Daemon, der die Datei nicht bei jeder Reglerbewegung neu einliest, die doppelt gepufferte Vorschau über
/dev/shm, die Ausgabe als 16-Bit-TIFF, PNG, JXL und AVIF sowie die neu hinzugefügte Zurücksetzen-Schaltfläche für Filmlooks.
So beeindruckend der Dynamikumfang von Vollformat-Sensoren (35 mm) in der Fotografie auch sein mag; die Welt des Mittelformats (Medium Format) ist eine ganz andere Liga. Die riesigen Sensoren mit über 100 Megapixeln, die Systeme wie die Fujifilm GFX 100 II, GFX 100S, Hasselblad X2D 100C und Phase One erzeugen, bieten eine vollständige 16-Bit-Analog-Digital-Wandlung (ADC) pro Pixel und einen Dynamikumfang von über 15 Blendenstufen.
Viele Bildbearbeitungsprogramme reduzieren diese reichen Daten beim Laden in den Speicher auf 8 Bit (256 Stufen pro Kanal), um die Vorschaugeschwindigkeit zu erhöhen. Wenn Sie jedoch tiefe Schatten aufhellen (+4 EV, +100 Shadows) oder harte Himmelsverläufe retten wollen, brechen die Stufen zwischen den Tönen auf; in den Schatten treten hässliche Farbstreifen (Banding) und Farbabriss (Posterisation) auf.
Mit dem heute veröffentlichten Update OmaStudio 0.2.0 haben wir auf dem Linux-Desktop alle technischen Hürden für Mittelformat- und Studiofotografie beseitigt. OmaStudio verfügt jetzt über eine verlustfreie mathematische Verarbeitungspipeline mit vollen 16 Bit (16 Bit pro Kanal / 48-Bit-RGB) und eine persistente Rust-Daemon-Architektur.
Warum 16 Bit? Der Abgrund zwischen 8 Bit und 16 Bit
Die Helligkeits- und Farbtiefe eines Pixels wird exponentiell durch die Anzahl seiner Bits bestimmt:
- 8 Bit: $2^8 = 256$ Stufen pro Kanal (insgesamt 16,7 Millionen Farben).
- 16 Bit: $2^{16} = 65.536$ Stufen pro Kanal (insgesamt 281 Billionen Farben).
- Vergleich von Schattenrettung und Tonquantisierung: 256-fache Tonpräzision
8-Bit-Verarbeitungspipeline
256 Stufen
Abstufungen und Posterisation
Beim Aufhellen tiefer Schatten (+4 EV) erschöpfen sich die Zwischentöne; statt eines weichen Verlaufs entstehen harte Farbstufen.
- Tonverteilung: [1] … [2] … [3] (grober Schritt) · Farbabriss: · Deutliche Banding-Streifen
16-Bit-lineare Pipeline
65.536 Stufen
Seidig weicher Verlauf (Zero Banding)
Jeder Farbkanal wird mit einer Präzision von 65.536 berechnet; selbst das kleinste Mikrodetail in den Schatten bleibt mit organischer Filmtextur erhalten.
- Tonverteilung: [256] -> [257] -> [258]… · Übergangsqualität: · Hohe Tonpräzision
Gerade in den .RAF-Dateien der Fujifilm-GFX-Serie und den Formaten .3FR / .DNG von Hasselblad sind die in den Schatten verborgenen Informationen unglaublich reichhaltig. Dank der 16-Bit-Verarbeitungsengine:
- Zero Banding: Details, die aus tiefen Schatten hervorgeholt werden, erscheinen in einer natürlichen und organischen Filmtextur, da die Zwischentonstufen weich interpoliert werden.
- Highlight Rolloff (weiche Lichterabstufung): Harte helle Bereiche wie Sonnenuntergänge, Bühnenlicht oder ein weißes Hochzeitskleid werden weich und schrittweise abgestuft statt in einem abrupten Weißausbruch.
- Verlustfreies DaVinci-Farbgrading: Die 3-Way-Lift/Gamma/Gain- und 8-Band-HSL-Regler laufen mathematisch auf Float-Matrizen mit 65.536 Stufen.
Neue Architektur: Persistenter Rust-Engine-Daemon
In der alten Architektur wurde bei jeder Reglerbewegung ein separater Unterprozess (omastudio-engine render) gestartet, und die 112 MB große RAW-Datei musste erneut von der Festplatte gelesen werden. Angesichts der enormen Größe von 16-Bit-Daten war diese Methode nicht haltbar.
Mit OmaStudio 0.2 haben wir das Rückgrat des Systems von Grund auf erneuert:
1. Hot RAM Cache (warmer Speichercache)
Beim Öffnen eines Fotos arbeitet die LibRaw-C-Shim-Schicht im Modus output_bps = 16. Die Rohsensorpixel werden einmal mit hochwertigem AHD/DHT-Demosaicing in den Speicher geladen und im DaemonCache in einem warmen RAM-Puffer gehalten.
2. Doppelt gepufferter (Double-Buffered) Ping-Pong /dev/shm
Die Oberfläche (Quickshell / QML) und die Rust-Engine kommunizieren über /dev/shm, den direkt RAM-basierten gemeinsamen Speicher des Linux-Kernels:
- Die erste Reglerbewegung wird in den Puffer
/dev/shm/omastudio_preview_0.ppmgeschrieben. - Die zweite Bewegung wird in den Puffer
/dev/shm/omastudio_preview_1.ppmgeschrieben. - Die GPU-Textur wird mit 60 FPS ausgetauscht (Swap), ohne dass auch nur ein einziges Pixel auf dem Bildschirm flackert (Zero Flicker).
3. Zeilenbasiertes JSON-RPC-Protokoll
Um beim Schließen des Desktop-Panels keine Zombie-Prozesse im Hintergrund zu hinterlassen, wurde ein zeilenbasiertes JSON-RPC-Protokoll über stdin gemäß den Standards von AGENTS.md eingerichtet (load, adjust, ai_auto, ai_social, save_recipe, exit).
- OmaStudio-Architektur mit persistentem Prozess und gemeinsamem Speicher: 60 FPS /dev/shm IPC
- Schnittstellenebene: GPU-beschleunigtes Wayland-Fenster, Touch-Canvas-Steuerung und Farbkreisel. (Quickshell UI (Qt 6 QML), Zero-Flicker-Textur)
Bidirektionale IPC-Brücke
stdin RPC + /dev/shm
- Anfrage: stdin JSON-RPC: Pixel: /dev/shm Ping-Pong PPM
Keine Disk-G/E-Latenz
- Motor-Ebene: Permanenter Hintergrund-Daemon. Einmaliges LibRaw-Demosaicing, 16-Bit-Warm-RAM-Cache. (omastudio-engine (Rust), Rayon Multithreaded)
Studio-Standard: Echter 16-Bit-Master-Export
Ein Foto am Bildschirm in 16 Bit zu bearbeiten ist ebenso entscheidend wie die 16-Bit-Auslieferung an den Laborabzug oder den Kunden. Die Export-Engine von OmaStudio wurde von Grund auf erneuert:
- 16-Bit TIFF (48-Bit RGB): Verlustfreie TIFF-Ausgabe mit 16 Bit pro Pixel für großformatige Fine-Art-Drucke.
- 16-Bit PNG: PNG mit voller 48-Bit-Farbtiefe für Web und Archivierung.
- 10/12/16-Bit JXL und AVIF: Durch Einspeisung von 16-Bit-Zwischendaten in die Kodierer der nächsten Generation JPEG XL (
cjxl) und AVIF (avifenc) bleiben Wide Color Gamut (WCG) und HDR-Dynamikumfang vollständig erhalten. - Intelligente 8-Bit-Reduktion: Bei herkömmlichen Formaten wie JPEG und WebP wird der Farbraum hingegen sicher in höchster Qualität auf 8 Bit reduziert.
Film Looks & Styles: Reaktiver RESET-Button
Aufgrund des Feedbacks unserer Nutzer wurde in die Kopfzeile des Panels Film Looks & Styles ein intelligenter und reaktiver RESET-Button integriert. Dieser Button, der erscheint, sobald eine Filmsimulation (Fuji Classic Chrome, Velvia 50, Kodak Portra usw.) ausgewählt wird, setzt mit einem einzigen Klick alle Tonkurven und Farbverschiebungen zurück und bringt das Foto auf das ursprüngliche neutrale Profil des Sensors zurück.
Performance-Vergleich (112 MB Fujifilm RAF-Datei)
| Vorgang / Metrik | Alte Version (0.1) | Neue Version (0.2 - 16-Bit-Daemon) | Gewinn / Unterschied |
|---|---|---|---|
| Verarbeitungs-Farbtiefe | 8-Bit (256 Stufen) | 16-Bit (65.536 Stufen) | 256-fache Tonpräzision |
| Qualität der Schattenwiedergewinnung | Farbabstufungen | Null Banding / seidige Übergänge | Großer Dynamikumfang |
| Reaktionszeit der Regler | ~450ms (Festplattenlesen) | 108ms (Rayon im RAM) | 4,5-mal schneller |
| Prozess-Forking | 1 PID pro Reglerbewegung | 0 PID (Ein permanenter Daemon) | Keine CPU-Spitzen |
| Master-Export-Tiefe | 8-Bit TIFF | 16-Bit TIFF (48-Bit RGB) | Professionelle Studio-Auslieferung |
Update und Installation
Um Ihre bestehende OmaStudio-Installation zu aktualisieren, genügt es, das Repository zu pullen und zu kompilieren:
git pull origin master
cargo build --release --locked
install -m 755 target/release/omastudio-engine ~/.local/bin/
omastudio
Wir freuen uns, der Mittelformat-RAW-Bearbeitung in der Open-Source-Welt die Performance und Farbfülle zu verleihen, die sie verdient.
- GitHub: github.com/ozdil/omarchy-omastudio
- Lizenz: MIT License
Meine Einschätzung
- Mittelformat-Daten brauchen 16 Bit: Eine auf 8 Bit reduzierte Vorschau erzeugt Abstufungen, wenn die Schatten aufgehellt werden.
- Die Datei einmal zu öffnen genügt: Das RAW wird einmal in den Speicher geladen, spätere Anpassungen werden nur neu berechnet.
- Auch die Auslieferung muss 16 Bit sein: Für Druck und Archiv gibt es 16-Bit TIFF und PNG, für das Web eine sichere 8-Bit-Konvertierung.