log2 approximation. A slight bit faster than std::log. */
| 5070 | |
| 5071 | /* log2 approximation. A slight bit faster than std::log. */ |
| 5072 | static float flog2(float f) |
| 5073 | { |
| 5074 | float result = 0; |
| 5075 | while(f > 32) { result += 4; f /= 16; } |
| 5076 | while(f > 2) { result++; f /= 2; } |
| 5077 | return result + 1.442695f * (f * f * f / 3 - 3 * f * f / 2 + 3 * f - 1.83333f); |
| 5078 | } |
| 5079 | |
| 5080 | static unsigned filter(unsigned char* out, const unsigned char* in, unsigned w, unsigned h, |
| 5081 | const LodePNGColorMode* info, const LodePNGEncoderSettings* settings) |