77 Commits (ee6978cb6891632e3fe84264f832140e590b43f0)

Author SHA1 Message Date
Craig Donner ee6978cb68 Slightly modify the public domain license to keep it in the public domain, but make it clear that even when dedications might not be recognized that the code is still usable. Given that this isn't dual-licensing under a different license, I'm hoping this will be acceptable. ago%!(EXTRA string=9 years)
Ryan Whitworth 1d48782e1d Added public domain license text ago%!(EXTRA string=10 years)
nothings 891f6d7720 Removing bitpacking warning for srgb conversion ago%!(EXTRA string=11 years)
Sean Barrett 7c0ae19a42 documentation, release data ago%!(EXTRA string=11 years)
Sean Barrett 0fc13e997b optimization attempts, no meaningful changes ago%!(EXTRA string=11 years)
Sean Barrett 8024673461 switch srgb convert to second ryg method, which is a bit faster (8% total speedup on upsampling test); ago%!(EXTRA string=11 years)
Jorge Rodriguez a12d3dedf0 Some todo notes. ago%!(EXTRA string=11 years)
Jorge Rodriguez cbf5ebbd35 Install ryg's float -> uint8 sRGB conversion code, which is much faster. ago%!(EXTRA string=11 years)
Jorge Rodriguez 600d80387e Make a guess at the value before doing the binary search, cuts the number of conditionals by half. Not as much gain as I hoped but something. ago%!(EXTRA string=11 years)
Jorge Rodriguez 7602c99e77 Quick formatting fix. ago%!(EXTRA string=11 years)
Sean Barrett dd28033b34 don't encode alpha channel twice when alpha is different colorspace from other channels ago%!(EXTRA string=11 years)
Sean Barrett bdbf1e0ef4 uint32 images need to round with uint32 cast, not int cast ago%!(EXTRA string=11 years)
Sean Barrett 9f66b441bd new quickstart docs; ago%!(EXTRA string=11 years)
Jorge Rodriguez 3c261481a6 Add a very quick guide. ago%!(EXTRA string=11 years)
Sean Barrett 385d7a417c delete some unused functions; ago%!(EXTRA string=11 years)
Sean Barrett 8849501a3f add documentation explaining why even a 64K table for srgb_to_uint8 would be inaccurate ago%!(EXTRA string=11 years)
Sean Barrett 9a6af9a8d3 replace int(floor()) with int(), since that produces same results for non-negative values and is much faster on 32-bit x86 ago%!(EXTRA string=11 years)
Sean Barrett adbbe8dabd move x loop inside switch in horizontal_downsample ago%!(EXTRA string=11 years)
Sean Barrett 7a8c9196d1 unroll vertical_upsample inner loop, and reverse loop nesting to minimize work ago%!(EXTRA string=11 years)
Sean Barrett 9c2ae9bdb8 cache filter-width derived computations that use floor/ceil because those were showing up like crazy on VC6 profile despite only being per-scanline-ish?!? ago%!(EXTRA string=11 years)
Sean Barrett c9600c012f unroll channel loops in downsampler ago%!(EXTRA string=11 years)
Sean Barrett 3ee97c221f compile as C ago%!(EXTRA string=11 years)
Sean Barrett 59898db411 tweak grammar ago%!(EXTRA string=11 years)
Sean Barrett a2f1cadde8 convert tabs to spaces so it's consistent with other stb libs ago%!(EXTRA string=11 years)
Sean Barrett 0fa5b5c66f rename cubic to cubicbspline; ago%!(EXTRA string=11 years)
Sean Barrett 29b36b3dea rename filters, document them ago%!(EXTRA string=11 years)
Sean Barrett a9778b8dbd tweak docs; fix compile error in UNUSED_PARAM stuff ago%!(EXTRA string=11 years)
Sean Barrett df128b7995 update STBIR__UNUSED_PARAM to match stb_image.h version ago%!(EXTRA string=11 years)
Jorge Rodriguez ca88b6fba6 Calculate and store vertical contributors first so that they can be normalized and optimized. ago%!(EXTRA string=11 years)
Jorge Rodriguez 36b417f6b4 Optimizations: Skip zero-coefficient contributions. Reduce the size of the coefficients array when downsampling. ago%!(EXTRA string=11 years)
Sean Barrett 27f26f8337 Documentation; ago%!(EXTRA string=11 years)
Sean Barrett 16d68d14f8 fix stbir__linear_to_srgb_uchar: ago%!(EXTRA string=11 years)
Sean Barrett 30c7a981ec compile as C; ago%!(EXTRA string=11 years)
Jorge Rodriguez 793818d1af Skip zero-coefficient contributors, a fairly decent speedup. ago%!(EXTRA string=11 years)
Jorge Rodriguez 46dc8f84fb Use vertical pixel width for the ring buffer. ago%!(EXTRA string=11 years)
Jorge Rodriguez 953a637841 Use a carefully shaped trapezoid instead of a box filter to avoid jumps between pixel values. ago%!(EXTRA string=11 years)
Jorge Rodriguez 6922628106 Use an even smaller epsilon. Allow the user to avoid the epsilon business if they want to preserve their alpha values. ago%!(EXTRA string=11 years)
Jorge Rodriguez c9d67446d2 Reverse allocation routines parameter order so that the context is at the back. ago%!(EXTRA string=11 years)
Jorge Rodriguez 17b931047c Add the epsilon value into the alpha instead of using an if statement. It's a tiny bit faster and it can be removed afterwards. ago%!(EXTRA string=11 years)
Jorge Rodriguez 1d5c902e2e These minor optimizations were probably already done by the compiler but they can't hurt. ago%!(EXTRA string=11 years)
Jorge Rodriguez 41e6aad693 Avoid repeated adds and ensure correct round-trip result. ago%!(EXTRA string=11 years)
Jorge Rodriguez f2102d906f Use the info structure to keep track of our memory block sizes to reduce duplicated code and cut down on errors. ago%!(EXTRA string=11 years)
Jorge Rodriguez 969ff7c850 Make sure calculate_memory matches with the allocations. Fix some errant asserts. ago%!(EXTRA string=11 years)
Jorge Rodriguez 8355ea1184 Use height, not width, for correct progress report. ago%!(EXTRA string=11 years)
Jorge Rodriguez 4b69c0637e If alpha is zero then sneakily replace it with a very small nonzero so that the color data is preserved. ago%!(EXTRA string=11 years)
Jorge Rodriguez d510d70b6a Report downsample progress by when we empty the ring buffer, it's more accurate that way. ago%!(EXTRA string=11 years)
Jorge Rodriguez 497eab8339 Normalize downsample coefficients. ago%!(EXTRA string=11 years)
Jorge Rodriguez 43fbc1d5e3 Rearrange the algebra on two of the filters to avoid repeating decimals which cause precision loss. Use int32 to test filters because it's more accurate. ago%!(EXTRA string=11 years)
Jorge Rodriguez ca241daefa Use rounding to try to preserve the original value. Fix test case. ago%!(EXTRA string=11 years)
Jorge Rodriguez 145690788c Use input_h + pixel_margin * 2 to prevent progress report from ever going above 1. Always report a 0 before and a 1 at the end of each resize. ago%!(EXTRA string=11 years)