75 Commits (aa89970d6be59d6cc0f18f49f392b3f58f145c7d)

Author SHA1 Message Date
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)
Jorge Rodriguez e6c47ec657 Fix kernel lookup for downsampling. ago%!(EXTRA string=11 years)
Sean Barrett 7da729bfce restore correct definition of box ago%!(EXTRA string=11 years)