bkh hat geschrieben: Mo 25 Dez 2017 14:56Das Problem ist (wieder einmal), dass Mittelwerte ohne Berücksichtigung der Tonwertkurve berechnet werden. Wenn du den Gauss'schen Weichzeichner nimmst, hast du den gleichen Effekt. Wenn du nach 16 bit linear konvertierst und dann weichzeichnest, verschwindet der Effekt.
Oh ja, Gamma hab ich nicht mehr wirklich im Blick gehabt. Allerdings vermute ich, dass das hier nebensächlich ist. Diese Pixel in extremen Schwarz-Rot-Weiss würde in YCrCb immer die gleichen Werte ergebe, egal, ob das Gamma nun 1 oder 2.2 ist.
Ist auch blöd, dass ich hier das böse Testmuster fürs Gamma genommen habe. Mir geht es aber nicht um den Eindruck, sondern um die echten Zahlenwerte, die die Pixel haben.
------
Ich hab da mal ein bisschen mit Bordmitteln experimentiert. Das Ergebnis überrascht mich, bin mir aber nicht sicher, ob ich den Prozess wirklich 100% nachgestellt habe. In meinen Voreinstellungen des Kanalmixers habe ich CrYCb drin, muss ich irgendwann mal erstellt haben.
Schwarz wird zu 128/0/128, üblichere Reihenfolge und "Schreibweise" 0/+0/+0.
Rot wird 255/76/84 bzw. 76/+127/-44
Weiss wird 128/255/128 bzw. 255/+0/+0
Beim simpelsten Subsampling wird nun der Durchschnitt von 4 Pixeln Cr und Cb gebildet, wobei die Hälfte der Punkte farblos ist. Macht CrCb +63/-22.
Bei einem nach "Farbigkeit" gewichteten "Durchschnitt" würden die farblosen Punkte ignoriert, CrCb wären +127/-44
Unerwaretes Jpg.png
1) Das Ursprungsbild aus reinem Schwarz-Rot-Weiss
2) Echte Jpg-Kompression
3) Aus dem Original nach CrYCb umgerechnet. Die 2 Balken haben die von Hand berechneten CrCb-Werte
4) Cr und Cb weichgezeichnet. Sehr subtil, erkennt man hier praktisch nur beim Reinzoomen.
5) nach RGB zurückgerechnet.
6) Ein Ausschnitt zum schöneren Vergleich zwischen Original und Jpg.
Die roten Pixel sind wie gewünscht wieder knallrot geworden.
Das bunte Schwarz, dass außerhalb des RGB-Raums ist, ist aber unerwartet Hell geworden. Weiss ebenso sehr dunkel.
In 32Bit sind die RGB-Werte für das bunte Schwarz 176/-76/-77.
Der Kanalmixer setzt die falschen Werte einfach auf 0, und ich vermute, Jpg wird bei so unmöglichen Farben das Gleiche tun - weiss ich aber nicht!
Ich muss echt mal wieder ans Programmieren kommen

Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.