NVIDIA nvImageCodec#

The nvImageCodec is a library of accelerated codecs with unified interface. It is designed as a framework for extension modules which delivers codec plugins.

This nvImageCodec release includes the following key features:

  • Unified API for decoding and encoding images

  • Batch processing, with variable shape and heterogeneous formats images

  • Codec prioritization with automatic fallback

  • Builtin parsers for image format detection: JPEG, JPEG 2000, TIFF, BMP, PNG, PNM, WebP

  • Python bindings

  • Zero-copy interfaces to CV-CUDA, PyTorch and CuPy

  • End-end accelerated sample applications for common image transcoding

Currently there are following native codec extensions:

  • nvjpeg_ext

    • Hardware JPEG decoder

    • CUDA JPEG decoder

    • CUDA lossless JPEG decoder

    • CUDA JPEG encoder

  • nvjpeg2k_ext

    • CUDA JPEG 2000 decoder (including High Throughput JPEG)

    • CUDA JPEG 2000 encoder

  • nvtiff_ext

    • CUDA TIFF decoder

  • nvbmp_ext

    • CPU BMP decoder

    • CPU BMP encoder

  • nvpnm_ext

    • CPU PNM (PPM, PBM, PGM) encoder

Additionally as a fallback there are following 3rd party codec extensions:

  • libjpeg_turbo_ext

    • CPU JPEG decoder

  • libtiff_ext

    • CPU TIFF decoder

  • opencv_ext

    • CPU JPEG decoder and encoder

    • CPU JPEG 2000 decoder and encoder

    • CPU PNG decoder and encoder

    • CPU BMP decoder and encoder

    • CPU PNM decoder and encoder

    • CPU TIFF decoder and encoder

    • CPU WebP decoder and encoder