# WIN: display linearization on nvidia quadro & 10 bit dacs

**URL:** <https://psychtoolbox.discourse.group/t/win-display-linearization-on-nvidia-quadro-10-bit-dacs/1768>\
**Category:** Uncategorized\
**Created:** [February 20, 2007, 9:31pm UTC](https://psychtoolbox.discourse.group/t/win-display-linearization-on-nvidia-quadro-10-bit-dacs/1768 "2007-02-20T21:31:51Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![xeos](https://avatars.discourse-cdn.com/v4/letter/x/ecae2f/32.png) [@xeos](https://psychtoolbox.discourse.group/u/xeos)\
**Post date:** [February 20, 2007, 9:31pm UTC](https://psychtoolbox.discourse.group/t/win-display-linearization-on-nvidia-quadro-10-bit-dacs/1768/1 "2007-02-20T21:31:51Z")

</div>

Hi all,  
  
I'm trying to linearize my display for the purpose of doing some  
lightness psychophysics. I would like to do this in a way that  
maintains 255 shades of gray between black and white. Has anybody had  
good luck doing this with nvidia quadro cards?  
  
I used to be able to do this with an ATI x300 card by setting the  
Gamma to 2.2 in the driver's control panel. Recently our lab upgraded  
to a Nvidia Quadro FX 1300, and this method has become sub-optimal.  
Specifically, it appears that the card only supports 8 bit gamma  
ramps, and this does not provide enough resolution to support 255  
unique grayscale values when the output has been linearized. Instead,  
starting at pixel val = 74, and higher, every other pixel value maps  
onto the same screen brightness. IE setting the screen to 74 and 75  
produce the same measurable brightness on the screen when tested with  
a photometer (we use a ColorCal). I think this worked fine with the  
ATI card because it had an 10-bit dac on the output end (though I  
never found any evidence that it supported 10 bit frame buffers). I've  
not found any indication what resolution the dac is on the Quadro  
card, but I'm guessing it's 8bit.   
  
I currently use the old 2.54 version of the toolbox, but if upgrading  
to 3 beta would allow some way around this, then I'd be willing. But  
from reading the posts it's not clear that it would allow \> 8 bit  
depth, even if my card supports it (which it might, though it doesn't  
at the level that gamma correction occurs).

---

<div class="post-metadata">

**Author:** ![mariokleiner](https://avatars.discourse-cdn.com/v4/letter/m/13edae/32.png) [@mariokleiner](https://psychtoolbox.discourse.group/u/mariokleiner)\
**Post date:** [February 21, 2007, 12:41am UTC](https://psychtoolbox.discourse.group/t/win-display-linearization-on-nvidia-quadro-10-bit-dacs/1768/2 "2007-02-21T00:41:45Z")

</div>

Afaik your card should have 10 bit DACs. I don't know about PTB 2.54, but PTB-3 supports   
loading color/gamma lookup-tables with up to 16 bit resolution, so if your hw is capable   
of 10 bits, it should be supported by PTB-3.  
  
-mario  
  

> --- In [psychtoolbox@yahoogroups.com](mailto:psychtoolbox@yahoogroups.com), "Alan Robinson" \<x\_e\_o\_s\_yahoo@...\> wrote:  
> \>  
> \> Hi all,  
> \>   
> \> I'm trying to linearize my display for the purpose of doing some  
> \> lightness psychophysics. I would like to do this in a way that  
> \> maintains 255 shades of gray between black and white. Has anybody had  
> \> good luck doing this with nvidia quadro cards?  
> \>   
> \> I used to be able to do this with an ATI x300 card by setting the  
> \> Gamma to 2.2 in the driver's control panel. Recently our lab upgraded  
> \> to a Nvidia Quadro FX 1300, and this method has become sub-optimal.  
> \> Specifically, it appears that the card only supports 8 bit gamma  
> \> ramps, and this does not provide enough resolution to support 255  
> \> unique grayscale values when the output has been linearized. Instead,  
> \> starting at pixel val = 74, and higher, every other pixel value maps  
> \> onto the same screen brightness. IE setting the screen to 74 and 75  
> \> produce the same measurable brightness on the screen when tested with  
> \> a photometer (we use a ColorCal). I think this worked fine with the  
> \> ATI card because it had an 10-bit dac on the output end (though I  
> \> never found any evidence that it supported 10 bit frame buffers). I've  
> \> not found any indication what resolution the dac is on the Quadro  
> \> card, but I'm guessing it's 8bit.   
> \>   
> \> I currently use the old 2.54 version of the toolbox, but if upgrading  
> \> to 3 beta would allow some way around this, then I'd be willing. But  
> \> from reading the posts it's not clear that it would allow \> 8 bit  
> \> depth, even if my card supports it (which it might, though it doesn't  
> \> at the level that gamma correction occurs).  
> \>

---

<div class="post-metadata">

**Author:** ![xeos](https://avatars.discourse-cdn.com/v4/letter/x/ecae2f/32.png) [@xeos](https://psychtoolbox.discourse.group/u/xeos)\
**Post date:** [February 22, 2007, 7:16pm UTC](https://psychtoolbox.discourse.group/t/win-display-linearization-on-nvidia-quadro-10-bit-dacs/1768/3 "2007-02-22T19:16:21Z")

</div>

Some experiments with PTB 3 (beta downloaded today) suggest that the  
FX 1300 doesn't have a 10bit dac, but perhaps I'm doing something wrong?   
  
I used the loadNormalizedGamma PTB 3 function to setup a gamma ramp  
that would require \> 8 bits to render smoothly. (basically each ramp  
entry was spaced less 1/512 apart), and found that this caused the  
hardware to produce stair-step brightness values, where only every  
other pixel value increase caused an increase in the luminance the  
monitor produced (measured with a photometer).  
  
Also, does the windows version of PTB support HDR or floating point  
precision for pixel values? A post to the mailing list a few months  
ago suggested not, but the GraphicsHardwareRequirements wiki doesn't  
say anything about OSX support only.  
  
--- In [psychtoolbox@yahoogroups.com](mailto:psychtoolbox@yahoogroups.com), "Mario Kleiner"  
\<mario.kleiner@...\> wrote:  

> \>  
> \> Afaik your card should have 10 bit DACs. I don't know about PTB

2.54, but PTB-3 supports   

> \> loading color/gamma lookup-tables with up to 16 bit resolution, so

if your hw is capable   

> \> of 10 bits, it should be supported by PTB-3.  
> \>   
> \> -mario  
> \>   
> \> --- In [psychtoolbox@yahoogroups.com](mailto:psychtoolbox@yahoogroups.com), "Alan Robinson"

\<x\_e\_o\_s\_yahoo@\> wrote:  

> \> \>  
> \> \> Hi all,  
> \> \>   
> \> \> I'm trying to linearize my display for the purpose of doing some  
> \> \> lightness psychophysics. I would like to do this in a way that  
> \> \> maintains 255 shades of gray between black and white. Has anybody had  
> \> \> good luck doing this with nvidia quadro cards?  
> \> \>   
> \> \> I used to be able to do this with an ATI x300 card by setting the  
> \> \> Gamma to 2.2 in the driver's control panel. Recently our lab upgraded  
> \> \> to a Nvidia Quadro FX 1300, and this method has become sub-optimal.  
> \> \> Specifically, it appears that the card only supports 8 bit gamma  
> \> \> ramps, and this does not provide enough resolution to support 255  
> \> \> unique grayscale values when the output has been linearized. Instead,  
> \> \> starting at pixel val = 74, and higher, every other pixel value maps  
> \> \> onto the same screen brightness. IE setting the screen to 74 and 75  
> \> \> produce the same measurable brightness on the screen when tested with  
> \> \> a photometer (we use a ColorCal). I think this worked fine with the  
> \> \> ATI card because it had an 10-bit dac on the output end (though I  
> \> \> never found any evidence that it supported 10 bit frame buffers). I've  
> \> \> not found any indication what resolution the dac is on the Quadro  
> \> \> card, but I'm guessing it's 8bit.   
> \> \>   
> \> \> I currently use the old 2.54 version of the toolbox, but if upgrading  
> \> \> to 3 beta would allow some way around this, then I'd be willing. But  
> \> \> from reading the posts it's not clear that it would allow \> 8 bit  
> \> \> depth, even if my card supports it (which it might, though it doesn't  
> \> \> at the level that gamma correction occurs).  
> \> \>  
> \>

---

<div class="post-metadata">

**Author:** ![xeos](https://avatars.discourse-cdn.com/v4/letter/x/ecae2f/32.png) [@xeos](https://psychtoolbox.discourse.group/u/xeos)\
**Post date:** [March 5, 2007, 7:03pm UTC](https://psychtoolbox.discourse.group/t/win-display-linearization-on-nvidia-quadro-10-bit-dacs/1768/4 "2007-03-05T19:03:48Z")

</div>

This discussion of display linearization makes me wonder if there is  
code in the PTB or elsewhere to automate finding the gamma ramp that  
best linearizes your display? Or is this something that must be done  
by hand? I've taken a crack at writing my own automation code, but it  
doesn't do a great job.   
  
- Alan.
