Laufzeit bei Planetenvideo | Astronomie.de - Der Treffpunkt für Astronomie

Laufzeit bei Planetenvideo

reibra

Mitglied
Hallo Rolf,
ich finde euer Projekt super und verfolge mit Interesse die Weiterentwicklung. Z.B. das RGB-Align stand auch auf meiner Wunschliste – scheint jetzt ja schon perfekt erledigt zu sein. Klasse!

Ich habe mit PSS 0.8.15 alte Mondaufnahmen geschärft und mit Registax-Versionen verglichen. Da finde ich dass PSS ist deutlich besser abschneidet als Registax.

Bei Planetenaufnahmen sehe ich das noch nicht so deutlich. Da muss ich wohl noch weiter experimentieren.

Beim Versuch Marsvideos zu stacken habe ich allerdings extreme Laufzeiten festgestellt.
Mein Rechner hat einen AMD Athlon(tm) II X4 640 Processor 3.00 GHz und 32 GB RAM und läuft unter Windows 10 64 -bit.

Das Video ist ein AVI mit 6,24 GB und ca 40.000 Frames .
PSS sagt: recommended level: 2, es wird aber maximal 16 GB Speicher belegt.
Das Ranking dauert 20 min, Aligning 7 min, Reference Frame 3 min und Stacking 34 min.

Zum Vergleich habe ich das Video in AS3 gestackt, da braucht der gesamte Ablauf ca 5 min.

Beim Programmstart bekomme ich die bekannte Meldung mit der mkl_rt.dll – kann das doch Schuld sein an der langen Laufzeit?


MfG
Reinhard
 

Rolf_Hempel

Mitglied
Hallo Reinhard,

zunächst einmal freut es mich, dass das Postprocessing mindestens so gut wie in Registax funktioniert, bei den Mondaufnahmen sogar deutlich besser. Das Auto-RGB-Alignment habe ich inzwischen auch bei großen DSLR-Bildern erfolgreich erprobt. Es fehlt nur noch die Implementierung von manuellen Korrekturen (die aber vermutlich nur selten gebraucht werden).

Die extremen Laufzeiten kann ich mir aber wirklich nicht erklären. Der von PSS ermittelte Buffer-Level klingt plausibel, wenn dadurch schon 16 GB belegt werden. Dann wäre Level 3 weit jenseits der verfügbaren 32 GB. Aber eine 12mal längere Ausführungszeit als AS!3 erklärt das nicht. Ich habe gerade mal ein Venus-Beispiel nachgeschaut vom September. Da hatte ich 27500 Frames gestackt, allerdings mit Buffer level 4. Das hat 41 GBytes RAM belegt. Die Gesamtzeit betrug 241 Sekunden. Bei Level 2 ist natürlich viel mehr I/O zu erledigen, aber diesen Riesenfaktor kann das nicht erklären.

Hast Du vielleicht den Protokoll-File des Laufs (hoffentlich im "Detail Level" 2)? Vielleicht ergibt sich daraus ja ein Anhaltspunkt, was schiefgelaufen ist.

Schöne Grüße
Rolf
 

reibra

Mitglied
Hallo Rolf,
danke für deine schnelle Antwort.
Ich habe das Video nochmal bearbeiten lassen und hänge jetzt das Protokoll an. Für mich sieht das sehr unspektakulär aus, vielleicht kannst du ja was draus erkennen.

LG
Reinhard
 

Anhänge

  • 2020-11-29-1746_6-RB-L-Mars_stacking-log_f8362_p20_b48_ap8.txt
    6,5 KB · Aufrufe: 37

Rolf_Hempel

Mitglied
Hallo Reinhard,

das ist mir wirklich rätselhaft. Der Protokoll-File sieht tatsächlich unspektakulär aus. Die Frames sind ja eher klein (wahrscheinlich hattest Du ein ROI bei der Aufnahme gesetzt). Die waren bei meinem Venus-Video sogar größer, allerdings war das Monochrome. Trotzdem: Mein Venus-Beispiel lief hier in vier Minuten durch, also weit entfernt von den bei Dir gemessenen Zeiten.

Ein paar Beobachtungen, die zwar nicht die Laufzeit erklären, aber die ich doch loswerden wollte:
  • Du hattest die Option (Fast changing object) angewählt. Das ist eigentlich nur bei Jupiter und Sonne sinnvoll. Beim Mars wird dadurch das Referenzbild etwas schlechter als es sein müsste.
  • Im Postprocessing sollte man auf dem ersten Layer mit dem kleinsten Schärfungsradius beginnen, und dann bei den nächsten Layern die Radien schrittweise vergrößern. Du machst es umgekehrt. Registax gibt das automatisch vor, aber auch in PSS sollte man so vorgehen.
Ansonsten ist mir aufgefallen, dass Du Drizzle eingeschaltet hast. Das sollte die Laufzeit eigentlich nicht so wesentlich vergrößern, und dann auch nur im Schritt "Stacking".

Hast Du denn auch bei Deinen Mondvideos so enorm lange Laufzeiten? Eigentlich ist meine einzige Erklärung, dass der I/O extrem langsam ist. Die Videodatei ist nicht etwa auf einem Memory-Stick mit USB 1? :)

Ansonsten kann ich mir das wirklich nicht erklären.

Schöne Grüße
Rolf
 

reibra

