openexr-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [Openexr-devel] RE: proposed standard for .exr linear float fileexch


From: Haarm-Pieter Duiker
Subject: RE: [Openexr-devel] RE: proposed standard for .exr linear float fileexchange/filmout
Date: Thu, 10 Jun 2004 10:48:23 -0700

Hello Kevin,

> -----Original Message-----
> From: Kevin Wheatley [mailto:address@hidden
> 
> Haarm-Pieter Duiker wrote:
> >         xLin /= pdxWhiteReferenceLinear;
> > 
> >         if ( pdxBlackPoint != 0.0 )
> >         {
> >                 xLin = xLin*(whiteLin - blackLin) + blackLin;
> >         }
> >         xLog = log10( xLin ) 
> pdxNegativeGamma/pdxDensityPerCodeValue + pdxWhiteReference;
> 
> So in case anybody asks why the 'if' in our original, it comes from
> being bitten by peopl assuming floating point maths in CPUs has
> infinite precision whan it doesn't, we've seen examples where the
> 'defaults' don't work if you assume they are unchainging (e.g.
> NVidia's control panel gamma settings for a start :-), it is kind of
> an implementation detail, but I'd suggest anything that should be
> unity at a particular setting should be skipped rather than calulated.

The equations as I presented them were broken out for clarity more than 
anything else. Adding a "* pdxWhiteReferenceLinear" to the blackLin, whiteLin, 
xLin, and if( pdxBlackPoint != 0.0 ) xLin statements would have the same effect 
and presumably present one less opportunity for quantization. 

I haven't worked in a half-float pipeline but can say for sure that this small 
modifications has never degraded image quality in any way in a full float 
pipeline. Until your email, I had never ever considered the possibility. Could 
you elaborate a little bit more about the situations in which that might take 
place?

Another point not to be missed is that the value isn't one that "should be 
unity" in all cases. We put much effort into building a pipeline that could 
make full use of the parameters presented in the Cineon log lin equation. 
You'll find pretty quickly that with the standard equation if you change the 
nGammas you'll change exposure on top of changing contrast. This is what we 
found we could avoid by having the parameter. Given that most people won't be 
changing the defaults, adding pdxWhiteReferenceLinear with default values of 
(1, 1, 1, 1) will be invisible, add what I would hope was a minimum of 
computational overhead, and provide an important additional functionality for 
those not planning on using the defaults.

> Of course the real idea would be to hide this transform into the
> OpenEXR distribution somewhere so everybody does the same.

Is this not what you were proposing?
 
Regards,
Haarm-Pieter Duiker
ESC Entertainment
Research and Development
address@hidden 510 749 7343




reply via email to

[Prev in Thread] Current Thread [Next in Thread]