https://github.com/NVIDIA/nvImageCodec

A nvImageCodec library of GPU- and CPU- accelerated codecs featuring a unified interface

APACHE-2.0 License

Downloads
157.4K
Stars
58
https://github.com/NVIDIA/nvImageCodec - nvImageCodec Release v0.2.0 Latest Release

Published by mkhadatare 9 months ago

nvImageCodec v0.2.0 Release Notes

nvImageCodec Beta release (v0.2.0), an open-source library of accelerated codecs featuring a unified interface.
This release serves as a versatile framework for extension modules delivering powerful codec plugins.

Key Features and Enhancements

This nvImageCodec release includes the following key features and enhancements:

  • Changed the name of the library from nvImageCodecs to nvImageCodec
  • Added CUDA 12.3 support
  • Added support for arm64-sbsa
  • Improved decode performance (e.g. nvJpeg2000 tiled)
  • Improved testing
  • Improved documentation
    • Added simple sample C API usage
    • Added Python sample Jupyter notebooks to documentation
  • C API improvements
    • Adjusted cvcuda types adapter
    • Improved error handling and reporting
    • Custom Executor can now be defined per Decoder/Encoder
    • Added possibility to pre-allocate resources
    • Added support for nvjpeg extra_flags option
  • Python API improvements
    • Added support for Python 3.12 and deprecated Python 3.7
    • Added support for DL-pack
    • Added support of array_interface
    • Added cpu() and cuda() convert methods to Python Image to enable transfers between Host and Device memory
    • Added as_images function
    • Added allow_any_depth to decode parameters
    • Added possibility to specify number of CPU threads to use in decoder/encoder
    • Added precision attribute to Image
    • Added enter and exit to Decoder and Encoder so they can be easily used with python “with” statement
    • Python decode function now can convert to interleaved RGB and 8 bits by default

Install nvImageCodec library

NOTE: nvImageCodec builds for CUDA 12 dynamically link the CUDA toolkit. To use nvImageCodec, install the latest CUDA toolkit.

CUDA 11.0 and CUDA 12.0 builds use CUDA toolkit enhanced compatibility. 
They are built with the latest CUDA 11.x/12.x toolkit respectively but they can run on the latest, 
stable CUDA 11.0/CUDA 12.0 capable drivers (450.80 or later and 525.60 or later respectively).
However, using the most recent driver may enable additional functionality. 
More details can be found in enhanced CUDA compatibility guide.

You can download and install the appropriate built binary packages from https://developer.nvidia.com/nvimgcodec-downloads
or
install nvImageCodec Python from PyPI as described below.

nvImageCodec Python for CUDA 12.x

pip install nvidia-nvimgcodec-cu12

nvImageCodec Python for CUDA 11.x

pip install nvidia-nvimgcodec-cu11

Optional installation of nvJPEG library
If you do not have CUDA Toolkit installed, or you would like to install nvJPEG library independently, you can use the instruction described below.

Install the nvidia-pyindex module

pip install nvidia-pyindex

Install nvJPEG for CUDA 12.x

pip install nvidia-nvjpeg-cu12

Install nvJPEG for CUDA 11.x

pip install nvidia-nvjpeg-cu11

License

nvImageCodec operates under the Apache 2.0 license.

Resources

nvImageCodec GitHub
nvImageCodec Documentation

Package Rankings
Top 34.84% on Pypi.org
Top 6.74% on Proxy.golang.org
Badges
Extracted from project README
License Cuda GCC CMake Python
Related Projects