C.7.6.23 Enhanced Palette Color Lookup Table Module

Table C.7.6.23-1 specifies the attributes that define data flow through the Enhanced Blending and Display Pipeline. See C.7.6.23.1 for an overview of the Enhanced Blending and Display Pipeline.

Table C.7.6.23-1 ENHANCED PALETTE COLOR LOOKUP TABLE MODULE ATTRIBUTES

Attribute Name Tag Type Attribute Description
Data Frame Assignment Sequence (0028,1401) 1 Sequence of items each assigning frames of one particular value of Data Type (0018,9808) to a data path in the Enhanced Blending and Display Pipeline. One, two, or three items shall be included in this sequence.
>Data Type (0018,9808) 1 Identification of the data type of frames using this data path assignment.
>Data Path Assignment (0028,1402) 1 The data path to use for this data type in the Enhanced Blending and Display Pipeline. Enumerated vaules: PRIMARY_PVALUES PRIMARY_SINGLE SECONDARY_SINGLE SECONDARY_HIGH SECONDARY_LOW See C.7.6.23.2 for usage.
>Bits Mapped to Color Lookup Table (0028,1403) 3 The number of most significant bits of each value of Pixel Data (7FE0,0010) from this frame contributing to the Palette Color Lookup Table input. If absent, Bits Stored (0028,0101) bits of each value of Pixel Data (7FE0,0010) from this frame contributes to the Palette Color Lookup Table input. See C.7.6.23.3 for usage.
>Include VOI LUT Macro Table C.11-2b
Blending LUT 1 Sequence (0028,1404) 1C Specification of the weight of the primary path input to the Blending Operation, i.e. the value which is referred to as “Weight 1” in the Enhanced Blending and Display Pipeline. Only a single item shall be included in this sequence. Required if there are one or more items of the Data Path Assignment Sequence (0028,1402) other than PRIMARY_PVALUES.
>Blending LUT 1 Transfer Function (0028,1405) 1 Specifies the algorithm used to determine the output value of Blending LUT 1. Enumerated vaules: CONSTANT ALPHA_1 ALPHA_2 TABLE See C.7.6.23.4 for details.
>Blending Weight Constant (0028,1406) 1C Constant value of the Weight input to blending operation. Shall be from 0.0 to 1.0, inclusive. Required if Blending LUT 1 Transfer Function (0028,1405) is CONSTANT.
>Blending Lookup Table Descriptor (0028,1407) 1C Specifies the format of Blending Lookup Table Data (0028,1408) in this sequence item. The second value (first stored pixel value mapped) shall be zero. See Section C.7.6.23.5 for further explanation. Required if Blending LUT 1 Transfer Function (0028,1405) is TABLE.
>Blending Lookup Table Data (0028,1408) 1C Contains the Blending Lookup Table values for this Weight input to the Blending Operation. Required if Blending LUT 1 Transfer Function (0028,1405) is TABLE.
Blending LUT 2 Sequence (0028,140C) 1C Specification of the weight of the secondary path input to the Blending Operation, i.e. the value which is referred to as “Weight 2” in the Enhanced Blending and Display Pipeline. Only a single item shall be included in this sequence. Required if there are one or more items of the Data Path Assignment Sequence (0028,1402) other than PRIMARY_PVALUES.
>Blending LUT 2 Transfer Function (0028,140D) 1 Specifies the algorithm used to determine the output value of Blending LUT 2. Enumerated values: CONSTANT ONE_MINUS ALPHA_1 ALPHA_2 TABLE See C.7.6.23.4 for details.
>Blending Weight Constant (0028,1406) 1C Constant value of the Weight input to blending operation. Shall be from 0.0 to 1.0, inclusive. Required if Blending LUT 2 Transfer Function (0028,140D) is CONSTANT.
>Blending Lookup Table Descriptor (0028,1407) 1C Specifies the format of Blending Lookup Table Data (0028,1408) in this sequence item. The second value (first stored pixel value mapped) shall be zero. See Section C.7.6.23.5 for further explanation. Required if Blending LUT 2 Transfer Function (0028,140D) is TABLE.
>Blending Lookup Table Data (0028,1408) 1C Contains the Blending Lookup Table values for this Weight input to the Blending operation. Required if Blending LUT 2 Transfer Function (0028,140D) is TABLE.
Enhanced Palette Color Lookup Table Sequence (0028,140B) 1C This sequence contains the Palette Color Lookup Table. One or two items shall be included in this sequence. Required if Data Path Assignment (0028,1402) is present with a value other than PRIMARY_PVALUES.
>Data Path ID (0028,140E) 1 Identifier of the data path in which this Palette Color Lookup Table is used. Enumerated values: PRIMARY SECONDARY Each item shall have a distinct value of Data Path ID.
>RGB LUT Transfer Function (0028,140F) 1 Specifies the mapping that takes place between the input value and RGB input to the Blending Operation. Enumerated values: EQUAL_RGB Output is R=G=B=input value TABLE Output is RGB LUT values
>Alpha LUT Transfer Function (0028,1410) 1 Specifies the transformation that is used to create the Alpha input to the Blending LUTs. Note: Depending on the values of Blending LUT 1 Transfer Function (0028,1405) and Blending LUT 2 Transfer Function (0028,140D) the Alpha LUT value may be ignored. It is recommended that IDENTITY be used if this is the case. Enumerated values: NONE IDENTITY TABLE
>Red Palette Color Lookup Table Descriptor (0028,1101) 1C Specifies the format of the Red Palette Color Lookup Table Data (0028,1201). The second value (first stored pixel value mapped) shall be zero. Required if RGB LUT Transfer Function (0028,140F) is TABLE.
>Green Palette Color Lookup Table Descriptor (0028,1102) 1C Specifies the format of the Green Palette Color Lookup Table Data (0028,1202). The second value (first stored pixel value mapped) shall be zero. Required if RGB LUT Transfer Function (0028,140F) is TABLE.
>Blue Palette Color Lookup Table Descriptor (0028,1103) 1C Specifies the format of the Blue Palette Color Lookup Table Data (0028,1203). The second value (first stored pixel value mapped) shall be zero. Required if RGB LUT Transfer Function (0028,140F) is TABLE.
>Alpha Palette Color Lookup Table Descriptor (0028,1104) 1C Specifies the format of the Alpha Palette Color Lookup Table Data. The second value (first stored pixel value mapped) shall be zero. Required if Alpha LUT Transfer Function (0028,1410) is TABLE.
>Red Palette Color Lookup Table Data (0028,1201) 1C Red Palette Color Lookup Table Data. Required if RGB LUT Transfer Function (0028,140F) is TABLE.
>Green Palette Color Lookup Table Data (0028,1202) 1C Green Palette Color Lookup Table Data. Required if RGB LUT Transfer Function (0028,140F) is TABLE.
>Blue Palette Color Lookup Table Data (0028,1203) 1C Blue Palette Color Lookup Table Data. Required if RGB LUT Transfer Function (0028,140F) is TABLE.
>Alpha Palette Color Lookup Table Data (0028,1204) 1C Alpha LUT contains the blending values for the data frames. Required if Alpha LUT Transfer Function (0028,1410) is TABLE.
ICC Profile (0028,2000) 1C An ICC Profile encoding the transformation of device-dependent color stored pixel values into PCS-Values. See Section C.11.15.1.1 When present, defines the color space of the output of the Enhanced Blending and Display Pipeline. Required if Data Path Assignment (0028,1402) is present and there exists any value other than PRIMARY_PVALUES.

