Tone-Mapping mit CHDK?

CHDK-Skripte, CHDK-Entwicklung, PC-Zusatzprogramme, Informationen für Tüftler

Tone-Mapping mit CHDK?

Beitragvon TaiJiGong » 25.08.2010, 21:52

Hallo Zusammen,

ich habe mal ein paar Versuche mit der Software von Erik Reinhard gemacht. Ich denke das man die evtl. für CHDK portieren (zumindest Teilweise) kann. D.h. das tonmapping ohne Schnelle Fourier-Transformation. Für eine FFT ist der Processor der Canon-Kameras sicher etwas zu langsam.
http://de.wikipedia.org/wiki/Tone_Mapping
http://www.cs.ucf.edu/~reinhard/cdrom/tonemap.pdf
http://www.cs.ucf.edu/~reinhard/cdrom/
http://www.cs.ucf.edu/~reinhard/cdrom/source.html

Besteht daran Interesse ? Dann werde ich mich etwas weiter darum kümmern.

Viele Grüße, TaiJiGong
Canon IXUS 100 (SD780) Firmware: 1.00C, sonst nur rein mechanische Kameras wie Pentax-MX
TaiJiGong
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 320
Registriert: 08.04.2010, 20:10
Wohnort: München
Kamera(s): IXUS100is, 100c
IXUS IIs (etwas defekt ohne CHDK)

Ein weiterer Ast

Beitragvon Sinter » 27.08.2010, 09:20

Hallo TaiJiGong,

die Leistungsfähigkeit der Kameraprozessoren erfordert sicherlich gewisse Kompromisse, die häufig durchaus akzeptabel sind. Ich weiß nicht in welcher Form und wie weit FFT überhaupt das sichtbare Ergebnis eines Tone-Mapping beeinflusst. Jeder (!) Zugewinn einer „besseren“ Motivabbildung wäre ein weiterer Fortschritt, auch ohne FFT. Daher könnte bereits Tone-Mapping aus der besseren RAW-Auflösung ganz ohne FFT sehr nützlich sein.

Eine offene Frage ist natürlich ob man denn jetzt überhaupt schon abschätzen kann, wie lange der Prozessor mit der Bearbeitung beschäftigt wäre. Vielleicht würde die Bearbeitungsdauer auch von der Helligkeitsverteilung in den einzelnen Bildbereichen abhängen.

Sofern Berechnungs-Parameter mit in das Ergebnis einfließen, dann wäre es vielleicht auch möglich, dass der User vorab Parameter-Vorgaben einstellen kann, um auf diese Weise die Art des Ergebnisses je nach Zielwünschen zu beeinflussen.

Letztlich könnte ein kamerainternes Tone-Mapping einen weiteren Ast am CHDK-Baum ergeben, denn das wäre dann wohl ein eigenes Feature und vielleicht eine Ausgliederung in einen eigenen Thread wert.

Viele Grüße,
Sinter
Ixus 60 (SD600) Firmware 1.00a
CHDK-DE aktuelle Version
Benutzeravatar
Sinter
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 416
Bilder: 2
Registriert: 14.08.2009, 13:16
Wohnort: München

Beitragvon CHDKLover » 27.08.2010, 11:08

Hallo,
theoretisch müsste die Kamera für die Erstellung von JEPGs auch eine Fast Fourier-Transformation durchführen. Daher nehme ich an, dass der ARM eine extra Hardwareeinheit (DSP) dafür zur Verfügung stellt. Aber wie man die ansprechen könnte weiß ich leider auch nicht.

Infos:
http://www.st.com/stonline/products/lit ... /12815.pdf
http://www.arm.com/products/processors/ ... ifications
http://www.lartmaker.nl/projects/fft-arm/

CHDKLover
A610 100e CHDK-DE: aktuelle Version
Benutzeravatar
CHDKLover
Super-Mod
Super-Mod
 
Beiträge: 878
Bilder: 8
Registriert: 12.09.2007, 18:25
Wohnort: Dresden
Kamera(s): a610 100e

Beitragvon TaiJiGong » 31.08.2010, 22:38

Hallo Sinter und CHDKLover,

