ermig1979 / Simd

C++ image processing and machine learning library with using of SIMD: SSE, AVX, AVX-512, AMX for x86/x64, VMX(Altivec) and VSX(Power7) for PowerPC, NEON for ARM.
http://ermig1979.github.io/Simd
MIT License
2.04k stars 407 forks source link

Affine Image Transformation #170

Closed olokobayusuf closed 1 year ago

olokobayusuf commented 3 years ago

Hey @ermig1979 , following from our convo I'm opening this issue for implementing a generalized affine image transformation API. This function will be capable of expressing an entire family of geometric image transformations. The downside is that it would typically result in unordered memory accesses, and might not be trivially parallelizable. I'll update this issue with a proposal API, and will create a fork with a simple (un-parallelized) C/C++ implementation. Looking forward to what we can do on this!

ermig1979 commented 3 years ago

Ok. I'm waiting for API and scalar implementation.

ermig1979 commented 1 year ago

I added function Simd::WarpAffine.

olokobayusuf commented 1 year ago

@ermig1979 thanks for this. We ended up going with a very naive implementation, and turns out clang did a good job at auto-vectorizing with -O3. I'm looking forward to profiling your implementation. I truly cannot thank you enough for this project; we're massive fans at NatML.