C.7.6.23.1 Description of the Enhanced Blending and Display Pipeline

The Enhanced Blending and Display Pipeline describes a scheme for blending of data frames of different Data Types and a color/grayscale mapping for display recommended by the provider of this information. There are no requirements upon an receiving application to utilize this recommendation in the processing and display of the referenced image.

The blending transformation model in Figure C.7.6.23-1 applies for mapping images derived from one, two, or three data frames with the same image position and orientation but of different values of Data Type (0018,9808) to grayscale P-values or color PCS-values for presentation. These inputs to the pipeline are frames of pixel values obtained from Pixel Data (7FE0,0010) and structured as described by attributes of the Image Pixel Module. Co-located pixels from each data frame are processed through the Pipeline, resulting in one output sample at that location.

The model utilizes up to two data paths called the Primary and the Secondary data paths. Each input data frame may be initially processed by a Modality LUT and a VOI LUT. If not explicitly specified, the Modality LUT and VOI LUT are assumed to be identity transformations. The Primary path may be used alone to obtain only grayscale transformation without blending. In this case, the Primary data path input after going through the Modality LUT and VOI LUT is mapped through a Presentation LUT to obtain device independent grayscale values (P-values) for presentation.

Either Primary or Secondary paths alone or both paths together may be used to obtain color transformation with blending. Up to one data frame input in the Primary data path and up to two data frames input in the Secondary data path are allowed for this blending transformation. These frames may be mapped to color using one-input or two-input palette color lookup tables depending on the number of data frames input to the data path. Alternatively if a path has one data frame, values may be converted to RGB (where R=G=B) before blending, if pseudo-color presentation of this data path is not desired. RGB values from Primary and Secondary data paths are combined via a “Blending Operation” in which the RGB color components are multiplied by a corresponding blending weight function (Weight 1 and Weight 2, respectively), and for each color component the two products are added together to produce the blended output value of that component. All inputs to the Blending Operation are normalized to the range 0.0 to 1.0, inclusive, even if they are fixed integer values that had been the entries in a lookup table.

