我有一些在 GPU 上执行 IDCT 的代码。我注意到在 gpu 上生成 IDCT 矩阵似乎更快,而不是预先计算转换矩阵并将其放入常量内存中。
问题是生成 IDCT 矩阵的代码有一个不适合 GPU 的分支。
我想知道是否有任何替代方法可以在 GPU 上生成更快的 IDCT 矩阵?
// Old way
// local_idct[x][y] = idct[x][y]; // read from precalculated matrix in constant memory
// New way
local_idct[x][y] = cos((x+x+1)*y * (PI/16.0f)) * 0.5f * (y == 0 ? rsqrt(2.0f) : 1);