Ich kann es nicht mit Sicherheit sagen, aber ich war selbst daran interessiert und habe versucht, es nachzuschlagen (mit wenig Erfolg). Ich habe jedoch die vielen Makrofotos analysiert, die Sie im Internet für diese Art von Anzeigen finden können.
RGB pixels Pentile Subpixels (RGBG Layout)
--+---+-- --+---+--
X | X | X G r G b G
--+---+-- --> --+---+--
X | X | X G b G r G
--+---+-- --+---+--
Soweit ich das beurteilen kann, scheinen die Positionen der grünen Subpixel genau mit den Positionen der Framebuffer-Pixel (X) übereinzustimmen, und die Intensität wird 1: 1 übertragen. Die roten und blauen Subpixel werden horizontal zwischen den beiden benachbarten Pixeln geteilt, und ihre Intensität scheint der Durchschnitt der rot / blauen Kanäle der beiden benachbarten Framebuffer-Pixel links und rechts zu sein, wodurch die horizontale Auflösung von R und B effektiv halbiert wird.
Diese Strategie scheint sich auf das Diamant-Pentile-Layout zu übertragen, obwohl die roten und blauen Subpixel um ein halbes Pixel nach unten (oder oben) verschoben sind:
RGB Pixels Diamond Pentile subpixels
_________
X X X G | G | G
--> __r___b__
X X X G | G | G
__b___r__
Aufgrund der zusätzlichen vertikalen Verschiebung um ein halbes Pixel für Rot und Blau dieses Layouts, die beim Ansteuern der roten und blauen Subpixel nicht berücksichtigt wird, können Sie möglicherweise feststellen, dass eine horizontale Kante zwischen einem schwarzen und einem weißen Bereich möglicherweise grün erscheint oder Magenta. Sie können diesen Effekt in Makrofotos von Diamant-Pentile-Subpixel-Matrizen sehen, die Text rendern. Aber es gibt eigentlich keine konsequente Verschiebung. Auf einigen Fotos ist es abwärts und auf anderen aufwärts. Ich weiß nicht, ob die Displays anders hergestellt oder bei einigen Geräten nur verkehrt herum installiert wurden.
Ja, Sie können also problemlos alle Subpixel einer Pentile-Anzeige steuern. Jeder Farbkanalwert in Ihrem Bildpuffer wird genau einmal und nur für ein Pixel verwendet. Es ist nur so, dass für die roten und blauen Subpixel die roten und blauen Werte von zwei Bildpufferpixeln gemittelt werden.
Wenn Sie dies wissen, können Sie versuchen, ein komplexeres Subpixel-Rendering durchzuführen. Beachten Sie jedoch, dass Ihr typischer Farbraum wie sRGB nichtlinear ist. Die Filterung sollte in einem linearen Bereich erfolgen. Zum Beispiel hat ein Schachbrett mit abwechselndem 0 und 255 die gleiche Helligkeit wie ein flacher Bereich mit einem Wert um 185 (wenn ich mich richtig erinnere) anstelle von 128.
Abschließend möchte ich darauf hinweisen, dass es möglich ist, Anti-Alias-Filter für nicht rechteckige Abtastgitter zu entwickeln. Für dieses Schachbrett-Abtastgitter, das Sie für die roten und blauen Subpixel haben, hätte das ideale Tiefpassfilter beispielsweise ein Durchlassband in Form einer Rautenform im Spektralbereich. Wenn Sie versuchen würden, die Auflösung zu reduzieren, indem Sie jedes zweite Sample schachbrettartig ablegen, wären diese 5x5- und 3x3-Kernel vernünftige Anti-Alias-Filter, während die 5x5-Version mehr Details enthält:
0 -1 0 -1 0
-1 0 10 0 -1 0 1 0
0 10 32 10 0 1 4 1
-1 0 10 0 -1 0 1 0
0 -1 0 -1 0
Diese können aufgrund der Positionen der Nullen direkt angewendet werden.
Möglicherweise möchten Sie auch eine Verschiebung um ein halbes Pixel für eine oder zwei Dimensionen einfügen, um die relative Positionierung der roten, blauen und grünen Subpixel zu berücksichtigen. Für das Diamant-Pentil-Layout möchten Sie möglicherweise einen der folgenden Filter verwenden:
3 0 0 0 0 3
0 -25 0 0 -25 0 -1 0 0 -1
0 0 150 150 0 0 0 9 9 0
0 0 150 150 0 0 0 9 9 0
0 -25 0 0 -25 0 -1 0 0 -1
3 0 0 0 0 3
um die richtigen rot / blauen Subpixel zu finden, anstatt nur vier Werte zu mitteln.
Das RGBG-Pentilmuster (ohne Diamant) würde nur eine horizontale Verschiebung um ein halbes Pixel erfordern, was zu einem Filter wie dem folgenden führen würde:
-3 3 3 -3
2 30 30 2
-3 3 3 -3
Aufgrund der negativen Filterkoeffizienten muss beim Abschneiden vorsichtig vorgegangen werden. Sie können beispielsweise versuchen, den Rest auf die umgebenden Pixel zu verteilen, um die durchschnittliche Helligkeit beizubehalten.