Commit Graph

23 Commits

Author SHA1 Message Date
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
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
55c5f0b3a0 Beginning of a more sophisticated resample algorithm, starting with calculating filter contributions per scan line. 2014-07-23 22:17:56 -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