Montag, 8. März 2010

Neues zum Display von Nexus One und HTC Desire

Hier sind interessante angebliche Vergleichsbilder zu sehen zwischen der eingebauten Galerie des Nexus One und einer 3rd-Party-Galerie aus dem Android-Market zu finden. Hier noch ein direkter Link zu dem einen der beiden Bilder, das ich einer genaueren Untersuchung unterzogen habe.
Sollten die Tester bei DisplayMate lediglich Opfer schlechter Software geworden sein?
Natürlich ist das mit Vorsicht zu genießen – es ist ein Forumspost eines ganz neuen Mitgileds dieses Forums, das zudem die Bitzahlen durchenanderbringt (wenn, dann unterstützt die Android-Galerie 16bit und die andere Galerie etwas mehr).
Außerdem stellt sich die Frage, wie diese Bilder überhaupt entstanden sein sollen. Für reines Abfotografieren sind sie fast zu gut, und bei einem Screenshot würde ich eigentlich erwarten, dass man dann den Inhalt vor Konvertierung durch den Displaytreiber zu sehen bekommt, will sagen in ursprünglichen 24bit, nicht die runtergerechnete Version, die dann tatsächlich das Display erreicht.
Wie dem auch sei: Es fällt auf, dass beide Versionen gedithert sind, die schönere Version aber stärker.
Wenn man sich die Farbwerte im Bild einmal genau ansieht, findet man große Histogrammausschläge bei 64 Grünabstufungen und je 32 Blau- und Rotabstufungen – genau die 16 Bits also, die das Display realiter bieten soll: Je 5 (32 Farben) für Rot und Blau und 6 (64 Farben) für Grün.
Dass Zwischenstufen im Bild ebenfalls (deutlich weniger zahlreich) vorhanden sind, deutet dann doch auf eine wie auch immer geartete analoge Übertragung hin, etwa durch Abfotografieren.
Fazit ist also: Die Vergleichbilder scheinen tatsächlich von einem Display abfotografiert zu sein, das nur 16bit Farbtiefe bietet. Die schönere Version der 3rd-Party-Galerie zeigt, dass das gedithert gar nicht mehr so sehr auffällt, gerade bei der hohen Auflösung des Displays – außer in Farbflächen.
Außerdem wird klar, dass die Original-Google-Galerie deutlich andere Farben anzeigt. Besonders deutlich ist das an den roten Füßen des Androiden.
Das könnte bedeuten, dass die schreckliche Farbänderung („Optimierung“) ausschließlich durch die Galeriesoftware vorgenommen wird und nicht Teil der Displaytreiber selbst ist. Das wäre für mich eine extrem gute Nachricht, denn das würde bedeuten, dass mit der schlichten Wahl eines anderen Programms die Anzeigefehler halbwegs auszubügeln wären – zumindest teilweise, denn ohne Farbmanagement wird der große Gamut des AMOLED-Displays automatisch zu einer verstärkten Sättigung führen.
Fragt sich nur, wie es dazu kommt, dass die Anzeige der 3rd-Party-Galerie deutlich besser gedithert ist. Letztlich scheint das darauf hin zu deuten, dass Googles Galerie die Bilder selbst schon auf einen 16bit-Farbraum herunterrechnet, bevor sie dann an den Displaytreiber weitergegeben werden, und zwar ohne zu dithern. Das wäre eine durchaus seltsame Idee – aber vielleicht steckt ja der Wunsch dahinter, die Farben bestmöglich auf 16bit abzubilden, und das Dithering wurde aus Zeitgründen lieber seingelassen?
Wie auch immer – das klingt ganz gut. Mit 16bit Farbtiefe könnte ich notfalls leben. Mit massiver Farb„optimierung“ nicht. Wenn das nur ein zweifelhaftes Feature der Google-Galerie ist, muss ich sie ja nicht benutzen.
Bin gespannt, was sich da weiterhin ergibt.

Update: Ich hatte diesbezüglich auch an DisplayMate geschrieben. Hier die Antwort:
The Nexus One's built-in Browser, Gallery and other applications use the 16-bit interface. Readers have found other downloadable applications that appear to display 18 to 24-bit color, so it appears that Google has shipped the phone with incomplete software and presumably they will fix this problem soon. We've updated the articles to reflect this:
See http://www.displaymate.com/Nexus_iPhone_ShootOut.htm
And http://www.displaymate.com/Nexus_One_ShootOut.htm
Und tatsächlich, da steht es:
Readers have sent in screen shots from an Astro Image Viewer Application that don’t show these artifacts and appear to be 24-bit color, so presumably Google will correct this shocking problem soon. The primitive 16-bit display interface should be eliminated.
Aber: 24-bit Color? Die Screenshots von oben hatten zwar keine groben Abstufungen, waren aber immer noch gedithert und hatten nur 16-bittige Farbe.
Vielleicht hat BeRo recht, der in einem Kommentar unten das Open-GL-ES-Interface für die Farbbeschränkung verantwortlich macht. Möglicherweise nutzen beide Viewer dieses Interface, um hübsche Animationen auf den Schirm zu zaubern, der B&B-Viewer optimiert sie aber besser, indem er dithert?
Echte 24-Bit-Farbe auf dem Display wäre natürlich eine tolle Sache. Ich hoffe, dass sich das noch bestätigt.
Siehe auch: Schlechtes Display beim Nexus One

1 Kommentar:

  1. Also ich habe mal die N1 Galerie (das APK von den XDA Devs) auf meinem Milestone installiert Und tatsächlich die N1 Galerie rechnet mein Testbild, welches auch 4 lineare Farbverläufe von links nach rechts, weiss, rot, blau und grün darstellt, zu 16-bit herrunter. Da sehe ich dann auch die Abstufungen. Aber wenn ich das gleiche Testbild in der Milestone eigenen Mediengalerie öffne, dann sind die Farben smooth und das ohne Dithering (mithilfe einer Lupe bestätigt, ob pixelbasiertes Dithering vorhanden ist).
    Die N1 Galerie verwendet zudem OpenGL ES und muss von daher wohl 16-bit Texturen verwenden und die native Mediengalerie blittet den Bildinhalt wohl direkt in den wohl 24-bit farbauflösendem Pixelbuffer, so meine Vermutung.

    AntwortenLöschen