Updated results of benchmark.

This commit is contained in:
Kirill Kuzminykh
2023-03-01 23:23:37 +03:00
parent eaf819c643
commit 5ddcf378ba
8 changed files with 214 additions and 171 deletions
+4
View File
@@ -1,7 +1,11 @@
## [Unreleased] - ReleaseDate
### Crate
- Slightly improved speed of `Convolution` implementation for `U8x2` images
and `Wasm32 SIMD128` instructions.
- Method `Image::buffer_mut()` was made public
([#14](https://github.com/Cykooz/fast_image_resize/pull/14))
## [2.5.0] - 2023-01-29
Generated
+100 -69
View File
@@ -36,9 +36,9 @@ checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299"
[[package]]
name = "anyhow"
version = "1.0.68"
version = "1.0.69"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2cb2f989d18dd141ab8ae82f64d1a8cdd37e0840f73a406896cf5e99502fab61"
checksum = "224afbd727c3d6e4b90103ece64b8d1b67fbb1973b1046c2281eed3f3803f800"
[[package]]
name = "atty"
@@ -59,9 +59,9 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
[[package]]
name = "bit_field"
version = "0.10.1"
version = "0.10.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dcb6dd1c2376d2e096796e234a70e17e94cc2d5d54ff8ce42b28cef1d0d359a4"
checksum = "dc827186963e592360843fb5ba4b973e145841266c1357f7180c43526f2e5b61"
[[package]]
name = "bitflags"
@@ -77,9 +77,9 @@ checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535"
[[package]]
name = "bytemuck"
version = "1.13.0"
version = "1.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c041d3eab048880cb0b86b256447da3f18859a163c3b8d8893f4e6368abe6393"
checksum = "17febce684fd15d89027105661fec94afb475cb995fbc59d2865198446ba2eea"
[[package]]
name = "byteorder"
@@ -146,13 +146,13 @@ dependencies = [
[[package]]
name = "clap"
version = "4.1.4"
version = "4.1.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f13b9c79b5d1dd500d20ef541215a6423c75829ef43117e1b4d17fd8af0b5d76"
checksum = "c3d7ae14b20b94cb02149ed21a86c423859cbe18dc7ed69845cace50e52b40a5"
dependencies = [
"bitflags",
"clap_derive",
"clap_lex 0.3.1",
"clap_lex 0.3.2",
"is-terminal",
"once_cell",
"strsim",
@@ -165,15 +165,15 @@ version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "23e2b6c3dcdb73299f48ae05b294da14e2f560b3ed2c09e742269eb1b22af231"
dependencies = [
"clap 4.1.4",
"clap 4.1.8",
"log",
]
[[package]]
name = "clap_derive"
version = "4.1.0"
version = "4.1.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "684a277d672e91966334af371f1a7b5833f9aa00b07c84e92fbce95e00208ce8"
checksum = "44bec8e5c9d09e439c4335b1af0abaab56dcf3b94999a936e1bb47b9134288f0"
dependencies = [
"heck",
"proc-macro-error",
@@ -193,9 +193,9 @@ dependencies = [
[[package]]
name = "clap_lex"
version = "0.3.1"
version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "783fe232adfca04f90f56201b26d79682d4cd2625e0bc7290b95123afe558ade"
checksum = "350b9cf31731f9957399229e9b2adc51eeabdfbe9d71d9a0552275fd12710d09"
dependencies = [
"os_str_bytes",
]
@@ -251,9 +251,9 @@ dependencies = [
[[package]]
name = "crossbeam-channel"
version = "0.5.6"
version = "0.5.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521"
checksum = "cf2b3e8478797446514c91ef04bafcb59faba183e621ad488df88983cc14128c"
dependencies = [
"cfg-if",
"crossbeam-utils",
@@ -261,9 +261,9 @@ dependencies = [
[[package]]
name = "crossbeam-deque"
version = "0.8.2"
version = "0.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc"
checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef"
dependencies = [
"cfg-if",
"crossbeam-epoch",
@@ -272,9 +272,9 @@ dependencies = [
[[package]]
name = "crossbeam-epoch"
version = "0.9.13"
version = "0.9.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "01a9af1f4c2ef74bb8aa1f7e19706bc72d03598c8a570bb5de72243c7a9d9d5a"
checksum = "46bd5f3f85273295a9d14aedfb86f6aadbff6d8f5295c4a9edb08e819dcf5695"
dependencies = [
"autocfg",
"cfg-if",
@@ -285,9 +285,9 @@ dependencies = [
[[package]]
name = "crossbeam-utils"
version = "0.8.14"
version = "0.8.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4fb766fa798726286dbbb842f174001dab8abc7b627a1dd86e0b7222a95d929f"
checksum = "3c063cd8cc95f5c377ed0d4b49a4b21f632396ff690e8470c29b3359b346984b"
dependencies = [
"cfg-if",
]
@@ -306,12 +306,12 @@ checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91"
[[package]]
name = "env_logger"
version = "0.9.3"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a12e6657c4c97ebab115a42dcee77225f7f482cdd841cf7088c657a42e9e00e7"
checksum = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0"
dependencies = [
"atty",
"humantime",
"is-terminal",
"log",
"regex",
"termcolor",
@@ -340,9 +340,9 @@ dependencies = [
[[package]]
name = "exr"
version = "1.5.2"
version = "1.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8eb5f255b5980bb0c8cf676b675d1a99be40f316881444f44e0462eaf5df5ded"
checksum = "e8af5ef47e2ed89d23d0ecbc1b681b30390069de70260937877514377fc24feb"
dependencies = [
"bit_field",
"flume",
@@ -351,6 +351,7 @@ dependencies = [
"miniz_oxide",
"smallvec",
"threadpool",
"zune-inflate",
]
[[package]]
@@ -407,15 +408,15 @@ dependencies = [
[[package]]
name = "futures-core"
version = "0.3.25"
version = "0.3.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "04909a7a7e4633ae6c4a9ab280aeb86da1236243a77b694a49eacd659a4bd3ac"
checksum = "ec90ff4d0fe1f57d600049061dc6bb68ed03c7d2fbd697274c41805dcb3f8608"
[[package]]
name = "futures-sink"
version = "0.3.25"
version = "0.3.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "39c15cf1a4aa79df40f1bb462fb39676d0ad9e366c2a33b590d7c66f4f81fcf9"
checksum = "f310820bb3e8cfd46c80db4d7fb8353e15dfff853a127158425f31e0be6c8364"
[[package]]
name = "getrandom"
@@ -466,9 +467,9 @@ dependencies = [
[[package]]
name = "heck"
version = "0.4.0"
version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9"
checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
[[package]]
name = "hermit-abi"
@@ -488,6 +489,12 @@ dependencies = [
"libc",
]
[[package]]
name = "hermit-abi"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286"
[[package]]
name = "humantime"
version = "2.1.0"
@@ -525,9 +532,9 @@ dependencies = [
[[package]]
name = "io-lifetimes"
version = "1.0.4"
version = "1.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e7d6c6f8c91b4b9ed43484ad1a938e393caf35960fce7f82a040497207bd8e9e"
checksum = "1abeb7a0dd0f8181267ff8adc397075586500b81b28a73e8a0208b00fc170fb3"
dependencies = [
"libc",
"windows-sys",
@@ -535,11 +542,11 @@ dependencies = [
[[package]]
name = "is-terminal"
version = "0.4.2"
version = "0.4.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "28dfb6c8100ccc63462345b67d1bbc3679177c75ee4bf59bf29c8b1d110b8189"
checksum = "21b6b32576413a8e69b90e952e4a026476040d81017b80445deda5f2d3921857"
dependencies = [
"hermit-abi 0.2.6",
"hermit-abi 0.3.1",
"io-lifetimes",
"rustix",
"windows-sys",
@@ -571,9 +578,9 @@ dependencies = [
[[package]]
name = "js-sys"
version = "0.3.60"
version = "0.3.61"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47"
checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730"
dependencies = [
"wasm-bindgen",
]
@@ -629,9 +636,9 @@ checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
[[package]]
name = "memoffset"
version = "0.7.1"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4"
checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1"
dependencies = [
"autocfg",
]
@@ -708,9 +715,9 @@ dependencies = [
[[package]]
name = "once_cell"
version = "1.17.0"
version = "1.17.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6f61fba1741ea2b3d6a1e3178721804bb716a68a6aeba1149b5d52e3d464ea66"
checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3"
[[package]]
name = "oorandom"
@@ -782,9 +789,9 @@ dependencies = [
[[package]]
name = "proc-macro2"
version = "1.0.50"
version = "1.0.51"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6ef7d57beacfaf2d8aee5937dab7b7f28de3cb8b1828479bb5de2a7106f2bae2"
checksum = "5d727cae5b39d21da60fa540906919ad737832fe0b1c165da3a34d6548c849d6"
dependencies = [
"unicode-ident",
]
@@ -852,7 +859,7 @@ name = "resizer"
version = "0.1.0"
dependencies = [
"anyhow",
"clap 4.1.4",
"clap 4.1.8",
"clap-verbosity-flag",
"env_logger",
"fast_image_resize",
@@ -863,18 +870,18 @@ dependencies = [
[[package]]
name = "rgb"
version = "0.8.34"
version = "0.8.36"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3603b7d71ca82644f79b5a06d1220e9a58ede60bd32255f698cb1af8838b8db3"
checksum = "20ec2d3e3fc7a92ced357df9cebd5a10b6fb2aa1ee797bf7e9ce2f17dffc8f59"
dependencies = [
"bytemuck",
]
[[package]]
name = "rustix"
version = "0.36.7"
version = "0.36.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d4fdebc4b395b7fbb9ab11e462e20ed9051e7b16e42d24042c776eca0ac81b03"
checksum = "f43abb88211988493c1abb44a70efa56ff0ce98f233b7b276146f1f3f7ba9644"
dependencies = [
"bitflags",
"errno",
@@ -933,15 +940,21 @@ dependencies = [
[[package]]
name = "serde_json"
version = "1.0.91"
version = "1.0.93"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "877c235533714907a8c2464236f5c4b2a17262ef1bd71f38f35ea592c8da6883"
checksum = "cad406b69c91885b5107daf2c29572f6c8cdb3c66826821e286c533490c0bc76"
dependencies = [
"itoa",
"ryu",
"serde",
]
[[package]]
name = "simd-adler32"
version = "0.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "14a5df39617d7c8558154693a1bb8157a4aab8179209540cc0b10e5dc24e0b18"
[[package]]
name = "smallvec"
version = "1.10.0"
@@ -950,9 +963,9 @@ checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
[[package]]
name = "spin"
version = "0.9.4"
version = "0.9.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7f6002a767bff9e83f8eeecf883ecb8011875a21ae8da43bffb817a57e78cc09"
checksum = "7dccf47db1b41fa1573ed27ccf5e08e3ca771cb994f776668c5ebda893b248fc"
dependencies = [
"lock_api",
]
@@ -971,9 +984,9 @@ checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
[[package]]
name = "syn"
version = "1.0.107"
version = "1.0.109"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5"
checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
dependencies = [
"proc-macro2",
"quote",
@@ -1084,9 +1097,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
[[package]]
name = "wasm-bindgen"
version = "0.2.83"
version = "0.2.84"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268"
checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b"
dependencies = [
"cfg-if",
"wasm-bindgen-macro",
@@ -1094,9 +1107,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-backend"
version = "0.2.83"
version = "0.2.84"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142"
checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9"
dependencies = [
"bumpalo",
"log",
@@ -1109,9 +1122,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro"
version = "0.2.83"
version = "0.2.84"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810"
checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5"
dependencies = [
"quote",
"wasm-bindgen-macro-support",
@@ -1119,9 +1132,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro-support"
version = "0.2.83"
version = "0.2.84"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c"
checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6"
dependencies = [
"proc-macro2",
"quote",
@@ -1132,9 +1145,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-shared"
version = "0.2.83"
version = "0.2.84"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f"
checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d"
[[package]]
name = "weezl"
@@ -1175,9 +1188,18 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
[[package]]
name = "windows-sys"
version = "0.42.0"
version = "0.45.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
dependencies = [
"windows-targets",
]
[[package]]
name = "windows-targets"
version = "0.42.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8e2522491fbfcd58cc84d47aeb2958948c4b8982e9a2d8a2a35bbaed431390e7"
dependencies = [
"windows_aarch64_gnullvm",
"windows_aarch64_msvc",
@@ -1229,3 +1251,12 @@ name = "windows_x86_64_msvc"
version = "0.42.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd"
[[package]]
name = "zune-inflate"
version = "0.2.50"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "589245df6230839c305984dcc0a8385cc72af1fd223f360ffd5d65efa4216d40"
dependencies = [
"simd-adler32",
]
+8
View File
@@ -114,6 +114,14 @@ strip = true
codegen-units = 1
[profile.release.package.image]
codegen-units = 1
[profile.release.package.resize]
codegen-units = 1
[profile.test]
opt-level = 3
+14 -14
View File
@@ -66,11 +66,11 @@ Pipeline:
<!-- bench_compare_rgb start -->
| | Nearest | Bilinear | CatmullRom | Lanczos3 |
|------------|:-------:|:--------:|:----------:|:--------:|
| image | 18.53 | 80.66 | 137.96 | 196.04 |
| resize | - | 46.50 | 91.78 | 136.27 |
| fir rust | 0.28 | 38.94 | 78.10 | 111.35 |
| fir sse4.1 | - | 9.88 | 14.22 | 20.09 |
| fir avx2 | - | 7.79 | 9.90 | 14.47 |
| image | 19.37 | 81.71 | 149.63 | 205.67 |
| resize | - | 48.65 | 97.50 | 145.90 |
| fir rust | 0.28 | 38.21 | 65.73 | 96.99 |
| fir sse4.1 | - | 9.78 | 14.26 | 20.00 |
| fir avx2 | - | 7.85 | 9.96 | 14.75 |
<!-- bench_compare_rgb end -->
### Resize RGBA8 image (U8x4) 4928x3279 => 852x567
@@ -87,10 +87,10 @@ Pipeline:
<!-- bench_compare_rgba start -->
| | Nearest | Bilinear | CatmullRom | Lanczos3 |
|------------|:-------:|:--------:|:----------:|:--------:|
| resize | - | 74.49 | 137.62 | 202.75 |
| fir rust | 0.19 | 37.75 | 54.07 | 76.86 |
| fir sse4.1 | - | 13.13 | 17.33 | 22.57 |
| fir avx2 | - | 9.55 | 12.07 | 16.47 |
| resize | - | 74.59 | 138.44 | 202.18 |
| fir rust | 0.19 | 36.23 | 52.20 | 75.37 |
| fir sse4.1 | - | 13.31 | 17.32 | 22.66 |
| fir avx2 | - | 9.77 | 12.20 | 16.56 |
<!-- bench_compare_rgba end -->
### Resize L8 image (U8) 4928x3279 => 852x567
@@ -106,11 +106,11 @@ Pipeline:
<!-- bench_compare_l start -->
| | Nearest | Bilinear | CatmullRom | Lanczos3 |
|------------|:-------:|:--------:|:----------:|:--------:|
| image | 15.77 | 47.29 | 74.58 | 102.36 |
| resize | - | 17.05 | 35.51 | 60.73 |
| fir rust | 0.15 | 13.61 | 15.48 | 23.84 |
| fir sse4.1 | - | 4.81 | 5.23 | 7.84 |
| fir avx2 | - | 6.66 | 4.99 | 8.17 |
| image | 16.55 | 48.08 | 75.52 | 103.29 |
| resize | - | 17.02 | 35.08 | 60.26 |
| fir rust | 0.16 | 13.59 | 15.51 | 23.58 |
| fir sse4.1 | - | 4.74 | 5.15 | 7.81 |
| fir avx2 | - | 6.64 | 4.95 | 8.04 |
<!-- bench_compare_l end -->
## Examples
+28 -28
View File
@@ -3,8 +3,8 @@
Environment:
- CPU: Neoverse-N1 2GHz (Oracle Cloud Compute, VM.Standard.A1.Flex)
- Ubuntu 22.04 (linux 5.15.0)
- Rust 1.67
- Ubuntu 22.04 (linux 5.19.0)
- Rust 1.67.1
- criterion = "0.4"
- fast_image_resize = "2.5.0"
@@ -32,10 +32,10 @@ Pipeline:
<!-- bench_compare_rgb start -->
| | Nearest | Bilinear | CatmullRom | Lanczos3 |
|----------|:-------:|:--------:|:----------:|:--------:|
| image | 82.04 | 170.39 | 323.54 | 455.59 |
| resize | - | 89.54 | 178.04 | 265.99 |
| fir rust | 0.89 | 72.03 | 87.92 | 112.94 |
| fir neon | - | 43.24 | 57.50 | 82.20 |
| image | 82.14 | 168.74 | 320.90 | 450.42 |
| resize | - | 89.75 | 177.52 | 265.89 |
| fir rust | 0.88 | 71.87 | 86.61 | 112.92 |
| fir neon | - | 42.62 | 57.11 | 81.55 |
<!-- bench_compare_rgb end -->
### Resize RGBA8 image (U8x4) 4928x3279 => 852x567
@@ -52,9 +52,9 @@ Pipeline:
<!-- bench_compare_rgba start -->
| | Nearest | Bilinear | CatmullRom | Lanczos3 |
|----------|:-------:|:--------:|:----------:|:--------:|
| resize | - | 114.42 | 197.39 | 290.99 |
| fir rust | 0.95 | 94.07 | 108.51 | 155.94 |
| fir neon | - | 44.72 | 61.65 | 84.19 |
| resize | - | 115.05 | 196.68 | 291.51 |
| fir rust | 0.93 | 93.79 | 107.13 | 155.10 |
| fir neon | - | 44.79 | 62.46 | 83.87 |
<!-- bench_compare_rgba end -->
### Resize L8 image (U8) 4928x3279 => 852x567
@@ -70,10 +70,10 @@ Pipeline:
<!-- bench_compare_l start -->
| | Nearest | Bilinear | CatmullRom | Lanczos3 |
|----------|:-------:|:--------:|:----------:|:--------:|
| image | 75.34 | 104.26 | 174.57 | 243.13 |
| resize | - | 37.87 | 83.74 | 128.46 |
| fir rust | 0.50 | 29.85 | 37.35 | 45.96 |
| fir neon | - | 15.09 | 20.09 | 28.27 |
| image | 75.25 | 104.16 | 174.73 | 242.71 |
| resize | - | 37.83 | 83.66 | 128.53 |
| fir rust | 0.48 | 29.92 | 38.04 | 45.57 |
| fir neon | - | 15.03 | 20.11 | 28.18 |
<!-- bench_compare_l end -->
### Resize LA8 image (U8x2) 4928x3279 => 852x567
@@ -92,8 +92,8 @@ Pipeline:
<!-- bench_compare_la start -->
| | Nearest | Bilinear | CatmullRom | Lanczos3 |
|----------|:-------:|:--------:|:----------:|:--------:|
| fir rust | 0.70 | 60.50 | 75.23 | 72.11 |
| fir neon | - | 34.26 | 39.25 | 54.73 |
| fir rust | 0.67 | 60.13 | 75.12 | 71.88 |
| fir neon | - | 34.48 | 39.38 | 54.70 |
<!-- bench_compare_la end -->
### Resize RGB16 image (U16x3) 4928x3279 => 852x567
@@ -109,10 +109,10 @@ Pipeline:
<!-- bench_compare_rgb16 start -->
| | Nearest | Bilinear | CatmullRom | Lanczos3 |
|----------|:-------:|:--------:|:----------:|:--------:|
| image | 85.61 | 167.17 | 331.31 | 479.45 |
| resize | - | 90.45 | 179.51 | 267.39 |
| fir rust | 1.37 | 148.73 | 275.24 | 393.32 |
| fir neon | - | 70.44 | 92.62 | 128.94 |
| image | 84.64 | 163.62 | 324.75 | 470.06 |
| resize | - | 90.04 | 179.15 | 266.92 |
| fir rust | 1.37 | 148.80 | 275.50 | 392.99 |
| fir neon | - | 70.09 | 92.15 | 128.53 |
<!-- bench_compare_rgb16 end -->
### Resize RGBA16 image (U16x4) 4928x3279 => 852x567
@@ -129,9 +129,9 @@ Pipeline:
<!-- bench_compare_rgba16 start -->
| | Nearest | Bilinear | CatmullRom | Lanczos3 |
|----------|:-------:|:--------:|:----------:|:--------:|
| resize | - | 119.14 | 202.43 | 301.05 |
| fir rust | 1.49 | 203.02 | 366.89 | 521.69 |
| fir neon | - | 77.88 | 118.26 | 159.35 |
| resize | - | 119.04 | 202.65 | 300.32 |
| fir rust | 1.50 | 202.83 | 366.23 | 521.08 |
| fir neon | - | 77.24 | 117.97 | 159.74 |
<!-- bench_compare_rgba16 end -->
### Resize L16 image (U16) 4928x3279 => 852x567
@@ -147,10 +147,10 @@ Pipeline:
<!-- bench_compare_l16 start -->
| | Nearest | Bilinear | CatmullRom | Lanczos3 |
|----------|:-------:|:--------:|:----------:|:--------:|
| image | 73.89 | 110.24 | 185.96 | 260.32 |
| resize | - | 41.82 | 64.05 | 88.11 |
| fir rust | 0.62 | 57.53 | 95.11 | 134.94 |
| fir neon | - | 17.47 | 26.87 | 37.82 |
| image | 75.81 | 109.53 | 186.26 | 258.33 |
| resize | - | 41.47 | 64.49 | 88.17 |
| fir rust | 0.63 | 57.12 | 95.16 | 135.02 |
| fir neon | - | 17.47 | 26.64 | 37.81 |
<!-- bench_compare_l16 end -->
### Resize LA16 (luma with alpha channel) image (U16x2) 4928x3279 => 852x567
@@ -169,6 +169,6 @@ Pipeline:
<!-- bench_compare_la16 start -->
| | Nearest | Bilinear | CatmullRom | Lanczos3 |
|----------|:-------:|:--------:|:----------:|:--------:|
| fir rust | 0.94 | 106.88 | 192.68 | 271.72 |
| fir neon | - | 35.87 | 53.97 | 74.00 |
| fir rust | 0.92 | 106.64 | 192.31 | 271.17 |
| fir neon | - | 35.71 | 53.88 | 73.40 |
<!-- bench_compare_la16 end -->
+23 -23
View File
@@ -4,7 +4,7 @@ Environment:
- CPU: AMD Ryzen 9 5950X
- RAM: DDR4 3800 MHz
- Ubuntu 22.04 (linux 5.15.0)
- Ubuntu 22.04 (linux 5.19.0)
- Rust 1.67.1
- wasmtime = "6.0.0"
- criterion = "0.4"
@@ -34,10 +34,10 @@ Pipeline:
<!-- bench_compare_rgb start -->
| | Nearest | Bilinear | CatmullRom | Lanczos3 |
|-------------|:-------:|:--------:|:----------:|:--------:|
| image | 30.54 | 182.53 | 333.69 | 485.57 |
| resize | - | 85.65 | 166.46 | 248.04 |
| fir rust | 0.37 | 56.17 | 95.14 | 136.15 |
| fir simd128 | - | 16.32 | 23.87 | 33.97 |
| image | 28.76 | 173.68 | 317.43 | 471.25 |
| resize | - | 60.02 | 112.12 | 164.45 |
| fir rust | 0.39 | 64.55 | 112.09 | 160.57 |
| fir simd128 | - | 19.24 | 26.81 | 37.65 |
<!-- bench_compare_rgb end -->
### Resize RGBA8 image (U8x4) 4928x3279 => 852x567
@@ -54,8 +54,8 @@ Pipeline:
<!-- bench_compare_rgba start -->
| | Nearest | Bilinear | CatmullRom | Lanczos3 |
|----------|:-------:|:--------:|:----------:|:--------:|
| resize | - | 106.79 | 204.81 | 309.52 |
| fir rust | 0.27 | 107.92 | 162.37 | 218.41 |
| resize | - | 113.48 | 220.71 | 329.72 |
| fir rust | 0.28 | 108.67 | 165.42 | 225.15 |
<!-- bench_compare_rgba end -->
### Resize L8 image (U8) 4928x3279 => 852x567
@@ -71,10 +71,10 @@ Pipeline:
<!-- bench_compare_l start -->
| | Nearest | Bilinear | CatmullRom | Lanczos3 |
|-------------|:-------:|:--------:|:----------:|:--------:|
| image | 26.91 | 149.62 | 270.65 | 402.29 |
| resize | - | 24.86 | 46.99 | 69.49 |
| fir rust | 0.21 | 25.26 | 40.43 | 56.80 |
| fir simd128 | - | 7.66 | 8.62 | 12.87 |
| image | 25.92 | 150.91 | 282.91 | 414.63 |
| resize | - | 30.59 | 62.37 | 92.67 |
| fir rust | 0.24 | 31.30 | 51.98 | 74.33 |
| fir simd128 | - | 8.68 | 9.01 | 13.46 |
<!-- bench_compare_l end -->
### Resize LA8 image (U8x2) 4928x3279 => 852x567
@@ -93,7 +93,7 @@ Pipeline:
<!-- bench_compare_la start -->
| | Nearest | Bilinear | CatmullRom | Lanczos3 |
|----------|:-------:|:--------:|:----------:|:--------:|
| fir rust | 0.24 | 58.78 | 88.65 | 117.81 |
| fir rust | 0.28 | 60.44 | 92.25 | 123.84 |
<!-- bench_compare_la end -->
### Resize RGB16 image (U16x3) 4928x3279 => 852x567
@@ -109,10 +109,10 @@ Pipeline:
<!-- bench_compare_rgb16 start -->
| | Nearest | Bilinear | CatmullRom | Lanczos3 |
|-------------|:-------:|:--------:|:----------:|:--------:|
| image | 30.21 | 183.61 | 334.87 | 485.75 |
| resize | - | 54.97 | 106.92 | 158.51 |
| fir rust | 0.42 | 63.58 | 105.10 | 146.28 |
| fir simd128 | - | 59.84 | 104.52 | 151.31 |
| image | 28.94 | 173.64 | 317.43 | 471.87 |
| resize | - | 60.21 | 167.97 | 248.82 |
| fir rust | 0.42 | 72.90 | 125.37 | 177.67 |
| fir simd128 | - | 61.07 | 105.06 | 151.93 |
<!-- bench_compare_rgb16 end -->
### Resize RGBA16 image (U16x4) 4928x3279 => 852x567
@@ -129,8 +129,8 @@ Pipeline:
<!-- bench_compare_rgba16 start -->
| | Nearest | Bilinear | CatmullRom | Lanczos3 |
|----------|:-------:|:--------:|:----------:|:--------:|
| resize | - | 80.98 | 158.27 | 230.59 |
| fir rust | 0.42 | 117.66 | 171.42 | 227.46 |
| resize | - | 106.03 | 206.32 | 311.74 |
| fir rust | 0.45 | 117.19 | 172.46 | 230.54 |
<!-- bench_compare_rgba16 end -->
### Resize L16 image (U16) 4928x3279 => 852x567
@@ -146,10 +146,10 @@ Pipeline:
<!-- bench_compare_l16 start -->
| | Nearest | Bilinear | CatmullRom | Lanczos3 |
|-------------|:-------:|:--------:|:----------:|:--------:|
| image | 27.74 | 174.53 | 315.94 | 471.17 |
| resize | - | 30.87 | 61.00 | 91.44 |
| fir rust | 0.25 | 28.48 | 44.72 | 62.67 |
| fir simd128 | - | 20.61 | 33.51 | 48.61 |
| image | 25.78 | 156.37 | 284.77 | 423.77 |
| resize | - | 30.57 | 62.63 | 93.16 |
| fir rust | 0.26 | 36.22 | 58.49 | 82.46 |
| fir simd128 | - | 22.11 | 35.98 | 51.49 |
<!-- bench_compare_l16 end -->
### Resize LA16 (luma with alpha channel) image (U16x2) 4928x3279 => 852x567
@@ -168,5 +168,5 @@ Pipeline:
<!-- bench_compare_la16 start -->
| | Nearest | Bilinear | CatmullRom | Lanczos3 |
|----------|:-------:|:--------:|:----------:|:--------:|
| fir rust | 0.26 | 58.50 | 87.86 | 117.28 |
| fir rust | 0.28 | 64.02 | 98.11 | 132.66 |
<!-- bench_compare_la16 end -->
+36 -36
View File
@@ -4,8 +4,8 @@ Environment:
- CPU: AMD Ryzen 9 5950X
- RAM: DDR4 3800 MHz
- Ubuntu 22.04 (linux 5.15.0)
- Rust 1.67
- Ubuntu 22.04 (linux 5.19.0)
- Rust 1.67.1
- criterion = "0.4"
- fast_image_resize = "2.5.0"
@@ -33,11 +33,11 @@ Pipeline:
<!-- bench_compare_rgb start -->
| | Nearest | Bilinear | CatmullRom | Lanczos3 |
|------------|:-------:|:--------:|:----------:|:--------:|
| image | 18.53 | 80.66 | 137.96 | 196.04 |
| resize | - | 46.50 | 91.78 | 136.27 |
| fir rust | 0.28 | 38.94 | 78.10 | 111.35 |
| fir sse4.1 | - | 9.88 | 14.22 | 20.09 |
| fir avx2 | - | 7.79 | 9.90 | 14.47 |
| image | 19.37 | 81.71 | 149.63 | 205.67 |
| resize | - | 48.65 | 97.50 | 145.90 |
| fir rust | 0.28 | 38.21 | 65.73 | 96.99 |
| fir sse4.1 | - | 9.78 | 14.26 | 20.00 |
| fir avx2 | - | 7.85 | 9.96 | 14.75 |
<!-- bench_compare_rgb end -->
### Resize RGBA8 image (U8x4) 4928x3279 => 852x567
@@ -54,10 +54,10 @@ Pipeline:
<!-- bench_compare_rgba start -->
| | Nearest | Bilinear | CatmullRom | Lanczos3 |
|------------|:-------:|:--------:|:----------:|:--------:|
| resize | - | 74.49 | 137.62 | 202.75 |
| fir rust | 0.19 | 37.75 | 54.07 | 76.86 |
| fir sse4.1 | - | 13.13 | 17.33 | 22.57 |
| fir avx2 | - | 9.55 | 12.07 | 16.47 |
| resize | - | 74.59 | 138.44 | 202.18 |
| fir rust | 0.19 | 36.23 | 52.20 | 75.37 |
| fir sse4.1 | - | 13.31 | 17.32 | 22.66 |
| fir avx2 | - | 9.77 | 12.20 | 16.56 |
<!-- bench_compare_rgba end -->
### Resize L8 image (U8) 4928x3279 => 852x567
@@ -73,11 +73,11 @@ Pipeline:
<!-- bench_compare_l start -->
| | Nearest | Bilinear | CatmullRom | Lanczos3 |
|------------|:-------:|:--------:|:----------:|:--------:|
| image | 15.77 | 47.29 | 74.58 | 102.36 |
| resize | - | 17.05 | 35.51 | 60.73 |
| fir rust | 0.15 | 13.61 | 15.48 | 23.84 |
| fir sse4.1 | - | 4.81 | 5.23 | 7.84 |
| fir avx2 | - | 6.66 | 4.99 | 8.17 |
| image | 16.55 | 48.08 | 75.52 | 103.29 |
| resize | - | 17.02 | 35.08 | 60.26 |
| fir rust | 0.16 | 13.59 | 15.51 | 23.58 |
| fir sse4.1 | - | 4.74 | 5.15 | 7.81 |
| fir avx2 | - | 6.64 | 4.95 | 8.04 |
<!-- bench_compare_l end -->
### Resize LA8 image (U8x2) 4928x3279 => 852x567
@@ -96,9 +96,9 @@ Pipeline:
<!-- bench_compare_la start -->
| | Nearest | Bilinear | CatmullRom | Lanczos3 |
|------------|:-------:|:--------:|:----------:|:--------:|
| fir rust | 0.17 | 25.78 | 30.41 | 43.01 |
| fir sse4.1 | - | 12.63 | 14.26 | 17.86 |
| fir avx2 | - | 8.73 | 9.68 | 12.41 |
| fir rust | 0.17 | 25.01 | 30.30 | 42.12 |
| fir sse4.1 | - | 12.68 | 14.27 | 17.89 |
| fir avx2 | - | 8.79 | 9.67 | 12.48 |
<!-- bench_compare_la end -->
### Resize RGB16 image (U16x3) 4928x3279 => 852x567
@@ -114,11 +114,11 @@ Pipeline:
<!-- bench_compare_rgb16 start -->
| | Nearest | Bilinear | CatmullRom | Lanczos3 |
|------------|:-------:|:--------:|:----------:|:--------:|
| image | 18.84 | 74.16 | 124.67 | 176.08 |
| resize | - | 45.79 | 90.08 | 133.74 |
| fir rust | 0.34 | 43.47 | 79.63 | 114.34 |
| fir sse4.1 | - | 24.51 | 39.97 | 56.39 |
| fir avx2 | - | 19.89 | 29.93 | 36.10 |
| image | 19.55 | 75.48 | 126.27 | 177.42 |
| resize | - | 45.91 | 90.34 | 134.11 |
| fir rust | 0.34 | 44.01 | 78.28 | 113.66 |
| fir sse4.1 | - | 24.31 | 39.35 | 55.89 |
| fir avx2 | - | 19.81 | 30.10 | 36.11 |
<!-- bench_compare_rgb16 end -->
### Resize RGBA16 image (U16x4) 4928x3279 => 852x567
@@ -135,10 +135,10 @@ Pipeline:
<!-- bench_compare_rgba16 start -->
| | Nearest | Bilinear | CatmullRom | Lanczos3 |
|------------|:-------:|:--------:|:----------:|:--------:|
| resize | - | 71.61 | 133.83 | 196.60 |
| fir rust | 0.33 | 80.52 | 118.32 | 159.08 |
| fir sse4.1 | - | 43.59 | 65.40 | 87.52 |
| fir avx2 | - | 25.80 | 37.04 | 48.59 |
| resize | - | 72.18 | 134.34 | 195.65 |
| fir rust | 0.39 | 79.69 | 117.99 | 158.31 |
| fir sse4.1 | - | 43.46 | 65.22 | 87.31 |
| fir avx2 | - | 25.93 | 36.60 | 48.02 |
<!-- bench_compare_rgba16 end -->
### Resize L16 image (U16) 4928x3279 => 852x567
@@ -154,11 +154,11 @@ Pipeline:
<!-- bench_compare_l16 start -->
| | Nearest | Bilinear | CatmullRom | Lanczos3 |
|------------|:-------:|:--------:|:----------:|:--------:|
| image | 16.13 | 47.80 | 75.63 | 104.82 |
| resize | - | 15.38 | 31.74 | 57.08 |
| fir rust | 0.17 | 19.26 | 29.34 | 41.26 |
| fir sse4.1 | - | 8.14 | 13.57 | 19.33 |
| fir avx2 | - | 6.64 | 8.80 | 13.96 |
| image | 17.01 | 48.77 | 76.80 | 105.87 |
| resize | - | 15.43 | 32.01 | 56.97 |
| fir rust | 0.17 | 18.66 | 27.70 | 38.56 |
| fir sse4.1 | - | 8.19 | 13.57 | 19.33 |
| fir avx2 | - | 6.69 | 8.85 | 13.76 |
<!-- bench_compare_l16 end -->
### Resize LA16 (luma with alpha channel) image (U16x2) 4928x3279 => 852x567
@@ -177,7 +177,7 @@ Pipeline:
<!-- bench_compare_la16 start -->
| | Nearest | Bilinear | CatmullRom | Lanczos3 |
|------------|:-------:|:--------:|:----------:|:--------:|
| fir rust | 0.19 | 34.52 | 53.05 | 71.72 |
| fir sse4.1 | - | 22.05 | 34.18 | 46.79 |
| fir avx2 | - | 15.28 | 22.01 | 29.28 |
| fir rust | 0.19 | 34.11 | 53.60 | 72.66 |
| fir sse4.1 | - | 22.03 | 34.05 | 46.60 |
| fir avx2 | - | 15.38 | 22.13 | 29.33 |
<!-- bench_compare_la16 end -->
+1 -1
View File
@@ -9,7 +9,7 @@ fast_image_resize = {path=".."}
image = "0.24.5"
clap = { version = "4.0.26", features = ["derive"] }
log = "0.4.17"
env_logger = "0.9.3"
env_logger = "0.10"
anyhow = "1.0.66"
clap-verbosity-flag = "2.0.0"
once_cell = "1.16.0"