Meine ersten Versuche hatte ich damit gemacht ein Bild in das Eingabeformat hdr (Radiance format) zu konvertieren und daraus mittels tonemap ein ppm-Bild zu erzeugen.

./tonemap -ppm -i didi.hdr -o didi.ppm


Mein nächster Schritt sollte sein, die software soweit anzupassen das als Eingabe-Format ein CHDK-RAW-Bild (Die Sensor-Daten auf die man in CHDK zugreifen kann) verarbeitet wird.

Habt Ihr evtl. ein paar Bilder die sich dazu eignen ? Die könnten wir dann als Referenz hernehmen. Der Weg bis das auf der Kamera geht ist wohl noch weit.

@CHDKLover

Ja da gibt es einen DSP, der läst sich evtl. auch nutzen. Aber dazu habe ich noch nicht viel gefunden. Daher werde ich das erst mal nicht weiter untersuchen.

Viele Grüße, TaiJiGong
Canon IXUS 100 (SD780) Firmware: 1.00C, sonst nur rein mechanische Kameras wie Pentax-MX
TaiJiGong
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 320
Registriert: 08.04.2010, 20:10
Wohnort: München
Kamera(s): IXUS100is, 100c
IXUS IIs (etwas defekt ohne CHDK)

Beitragvon CHDKLover » 31.08.2010, 22:46

Hallo TaiJiGong,
schön, dass du weiter machst. Was brauchst du genau für Bilder. Welche Eigenschaften sollten die aufweisen?

CHDKLover
A610 100e CHDK-DE: aktuelle Version
Benutzeravatar
CHDKLover
Super-Mod
Super-Mod
 
Beiträge: 878
Bilder: 8
Registriert: 12.09.2007, 18:25
Wohnort: Dresden
Kamera(s): a610 100e

Beitragvon TaiJiGong » 31.08.2010, 23:05

Hallo CHDKLover,

Du hast ja eine Kamera mit 10 Bit DAC, also ein RAW-Bild in dem möglichst Licht/Schatten Hell/Dunkel vorhanden sind. Das Tonmapping soll ja diese Bereiche angeleichen.

Ich muss auch erst noch ein brauchbares Bild mit 12 Bit DAC aufnehmen.

Evtl. kann ich mir vorstellen das eine reduzierung der Auflösung (zusammenfasen von Pixeln) das Rauschen etwas reduzieren kann und dadurch die dynamik erhöht wird. Das hätte auch den Vorteil das Teile des Bild-Speichers für die Verarbeitung genutzt werden könnten (Daran mangelt es ja wohl).

Viele Grüße, TaiJiGong
Canon IXUS 100 (SD780) Firmware: 1.00C, sonst nur rein mechanische Kameras wie Pentax-MX
TaiJiGong
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 320
Registriert: 08.04.2010, 20:10
Wohnort: München
Kamera(s): IXUS100is, 100c
IXUS IIs (etwas defekt ohne CHDK)

RAW oder DNG als Basis?

Beitragvon Sinter » 03.09.2010, 11:24

Hallo TaiJiGong,

meine Ixus 60 hat ebenfalls nur eine 10-Bit-Auflösung. Brauchst Du davon einfach nur ein CHDK-RAW-Bild mit sehr hellen und dunklen Bereichen zum Testen?

Ich bin mit den Farbkanalverläufen in DNG-Files noch nicht vertraut. Aber ich frage mich gerade noch, ob Dein Tonemapping vielleicht mit DNG-Bildern einfacher realisierbar wäre, weil hier (sofern ich mich jetzt nicht täusche) bereits der Weißabgleich eingerechnet ist? Denn ich vermute, man kann die Werte der RAW-Farbkanäle mit den Source-Werten der Tonwertkurvenfarbkanäle „gleichsetzen“, und falls das so ist, dann wären die einzelnen Farb-Kanäle des RAW-Files noch nicht mal annähernd harmonisch zu JPG-Kanalwerten. Die Frage ist, ob es für Dich eine Rolle spielt, ob Dein Tonemapping noch vor der Einrechnung des Weißabgleichs berechnet wird?


