Plugins for Pixel Data Compression and Decompression¶
Plugins for Decompression¶
The table below lists the plugins available for decompressing pixel data that’s been compressed using the corresponding Transfer Syntax UID. No plugins are used for uncompressed pixel data.
Transfer Syntax |
Plugins |
|||||
---|---|---|---|---|---|---|
Name |
UID |
|
|
|
|
|
JPEG Baseline 8-bit |
1.2.840.10008.1.2.4.50 |
✓1 |
✓ |
✓ |
||
JPEG Extended 12-bit |
1.2.840.10008.1.2.4.51 |
✓1 |
✓ |
✓ |
||
JPEG Lossless P14 |
1.2.840.10008.1.2.4.57 |
✓1 |
✓ |
|||
JPEG Lossless SV1 |
1.2.840.10008.1.2.4.70 |
✓1 |
✓ |
|||
JPEG-LS Lossless |
1.2.840.10008.1.2.4.80 |
✓1 |
✓ |
✓ |
||
JPEG-LS Near Lossless |
1.2.840.10008.1.2.4.81 |
✓1 |
✓ |
✓ |
||
JPEG 2000 Lossless |
1.2.840.10008.1.2.4.90 |
✓2 |
✓ |
✓4 |
||
JPEG 2000 |
1.2.840.10008.1.2.4.91 |
✓2 |
✓ |
✓4 |
||
HTJ2K Lossless |
1.2.840.10008.1.2.4.201 |
✓2 |
||||
HTJ2K Lossless RPCL |
1.2.840.10008.1.2.4.202 |
✓2 |
||||
HTJ2K |
1.2.840.10008.1.2.4.203 |
✓2 |
||||
RLE Lossless |
1.2.840.10008.1.2.5 |
✓3 |
✓ |
✓ |
pylibjpeg-libjpeg
pylibjpeg-openjpeg
pylibjpeg-rle
Plugins¶
pylibjpeg
¶
Requires pylibjpeg and at least one of:
Known limitations
Maximum supported Bits Stored for JPEG 2000 and HTJ2K is 24
gdcm
¶
Requires python-gdcm.
Known limitations
JPEG Extended 12-bit is only available if Bits Allocated is 8
JPEG-LS Near Lossless only if Bits Stored is at least 8 for a Pixel Representation of 1
JPEG-LS Lossless and JPEG-LS Near Lossless only if Bits Stored is not 6 or 7
Maximum supported Bits Stored is 16
pillow
¶
Requires Pillow, with support for JPEG 2000 via Pillow’s Jpeg2KImagePlugin requiring OpenJPEG.
Known limitations
JPEG Extended 12-bit is only available if Bits Allocated is 8
JPEG 2000 Lossless and JPEG 2000 are only available for a Samples per Pixel of 3 when Bits Stored is <= 8
Maximum supported Bits Stored is 16
pyjpegls
¶
Requires pyjpegls.
pydicom
¶
Requires pydicom.
Known limitations
Slower than the other plugins by 3-4x
Plugins for Compression¶
Transfer Syntax |
Plugins |
Encoding guide |
|
---|---|---|---|
Name |
UID |
||
JPEG-LS Lossless |
1.2.840.10008.1.2.4.80 |
|
|
JPEG-LS Near Lossless |
1.2.840.10008.1.2.4.81 |
||
JPEG 2000 Lossless |
1.2.840.10008.1.2.4.90 |
|
|
JPEG 2000 |
1.2.840.10008.1.2.4.91 |
||
RLE Lossless |
1.2.840.10008.1.2.5 |
|
|
|
Plugins¶
pyjpegls
¶
Requires pyjpegls.
pylibjpeg
¶
Requires pylibjpeg as well as pylibjpeg-openjpeg for JPEG 2000 compression and pylibjpeg-rle for RLE Lossless.
Known limitations
The maximum supported Bits Stored for JPEG 2000 is 24, however the results for 20-24 are very poor when using lossy compression.
pydicom
¶
Requires pydicom.
Known limitations
Much slower than the other plugins