Multichannel Image Benchmark Results

Single-threaded CPU benchmark for 9-channel image augmentation. Tests how well each library handles non-standard channel counts — common in satellite imagery, medical imaging, and scientific data.

Why multichannel matters

Standard image libraries are optimized for 3-channel RGB. Many real-world applications use more channels: satellite imagery (RGB + NIR + thermal), hyperspectral cameras, medical scans (CT slices as channels), and custom sensor fusion. This benchmark uses 9-channel images to test how each library handles arbitrary channel counts on a single CPU thread.

58 of 68
transforms where Albumentationsx is fastest
8.2x
average speedup over nearest competitor
across transforms where Albumentationsx leads
77x
fastest speedup (RandomGamma)
vs next fastest library

Pairwise Summary

Generated automatically from benchmark JSON at build time (median speedup midpoint with IQR).

Albumentationsx vs Kornia

Wins: 32 / 35 · Median: 3.73x · IQR: 2.17x-6.12x

Albumentationsx vs Torchvision

Wins: 11 / 18 · Median: 2.26x · IQR: 0.61x-6.03x

Speedup Distribution

How many transforms fall into each speedup range (Albumentationsx vs best competitor). 37 transforms with head-to-head comparison.

4< 0.5×50.5–1×61–2×132–5×45–10×410–50×1> 50×

Results

Transform
albumentationsx
2.1.1
CPU · macOS arm64
kornia
0.8.2
CPU · macOS arm64
torchvision
0.25.0
CPU · macOS arm64
Speedup
Albx / best other (range)
RandomGamma6328 ± 7283 ± 075-78x
MotionBlur1978 ± 12663 ± 129-34x
Blur3165 ± 31186 ± 317-17x
Rotate2833 ± 141172 ± 1152 ± 1016-17x
Solarize5822 ± 780339 ± 4456 ± 1111-15x
Sharpen969 ± 17140 ± 66.5-7.4x
Perspective788 ± 10149 ± 1129 ± 25.2-5.4x
GaussianBlur981 ± 19188 ± 249 ± 65.1-5.4x
PlasmaBrightness126 ± 224 ± 14.9-5.5x
Brightness5682 ± 1381350 ± 404.0-4.4x
OpticalDistortion653 ± 14157 ± 44.0-4.3x
Contrast5576 ± 6311346 ± 313.6-4.7x
Affine880 ± 20228 ± 3143 ± 33.7-4.0x
Shear931 ± 19250 ± 2163 ± 63.6-3.8x
PlasmaContrast89 ± 124 ± 13.6-3.8x
RandomResizedCrop969 ± 109309 ± 2297 ± 32.8-3.5x
SmallestMaxSize585 ± 5187 ± 33.1-3.2x
ChannelDropout6556 ± 8302179 ± 952.5-3.5x
Resize802 ± 14297 ± 3194 ± 12.6-2.8x
Erasing10944 ± 368426 ± 104321 ± 3842.2-2.9x
LongestMaxSize879 ± 12376 ± 22.3-2.4x
GaussianNoise131 ± 765 ± 01.9-2.1x
ChannelShuffle3117 ± 212929 ± 251600 ± 411.8-2.1x
AutoContrast662 ± 19374 ± 31.7-1.8x
ThinPlateSpline97 ± 162 ± 01.5-1.6x
CornerIllumination275 ± 9181 ± 31.4-1.6x
GaussianIllumination296 ± 11212 ± 151.3-1.6x
Pad9499 ± 11739112 ± 7040.8-1.3x
PlasmaShadow177 ± 4224 ± 20.8-0.8x
VerticalFlip11827 ± 14272296 ± 11815409 ± 8900.6-0.9x
Invert9115 ± 14412774 ± 16915806 ± 30700.4-0.8x
RandomCrop12862467 ± 77342566 ± 75124539 ± 23450.4-0.6x
LinearIllumination247 ± 5491 ± 120.5-0.5x
Posterize5500 ± 485317 ± 1612018 ± 19890.4-0.6x
Normalize477 ± 461402 ± 64795 ± 220.3-0.4x
CenterCrop12874581 ± 12008223574 ± 50490.3-0.4x
HorizontalFlip3155 ± 712286 ± 55715102 ± 36400.2-0.3x
AdditiveNoise112 ± 1
AdvancedBlur818 ± 305
CoarseDropout9047 ± 339
ConstrainedCoarseDropout119167 ± 26242
CropAndPad868 ± 10
Defocus52 ± 0
Downscale3916 ± 136
Elastic1 ± 04 ± 0
ElasticTransform418 ± 7
Emboss1205 ± 14
Grayscale515 ± 4
GridDistortion810 ± 9
GridDropout81 ± 78
JpegCompression205 ± 3
MedianBlur546 ± 15
Morphological6610 ± 429
MultiplicativeNoise2089 ± 71
PadIfNeeded8504 ± 352
PiecewiseAffine189 ± 3
PixelDropout371 ± 7
RandomGridShuffle4668 ± 657
RandomRotate902137 ± 1277
RandomScale882 ± 32
RandomSizedCrop828 ± 37
RingingOvershoot61 ± 32
SafeRotate983 ± 76
SaltAndPepper530 ± 9
ShiftScaleRotate926 ± 44
SquareSymmetry2325 ± 1080
Transpose2081 ± 88
UnsharpMask143 ± 5

Methodology

Test Environment

Platform
macOS arm64 (Apple M-series)
CPU threads
1 (forced single-thread)
Image channels
9
Images per run
5
Runs per transform
5
Last run
March 27, 2026

Library Versions

Albumentationsx
2.1.1
Kornia
0.8.2
Torchvision
0.25.0
NumPy
2.4.3
OpenCV
4.13.0.92

Metric: Median throughput in images/second across 5 runs. Higher is better.

Channel handling: All libraries process the same9-channel uint8 images. Libraries that don't support arbitrary channel counts show for those transforms.

Thread control: OMP, OpenBLAS, MKL, and OpenCV threads all forced to 1 to ensure fair single-thread comparison.

Speedup column: Range computed from throughput error bars: speedup_from to speedup_to, where each bound uses median +/- std. Green = 2x+ conservative bound, yellow = 1x-2x, gray = slower.

Want to verify the results on your own hardware or check that the comparison is fair? The benchmark code is open source on GitHub.