-
-
Notifications
You must be signed in to change notification settings - Fork 852
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
Fixed Jpeg IDCT missing scalar implementation #1922
Fixed Jpeg IDCT missing scalar implementation #1922
Conversation
As @JimBobSquarePants mentioned it's a problem that tests missed this bug, test suite clearly has a 'no-simd' path for IDCT method: ImageSharp/tests/ImageSharp.Tests/Formats/Jpg/DCTTests.cs Lines 149 to 157 in fe044d1
|
Codecov Report
@@ Coverage Diff @@
## master #1922 +/- ##
======================================
Coverage 87% 87%
======================================
Files 961 961
Lines 51034 51034
Branches 6324 6324
======================================
+ Hits 44793 44863 +70
+ Misses 5202 5133 -69
+ Partials 1039 1038 -1
Flags with carried forward coverage won't be shown. Click here to find out more.
Continue to review full report at Codecov.
|
@br3aker Ah... I see where the issue lies. ImageSharp/tests/ImageSharp.Tests/TestUtilities/FeatureTesting/FeatureTestRunner.cs Lines 379 to 394 in fe044d1
|
Ups! Edit: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Awesome. Glad the fix was simple.
Prerequisites
Description
Fixes #1917.
Fix is simple: I've removed
Debug
check forVector4.IsHardwareAccelerated
asVector4
code can be compiled to a scalar implementation. That check was deprecated long ago - when I've merged de-zigzag and single transpose call so now every IDCT implementation must do a single transpose call.FDCT method does have a scalar implementation right now because current encoding pipeline does not have a merged zig-zag/transpose code. I'm yet to implement it in #1778 (coding those sse/avx zigzag tables is a horror). Because of two transpose calls scalar code can do DCT stuff a little trickier than simd without transpose calls at all but with a tranposed block input we must transpose it second time durint IDCT call.