Commit Graph

12531 Commits

Author SHA1 Message Date
Alexander
d74ab21ac9 SIMD Reduce. sse4 implementation 2022-01-03 12:20:09 +03:00
Alexander
33b11280b0 SIMD. Fix memory read error on some compilers 2022-01-03 12:20:09 +03:00
Alexander
f9c5589cac SIMD. Gather all SSE and AVX imports in ImPlatform.h 2022-01-03 12:20:09 +03:00
Alexander
e4ca18a9c8 SIMD Bands 2022-01-03 12:20:09 +03:00
Alexander
8c3d6a32d1 SIMD Convert. Fix rounding error on RGB to L conversion 2022-01-03 12:20:09 +03:00
Alexander
52cfbf339a SIMD Convert. Speedup other 2L convertions 2022-01-03 12:20:09 +03:00
Alexander
4fbc9d1f37 SIMD Convert. RGB → L 2.2 times faster 2022-01-03 12:20:09 +03:00
Alexander
7398f9e1c9 SIMD Convert. fix rounding and speedup a bit 2022-01-03 12:20:09 +03:00
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