avir.h

Branch


Log

Author Commit Date CI Message
Thomas de Grivel c5f2fbda 2025-11-25T11:33:48 silence warning
Thomas de Grivel 89b14ca9 2025-11-25T11:33:25 change encoding to utf8-unix
Aleksey Vaneev 1c8433cb 2025-04-10T13:54:58 Version 3.1: Implemented full C++ compliance, eliminated `stdlib.h` dependency. Removed a previously added scanline unbiasing since its positive effect was a compiler-dependent statistical error. Fixed a bug with bit-depth conversions (e.g., 16-bit to 8-bit). Fixed `sign conversion`, `nullptr`, and other compiler warnings. Optimized dithering function. Added 8-bit input gamma correction optimization. Added optional gamma correction bypass for alpha-channel (`AlphaIndex`). LANCIR: implemented WebAssembly SIMD128 support. Improved documentation.
Aleksey Vaneev 24034240 2021-10-03T09:31:06 Version 3.0. Improved speed by 10-25% on upsizing by utilizing a special resizing function together with filter-less 2X upsizing. Does not apply to the de-interleaved (AVX) resizing. Minor LANCIR optimization.
Aleksey Vaneev 109cf2ba 2021-04-19T08:00:20 Version 2.9. Removed a rarely-used half-band resizing step completely since it offers no practical performance nor quality benefits. Optimized filter generation function (removed divisions by a constant) as filters are always post-normalized anyway. This may reduce overhead when creating thumbnail-sized images.
Aleksey Vaneev c6e4dead 2021-04-15T17:27:09 Version 2.8. Fixed regression with the copy-constructor of CImageResizeVars class (previously it caused uninitialized accesses). Removed filter length optimization as it did not reduce overhead measurably. Optimized "peaked cosine" window function generator (removed division). Added "unbiasing" to resizer - an unconventional approach which reduces peak error significantly, at the expense of 5% increased overhead. Reoptimized filter parameters, now yielding an unprecedented quality.
Aleksey Vaneev 4efa5c61 2021-04-10T22:34:30 Version 2.7. Added normalization of individual fractional delay filters. This reduced peak error by 3 dB, which is substantial for image resizing. Reoptimized all filter parameters resulting in better frequency response linearity. Added AVIR_NOCTOR macro to avoid copy-constructing and copying objects of some classes via a default copy function. Added copy-constructor and assignment operator to the CImageResizerVars class, to avoid uninitialized memory copying. Corrected automatic image offseting and "k" factor on image upsizing.
Aleksey Vaneev 976e612a 2020-09-04T05:49:50 A minor fix to sRGB gamma approximation functions.
Aleksey Vaneev 9f0f3266 2020-04-26T07:09:12 Version 2.5 release.
Aleksey Vaneev 7dd9515e 2019-07-29T07:43:23 Version 2.4 release.
Aleksey Vaneev 13d00bb2 2019-05-16T06:30:49 Fixed a minor image offset on image upsizing.
Aleksey Vaneev 60b1a5aa 2019-02-13T16:55:18 Added AVIR_VERSION string macro.
Aleksey Vaneev cb44860f 2019-01-15T11:52:54 Released AVIR under a permissive MIT license agreement.
Aleksey Vaneev 752557d1 2018-08-08T19:44:46 Minor improvements, see Change log 2.1.
Aleksey Vaneev 2b51e4b0 2018-08-07T22:33:08 Made several minor improvements - see Change log 2.0.
Aleksey Vaneev d7a04591 2016-10-30T18:31:49 Fixed image offset on enlargement with the "k" factor specified explicitly.
Aleksey Vaneev 5421e466 2016-10-25T09:04:43 Fixed SIMD-related MS Visual C++ compile errors.
Aleksey Vaneev 8054d05a 2016-10-24T09:57:31 Fixed MS Visual C++ compiler error.
Aleksey Vaneev ff4717f8 2016-08-05T19:44:20 Added the built-in sRGB gamma correction.
Aleksey Vaneev 859c7dd8 2016-06-07T08:47:02 Dithering is now not used by default. Default is simple rounding. Updated "imageresize" utility with the -d switch which enables dithering.
Aleksey Vaneev f7060ae2 2016-03-12T12:25:29 Fixed smoothing when downsizing image by a factor 1 to 2.
Aleksey Vaneev 4222213a 2015-11-10T19:23:24 Fixed access violation due to a possible unaligned SIMD variable access.
Aleksey Vaneev e8ecde3e 2015-11-10T17:49:34 Implemented de-interleaved processing useful for 1-channel image resizing. Added float8 SIMD type support.
Aleksey Vaneev b4ec08f2 2015-11-06T10:46:17 Made enhancements to allow de-interleaved processing. Optimized temporary buffer allocation. Updated README.md with more info.
Aleksey Vaneev f48b1e53 2015-10-24T12:25:16 Fixed incorrect sub-pixel offsetting at some settings. Updated README.md with more info.
Aleksey Vaneev c8703955 2015-10-21T23:23:59
Aleksey Vaneev 5a12d43a 2015-10-14T23:20:59 Implemented "float4" SIMD data type support that offers 10-50% performance boost. Added abstraction layer for scanline processing functions. Added abstraction layer for dithering. Added 0th order filter bank for better 8-bit resizing performance. Optimized interpolation filter's quality. Improved default image resizer parameter sets. Optimized half-band filter used for 8X downsizing. Optimized correction filter used during upsizing.
Aleksey Vaneev e3a3d67e 2015-10-01T21:20:20 Optimizied default resizer parameters. "Fast" resizer parameters are now called as "LR" (low-ring). Added "ultra" resizer parameters.
Aleksey Vaneev f5bce79a 2015-09-24T23:18:52 Considerably optimized upsizing by 2 or more. Removed a minor border-line artifact during upsizing. Fixed an aliasing artifact when downsizing by 8 or more. Updated and refined the license agreement. Improved the default set of resizer parameters. Added a set of "faster" resizer parameters.
Aleksey Vaneev a8e30230 2015-09-19T23:06:09 Initial commit.