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)
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)
Sean Barrett
cd1fbacbb6
rename NEAREST to BOX
...
write test for BOX
ago%!(EXTRA string=11 years)
Jorge Rodriguez
38ce5494bc
Clarify some comments. Make stbir__resize_arbitrary an internal function. Update test cases to use actual API functions.
ago%!(EXTRA string=11 years)
Sean Barrett
41555b5d53
update test cases to work on things other than barbara.png
ago%!(EXTRA string=11 years)
Jorge Rodriguez
fb059fcece
Progress report.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
75bdd2da83
Fix malloc context and whitespace.
ago%!(EXTRA string=11 years)
Sean Barrett
952c26e626
inline stbir__encode_pixel into stbir__encode_scanline
ago%!(EXTRA string=11 years)
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)
ago%!(EXTRA string=11 years)
Sean Barrett
24c540e1b0
rename alpha gamma flag
ago%!(EXTRA string=11 years)
Sean Barrett
07c35180f7
tweak new API
ago%!(EXTRA string=11 years)
Sean Barrett
84520de6c4
finish STBI_EDGE_ZERO, untested
ago%!(EXTRA string=11 years)
Sean Barrett
9a1d34843e
STBIR_EDGE_ZERO
ago%!(EXTRA string=11 years)
Sean Barrett
732fec68ee
tweak new API, get it partly working
ago%!(EXTRA string=11 years)
Sean Barrett
664d8961f5
new API partially in-use
ago%!(EXTRA string=11 years)
Sean Barrett
bbd4e2ee9a
new API "finished" but untested
ago%!(EXTRA string=11 years)
Sean Barrett
1bd9770e75
separate filter for horizontal and vertical
ago%!(EXTRA string=11 years)
Sean Barrett
c1b876768e
in progress new API
ago%!(EXTRA string=11 years)
Sean Barrett
5dfa79fb31
stride doesn't have to be multiples of pixels
ago%!(EXTRA string=11 years)
Sean Barrett
32b626859d
remove most per-pixel switches, beginnings of removing encode_pixel switch
ago%!(EXTRA string=11 years)
Sean Barrett
5eb0236d9d
reverse default behavior of linear/gamma for alpha
ago%!(EXTRA string=11 years)
Sean Barrett
b9bb05b81c
minor cleanups
ago%!(EXTRA string=11 years)
Sean Barrett
6ef563d089
rename to stb_image_resize.h
ago%!(EXTRA string=11 years)