It is a well known fact that Windows Mobile devices have historically only supported 16Bit color depth even though competing products did 24bit rendering for many years. Microsoft posted a while ago on this subject and made it clear that Windows Mobile 5/6 can support more than 65K colors and OEMs are allowed to ship devices with 262144 colors (18bit) screens & then use dithering to achieve 18bits rendering (WinCE support 8/16/24/32bit). Unfortunately because OEMs always want to keep the cost down the vast majority of the Windows Mobile handsets only have 65K (16bit) LCDs resulting in a poor user experience especially in the browser or when browsing photo galleries. To work around this limitation HTC implemented a dithering algorithm into to their HTC Album viewer (and Resco did the same in the Photo Manager) the same dithering method is applied in the video player (and in CorePlayer too).
Interestingly the same problems also plagues Android handsets who have for the vast majority only 65K displays and as reported by Pocketnow, the Cooliris situation clearly shows that there’s still a long way to go before every application fully supports higher color depths (18/24/32bit). It should also be noted that Android only supported 16bit before version 2.X. The Motorola Droid has a 24bit display compared to the 18bit display on the Nexus One and 16Bit LCD on other Android phones, but OEMs aren’t the only ones to blame here and a great user experience is also heavily depended on what the OS support. Take the iPhone for example: It has a 18bit display and achieves 24bit trough dithering throughout the OS. The iPhone’s 3D drivers are also fully 24bit capable unlike the ones on Windows Mobile and some Android Handsets ( the the Nexus One 16bit drivers and Droid 24Bits drivers) which are limited to 16bit rendering pipelines (Nokia‘s handsets are also all 24bit capable). In the case of Windows Phone 7 Microsoft is allowing developers to create 3D apps in whatever format the want using XNA Game Studio, the application will then automatically fall back to 16bit if the device doesn’t support anything higher. What is in my opinioin most important is that OEMs finally decide to use at least 18bits panels (so 24Bit can be achieve through dithering) to give users a consistent UX (so applications will look identical on all phones) and that Microsoft/Google make sure that hardware drivers on all handsets have 24bits support. Sure, all of this is only noticibale in multimedia scenarios (browsing, picture/video viewing, gaming etc..) and allowing developers to choose between 16 & 24Bit is usefull (especialy for 3d Gaming were performance can be an issue) but we are un 2010 and when a company markets its product as a multimedia centric device it better have what it takes expecially when the compatitors can do it (Apple/Nokia etc..).