Olaf
Overly Lightweight Acoustic Fingerprinting
Loading...
Searching...
No Matches
olaf_max_filter_lemire.c File Reference

Lemire Max filter implementation. More...

#include <stdbool.h>
#include "olaf_max_filter.h"
#include "olaf_deque.h"

Functions

void olaf_lemire_max_filter (float *array, size_t array_size, size_t filter_width, float *maxvalues)
 Apply a Lemire max filter to an array.
void olaf_max_filter_naive (float *array, size_t array_size, size_t filter_width, float *maxvalues)
 A naive max filter implementation for reference.
void olaf_max_filter (float *array, size_t array_size, size_t filter_width, float *maxvalues)
 An other, preferably faster, implementation.

Detailed Description

Lemire Max filter implementation.

See https://github.com/lemire/runningmaxmin/blob/master/runningmaxmin.h, Available under LGPL.

Daniel Lemire, Streaming Maximum-Minimum Filter Using No More than Three Comparisons per Element. Nordic Journal of Computing, 13 (4), pages 328-339, 2006.

Function Documentation

◆ olaf_lemire_max_filter()

void olaf_lemire_max_filter ( float * array,
size_t array_size,
size_t filter_width,
float * maxvalues )

Apply a Lemire max filter to an array.

Parameters
arrayThe input array of float values.
array_sizeThe number of elements in the array.
filter_widthThe width of the max filter window.
maxvaluesThe output array for filtered max values.

◆ olaf_max_filter()

void olaf_max_filter ( float * array,
size_t array_size,
size_t filter_width,
float * maxvalues )

An other, preferably faster, implementation.

Parameters
arrayThe array.
[in]array_sizeThe array size.
[in]filter_widthThe filter width.
maxvaluesThe array of values to filter.

◆ olaf_max_filter_naive()

void olaf_max_filter_naive ( float * array,
size_t array_size,
size_t filter_width,
float * maxvalues )

A naive max filter implementation for reference.

Parameters
arrayThe array.
[in]array_sizeThe array size.
[in]filter_widthThe max filter width.
maxvaluesThe array of values to filter.