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

Add SSE2 version of TransformOne and TransformTwo #1862

Merged
merged 7 commits into from
Dec 2, 2021
Merged

Conversation

brianpopow
Copy link
Collaborator

Prerequisites

  • I have written a descriptive pull-request title
  • I have verified that there are no overlapping pull-requests open
  • I have verified that I am following the existing coding patterns and practice as demonstrated in the repository. These follow strict Stylecop rules 👮.
  • I have provided test coverage for my change (where applicable)

Description

This PR adds SSE2 versions of TransformOne and TransformTwo, which are used during webp lossy decoding.

Related to #1786

Profiling results:

master:

transformone_master

transformtwo_master

PR

transformone_sse
transformtwo_sse

Test image was Calliphora.png converted to lossy webp.

note: The Scalar version of TransformTwo calls two times TransformOne, hence the difference in call counts from PR to master

@codecov
Copy link

codecov bot commented Nov 30, 2021

Codecov Report

Merging #1862 (da843f7) into master (0517fec) will decrease coverage by 0%.
The diff coverage is 100%.

Impacted file tree graph

@@           Coverage Diff           @@
##           master   #1862    +/-   ##
=======================================
- Coverage      87%     87%    -1%     
=======================================
  Files         935     935            
  Lines       48786   48935   +149     
  Branches     6083    6085     +2     
=======================================
+ Hits        42722   42803    +81     
- Misses       5056    5122    +66     
- Partials     1008    1010     +2     
Flag Coverage Δ
unittests 87% <100%> (-1%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files Coverage Δ
src/ImageSharp/Formats/Webp/Lossy/LossyUtils.cs 100% <100%> (ø)
src/ImageSharp/Formats/Webp/Lossy/QuantEnc.cs 96% <100%> (ø)
src/ImageSharp/Formats/Webp/Lossy/Vp8Encoding.cs 100% <100%> (ø)
...ageSharp/Formats/Webp/Lossless/PredictorEncoder.cs 91% <0%> (-7%) ⬇️
.../ImageSharp/Formats/Webp/Lossless/LosslessUtils.cs 92% <0%> (-6%) ⬇️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 0517fec...da843f7. Read the comment docs.

Copy link
Member

@JimBobSquarePants JimBobSquarePants left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice speedup. LGTM 👍

@brianpopow brianpopow merged commit 3e02a0c into master Dec 2, 2021
@brianpopow brianpopow deleted the bp/transformsse branch December 2, 2021 09:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants