Color Correction using Linux?

Discussion in 'Digital Photography' started by Thomas T. Veldhouse, Oct 4, 2005.

  1. So, I have a Spyder2 that I use with Windows XP and it works great. It
    creates the ICC profile and loads it into the video hardware (Radeon
    9700Pro) and images are displayed correctly. Is it possible to load
    these profiles with Linux? I have never heard of a DRM/DRI option to do
    this. Any chance there is support for the Spyder with Linux?
     
    Thomas T. Veldhouse, Oct 4, 2005
    #1
    1. Advertisements

  2. To the best of my knowledge, no. That is the principle reason I still
    own a Windows based computer. There's the Little CMS system for adding
    ICC support to various applications but although it's still an active
    project it doesn't appear to have been too pervasive. This is an area
    where Linux really needs a bold company to explore it as a niche. Might
    happen one day...
     
    Derek Fountain, Oct 5, 2005
    #2
    1. Advertisements

  3. It would need the support of the hardware vendors. NVidia and ATI have
    proprietary drivers for their newest cards, and they would have to be
    persuaded to support some "standard" for loading profiles I guess.
     
    Thomas T. Veldhouse, Oct 5, 2005
    #3
  4. Thomas T. Veldhouse

    Paul Allen Guest

    If I may be permitted a question rooted in my own ignorance, does it
    have to be done at the device driver level? Given that the hardware
    vendors are not sufficiently motivated, is there some fundamental flaw
    in plugging color management into applications like the Gimp? (I do
    notice that the Gimp plugin for Little CMS seems to be dormant.)

    Paul Allen
     
    Paul Allen, Oct 5, 2005
    #4
  5. If the video card is blowing out too much white, it is pretty hard to
    fix that just in software. The card needs to be instructed to not
    output so much white. That is why the profiles are loaded into the
    video card. When you calibrate the monitor, you are actually setting
    teh monitor to output at an expected level based upon a known input [via
    the video card]. The calibration process attempts to adjust both of
    these factors.

    So, I didn't really answer your question. The way it appears to me is
    that if the hardware is not running optimally, compensating in software
    will be futile (rich black may show as dark gray if the video card is
    signalling too much output. You might get by using software as opposed
    to using nothing, but it isn't really optimal. Further, if these
    profiles are created, they can be used on different operating systems,
    as the hardware is the same. A software calibration would be different
    among software implementations.
     
    Thomas T. Veldhouse, Oct 5, 2005
    #5
  6. It would need the support of the hardware vendors. NVidia and ATI have
    I only have experience with nVIDIA, but my understanding is that their
    Linux device driver is pretty much the same as their Windows one. It has
    a different interface to the kernel, of course, but the underlying
    technology is from the same code. You'd certainly think that if they go
    to the lengths of making the hugely complicated 3D stuff work on Linux
    they'd be able to implement the "stuff these numbers into these
    registers" thing...
     
    Derek Fountain, Oct 6, 2005
    #6
  7. Yes, I would love to believe that ... but, that is why I am asking, I
    have never seen it. I use an ATI 9700Pro card myself, but I would
    switch cards if I could get this sort of support in Linux. I don't
    think there has been any incentive for NVidia to use resources to
    develop this as of yet, as there has not been a single response to this
    thread or my googling so suggest it has been done by anybody.
     
    Thomas T. Veldhouse, Oct 6, 2005
    #7
  8. Thomas T. Veldhouse

    Paul Allen Guest

    This sounds like the process for misadjusting a video card to match
    a misadjusted monitor. Wouldn't you start by adjusting the monitor
    to have correct white and black values, and then move on to fixing
    colors?
    Well, several things come to mind here. First, the goal is to dump
    that second OS. Second, if a software-mediated color profile is a
    standard ICC profile, it will just work on any OS that supports it.
    Finally, there is no reason to have different software implementations
    of color management, so all applications will behave the same.

    Have you heard about the ICC Profiles in X project?

    http://www.burtonini.com/computing/x-icc-profiles-spec-0.1.html

    It's currently used by three applications, including the upcoming
    2.4 version of the GIMP. I imagine it still falls short of what
    a pro needs, but is it progress?

    Paul Allen
     
    Paul Allen, Oct 6, 2005
    #8
  9. You do adjust the monitor. With the Spyder, they start you with
    specific settings and then you do fine color adjustments beyond that.
    Color management in the software is only emulation. You need
    colormanagement in the hardware. If the video card is outputing a
    signal to the monitor for dark black that is interpretted by the monitor
    as dark grey, the the card needs adjusting [this is a dramatic example,
    and probably not realistic]. The ICC profile does this. The
    calibration hardware and software is used to create the ICC profile in
    the first place, but it is based upon the monitor configuration as well.

    As far as getting rid of a second OS, that is not going to happen. I
    would have three actually, but I don't have the time or space to deal
    with it.

    No, I have not. I will do some research. Anything you might summarize
    for me?
    Almost certainly if it isn't integrating with the hardware. I am sure
    it is used for color mappings and for profile embedding in the software.
    It isn't used to adjust hardware settings. Thus, it is probably used to
    convert an image between color spaces for instance; perhaps to target a
    specific printer.
     
    Thomas T. Veldhouse, Oct 6, 2005
    #9
  10. Thomas T. Veldhouse

    Paul Allen Guest

    OK, so the business about the video card "blowing out too much white"
    was just colorful language. That's fine.
    OK. Why? How is tweaking the pixels as they are written to the frame
    buffer different from adjusting the lookup tables the frame buffer
    uses to generate the video signal? Doing it in software may be
    emulation of the hardware, but what's wrong with that? How is the
    outcome different?
    I'm sorry to hear that. I keep Windows around because TaxCut changes
    every year and it generally doesn't run well under Wine, and I have
    three games that are Windows-specific. I don't need it for anything
    else, so it almost never gets booted.
    Well, the link does it better than I can, but the basic idea is
    simple. You stash the profile for each of your displays in the
    X server as a fetchable resource. Applications can then query the
    server to discover which display their window is on and apply the
    appropriate profile.
    Hmmm.. I guess you're saying it almost certainly falls short, not
    that it is progress. How does this approach produce a result different
    from tweaking the lookup tables in the frame buffer?
    Nope. It doesn't do color spaces yet, and that's probably it's biggest
    lack from a pro's point of view. Its sole purpose is to facilitate
    color management on display screens. It doesn't know anything about
    printers, scanners, or anything but displays.

    Paul Allen
     
    Paul Allen, Oct 7, 2005
    #10
  11. Thomas T. Veldhouse

    Nigel Rowe Guest

    Maybe xcalib (http://www.etg.e-technik.uni-erlangen.de/web/doe/xcalib/) will
    do what you need.

    From the home page:-
    "xcalib is a tiny monitor calibration loader for XFree86 (or X.org) and
    MS-Windows."
     
    Nigel Rowe, Oct 7, 2005
    #11
  12. The hardware dictates the gain for each color channel. The video card
    will have more capability of describing an image than that monitor will
    of displaying one. So, to get the two in sync, you calibrate them so
    that when software says "red" the video card will say the correct thign
    to the monitor and the monitor will in turn interpret it correctly and
    actually display red, rather than pink for instance. If the video card
    is miscalibrated in such a way to set the gain for "black" such that it
    instructs the monitor to display dark grey because the two are not
    calibrated, and then further the monitor is adjusted too bright and
    displays light gray, then there is NOTHING software can do to force that
    system to show true black unless that video card can first be modified.
    The video card needs to be instructed what to output so that the monitor
    will interpret it as black. Oddly, I have no direct experience with
    calibrating video equipment other than with the Spyder2, but I do have
    experience calibrating audio equipment (i.e. digital hearing aids) and I
    have become fully aware of the interaction between hardware and software
    to affect calibration.
    I keep Windows because it is easy to use, period. Everybody uses MS
    Office, so do I. Most of the good games only work on Windows or a Mac
    OSX, like World of Warcraft.
    All it can do is output color to match a hardware profile, but if the
    hardware profile is not loaded, the color still will not match. The
    link below is very very green at a 0.1 level, and it clearly does not do
    hardware integration.
    I think I indicated a few paragraphs above.
    Correct, and without the hardware also running on the same profile the
    colors can not be matched. All images have a color space embedded in
    them [or an implied/guessed color space if none are embedded], so there
    is always color mapping going on. The project you reference above is
    only doing 1/2 of the job.
     
    Thomas T. Veldhouse, Oct 7, 2005
    #12
  13. Yes indeed, this looks very interesting!

    Thanks!
     
    Thomas T. Veldhouse, Oct 7, 2005
    #13
  14. Thomas T. Veldhouse

    Paul Allen Guest

    Again, you're describing a process for tweaking the hardware to
    correct for a maladjusted monitor. It is trivial to adjust the
    monitor so that black is black and white is white. Why can color
    adjustment between black and white only be done in the video card?
    Yeah, a lot of people have that misconception. Suit yourself. I
    choose to have ease of use *and* no monopoly to lock me into expensive,
    buggy, insecure, badly-designed software.
    I use OpenOffice and nobody cares, because I'm totally interoperable.
    And I'm utterly immune to Word macro viruses and other nasties.
    I don't spend much time on games, although there's a growing collection
    of such stuff for Linux. I just heard that Wine now supports Direct X
    9, which means that "all the good games" are now candidates for running
    on x86 Unix. Cool!
    What's your point? Of course the color will not match if the profile
    is not used.
    The link is "green"? What are you talking about?
    Sorry. You didn't.
    Whatever. You haven't explained why that's a true statement.

    Paul Allen
     
    Paul Allen, Oct 7, 2005
    #14
  15. The Spyder2 process DOES have you adjust the monitor. That is probably
    why they call it "monitor" calibration. However, an ICC profile is
    created and loaded into the video card for that particular monitor. Go
    head and look at what a Spyder or similar devices does so that I can
    save the effort of describing it in a less than perfect manner.
    I am curious about the performance ...
     
    Thomas T. Veldhouse, Oct 12, 2005
    #15
  16. Thomas T. Veldhouse

    Paul Allen Guest

    Whatever. Since I don't have a Spyder, this is becoming moot.
    Remember that it's not emulation, but rather replacement of the Windows
    API's. Word is said to run faster under Wine than under Windows on the
    same hardware. I haven't bothered to set up that experiment to test
    for myself.

    3D performance would depend on the underlying OpenGL implementation.
    which comes from nVidia in my case.

    Paul Allen
     
    Paul Allen, Oct 12, 2005
    #16
  17. No it isn't, you can easily lookup information about it at
    http://www.colorvision.com.
     
    Thomas T. Veldhouse, Oct 12, 2005
    #17
  18. Thomas T. Veldhouse

    Paul Allen Guest

    Actually, it is. I don't have a Spyder and don't intend to buy
    one. You have succeeded in convincing me that, if I had a colorimeter,
    I could do color correction of my monitor entirely in software without
    any help from the video driver. We're done.

    Paul Allen
     
    Paul Allen, Oct 13, 2005
    #18
  19. Well, as long as you believe that ... be off and do it.
     
    Thomas T. Veldhouse, Oct 13, 2005
    #19
  20. Thomas T. Veldhouse

    Paul Allen Guest

    It's not a matter of belief, but rather one of facts and data. You've
    huffed and puffed about how you think video card hardware support is
    required in order to calibrate a monitor, but you always start with the
    assumption that the monitor is maladjusted so that it cannot show white
    or black. If you start with a bogus assumption you can prove anything,
    but it is not logic.

    It's possible that you are correct. You just haven't constructed a
    rational argument showing why you are correct. I'm not interested in
    proving that you're wrong. I just want to know why you think you're
    correct.

    Paul Allen
     
    Paul Allen, Oct 13, 2005
    #20
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.