James Jackson-South
dc0982f186
Faster Linear Transforms ( #1591 )
* Attempt to use same weight generation algorithm as resize.
* tests pass
* Identical output
* Update LinearTransformKernelFactory{TResampler}.cs
* Use new low allocation iterator
* Migrate projective transforms.
* Optimizations
* Smaller kernel
* Fix sampling accuracy
* Finalize and update refs
* Revert unnecessary changes
* Remove enumerator
* Actually save output for debugging.
* Use custom test png encoder for reduced memory environments
* Convolution should use scaled vectors
* Update TestEnvironmentTests.cs
* Try using doubles
* Moar double precision
* Fix radius calculation
* Test if issue is SIMD related.
* Detect runtime to determine pipeline.
* Fix stack overflow
* fix condition
* Try simplified scalar run
* Simplify unpremultiply scalar
* Update Numerics.cs
* Fix runtime environment
* Update ImageSharp.csproj
* Duplicate the caller with scalar versions
* Update method name, exclude from coverage.
* Don't save output during coverage tests for perf.
* Update src/ImageSharp/Common/Helpers/RuntimeEnvironment.cs
Co-authored-by: Anton Firszov <antonfir@gmail.com>
Co-authored-by: Anton Firszov <antonfir@gmail.com>
5 years ago
James Jackson-South
8d3cddab30
No more Vector4Utils & ImageMath
5 years ago
James Jackson-South
f66fe45ac1
Utils FTW
5 years ago
James Jackson-South
124a54c5ad
ImageMaths => ImageMath
5 years ago
James Jackson-South
e9f734a943
Introduce Numerics and migrate ImageMaths methods
5 years ago
James Jackson-South
aecf80388c
Add Avx2 Span Premultiplication and Reverse
5 years ago
James Jackson-South
874115bd0a
Update license
6 years ago
James Jackson-South
6183dd8c13
Update source license info.
6 years ago
James Jackson-South
f2aa2a7965
Replace Vector4.Clamp
6 years ago
Sergio Pedri
8fb9c466d8
Renamed ParallelRowIterator.IterateRows to IterateRowIntervals
6 years ago
Anton Firszov
cf4d5a7457
fix JpegDecoder
6 years ago
James Jackson-South
f11a3a019b
Use Span<T> as buffer param
6 years ago
James Jackson-South
33bd5a920c
Fix arguments order and tests
6 years ago
James Jackson-South
00dc2a8c98
Internalize, partially optimize and rename Action methods.
6 years ago
James Jackson-South
b62434cea9
Rename class and add native memory profiler
6 years ago
Anton Firszov
11183d0a94
a few more cases to ParallelHelperTests
6 years ago
James Jackson-South
8e12faddf3
Break when minY >= bottom
6 years ago
Anton Firszov
35796da28c
Improve robustness of discontiguous Buffer2D
6 years ago
James Jackson-South
8cd722cfc5
Revert `using` declaration changes for until we establish guidelines.
6 years ago
Brian Popow
f60bc937de
Use using declarations to reduce nesting
6 years ago
Brian Popow
7b052c8076
Fix stylecop warnings in the test project
6 years ago
James Jackson-South
c24b364be1
Merge namespaces
6 years ago
Brian Popow
50bacca782
Add GetBT709Luminance with vector test
6 years ago
Anton Firszov
53bb11a236
expose ParallelExecutionSettings and ParallelHelper, fix MaxDegreeOfParallelism
6 years ago
Anton Firszov
d758d49f1f
expose limited Buffer2D internals, smplify API surface
6 years ago
Anton Firszov
895d51559a
delete GuardTests
7 years ago
Anton Firszov
cca018dd0c
delete GuardTests
7 years ago
Simon Cropp
bcbd4726a6
use var where apparent ( #972 )
* use var where apparent
* use var where apparent
* should use Rgb24
7 years ago
Simon Cropp
270a073fc6
Cleanup ( #965 )
* redundant ()
* redundant stirng interpolation
* use method groups
* redundant unsafe
* redundant qualifiers
* redundant ()
* redundant init
* redundant init
* redundant casts
* redundant casts
7 years ago
Simon Cropp
2c04d6b036
redundant usings ( #960 )
7 years ago
Anthony Truskinger
764a73b631
Now throws a better excpetion DrawImage source does not overlap target ( #877 )
* No longer throws when DrawImage source does not overlap target
Previously, when DrawImage was used to overlay an image, in cases where the source image did not overlap the target image, a very confusing error was reported: "System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values.
Parameter name: MaxDegreeOfParallelism"
Now, when this case happens, the DrawImage method will simply not affect the target image, which is the same way FillRegionProcessor handles such cases.
ParallelHelper.IterRows also now does more validation of the input rectangle so that any further cases of this kind of problem throw a more relvant exception. Note I switched from DebugGuard to Guard because IterRows is a public API and thus should always validate its inputs.
Fixes #875
* Refines DrawImage non-overlap error logic
Adresses PR feedback in #877 .
Changes DrawImage shortcut to be less than or equal to. Also changes maxX calculation to use `Right` over `Width`. This is a semantic change that reflects intention better. No actual change because Top,Left for that rectanngle should always be 0,0.
And adds more informative argument names to ParallelHelper.IterRows error message.
* Non-overlapping DrawImage now throws
Adressing PR feedback from #877
DrawImage now throws when the source image does not overlap, with a useful error message.
Also improved the error messages for IterRows (and added validation to the other IterRows method)
* DrawImage overlap test changed to support RELEASE
The tests on the CI server are run in RELEASE which wrap the expected exception with an ImageProcessingException.
* Adress feedback for DrawImage exception
DrawImage throws an ImageProcessor exception which makes it easier to catch.
And reverted IterRows to use Guard helpers
7 years ago
Anton Firszov
398736a09b
moar RowInterval stuff
7 years ago
James Jackson-South
bbb739ba93
Fix Color Filters ( #806 )
* Use Matrix5x4 and fix Hue Filter
* Update test references. Fix #802
* Increase tolerance to handle xplat variance.
* Rename to ColorMatrix
7 years ago
Anton Firszov
a5c5f618b3
TolerantMath: implemented Floor and Ceiling
7 years ago
Anton Firszov
7fcae0351f
introduce TolerantMath
7 years ago
Anton Firszov
4a1091c80a
Adapt Span.CopyTo(...) semantics on color conversion API-s
7 years ago
Anton Firszov
06c561c89a
CLA assistant, please wake up!
7 years ago
Anton Firsov
618139292f
Something's wrong with the status checks
7 years ago
Anton Firszov
813e743abc
drop slow Clamp() implementation
7 years ago
Anton Firszov
9b0ee6fb2a
minimize ceremonial overhead
in BulkConvertByteToNormalizedFloat() and BulkConvertNormalizedFloatToByteClampOverflows()
7 years ago
Anton Firszov
8793880447
FallbackIntrinsics128 + ImageMaths.Modulo* implementations
7 years ago
James Jackson-South
400a3cbe89
Refactor Vector4Utils and ConvolutionProcessors utilizing them.
7 years ago
James Jackson-South
b0b2d55cbb
Move compaing classes and migrate vector code to srgbcompaning
7 years ago
James Jackson-South
01a6d8b285
Unify sRGB companding
7 years ago
Anton Firszov
75ec80a803
better separation + optimized row processing
7 years ago
Anton Firszov
08ebbf5ab7
separate PreMultiply from Convonution for rows
7 years ago
Anton Firszov
48f8815f5e
add bulk Premultiply
7 years ago
Anton Firszov
e84cdbafcc
tests for LCM & GCD
7 years ago
Anton Firszov
0def050866
fixed ParallelHelper + improved tests
7 years ago
Anton Firszov
9e51f4b002
DetectEdgesTest.DetectEdges_InBox issue isolated in a failing test for ParallelHelper.IterateRows()
7 years ago