Subpixel-Antialiasing-Regeln


11

Ich hatte kürzlich ein Problem mit dem Subpixel-Anti-Aliasing von Text , das sehr scharfe Farben erzeugt und mich gefragt hat, wie es richtig gemacht werden soll:

Geben Sie hier die Bildbeschreibung ein

Ich habe einige Fälle einer schwarzen Kachel gezeichnet, die Drittel der Pixel darunter bedeckt.

Geben Sie hier die Bildbeschreibung ein

Die Farben stimmen mit denen überein, die ich sehe. Wenn ich jedoch richtig antialiasierten Text betrachte, ist das Ergebnis bei weitem nicht so hell und ablenkend:

von www.lagom.nl

Ich gehe davon aus, dass es ein Gleichgewicht zwischen einer guten Lichtintensität und der richtigen Farbe geben muss. Welche Methoden für das Subpixel-Anti-Aliasing werden verwendet, um so gute Ergebnisse zu erzielen?


Aktualisieren:

Ich habe eine weiße Teekanne zu einem Bild mit 3x Breite und Multisampling gerendert. Im Folgenden vergleiche ich die Mittelung alle 3 Pixel mit der Zuordnung zu RGB. Die Farben scheinen in einigen Fällen immer noch zu hell zu sein (insbesondere im Vergleich zum obigen Beispiel von hier ), nicht dass mein Telefon sie gut erfasst.

Geben Sie hier die Bildbeschreibung einGeben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung einGeben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung einGeben Sie hier die Bildbeschreibung ein OK, mein Monitor muss ein wenig abgestaubt werden


Ich glaube, dass einige Bildschirme ein anderes Layout der Primärfarben haben. Haben Sie Ihre Ergebnisse auf verschiedenen Bildschirmtypen angezeigt?
Trichoplax

@trichoplax nein, aber ich bin zuversichtlich, dass meine beiden Monitore RGB sind. Auch hier interessiert mich mehr, wie Subpixel-Antialiasing-Techniken funktionieren sollen, als eine Lösung für mein Problem.
jozxyqk

Ich meinte nicht verschiedene Primärfarben, sondern nur, dass Rot, Grün und Blau in verschiedenen geometrischen Mustern angeordnet sind. Ihr Algorithmus müsste also wissen, welches Muster verwendet wird, um gute Ergebnisse zu erzielen.
Trichoplax

1
@trichoplax ja, tut mir leid, ich hätte es klarstellen sollen, beide Monitore haben Pixel, die wie in diesem Foto in RGB-Reihenfolge von links nach rechts in Drittel aufgeteilt sind .
jozxyqk

1
Bis zu einem gewissen Grad weist kursiver Text weniger auffällige Farbsäume auf, da die abfallenden Linien nicht zulassen, dass dieselbe Farbe für mehr als einige aufeinanderfolgende Pixel vertikal vorhanden ist.
Trichoplax

Antworten:


3

Ich bin mir nicht sicher, was dort passiert. Wenn Sie sich das Rendern von "Überlegungen" in Ihrem Beispiel ansehen, sehen die "Nachteile" so aus, wie Sie es erhalten, wenn Sie ein grobes Subpixel-Anti-Aliasing durchführen, ohne die erforderlichen "Korrekturen" anzuwenden, damit es gut aussieht. Aber dann sieht das "der" im selben Wort so aus, als gäbe es kein Subpixel-Anti-Aliasing.

Einen guten Artikel darüber, wie gut aussehendes Subpixel-Anti-Aliasing funktioniert, finden Sie hier https://www.grc.com/ct/ctwhat.htm und für den Teil "Fix up" hier https: //www.grc. com / ct / freeandclear.htm und hier https://www.grc.com/ct/cttech.htm

Worauf es ankommt, ist: Wenn Sie nur die R / G / B-Intensitäten berechnen, indem Sie die abgedeckte Fläche für jedes Subpixel berechnen, sind die resultierenden Farbsäume sehr hässlich / irritierend. Um dies zu beheben, müssen Sie einen horizontalen Unschärfe- / Tiefpassfilter auf das Subpixelbild anwenden. Das Ergebnis ist ein Bild, das weniger scharf ist, aber auch weit weniger gesättigte Farben aufweist. Dh so etwas wie dein "Check you" Beispiel.


2

Welche Methoden für das Subpixel-Anti-Aliasing werden verwendet, um so gute Ergebnisse zu erzielen?

Sie rastern die Buchstaben einfach so, als wären sie dreimal so breit.

Die Ergebnisse unterscheiden sich in der Art und Weise, wie Sie die Kurven rastern, insbesondere in der Art des verwendeten Anti-Aliasing- / Sampling-Schemas und in der Verwendung von Schriftartenhinweisen . Eine gute Übersicht finden Sie unter Textrasterungsexpositionen nach Anti-Korn-Geometrie (IIRC wird von Chromium / PDFium verwendet) oder Subpixel-Rendering auf Wikipedia.

Was das angehängte Bild angeht, glaube ich nicht, dass es etwas mit Subpixel-Rendering zu tun hat. Es könnte alles Mögliche sein: falsche Pixelgeometrie , falsches Gamma, falsche Farbraumkonvertierung, ...


Ich würde erwarten, dass Probleme mit der Pixelgeometrie, der Gamma- oder Farbraumkonvertierung als Farbverzerrung an beliebigen Punkten im Bild auftreten und nicht als regulärer Zyklus im Bild der Frage. Die Tatsache, dass es horizontal zwischen übertriebenem Farb-Antialiasing und reinem Graustufen-Antialiasing wechselt, deutet darauf hin, dass die erste Anwendung von Antialiasing in einem anderen Maßstab durchgeführt wurde.
Trichoplax

Ich habe nicht die vollständige Erklärung, da die Verzerrung nicht zwischen den verschiedenen Textzeilen ausgerichtet zu sein scheint, aber es scheint, dass das Problem eher mit dem Subpixel-Rendering von bereits gerastertem Text als mit Vektortext zusammenhängt.
Trichoplax

@trichoplax Ich versuche zu sagen, dass ich bezweifle, dass es ein Problem mit dem Subpixel-Rendering von Anti-Grain gibt. Stattdessen würde ich vermuten, dass die Eingabe früher entstellt wird, als sie in den Rasterizer eingeht. Oder später, aber nicht im Rasterizer selbst.
Ecir Hana

Ja, ich denke, das Subpixel-Rendering wird korrekt angewendet, aber wenn es auf vorgerasterten Text angewendet wird, ist es nicht möglich, ein gutes Ergebnis zu erzielen. Ich glaube nicht, dass der Renderer kaputt ist, ich denke nur, dass ihm die falsche Art von Text zugeführt wird.
Trichoplax
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.