Prepare to release.

This commit is contained in:
Kirill Kuzminykh
2022-12-11 20:23:10 +04:00
parent f5c7c7937c
commit 9b0d3d4c81
4 changed files with 77 additions and 77 deletions
+1 -1
View File
@@ -2,7 +2,7 @@
### Crate
- Improved speed of `MulDiv` implementation for `U8x2`, `U8x4`, `U16x2` and `U16x4` images.
- Slightly improved speed of `MulDiv` implementation for `U8x2`, `U8x4`, `U16x2` and `U16x4` images.
- Added optimisation for processing `U16x2` images by `MulDiv` with
helps of `NEON SIMD` instructions.
- Excluded possibility of unnecessary operations during resize
+14 -14
View File
@@ -62,11 +62,11 @@ Pipeline:
| | Nearest | Bilinear | CatmullRom | Lanczos3 |
|------------|:-------:|:--------:|:----------:|:--------:|
| image | 21.19 | 83.63 | 143.36 | 204.99 |
| resize | - | 45.90 | 90.65 | 134.75 |
| fir rust | 0.28 | 38.73 | 75.43 | 111.71 |
| fir sse4.1 | 0.28 | 9.35 | 13.63 | 19.20 |
| fir avx2 | 0.28 | 7.36 | 9.52 | 13.66 |
| image | 20.66 | 82.74 | 141.56 | 199.96 |
| resize | - | 48.75 | 97.42 | 145.70 |
| fir rust | 0.28 | 39.57 | 67.00 | 98.50 |
| fir sse4.1 | 0.28 | 9.63 | 14.13 | 19.84 |
| fir avx2 | 0.28 | 7.73 | 9.67 | 14.66 |
### Resize RGBA8 image (U8x4) 4928x3279 => 852x567
@@ -81,10 +81,10 @@ Pipeline:
| | Nearest | Bilinear | CatmullRom | Lanczos3 |
|------------|:-------:|:--------:|:----------:|:--------:|
| resize | - | 65.62 | 129.84 | 193.56 |
| fir rust | 0.19 | 37.38 | 53.83 | 76.69 |
| fir sse4.1 | 0.19 | 13.02 | 17.18 | 22.33 |
| fir avx2 | 0.19 | 9.56 | 12.04 | 16.27 |
| resize | - | 65.74 | 130.18 | 194.13 |
| fir rust | 0.19 | 35.61 | 52.50 | 75.76 |
| fir sse4.1 | 0.19 | 13.19 | 17.25 | 22.62 |
| fir avx2 | 0.19 | 9.57 | 11.97 | 16.37 |
### Resize L8 image (U8) 4928x3279 => 852x567
@@ -98,11 +98,11 @@ Pipeline:
| | Nearest | Bilinear | CatmullRom | Lanczos3 |
|------------|:-------:|:--------:|:----------:|:--------:|
| image | 17.56 | 49.20 | 77.55 | 106.07 |
| resize | - | 17.71 | 36.82 | 62.15 |
| fir rust | 0.15 | 13.36 | 14.81 | 22.22 |
| fir sse4.1 | 0.15 | 4.51 | 5.08 | 7.61 |
| fir avx2 | 0.15 | 6.00 | 4.77 | 7.46 |
| image | 16.97 | 48.47 | 77.55 | 107.48 |
| resize | - | 17.10 | 35.46 | 60.94 |
| fir rust | 0.15 | 13.44 | 14.73 | 22.58 |
| fir sse4.1 | 0.15 | 4.99 | 5.28 | 8.05 |
| fir avx2 | 0.15 | 7.09 | 5.18 | 8.60 |
## Examples
+27 -27
View File
@@ -5,7 +5,7 @@ Environment:
- CPU: Neoverse-N1 2GHz (Oracle Cloud Compute, VM.Standard.A1.Flex)
- Ubuntu 22.04 (linux 5.15.0)
- Rust 1.65
- fast_image_resize = "2.3.0"
- fast_image_resize = "2.4.0"
- glassbench = "0.3.3"
Other Rust libraries used to compare of resizing speed:
@@ -31,10 +31,10 @@ Pipeline:
| | Nearest | Bilinear | CatmullRom | Lanczos3 |
|----------|:-------:|:--------:|:----------:|:--------:|
| image | 85.93 | 171.20 | 320.80 | 449.38 |
| resize | - | 89.59 | 178.16 | 264.02 |
| fir rust | 0.89 | 71.61 | 87.07 | 113.22 |
| fir neon | 0.89 | 42.71 | 57.18 | 81.30 |
| image | 84.33 | 170.75 | 319.95 | 448.10 |
| resize | - | 89.86 | 179.23 | 265.31 |
| fir rust | 0.90 | 71.68 | 87.07 | 112.47 |
| fir neon | 0.90 | 42.73 | 57.20 | 81.35 |
### Resize RGBA8 image (U8x4) 4928x3279 => 852x567
@@ -49,9 +49,9 @@ Pipeline:
| | Nearest | Bilinear | CatmullRom | Lanczos3 |
|----------|:-------:|:--------:|:----------:|:--------:|
| resize | - | 99.10 | 181.34 | 276.12 |
| fir rust | 0.97 | 92.78 | 105.04 | 153.77 |
| fir neon | 0.97 | 44.90 | 62.46 | 84.09 |
| resize | - | 99.18 | 181.80 | 276.46 |
| fir rust | 0.97 | 92.81 | 104.67 | 153.96 |
| fir neon | 0.97 | 44.09 | 61.19 | 82.98 |
### Resize L8 image (U8) 4928x3279 => 852x567
@@ -65,10 +65,10 @@ Pipeline:
| | Nearest | Bilinear | CatmullRom | Lanczos3 |
|----------|:-------:|:--------:|:----------:|:--------:|
| image | 78.06 | 106.41 | 176.68 | 245.22 |
| resize | - | 36.88 | 83.23 | 127.15 |
| fir rust | 0.50 | 29.88 | 37.78 | 45.48 |
| fir neon | 0.50 | 15.00 | 20.18 | 28.12 |
| image | 74.86 | 105.85 | 175.70 | 243.32 |
| resize | - | 37.14 | 83.02 | 127.44 |
| fir rust | 0.51 | 29.42 | 37.32 | 45.47 |
| fir neon | 0.51 | 15.00 | 19.95 | 28.16 |
### Resize LA8 image (U8x2) 4928x3279 => 852x567
@@ -85,8 +85,8 @@ Pipeline:
| | Nearest | Bilinear | CatmullRom | Lanczos3 |
|----------|:-------:|:--------:|:----------:|:--------:|
| fir rust | 0.68 | 59.66 | 74.65 | 73.06 |
| fir neon | 0.68 | 34.60 | 39.08 | 54.73 |
| fir rust | 0.64 | 59.82 | 74.89 | 73.10 |
| fir neon | 0.64 | 34.80 | 39.24 | 54.70 |
### Resize RGB16 image (U16x3) 4928x3279 => 852x567
@@ -100,10 +100,10 @@ Pipeline:
| | Nearest | Bilinear | CatmullRom | Lanczos3 |
|----------|:-------:|:--------:|:----------:|:--------:|
| image | 89.19 | 166.71 | 327.39 | 467.86 |
| resize | - | 90.71 | 181.91 | 268.88 |
| fir rust | 1.36 | 146.82 | 275.19 | 392.50 |
| fir neon | 1.36 | 69.87 | 91.79 | 128.15 |
| image | 87.37 | 168.47 | 327.72 | 473.01 |
| resize | - | 91.11 | 182.73 | 271.48 |
| fir rust | 1.39 | 146.88 | 274.83 | 392.52 |
| fir neon | 1.39 | 70.00 | 92.13 | 128.36 |
### Resize RGBA16 image (U16x4) 4928x3279 => 852x567
@@ -118,9 +118,9 @@ Pipeline:
| | Nearest | Bilinear | CatmullRom | Lanczos3 |
|----------|:-------:|:--------:|:----------:|:--------:|
| resize | - | 102.51 | 185.43 | 281.28 |
| fir rust | 1.50 | 214.69 | 378.24 | 533.35 |
| fir neon | 1.50 | 89.46 | 128.85 | 170.34 |
| resize | - | 102.42 | 185.36 | 284.94 |
| fir rust | 1.51 | 202.31 | 365.93 | 521.22 |
| fir neon | 1.51 | 76.89 | 117.58 | 159.40 |
### Resize L16 image (U16) 4928x3279 => 852x567
@@ -134,10 +134,10 @@ Pipeline:
| | Nearest | Bilinear | CatmullRom | Lanczos3 |
|----------|:-------:|:--------:|:----------:|:--------:|
| image | 77.31 | 110.40 | 185.91 | 257.17 |
| resize | - | 40.43 | 63.70 | 87.11 |
| fir rust | 0.62 | 57.29 | 95.09 | 134.81 |
| fir neon | 0.62 | 17.37 | 26.63 | 37.92 |
| image | 76.09 | 110.82 | 186.44 | 257.87 |
| resize | - | 39.65 | 63.88 | 87.06 |
| fir rust | 0.63 | 57.32 | 94.92 | 134.83 |
| fir neon | 0.63 | 17.98 | 26.84 | 37.71 |
### Resize LA16 (luma with alpha channel) image (U16x2) 4928x3279 => 852x567
@@ -154,5 +154,5 @@ Pipeline:
| | Nearest | Bilinear | CatmullRom | Lanczos3 |
|----------|:-------:|:--------:|:----------:|:--------:|
| fir rust | 0.95 | 106.75 | 192.09 | 270.97 |
| fir neon | 0.95 | 35.61 | 53.87 | 73.33 |
| fir rust | 0.95 | 105.92 | 192.14 | 270.89 |
| fir neon | 0.95 | 35.57 | 53.51 | 73.13 |
+35 -35
View File
@@ -6,7 +6,7 @@ Environment:
- RAM: DDR4 3800 MHz
- Ubuntu 22.04 (linux 5.15.0)
- Rust 1.65
- fast_image_resize = "2.3.0"
- fast_image_resize = "2.4.0"
- glassbench = "0.3.3"
Other Rust libraries used to compare of resizing speed:
@@ -32,11 +32,11 @@ Pipeline:
| | Nearest | Bilinear | CatmullRom | Lanczos3 |
|------------|:-------:|:--------:|:----------:|:--------:|
| image | 21.19 | 83.67 | 142.85 | 200.63 |
| resize | - | 48.86 | 97.63 | 145.82 |
| fir rust | 0.28 | 38.49 | 75.80 | 106.99 |
| fir sse4.1 | 0.28 | 9.45 | 13.59 | 19.39 |
| fir avx2 | 0.28 | 7.53 | 9.61 | 13.78 |
| image | 20.66 | 82.74 | 141.56 | 199.96 |
| resize | - | 48.75 | 97.42 | 145.70 |
| fir rust | 0.28 | 39.57 | 67.00 | 98.50 |
| fir sse4.1 | 0.28 | 9.63 | 14.13 | 19.84 |
| fir avx2 | 0.28 | 7.73 | 9.67 | 14.66 |
### Resize RGBA8 image (U8x4) 4928x3279 => 852x567
@@ -51,10 +51,10 @@ Pipeline:
| | Nearest | Bilinear | CatmullRom | Lanczos3 |
|------------|:-------:|:--------:|:----------:|:--------:|
| resize | - | 65.57 | 129.76 | 193.57 |
| fir rust | 0.18 | 37.33 | 53.84 | 76.67 |
| fir sse4.1 | 0.18 | 13.01 | 17.21 | 22.41 |
| fir avx2 | 0.18 | 9.58 | 12.03 | 16.28 |
| resize | - | 65.74 | 130.18 | 194.13 |
| fir rust | 0.19 | 35.61 | 52.50 | 75.76 |
| fir sse4.1 | 0.19 | 13.19 | 17.25 | 22.62 |
| fir avx2 | 0.19 | 9.57 | 11.97 | 16.37 |
### Resize L8 image (U8) 4928x3279 => 852x567
@@ -68,11 +68,11 @@ Pipeline:
| | Nearest | Bilinear | CatmullRom | Lanczos3 |
|------------|:-------:|:--------:|:----------:|:--------:|
| image | 17.79 | 49.78 | 78.10 | 106.32 |
| resize | - | 17.11 | 35.43 | 60.81 |
| fir rust | 0.15 | 13.48 | 15.50 | 23.58 |
| fir sse4.1 | 0.15 | 4.53 | 5.08 | 7.61 |
| fir avx2 | 0.15 | 6.00 | 4.75 | 7.46 |
| image | 16.97 | 48.47 | 77.55 | 107.48 |
| resize | - | 17.10 | 35.46 | 60.94 |
| fir rust | 0.15 | 13.44 | 14.73 | 22.58 |
| fir sse4.1 | 0.15 | 4.99 | 5.28 | 8.05 |
| fir avx2 | 0.15 | 7.09 | 5.18 | 8.60 |
### Resize LA8 image (U8x2) 4928x3279 => 852x567
@@ -89,9 +89,9 @@ Pipeline:
| | Nearest | Bilinear | CatmullRom | Lanczos3 |
|------------|:-------:|:--------:|:----------:|:--------:|
| fir rust | 0.17 | 25.72 | 30.47 | 42.66 |
| fir sse4.1 | 0.17 | 12.46 | 14.29 | 17.68 |
| fir avx2 | 0.17 | 8.40 | 9.54 | 12.11 |
| fir rust | 0.17 | 25.43 | 28.72 | 39.33 |
| fir sse4.1 | 0.17 | 12.66 | 14.10 | 17.66 |
| fir avx2 | 0.17 | 8.76 | 9.70 | 12.28 |
### Resize RGB16 image (U16x3) 4928x3279 => 852x567
@@ -105,11 +105,11 @@ Pipeline:
| | Nearest | Bilinear | CatmullRom | Lanczos3 |
|------------|:-------:|:--------:|:----------:|:--------:|
| image | 21.41 | 77.21 | 129.91 | 180.91 |
| resize | - | 45.29 | 89.53 | 133.11 |
| fir rust | 0.33 | 44.13 | 79.81 | 114.73 |
| fir sse4.1 | 0.33 | 23.98 | 39.08 | 55.20 |
| fir avx2 | 0.33 | 19.41 | 29.18 | 36.06 |
| image | 20.82 | 75.42 | 127.53 | 179.75 |
| resize | - | 45.50 | 89.58 | 132.75 |
| fir rust | 0.33 | 43.32 | 78.99 | 113.80 |
| fir sse4.1 | 0.33 | 24.42 | 39.46 | 55.70 |
| fir avx2 | 0.33 | 20.17 | 30.73 | 36.83 |
### Resize RGBA16 image (U16x4) 4928x3279 => 852x567
@@ -124,10 +124,10 @@ Pipeline:
| | Nearest | Bilinear | CatmullRom | Lanczos3 |
|------------|:-------:|:--------:|:----------:|:--------:|
| resize | - | 63.77 | 125.95 | 187.88 |
| fir rust | 0.37 | 82.06 | 120.76 | 160.84 |
| fir sse4.1 | 0.37 | 42.40 | 63.79 | 85.78 |
| fir avx2 | 0.37 | 23.90 | 35.07 | 46.52 |
| resize | - | 63.82 | 126.13 | 187.90 |
| fir rust | 0.30 | 79.65 | 117.15 | 157.65 |
| fir sse4.1 | 0.30 | 43.40 | 64.83 | 86.98 |
| fir avx2 | 0.30 | 25.63 | 36.85 | 48.28 |
### Resize L16 image (U16) 4928x3279 => 852x567
@@ -141,11 +141,11 @@ Pipeline:
| | Nearest | Bilinear | CatmullRom | Lanczos3 |
|------------|:-------:|:--------:|:----------:|:--------:|
| image | 17.75 | 50.70 | 79.91 | 110.49 |
| resize | - | 15.29 | 31.49 | 56.96 |
| fir rust | 0.17 | 19.19 | 27.03 | 38.05 |
| fir sse4.1 | 0.17 | 7.77 | 13.31 | 19.07 |
| fir avx2 | 0.17 | 6.40 | 8.64 | 13.76 |
| image | 17.41 | 49.38 | 78.97 | 109.71 |
| resize | - | 15.30 | 31.51 | 56.97 |
| fir rust | 0.16 | 19.20 | 27.82 | 38.54 |
| fir sse4.1 | 0.16 | 8.07 | 13.39 | 19.30 |
| fir avx2 | 0.16 | 6.61 | 8.60 | 13.67 |
### Resize LA16 (luma with alpha channel) image (U16x2) 4928x3279 => 852x567
@@ -162,6 +162,6 @@ Pipeline:
| | Nearest | Bilinear | CatmullRom | Lanczos3 |
|------------|:-------:|:--------:|:----------:|:--------:|
| fir rust | 0.18 | 33.83 | 53.37 | 72.47 |
| fir sse4.1 | 0.18 | 21.96 | 34.14 | 46.69 |
| fir avx2 | 0.18 | 15.22 | 21.90 | 29.04 |
| fir rust | 0.19 | 34.47 | 52.74 | 71.32 |
| fir sse4.1 | 0.19 | 22.10 | 34.18 | 46.62 |
| fir avx2 | 0.19 | 15.17 | 21.85 | 29.09 |