log2 approximation. A slight bit faster than std::log. */
| 5268 | |
| 5269 | /* log2 approximation. A slight bit faster than std::log. */ |
| 5270 | static float flog2(float f) |
| 5271 | { |
| 5272 | float result = 0; |
| 5273 | while(f > 32) { result += 4; f /= 16; } |
| 5274 | while(f > 2) { ++result; f /= 2; } |
| 5275 | return result + 1.442695f * (f * f * f / 3 - 3 * f * f / 2 + 3 * f - 1.83333f); |
| 5276 | } |
| 5277 | |
| 5278 | static unsigned filter(unsigned char* out, const unsigned char* in, unsigned w, unsigned h, |
| 5279 | const LodePNGColorMode* info, const LodePNGEncoderSettings* settings) |