www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik RGB Light (YUV?)


Autor: Nicht Bekannt (florian01)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Michael Potthoff (mipo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Nicht Bekannt (florian01)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: HildeK (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Nicht Bekannt (florian01)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ 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.

Autor: Bunt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Nicht Bekannt (florian01)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ganz genau, man kann die Helligkeit schön konstant einstellen und muss 
dann nur noch den Y Bereich durchlaufen.

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 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.

Autor: Michael Potthoff (mipo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm, habe ich wohl tatsächlich YUV mit HSV verwechselt...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.