nvImageCodec

Type: Technology Tags: CUDA, NVIDIA, GPU, Image Codec, JPEG, JPEG2000, TIFF, Encoding, Decoding Related: NVIDIA-DALI, CV-CUDA, NPP, nvComp Sources: NVIDIA official documentation Last Updated: 2026-04-09

Summary

nvImageCodec is NVIDIA’s GPU-accelerated unified image codec library providing a framework with a single API for both encoding and decoding across JPEG, JPEG 2000, TIFF, BMP, PNG, PNM, and WebP formats. It combines GPU-native codecs (nvJPEG, nvJPEG2000, nvTIFF) with CPU fallback for unsupported formats, and supports variable-shape batch processing with zero-copy interfaces to CV-CUDA, PyTorch, and CuPy.

Detail

Purpose

Image-heavy deep learning pipelines — training data loading, inference preprocessing, medical imaging, satellite imagery — need fast batch decode of large image datasets. nvImageCodec provides a unified, extensible interface to GPU-accelerated image codecs, eliminating the need for separate codec library integrations and enabling seamless GPU pipeline construction.

Key Features

  • Unified API for encode and decode operations across multiple formats
  • Variable-shape batch processing: heterogeneous image sizes in a single batch
  • GPU-native codecs: nvJPEG, nvJPEG2000, nvTIFF (hardware/software GPU paths)
  • CPU fallback for unsupported formats (automatic codec prioritization)
  • Built-in format parsers: JPEG, JPEG 2000, TIFF, BMP, PNG, PNM, WebP
  • Zero-copy tensor interfaces with CV-CUDA, PyTorch, and CuPy
  • Python bindings
  • Extension module framework for adding custom codec plugins
  • Sample applications for image transcoding workflows

Use Cases

  • Deep learning training data image batch decode
  • Medical imaging (DICOM, TIFF, JPEG 2000 decode for diagnostics)
  • Satellite and aerial imagery processing
  • Industrial inspection image batch processing
  • Real-time image transcoding pipelines
  • Scientific imaging and microscopy data pipelines

Hardware Requirements

  • NVIDIA GPU with CUDA support
  • Hardware JPEG decode available on Ampere and later (A100, H100)
  • CPU fallback ensures compatibility on all platforms

Language Bindings

  • Python (primary user-facing API)
  • C/C++ (underlying library API)

Connections

  • NVIDIA-DALI — DALI uses nvImageCodec as its image decode backend for GPU-accelerated data loading
  • CV-CUDA — CV-CUDA zero-copy interop means decoded images flow directly into CV-CUDA operators
  • NPP — NPP handles pixel-level processing after nvImageCodec decode
  • nvComp — nvComp handles general data compression; nvImageCodec handles image-specific codecs

Resources