Ansteuern eines 24-BPP-Displays im 5:6:5-Modus

Ich habe ein TFT-Display, das Anzeigedaten mit 24 Bit pro Pixel (BPP) akzeptiert, aber mein Anschlussmechanismus unterstützt nur den 5:6:5-Modus.

Was ist die bevorzugte Methode, um das Display dazu zu bringen, die zusätzlichen Pixeldaten zu löschen und die 5:6:5-Daten zu verwenden?

Soll ich einfach die unbenutzten Datenleitungen herunterziehen?

Antworten (3)

Es gibt zwei gängige Vorgehensweisen. Ein Ansatz besteht darin, alle unbenutzten Bits mit einem festen Wert (typischerweise Null) zu verbinden. Dies führt zu einem leichten Helligkeitsverlust, aber 3 % sind wirklich kein Grund zur Sorge. Die andere besteht darin, sie der Reihe nach mit den oberen Bits zu verbinden, sodass ein 5-Bit-Farbwert als [D4 D3 D2 D1 D0 D4 D3 D2] verbunden wird. Dadurch wird jede vierte Helligkeitsstufe die Pixelhelligkeit um 9 statt 8 erhöhen und den gesamten Dynamikbereich nutzen.

Bei der Entscheidung für eine Methode sollte man jedoch berücksichtigen, welche Software erwartet wird. Ich bevorzuge 5:5:5 bis 5:6:5 (unter Verwendung des oberen Bits als so etwas wie einen Transparenzschlüssel), weil Werte mit R=G=B alle die gleiche Chrominanz und den gleichen Farbton haben. Bei einer 5:6:5-Anzeige könnte Software, die eine einheitliche Grauskala sucht, entweder (n,2n,n) für alle Werte verwenden (unter der Annahme, dass Weiß 31,62,61 ist), oder sie könnte 1 zu den Grünwerten für hinzufügen n>=16. Wenn die Software einfach das obere Bit des "grünen" Werts in das untere Bit kopiert, können Sie mit [D5 D4 D3 D2 D1 D0 D4 D3] oder [D5 D4 D3 D2 D1 D5 D4 D3] bessere Ergebnisse erzielen. als Sie mit [D5 D4 D3 D2 D1 D0 D5 D4] bekommen würden (was die gleichmäßigste Rampe mit 63 Schritten ergeben würde). Wenn die Software das untere Bit einfach leer lässt, sind Sie mit [D5 D4 D3 D2 D1 D5 D4 D3] am besten dran.

Gute vollständige Antwort mit Begründung und Beispielen.

Verbinden Sie für einen maximalen Helligkeitsbereich die nicht verwendeten lsbits mit dem niedrigsten Bit Ihrer Quelle. Wenn Sie nur eine Verbindung zu 0 herstellen, wird die maximale Helligkeit leicht eingeschränkt.

Eine sehr einfache Lösung wäre, Ihre r/g/b-Busse mit den höchstwertigen Bits der entsprechenden Anzeigebusse zu verbinden, dh Eingang R4 -> Anzeige R7, ..., Eingang R0 -> Anzeige R3 und ähnlich für andere Subpixel. Auf diese Weise können Sie zumindest den größten Teil des Dynamikbereichs Ihres Displays erhalten. Die verbleibenden (niederwertigsten) Bits können nach Belieben entweder auf 0 oder 1 fest verdrahtet werden. Wenn sie alle 0 sind, verlieren Sie oben etwas Dynamikbereich, behalten ihn aber unten (nahe 0) und umgekehrt. Diese Transformation kann ausgedrückt werden als

R = R << 3 + (0...7);
G = G << 2 + (0...3);
B = B << 3 + (0...7);

Die Bildqualität wird nicht großartig sein, aber das ist eine Einschränkung, die Sie nicht überwinden können (Sie können keine Informationen erstellen, die nicht existieren).

Wäre die ideale Lösung ein 16-bp-Display anstelle eines 24-bp-Displays?
@James: natürlich, wenn möglich.