CT data type, why int16?

Often 8 bits per pixel could be enough if you need to distinguish bone from soft tissues. However, there are important use cases where 8-bits dynamic range for the entire CT image is insufficient, for example when differentiating between soft tissues (common in brain CT images) or doing digital subtraction (difference between native and opacified images). It would be also somewhat inconvenient to manage the scaling information that converts HU to image-specific 8-bit intensity range.

Int8 is just 2x smaller not a big difference. But more importantly, all computations in the neural network is done in floats anyway.

You have a good point in that it is important to pay attention how you convert segmentation inputs/outputs between the external int8 or int16 and the internal float, as it greatly affects memory usage and therefore computation time. We recently reduced MONAIAuto3DSeg computation time on a 16GB laptop from 800 seconds to 120 seconds by converting output to int16 earlier (by reducing memory need from 17GB to 3 GB).

1 Like