Commit Graph

362 Commits

Author SHA1 Message Date
Jorge Rodriguez
fb2f8df5cc Add mitchell filter. 2014-07-26 15:06:31 -07:00
Jorge Rodriguez
69af963c42 Add catmull rom filter. Also, move the debug asserts for values <= 1 to the very end of the process. This will make these bugs a lot harder to find, but because some filter kernels have negative values it's possible for the buffers to have values > 1 up until the point where it's converted back to an int. 2014-07-26 14:52:28 -07:00
Jorge Rodriguez
12acf87eec When downsampling start the buffer loop at -filter_texel_margin to make sure that all contributors get their taps in at the ring buffer. 2014-07-26 13:56:23 -07:00
Jorge Rodriguez
155c71fb90 Reorder these loops because I think we get a cache win if we write the entire ring buffer entry at once. 2014-07-26 13:12:48 -07:00
Jorge Rodriguez
01fb58d6b4 Add a bicubic filter. 2014-07-26 13:07:04 -07:00
Jorge Rodriguez
a95da9ee1d Unroll the multiply-add loops. At the cost of a function pointer dereference we get a whole lot of conditionals eliminated. Should be a solid win once the debug asserts are gone. 2014-07-26 12:04:39 -07:00
Jorge Rodriguez
7abd4ccf34 Support for filters with larger support. Initial support for edge behavior. 2014-07-26 11:51:02 -07:00
Jorge Rodriguez
62ff271c7a I put it in the to do list and now I can close my browser tab. 2014-07-25 00:08:23 -07:00
Jorge Rodriguez
81c1ddf110 Keeping a list of suggestions so I don't forget them. 2014-07-25 00:00:40 -07:00
Jorge Rodriguez
27926e78b8 Make consistent tests for whether we're doing upsampling or downsampling of width and height. Don't request memory for horizontal buffer or encode buffer if we don't need it. 2014-07-24 23:50:14 -07:00
Jorge Rodriguez
666c025710 Fix non uniform scaling where out_w < in_w && out_h > in_h. 2014-07-24 23:32:25 -07:00
Jorge Rodriguez
736596ba09 Fix non uniform scaling where out_w > in_w && out_h < in_h. 2014-07-24 23:27:29 -07:00
Jorge Rodriguez
178e301ea4 Fix upsampling, avoid dereferencing in an inner loop. 2014-07-24 22:54:35 -07:00
Jorge Rodriguez
dbb7480f12 Fix nonuniform downsampling. 2014-07-24 22:30:35 -07:00
Jorge Rodriguez
fa69bc8551 Basic downsampling algorithm works for uniform sampling. 2014-07-24 22:09:08 -07:00
Jorge Rodriguez
297266b27b Starting to implement downsampling. 2014-07-24 19:10:45 -07:00
Jorge Rodriguez
7d8faf5727 Remove unused functions. 2014-07-24 15:02:54 -07:00
Jorge Rodriguez
8ac052ac8a Avoid gaps between box filter kernels. 2014-07-24 15:02:39 -07:00
Jorge Rodriguez
9e726bb3e4 The vertical resampling pass. Now all elements of the upscale algorithm are in place. 2014-07-24 14:20:18 -07:00
Jorge Rodriguez
152965f334 Decode enough scanlines into a ring buffer to make sure that we have enough source scanlines to do a vertical sampling. 2014-07-24 01:04:22 -07:00
Jorge Rodriguez
158effb62a More accurate names. Smaller size for contributors memory, more accurate to what's needed. 2014-07-23 23:08:06 -07:00
Jorge Rodriguez
855fb207be Merge remote-tracking branch 'remotes/nothings/master' 2014-07-23 22:24:59 -07:00
Jorge Rodriguez
55c5f0b3a0 Beginning of a more sophisticated resample algorithm, starting with calculating filter contributions per scan line. 2014-07-23 22:17:56 -07:00
Sean Barrett
ee8e926317 even more resampling notes 2014-07-22 12:45:24 -07:00
Sean Barrett
92b08aa98a more resampling notes 2014-07-22 12:39:29 -07:00
Sean Barrett
6f779fb67a whoops imageresampler link 2014-07-22 12:17:43 -07:00
Sean Barrett
9c9a68787d imageresampler library reference 2014-07-22 12:16:11 -07:00
Sean Barrett
3e8a89cad1 more resampler notes 2014-07-22 11:57:46 -07:00
Sean Barrett
c27ccec436 resampler prototypes 2014-07-22 11:37:54 -07:00
Sean Barrett
63cce5c70a created stb_resample_ideas.txt 2014-07-22 10:05:01 -07:00
Jorge Rodriguez
0155bd3ab6 We are going to support SRGB. 2014-07-21 19:51:11 -07:00
Jorge Rodriguez
ba861fa493 Allow specifying a stride. 2014-07-21 18:01:05 -07:00
Jorge Rodriguez
06b7b00696 It does nothing now but I want to support edge behavior in the future. 2014-07-21 16:14:32 -07:00
Jorge Rodriguez
c27c5b6fbe There's really no point in returning the output buffer. 2014-07-21 15:36:43 -07:00
Jorge Rodriguez
d54e74092e stb_resample initial implementation 2014-07-21 00:16:03 -07:00
Sean Barrett
bcefca10f7 fix bad fix in previous fix 2014-07-15 22:26:01 -07:00
Sean Barrett
75b9e9cc1b update stb_image version number 2014-07-09 23:45:58 -07:00
Sean Barrett
b2cbed2634 Merge branch 'working' 2014-07-09 23:44:48 -07:00
Sean Barrett
1eb665906e cdecl fixes 2014-07-09 23:41:40 -07:00
Sean Barrett
68b5ec9392 fix cdecl 2014-07-09 23:39:00 -07:00
Sean Barrett
e0d86b0f5c STBI_ASSERT 2014-07-09 23:35:25 -07:00
Sean Barrett
3bf91543f4 revert img_n=0 initialization to original location 2014-07-09 23:26:03 -07:00
Sean Barrett
a2b9aa8d06 modifiy jpeg img_n fix
switch from fopen to fopen_s on later MSVCs
2014-07-09 23:23:48 -07:00
Sean Barrett
70de0adb28 Merge branch 'master' of https://github.com/LysanderGG/stb into working 2014-07-09 23:03:32 -07:00
Sean Barrett
932d485146 fix warnings in certain console compilers 2014-07-09 23:01:29 -07:00
Lysander
efd6b2698f Fix crash when trying to load progressive jpeg due to uninitialized s->img_n
Proper pointer check before deleting
2014-07-09 22:41:22 +09:00
Sean Barrett
2da2806d20 update version numbers due to warnings/minor fixes 2014-07-07 16:24:11 -07:00
nothings
0cc827fe2a Merge pull request #15 from nodj/master
minor warn correction
2014-07-07 16:20:34 -07:00
nothings
a55eae20dc Merge pull request #17 from Gargaj/patch-1
Explicit CDECL needed for qsort comparison function
2014-07-07 16:19:30 -07:00
Gargaj
72f06c2996 Explicit CDECL needed
QSORT only takes CDECL, but project settings can define different defaults for calling conventions.
2014-07-07 23:58:50 +02:00