Each of the Weight inputs to the blending operation is the output of a corresponding Blending LUT Transfer Function, which is selectable as either a constant or a derivation of the data frame values as described in C.7.6.23.4.

The RGB output from the Blending Operation is clamped to limit each color component (R, G, and B) to fall within the range 0.0 to 1.0, inclusive. The clamping function simply sets the value of any color component to 1.0 if the output from the Blending operation for that component exceeds 1.0. The RGB output of the clamping function is made available for use in rendering and slicing algorithms. Further, the output of the clamping function is transformed by the Profile Connection Space Transformation to device independent color values (PCS-values) for presentation.

If the input data frame values are representative of real world data, then they can be mapped to the real world values and units using the Real World Value Mapping Macro.

Note: PS3.17 “Enhanced US Data Type Blending Examples” describes a number of examples of the Enhanced Blending and Display Pipeline with specific attribute values for each example that invoke particular data flows through the pipeline.

[pic]

Figure C.7.6.23-1: Enhanced Blending and Display Pipeline

C.7.6.23.2 Data Path Assignment

Data Path Assignment (0028,1402) specifies the data path to use in the Enhanced Blending and Display Pipeline for each data frames of a particular data type.

Enumerated values:

PRIMARY_PVALUES Data Frame values are passed through the Presentation LUT to produce grayscale P-values. No blending is performed.

PRIMARY_SINGLE Data Frame values are inputs to the Primary Palette Color Lookup Table.

SECONDARY_SINGLE Data Frame values are inputs to the Secondary Palette Color Lookup Table.

SECONDARY_HIGH Data Frame values having Data Path Assignment (0028,1402)of SECONDARY_HIGH are concatenated as the most significant bits with Data Frame values having Data Path Assignment of SECONDARY_LOW to form inputs to the Secondary Palette Color Lookup Table.

SECONDARY_LOW Data Frame values having Data Path Assignment (0028,1402)of SECONDARY_LOW are concatenated as the least significant bits with Data Frame values having Data Path Assignment of SECONDARY_HIGH to form inputs to the Secondary Palette Color Lookup Table.

C.7.6.23.3 Bits Mapped To Color Lookup Table

The number of entries of each Palette Color Lookup Table is specified in the Palette Color Lookup Table Descriptors of the lookup table components. As described in Section C.7.6.3.1.5, a maximum of 65,536 (2 16 ) data entries is permitted, which would require input values of 16 bits to access all Palette Color Lookup Table entries. For tables with less than the maximum number of Palette Color Lookup Table entries, correspondingly smaller input values are required.

In the Enhanced Blending and Display Pipeline, the Palette Color Lookup Table input values are obtained from one or two data frames, depending on the values of the Data Path Assignment (0028,1402) attributes; for Data Path Assignment (0028,1402)= PRIMARY_SINGLE or SECONDARY_SINGLE, the input values are obtained from stored pixel values of a single data frame (after processing through the Modality LUT and/or VOI LUT), while for Data Path Assignment (0028,1402)= SECONDARY_HIGH and SECONDARY_LOW, the input values are constructed from stored pixel values of two data frames (after processing through Modality LUTs and/or VOI LUTs) as described below.

