Image Benchmark Results
Single-threaded CPU benchmark comparing image augmentation throughput (images/second). All libraries run under identical conditions on the same machine.
Pairwise Summary
Generated automatically from benchmark JSON at build time (median speedup midpoint with IQR).
Albumentationsx vs Kornia
Wins: 46 / 48 · Median: 6.32x · IQR: 2.65x-11.50x
Albumentationsx vs Torchvision
Wins: 24 / 27 · Median: 5.78x · IQR: 1.77x-10.27x
Speedup Distribution
How many transforms fall into each speedup range (Albumentationsx vs best competitor). 52 transforms with head-to-head comparison.
Results
Click any column header to sort · Transform names link to interactive demos
| 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) |
|---|---|---|---|---|
| MedianBlur | 1550 ± 19 | 6 ± 0 | — | 256-272x |
| Elastic | 425 ± 8 | 1 ± 0 | 3 ± 0 | 115-132x |
| RandomGamma | 14281 ± 1142 | 226 ± 5 | — | 57-70x |
| MotionBlur | 4265 ± 48 | 117 ± 6 | — | 34-39x |
| Blur | 7402 ± 234 | 365 ± 8 | — | 19-21x |
| Hue | 2001 ± 9 | 123 ± 7 | — | 15-17x |
| PhotoMetricDistort | 1070 ± 8 | — | 80 ± 3 | 13-14x |
| Solarize | 13474 ± 919 | 262 ± 3 | 1117 ± 35 | 11-13x |
| ColorJitter | 1199 ± 25 | 100 ± 3 | 88 ± 3 | 11-13x |
| Saturation | 1307 ± 38 | 132 ± 4 | — | 9.4-11x |
| Rotate | 2914 ± 21 | 330 ± 7 | 319 ± 8 | 8.6-9.1x |
| Pad | 38630 ± 673 | — | 4480 ± 129 | 8.2-9.0x |
| LongestMaxSize | 3908 ± 47 | 481 ± 36 | — | 7.5-8.9x |
| Grayscale | 17827 ± 1101 | 1574 ± 77 | 2206 ± 179 | 7.0-9.3x |
| Sharpen | 2226 ± 44 | 263 ± 14 | 274 ± 9 | 7.7-8.5x |
| SmallestMaxSize | 2728 ± 24 | 375 ± 10 | — | 7.0-7.5x |
| GaussianBlur | 2344 ± 46 | 353 ± 13 | 124 ± 17 | 6.3-7.0x |
| CLAHE | 652 ± 2 | 109 ± 2 | — | 5.8-6.1x |
| HorizontalFlip | 12908 ± 422 | 1128 ± 42 | 2234 ± 27 | 5.5-6.0x |
| Snow | 707 ± 11 | 129 ± 4 | — | 5.2-5.7x |
| Affine | 1423 ± 7 | — | 264 ± 16 | 5.1-5.7x |
| Perspective | 1167 ± 14 | 170 ± 5 | 217 ± 8 | 5.1-5.6x |
| Resize | 3477 ± 30 | 648 ± 15 | 271 ± 4 | 5.2-5.5x |
| RandomResizedCrop | 4226 ± 17 | 579 ± 6 | 789 ± 27 | 5.2-5.6x |
| Contrast | 9695 ± 276 | 2159 ± 193 | 870 ± 26 | 4.0-5.1x |
| Brightness | 9963 ± 339 | 2276 ± 169 | 1681 ± 21 | 3.9-4.9x |
| OpticalDistortion | 774 ± 13 | 193 ± 4 | — | 3.9-4.2x |
| ChannelDropout | 11932 ± 441 | 3065 ± 179 | — | 3.5-4.3x |
| Shear | 1266 ± 10 | 358 ± 11 | — | 3.4-3.7x |
| AutoContrast | 1670 ± 15 | 576 ± 18 | 178 ± 2 | 2.8-3.0x |
| RGBShift | 4736 ± 123 | 1787 ± 71 | — | 2.5-2.8x |
| GaussianNoise | 319 ± 8 | 121 ± 2 | — | 2.5-2.7x |
| Erasing | 26700 ± 3002 | 776 ± 45 | 10421 ± 629 | 2.1-3.0x |
| PlasmaBrightness | 186 ± 1 | 76 ± 2 | — | 2.4-2.5x |
| Equalize | 1273 ± 6 | 310 ± 17 | 588 ± 17 | 2.1-2.2x |
| PlankianJitter | 3215 ± 25 | 1578 ± 100 | — | 1.9-2.2x |
| ChannelShuffle | 7779 ± 52 | 1446 ± 115 | 4290 ± 303 | 1.7-2.0x |
| GaussianIllumination | 765 ± 11 | 428 ± 16 | — | 1.7-1.9x |
| PlasmaContrast | 134 ± 4 | 75 ± 6 | — | 1.6-2.0x |
| JpegCompression | 1353 ± 1 | 117 ± 5 | 826 ± 11 | 1.6-1.7x |
| Invert | 33252 ± 3185 | 4412 ± 293 | 22891 ± 2484 | 1.2-1.8x |
| CornerIllumination | 500 ± 3 | 350 ± 4 | — | 1.4-1.5x |
| Normalize | 1621 ± 10 | 1173 ± 39 | 947 ± 33 | 1.3-1.4x |
| ThinPlateSpline | 84 ± 5 | 61 ± 2 | — | 1.3-1.5x |
| Rain | 2174 ± 37 | 1591 ± 61 | — | 1.3-1.4x |
| SaltAndPepper | 599 ± 15 | 450 ± 5 | — | 1.3-1.4x |
| VerticalFlip | 26665 ± 1851 | 2387 ± 58 | 26928 ± 4799 | 0.8-1.3x |
| PlasmaShadow | 205 ± 7 | 211 ± 5 | — | 0.9-1.0x |
| Posterize | 13288 ± 667 | 709 ± 27 | 17723 ± 1380 | 0.7-0.9x |
| LinearIllumination | 568 ± 5 | 849 ± 22 | — | 0.6-0.7x |
| RandomCrop128 | 64659 ± 1175 | 2802 ± 40 | 112838 ± 2384 | 0.6-0.6x |
| CenterCrop128 | 65127 ± 1358 | — | 203348 ± 7429 | 0.3-0.3x |
| AdditiveNoise | 267 ± 12 | — | — | — |
| AdvancedBlur | 1256 ± 49 | — | — | — |
| AtmosphericFog | 349 ± 15 | — | — | — |
| ChannelSwap | 7363 ± 76 | — | — | — |
| ChromaticAberration | 496 ± 13 | — | — | — |
| CoarseDropout | 18413 ± 1356 | — | — | — |
| ConstrainedCoarseDropout | 108398 ± 1116 | — | — | — |
| CropAndPad | 2763 ± 49 | — | — | — |
| Defocus | 131 ± 1 | — | — | — |
| Dithering | 6 ± 0 | — | — | — |
| Downscale | 5351 ± 68 | — | — | — |
| Emboss | 2707 ± 27 | — | — | — |
| FancyPCA | 111 ± 2 | — | — | — |
| FilmGrain | 272 ± 1 | — | — | — |
| GlassBlur | 36 ± 1 | — | — | — |
| GridDistortion | 1309 ± 38 | — | — | — |
| GridDropout | 82 ± 3 | — | — | — |
| GridMask | 15684 ± 535 | — | — | — |
| HSV | 1140 ± 13 | — | — | — |
| Halftone | 26 ± 1 | — | — | — |
| ISONoise | 178 ± 3 | — | — | — |
| LensFlare | 263 ± 10 | — | — | — |
| Morphological | 17026 ± 1242 | — | — | — |
| MultiplicativeNoise | 4955 ± 109 | — | — | — |
| PadIfNeeded | 16014 ± 370 | — | — | — |
| PiecewiseAffine | 173 ± 7 | — | — | — |
| PixelDropout | 403 ± 9 | — | — | — |
| RandomFog | 9 ± 0 | — | — | — |
| RandomGravel | 1299 ± 11 | — | — | — |
| RandomGridShuffle | 10619 ± 72 | — | — | — |
| RandomRotate90 | 1866 ± 47 | — | — | — |
| RandomScale | 3300 ± 44 | — | — | — |
| RandomShadow | 507 ± 8 | — | — | — |
| RandomSizedCrop | 3676 ± 66 | — | — | — |
| RandomSunFlare | 347 ± 2 | — | — | — |
| RandomToneCurve | 10725 ± 377 | — | — | — |
| RingingOvershoot | 151 ± 3 | — | — | — |
| SafeRotate | 1346 ± 4 | — | — | — |
| ShiftScaleRotate | 1362 ± 18 | — | — | — |
| ShotNoise | 45 ± 1 | — | — | — |
| Spatter | 108 ± 3 | — | — | — |
| SquareSymmetry | 2052 ± 46 | — | — | — |
| Superpixels | 18 ± 0 | — | — | — |
| ToSepia | 6866 ± 214 | — | — | — |
| Transpose | 1580 ± 20 | — | — | — |
| UnsharpMask | 383 ± 16 | — | — | — |
| Vignetting | 589 ± 16 | — | — | — |
| WaterRefraction | 124 ± 5 | — | — | — |
| ZoomBlur | 197 ± 12 | — | — | — |
Methodology
Test Environment
- Platform
- macOS arm64 (Apple M-series)
- CPU threads
- 1 (forced single-thread)
- Images per run
- 2000
- 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.
Warmup: Adaptive warmup until variance stabilizes before measurement begins.
Thread control: OMP, OpenBLAS, MKL, and OpenCV threads all forced to 1 to ensure fair single-thread comparison.
Image loading: Each library uses its native format — OpenCV (BGR→RGB) for Albumentationsx, normalized tensors for Kornia, PIL for Torchvision.
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.