Blindes Umrechnen von RGB nach YCbCr und andersrum mit JavaScript. |
Was soll das Ganze?Mit diesem Werkzeug kann man (1.) einen Eindruck davon bekommen, wie Werte des RGB-Farbraumes im YCbCr-Farbraum repräsentiert werden und andersherum. Dazu trägt man sinnige Werte in die drei Wertfelder ein und benutzt dann die go!-Knöpfe. Zulässige RGB-Werte liegen zwischen 0 und 255, Y-Werte liegen zwischen 16 (schwarz) und 235 (weiß), C-Werte liegen zwischen 16 und 240 (Theoretisch zwischen -112 und +112, es wird aber eine Verschiebung um 128 durchgeführt, um kein Vorzeichen kodieren zu müssen). Eine gute (englische) Einführung in diese Farbräume liefert Charles Poynton's ColorFAQ (138KB). Die RGB-Darstellung wird in Monitoren zur Farbdarstellung benutzt, während die YCbCr-Darstellung zur Übertragung von Bilddaten benutzt wird (z.B. H.261, H.263+). Die Umrechnung von YCbCr in RGB läuft vereinfacht wie folgt:
Mit dem Werkzeug können (2.) Rundungsungenauigkeiten der lokalen JavaScript-Implementation geprüft werden :-) Außerdem kann (3.) die Wirkung von Datenverlusten und -verfälschungen bei der Umrechnung geprüft werden. Dabei kann Stefan Münz' Farbauswähler hilfreich sein. Eine gewählte Farbe wird nach YCbCr kodiert, ein oder mehrere Werte manuell verfälscht und eine Dekodierung ausgeführt. Zusätzlich kann (4.) "rekursives" Kodieren durchgeführt werden. Kodierung nach YCbCr scheint einem stablilen Zustand zuzustreben, Kodierung nach RGB scheint zu explodieren. |