Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update to 9.4.0 to fix security vulnerabilities #129

Closed
wants to merge 106 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
106 commits
Select commit Hold shift + click to select a range
0337557
SIMD. fix list (+6 squashed commits)
homm Apr 29, 2016
5628c31
SIMD. pypi readme, update setup
homm Oct 4, 2016
9f511d4
SIMD. Rewritten the Pillow-SIMD readme
dayton1987 Oct 7, 2016
452aa6f
SIMD. replace benchmarks with link to pillow-perf
homm Feb 26, 2017
3891eb9
SIMD. Exclude tests from package
homm Oct 17, 2018
2dc15b8
SIMD. version
homm Oct 4, 2017
c7ce11f
SIMD AlphaComposite. sse4 implementation
homm Jun 12, 2016
e716f21
SIMD AlphaComposite. avx2 implementation
homm Jun 12, 2016
794a805
SIMD AlphaComposite. increase precision
homm Jun 12, 2016
594b5d0
SIMD AlphaComposite. speedup sse4 by using _mm_mullo_epi16 instead of…
homm Jun 19, 2016
f64d6a1
SIMD AlphaComposite. speedup avx2 by using _mm256_mullo_epi16 instead…
homm Jun 19, 2016
f7f4e9e
SIMD AlphaComposite. fix bugs
homm Jul 3, 2016
a48b385
SIMD AlphaComposite. move declarations to beginning of the blocks
homm Sep 23, 2016
5a939e3
SIMD AlphaComposite. fast div aproximation
homm Jan 23, 2017
9609a58
SIMD BoxBlur. sse4 ImagingBoxBlur implementation
homm Jul 15, 2015
dede803
SIMD BoxBlur. add parentheses around var declarations
homm Sep 23, 2017
a794af7
SIMD BoxBlur. faster box blur for radius < 1
homm Sep 23, 2017
e9e2ed1
SIMD Filter. 3x3 implementation
homm Aug 13, 2017
2f4aad4
SIMD Filter. 5x5 implementation
homm Aug 13, 2017
c07157f
SIMD Filter. fast 3x3 filter
homm Aug 13, 2017
a84ad68
SIMD Filter. a bit faster 5x5 filter
homm Aug 13, 2017
c5b973b
SIMD Filter. improve locality in 5x5 filter
homm Aug 13, 2017
8e58436
SIMD Filter. rearrange 3x3 filter to match 5x5
homm Aug 13, 2017
f747e7e
SIMD Filter. use macros
homm Aug 13, 2017
4da1f70
SIMD Filter. use macros in 3x3
homm Aug 13, 2017
64ab983
SIMD Filter. 3x3 SSE4 singleband
homm Aug 13, 2017
05a5ff7
SIMD Filter. faster 3x3 singleband SSE4
homm Aug 13, 2017
901d668
SIMD Filter. reuse loaded values
homm Aug 13, 2017
f2e021a
SIMD Filter. 3x3 SSE4 singleband: 2 lines
homm Aug 13, 2017
80dfbaf
SIMD Filter. First AVX try
homm Sep 4, 2017
2329ee5
SIMD Filter. unroll AVX 2 times
homm Sep 4, 2017
efe722f
SIMD Filter. Macros for AVX
homm Sep 4, 2017
9f53dfe
SIMD Filter. unroll AVX (with no profit)
homm Sep 4, 2017
92c5910
SIMD Filter. consider last pixel in AVX
homm Sep 6, 2017
92d392a
SIMD Filter. 5x5 single channel SSE4 (tests failed)
homm Sep 7, 2017
256eb37
SIMD Filter. fix offset
homm Sep 7, 2017
b561752
SIMD Filter. move ImagingFilterxxx functions to separate files
homm Sep 12, 2017
eb57b5e
SIMD Filter. 3x3i
homm Sep 12, 2017
0e17b83
SIMD Filter. better macros
homm Sep 12, 2017
74d95f5
SIMD Filter. better loading
homm Sep 12, 2017
ab50dde
SIMD Filter. Rearrange instruction for speedup
homm Sep 13, 2017
3b67d8c
SIMD Filter. reduce number of registers
homm Sep 13, 2017
49f4de6
SIMD Filter. rearrange operations
homm Sep 13, 2017
a1ce80c
SIMD Filter. avx2 version
homm Sep 13, 2017
ccfc34a
SIMD Filter. finish 3x3i_4u8
homm Sep 13, 2017
b23fc5a
SIMD Filter. 5x5i_4u8 SSE4
homm Sep 13, 2017
62dbbbd
SIMD Filter. advanced 5x5i_4u8 SSE4
homm Sep 13, 2017
1bd3fdd
SIMD Filter. 5x5i_4u8 AVX2
homm Sep 13, 2017
416e580
SIMD Filter. fix memory access for:
homm Oct 4, 2017
b4a5484
SIMD Filter. move files
homm Apr 12, 2018
8796b40
SIMD Resample. unrolled SSE4 & AVX2
homm Oct 3, 2016
698e6a1
SIMD Resample. optimize coefficients loading for horizontal pass
homm Feb 25, 2017
7da807b
SIMD Resample. add parentheses around var declarations
homm Sep 23, 2017
247cba2
SIMD Resample. move files
homm Apr 12, 2018
b3c2891
SIMD Resample. fix wrong usage of xmax for division compensation
homm Jan 20, 2019
a71b748
SIMD Resample. Correct max coefficient calculation
homm Apr 2, 2019
a7de792
SIMD Convert. sse4 implementation
homm May 25, 2016
6e91b2b
SIMD Convert. faster implementation
homm May 25, 2016
55b71f2
SIMD Convert. avx2 implementation
homm Jul 2, 2016
f888dbe
SIMD Convert. RGBa → RGBA convert using gather
homm May 29, 2016
95a6834
SIMD Convert. fix RGBa → RGBA conversion on AVX2
homm Aug 16, 2016
d82fe3d
SIMD Convert. use float div instead of gather
homm Jan 23, 2017
03c150d
SIMD Convert. sse4 version (still 1.4x faster than previous avx2 impl…
homm Jan 23, 2017
3322b77
SIMD Convert. use 16bit arithmetics
homm Jan 23, 2017
7398f9e
SIMD Convert. fix rounding and speedup a bit
homm Aug 9, 2017
4fbc9d1
SIMD Convert. RGB → L 2.2 times faster
homm Sep 9, 2017
52cfbf3
SIMD Convert. Speedup other 2L convertions
homm Sep 10, 2017
8c3d6a3
SIMD Convert. Fix rounding error on RGB to L conversion
homm Jan 15, 2020
e4ca18a
SIMD Bands
homm Aug 12, 2017
f9c5589
SIMD. Gather all SSE and AVX imports in ImPlatform.h
homm Jan 15, 2020
33b1128
SIMD. Fix memory read error on some compilers
homm Jan 6, 2020
d74ab21
SIMD Reduce. sse4 implementation
homm Jan 5, 2020
be70e9e
SIMD Bands. access violation in getband
homm Jan 17, 2020
1b80309
SIMD. sse only when needed
homm Jan 17, 2020
23451b8
SIMD. version
homm Jan 17, 2020
16f6940
SIMD ColorLUT. First try
homm Mar 27, 2018
f50dba4
SIMD ColorLUT. remove SHIFT_ROUNDING
homm Mar 27, 2018
c7e3b0e
SIMD ColorLUT. improve performance by preliminary index calculation
homm Mar 27, 2018
91dcda6
SIMD ColorLUT. table_channels==4 case, minor optimizations
homm Mar 27, 2018
0520521
SIMD ColorLUT. remove unused utility
homm Mar 27, 2018
b4a77d4
SIMD ColorLUT. remove left_mask and right_mask
homm Mar 27, 2018
8a52520
SIMD ColorLUT. AVX2 implementation (near the same speed)
homm Mar 27, 2018
c31c788
SIMD ColorLUT. Fast AVX2 implementation with very wired slowdown
homm Mar 27, 2018
6e22415
SIMD ColorLUT. finally fix alpha copy
homm Mar 30, 2018
085b729
SIMD. version
homm Jan 17, 2020
1e70975
SIMD ColorLUT. 16bit arithmetic. Access violation fixed
homm Jan 22, 2020
000dafe
SIMD. MSVC compiler
homm Jan 26, 2020
4f92606
SIMD. update changes link
homm Jan 17, 2020
d372997
SIMD. version
homm Jan 26, 2020
c0d7cd9
#84 add install prerequisites for avoid confutation
Monirzadeh May 3, 2020
8db8caa
Markdown typo
lsb May 7, 2020
18783ee
New Uploadcare logo and date correction
rsedykh May 20, 2020
fc915a4
SIMD Filter. Correct offset for 3x3f_u8
homm Dec 19, 2021
d40b9f0
SIMD. resolve imports
homm Dec 19, 2021
da01a5f
SIMD. version
homm Dec 19, 2021
4e4dc1d
Protect double inclusion of ImagingSIMD.h
homm Jan 4, 2022
afac531
Exclude other arch tests
homm Jan 4, 2022
e8fa86d
Exclude CIFuzz tests
homm Jan 4, 2022
b5f03c9
Two items, not two bytes
homm Jan 4, 2022
abd6708
Merge pull request #109 from uploadcare/simd/fix-builds
homm Jan 4, 2022
fb9ed49
SIMD. version
homm Jan 4, 2022
c4f10c8
Fixed typos
radarhere Jan 17, 2022
6fdb1fa
Merge pull request #110 from radarhere/patch-3
homm Jan 17, 2022
1f08e28
docs: update faulty gaussian-blur-changes link
khanfarhan10 Aug 29, 2022
668aa48
Merge pull request #122 from khanfarhan10/patch-1
homm Aug 31, 2022
d88fdfe
Merge branch 'simd/master' into simd/9.4.x
Dawars Mar 11, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
144 changes: 144 additions & 0 deletions CHANGES.SIMD.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,144 @@
Changelog (Pillow-SIMD)
=======================

9.0.0.post1
-----------

- Fixed possible overflow in LUT processing
- Restored compatibility with Visual C Compiler


7.0.0.post4
-----------

- Filter: fixed wrong offset handling for 3x3 single-band version

7.0.0.post3
-----------

- ColorLUT: fixed potential access violation, up to 2x faster

7.0.0.post2
-----------

- ColorLUT: SSE4 & AVX2

7.0.0.post1 & 6.2.2.post1 & 6.1.0.post1 & 6.0.0.post2
-----------------------------------------------------

- Bands: access violation in getband in some environments

7.0.0.post0
-----------

- Reduce: SSE4

6.0.0.post1
-----------

- GCC 9.0+: fixed unaligned read for ``_**_cvtepu8_epi32`` functions.

6.0.0.post0 and 5.3.0.post1
---------------------------

- Resampling: Correct max coefficient calculation. Some rare combinations of
initial and requested sizes lead to black lines.

4.3.0.post0
-----------

- Float-based filters, single-band: 3x3 SSE4, 5x5 SSE4
- Float-based filters, multi-band: 3x3 SSE4 & AVX2, 5x5 SSE4
- Int-based filters, multi-band: 3x3 SSE4 & AVX2, 5x5 SSE4 & AVX2
- Box blur: fast path for radius < 1
- Alpha composite: fast div approximation
- Color conversion: RGB to L SSE4, fast div in RGBa to RGBA
- Resampling: optimized coefficients loading
- Split and get_channel: SSE4

3.4.1.post1
-----------

- Critical memory error for some combinations of source/destination
sizes is fixed.

3.4.1.post0
-----------

- A lot of optimizations in resampling including 16-bit
intermediate color representation and heavy unrolling.

3.3.2.post0
-----------

- Maintenance release

3.3.0.post2
-----------

- Fixed error in RGBa -> RGBA conversion

3.3.0.post1
-----------

Alpha compositing
~~~~~~~~~~~~~~~~~

- SSE4 and AVX2 fixed-point full loading implementation.
Up to 4.6x faster.

3.3.0.post0
-----------

Resampling
~~~~~~~~~~

- SSE4 and AVX2 fixed-point full loading horizontal pass.
- SSE4 and AVX2 fixed-point full loading vertical pass.

Conversion
~~~~~~~~~~

- RGBA -> RGBa SSE4 and AVX2 fixed-point full loading implementations.
Up to 2.6x faster.
- RGBa -> RGBA AVX2 implementation using gather instructions.
Up to 5x faster.


3.2.0.post3
-----------

Resampling
~~~~~~~~~~

- SSE4 and AVX2 float full loading horizontal pass.
- SSE4 float full loading vertical pass.


3.2.0.post2
-----------

Resampling
~~~~~~~~~~

- SSE4 and AVX2 float full loading horizontal pass.
- SSE4 float per-pixel loading vertical pass.


2.9.0.post1
-----------

Resampling
~~~~~~~~~~

- SSE4 and AVX2 float per-pixel loading horizontal pass.
- SSE4 float per-pixel loading vertical pass.
- SSE4: Up to 2x for downscaling. Up to 3.5x for upscaling.
- AVX2: Up to 2.7x for downscaling. Up to 3.5x for upscaling.


Box blur
~~~~~~~~

- Simple SSE4 fixed-point implementations with per-pixel loading.
- Up to 2.1x faster.
1 change: 1 addition & 0 deletions MANIFEST.in
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ graft src
graft depends
graft winbuild
graft docs
prune Tests

# build/src control detritus
exclude .appveyor.yml
Expand Down
6 changes: 6 additions & 0 deletions PyPI.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@

`Pillow-SIMD repo and readme <https://github.com/uploadcare/pillow-simd>`_

`Pillow-SIMD changelog <https://github.com/uploadcare/pillow-simd/blob/simd/master/CHANGES.SIMD.rst>`_

`Pillow documentation <https://pillow.readthedocs.io/>`_
Loading