mirror of
https://github.com/Cykooz/fast_image_resize.git
synced 2026-10-07 17:01:09 +00:00
Updated benchmarks.
This commit is contained in:
+47
-47
@@ -6,7 +6,7 @@ Environment:
|
||||
|
||||
- CPU: Neoverse-N1 2GHz (Oracle Cloud Compute, VM.Standard.A1.Flex)
|
||||
- Ubuntu 24.04 (linux 6.17.0)
|
||||
- Rust 1.96.0
|
||||
- Rust 1.97.1
|
||||
- criterion = "0.7.0"
|
||||
- fast_image_resize = "6.0.1"
|
||||
|
||||
@@ -39,11 +39,11 @@ Pipeline:
|
||||
|
||||
| | Nearest | Box | Bilinear | Bicubic | Lanczos3 |
|
||||
|----------|:-------:|:------:|:--------:|:-------:|:--------:|
|
||||
| image | 85.12 | - | 162.16 | 280.32 | 395.20 |
|
||||
| resize | 18.01 | 57.46 | 99.42 | 181.77 | 271.01 |
|
||||
| libvips | 9.50 | 137.87 | 27.05 | 66.46 | 88.16 |
|
||||
| fir rust | 0.93 | 21.62 | 33.19 | 84.79 | 112.42 |
|
||||
| fir neon | 0.93 | 19.03 | 29.35 | 53.89 | 80.08 |
|
||||
| image | 83.47 | - | 161.06 | 279.08 | 393.06 |
|
||||
| resize | 17.85 | 57.03 | 99.40 | 181.91 | 270.53 |
|
||||
| libvips | 9.37 | 137.72 | 26.85 | 65.72 | 87.42 |
|
||||
| fir rust | 0.89 | 21.50 | 32.95 | 84.92 | 111.98 |
|
||||
| fir neon | 0.89 | 18.98 | 29.21 | 53.59 | 79.72 |
|
||||
|
||||
<!-- bench_compare_rgb end -->
|
||||
|
||||
@@ -62,10 +62,10 @@ Pipeline:
|
||||
|
||||
| | Nearest | Box | Bilinear | Bicubic | Lanczos3 |
|
||||
|----------|:-------:|:------:|:--------:|:-------:|:--------:|
|
||||
| resize | 23.25 | 83.97 | 118.46 | 190.13 | 280.65 |
|
||||
| libvips | 12.97 | 326.75 | 230.34 | 462.90 | 601.18 |
|
||||
| fir rust | 1.05 | 48.55 | 62.64 | 128.41 | 167.95 |
|
||||
| fir neon | 1.05 | 32.06 | 45.74 | 75.15 | 105.96 |
|
||||
| resize | 23.09 | 81.37 | 118.87 | 189.42 | 280.82 |
|
||||
| libvips | 12.82 | 326.91 | 227.36 | 460.74 | 597.53 |
|
||||
| fir rust | 1.03 | 48.21 | 62.48 | 128.18 | 168.24 |
|
||||
| fir neon | 1.03 | 32.04 | 45.85 | 73.75 | 102.52 |
|
||||
|
||||
<!-- bench_compare_rgba end -->
|
||||
|
||||
@@ -83,11 +83,11 @@ Pipeline:
|
||||
|
||||
| | Nearest | Box | Bilinear | Bicubic | Lanczos3 |
|
||||
|----------|:-------:|:-----:|:--------:|:-------:|:--------:|
|
||||
| image | 77.77 | - | 105.01 | 154.93 | 209.09 |
|
||||
| resize | 10.61 | 25.22 | 38.49 | 67.99 | 89.72 |
|
||||
| libvips | 5.61 | 51.23 | 14.39 | 24.45 | 31.17 |
|
||||
| fir rust | 0.52 | 8.12 | 11.53 | 19.06 | 25.75 |
|
||||
| fir neon | 0.52 | 5.73 | 9.02 | 16.23 | 24.83 |
|
||||
| image | 75.08 | - | 107.05 | 159.00 | 214.51 |
|
||||
| resize | 10.58 | 25.99 | 39.19 | 69.52 | 92.19 |
|
||||
| libvips | 5.49 | 50.94 | 14.06 | 24.23 | 30.82 |
|
||||
| fir rust | 0.52 | 8.13 | 11.46 | 18.97 | 25.56 |
|
||||
| fir neon | 0.52 | 5.60 | 9.08 | 16.18 | 24.53 |
|
||||
|
||||
<!-- bench_compare_l end -->
|
||||
|
||||
@@ -108,9 +108,9 @@ Pipeline:
|
||||
|
||||
| | Nearest | Box | Bilinear | Bicubic | Lanczos3 |
|
||||
|----------|:-------:|:------:|:--------:|:-------:|:--------:|
|
||||
| libvips | 8.70 | 187.63 | 133.41 | 231.63 | 291.51 |
|
||||
| fir rust | 0.68 | 33.65 | 39.85 | 56.77 | 69.76 |
|
||||
| fir neon | 0.68 | 19.35 | 24.54 | 38.86 | 53.59 |
|
||||
| libvips | 8.43 | 185.55 | 131.99 | 229.53 | 290.66 |
|
||||
| fir rust | 0.69 | 33.51 | 39.59 | 56.26 | 69.12 |
|
||||
| fir neon | 0.69 | 19.10 | 24.36 | 38.38 | 53.34 |
|
||||
|
||||
<!-- bench_compare_la end -->
|
||||
|
||||
@@ -128,11 +128,11 @@ Pipeline:
|
||||
|
||||
| | Nearest | Box | Bilinear | Bicubic | Lanczos3 |
|
||||
|----------|:-------:|:------:|:--------:|:-------:|:--------:|
|
||||
| image | 87.96 | - | 167.95 | 311.81 | 439.21 |
|
||||
| resize | 19.54 | 56.71 | 97.12 | 179.53 | 264.88 |
|
||||
| libvips | 23.09 | 197.68 | 108.47 | 227.87 | 301.61 |
|
||||
| fir rust | 1.55 | 48.06 | 75.94 | 134.00 | 190.20 |
|
||||
| fir neon | 1.55 | 49.03 | 107.60 | 182.35 | 275.17 |
|
||||
| image | 86.18 | - | 164.43 | 304.94 | 438.32 |
|
||||
| resize | 19.47 | 56.22 | 96.94 | 180.85 | 265.06 |
|
||||
| libvips | 22.69 | 196.50 | 108.59 | 227.56 | 300.61 |
|
||||
| fir rust | 1.55 | 45.29 | 71.02 | 123.38 | 174.23 |
|
||||
| fir neon | 1.55 | 48.92 | 107.66 | 181.87 | 276.08 |
|
||||
|
||||
<!-- bench_compare_rgb16 end -->
|
||||
|
||||
@@ -151,10 +151,10 @@ Pipeline:
|
||||
|
||||
| | Nearest | Box | Bilinear | Bicubic | Lanczos3 |
|
||||
|----------|:-------:|:------:|:--------:|:-------:|:--------:|
|
||||
| resize | 27.67 | 83.52 | 120.86 | 202.04 | 293.93 |
|
||||
| libvips | 32.69 | 330.39 | 232.21 | 463.59 | 597.62 |
|
||||
| fir rust | 1.69 | 108.32 | 164.23 | 278.84 | 389.66 |
|
||||
| fir neon | 1.69 | 78.89 | 122.18 | 212.33 | 305.96 |
|
||||
| resize | 27.32 | 84.23 | 121.16 | 200.17 | 294.56 |
|
||||
| libvips | 32.84 | 329.58 | 227.05 | 456.79 | 593.13 |
|
||||
| fir rust | 1.67 | 104.82 | 156.77 | 283.16 | 388.88 |
|
||||
| fir neon | 1.68 | 78.52 | 121.96 | 211.76 | 305.30 |
|
||||
|
||||
<!-- bench_compare_rgba16 end -->
|
||||
|
||||
@@ -172,11 +172,11 @@ Pipeline:
|
||||
|
||||
| | Nearest | Box | Bilinear | Bicubic | Lanczos3 |
|
||||
|----------|:-------:|:-----:|:--------:|:-------:|:--------:|
|
||||
| image | 78.06 | - | 109.47 | 169.31 | 224.94 |
|
||||
| resize | 11.13 | 24.01 | 36.36 | 65.23 | 92.03 |
|
||||
| libvips | 9.40 | 70.21 | 38.73 | 77.86 | 102.19 |
|
||||
| fir rust | 0.70 | 24.55 | 35.58 | 57.41 | 81.62 |
|
||||
| fir neon | 0.70 | 13.96 | 19.89 | 32.82 | 46.68 |
|
||||
| image | 77.58 | - | 108.87 | 167.09 | 222.83 |
|
||||
| resize | 10.99 | 24.25 | 37.62 | 67.41 | 94.50 |
|
||||
| libvips | 9.11 | 69.06 | 38.11 | 76.39 | 100.01 |
|
||||
| fir rust | 0.69 | 23.13 | 33.31 | 52.91 | 74.68 |
|
||||
| fir neon | 0.69 | 13.94 | 19.71 | 32.53 | 46.57 |
|
||||
|
||||
<!-- bench_compare_l16 end -->
|
||||
|
||||
@@ -197,9 +197,9 @@ Pipeline:
|
||||
|
||||
| | Nearest | Box | Bilinear | Bicubic | Lanczos3 |
|
||||
|----------|:-------:|:------:|:--------:|:-------:|:--------:|
|
||||
| libvips | 17.67 | 201.92 | 145.05 | 244.12 | 305.65 |
|
||||
| fir rust | 1.05 | 54.67 | 74.63 | 118.01 | 151.70 |
|
||||
| fir neon | 1.05 | 28.36 | 40.41 | 65.05 | 90.69 |
|
||||
| libvips | 17.42 | 200.41 | 143.11 | 242.22 | 302.76 |
|
||||
| fir rust | 1.05 | 54.16 | 70.81 | 113.97 | 145.58 |
|
||||
| fir neon | 1.05 | 28.26 | 40.27 | 65.29 | 91.44 |
|
||||
|
||||
<!-- bench_compare_la16 end -->
|
||||
|
||||
@@ -217,10 +217,10 @@ Pipeline:
|
||||
|
||||
| | Nearest | Box | Bilinear | Bicubic | Lanczos3 |
|
||||
|----------|:-------:|:-----:|:--------:|:-------:|:--------:|
|
||||
| image | 45.55 | - | 100.08 | 174.50 | 235.24 |
|
||||
| resize | 11.83 | 24.02 | 31.62 | 55.41 | 82.32 |
|
||||
| libvips | 8.26 | 68.04 | 39.61 | 92.16 | 120.59 |
|
||||
| fir rust | 1.05 | 18.56 | 30.89 | 53.71 | 77.71 |
|
||||
| image | 44.71 | - | 98.13 | 168.95 | 227.68 |
|
||||
| resize | 11.77 | 23.88 | 31.81 | 54.59 | 82.45 |
|
||||
| libvips | 7.93 | 67.05 | 38.91 | 91.03 | 119.15 |
|
||||
| fir rust | 1.06 | 18.57 | 30.55 | 53.83 | 77.48 |
|
||||
|
||||
<!-- bench_compare_l32f end -->
|
||||
|
||||
@@ -246,8 +246,8 @@ Pipeline:
|
||||
|
||||
| | Nearest | Box | Bilinear | Bicubic | Lanczos3 |
|
||||
|----------|:-------:|:------:|:--------:|:-------:|:--------:|
|
||||
| libvips | 16.58 | 184.87 | 128.10 | 225.74 | 287.46 |
|
||||
| fir rust | 1.72 | 42.67 | 67.39 | 119.26 | 165.99 |
|
||||
| libvips | 16.40 | 184.59 | 125.68 | 224.14 | 283.76 |
|
||||
| fir rust | 1.69 | 41.65 | 66.10 | 118.19 | 164.64 |
|
||||
|
||||
<!-- bench_compare_la32f end -->
|
||||
|
||||
@@ -265,10 +265,10 @@ Pipeline:
|
||||
|
||||
| | Nearest | Box | Bilinear | Bicubic | Lanczos3 |
|
||||
|----------|:-------:|:------:|:--------:|:-------:|:--------:|
|
||||
| image | 56.01 | - | 129.91 | 297.73 | 404.21 |
|
||||
| resize | 22.44 | 43.80 | 67.94 | 128.55 | 187.76 |
|
||||
| libvips | 19.51 | 199.19 | 111.67 | 274.90 | 359.87 |
|
||||
| fir rust | 2.52 | 40.51 | 71.07 | 149.98 | 213.66 |
|
||||
| image | 55.15 | - | 127.71 | 294.01 | 397.87 |
|
||||
| resize | 22.09 | 43.39 | 67.18 | 128.89 | 186.98 |
|
||||
| libvips | 19.33 | 202.45 | 111.67 | 274.22 | 358.29 |
|
||||
| fir rust | 2.55 | 41.09 | 71.48 | 149.31 | 213.81 |
|
||||
|
||||
<!-- bench_compare_rgb32f end -->
|
||||
|
||||
@@ -290,7 +290,7 @@ Pipeline:
|
||||
|
||||
| | Nearest | Box | Bilinear | Bicubic | Lanczos3 |
|
||||
|----------|:-------:|:------:|:--------:|:-------:|:--------:|
|
||||
| libvips | 30.45 | 323.63 | 224.27 | 451.64 | 587.34 |
|
||||
| fir rust | 3.42 | 72.10 | 111.44 | 211.38 | 314.30 |
|
||||
| libvips | 30.65 | 322.37 | 221.02 | 443.62 | 578.03 |
|
||||
| fir rust | 3.29 | 71.35 | 111.05 | 210.23 | 312.22 |
|
||||
|
||||
<!-- bench_compare_rgba32f end -->
|
||||
|
||||
+65
-61
@@ -6,16 +6,16 @@ Environment:
|
||||
|
||||
- CPU: AMD Ryzen 9 5950X
|
||||
- RAM: DDR4 4000 MHz
|
||||
- Ubuntu 24.04 (linux 6.11.0)
|
||||
- Rust 1.87.0
|
||||
- criterion = "0.5.1"
|
||||
- fast_image_resize = "5.1.4"
|
||||
- wasmtime = "32.0.0"
|
||||
- Ubuntu 24.04 (linux 7.0.0)
|
||||
- Rust 1.97.1
|
||||
- criterion = "0.7.0"
|
||||
- fast_image_resize = "6.0.1"
|
||||
- wasmtime = "47.0.1"
|
||||
|
||||
Other libraries used to compare of resizing speed:
|
||||
|
||||
- image = "0.25.6" (<https://crates.io/crates/image>)
|
||||
- resize = "0.8.8" (<https://crates.io/crates/resize>, single-threaded mode)
|
||||
- resize = "0.8.9" (<https://crates.io/crates/resize>, single-threaded mode)
|
||||
|
||||
Resize algorithms:
|
||||
|
||||
@@ -36,14 +36,14 @@ Pipeline:
|
||||
`src_image => resize => dst_image`
|
||||
|
||||
- Source image [nasa-4928x3279.png](https://github.com/Cykooz/fast_image_resize/blob/main/data/nasa-4928x3279.png)
|
||||
- Numbers in the table mean a duration of image resizing in milliseconds.
|
||||
- Numbers in the table mean the duration of the image resizing in milliseconds.
|
||||
|
||||
| | Nearest | Box | Bilinear | Bicubic | Lanczos3 |
|
||||
|-------------|:-------:|:-----:|:--------:|:-------:|:--------:|
|
||||
| image | 22.36 | - | 114.09 | 207.35 | 299.62 |
|
||||
| resize | 11.40 | 32.71 | 59.71 | 113.30 | 167.48 |
|
||||
| fir rust | 0.39 | 36.51 | 67.08 | 128.85 | 191.63 |
|
||||
| fir simd128 | 0.39 | 4.82 | 7.46 | 13.43 | 19.83 |
|
||||
| image | 22.24 | - | 100.02 | 178.71 | 254.58 |
|
||||
| resize | 10.81 | 32.08 | 58.26 | 110.90 | 173.44 |
|
||||
| fir rust | 0.30 | 34.77 | 64.66 | 124.81 | 186.33 |
|
||||
| fir simd128 | 0.30 | 5.77 | 8.81 | 15.43 | 22.49 |
|
||||
|
||||
<!-- bench_compare_rgb end -->
|
||||
|
||||
@@ -57,14 +57,14 @@ Pipeline:
|
||||
|
||||
- Source image
|
||||
[nasa-4928x3279-rgba.png](https://github.com/Cykooz/fast_image_resize/blob/main/data/nasa-4928x3279-rgba.png)
|
||||
- Numbers in the table mean a duration of image resizing in milliseconds.
|
||||
- Numbers in the table mean the duration of the image resizing in milliseconds.
|
||||
- The `image` crate does not support multiplying and dividing by alpha channel.
|
||||
|
||||
| | Nearest | Box | Bilinear | Bicubic | Lanczos3 |
|
||||
|-------------|:-------:|:-----:|:--------:|:-------:|:--------:|
|
||||
| resize | 11.65 | 38.44 | 73.46 | 140.39 | 209.13 |
|
||||
| fir rust | 0.25 | 89.18 | 129.75 | 211.68 | 294.66 |
|
||||
| fir simd128 | 0.25 | 12.16 | 14.94 | 21.81 | 29.56 |
|
||||
| resize | 11.41 | 38.23 | 73.39 | 138.00 | 211.01 |
|
||||
| fir rust | 0.25 | 88.42 | 129.85 | 213.80 | 298.47 |
|
||||
| fir simd128 | 0.25 | 13.29 | 16.48 | 24.05 | 32.50 |
|
||||
|
||||
<!-- bench_compare_rgba end -->
|
||||
|
||||
@@ -78,14 +78,14 @@ Pipeline:
|
||||
|
||||
- Source image [nasa-4928x3279.png](https://github.com/Cykooz/fast_image_resize/blob/main/data/nasa-4928x3279.png)
|
||||
has converted into grayscale image with one byte per pixel.
|
||||
- Numbers in the table mean a duration of image resizing in milliseconds.
|
||||
- Numbers in the table mean the duration of the image resizing in milliseconds.
|
||||
|
||||
| | Nearest | Box | Bilinear | Bicubic | Lanczos3 |
|
||||
|-------------|:-------:|:-----:|:--------:|:-------:|:--------:|
|
||||
| image | 18.89 | - | 85.80 | 152.05 | 216.91 |
|
||||
| resize | 6.67 | 16.13 | 27.43 | 50.73 | 74.16 |
|
||||
| fir rust | 0.21 | 12.83 | 23.04 | 44.08 | 65.74 |
|
||||
| fir simd128 | 0.21 | 2.66 | 3.43 | 5.53 | 8.26 |
|
||||
| image | 19.77 | - | 75.47 | 130.61 | 184.25 |
|
||||
| resize | 7.13 | 16.40 | 27.14 | 51.54 | 75.86 |
|
||||
| fir rust | 0.21 | 13.09 | 23.50 | 44.67 | 66.77 |
|
||||
| fir simd128 | 0.21 | 2.63 | 3.46 | 5.46 | 8.06 |
|
||||
|
||||
<!-- bench_compare_l end -->
|
||||
|
||||
@@ -100,14 +100,14 @@ Pipeline:
|
||||
- Source image
|
||||
[nasa-4928x3279-rgba.png](https://github.com/Cykooz/fast_image_resize/blob/main/data/nasa-4928x3279-rgba.png)
|
||||
has converted into grayscale image with an alpha channel (two bytes per pixel).
|
||||
- Numbers in the table mean a duration of image resizing in milliseconds.
|
||||
- Numbers in the table mean the duration of the image resizing in milliseconds.
|
||||
- The `image` crate does not support multiplying and dividing by alpha channel.
|
||||
- The `resize` crate does not support this pixel format.
|
||||
|
||||
| | Nearest | Box | Bilinear | Bicubic | Lanczos3 |
|
||||
|-------------|:-------:|:-----:|:--------:|:-------:|:--------:|
|
||||
| fir rust | 0.19 | 43.68 | 65.07 | 108.59 | 153.40 |
|
||||
| fir simd128 | 0.19 | 7.04 | 8.48 | 11.78 | 16.11 |
|
||||
| fir rust | 0.19 | 44.14 | 64.38 | 105.64 | 147.63 |
|
||||
| fir simd128 | 0.19 | 7.67 | 9.54 | 13.86 | 18.60 |
|
||||
|
||||
<!-- bench_compare_la end -->
|
||||
|
||||
@@ -121,14 +121,14 @@ Pipeline:
|
||||
|
||||
- Source image [nasa-4928x3279.png](https://github.com/Cykooz/fast_image_resize/blob/main/data/nasa-4928x3279.png)
|
||||
has converted into RGB16 image.
|
||||
- Numbers in the table mean a duration of image resizing in milliseconds.
|
||||
- Numbers in the table mean the duration of the image resizing in milliseconds.
|
||||
|
||||
| | Nearest | Box | Bilinear | Bicubic | Lanczos3 |
|
||||
|-------------|:-------:|:-----:|:--------:|:-------:|:--------:|
|
||||
| image | 21.29 | - | 103.21 | 186.77 | 269.27 |
|
||||
| resize | 10.66 | 31.93 | 54.70 | 106.72 | 153.68 |
|
||||
| fir rust | 0.41 | 31.09 | 52.53 | 97.53 | 142.71 |
|
||||
| fir simd128 | 0.41 | 28.80 | 48.69 | 88.22 | 127.73 |
|
||||
| image | 22.37 | - | 93.58 | 164.15 | 237.91 |
|
||||
| resize | 10.16 | 31.39 | 57.52 | 110.59 | 174.47 |
|
||||
| fir rust | 0.38 | 32.44 | 50.07 | 87.39 | 126.54 |
|
||||
| fir simd128 | 0.36 | 38.94 | 68.75 | 128.67 | 188.66 |
|
||||
|
||||
<!-- bench_compare_rgb16 end -->
|
||||
|
||||
@@ -142,14 +142,14 @@ Pipeline:
|
||||
|
||||
- Source image
|
||||
[nasa-4928x3279-rgba.png](https://github.com/Cykooz/fast_image_resize/blob/main/data/nasa-4928x3279-rgba.png)
|
||||
- Numbers in the table mean a duration of image resizing in milliseconds.
|
||||
- Numbers in the table mean the duration of the image resizing in milliseconds.
|
||||
- The `image` crate does not support multiplying and dividing by alpha channel.
|
||||
|
||||
| | Nearest | Box | Bilinear | Bicubic | Lanczos3 |
|
||||
|-------------|:-------:|:-----:|:--------:|:-------:|:--------:|
|
||||
| resize | 12.68 | 39.06 | 74.18 | 141.37 | 209.51 |
|
||||
| fir rust | 0.42 | 84.14 | 117.31 | 178.55 | 243.12 |
|
||||
| fir simd128 | 0.42 | 47.40 | 71.17 | 122.44 | 171.00 |
|
||||
| resize | 12.52 | 38.62 | 72.34 | 139.18 | 206.96 |
|
||||
| fir rust | 0.47 | 85.87 | 113.63 | 170.33 | 229.21 |
|
||||
| fir simd128 | 0.44 | 59.33 | 96.57 | 171.30 | 247.36 |
|
||||
|
||||
<!-- bench_compare_rgba16 end -->
|
||||
|
||||
@@ -163,14 +163,14 @@ Pipeline:
|
||||
|
||||
- Source image [nasa-4928x3279.png](https://github.com/Cykooz/fast_image_resize/blob/main/data/nasa-4928x3279.png)
|
||||
has converted into grayscale image with two bytes per pixel.
|
||||
- Numbers in the table mean a duration of image resizing in milliseconds.
|
||||
- Numbers in the table mean the duration of the image resizing in milliseconds.
|
||||
|
||||
| | Nearest | Box | Bilinear | Bicubic | Lanczos3 |
|
||||
|-------------|:-------:|:-----:|:--------:|:-------:|:--------:|
|
||||
| image | 19.11 | - | 82.39 | 145.23 | 207.70 |
|
||||
| resize | 7.85 | 18.17 | 29.70 | 53.69 | 78.64 |
|
||||
| fir rust | 0.20 | 18.15 | 25.96 | 44.14 | 61.74 |
|
||||
| fir simd128 | 0.20 | 10.18 | 17.22 | 29.79 | 42.83 |
|
||||
| image | 20.01 | - | 83.55 | 145.72 | 207.00 |
|
||||
| resize | 7.09 | 16.93 | 28.27 | 52.38 | 77.69 |
|
||||
| fir rust | 0.20 | 17.48 | 24.52 | 42.30 | 58.87 |
|
||||
| fir simd128 | 0.19 | 14.29 | 22.45 | 41.29 | 60.30 |
|
||||
|
||||
<!-- bench_compare_l16 end -->
|
||||
|
||||
@@ -185,14 +185,14 @@ Pipeline:
|
||||
- Source image
|
||||
[nasa-4928x3279-rgba.png](https://github.com/Cykooz/fast_image_resize/blob/main/data/nasa-4928x3279-rgba.png)
|
||||
has converted into grayscale image with an alpha channel (four bytes per pixel).
|
||||
- Numbers in the table mean a duration of image resizing in milliseconds.
|
||||
- Numbers in the table mean the duration of the image resizing in milliseconds.
|
||||
- The `image` crate does not support multiplying and dividing by alpha channel.
|
||||
- The `resize` crate does not support this pixel format.
|
||||
|
||||
| | Nearest | Box | Bilinear | Bicubic | Lanczos3 |
|
||||
|-------------|:-------:|:-----:|:--------:|:-------:|:--------:|
|
||||
| fir rust | 0.25 | 44.73 | 61.06 | 92.55 | 124.11 |
|
||||
| fir simd128 | 0.25 | 24.57 | 37.51 | 63.99 | 90.32 |
|
||||
| fir rust | 0.24 | 43.09 | 55.53 | 80.12 | 105.02 |
|
||||
| fir simd128 | 0.24 | 30.67 | 49.72 | 88.30 | 128.09 |
|
||||
|
||||
<!-- bench_compare_la16 end -->
|
||||
|
||||
@@ -206,13 +206,14 @@ Pipeline:
|
||||
|
||||
- Source image [nasa-4928x3279.png](https://github.com/Cykooz/fast_image_resize/blob/main/data/nasa-4928x3279.png)
|
||||
has converted into grayscale image with two bytes per pixel.
|
||||
- Numbers in the table mean a duration of image resizing in milliseconds.
|
||||
- Numbers in the table mean the duration of the image resizing in milliseconds.
|
||||
|
||||
| | Nearest | Box | Bilinear | Bicubic | Lanczos3 |
|
||||
|----------|:-------:|:-----:|:--------:|:-------:|:--------:|
|
||||
| image | 11.33 | - | 58.92 | 106.75 | 155.04 |
|
||||
| resize | 8.98 | 16.53 | 24.59 | 45.82 | 67.67 |
|
||||
| fir rust | 0.25 | 10.13 | 18.35 | 36.05 | 60.08 |
|
||||
| | Nearest | Box | Bilinear | Bicubic | Lanczos3 |
|
||||
|-------------|:-------:|:-----:|:--------:|:-------:|:--------:|
|
||||
| image | 14.59 | - | 49.07 | 86.95 | 122.78 |
|
||||
| resize | 6.97 | 14.93 | 23.45 | 44.40 | 66.04 |
|
||||
| fir rust | 0.27 | 10.68 | 18.70 | 35.92 | 59.26 |
|
||||
| fir simd128 | 0.25 | 10.68 | 19.01 | 35.94 | 59.39 |
|
||||
|
||||
<!-- bench_compare_l32f end -->
|
||||
|
||||
@@ -232,13 +233,14 @@ Pipeline:
|
||||
- Source image
|
||||
[nasa-4928x3279-rgba.png](https://github.com/Cykooz/fast_image_resize/blob/main/data/nasa-4928x3279-rgba.png)
|
||||
has converted into grayscale image with an alpha channel (two `f32` values per pixel).
|
||||
- Numbers in the table mean a duration of image resizing in milliseconds.
|
||||
- Numbers in the table mean the duration of the image resizing in milliseconds.
|
||||
- The `image` crate does not support multiplying and dividing by alpha channel.
|
||||
- The `resize` crate does not support this pixel format.
|
||||
|
||||
| | Nearest | Box | Bilinear | Bicubic | Lanczos3 |
|
||||
|----------|:-------:|:-----:|:--------:|:-------:|:--------:|
|
||||
| fir rust | 0.42 | 30.89 | 43.06 | 70.18 | 101.63 |
|
||||
| | Nearest | Box | Bilinear | Bicubic | Lanczos3 |
|
||||
|-------------|:-------:|:-----:|:--------:|:-------:|:--------:|
|
||||
| fir rust | 0.44 | 33.72 | 46.43 | 73.05 | 101.52 |
|
||||
| fir simd128 | 0.44 | 33.70 | 46.40 | 73.01 | 101.54 |
|
||||
|
||||
<!-- bench_compare_la32f end -->
|
||||
|
||||
@@ -252,13 +254,14 @@ Pipeline:
|
||||
|
||||
- Source image [nasa-4928x3279.png](https://github.com/Cykooz/fast_image_resize/blob/main/data/nasa-4928x3279.png)
|
||||
has converted into RGB32F image.
|
||||
- Numbers in the table mean a duration of image resizing in milliseconds.
|
||||
- Numbers in the table mean the duration of the image resizing in milliseconds.
|
||||
|
||||
| | Nearest | Box | Bilinear | Bicubic | Lanczos3 |
|
||||
|----------|:-------:|:-----:|:--------:|:-------:|:--------:|
|
||||
| image | 11.78 | - | 68.25 | 126.64 | 184.94 |
|
||||
| resize | 10.76 | 21.80 | 34.28 | 64.89 | 96.11 |
|
||||
| fir rust | 1.02 | 24.73 | 45.06 | 85.19 | 128.12 |
|
||||
| | Nearest | Box | Bilinear | Bicubic | Lanczos3 |
|
||||
|-------------|:-------:|:-----:|:--------:|:-------:|:--------:|
|
||||
| image | 16.32 | - | 68.30 | 121.95 | 181.16 |
|
||||
| resize | 12.14 | 21.20 | 34.63 | 62.46 | 91.27 |
|
||||
| fir rust | 1.14 | 27.06 | 48.08 | 92.09 | 138.51 |
|
||||
| fir simd128 | 1.06 | 27.05 | 48.05 | 92.08 | 138.67 |
|
||||
|
||||
<!-- bench_compare_rgb32f end -->
|
||||
|
||||
@@ -273,13 +276,14 @@ Pipeline:
|
||||
|
||||
- Source image
|
||||
[nasa-4928x3279-rgba.png](https://github.com/Cykooz/fast_image_resize/blob/main/data/nasa-4928x3279-rgba.png)
|
||||
- Numbers in the table mean a duration of image resizing in milliseconds.
|
||||
- Numbers in the table mean the duration of the image resizing in milliseconds.
|
||||
- The `image` crate does not support multiplying and dividing by alpha channel.
|
||||
- The `resize` crate does not support multiplying and dividing by alpha channel
|
||||
for this pixel format.
|
||||
|
||||
| | Nearest | Box | Bilinear | Bicubic | Lanczos3 |
|
||||
|----------|:-------:|:-----:|:--------:|:-------:|:--------:|
|
||||
| fir rust | 1.22 | 50.02 | 73.15 | 118.86 | 168.38 |
|
||||
| | Nearest | Box | Bilinear | Bicubic | Lanczos3 |
|
||||
|-------------|:-------:|:-----:|:--------:|:-------:|:--------:|
|
||||
| fir rust | 1.63 | 58.53 | 81.37 | 126.81 | 176.77 |
|
||||
| fir simd128 | 1.64 | 58.50 | 81.35 | 126.79 | 176.73 |
|
||||
|
||||
<!-- bench_compare_rgba32f end -->
|
||||
<!-- bench_compare_rgba32f end -->
|
||||
+65
-65
@@ -6,8 +6,8 @@ Environment:
|
||||
|
||||
- CPU: AMD Ryzen 9 5950X
|
||||
- RAM: DDR4 4000 MHz
|
||||
- Ubuntu 24.04 (linux 6.17.0)
|
||||
- Rust 1.96.0
|
||||
- Ubuntu 24.04 (linux 7.0.0)
|
||||
- Rust 1.97.1
|
||||
- criterion = "0.7.0"
|
||||
- fast_image_resize = "6.0.1"
|
||||
|
||||
@@ -40,12 +40,12 @@ Pipeline:
|
||||
|
||||
| | Nearest | Box | Bilinear | Bicubic | Lanczos3 |
|
||||
|------------|:-------:|:-----:|:--------:|:-------:|:--------:|
|
||||
| image | 28.92 | - | 78.41 | 127.38 | 173.98 |
|
||||
| resize | 8.49 | 24.35 | 48.44 | 92.29 | 137.61 |
|
||||
| libvips | 2.41 | 61.63 | 5.67 | 9.76 | 16.07 |
|
||||
| fir rust | 0.28 | 10.86 | 15.71 | 26.43 | 37.47 |
|
||||
| fir sse4.1 | 0.28 | 3.94 | 5.80 | 10.40 | 15.67 |
|
||||
| fir avx2 | 0.28 | 2.63 | 3.53 | 7.23 | 13.26 |
|
||||
| image | 30.36 | - | 80.24 | 135.29 | 176.09 |
|
||||
| resize | 8.50 | 24.37 | 48.57 | 92.43 | 137.70 |
|
||||
| libvips | 2.32 | 61.51 | 5.58 | 9.92 | 17.31 |
|
||||
| fir rust | 0.28 | 10.75 | 15.62 | 26.21 | 37.26 |
|
||||
| fir sse4.1 | 0.28 | 3.82 | 5.83 | 10.34 | 15.91 |
|
||||
| fir avx2 | 0.28 | 2.65 | 3.55 | 6.90 | 13.52 |
|
||||
|
||||
<!-- bench_compare_rgb end -->
|
||||
|
||||
@@ -64,11 +64,11 @@ Pipeline:
|
||||
|
||||
| | Nearest | Box | Bilinear | Bicubic | Lanczos3 |
|
||||
|------------|:-------:|:------:|:--------:|:-------:|:--------:|
|
||||
| resize | 13.97 | 44.38 | 88.03 | 150.33 | 216.80 |
|
||||
| libvips | 4.19 | 169.24 | 137.35 | 228.62 | 329.39 |
|
||||
| fir rust | 0.19 | 20.99 | 26.40 | 38.18 | 51.62 |
|
||||
| fir sse4.1 | 0.19 | 11.28 | 13.44 | 19.69 | 26.88 |
|
||||
| fir avx2 | 0.19 | 9.90 | 10.69 | 15.47 | 24.48 |
|
||||
| resize | 14.48 | 45.62 | 90.91 | 152.92 | 218.65 |
|
||||
| libvips | 4.94 | 169.47 | 137.95 | 231.08 | 332.42 |
|
||||
| fir rust | 0.19 | 20.81 | 26.01 | 37.99 | 50.76 |
|
||||
| fir sse4.1 | 0.19 | 10.74 | 13.18 | 19.20 | 26.25 |
|
||||
| fir avx2 | 0.19 | 9.38 | 10.21 | 15.20 | 24.08 |
|
||||
|
||||
<!-- bench_compare_rgba end -->
|
||||
|
||||
@@ -86,12 +86,12 @@ Pipeline:
|
||||
|
||||
| | Nearest | Box | Bilinear | Bicubic | Lanczos3 |
|
||||
|------------|:-------:|:-----:|:--------:|:-------:|:--------:|
|
||||
| image | 26.33 | - | 57.97 | 86.30 | 113.91 |
|
||||
| resize | 6.59 | 11.63 | 21.04 | 45.28 | 68.73 |
|
||||
| libvips | 2.66 | 24.92 | 6.83 | 9.81 | 12.72 |
|
||||
| fir rust | 0.16 | 4.23 | 5.48 | 8.74 | 12.13 |
|
||||
| fir sse4.1 | 0.16 | 1.62 | 2.25 | 3.68 | 5.88 |
|
||||
| fir avx2 | 0.16 | 1.78 | 1.81 | 2.87 | 4.08 |
|
||||
| image | 28.88 | - | 60.77 | 89.05 | 116.76 |
|
||||
| resize | 7.07 | 11.83 | 21.53 | 44.31 | 69.89 |
|
||||
| libvips | 2.56 | 24.66 | 6.62 | 9.57 | 12.54 |
|
||||
| fir rust | 0.15 | 4.29 | 5.55 | 8.72 | 12.11 |
|
||||
| fir sse4.1 | 0.15 | 1.64 | 2.25 | 3.63 | 5.80 |
|
||||
| fir avx2 | 0.15 | 1.82 | 1.84 | 2.84 | 4.26 |
|
||||
|
||||
<!-- bench_compare_l end -->
|
||||
|
||||
@@ -112,10 +112,10 @@ Pipeline:
|
||||
|
||||
| | Nearest | Box | Bilinear | Bicubic | Lanczos3 |
|
||||
|------------|:-------:|:-----:|:--------:|:-------:|:--------:|
|
||||
| libvips | 3.73 | 94.13 | 76.50 | 123.09 | 165.76 |
|
||||
| fir rust | 0.17 | 17.38 | 19.72 | 26.08 | 31.96 |
|
||||
| fir sse4.1 | 0.17 | 6.42 | 7.52 | 10.35 | 14.26 |
|
||||
| fir avx2 | 0.17 | 4.85 | 5.23 | 6.76 | 9.25 |
|
||||
| libvips | 3.59 | 93.88 | 77.70 | 123.69 | 166.90 |
|
||||
| fir rust | 0.17 | 18.02 | 20.36 | 26.99 | 32.65 |
|
||||
| fir sse4.1 | 0.17 | 6.31 | 7.41 | 10.16 | 13.98 |
|
||||
| fir avx2 | 0.17 | 4.65 | 5.16 | 6.98 | 10.21 |
|
||||
|
||||
<!-- bench_compare_la end -->
|
||||
|
||||
@@ -133,12 +133,12 @@ Pipeline:
|
||||
|
||||
| | Nearest | Box | Bilinear | Bicubic | Lanczos3 |
|
||||
|------------|:-------:|:-----:|:--------:|:-------:|:--------:|
|
||||
| image | 29.05 | - | 86.11 | 142.76 | 195.46 |
|
||||
| resize | 7.11 | 21.55 | 41.21 | 80.56 | 120.40 |
|
||||
| libvips | 14.16 | 95.93 | 65.56 | 130.57 | 174.91 |
|
||||
| fir rust | 0.34 | 26.34 | 41.24 | 70.55 | 102.27 |
|
||||
| fir sse4.1 | 0.34 | 15.83 | 23.98 | 40.83 | 58.45 |
|
||||
| fir avx2 | 0.34 | 12.74 | 17.92 | 28.22 | 36.64 |
|
||||
| image | 31.09 | - | 89.60 | 145.58 | 198.27 |
|
||||
| resize | 8.17 | 21.48 | 41.30 | 80.91 | 121.04 |
|
||||
| libvips | 14.00 | 96.20 | 65.80 | 131.67 | 177.22 |
|
||||
| fir rust | 0.36 | 25.70 | 39.39 | 67.16 | 96.41 |
|
||||
| fir sse4.1 | 0.36 | 16.15 | 24.01 | 40.75 | 58.29 |
|
||||
| fir avx2 | 0.36 | 13.22 | 17.60 | 28.08 | 36.48 |
|
||||
|
||||
<!-- bench_compare_rgb16 end -->
|
||||
|
||||
@@ -157,11 +157,11 @@ Pipeline:
|
||||
|
||||
| | Nearest | Box | Bilinear | Bicubic | Lanczos3 |
|
||||
|------------|:-------:|:------:|:--------:|:-------:|:--------:|
|
||||
| resize | 13.98 | 44.66 | 88.98 | 150.55 | 215.91 |
|
||||
| libvips | 21.38 | 182.44 | 151.63 | 245.07 | 344.34 |
|
||||
| fir rust | 0.40 | 56.25 | 75.07 | 112.56 | 155.00 |
|
||||
| fir sse4.1 | 0.40 | 32.20 | 43.46 | 67.05 | 91.03 |
|
||||
| fir avx2 | 0.40 | 21.16 | 26.25 | 37.12 | 48.80 |
|
||||
| resize | 15.49 | 45.33 | 87.35 | 153.64 | 221.48 |
|
||||
| libvips | 22.28 | 183.85 | 149.64 | 243.10 | 345.06 |
|
||||
| fir rust | 0.40 | 55.40 | 72.13 | 105.80 | 143.30 |
|
||||
| fir sse4.1 | 0.40 | 34.66 | 45.67 | 69.39 | 93.68 |
|
||||
| fir avx2 | 0.40 | 25.77 | 30.31 | 41.44 | 53.51 |
|
||||
|
||||
<!-- bench_compare_rgba16 end -->
|
||||
|
||||
@@ -179,12 +179,12 @@ Pipeline:
|
||||
|
||||
| | Nearest | Box | Bilinear | Bicubic | Lanczos3 |
|
||||
|------------|:-------:|:-----:|:--------:|:-------:|:--------:|
|
||||
| image | 27.19 | - | 60.30 | 90.07 | 120.65 |
|
||||
| resize | 5.23 | 11.68 | 21.32 | 45.53 | 69.43 |
|
||||
| libvips | 5.69 | 34.84 | 23.63 | 43.63 | 59.30 |
|
||||
| fir rust | 0.17 | 13.51 | 18.48 | 31.83 | 43.04 |
|
||||
| fir sse4.1 | 0.17 | 5.65 | 7.69 | 13.75 | 19.97 |
|
||||
| fir avx2 | 0.17 | 5.52 | 6.26 | 9.36 | 13.87 |
|
||||
| image | 29.25 | - | 60.88 | 90.27 | 118.33 |
|
||||
| resize | 5.26 | 11.86 | 21.36 | 44.85 | 69.39 |
|
||||
| libvips | 5.47 | 34.60 | 23.34 | 43.35 | 59.19 |
|
||||
| fir rust | 0.17 | 13.11 | 16.81 | 28.94 | 39.37 |
|
||||
| fir sse4.1 | 0.17 | 5.81 | 7.74 | 13.97 | 19.92 |
|
||||
| fir avx2 | 0.17 | 5.67 | 6.36 | 9.33 | 14.07 |
|
||||
|
||||
<!-- bench_compare_l16 end -->
|
||||
|
||||
@@ -205,10 +205,10 @@ Pipeline:
|
||||
|
||||
| | Nearest | Box | Bilinear | Bicubic | Lanczos3 |
|
||||
|------------|:-------:|:------:|:--------:|:-------:|:--------:|
|
||||
| libvips | 11.21 | 105.18 | 86.35 | 133.43 | 176.69 |
|
||||
| fir rust | 0.19 | 29.30 | 36.05 | 56.42 | 76.58 |
|
||||
| fir sse4.1 | 0.19 | 15.16 | 21.12 | 33.81 | 47.86 |
|
||||
| fir avx2 | 0.19 | 11.73 | 14.43 | 21.45 | 28.77 |
|
||||
| libvips | 11.87 | 105.96 | 84.97 | 132.95 | 176.89 |
|
||||
| fir rust | 0.19 | 28.66 | 34.62 | 53.18 | 72.11 |
|
||||
| fir sse4.1 | 0.19 | 16.04 | 22.10 | 34.74 | 48.84 |
|
||||
| fir avx2 | 0.19 | 13.72 | 16.31 | 23.55 | 31.07 |
|
||||
|
||||
<!-- bench_compare_la16 end -->
|
||||
|
||||
@@ -226,12 +226,12 @@ Pipeline:
|
||||
|
||||
| | Nearest | Box | Bilinear | Bicubic | Lanczos3 |
|
||||
|------------|:-------:|:-----:|:--------:|:-------:|:--------:|
|
||||
| image | 23.98 | - | 48.61 | 76.35 | 102.23 |
|
||||
| resize | 5.09 | 9.47 | 14.45 | 31.12 | 47.11 |
|
||||
| libvips | 4.66 | 34.02 | 23.58 | 45.85 | 64.97 |
|
||||
| fir rust | 0.19 | 7.34 | 11.99 | 26.38 | 39.36 |
|
||||
| fir sse4.1 | 0.19 | 4.66 | 7.38 | 13.04 | 19.01 |
|
||||
| fir avx2 | 0.19 | 4.34 | 5.54 | 8.73 | 12.47 |
|
||||
| image | 26.69 | - | 54.45 | 85.39 | 113.72 |
|
||||
| resize | 5.42 | 9.50 | 14.22 | 31.29 | 46.76 |
|
||||
| libvips | 4.50 | 34.73 | 23.56 | 46.25 | 65.56 |
|
||||
| fir rust | 0.20 | 7.44 | 12.09 | 26.54 | 39.65 |
|
||||
| fir sse4.1 | 0.19 | 4.80 | 7.44 | 13.22 | 19.10 |
|
||||
| fir avx2 | 0.19 | 4.41 | 5.69 | 8.93 | 12.51 |
|
||||
|
||||
<!-- bench_compare_l32f end -->
|
||||
|
||||
@@ -252,10 +252,10 @@ Pipeline:
|
||||
|
||||
| | Nearest | Box | Bilinear | Bicubic | Lanczos3 |
|
||||
|------------|:-------:|:-----:|:--------:|:-------:|:--------:|
|
||||
| libvips | 10.63 | 92.48 | 75.19 | 121.33 | 162.76 |
|
||||
| fir rust | 0.38 | 21.69 | 29.09 | 47.93 | 70.81 |
|
||||
| fir sse4.1 | 0.38 | 17.34 | 22.56 | 33.18 | 44.69 |
|
||||
| fir avx2 | 0.38 | 16.11 | 18.34 | 25.32 | 31.96 |
|
||||
| libvips | 12.02 | 93.60 | 75.39 | 121.86 | 163.75 |
|
||||
| fir rust | 0.42 | 30.11 | 37.10 | 55.80 | 78.18 |
|
||||
| fir sse4.1 | 0.42 | 24.32 | 28.95 | 39.50 | 50.96 |
|
||||
| fir avx2 | 0.44 | 24.58 | 25.93 | 32.60 | 39.07 |
|
||||
|
||||
<!-- bench_compare_la32f end -->
|
||||
|
||||
@@ -273,12 +273,12 @@ Pipeline:
|
||||
|
||||
| | Nearest | Box | Bilinear | Bicubic | Lanczos3 |
|
||||
|------------|:-------:|:-----:|:--------:|:-------:|:--------:|
|
||||
| image | 25.78 | - | 62.70 | 106.83 | 141.64 |
|
||||
| resize | 9.06 | 13.80 | 23.82 | 48.45 | 72.45 |
|
||||
| libvips | 10.77 | 91.73 | 65.25 | 136.13 | 189.49 |
|
||||
| fir rust | 0.89 | 14.21 | 25.12 | 48.44 | 73.92 |
|
||||
| fir sse4.1 | 0.89 | 12.21 | 20.15 | 35.74 | 52.87 |
|
||||
| fir avx2 | 0.89 | 9.77 | 14.02 | 23.58 | 32.99 |
|
||||
| image | 28.91 | - | 62.84 | 102.42 | 145.36 |
|
||||
| resize | 11.57 | 15.51 | 24.37 | 48.59 | 72.48 |
|
||||
| libvips | 10.87 | 92.99 | 65.78 | 135.89 | 191.89 |
|
||||
| fir rust | 1.02 | 15.14 | 25.18 | 48.65 | 73.80 |
|
||||
| fir sse4.1 | 1.03 | 12.93 | 20.47 | 35.91 | 53.21 |
|
||||
| fir avx2 | 1.03 | 10.67 | 18.05 | 33.61 | 51.05 |
|
||||
|
||||
<!-- bench_compare_rgb32f end -->
|
||||
|
||||
@@ -300,9 +300,9 @@ Pipeline:
|
||||
|
||||
| | Nearest | Box | Bilinear | Bicubic | Lanczos3 |
|
||||
|------------|:-------:|:------:|:--------:|:-------:|:--------:|
|
||||
| libvips | 19.95 | 154.11 | 126.57 | 210.63 | 310.66 |
|
||||
| fir rust | 1.05 | 34.90 | 44.55 | 69.28 | 93.01 |
|
||||
| fir sse4.1 | 1.05 | 31.93 | 41.31 | 62.85 | 84.26 |
|
||||
| fir avx2 | 1.05 | 29.11 | 31.47 | 42.95 | 55.41 |
|
||||
| libvips | 22.43 | 157.97 | 127.17 | 205.06 | 302.74 |
|
||||
| fir rust | 1.28 | 47.68 | 54.92 | 79.85 | 103.16 |
|
||||
| fir sse4.1 | 1.28 | 44.79 | 51.30 | 72.49 | 94.41 |
|
||||
| fir avx2 | 1.28 | 43.12 | 44.46 | 54.10 | 66.42 |
|
||||
|
||||
<!-- bench_compare_rgba32f end -->
|
||||
<!-- bench_compare_rgba32f end -->
|
||||
Reference in New Issue
Block a user