Skip to content

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.

Edited by Lucas SCHMIDT

Merge request reports