0 Replies Latest reply on Nov 20, 2009 6:03 PM by Panoholic

    WhiteLevel consideration

    Panoholic Level 2

      The WhiteLevel tag specifies the clipping level of the raw data; a raw processor can determine, which pixels are "valid" based on this specification. Unfortunately, some cameras are not consistent, the clipping level changes between camera copies, though usually not much. Other cameras don't have a single clipping level but a clipping range.


      The Adobe DNG converter does not analyze the image content to determine the clipping level but creates WhiteLevel as a constant, depending on the camera model and ISO. This is all right, if the specification is somewhat reliable. The question is, what should be the WhiteLevel value, if the clipping level is not known exactly or it is not a single point.


      Unfortunately, the DNG converter is inconsequent in this question. Examples: the Canon 40D's clipping level with ISO 100 is 13824 (several cameras sampled); the DNG converter writes WhiteLevel=13600, i.e. quite under the true clipping level. On the other hand, the Canon 7D's clipping level is 13584, and the DNG converter writes again 13600, i.e. a bit higher than the true clipping level.


      If WhiteLevel is lower than the actual clipping level, then the raw processor regards the unclipped pixels between the WhiteLevel and the real clipping level as "clipped" incorrectly. This is a small problem. However, if WhiteLevel is greater than the real clipping level, then the raw processor does not notice any actual clipping; that is a big problem.


      Obviously, ACR "solves" this problem on a simple way: by "underguessing" WhiteLevel, i.e. assuming clipping even on pixels, which are clearly lower than WhiteLevel (I don't know, how large this tolerance is). However, this is a mess, to say the least. The DNG specification says nowhere, that WhiteLevel should be treated this or that way - it states only, that it is the fully saturated encoding level for the raw sample values.


      A somewhat prudent solution would be if the DNG converter inserted either the exact clipping value (this is well known in many cases), or a somewhat lower value, to make sure, that the raw processor treats all clipped pixels as such.


      Another issue is, that WhiteLevel is a single value for all pixels of the CFA of a mosaic type sensor. For example the Nikon D200's clipping points are between 3982 and 4095, depending on the channel. One should think about expanding the WhiteLevel specification for allowing channel related clipping levels.