Commit Graph

12523 Commits

Author SHA1 Message Date
Alexander
3322b77c9a SIMD Convert. use 16bit arithmetics 2022-01-03 12:20:09 +03:00
Alexander
03c150d0a6 SIMD Convert. sse4 version (still 1.4x faster than previous avx2 implementation) 2022-01-03 12:20:09 +03:00
Alexander
d82fe3dd74 SIMD Convert. use float div instead of gather 2022-01-03 12:20:09 +03:00
homm
95a68340c9 SIMD Convert. fix RGBa → RGBA conversion on AVX2 2022-01-03 12:20:09 +03:00
homm
f888dbe1cc SIMD Convert. RGBa → RGBA convert using gather 2022-01-03 12:20:09 +03:00
homm
55b71f2edb SIMD Convert. avx2 implementation 2022-01-03 12:20:09 +03:00
homm
6e91b2b41f SIMD Convert. faster implementation 2022-01-03 12:20:09 +03:00
homm
a7de792025 SIMD Convert. sse4 implementation 2022-01-03 12:20:09 +03:00
Alexander
a71b748bde SIMD Resample. Correct max coefficient calculation
Minimal test case:
Image.new('RGB', (341, 60), 'pink').resize((170, 60), Image.LANCZOS).save('_out.png')
2022-01-03 12:20:09 +03:00
Alexander
b3c28911c0 SIMD Resample. fix wrong usage of xmax for division compensation 2022-01-03 12:20:09 +03:00
Alexander
247cba2e30 SIMD Resample. move files 2022-01-03 12:20:09 +03:00
Alexander
7da807b8e4 SIMD Resample. add parentheses around var declarations 2022-01-03 12:20:09 +03:00
Alexander
698e6a1698 SIMD Resample. optimize coefficients loading for horizontal pass
wtf is xmax / 2

optimize coefficients loading for vertical pass
2022-01-03 12:20:09 +03:00
homm
8796b40ef6 SIMD Resample. unrolled SSE4 & AVX2 2022-01-03 12:20:09 +03:00
Alexander
b4a54840ee SIMD Filter. move files 2022-01-03 12:20:09 +03:00
Alexander
416e580a77 SIMD Filter. fix memory access for:
3x3f_u8
3x3i_4u8
5x5i_4u8
2022-01-03 12:20:09 +03:00
Alexander
1bd3fddf44 SIMD Filter. 5x5i_4u8 AVX2 2022-01-03 12:20:09 +03:00
Alexander
62dbbbdde6 SIMD Filter. advanced 5x5i_4u8 SSE4 2022-01-03 12:20:09 +03:00
Alexander
b23fc5a958 SIMD Filter. 5x5i_4u8 SSE4 2022-01-03 12:20:09 +03:00
Alexander
ccfc34a5ed SIMD Filter. finish 3x3i_4u8 2022-01-03 12:20:09 +03:00
Alexander
a1ce80cb29 SIMD Filter. avx2 version 2022-01-03 12:20:09 +03:00
Alexander
49f4de699f SIMD Filter. rearrange operations 2022-01-03 12:20:09 +03:00
Alexander
3b67d8c516 SIMD Filter. reduce number of registers 2022-01-03 12:20:09 +03:00
Alexander
ab50dde9d2 SIMD Filter. Rearrange instruction for speedup 2022-01-03 12:20:09 +03:00
Alexander
74d95f5e9d SIMD Filter. better loading 2022-01-03 12:20:09 +03:00
Alexander
0e17b8313b SIMD Filter. better macros 2022-01-03 12:20:09 +03:00
Alexander
eb57b5eca7 SIMD Filter. 3x3i 2022-01-03 12:20:09 +03:00
Alexander
b561752597 SIMD Filter. move ImagingFilterxxx functions to separate files 2022-01-03 12:20:09 +03:00
Alexander
256eb37439 SIMD Filter. fix offset 2022-01-03 12:20:09 +03:00
Alexander
92d392a99c SIMD Filter. 5x5 single channel SSE4 (tests failed) 2022-01-03 12:20:09 +03:00
Alexander
92c591016e SIMD Filter. consider last pixel in AVX 2022-01-03 12:20:09 +03:00
Alexander
9f53dfef57 SIMD Filter. unroll AVX (with no profit) 2022-01-03 12:20:09 +03:00
Alexander
efe722fce3 SIMD Filter. Macros for AVX 2022-01-03 12:20:09 +03:00
Alexander
2329ee5605 SIMD Filter. unroll AVX 2 times 2022-01-03 12:20:09 +03:00
Alexander
80dfbaf22d SIMD Filter. First AVX try 2022-01-03 12:20:09 +03:00
Alexander
f2e021aa94 SIMD Filter. 3x3 SSE4 singleband: 2 lines 2022-01-03 12:20:09 +03:00
Alexander
901d668f0c SIMD Filter. reuse loaded values 2022-01-03 12:20:09 +03:00
Alexander
05a5ff706a SIMD Filter. faster 3x3 singleband SSE4 2022-01-03 12:20:09 +03:00
Alexander
64ab983164 SIMD Filter. 3x3 SSE4 singleband 2022-01-03 12:20:09 +03:00
Alexander
4da1f70050 SIMD Filter. use macros in 3x3 2022-01-03 12:20:09 +03:00
Alexander
f747e7efc8 SIMD Filter. use macros 2022-01-03 12:20:09 +03:00
Alexander
8e58436e44 SIMD Filter. rearrange 3x3 filter to match 5x5 2022-01-03 12:20:09 +03:00
Alexander
c5b973b6ad SIMD Filter. improve locality in 5x5 filter 2022-01-03 12:20:09 +03:00
Alexander
a84ad68ca8 SIMD Filter. a bit faster 5x5 filter 2022-01-03 12:20:09 +03:00
Alexander
c07157fd4b SIMD Filter. fast 3x3 filter 2022-01-03 12:20:09 +03:00
Alexander
2f4aad4d57 SIMD Filter. 5x5 implementation 2022-01-03 12:20:09 +03:00
Alexander
e9e2ed124a SIMD Filter. 3x3 implementation 2022-01-03 12:20:09 +03:00
Alexander
a794af7b00 SIMD BoxBlur. faster box blur for radius < 1 2022-01-03 12:20:09 +03:00
Alexander
dede8035a3 SIMD BoxBlur. add parentheses around var declarations 2022-01-03 12:20:08 +03:00
homm
9609a5849f SIMD BoxBlur. sse4 ImagingBoxBlur implementation 2022-01-03 12:20:08 +03:00