C.11.2.1.3 VOI LUT Function

The VOI LUT Function (0028,1056) specifies a potentially non-linear conversion for the output of the (conceptual) Modality LUT values to the input of the (conceptual) Presentation LUT.

The behavior for the value LINEAR is defined in C.11.2.1.2. For all other values, the VOI LUT Function (0028,1056) shall include a unique descriptor of the LUT function to be used. Each descriptor is associated with a bivariate function of Window Center (0028,1050) and Window Width (0028,1051).

If the VOI LUT Function (0028,1056) is present with a value other than LINEAR, the values provided in Window Center (0028,1050) and Window Width (0028,1051) shall not be interpreted as a linear conversion of the (conceptual) Modality LUT values to the input to the (conceptual) Presentation LUT - but as parameters for the function defined by the VOI LUT Function descriptor in (0028,1056).

When defined, each descriptor must provide the functional relationship between the output of the (conceptual) Modality LUT values to the input of the (conceptual) Presentation LUT.

C.11.2.1.3.1 SIGMOID descriptor

If the value of VOI LUT Function (0028,1056) is SIGMOID, the function to be used to convert the output of the (conceptual) Modality LUT values to the input of the (conceptual) Presentation LUT is given by

[pic] (1)

where

IN is the input value of the LUT (i.e., the output of the (conceptual) Modality LUT).

WC (resp. WW ) is the Window Center (resp. Window Width) defined interactively by the user or by using the values provided in (0028,1050) (resp. 0028,1051).

Output_range is the maximum output value (see Note below on encoding depth)

Note: The encoding depth of the input values for the VOI LUT function is given by the number of bits specified in Bits Stored (0028,0101). The output values of the VOI LUT function must be encoded with an appropriate depth to be then used as input for the Presentation LUT (typically this value is 8 bits) and the Output_range parameter allows this scaling. Moreover, Eq. 1 is given assuming float values for clarity but the actual implementation must include rounding to output integer values.