log2 approximation. A slight bit faster than std::log. */
| 5193 | |
| 5194 | /* log2 approximation. A slight bit faster than std::log. */ |
| 5195 | static float flog2(float f) |
| 5196 | { |
| 5197 | float result = 0; |
| 5198 | while(f > 32) { result += 4; f /= 16; } |
| 5199 | while(f > 2) { ++result; f /= 2; } |
| 5200 | return result + 1.442695f * (f * f * f / 3 - 3 * f * f / 2 + 3 * f - 1.83333f); |
| 5201 | } |
| 5202 | |
| 5203 | static unsigned filter(unsigned char* out, const unsigned char* in, unsigned w, unsigned h, |
| 5204 | const LodePNGColorMode* info, const LodePNGEncoderSettings* settings) |