Vierzehnhundertfünfundvierzig

In RGB-Darstellung zeichnen sich Grautöne dadurch aus, dass ihre Rot-, Grün- und Blauwerte (ungefähr) gleich sind.
Reines Schwarz ist RGB(0,0,0), reines Weiß (255, 255, 255) – wobei die übliche Repräsentation von 8 bits pro Farbkanal angenommen wird.
Sind Schwarz und Weiß eigenständige Farben? Oder nicht doch nur Extreme von Grau?
Wer nicht nur Schwarzweißmalerei betreibt, dem sollte klar sein, dass zwischen Schwarz und Weiß eine Kontinuum an Grautönen besteht. Praktikabler ist es jedoch, diese Grautöne zu diskretisieren, auch wenn sich dann nicht mehr alle Nuancen auflösen lassen.

Zur Visualisierung habe ich mal eine Graphik erstellt.
Die erste Zeile reduziert den Graubereich auf ein einzelnes Bit – also nur Schwarz und Weiß. Bei zwei Bit haben wir bereits vier äquidistante Grautöne zur Verfügung (zusätzlich RGB(85, 85, 85) und RGB(170, 170, 170)).
In der dritten Zeile werden mit 2.6 bit alle Graustufen mit Vielfachen von RGB(51, 51, 51) dargestellt.
Vier Bit genügen für 16 Grautöne RGB(i*17, i*17, i*17), wobei i von 0 bis 15 läuft.
Mit 4.2 Bit erzeugen wir entsprechend 18 Grautöne RGB(i*15, i*15, i*15), mit i bis 17.
Bei 5.7 Bit haben wir schließlich fifty-two shades of gray. Man sieht aber immer noch Abstufungen zwischen den einzelnen Bereichen.
Bei 6.4 oder 7 Bit kann das menschliche Auge kaum noch alle Nuancen dieser 86 bzw. 128 Grautöne auflösen, bei 8 Bit endgültig nicht mehr. Höhere Auflösungen können allerdings noch rechnerisch für bestimmte Anwendungen sinnvoll sein.

So wie mit Grautönen (und leichte farbliche Beimischungen habe ich hier gar nicht berücksichtigt, Gammakorrekturen erst recht nicht) ist es bei vielen Gegensatzpaaren.
Zwischen zwei extremen Werten liegen unendlich viele Zwischenwerte. Dennoch ist es oft einfacher, den Wertebereich zu reduzieren. Die Computerei macht kaum etwas anderes. Computer verstehen nur digitale – also abzählbare – Werte.
Die Kunst besteht also darin, ein Kontinuum so auf diskrete Werte abzubilden, dass keine wesentliche Information verloren geht, aber auch nicht zu viele insignifikante Daten mitzuschleppen.
Was lässt sich ohne Informationsverlust noch als Schwarz oder Weiß darstellen? Wo muss man die Graunuance stärker differenzieren? Wo sind Gammakorrekturen sinnvoll?
Die Übergänge sind fließend und kontinuierlich. Allgemeingültige Abgrenzungen und Schwellenwerte gibt es nicht. Je nach Anwendungsfall muss man jedesmal neu festlegen, wo schwarz oder weiß beginnen, und wie viele Grauwerte man berücksichtigen muss.

Und wie man oben gesehen hat, muss auch der Informationsgehalt in bit nicht unbedingt ganzzahlig sein.

Vor längerer Zeit hatte ich einmal das Problem, dass ich zwar mit Gleitkommazahlen rechnen musste, aber in den Fällen, in denen es sich um ganze Zahlen handelte, einen besonderen Algorithmus auf diese anwenden musste.
Mir blieb nichts anderes übrig, als zu runden, und die Differenz zwischen Originalwert und gerundetem Wert zu vergleichen. Wenn die Differenz „sehr klein“ war, ging ich von ganzen Zahlen aus.
Dieses Verfahren ist weder elegant noch unfehlbar, aber aus pragmatischen Gründen notwendig.

Ach .. und um noch ein wenig weiter abzuschweifen:
Es gibt eine (nicht-stetige) Funktion, deren Name mir jetzt partout nicht mehr einfallen will, die für alle rationalen Zahlen gleich 1 ist, und für alle nicht-rationalen Zahlen gleich 0. Wenn man die (in einem beliebigen Intervell) integriert, erhält man als Fläche unter der Kurve immer 0 (vermutlich lernt man das aber in kaum einem Integrationskurs, auch nicht wenn man den Grenzwert der Obersumme bestimmen kann).

Und die Moral von der Geschicht‘ ist, dass es je nach Einsatzzweck sinnvoll sein kann, mit diskreten Werten oder einem Kontinuum zu arbeiten.

Shades of Gray

Über Anne Nühm (breakpoint)

Die Programmierschlampe.
Dieser Beitrag wurde unter Uncategorized abgelegt und mit , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

19 Antworten zu Vierzehnhundertfünfundvierzig

  1. v1r3s schreibt:

    Offtopic: Dein neues Avatar-Bild wäre auch was für dein Boudoir 🙂

    Like

  2. N.N. schreibt:

    Hatte als Überschrift erst „Shades of Gay“ gelesen.

    Like

  3. nabla schreibt:

    Ob die (ich bin versucht Dirac-Funktion zu schreiben, aber bleibe lieber bei) charakteristische Funktion der rationalen Zahlen integrierbar ist, hängt vom verwendeten Integrationsbegriff ab. 🙂

    Like

    • Um eine Dirac-Deltafunktion handelt es sich nicht.
      Die definiert sich ja gerade so, dass die „Fläche“ unter der Kurve 1 wird. D.h. man nutzt den Grenzwert, wenn man beispielsweise eine Gauss-Glocke immer schmaler und höher macht, so dass die Fläche darunter konstant bei 1 bleibt.

      Bei welchem Integrationsbegriff würde man denn einen Wert ≠0 erhalten, wenn man darüber integriert?
      Es ist doch so, dass jeder rationale Abszissenwert (mit Ordinate 1) von überabzählbar unendlich vielen irrationalen Werten (mit Ordinate 0) umgeben ist.
      Die „wenigen“ rationalen Werte haben da überhaupt keine Chance, „Fläche“ aufzubauen, weil die jeweilige „Breite“ exakt gleich 0 ist.

      Like

  4. Emannzer schreibt:

    Auf jeden Fall stimmen die Graustufen auf meinem kalibrierten Monitor. Und so soll es ja auch sein; eben nicht Schwarz-Weiß. Farbtheorien sind ein weiteres Thema für sich. Es kommt ja auf den Farbraum an – und was dieser abzubilden vermag.

    So gesehen, ein weites Feld innerhalb vieler Grauzonen.

    Gruß vom Emannzer (sRGB), dem das in Verbindung mit Gamma 2.2 reicht. Übrigens fand ich deinen alten Avatar schöner *duck* 😉

    Like

  5. Pingback: Ist der Ruf erst ruiniert, lebt sich’s endlich ungeniert. //1452 | breakpoint

  6. Pingback: Am Anfang war das Bit – #Blogparade zur Digitalisierung @OttoGroup_Com //1482 | breakpoint

  7. Pingback: Aus meinen Tweet-Beständen //1618 | breakpoint

  8. Pingback: Digiti Digitalandi //1878 | breakpoint

  9. Pingback: Fensterfarben //2855 | breakpoint

Hinterlasse einen Kommentar