enh(io): use nvJPEG2000 codec when writing DICOM enhanced US volume
Description
When writing DICOM enhanced US volume, the images are compressed in the JPEG2000 format. By default, GDCM will use OpenJPEG backend to save these images, which is pretty slow. We want to use nvJPEG2000 backend instead to save these images, as it is faster and use the GPU capabilities.
Functional specifications
Writing DICOM enhanced US volume is faster.
Technical specifications
In io::dicom::Writer::writeEnhancedUSVolume, we use gdcm::ImageChangeTransferSyntax to compress the data to JPEG2000. This will use the OpenJPEG by default, however we can specify a custom codec by using the SetUserCodec method. The idea is to create our own codec, NvJpeg2K, that will use io::bitmap::Writer with the NVJPEG2K backend to compress the data.
Test plan
Use an application based on Sight to create a DICOM enhanced US volume. It should be faster, and generated DICOM file should be valid (try it on a third-party application, such as Alizam).