The three values of the LUT Descriptor (0028,3002) describe the format of the LUT Data in the corresponding Data Element (0028,3006).
The first value is the number of entries in the lookup table. When the number of table entries is equal to 216 then this value shall be 0.
The second value is the first input value mapped. The Value Representation of the second value (US or SS) depends on the source of the input to the VOI LUT, and shall be:
- the same as specified by Pixel Representation (0028,0103), if there is no Modality LUT or Rescale Slope and Intercept specified;
- SS if the possible output range after application of the Rescale Slope and Intercept may be signed;
Note: This is always the case for the CT Image IOD in which the Rescale Type is specified to be Hounsfield Units, which are always signed.
- US otherwise.
This input value is mapped to the first entry in the LUT. All input values less than the first value mapped are also mapped to the first entry in the LUT Data. An input value one greater than the first value mapped is mapped to the second entry in the LUT Data. Subsequent input values are mapped to the subsequent entries in the LUT Data up to an input value equal to number of entries + first value mapped - 1 which is mapped to the last entry in the LUT Data. Input values greater than or equal to number of entries + first value mapped are also mapped to the last entry in the LUT Data.
The third value specifies the number of bits for each entry in the LUT Data. If the VOI LUT is included in an Image IOD, the third value of LUT Descriptor (0028,3002) shall be 8 or 16 bits, unless otherwise specialized. If the VOI LUT is included in a Presentation State IOD, the third value of LUT Descriptor (0028,3002) shall be between 8 and 16 inclusive. The LUT Data shall be stored in a format equivalent to 8 bits allocated when the number of bits for each entry is 8, and 16 bits allocated when the number of bits for each entry is 16, where in both cases the high bit is equal to bits stored - 1, and where bits stored is the third value.
Notes: 1. Since the LUT Descriptor (0028,3002) Attribute is multi-valued, in an Explicit VR Transfer Syntax, only one value representation (US or SS) may be specified, even though the first and third values are always by definition interpreted as unsigned. The explicit VR actually used is dictated by the VR needed to represent the second value.
2. Some implementations have encoded 8 bit entries with 16 bits allocated, padding the high bits; this can be detected by comparing the number of entries specified in the LUT Descriptor with the actual value length of the LUT Data entry. The value length in bytes should equal the number of entries if bits allocated is 8, and be twice as long if bits allocated is 16.
The LUT Data contains the LUT entry values.
The output range is from 0 to 2 n -1 where n is the third value of LUT Descriptor. This range is always unsigned.