Eine Reduzierung der Auflösung könnte vielleicht schwierig sein. Die Cams benötigen wohl zwingend einen kompletten RAW-File für die Bildentwicklung zum JPG. Falls es schon absehbar ist, wo hakt sich denn die Tonemapping-Berechnung genau ein?

RAW - Tonemapped RAW - JPG
oder
RAW - JPG - Tonemapped JPG
oder direkt
RAW - Tonemapped JPG
?


Viele Grüße,
Sinter
Ixus 60 (SD600) Firmware 1.00a
CHDK-DE aktuelle Version
Benutzeravatar
Sinter
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 416
Bilder: 2
Registriert: 14.08.2009, 13:16
Wohnort: München

Re: RAW oder DNG als Basis?

Beitragvon TaiJiGong » 06.09.2010, 08:19

Hallo Sinter,

Ich hatte leider noch keine Zeit da weiter zu machen.

Sinter hat geschrieben:Aber ich frage mich gerade noch, ob Dein Tonemapping vielleicht mit DNG-Bildern einfacher realisierbar wäre, weil hier (sofern ich mich jetzt nicht täusche) bereits der Weißabgleich eingerechnet ist?


Vor dem schreiben des DNG-Bildes wird meines erachtens kein Weißabgleich gemacht.

Sinter hat geschrieben:Falls es schon absehbar ist, wo hakt sich denn die Tonemapping-Berechnung genau ein?
RAW - Tonemapped RAW - JPG


Ich denke das Tonemapping sollte auf den RAW-Daten arbeiten, da daraus dann von der Kamera da JPG-Bild erzeugt wird.

Viele Grüße, TaiJiGong
Canon IXUS 100 (SD780) Firmware: 1.00C, sonst nur rein mechanische Kameras wie Pentax-MX
TaiJiGong
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 320
Registriert: 08.04.2010, 20:10
Wohnort: München
Kamera(s): IXUS100is, 100c
IXUS IIs (etwas defekt ohne CHDK)

Beitragvon TaiJiGong » 16.09.2010, 22:02

Hallo Zusammen,

nun bin ich soweit das ich das RAW-Bild der Kamera verarbeiten kann. Das Ergebniss ist eher ernüchtend.

Anbei 2 Bilder jeweils als orginal und mit tonmapping.


Viele Grüße, TaiJiGong

Original Bild 1:
Bild
Tonemap Bild 1:
Bild

Original Bild 2:
Bild
Tonemap Bild 2:
Bild
Canon IXUS 100 (SD780) Firmware: 1.00C, sonst nur rein mechanische Kameras wie Pentax-MX
TaiJiGong
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 320
Registriert: 08.04.2010, 20:10
Wohnort: München
Kamera(s): IXUS100is, 100c
IXUS IIs (etwas defekt ohne CHDK)

Re: Tone-Mapping mit CHDK?

Beitragvon TaiJiGong » 22.11.2010, 22:27

Hallo Zusammen,

ich habe meine Bemühungen in diesen Bereich z.Z. eingestellt, aus 2 Gründen:

- zu wenig Speicherplatz auf der Kamera, es wird zur Berechnung in etwas der 4-6 fache Speicherplatz des RAW-Bildes benötigt. (Könnte man optimieren, aber ob dann der Speicher reicht ?)
- RAW/Sensor-Daten der Kamera bieten nicht wirklich genügend Dynamik Informationen (Auflösung, Rauschen ist zu hoch), um wirklich was (brauchbares) aus den Bildern herauszuholen.

Aber immerhin lassen sich bei obigen (vorheriger Beitag) Bildern, diese Verbesserungen durch einfache Nachbearbeitung der Bilder erreichen.

Viele Grüße,

TaiJiGong
Canon IXUS 100 (SD780) Firmware: 1.00C, sonst nur rein mechanische Kameras wie Pentax-MX
TaiJiGong
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 320
Registriert: 08.04.2010, 20:10
Wohnort: München
Kamera(s): IXUS100is, 100c
IXUS IIs (etwas defekt ohne CHDK)


Zurück zu Code-Ecke

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste