180 likes | 281 Views
I 2. Quintiles Intelligent Imaging Clear Vision for the Healthcare Industry. DICOM Lookup Table Encoding Issues David Clunie. LUT Encoding Issues. Review LUT encoding LUT cascading and linear operations Signed values Bit width of values Window center/width operation Implicit scaling
E N D
I2 Quintiles Intelligent ImagingClear Vision for the Healthcare Industry DICOM Lookup Table Encoding Issues David Clunie
LUT Encoding Issues • Review LUT encoding • LUT cascading and linear operations • Signed values • Bit width of values • Window center/width operation • Implicit scaling • Precise definition
First value mapped First value mapped Number of entries Number of entries Number of bits Number of bits LUT Descriptor
Cascaded LUTs Pixel Data Modality LUT VOI LUT Presentation LUT
LUTs with Linear Transforms Pixel Data Modality LUT Window Center/Width Presentation LUT
First value mapped • First value mapped may be negative • Value is specified in LUT Descriptor • Index increments sequentially • May wrap around across zero • Constrained by bit width of input values • But … • Are input values signed or unsigned ? • What is bit width of input values ?
LUT Input Values - Sign ? • Are input values signed or unsigned ? • Modality LUT == Pixel Representation • Same for VOI LUT with no Modality LUT • What about VOI LUT after Modality LUT ? • Therefore new questions: • are output values of LUT signed ? • are output values of linear ops signed ?
LUT Descriptor VR and Sign • Number of entries - always unsigned • Number of bits - always unsigned • First value mapped - signed or unsigned • Implicit VR - only matters internally • Explicit VR - can only be one: US or SS • Dictionary no help “US/US or US/SS” • Proposed: always unsigned (and US)
LUT Input Values - Width ? • What is bit width of input values ? • Bits Allocated if input is Pixel Data • Bit width of previous LUT (3rd descriptor) • What if follows linear transformation ? • Does it matter ? • Wraparound vs. continue count • e.g. 255,256,257 or 255 (== -1),0,1 • Problem is signed values beyond pixel data
LUT Output Values - Width ? • Bit width (== output value range) • 3rd value of LUT descriptor • Normally 8 or 16 bits allocated, i.e. range is from 0 to 28-1 or 216-1 • N.B. For most existing objects including CR one cannot have a 12 bit LUT !@#$ • DX and Sup 33 more flexible
LUT Output Values - Sign ? • Not specified in existing DICOM • Always same as Pixel Representation ? • What about unsigned CT pixel data -> HU • Recommendation is to be always unsigned
What Does “Window” Mean ? • Not actually defined • Common understanding ... “map values of input selected to full width of display grayscale” • Linearly or with default gamma or characteristic curve ?
Usual Meaning of “Window” Window Center/Width Selects range of values to map Display System Scaling of selected input values to full grayscale range that display is capable of using monitor chracteristic curve
Window and Presentation LUT • There is no “output value range” for window operation • Selects range of input values to “use” • Therefore either • Presentation LUT different for each window • Implicit Scalingi.e. linearly map selected to defined LUT input range
First value mapped Number of entries Number of bits Implicit Scaling Window Center/Width Selects range of values to map Presentation LUT Linear scaling of selected input values to range from first value mapped to first value+number of entries
Precise Meaning of “Window” • What does “center” mean ? • What does “width” mean ? • Integer or decimal ? (VR is DS) • Is with odd or even ? • What do width of 0 or 1 “mean” ? • Can input range “exceed” data range ?If so, flatten contrast or clip window ?
Proposed Meaning of Window • Specify as equation (C-W/2) <= value <= (C+W/2) • Calculation equivalent to floating point • Meaning of width of 0 and 1 equal • Odd width specifies fractional bounds • Exercise: • How does one specify identity transform ?
Conclusion • LUT encoding is an issue for • Existing objects • Softcopy Presentation State • Sup. 33 proposes extensive fixes • Precise definitions & extensive examples • Restrictions to unsigned LUT output • Open issue is LUT Descriptor VR • Affect existing image object definitions