我需要对图像中的所有像素执行幂指数运算。这是一个非常繁重的过程。 指数是常数(浮点),底数是uint32_t(乘以2 uint16_t的结果) 我正在尝试确定是否可以编写LUT,以便只需要查找为ech像素计算它们的值。
现在我正在这样做:powf((exposure * color),invGamma)
太慢了
我已经基于uint8_t解决了这个问题,但是具有2 ^ 32个元素的LUT太大了。
我使用uint8_t:
void colorCorrection::vidGammaLUT()
{
for (uint16_t u16Count = 0; u16Count < 256; u16Count++)
{
m_au8GammaRgbLUT[u16Count] = u8clamp(static_cast<int32_t>(255.0f * pow(u16Count/255.0f,m_settings.GammaRgb)));
}
}