Add catmull rom filter. Also, move the debug asserts for values <= 1 to the very end of the process. This will make these bugs a lot harder to find, but because some filter kernels have negative values it's possible for the buffers to have values > 1 up until the point where it's converted back to an int.
Add mitchell filter.
Put the polynomials in horner form to save a multiplication.
Add edge reflect mode.
Add wrap, fix reflect so it doesn't wrap.
In some situations with certain filter kernels with negative values it's possible to generate valid results > 1.0, so saturate it before we write it to make sure it doesn't overflow. Also fix incorrect filter radius while downsampling.
Support for sRGB color space.
Support for 16 and 32 bit integer images, and float images.