DECL(int) res_Resample(const RES_HWORD X[], RES_HWORD Y[], double pFactor,
RES_UHWORD nx, RES_BOOL LargeF, RES_BOOL Interp)
{
if (pFactor >= 1) {
if (LargeF)
return SrcUp(X, Y, pFactor, nx,
LARGE_FILTER_NWING, LARGE_FILTER_SCALE,
LARGE_FILTER_IMP, LARGE_FILTER_IMPD, Interp);
else
return SrcUp(X, Y, pFactor, nx,
SMALL_FILTER_NWING, SMALL_FILTER_SCALE,
SMALL_FILTER_IMP, SMALL_FILTER_IMPD, Interp);
} else {
if (LargeF)
return SrcUD(X, Y, pFactor, nx,
LARGE_FILTER_NWING, LARGE_FILTER_SCALE * pFactor + 0.5,
LARGE_FILTER_IMP, LARGE_FILTER_IMPD, Interp);
else
return SrcUD(X, Y, pFactor, nx,
SMALL_FILTER_NWING, SMALL_FILTER_SCALE * pFactor + 0.5,
SMALL_FILTER_IMP, SMALL_FILTER_IMPD, Interp);
}
}
Надо на базе этого ресэмплера используя large filter нагрузить систему: в одном потоке идёт эта сложная математика, во втором потоке идёт интенсивное чтение данных из памяти. Первый тест: XIP(flexpsi) + SDRAM(внешний), второй тест SDRAM(код - первая половина),SDRAM(данные - вторая половина)