Hallo, ich weiß es gibt schon 100 Threads mit ähnlichem Titel nur trifft das nie genau meine Frage, daher bitte ich um Verständnis... Folgendes: Ich haben einen RGB Treiber für einen 3W RGB LED (Seoul P5) gebaut, der soweit auch funktioniert. Ich lege die Farbe über ein C# Programm am PC fest, die vie USB auf den Treiber kommt. Ich übertrage dabei RGB Daten (jeweils 0-255) die ich direkt und linear in Werte für die PWMs umrechne. Einen Farbverlauf steuer ich dabei über den PC, indem dieser z.B. alle 20ms einen neuen RGB Wert überträgt. Das Ergbnis ist soweit schon deutlich besser als ich erwartet hätte. Allerdings habe ich in fast allen Treads immer von YUV Umrechnung gelesen. Habe diese auch PC seitig implementiert so dass ich auch diese Übertragen könnte. Leider ist mir der Sinn dies zu tun nicht wirklich ersichtlich geworden... Kann mir jemand dazu weiterhelfen? Vielen Dank und Grüße Florian
Der YVU-Farbraum entspricht weit eher dem menschlichen Empfingen als der technisch bedingte RGB-Farbraum. Versuch mal per (reinem) RGB einen einigermassen sanften Farbverlauf durch den Regenbogen laufen zu lassen... http://de.wikipedia.org/wiki/Farbraum
Genau da ist eben meine Frage... Sollte man den Farbverlaufe über YUV machen und daraus die RGB Werte berechnen? z.B. RGB(0,100,50) -> RGB(30,100,50) würde im Momente ja so ablaufen dass: RGB(0,100,50) RGB(1,100,50) ... RGB(29,100,50) RGB(30,100,50) ausgegeben wird. Wenn ich das über YUV mache sind die RGB Werte nicht so einach runterzuschreiben aber YUV würde dementsprechend aussehen: YUV(0,213,123) -> YUV(30,213,123) YUV(0,213,123) YUV(1,213,123) ... YUV(29,213,123) YUV(30,213,123) Ist also letzteres günstiger?
YUV ist einfach eine andere Codiervorschrift für Farbsignale. Dies kommt aus der Fernsehtechnik. Der Vorteil ist, dass U und V, die Farbdifferenzsignale, eine kleinere Bandbreite benötigen und das Y gleichzeitig das vollständige S/W-Signal darstellt. Damit war die Kompatibilität zu (vorhandenen) S/W-Fernsehgeräten gegeben - die mussten und konnten nur dieses Signal auswerten. Die Zusatzinformation für die Farbe wurde huckepack auf das S/W-Signal bei der Modulation draufgepackt. Man machte sich die Eigenschaft zu Nutze, dass das Auge geringere Auflösung für die Farbe hat und konnte so rund 30%...50% Bandbreite einsparen (beim Fernsehen wurden durch geschickte Modulation sogar 2/3 eingespart). Es gibt eine einfache Rechenvorschrift, wie aus RGB YUV gemacht wird und umgekehrt. Für deine Anwendung musst du das anliefern, was dein Empfänger haben will. Wenn du die Wahl hast, nimm RGB. YUV macht nur dann Sinn, wenn der Übertragungskanal Beschränkungen in der Bandbreite hat (wobei Y trotzdem die volle Bandbreite benötigt). Im Empfänger werden zur Anzeige immer die Farbdifferenzsignale wieder zurück in RGB gerechnet. Michael Potthoff (mipo) schrieb: >Der YVU-Farbraum entspricht weit eher dem menschlichen Empfingen als der >technisch bedingte RGB-Farbraum. Verwechselt du hier nicht YUV mit CMYK? Oder bin ich total auf dem Holzweg? YUV definiert keinen anderen Farbraum, sondern nur eine andere Codierung des RGB. http://de.wikipedia.org/wiki/YUV-Farbmodell
@ HildeK Danke genau das wollte ich hören. Mittels YUV könnte ich die Bandbreite verringern da ich aus RGB(8:8:8) z.B.ein YUV(8:4:4) machen könnte ohne merklichen Qualitätverlust. Da mir die Bandbreite aber egal ist übertrage ich RGB.
Also für Farbverläufe finde ich HSV recht gut. Durch die Gradangabe 0-360 kann das kpl. Spektrum überstrichen werden und die Umrechnung in RGB ist relativ leicht. http://de.wikipedia.org/wiki/HSV-Farbraum Wenn die Übertragung nicht das Problem ist, evtl. am PC mit HSV spielen und RGB übertragen. Bei etwas Rechenleistung im µC diesen in HSV rechnen lassen. Treib es aber nicht zu bunt ;) Bunt
Ganz genau, man kann die Helligkeit schön konstant einstellen und muss dann nur noch den Y Bereich durchlaufen.
> Verwechselt du hier nicht YUV mit CMYK? Oder bin ich total auf dem > Holzweg? CMY ist nur das subtraktive Gegenstück zu RGB (basierend auf den Komplementärfarben) und wird bei Druckern benötigt. Das K ist hier der Unfähigkeit der Drucker geschuldet, alleine mit C, M und Y ein sattes Schwarz zu produzieren. Deshalb hat man dafür nochmal einen eigenen Kanal eingebaut.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.