Introduction¶
The nvJPEG2000 library accelerates the decoding of JPEG 2000 images on NVIDIA GPUs. The library is built on the CUDA platform and is supported on Pascal+ GPU architectures.
Note
Throughout this document, the terms “CPU” and “Host” are used synonymously. Similarly, the terms “GPU” and “Device” are synonymous.
nvJPEG2000 Decoder¶
The library utilizes both CPU and GPU for decoding. Tier 2 decode stage(First stage of decode. Refer to the JPEG 2000 specification for details.) is run on the CPU. All other stages of the decoding process are offloaded to the GPU.
The nvJPEG2000 decoder supports the following subset of JPEG 2000 Part 1:
Up to 16 bits per component
No of components : 4
Reversible(5-3) and Irreversible(9-7) wavelet transforms
Multiple tiles per image
Up to 20 layers per image
Chroma sub-sampling types - 444, 422, and 420
All progression orders are supported
Image and tile start coordinates should be 0
Tile/Resolution based decoding
Partial decoding of tiles
jp2 file format and jpeg 2000 codestream
Prerequisites¶
CUDA Toolkit version 11.0 and above
CUDA Driver version r450 and above
Platforms Supported¶
Linux versions:
Architecture |
Distribution Information |
||||
|---|---|---|---|---|---|
Name |
Version |
Kernel |
GCC |
GLIBC |
|
x86_64 |
RHEL/CentOS |
8.3 |
4.18 |
8.3.1 |
2.28 |
7.9 |
3.10.0 |
6 |
2.17 |
||
Ubuntu |
20.04.1 |
5.8.0 |
9.3.0 |
2.31 |
|
18.04.5 |
5.3.0 |
7.5.0 |
2.27 |
||
16.04.7 |
4.15.0 |
5.4.0 |
2.23 |
||
OpenSUSE Leap |
15.2 |
5.3.18 |
7.5.0 |
2.26 |
|
SUSE SLES |
15.2 |
5.3.18 |
7.5.0 |
2.26 |
|
Debian |
10.8 |
4.19.0 |
8.3.0 |
2.28 |
|
Fedora |
33 |
5.10.13 |
10.2.1 |
2.32 |
|
-
Windows versions:
Windows 10 and Windows Server 2019
Support added from version 0.1.0 onwards
Thread Safety¶
Not all nvJPEG2000 types are thread safe. The following should be instantiated separately for each thread: nvjpeg2kDecodeState_t and nvjpeg2kStream_t