mirror of
https://github.com/f4exb/sdrangel.git
synced 2025-05-29 05:22:25 -04:00
Benchmarking: added inf/sup decimators test
This commit is contained in:
parent
1c354dba4d
commit
c3242d618f
@ -77,7 +77,7 @@ bool NFMDemodGUI::handleMessage(const Message& message)
|
||||
{
|
||||
if (NFMDemod::MsgReportCTCSSFreq::match(message))
|
||||
{
|
||||
qDebug("NFMDemodGUI::handleMessage: NFMDemod::MsgReportCTCSSFreq");
|
||||
//qDebug("NFMDemodGUI::handleMessage: NFMDemod::MsgReportCTCSSFreq");
|
||||
NFMDemod::MsgReportCTCSSFreq& report = (NFMDemod::MsgReportCTCSSFreq&) message;
|
||||
setCtcssFreq(report.getFrequency());
|
||||
//qDebug("NFMDemodGUI::handleMessage: MsgReportCTCSSFreq: %f", report.getFrequency());
|
||||
|
@ -9,7 +9,7 @@
|
||||
|
||||
const PluginDescriptor NFMPlugin::m_pluginDescriptor = {
|
||||
QString("NFM Demodulator"),
|
||||
QString("3.14.5"),
|
||||
QString("3.14.6"),
|
||||
QString("(c) Edouard Griffiths, F4EXB"),
|
||||
QString("https://github.com/f4exb/sdrangel"),
|
||||
true,
|
||||
|
@ -49,6 +49,10 @@ void MainBench::run()
|
||||
|
||||
if (m_parser.getTestType() == ParserBench::TestDecimatorsII) {
|
||||
testDecimateII();
|
||||
} else if (m_parser.getTestType() == ParserBench::TestDecimatorsInfII) {
|
||||
testDecimateII(ParserBench::TestDecimatorsInfII);
|
||||
} else if (m_parser.getTestType() == ParserBench::TestDecimatorsSupII) {
|
||||
testDecimateII(ParserBench::TestDecimatorsSupII);
|
||||
} else if (m_parser.getTestType() == ParserBench::TestDecimatorsIF) {
|
||||
testDecimateIF();
|
||||
} else if (m_parser.getTestType() == ParserBench::TestDecimatorsFI) {
|
||||
@ -62,7 +66,7 @@ void MainBench::run()
|
||||
emit finished();
|
||||
}
|
||||
|
||||
void MainBench::testDecimateII()
|
||||
void MainBench::testDecimateII(ParserBench::TestType testType)
|
||||
{
|
||||
QElapsedTimer timer;
|
||||
qint64 nsecs = 0;
|
||||
@ -78,9 +82,25 @@ void MainBench::testDecimateII()
|
||||
|
||||
for (uint32_t i = 0; i < m_parser.getRepetition(); i++)
|
||||
{
|
||||
switch (testType)
|
||||
{
|
||||
case ParserBench::TestDecimatorsInfII:
|
||||
timer.start();
|
||||
decimateInfII(buf, m_parser.getNbSamples()*2);
|
||||
nsecs += timer.nsecsElapsed();
|
||||
break;
|
||||
case ParserBench::TestDecimatorsSupII:
|
||||
timer.start();
|
||||
decimateSupII(buf, m_parser.getNbSamples()*2);
|
||||
nsecs += timer.nsecsElapsed();
|
||||
break;
|
||||
case ParserBench::TestDecimatorsII:
|
||||
default:
|
||||
timer.start();
|
||||
decimateII(buf, m_parser.getNbSamples()*2);
|
||||
nsecs += timer.nsecsElapsed();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
printResults("MainBench::testDecimateII", nsecs);
|
||||
@ -202,6 +222,70 @@ void MainBench::decimateII(const qint16* buf, int len)
|
||||
}
|
||||
}
|
||||
|
||||
void MainBench::decimateInfII(const qint16* buf, int len)
|
||||
{
|
||||
SampleVector::iterator it = m_convertBuffer.begin();
|
||||
|
||||
switch (m_parser.getLog2Factor())
|
||||
{
|
||||
case 0:
|
||||
m_decimatorsII.decimate1(&it, buf, len);
|
||||
break;
|
||||
case 1:
|
||||
m_decimatorsII.decimate2_inf(&it, buf, len);
|
||||
break;
|
||||
case 2:
|
||||
m_decimatorsII.decimate4_inf(&it, buf, len);
|
||||
break;
|
||||
case 3:
|
||||
m_decimatorsII.decimate8_inf(&it, buf, len);
|
||||
break;
|
||||
case 4:
|
||||
m_decimatorsII.decimate16_inf(&it, buf, len);
|
||||
break;
|
||||
case 5:
|
||||
m_decimatorsII.decimate32_inf(&it, buf, len);
|
||||
break;
|
||||
case 6:
|
||||
m_decimatorsII.decimate64_inf(&it, buf, len);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void MainBench::decimateSupII(const qint16* buf, int len)
|
||||
{
|
||||
SampleVector::iterator it = m_convertBuffer.begin();
|
||||
|
||||
switch (m_parser.getLog2Factor())
|
||||
{
|
||||
case 0:
|
||||
m_decimatorsII.decimate1(&it, buf, len);
|
||||
break;
|
||||
case 1:
|
||||
m_decimatorsII.decimate2_sup(&it, buf, len);
|
||||
break;
|
||||
case 2:
|
||||
m_decimatorsII.decimate4_sup(&it, buf, len);
|
||||
break;
|
||||
case 3:
|
||||
m_decimatorsII.decimate8_sup(&it, buf, len);
|
||||
break;
|
||||
case 4:
|
||||
m_decimatorsII.decimate16_sup(&it, buf, len);
|
||||
break;
|
||||
case 5:
|
||||
m_decimatorsII.decimate32_sup(&it, buf, len);
|
||||
break;
|
||||
case 6:
|
||||
m_decimatorsII.decimate64_sup(&it, buf, len);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void MainBench::decimateIF(const qint16* buf, int len)
|
||||
{
|
||||
FSampleVector::iterator it = m_convertBufferF.begin();
|
||||
|
@ -47,11 +47,13 @@ signals:
|
||||
void finished();
|
||||
|
||||
private:
|
||||
void testDecimateII();
|
||||
void testDecimateII(ParserBench::TestType testType = ParserBench::TestDecimatorsII);
|
||||
void testDecimateIF();
|
||||
void testDecimateFI();
|
||||
void testDecimateFF();
|
||||
void decimateII(const qint16 *buf, int len);
|
||||
void decimateInfII(const qint16 *buf, int len);
|
||||
void decimateSupII(const qint16 *buf, int len);
|
||||
void decimateIF(const qint16 *buf, int len);
|
||||
void decimateFI(const float *buf, int len);
|
||||
void decimateFF(const float *buf, int len);
|
||||
|
@ -118,8 +118,12 @@ ParserBench::TestType ParserBench::getTestType() const
|
||||
return TestDecimatorsFI;
|
||||
} else if (m_testStr == "decimateff") {
|
||||
return TestDecimatorsFF;
|
||||
}else if (m_testStr == "decimateif") {
|
||||
} else if (m_testStr == "decimateif") {
|
||||
return TestDecimatorsIF;
|
||||
} else if (m_testStr == "decimateinfii") {
|
||||
return TestDecimatorsInfII;
|
||||
} else if (m_testStr == "decimatesupii") {
|
||||
return TestDecimatorsSupII;
|
||||
} else {
|
||||
return TestDecimatorsII;
|
||||
}
|
||||
|
@ -29,7 +29,9 @@ public:
|
||||
TestDecimatorsII,
|
||||
TestDecimatorsIF,
|
||||
TestDecimatorsFI,
|
||||
TestDecimatorsFF
|
||||
TestDecimatorsFF,
|
||||
TestDecimatorsInfII,
|
||||
TestDecimatorsSupII
|
||||
} TestType;
|
||||
|
||||
ParserBench();
|
||||
|
Loading…
x
Reference in New Issue
Block a user