enh(io): add NvJPEG2K backend when saving multiframes in DICOM
Description
These changes add the NvJPEG2000 codec when writing DICOM enhanced US volumes. In io::dicom::Writer::writeEnhancedUSVolume, when using gdcm::ImageChangeTransferSyntax, the method SetUserCodec is used in order to set a custom codec, which is io::dicom::codec::NvJpeg2K. This codec, whose code is inspired from gdcmJPEG2000Codec, uses the NVJPEG2K backend from io::bitmap::Writer in order to compress each frame one by one. All the frames are then put into a SequenceOfFragments, as the standard requires.
Closes #1037 (closed)
How to test it?
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).
Don't forged to enable SIGHT_ENABLE_NVJPEG2K=ON at configuration time, else NVJPEG2K won't be used and the writer will fallback to OpenJPEG codec.
Some results
The last time I tried, it took 26 seconds to save a file with the previous version and 3 seconds to save a file with the new version.