Does anybody know any heuristics to work out if a connected display EDID data blob is a projector, CRT or LCD? For the
new GNOME color control panel we want to select the correct device type by default, but allow the user to change it if the heuristic is wrong or the EDID data is crazy. Ideas welcome. Thanks.
Published by
hughsie
Richard has over 10 years of experience developing open source software. He is the maintainer of GNOME Software, PackageKit, GNOME Packagekit, GNOME Power Manager, GNOME Color Manager, colord, and UPower and also contributes to many other projects and opensource standards. Richard has three main areas of interest on the free desktop, color management, package management, and power management.
Richard graduated a few years ago from the University of Surrey with a Masters in Electronics Engineering. He now works for Red Hat in the desktop group, and also manages a company selling open source calibration equipment. Richard's outside interests include taking photos and eating good food.
View all posts by hughsie
How about an open database where everyone (?) can upload EDID data? There should be enough different devices available to the community.
This database can be used to create the heuristics, check heuristics, create black-/whitelists …
Regards, Stefan
I’ve tried that before with hal-info, and it didn’t scale at all. The ratio of users to people uploading data was far too high to make it work.
Did you try to ask the usual X.org/graphics suspects Adam Jackson, Dave Airlie or Keith Packard? From what I know the should know most of the nasty EDID tricks.
There was a possibility to upload to hal-info? I didn’t know that!
How about adding the upload functionality to gnome-control-center, so that if the heuristics didn’t match and the user changed it he will be suggested to “share with the community”.
Adam Jackson (ajax) is generally the EDID guru in X land. I definitely think you should contact him, although I suspect he’ll discourage you based on how much broken EDID he’s seen over the years. :) I.e., I think randr would likely export that information already if people felt it could be done reliably. Maybe I’m wrong, though.
Maybe have a look at the Horizontal & Vertical image size bytes (bytes 21 & 22). Wikipedia says projectors will often report 0 while others (LCD/CRT) should report numbers >0.
Projectors are relatively easy to herusticly determine – they’ll have a physical size of 0x0.
I’ve absolutely no idea how I’d try to go about distinguishing between CRT and LCD panels, though.
Available refresh rates, maybe? I don’t know much about EDID, but wouldn’t the range of refresh rates for LCD panels be much narrower (e.g. only 50, 60 and 120) then for conventional displays?
There are people still using CRTs? New ones?
I think the question that also needs to be answered, is the stability of xy as the phosphors decay. I know Y changes, but I’m not totally sure if xy change significantly. Because if xy changes much, the EDID color data is next to useless after about 6 months, since that’s roughly the 1/2 life for the phosphors. I know xy changes between some and a lot for CCFL phosphors in displays, which if it’s a lot will wreak havoc on any colorimeter that doesn’t have an adjustable calibration matrix to account for the changing spectral power distribution of the light source. And LED can be even worse.
So I’m thinking we need to go back to CRTs and candlesticks, honestly.
I dug a bit more into this ancient world. Turns out the primaries of a CRT do decay primarily in Y, but minimally in xy. The issue though, is that they don’t decay at the same rate. So the Y for each phosphor changes differently, resulting in a white point shift, mostly toward magenta since it’s the green phosphor that changes the most.
For an old CRT, the EDID xy data for primaries might be valid, but the xy data for the white point probably isn’t. Correcting for this without measurements is tricky, but I’m not sure that’s what you have in mind, once you’ve learned if something is a projector, LCD, or CRT?