Blend Effekte mit YUV berechnen?



  • ...wenn du nur die helligkeit ändern willst z.b. sollte eine änderung von Y reichen."<<<

    Ja. Solange ich die Farben nicht in die Berechnung einbeziehe, funzt alles.

    <<<ansonsten muss du das format genauer verstehen lernen und eben deine berechnungen individuell auf U und V abändern.>>>

    Ich hab mich schon "halb-tot-informiert" über YUV, hab aber nix gefunden was mir weiterhelfen könnte. Ich hab keine Ahnung wie man zwei YUV Signale einfach addiert oder multipliziert.



  • Einfach mal Wiki nach YUV durchsuchen, hier findest du die Formeln die du brauchst ...
    http://de.wikipedia.org/wiki/YUV-Farbmodell

    Dann einfach für R G B jeweils die Umrechnungsformeln einsetzen.
    (Das wäre sozusagen gleichzeitig umrechnen, blenden, rückrechnen)

    Wenn du dir diese Formel schnappst und vereinfachst (vielleicht auch ein Mathe Programm benutzen was Formeln vereinfachen kann) hast du deine hoffentlich performante Blendingformel für den YUV Farbraum.


  • Mod

    du solltest zwischen den einzelnen werten von YUV blenden können ohne umrechnen zu müssen.

    rapso->greets();



  • @rapso ... und wie?

    Genau das ist das Problem. Ich habe keine Ahnung wie und mit welcher Formel etc.
    Wie gesagt, Y bei S/W Bild ist kein Thema, aber die Farbberechnung quält mich. 😞

    @ChaosAngel: RGB Conversion (Nur wenns nicht mit YUV machbar ist)



  • Agentskinner schrieb:

    @ChaosAngel: RGB Conversion (Nur wenns nicht mit YUV machbar ist)

    Villeicht solltest du mal lesen? Er hat dich nicht gesagt, das du konvertieren sollst, sondern wie du die Formeln herleitest.

    Bye, TGGC (Demo or Die)


  • Mod

    Agentskinner schrieb:

    @rapso ... und wie?

    Genau das ist das Problem. Ich habe keine Ahnung wie und mit welcher Formel etc.
    Wie gesagt, Y bei S/W Bild ist kein Thema, aber die Farbberechnung quält mich.

    so wie man zwischen werten eben interpoliert.

    rapso->greets();



  • So, ich bin einen Schritt weiter:

    code Addition von zwei YUV Werten
    Ydst = Ysrc + Ysrc - 16;
    Udst = Usrc - 128 + Usrc;
    Vdst = Vsrc - 128 + Vsrc;

    Ich habe aber damit immer noch ein Problem, weil ab einem bestimmten Wert falsche Werte berechnet werden. Die Grenzen für U & V sind glaub ich 0-180. Wenn ich diese Werte auf 180 begrenze, erhalte ich trotzdem eine falsche Berechnung.

    Beispiel: In der Videoschnitt-Software kann man eine Farbe auswählen. Wenn die Werte zu hoch gewählt wurden (z.B. Y=255 U=0 V=0) errechnet die Software die Werte neu (IRE-Warnung). Kennt jemand eine Formel für die IRE Grenzen?


  • Mod

    wenn man zwischen zwei farben interpoliert die im wertebereich sind, sollte das resultat das auch sein

    Y' = Y1 + (Y2-Y1)*blend
    U' = U1 + (U2-U1)*blend
    V' = V1 + (V2-V1)*blend

    0<=blend<=1

    rapso->greets();



  • so wird das leider nichts. schade. ich mußte auf RGB Berechnung umsteigen... die performance ist aber leider nicht die beste 😞


  • Mod

    wieso wird das so nichts? ausprobiert?

    rapso->greets();



  • Ja hab ich. Wie soll ich das nur erklären... 😕
    also, wie schon gesagt, die Addition von 'Y' klappt wunderbar. Dabei kommen auch Werte heraus jenseits von 255, die man einfach begrenzt (Y>255 ? 255). Soweit so gut. Die Formel läßt sich aber nicht einfach auf U & V anwenden, da wirds komplizierter.
    Der Wertebereich ist auch 0..255, wobei jedoch 128 sozusagen die NULL-Linie darstellt. (U=128, V=128 ergibt s/w Bild, 0% Sättigung). wenn jetzt aber U, V <>128 sind, hat das ebenfalls wieder Auswirkungen auf Y.

    Am besten ein kleines Beispiel:
    Ich hab in dem Videoschnittprogramm 2 Ebenen miteinander addiert, folgende Werte sind dabei herausgekommen:

    Ebene1+Ebene2 (gleiches Videobild, Standard Testbild 75x)
    (Weiss, Glb, Cy, Grn, Purp, Rot, Blau, Schwarz)
    Y 180, 162, 131, 112, 084, 065, 035, 016
    U 128, 044, 156, 072, 184, 100, 212, 128
    V 128, 142, 044, 058, 198, 212, 114, 128

    Ergebnis nach Addition (BlendFX) (+farbig):
    Y 235, 209, 169, 144, 106, 081, 041, 016
    U 128, 016, 166, 052, 201, 090, 239, 128
    V 128, 145, 015, 034, 221, 240, 109, 128

    Ergebnis nach Addition (beide Bilder schwarz/weiss):
    Y 235, 235, 235, 208, 152, 114, 054, 016
    U und V sind jeweils 128

    Erkennt jemand den Zusammenhang zwischen Y,U & V und welche Formel(n) dahinter stehen? Während bei der S/W Bild Addition die Luminanz die Grenzen teilweise überschreitet (>255 bzw. 235 Broadcast colors) wird bei der Addition (inkl.Farbe) alles "im Rahmen" gehalten 😮 *GROSSEratlosigkeit*


  • Mod

    Agentskinner schrieb:

    Ja hab ich. Wie soll ich das nur erklären... 😕
    also, wie schon gesagt, die Addition von 'Y' klappt wunderbar. Dabei kommen auch Werte heraus jenseits von 255, die man einfach begrenzt (Y>255 ? 255). Soweit so gut. Die Formel läßt sich aber nicht einfach auf U & V anwenden, da wirds komplizierter.

    lass mich raten, du weißt nicht wie man blendet? bzw was der unterschied von blenden und addieren ist?

    blenden in YUV sollte genau wie das blenden in RGB ablaufen.

    rapso->greets();



  • ich weiss was blenden oder addieren ist... habs ja mit RGB programmiert. Funktioniert nur SO nicht mit YUV, weil ich die Zusammenhänge zwischen Y-U-V nicht kenne. Aber lassen wir das, wir kommen hier nicht weiter.
    Trotzdem Danke für die Antworten.


Anmelden zum Antworten