85 Commits
Author SHA1 Message Date
Kirill Kuzminykh 6483439ab3 Fixed resizing when the destination image has the same dimensions as the source image (#9). 2022-07-14 23:29:45 +03:00
Kirill Kuzminykh 5b89090d11 - Fixed benchmarks for resizing images with alpha channel using the resizer crate.
- Removed `image` crate from benchmarks for resizing images with alpha.
- Added method `Image::copy(&self) -> Image<'static>`.
2022-06-28 23:50:14 +03:00
Kirill Kuzminykh 891312a4bb Added support of new type of pixels PixelType::U16x4. 2022-06-26 19:16:22 +03:00
Kirill Kuzminykh 20d0578306 Added support of new type of pixels PixelType::U16x2 2022-06-22 21:52:47 +03:00
Kirill Kuzminykh d719e2ab75 - Extracted helping code for testing into separate crate.
- Optimized convolution of U16 images with help of AVX2.
2022-05-31 22:58:10 +03:00
Kirill Kuzminykh 5954725342 Added support of new type of pixels PixelType::U16. 2022-05-22 22:51:05 +03:00
Kirill Kuzminykh 13b2cf99b7 Added optimisation for convolution of U8x2 images with helps of SSE4.1. 2022-05-19 20:15:16 +03:00
Kirill Kuzminykh 1be895f332 - Added optimisation for processing `U8x2 images by MulDiv with helps of SSE4.1 and AVX2` instructions.
- Added optimisation for convolution of ``U16x2`` images with helps of ``AVX2`` instructions.
2022-05-13 00:03:40 +03:00
Kirill Kuzminykh 0a19acf252 - Added support of new type of pixels `PixelType::U8x2`.
- Added into ``MulDiv`` support of images with pixel type ``U8x2``.
2022-05-01 23:09:25 +03:00
Kirill Kuzminykh d5d46066f4 Removed unnecessary test. 2022-03-24 00:37:32 +03:00
Kirill Kuzminykh d657aef4cf - Allowed to create an instance of Image, ImageVew and ImageViewMut from a buffer larger than necessary (#5).
- Removed methods: `Image::from_vec_u32()`, `Image::from_slice_u32()`.
- Removed error `InvalidBufferSizeError`.
2022-03-22 00:18:26 +03:00
Kirill Kuzminykh bcf86e0cf1 - Added optimisation of convolution U16x3 images with helps of `SSE4.1 and AVX2` instructions.
- Added partial optimisation of convolution U8 images with helps of ``SSE4.1`` instructions.
2022-03-22 00:16:57 +03:00
Kirill Kuzminykh 146777ddbc - Added support of new type of pixels PixelType::U16x3.
- Added variant `U16x3` into the enum `PixelType`.
2022-01-27 20:25:44 +03:00
Kirill Kuzminykh d4ead15856 - Added optimisation of multiplying and dividing image by alpha channel with helps of `SSE4.1` instructions.
- Improved performance of dividing image by alpha channel without forced SIMD instructions.
- Deleted variant `SSE2` from enum ``CpuExtensions``.
2022-01-12 23:38:32 +03:00
Kirill Kuzminykh 2a5efa4105 Fixed tests in README.md 2021-12-14 00:45:21 +03:00
Kirill Kuzminykh 5fdbd5793b Fixed compile errors on non-x86 architectures. 2021-12-14 00:33:54 +03:00
Kirill Kuzminykh d76faadd2b Fixes after merge. 2021-12-14 00:25:02 +03:00
Kirill Kuzminykh a8f36e65c3 Merge branch 'main' into dev
# Conflicts:
#	CHANGELOG.md
#	tests/resize_tests.rs
2021-12-14 00:19:29 +03:00
Kirill Kuzminykh 044478620d - Added optimisation of convolution U8x3 images with helps of `AVX2` instructions.
- Fixed error in code for convolution U8x4 images with helps of ``SSE4.1`` instructions.
- Fixed error in code for convolution U8 images with helps of ``AVX2`` instructions.
2021-12-14 00:17:45 +03:00
Kirill Kuzminykh 769355df03 Added support for running tests on architectures other than x86_64. 2021-11-26 10:21:24 +03:00
Kirill Kuzminykh 79c8fceeb1 - Added support of new type of pixels PixelType::U8x3 (with auto-vectorization for SSE4.1).
- Exposed module `fast_image_resize::pixels` with types `U8x3`, `U8x4`, `F32`, `I32`, `U8` used as wrappers for represent type of one pixel of image.
- Some optimisations in code of convolution written in Rust (without intrinsics for SIMD).
- Added variant `U8x3` into the enum `PixelType`.
- Changed internal tuple structures inside of variant of `ImageRows` and `ImageRowsMut` enums.
2021-11-18 21:48:32 +03:00
Kirill Kuzminykh d918386dfb Added optimisation of convolution grayscale images (U8) with helps of `AVX2` instructions. 2021-11-13 20:40:25 +03:00
Kirill Kuzminykh 61b94a05fc - Added support of the new type of pixels - U8.
- Added benchmarks for resizing of U8 image.
2021-10-23 12:10:33 +03:00
Kirill Kuzminykh 4cb09ed0ac - Added method SrcImageView.set_crop_box_to_fit_dst_size().
- Fixed out-of-bounds error during resize with cropping.
- Refactored `ImageData`.
2021-08-28 20:45:31 +03:00
Kirill Kuzminykh c5d527704c - Added method SrcImageView.set_crop_box_to_fit_dst_size().
- Fixed out-of-bounds error during resize with cropping.
- Refactored `ImageData`.
2021-08-28 17:12:53 +03:00
Kirill Kuzminykh 638064223e Fixed link to CHANGELOG.md in the README.md. 2021-08-18 23:19:04 +03:00
Kirill Kuzminykh ef12fe1d76 Changed example of code in README.md 2021-08-01 01:28:24 +03:00
Kirill Kuzminykh 69bef66fa1 Added generator of MD table with result of resizing speed comparison. 2021-07-30 01:22:16 +03:00
Kirill Kuzminykh 93f7cbb161 Added error `InvalidBufferSizeError`. 2021-07-27 22:57:58 +03:00
Kirill Kuzminykh 5295315342 Added method `ImageData<Vec<u32>>::from_buffer()` 2021-07-13 20:54:41 +03:00
Kirill Kuzminykh dec46ebb49 Small optimisation of resizing of images with U8x4 pixel format. 2021-07-13 00:13:17 +03:00
Kirill Kuzminykh 6214456ddd Added some comments for example code 2021-07-04 16:45:44 +03:00
Kirill Kuzminykh bb1dd8e2b8 - Added benchmarks for resizing with target-cpu=native. 2021-07-04 00:41:38 +03:00
Kirill Kuzminykh d098c213ad Added benchmarks result into README.md 2021-07-03 17:02:57 +03:00
Kirill Kuzminykh d8033a005b Initial commit 2021-07-03 14:29:58 +03:00