Commit Graph

79 Commits

Author SHA1 Message Date
Sean Barrett 0fc13e997b optimization attempts, no meaningful changes 2014-09-17 06:24:40 -07:00
Jorge Rodriguez cbf5ebbd35 Install ryg's float -> uint8 sRGB conversion code, which is much faster. 2014-09-16 10:36:19 -07:00
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. 2014-09-15 14:01:11 -07:00
Sean Barrett dd28033b34 don't encode alpha channel twice when alpha is different colorspace from other channels 2014-09-15 07:23:22 -07:00
Sean Barrett 9f66b441bd new quickstart docs;
reformat docs;
new simple uint32 test
2014-09-14 14:55:23 -07:00
Jorge Rodriguez f0ba7f5f7e Get rid of old perf tests. 2014-09-13 13:42:50 -07:00
Sean Barrett f711fdcb0f disable performance test in test code, back to regression test path 2014-09-13 08:22:15 -07:00
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 2014-09-13 08:12:37 -07:00
Sean Barrett 1dcca19ae0 because of we divide by /255 not /256, we lose numerical precision, so can't guarantee that box filter results round to same results as naive 2014-09-13 08:06:39 -07:00
Sean Barrett 972456cb63 explicit performance tests variants 2014-09-13 06:53:53 -07:00
Sean Barrett c9600c012f unroll channel loops in downsampler 2014-09-13 06:23:07 -07:00
Sean Barrett 0fa5b5c66f rename cubic to cubicbspline;
tweak filter type documentation
2014-09-13 05:52:19 -07:00
Sean Barrett 29b36b3dea rename filters, document them 2014-09-12 05:28:24 -07:00
Sean Barrett da2aa8f6b7 checkboard test to verify srgb 2014-09-12 05:04:38 -07:00
Sean Barrett a9778b8dbd tweak docs; fix compile error in UNUSED_PARAM stuff 2014-09-12 04:46:41 -07:00
Sean Barrett 7a4f1f4665 update with new tests for srgb conversion 2014-09-11 02:10:37 -07:00
Sean Barrett 16d68d14f8 fix stbir__linear_to_srgb_uchar:
1. table stored threshhold of transition from i to i+1, but wants to be i-1 to i
    2. table was computed by dividing uchar by 256.0 instead of 255.0, causing it to be 100% wrong
2014-09-11 02:05:53 -07:00
Sean Barrett 30c7a981ec compile as C;
fix some unsigned/signed comparisons;
avoid round() since it's not in pre-C99 C;
remove MAX_CHANNELS since I never ended up needing it;
rename STBIR_EPSILON to STBIR_ALPHA_EPSILON;
don't use STBIR_ALPHA_EPSILON on float input (can't remove it properly due to numeric precision, and they can do it themselves);
optimize subtraction of STBIR_ALPHA_EPSILON;
sorry i forgot to commit these separately!;
2014-09-11 01:47:50 -07:00
Sean Barrett 1208730e1e Merge branch 'resample' of http://github.com/bsvino/stb into resample 2014-09-11 01:15:09 -07:00
Jorge Rodriguez 953a637841 Use a carefully shaped trapezoid instead of a box filter to avoid jumps between pixel values. 2014-09-10 19:08:11 -07:00
Sean Barrett 4e580cf9ed fix compile 2014-09-10 15:11:35 -07:00
Jorge Rodriguez c9d67446d2 Reverse allocation routines parameter order so that the context is at the back. 2014-09-09 22:57:15 -07:00
Jorge Rodriguez 41e6aad693 Avoid repeated adds and ensure correct round-trip result. 2014-09-09 21:57:46 -07:00
Jorge Rodriguez 969ff7c850 Make sure calculate_memory matches with the allocations. Fix some errant asserts. 2014-09-09 20:51:29 -07:00
Jorge Rodriguez 4b69c0637e If alpha is zero then sneakily replace it with a very small nonzero so that the color data is preserved.
Pre-process n1 so that we don't have to do it later on. Can't do n0 since it's used to find the coefficient index.
2014-09-09 18:38:05 -07:00
Jorge Rodriguez 084baed15c Replace premul test with better premul test that doesn't require visual inspection. 2014-09-09 16:30:06 -07:00
Jorge Rodriguez 497eab8339 Normalize downsample coefficients. 2014-09-09 15:22:29 -07:00
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. 2014-09-09 14:10:14 -07:00
Jorge Rodriguez ca241daefa Use rounding to try to preserve the original value. Fix test case. 2014-09-09 12:16:23 -07:00
Jorge Rodriguez 118f28557e Tests to ensure images of a solid color stay the same solid color after resampling. 2014-09-07 16:47:02 -07:00
Jorge Rodriguez e6c47ec657 Fix kernel lookup for downsampling. 2014-09-07 12:57:53 -07:00
Jorge Rodriguez 8cc6a3abfc If there's no context we're using the simple API functions - fall back to malloc and free. 2014-09-07 10:02:51 -07:00
Sean Barrett 36db03f390 tighten bounds on filter normalization test 2014-09-07 05:31:40 -07:00
Sean Barrett 7f8ac35e42 check whether filter kernels are normalized 2014-09-07 05:29:43 -07:00
Sean Barrett 7da729bfce restore correct definition of box 2014-09-07 04:07:07 -07:00
Sean Barrett 08ca345839 Merge branch 'resample2' into resample 2014-09-07 03:36:16 -07:00
Sean Barrett cd1fbacbb6 rename NEAREST to BOX
write test for BOX
2014-09-07 03:19:18 -07:00
Jorge Rodriguez 586e84087c Correctly specify alpha channels. 2014-09-06 21:50:28 -07:00
Jorge Rodriguez 38ce5494bc Clarify some comments. Make stbir__resize_arbitrary an internal function. Update test cases to use actual API functions. 2014-09-06 20:17:19 -07:00
Sean Barrett 41555b5d53 update test cases to work on things other than barbara.png 2014-09-06 14:58:32 -07:00
Jorge Rodriguez fb059fcece Progress report. 2014-09-06 10:57:21 -07:00
Jorge Rodriguez 75bdd2da83 Fix malloc context and whitespace. 2014-09-06 08:48:46 -07:00
Sean Barrett aee30095c7 refactor internal interfaces to avoid passing things multiple times;
finish prepping 'stbir__info' even before calculate_memory;
get rid of 'noinfo' functions since now calculate_memory doesn't need 'em;
add new binary-searched sRGB function (untested)
2014-09-01 16:52:04 -07:00
Sean Barrett 732fec68ee tweak new API, get it partly working 2014-08-31 08:55:41 -07:00
Sean Barrett 664d8961f5 new API partially in-use 2014-08-31 08:34:05 -07:00
Sean Barrett 2549d8156e in-progress refactoring 2014-08-31 07:23:34 -07:00
Sean Barrett 6ef563d089 rename to stb_image_resize.h 2014-08-18 09:12:59 -07:00
Sean Barrett eb0781fda0 add comments describing the purpose of the s,t-rectangle tests 2014-08-18 09:01:33 -07:00
Sean Barrett 9ba3dc1fc5 make resample tests work in VC6 2014-08-18 08:56:44 -07:00
Jorge Rodriguez 1353909477 Allow user to force the alpha channel to be handled as a linear value even if the color channels are sRGB. 2014-08-12 13:37:06 -07:00