ZITAt (Dennis @ 2006-09-04, 9:54) ZITAt (hahe @ 2006-09-03, 17:36) Das war eben auch mein Gedanke. Dass der Chip mehrfach ausgelesen...[/quote]Nein, ich meinte nicht mehrfach auslesen, sondern nur einmal auslesen, ganz normal. Nur werden dann die Raw-Daten mit den Daten der Bewegungssensoren verrechnet. [/quote] Hallo Dennis
Das funktioniert wirklich nicht. Wenn du den Sensor nur einmal ausliesst, dann sind die Bewegungsunschärfe schon drin. Die kann man sehr schlecht nachträglich wieder auskorrigieren. Der AS macht nichts anderes, als wärend der Aufnahme, die Bewegungen kompensieren. Nach der Aufnahmen wird der Chip ausgelesen und verarbeitet. Wenn während der Aufnahme nur die Bewegungen aufgezeichnet werden, dann bringt hinternach für die Interpolation nichts mehr, da es nur ein Bild gibt.
Hingegen kann die Idee mit der Auslesefrequenz funktionieren, aber es braucht sehr schnelle Verarbeitungselektronik. Bei jedem Bild wird der Bewegungsrichtung und Distanz festgestellt und entsprechend diesen Bildschnitt gewählt, dieser wird dem Originalbild hinzugerechnet. Durch diese Interpolation bringt man die Bewegung raus. Nachteil: Es braucht einen grösseren Chip und das Rauschen kann zunehmen, da das Bild aus mehrere unterbelichtete Bilder besteht. Bei grösseren Chip ist die Gefahr der Vignetierung wieder da.
Habt Ihr eigentlich mal daran gedacht, dass wenn man soviele Bilder auf einmal aufnehmen könnte, gar kein AS mehr brauchen würde (ja, auch kein "elektronisches"? /wink.gif" style="vertical-align:middle" emoid="" border="0" alt="wink.gif" />
ZITAt (Peter Lehner @ 2006-09-04, 10:23) Das funktioniert wirklich nicht. Wenn du den Sensor nur einmal ausliesst, dann sind die Bewegungsunschärfe schon drin. Die kann man sehr schlecht nachträglich wieder auskorrigieren.[/quote]Peter, es wird doch schon gemacht /wink.gif" style="vertical-align:middle" emoid="" border="0" alt="wink.gif" /> Nehmen wir mal eine ganz einfache Bewegung an: Das Bild verwackelt um eine Pixelbreite nach rechts. Die Elektronik zeichnet auf, dass es die ersten 50ms Belichtungszeit nicht wackelte, und dann für die zweiten 50ms nach rechts wanderte. Also musst Du nur den Wert des rechten Pixels um den halben Betrag (Belichtungszeit) des linken Pixels reduzieren, und diesen Betrag auf den linken Pixel aufschlagen. Der Restwert des rechten Pixels wird analog mit dem Differenzwert der wiederum rechten Nachbarn aufpoliert. Und so weiter und so fort. So funktionieren ja auch schon die genannten Algorithmen zur Entfernung von Bewegungsunschärfe. Ich sage ja nicht, das das ohne Problem geht. Dreh- und Angelpunkt ist die genaue 3-dimensionale Kartierung (x, y-Koordinaten und Zeit) der Bewegung, die ja eigentlich in der Dynax 7D schon stattfindet.
Dennis, das Dumme dabei ist nur, dass der Pixel dann auch 1/4 des Nachbarpixels bekommt. Von der Bayermatrix ganz zu schweigen. Wenn ich etwas wackle und ein Pixel nur 50% seines Lichtes bekommt, dafür der linke und rechte noch je 25%, dann habe ich auch je 25% meiner Nachbarn bekommen. Daraus rückwärts das Ursprungsbild zu gewinnen ist nur mit massivem Verlust an Details möglich.
In anderen Worten: Man kann "mehr Information" nicht aus "weniger Information" gewinnen. Jede Operation an Daten hat einen Verlust zur Folge...
ZITAt (josefnemecek @ 2006-09-04, 15:14) Dennis, das Dumme dabei ist nur, dass der Pixel dann auch 1/4 des Nachbarpixels bekommt. Von der Bayermatrix ganz zu schweigen. Wenn ich etwas wackle und ein Pixel nur 50% seines Lichtes bekommt, dafür der linke und rechte noch je 25%, dann habe ich auch je 25% meiner Nachbarn bekommen.[/quote] /wacko.gif" style="vertical-align:middle" emoid="" border="0" alt="wacko.gif" /> Hm... ich habe ja auch nie behauptet, dass das ein triviales Problem wäre... /pardon.gif" style="vertical-align:middle" emoid="ardon:" border="0" alt="pardon.gif" /> Aber da es Algorithmen gibt, die durch bloße Angabe eines ungefähren Vektors eine Bewegungsunschärfe mit einem Erfolg größer Null verringern können, müsste sich das doch dramatisch verbessern lassen, wenn man eine komplette und präzise Vektorkette auf Pixelebene hat, die zudem noch zeitlich genau differenziert ist. Wenn man die Bewegungen das AS protokolliert, dann kann man daraus exakt ersehen, welcher "optische Ort" wie lange auf welchen Pixel projiziert wurde, bzw. wieviel "optische Orte" auf einen bestimmten Pixel wie lange projiziert wurden. Auf jeden Fall wäre natürlich ein solcher Algorithmus verlustbehaftet, im Vergleich zu einer linsen- oder sensorstabilisierten Aufnahme. Wenn ich da an die Lichtfeld-Fotografie denke, erscheint mir das Problem hier viel einfacher. Außerdem könnte ja ein permanentes Auslesen in einem CMOS-Chip vorgenommen werden, und die daraus gewonnen Daten lassen sich dann wirklich trivial mit einem Bewegungs-Protokoll zu einem scharfen Bild verrechnen.
Eine Vektorenfolge bringt dir nicht viel, Du kannst wahrscheinlich nur gut genau einen Vektor korrigieren, ein Richtungswechsel würde die Bildinformation erheblich schädigen.
Nach deiner Logik könnte man aus jedem Papierbild ein scharfes Bild kriegen, wenn man die Bewegungsrichtung weiss. Dass kann ich mir wirklich nicht vorstellen, wie dies gehen soll, denn die Information ist in einer Ebene Verpackt und dieser kann man nicht nachträglich trennen.
Darum gibt es elektronisch nur eine Möglichkeit, frequente Auslesen. Durch das frequenten Auslesen kriegt man mehrere Bilder, jedes dieses Bild kann mit Bewegungsinformation gegenverschoben werden und so korrigieren. Zuletzt werden die Bild zu einem Bild zusammen gebackt.
ZITAt (Peter Lehner @ 2006-09-04, 16:18) Nach deiner Logik könnte man aus jedem Papierbild ein scharfes Bild kriegen, wenn man die Bewegungsrichtung weiss. Dass kann ich mir wirklich nicht vorstellen, wie dies gehen soll, denn die Information ist in einer Ebene Verpackt und dieser kann man nicht nachträglich trennen.[/quote]
Oh, das geht sogar erstaunlich gut. Es gibt seit einiger Zeit Algorithmen, die das können - sogenannte Deconvolution Algorithmen - sowohl bei Unschärfe durch Fehlfokusierung, als auch bei Bewegungsunschärfe. Ein solcher Algorithmus ist zum Beispiel in Photoshop CS2 integriert und wird dort "Smart Sharpen" genannt, ein CS2 Besitzer der dt. Version kann Dir sicher auch die dt. Übersetzung nennen.
LG, Hendrik
Nachtrag: In der c't gab es mal einen Artikel dadrüber, hier sind links zu weiteren Programmen (zum Teil auch freie) die das können.
ZITAt (hendriks @ 2006-09-04, 16:04) Eine Vektorenfolge bringt dir nicht viel, Du kannst wahrscheinlich nur gut genau einen Vektor korrigieren, ein Richtungswechsel würde die Bildinformation erheblich schädigen.[/quote]Hm. Ich halte das Prinzip für skalierbar. Wenn Du einen Vektor gut korrigieren kannst, dann auch beliebig viele.
ZITAt (Dennis @ 2006-09-04, 16:37) ZITAt (hendriks @ 2006-09-04, 16:04) Eine Vektorenfolge bringt dir nicht viel, Du kannst wahrscheinlich nur gut genau einen Vektor korrigieren, ein Richtungswechsel würde die Bildinformation erheblich schädigen.[/quote]Hm. Ich halte das Prinzip für skalierbar. Wenn Du einen Vektor gut korrigieren kannst, dann auch beliebig viele. [/quote]
In die (fast) gleiche Richtung mit vielleicht unterschiedlicher Geschwindigkeit: ja, aber ein Zickzackkurs wird halt eben durch seine Richtungsänderungen Informationen "überschreiben", die nicht wiederherstellbar sind.
ZITAt (Peter Lehner @ 2006-09-04, 16:18) Nach deiner Logik könnte man aus jedem Papierbild ein scharfes Bild kriegen, wenn man die Bewegungsrichtung weiss.[/quote] Auf die Gefahr hin, mich zu wiederholen ( ich habe es bisher ja erst viermal erwähnt /rolleyes.gif" style="vertical-align:middle" emoid="" border="0" alt="rolleyes.gif" />): Es gibt bereits Algorithmen, die das können. Zwar nicht perfekt, aber immerhin ansatzweise. Die arbeiten aber auch nur mit Minimal-Anfangsbedingungen, denen steht keine exakte Aufzeichnung der Wackelbewegung zur Verfügung.
Nochmal zu dem mehrmals auslesen, hierbei meinte ich, dass das Rauschen zunimmt, Dennis. Nicht bei dem einmaligen Auslesen und dann mittels aufgezeichneter Bewegung korrigieren. Aber wie Hendriks schon bemerkte, ist das mehrmalige Auslesen nicht sinnvoll, da ein einzelnes ausgelesenes Bild ja dann auch genügen würde.
Mist, ich glaube ich hab oben nen Denkfehler drin...
Nochmal von vorn: Wenn ich mehrere Bilder mit hoher Empfindlichkeit aufnehme, die zwar rauschen, dafür aber scharf sind, könnte ich die doch so Interpolieren, dass das Rauschen abnimmt, und ich ansonsten keine Qualitätsverluste hinnehmen müsste, oder?!? Also wäre das frequente Auslesen doch eine sinnvolle Möglichkeit zur Bewegungskompensation.
Zum einmaligen Auslesen und dann mittels Algorithmus schärfen, muss ich mir erst nochmal mein Hirn verbiegen, bevor ich mir den Mund verbrenn...
ZITAt (ChriHuc @ 2006-09-04, 17:32) Wenn ich mehrere Bilder mit hoher Empfindlichkeit aufnehme, die zwar rauschen, dafür aber scharf sind, könnte ich die doch so Interpolieren, dass das Rauschen abnimmt, und ich ansonsten keine Qualitätsverluste hinnehmen müsste, oder?!? Also wäre das frequente Auslesen doch eine sinnvolle Möglichkeit zur Bewegungskompensation.[/quote]
Naja, dann müsste die Software auch das Rauschen erkennen können, und das ist noch ein richtiges Problem ...
ZITAt (Dennis @ 2006-09-04, 15:04) ZITAt (Peter Lehner @ 2006-09-04, 10:23) Das funktioniert wirklich nicht. Wenn du den Sensor nur einmal ausliesst, dann sind die Bewegungsunschärfe schon drin. Die kann man sehr schlecht nachträglich wieder auskorrigieren.[/quote]Peter, es wird doch schon gemacht /wink.gif" style="vertical-align:middle" emoid="" border="0" alt="wink.gif" /> Nehmen wir mal eine ganz einfache Bewegung an: Das Bild verwackelt um eine Pixelbreite nach rechts. Die Elektronik zeichnet auf, dass es die ersten 50ms Belichtungszeit nicht wackelte, und dann für die zweiten 50ms nach rechts wanderte. Also musst Du nur den Wert des rechten Pixels um den halben Betrag (Belichtungszeit) des linken Pixels reduzieren, und diesen Betrag auf den linken Pixel aufschlagen. Der Restwert des rechten Pixels wird analog mit dem Differenzwert der wiederum rechten Nachbarn aufpoliert. Und so weiter und so fort. So funktionieren ja auch schon die genannten Algorithmen zur Entfernung von Bewegungsunschärfe. Ich sage ja nicht, das das ohne Problem geht. Dreh- und Angelpunkt ist die genaue 3-dimensionale Kartierung (x, y-Koordinaten und Zeit) der Bewegung, die ja eigentlich in der Dynax 7D schon stattfindet. [/quote] Das ist wohl machbar, habe ähnliches auch schon bei Langzeitbelichtungen des Nachthimmels überlegt, da ist der Bewegungsvektor wohl nachvollziehbar. Hier allerdings sehe ich ein Problem: Dein erster Pixel hat schon Informationen vom Pixel noch weiter links, du gehst aber bei denem 'linken' Pixel von einem ohne Bewegungsunschärfe aus und errechnest daraus die weiter rechts. Aber es gibt wohl eine Lösung dazu.
ZITAt (ChriHuc @ 2006-09-04, 17:32) Nochmal von vorn: Wenn ich mehrere Bilder mit hoher Empfindlichkeit aufnehme, die zwar rauschen, dafür aber scharf sind, könnte ich die doch so Interpolieren, dass das Rauschen abnimmt,[/quote]Ja, das wird ja auch zB in Astronomie-Kreisen standardmäßig so gemacht.