The number of bits in each data frame stored pixel value is specified by the value of Bits Stored (0028,0101). It is possible that the number of bits in the PRIMARY_SINGLE or SECONDARY_SINGLE data frame or the sum of the numbers of bits in the SECONDARY_HIGH and SECONDARY_LOW data frames is greater than the number of bits needed to address all Palette Color Lookup Table entries. The values of Bits Mapped to Color Lookup Table (0028,1403) specify the number of bits from the corresponding data frame stored pixel values that contribute to the Palette Color Lookup Table input values, as follows:

If Data Path Assignment is PRIMARY_SINGLE or SECONDARY_SINGLE, the input to the Palette Color Lookup Table is the number of most significant bits specified by Bits Mapped to Color Lookup Table (0028,1403) from the data frame stored pixel values. For Data Path Assignment SECONDARY_HIGH or SECONDARY_LOW, the number of most significant bits specified by Bits Mapped to Color Lookup Table (0028,1403) from each data frame’s stored pixel values are concatenated to create the Palette Color Lookup Table input values, with the SECONDARY_HIGH frame’s bits comprising the most significant part of the input value and the SECONDARY_LOW frame’s bits comprising the least significant part of the input value.

If the resulting Palette Color Lookup Table input value is greater than the number of Palette Color Lookup Table entries as specified by the Palette Color Lookup Table Descriptor first value, then the output from the Palette Color Lookup Table shall be the last value in the Palette Color Lookup Table. However, it is recommended that the values of Bits Mapped To Color Lookup Table (0028,1403) and number of Palette Color Lookup Table entries be selected such that all input values are mapped to distinct entries in the Palette Color Lookup Table.

C.7.6.23.4 Blending LUT Transfer Function

The value of the Blending LUT 1 Transfer Function (0028,1405) and Blending LUT 2 Transfer Function (0028,140D) specify the algorithm used to determine the output values of the Blending LUT 1 and Blending LUT 2, respectively.

Enumerated values:

CONSTANT A constant floating point value from 0.0 to 1.0, inclusive.

ALPHA_1 Pass-through the Alpha 1 input value from the Alpha Palette Color Lookup Table of the Primary data path.

ALPHA_2 Pass-through the Alpha 2 input value from the Alpha Palette Color Lookup Table of the Secondary data path.

TABLE The output of a Table defining a function of the Alphas from both data paths: The Alpha 1 input value from the Alpha Palette Color Lookup Table of the Primary data path and the Alpha 2 input value from the Alpha Palette Color Lookup Table of the Secondary data are concatenated to form an index into a Lookup Table, with the Alpha 1 value providing the most significant bits of the index and the Alpha 2 value providing the least significant bits of the index.

If the index is too large for the number of entries in the Lookup Table, the last value of the Lookup Table is used for any index value greater than the number of Lookup Table entries. If the index is too small for the number of entries in the Lookup Table, than not all entries in the Lookup Table are accessed. The total number of bits in the index value shall be equal to or less than 16.

ONE_MINUS The Blending LUT 2 value is (1 - Blending LUT 1 output). Used for Blending LUT 2 Transfer Function (0028,140D) only.

C.7.6.23.5 Blending LUT Descriptor

The three values of the Blending Lookup Table Descriptor (0028,1407) describe the format of the data in Blending Lookup Table Data (0028,1408).

The first value is the number of entries in the lookup table. When the number of table entries is equal to 65,536 (2 16 ), then this value shall be 0. The number of entries shall be equal to the number of possible values in the input.

Note: For example, for 8 bit input to the Blending LUT the tables must have 256 entries, while for 16 bit input to the Blending LUT the tables must have 65,536 entries.

The second value is the first input value mapped, and shall always be 0 for an Blending LUT. This input value is mapped to the first entry in the LUT. 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. There are no input values greater than number of entries - 1.

The third value specifies the number of bits for each entry in the LUT Data. This value shall be between 8 and 16, inclusive. The LUT Data shall be stored in a format equivalent to 16 bits allocated where the high bit is equal to bits stored - 1, where bits stored is the third value.

C.7.6.23.6 Lossy Compression and Palette Color Lookup Tables (Informative)

Image objects containing non-monotonic Palette Color LUTs that are lossy compressed may potentially experience a change in the index values that results in the displayed image having a significantly different appearance than the original image.