Hololink Image Processor GPU-Resident Operator#
Authors: Holoscan Team (NVIDIA)
Supported platforms: aarch64
Language: C++
Last modified: March 13, 2026
Latest version: 0.1.0
Minimum Holoscan SDK version: 4.0.0
Tested Holoscan SDK versions: 4.0.0
Contribution metric: Level 1 - Highly Reliable
This operator performs image processing operations on Bayer image data using GPU-resident processing. It includes optical black correction, histogram calculation, and automatic white balance.
Overview#
The ImageProcessorGpuResidentOp is a GPU-resident Holoscan operator that:
- Applies optical black level correction
- Calculates per-channel histograms
- Computes white balance gains automatically
- Applies white balance correction
All operations are performed entirely on GPU memory for low-latency processing.
Requirements#
- Holoscan SDK 4.0.0 or later
- Holoscan Sensor Bridge ("Hololink") library installed and available
- CUDA-capable GPU
Usage#
C++#
#include <image_processor_gpu_resident/image_processor_gpu_resident.hpp>
// In your application setup:
auto image_processor = make_operator<hololink::operators::ImageProcessorGpuResidentOp>(
"image_processor",
holoscan::Arg("width", width),
holoscan::Arg("height", height),
holoscan::Arg("pixel_format", static_cast<int>(pixel_format)),
holoscan::Arg("bayer_format", static_cast<int>(bayer_format)),
holoscan::Arg("optical_black", optical_black_value)
);
// Add to your pipeline after CSI-to-Bayer conversion
add_flow(csi_to_bayer, image_processor, ('out', 'in'));
add_flow(image_processor, next_operator, ('out', 'in'));
Parameters#
| Parameter | Type | Description |
|---|---|---|
width |
int32_t | Image width in pixels |
height |
int32_t | Image height in pixels |
pixel_format |
int | Pixel format (RAW_8=0, RAW_10=1, RAW_12=2) |
bayer_format |
int | Bayer pattern (RGGB=0, GBRG=1, BGGR=2, GRBG=3) |
optical_black |
int32_t | Optical black value to subtract (default: 0) |
Processing Pipeline#
- Optical Black Correction: Subtracts the optical black value and rescales
- Histogram Calculation: Computes per-channel (R, G, B) histograms
- White Balance Gain Calculation: Computes gains based on gray-world assumption
- Apply White Balance: Applies the computed gains to each pixel
Build#
This operator is built as part of the HoloHub build system:
./run build image_processor_gpu_resident
Dependencies#
hololink::core- Core hololink libraryhololink::common- Common hololink utilities (CUDA helpers)holoscan::core- Holoscan SDKfmt- Formatting libraryCUDA- CUDA driver API