Mitglied
Hallo Rolf,
deine Frage, ob meine Mond-Videos auch so langsam laufen, kann ich leider nicht beantworten, da ich die aus Speicherplatzgründen gelöscht habe. Das Mars-Video ist natürlich auf einer internen Festplatte - allerdings nicht auf SSD.
Drizzle hatte ich eingeschaltet da der Mars mit 15" schon ziemlich klein war.
Meine C-Platte ist eine SSD mit 92 GB belegt und nur 19 GB frei - das ist bestimmt auch verbesserungswürdig.
Ich werde in den Weihnachtstagen mit meinen Söhnen mal sehen, ob wir dem Problem auf die Spur kommen. Über Ergebnisse werde ich jedenfalls hier informieren.

Danke für deine Tipps bezüglich "Fast changing object" und Postprozessing.

Beste Grüße
Reinhard
 

reibra

Mitglied
Hallo Rolf,
ich habe inzwischen Laufzeiten von PSS auf meinem Laptop mit meinem Desktop verglichen.
Der Laptop hat einen I5-Prozessor 16 GB RAM und 1 TB SSD, der Desktop hat einen AMD Athlon X4, 32 GB RAM und normale Platte. Daher ist es naheliegend dass der Laptop schneller ist.
Bei verschiedenen Videos war der Laptop bis zu 4x schneller.
Allerdings war im Vergleich zum Laptop AutoStakkert3 noch ca. 20x schneller.
Aufgefallen ist mir, dass PSS eine Prozessorauslastung von 30-40% hat, AS3 dagegen 90-99%. Dagegen belegt AS3 weniger RAM als PSS.

Was mein Sohn rausgefunden hat, hat mich erstaunt: sowohl beim Align als auch beim Stacking werden alle Frames nochmal bearbeitet, nicht nur die zu stackende Anzahl. Ist der Grund dafür, dass in allen Frames die besten Alignmentpoints gesucht werden, die ja aus unterschiedlichen Frames kommen können?

LG
Reinhard
 

Rolf_Hempel

Mitglied
Hallo Reinhard,

die große Laufzeit verstehe ich immer noch nicht so ganz. Ein paar Anmerkungen aber habe ich schon:
  • Zu Deinem Erstaunen, dass die Frames "nochmal bearbeitet werden": Tatsächlich werden die Frames mehr als zweimal bearbeitet. So einfach ist der Stacking-Prozess nämlich nicht. Deswegen ist es für die Performance auch so wichtig, möglichst viel im Buffer halten zu können. Bei Buffer-Level 2 können die Original-Frames und die davon abgeleiteten Grayscale-Varianten nicht gehalten und müssen mehrfach eingelesen werden. Das kostet natürlich Zeit. Nur bei Level 4 muss jedes Frame nur genau einmal eingelesen und seine Varianten berechnet werden. Es würde hier zu weit führen, den Algorithmus im Detail zu erklären. Aber Du kannst das in diesem Dokument nachlesen.
  • Es stimmt, dass PSS mehr RAM verbraucht als AS!3. Ich kann natürlich nicht in AS!3 hineinschauen, bin mir aber ziemlich sicher, dass Emil Kraaikamp sehr weitgehende Optimierungen bezüglich RAM und Rechenzeit vorgenommen hat. Das ist von der Programmierung her schon eine beeindruckende Leistung. Ich glaube aber, dass sich dies andererseits in Artefakten zeigt, die viele User (so wie ich auch) bei AS!3 oft in glatten Flächen sehen (z.B. Schachbrettmuster in Mond-Mareflächen). Bei PSS habe ich im Zweifelsfall immer die Vermeidung von Artefakten höher bewertet.
  • Drizzling ist in PSS (noch) nicht wirklich befriedigend gelöst. Eine erste Implementierung, bei der ich rechenzeit- und speichersparend vorgegangen war, produzierte sehr hässliche Artefakte. Ich habe dann eine Variante gewählt, die sehr glatte Flächen produziert, aber sehr aufwendig arbeitet. Dabei ist 1,5x Drizzle die aufwendigste Variante von allen. Vielleicht finde ich oder einer meiner Ko-Autoren noch eine bessere Implementierungsvariante.
  • Die niedrige Prozessorauslastung ist tatsächlich ein Problem von Python. Grundsätzlich müsste es aber besser gehen, weil über 99% der Rechenlast bei PSS in hochoptimierten C++-Bibliotheken liegt. Wie man in diesen Bibliotheken die Mehrkernauslastung verbessert, ist ein Action Item meines Ko-Autors George Hilios.
Also zusammengefasst: So ganz kann ich die sehr lange Laufzeit nicht verstehen. Zumindest ein Teil lässt sich durch Drizzling und den niedrigen Buffer-Level erklären. Bei meinen eigenen Anwendungen beobachte ich typischerweise etwa 50% längere Laufzeiten als bei AS!3.

Schöne Grüße
Rolf
 

reibra

Mitglied
Hallo Rolf,
danke sehr für deine ausführliche Antwort. Ich werde versuchen dein Dokument "Summary of Algorithms used by PlanetarySystemStacker" zu verstehen - mal sehen wie weit ich komme.
Die Schachbrettmuster, die AS3 in Mareflächen erzeugt kenne ich auch. Bin gespannt wie PSS sich macht wenn ich wieder Mond-Videos habe.
Ich freue mich auf künftige Versionen von PSS. Würde auch gern mitarbeiten, bin aber ueber "C" nicht hinausgekommen.

LG
Reinhard
 

Rolf_Hempel

Mitglied
Hallo Reinhard,

wenn Du C programmieren kannst, sollte Python für Dich doch ein Klacks sein. Es gibt keine Pointer, und die Syntax ist sehr einfach. Ich habe früher auch Fortran und C programmiert und bin erst später zu Java und Python gekommen. Est ist nie zu spät! :)

Schöne Grüße
Rolf
 
Oben