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);
...
remove extra table in slowpath
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;
...
reformat docs;
new simple uint32 test
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;
...
get rid of stbir__inline for some functions that don't need it
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?!?
...
unroll inner loop in horizontal_resample
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;
...
tweak filter type documentation
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;
...
rename STBIR_FLAG_PREMULTIPLED_ALPHA to STBIR_FLAG_ALPHA_PREMULTIPLIED so that both flags have "ALPHA" first
ago%!(EXTRA string=11 years)
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
ago%!(EXTRA string=11 years)
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!;
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.
...
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.
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)