annotate src/CRP.cpp @ 60:1ea2aed23d4a tip

Fix version
author Chris Cannam
date Thu, 13 Feb 2020 13:37:36 +0000
parents 6ca3c80e1f43
children
rev   line source
Chris@19 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
Chris@19 2
Chris@42 3 /*
Chris@42 4 Tipic
Chris@42 5
Chris@42 6 Centre for Digital Music, Queen Mary, University of London.
Chris@42 7
Chris@42 8 This program is free software; you can redistribute it and/or
Chris@42 9 modify it under the terms of the GNU General Public License as
Chris@42 10 published by the Free Software Foundation; either version 2 of the
Chris@42 11 License, or (at your option) any later version. See the file
Chris@42 12 COPYING included with this distribution for more information.
Chris@42 13 */
Chris@42 14
Chris@19 15 #include "CRP.h"
Chris@19 16
Chris@42 17 #include "maths/MathUtilities.h"
Chris@24 18 #include "LogCompress.h"
Chris@24 19 #include "OctaveFold.h"
Chris@26 20 #include "Resize.h"
Chris@19 21
Chris@19 22 #include <cmath>
Chris@19 23 #include <iostream>
Chris@19 24
Chris@19 25 using namespace std;
Chris@19 26
Chris@26 27 CRP::CRP(Parameters params) :
Chris@26 28 m_params(params),
Chris@26 29 m_dctReduce(120, params.coefficientsToDrop)
Chris@26 30 {}
Chris@26 31
Chris@19 32 CRP::~CRP()
Chris@26 33 {}
Chris@19 34
Chris@19 35 RealBlock
Chris@19 36 CRP::process(const RealBlock &in)
Chris@19 37 {
Chris@19 38 if (in.empty()) {
Chris@19 39 return in;
Chris@19 40 }
Chris@25 41
Chris@19 42 RealBlock out;
Chris@22 43
Chris@19 44 for (RealColumn col: in) {
Chris@58 45 out.push_back(process(col));
Chris@58 46 }
Chris@19 47
Chris@19 48 return out;
Chris@19 49 }
Chris@19 50
Chris@58 51 RealColumn
Chris@58 52 CRP::process(RealColumn col)
Chris@58 53 {
Chris@58 54 if (m_params.applyLogCompression) {
Chris@58 55 col = LogCompress::process
Chris@58 56 (col, m_params.logFactor, m_params.logAddTerm);
Chris@58 57 }
Chris@58 58
Chris@58 59 return MathUtilities::normaliseLp
Chris@58 60 (OctaveFold::process
Chris@58 61 (m_dctReduce.process
Chris@58 62 (Resize::process(col))),
Chris@58 63 m_params.normP, m_params.normThresh);
Chris@58 64 }
Chris@58 65