Blöde Frage und vielleicht habe ich auch das Problem aus den Augen verloren...
Könnte man den Blur nicht auch über die LED-Ausgabe laufen lassen um die harten Übergänge zwischen ihnen zu reduzieren?
Die Grenzen eines analogen Grabbers - und die digitale Lösung
- FreshGer
- Thread is marked as Resolved.
-
-
Klingt interessant! Klar könnte man auch einfach die zuckelige Ausgabe glätten statt dem Video. Das würde ohnehin alles noch smoother und ruhiger machen! Zumindest gehe ich davon aus, dass die „lineare Glättung“, die es schon gibt, derzeit quasi das Video glättet.
So nach dem Motto: Hyperion mach aus folgenden beispielhaften 6Hz der LED-Ausgabe
Dunkel Grau
Schwarz
Dunkel Grau
Schwarz
Weiß
WeißDunkelstes Grau
Dunkelstes Grau
Dunkelstes Grau
Dunkelstes Grau
Grau
Weiß -
ich teste grad bisschen rum.
bei mir war der pi4 auch zunächst überfordert sobald ich den Blur aktiviert habe. Als ich die Bildverkleinerung eine stufe höher gestellt habe lief aber wieder alles rund. komischerweise kann ich mittlerweile die Bildverkleinerung auch wieder auf den ursprünglichen Wert setzen, ohne dass es anfängt in Slow Motion zu laufen^^"Der Blur an sich funktioniert absolut hervorragend. Ich merke ehrlich gesagt kein zusätzliches Delay.
Man sieht richtig an den LEDs, dass da was passiert, in den fiesen bereichen mit hellgrauem Bild bekomme ich die LEDs aber nicht wirklich ruhig.
Ausprobiert habe ich jetzt den Blur (egal ob der Wert auf 1,2 oder 3 steht), die Glättung und in der LED Konfiguration die horizontale und Vertikale Tiefe anzupassen.Das einzige was hier hilft ist es das Gamma von 1,5 auf 1,8 anzuheben und die Helligkeit auf 90% zu stellen (habe ich sowieso, um das Fiepen meines Netzteils in hellen Szenen unter Kontrolle zu bekommen). Das war jetzt aber nur ein schneller Test in einem Szenario. kann sein, dass das in anderen Situationen nicht reicht.
Ich muss mich vielleicht endlich mit dem v4l2-ctl beschäftigen und die Werte anpassen, vielleicht kann man da noch mehr raus holen. -
@Lord-Grey das ist schon die Variante 4.
https://github.com/Paulchen-Pa…yperion/Hyperion.cpp#L700 -
meint ihr wenn wir frames skippen hilft uns das? wir müssen ja nicht jedes einzelne frame auswerten fürs ambilight...vielleicht bekommen wir dadurch weniger aufwand und dadurch auch weniger "flackern"
-
Zumindest gehe ich davon aus, dass die „lineare Glättung“, die es schon gibt, derzeit quasi das Video glättet.
Nein. Die glättet nur die LED Daten.
Souce: https://github.com/hyperion-pr…yperion/Hyperion.cpp#L585 -
@Paulchen-Panther verstehe. Siehst du denn Potential in der Anpassung der aktuellen „linearen Glättung“, um das Flackern zu verringern? Quasi für eine Glättung v2.
-
@Lord-Grey das ist schon die Variante 4.
https://github.com/Paulchen-Pa…yperion/Hyperion.cpp#L700Prima. Den Text hatte ich auf dem kleinen Handy-Bildschirm nicht gesehen.
Hätte ich mir ja eigentlich auch denken können....nichts für ungut. -
Update: box blur test 2
Änderung:- explizite Typumwandlung entfernt
- Gleitkommazahlen werden mit anderer Funktion abgerundet
- Zeiger zu Bildreferenzen hinzugefügt
- Horizontale und Vertikale Berechnung in eine Funktion gesteckt
- Box Vektor Berechnung aus Update Routine entfernt (wird nur noch einmal nach dem einschalten berechnet)
- Radius Überprüfung um Programmabstürze zu verhindern
P.S. Tester gesucht.P.P.S std::swap() && bugfix
P.P.P.S. Der Radius kann nun über die WebUI geändert werden.
[MEDIA=googledrive]1Mdt_RjqbBEjQHEfC9MrESM2885QjMjCW[/MEDIA] -
mit deinem letzten commit hast du was zerschossen
validation error: config/hyperion.config.json.default libsrc/hyperion/hyperion.schema.json (<urlopen error [Errno 2] No such file or directory: '/home/pi/blur/hyperion.ng/libsrc/hyperion/schema/schema-preProcessing.json'>)Code
Display More{ "type" : "object", "required" : true, "title" : "edt_conf_prepro_heading_title", "properties" : { "enable" : { "type" : "boolean", "required" : true, "title" : "edt_conf_prepro_radius_title", "default" : true, "propertyOrder" : 1 }, "radius" : { "type" : "integer", "required" : true, "title" : "edt_conf_prepro_radius_expl", "minimum" : 1, "default" : 5, "propertyOrder" : 2 } }, "additionalProperties" : false }
-
External Content www.youtube.comContent embedded from external sources will not be displayed without your consent.Through the activation of external content, you agree that personal data may be transferred to third party platforms. We have provided more information on this in our privacy policy.
ich glaube das bringt uns alle etwas dem problem/lösung näher.... das "rauschen" in den bildern kommt durch das verkleiern des bildes...umso kleiner ich es mache umso mehr rauscht es...auch wenn das bild sich nicht ändert, siehe video.... wenn ihr natürlich NUR auf kodi arbeitet mit dem kodi grabber wo digitales bild bearbeitet wird stehht das bild bei pause still... das war ein usbtv007 hdmi zu usb grabber...ich werde am wochenende mal ein paar tests machen, ist doch etwas spät geworden....habe verschiedene grabber nun daheim bei dennen ich screenshots von size decimation 1-8 arbeiten werde und dann 1-8 videos aufnehmen um zu schauen und vergleichen...
ps: der usbtv007 kann nur 25hz...also alles drüber einszutellen bringt eh nichts...oder liege ich falsch?
-
Das Rauschen ist aber auch - völlig unabhängig von Hyperion - in einem gewissen Rahmen einfach Teil des heutigen Quellmaterials. Bei deinem Avatar @TPmodding verweise ich beispielsweise mal auf Breaking Bad - aufgenommen mit einer Kodak Vision 2 500T Film. Oder auf alles was man da so per Satellit empfängt (aktuell z.b. beim Dschungelcamp so gewesen). Am modernen TV sieht man das sofort, wenn die Bildverbesserer mal aus sind.
-
Aber nicht wenn das Bild „pausiert“ ist. Wenn ich auf Pause klicke und die LEDs bewegen sich kann ja etwas nicht stimmen. Aber du hast recht. Das ist unabhängig von hyperion
-
Das Flackern bei pausiertem Bild hatte ich nur bei analogen Grabbern. Seit dem ich den Y&H Grabber habe, hat sich zumindest dieses Phänomen bei mir erledigt.
-
Mein Grabber ist noch nicht geliefert, kann daher leider im Moment nicht testen.
Aber Tester scheint es ja ohnehin deutlich mehr zu geben als Programmierer. Mich freut, dass Bewegung in der Sache ist.
Aus den vorhergehenden Posts abgeleitet möchte ich nochmals folgende Frage stellen. Lohnt es sich ggf. Mal zu testen, ob wir uns nicht nur im Kreis drehen. Falls der Blur Effekt so viel CPU-Zeit benötigt, dass die Bildverkleinerung erhöht werden muss und dadurch das Rauschen erst richtig schlimm wird erscheint mir das nicht so zielführend. (siehe Post von TPmodding)
Gibt es vielleicht eine Möglichkeit das Rauschen der Bildverkleinerung zu reduzieren? Ich habe jetzt nicht in den Code geschaut, weil ich mich noch nicht zurechtfinde, wie das bisher gemacht wird. (@Paulchen-Panther, wo finde ich das?)
(Ich denke es werden RGB-Mittelwerte einzelner Pixel berechnet. Wäre es möglich, bspw. keinen Mittelwert zu berechnen sondern einfach einen fest definierten Pixel auszuwählen? Bspw. bei der Verkleinerung eines 2 x 2 Pixel feldes immer den oben links. Dann ist die Entscheidung immer eindeutig. Farbverfälschungen erwarte ich kaum, die Pixel haben wahrscheinlich beinahe die selben RGB Werte und falls nicht fallen wenige falsche bei der Auswertung der LED-Zone dann sicher auch nicht ins Gewicht.)
edit: Ich fürchte das kursiv geschriebene ist Quatsch. Eine Eindeutigkeit müsste ja im Standbild auch bei Mittelwertbildung gegeben sein. Woher kommt das Rauschen im Standbild dann?Wie gesagt, mir fehlt im Moment der Grabber um das Flackern von FreshGer nachvollziehen zu können. Bei der stark rauschenden Raspberry Pi Kamera war es definitiv da. Bei meinem alten Setup aus HTPC --> Arduino --> LEDs (Adalight, kein Hyperion) hatte ich egal bei welchem Ausgangsmaterial nie ein Flackern der LEDs, sodass ich nicht sicher bin ob das Quellmaterial wirklich das Problem darstellt.
Was meint ihr?
Grüße
-
Was meint ihr?
Der Threadname sagt eigentlich alles:
Die Grenzen eines analogen Grabbers -
Ich dachte FreshGer hat die Probleme auch beim digitalen Grabber, habe ich euch falsch verstanden?
-
mit deinem letzten commit hast du was zerschossen
Berichtige ich heute Nachmittag.Ich habe jetzt nicht in den Code geschaut, weil ich mich noch nicht zurechtfinde, wie das bisher gemacht wird. (@Paulchen-Panther, wo finde ich das?)
Schaue ich auch heute Nachmittag nach. -
Ich dachte FreshGer hat die Probleme auch beim digitalen Grabber, habe ich euch falsch verstanden?
@GnaGetier gut, dass du fragst, weil das eine gute Gelegenheit ist den Stand mal für alle später Eingestiegenen zusammenzufassen.
Es gestaltet sich folgendermaßen (vorausgesetzt die sonstigen Hardwarekomponenten sind in Ordnung
Analoger Grabber:
- Stärkeres Flackern der LEDs in dunklen Szenen eines Videos.
- Auch bei einem pausierten Video flackert es, da das analoge Videosignal weiter grieselt bzw. rauscht.Digitaler Grabber & Interner Grabber:
- Geringeres Flackern der LEDs in dunklen Szenen eines Videos.
- Bei pausiertem Video ist Ruhe und die LEDs flackern nicht.Die Ursache des Flacker-Problems, welches wir digital noch haben, kann sich nur noch begründen durch:
1. Das leider nicht perfekte heutige Bildmaterial
2. Das Down-Scaling des Videos für Hyperion
3. Die technischen Grenzen der LED-Streifen nicht den gesamten RGB Farbraum abdecken zu können. Die LEDs gehen stattdessen unter geschätzten RGB(30,30,30) irgendwann abrupt komplett aus. Der Farbraum von Rot, Grün und Blau (sowie Weiß) fehlt folglich von 0 bis ca. 30, wodurch der Wechsel zwischen <30 (=0) und >=30 besonders auffällt.
4. Die Berechnung und/oder Glättung in HyperionLösungswege können, so wie ich das sehe, nur noch sein:
A: Das Bild inkl. Down-Scaling rauschfrei zu bekommen (z.B. durch eine Rauschunterdrückung oder einen Blur-Effekt). Hierfür muss das Input-Video vorher vom rPi auf Kosten der CPU (und somit Zeit) manipuliert werden.
B: Die LED-Ausgabe per Glättung (v2) o.ä. nachträglich zu smoothen inkl. der Berücksichtigung von Ursache Nr. 3. -
@TPmodding
Hab das fehlende Schema hochgeladen. Hat sich wohl beim pushen versteckt. :bigsmile:@GnaGetier
Die Verkleinerung des Bildes findest du ab dieser Codestelle.
Participate now!
Don’t have an account yet? Register yourself now and be a part of our community!