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.
Speedup Distribution
How many transforms fall into each speedup range (Albumentationsx vs best competitor). 37 transforms with head-to-head comparison.
Results
Click any column header to sort · Transform names link to interactive demos
| Transform | albumentationsx 2.0.18 CPU · macOS arm64 | kornia 0.8.2 CPU · macOS arm64 | torchvision 0.25.0 CPU · macOS arm64 | Speedup Albx / best other |
|---|---|---|---|---|
| RandomGamma | 4161 ± 170 | 83 ± 0 | — | 50x |
| MotionBlur | 1489 ± 22 | 63 ± 1 | — | 24x |
| Blur | 2307 ± 34 | 186 ± 3 | — | 12x |
| Rotate | 1729 ± 53 | 172 ± 1 | 152 ± 10 | 10x |
| Solarize | 4048 ± 129 | 339 ± 4 | 456 ± 11 | 8.9x |
| Sharpen | 723 ± 3 | 140 ± 6 | — | 5.2x |
| GaussianBlur | 757 ± 4 | 188 ± 2 | 49 ± 6 | 4.0x |
| Perspective | 581 ± 7 | 149 ± 1 | 129 ± 2 | 3.9x |
| PlasmaBrightness | 86 ± 0 | 24 ± 1 | — | 3.6x |
| RandomResizedCrop | 970 ± 8 | 309 ± 2 | 297 ± 3 | 3.1x |
| SmallestMaxSize | 583 ± 7 | 187 ± 3 | — | 3.1x |
| OpticalDistortion | 466 ± 4 | 157 ± 4 | — | 3.0x |
| PlasmaContrast | 69 ± 1 | 24 ± 1 | — | 2.9x |
| Affine | 640 ± 7 | 228 ± 3 | 143 ± 3 | 2.8x |
| Contrast | 3756 ± 76 | 1346 ± 31 | — | 2.8x |
| Brightness | 3746 ± 22 | 1350 ± 40 | — | 2.8x |
| ChannelDropout | 5853 ± 152 | 2179 ± 95 | — | 2.7x |
| Shear | 658 ± 6 | 250 ± 2 | 163 ± 6 | 2.6x |
| Resize | 744 ± 6 | 297 ± 3 | 194 ± 1 | 2.5x |
| Erasing | 9957 ± 240 | 426 ± 10 | 4321 ± 384 | 2.3x |
| LongestMaxSize | 835 ± 17 | 376 ± 2 | — | 2.2x |
| GaussianNoise | 96 ± 2 | 65 ± 0 | — | 1.5x |
| ChannelShuffle | 2282 ± 54 | 929 ± 25 | 1600 ± 41 | 1.4x |
| ThinPlateSpline | 79 ± 2 | 62 ± 0 | — | 1.3x |
| GaussianIllumination | 251 ± 1 | 212 ± 15 | — | 1.2x |
| AutoContrast | 436 ± 4 | 374 ± 3 | — | 1.2x |
| CornerIllumination | 209 ± 2 | 181 ± 3 | — | 1.2x |
| Pad | 8573 ± 797 | — | 9112 ± 704 | 0.9x |
| Invert | 9859 ± 1220 | 2774 ± 169 | 15806 ± 3070 | 0.6x |
| PlasmaShadow | 127 ± 1 | 224 ± 2 | — | 0.6x |
| VerticalFlip | 8577 ± 77 | 2296 ± 118 | 15409 ± 890 | 0.6x |
| RandomCrop128 | 47928 ± 912 | 2566 ± 75 | 124539 ± 2345 | 0.4x |
| Posterize | 4088 ± 111 | 317 ± 16 | 12018 ± 1989 | 0.3x |
| LinearIllumination | 146 ± 2 | 491 ± 12 | — | 0.3x |
| Normalize | 386 ± 4 | 1402 ± 64 | 795 ± 22 | 0.3x |
| CenterCrop128 | 48885 ± 772 | — | 223574 ± 5049 | 0.2x |
| HorizontalFlip | 2436 ± 204 | 2286 ± 557 | 15102 ± 3640 | 0.2x |
| Elastic | — | 1 ± 0 | 4 ± 0 | — |
| ElasticTransform | 243 ± 3 | — | — | — |
| Grayscale | 364 ± 2 | — | — | — |
| JpegCompression | 154 ± 0 | — | — | — |
| MedianBlur | 399 ± 1 | — | — | — |
| SaltAndPepper | 413 ± 1 | — | — | — |
Methodology
Test Environment
- Platform
- macOS arm64 (Apple M-series)
- CPU threads
- 1 (forced single-thread)
- Image channels
- 9
- Images per run
- 2000
- Runs per transform
- 5
- Last run
- February 26, 2026
Library Versions
- Albumentationsx
- 2.0.18
- Kornia
- 0.8.2
- Torchvision
- 0.25.0
- NumPy
- 2.4.2
- 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: Albumentationsx median ÷ highest competitor median. Green = 2× or faster, yellow = 1–2×, red = 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.