view src/FeatureDownsample.h @ 36:13276c5113be

Top & tail downsampled output
author Chris Cannam
date Thu, 01 Oct 2015 09:28:38 +0100
parents 474f45cfd3fd
children 47d5321a57c2
line wrap: on
line source
/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */

#ifndef FEATURE_DOWNSAMPLE_H
#define FEATURE_DOWNSAMPLE_H

#include <vector>

#include "Types.h"

//!!! doc: class maintains state

class Filter;

class FeatureDownsample
{
public:
    struct Parameters {
	int featureSize;
	int downsampleFactor;
	int windowLength;
	Parameters() :
	    featureSize(1),
	    downsampleFactor(10),
	    windowLength(41)
	{ }
    };

    FeatureDownsample(Parameters params);
    ~FeatureDownsample();

    void reset();
    RealBlock process(const RealBlock &in);
    RealBlock getRemainingOutput();
    
private:
    Parameters m_params;
    std::vector<Filter *> m_filters;
    int m_toDrop;
    int m_toNext;
    int m_inCount;
    int m_outCount;
};

#endif