[Openicc] ookala-mcf

Hal V. Engel hvengel at astound.net
Fri Dec 26 11:14:29 PST 2008


On Friday 26 December 2008 01:50:16 Kai-Uwe Behrmann wrote:
> Am 25.12.08, 17:37 -0800 schrieb Hal V. Engel:
> > On Thursday 25 December 2008 07:38:48 Alexandre Prokoudine wrote:
> >> What do you guys know/think about
> >> http://sourceforge.net/projects/ookala-mcf/ ?
> >
> > There is also a LUT plug in but the current code only supports a single
> > monitor since it is currently hard coded to only use display 0 screen 0
> > even though the API has the ability to pass in the information needed to
> > specify a display device.  It does not have XRandR LUT support.  It does
> > have Windows and X11 code but no support for OS/X LUTs.
>
> Do you write about grafic card LUTs or monitor side ones?
> Given that the original intented displays are 10-bit it would be
> interessting whether the grafic card or the display device supports a
> higher bit depth to place the calibration curves.
> Did you see facilities to upload other colorimetric informations into the
> display, like primaries or even CLUT's? 

The LUT utilities in this frame work are for the OS supported graphic card 
LUTS.  All non-VESA standard DDC/CI adjustments like setting internal monitor 
LUTs or internal monitor matrices are located in monitor specific plug ins 
like the one for the HP DreamColor.  

The DreamColor plug in does not directly alter the internal monitor LUT as far 
as I could tell but I didn't dig very deep and the code for this plug in is 
extensive at about 6,500 line of code.  The plug in does have code to adjust 
the white point and brightness of the back light.  This plug in is by far the 
largest and most complex of the plug ins in the tarball.  The plug in frame 
work is very flexible but it also means that there is lots of work that needs 
to be done to make this frame work useful.

One other comment about the LUT code.  There are three significant flaws with 
the code as is.  

1. It does not support OS/X.

2. It lacks multi-monitor support in the back end code but the API should be 
OK at least on X11 and Windows multi-monitor systems.  So as it stands multi-
monitor support is intended but currently unimplemented.

3. It lacks XRandR support.

I have C++ code in the LProf LUT module that could be graphed into the LUT 
plug in for this frame work with out too much difficulty since the LUT code in 
the plug in looks very much like early versions of the LProf LUT modules.  
This would fix #1 and #2. 


> From the descriptions, the HP
> DreamColor's should allow for at least matrix trasnformations inside the
> display.

Yes it appears that the DreamColor plug in does allow for the creation of 
internal monitor calibration matrices (yes plural as it appears that you can 
specify and create more than one calibration target for each monitor).  
Information on calibration targets, installed sensor devices and the plug in 
chain are located in a set of configuration XML files that are located in /etc 
and $HOME/.<something>.  These work in the normal way and the docs said the 
example XML files have detailed in line documentation (I didn't look so I 
can't confirm this but I expect that this is the case).

>
> > I could not get the code to build on my machine and most of this appears
> > to be because of castings issues between wxString, *char and std::string.
> >  The number of places where this happens is extensive.  I suspect that
> > the development work was done using a build of wxWidgets with unicode
> > support turned off.
>
> Hmm, but probably with a request, this can be solved to something more
> portable by using macros?

From the documentation it appears that HP is expecting "the community" to 
continue the work on this frame work most likely in cooperation with HP.  I 
suspect that the code on SourceForge is a very early initial version since it 
appears that I was the first person to download the tarball and I am likely 
the first person outside of HP to try to build this code.  I expect that we 
will see them making more updates in the next weeks/months.   I will try to 
find an email address for someone there and/or contact the admin for the 
SourceForge project to ask them to join this list since we are a major part of 
"the community" and they may not realize this yet.

I was able to fix many of the compile errors with the standard wx conversion 
macros and functions but there were so many of them that I gave up.   I would 
have continued working on it if there were enough there to build a working 
system but because of the missing "sensor" libraries and SDK header files 
there was no reason to continue other than to perhaps use the "Example Sensor" 
(dummy code that returns fake values) plug in to have a look at the UI.   I 
should add that it appears that all of these string related issues will need 
to be fixed in order to make the GUI support more than English. 

Keep in mind that the GUI is a plug in and all of the code with these issues 
were in the GUI plug in and not the main frame work or any of the sensor, 
monitor or other plug ins.  So even if the GUI plug in does not get fixed it 
can be replaced without too much difficultly because of the high level of 
modularity.

FYI - The code is all C++, is object oriented and coded in a very C++ way 
using vectors and other C++ dynamic structures.   The code is also readable 
and not hard to understand.

>
> > Since this came out of HP I wonder if Marti Maria knows anything about
> > this?
>
> Some time ago, around the anounement of the 10-bit HP displays, where
> although rumors on the colorsync list about a open source project. I did
> not knew the name. Thanks Alexandre for spotting and Hal for your nice
> review.
>
> kind regards
> Kai-Uwe Behrmann



More information about the openicc mailing list