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 3D filters #22

Open
wants to merge 21 commits into
base: main
Choose a base branch
from
Open

Add 3D filters #22

wants to merge 21 commits into from

Conversation

emilmelnikov
Copy link
Member

Support 3D inputs for filters.

Also change interface, and a lot of internal implementation details.

Now filters are computed separately.

std::size_t tends to play better with various C++ containers.

An explicit float type should be enough (we'll need to create
separate library symbols for other types anyway).
Also, remove LIKELY/UNLIKELY macro: they are unused, and available
in Highway if needed.
Inside-out dimension order is more convenient to work with:
2D could be processed as 3D with the Z dimension set to 1.
On Linux, it seems position-independent code is required.
Also skip tests that require fastfilters v1 if it is not available.
* Reorganize a lot of things
* Add `window_ratio` parameter
* Add compatibility module with v1
* Add type annotations
* Simplify tests by parametrizing over filter type
* Release GIL before calling into filter implementations
* Use floor(x + 0.5) instead of round(x) as in fastfilters v1
* Remove unused imports
* Use unaligned loads/stores everywhere
* Return channels as the outermost dimension in compat module
GIL should be acquired back just after the core kernel returns.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant