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
Thomas de Grivel 7a69f047 2025-11-25T10:36:26 remove misc files
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 d4884eeb 2025-03-31T16:12:32 LANCIR 3.0.18. Added pre-C++11 compliance.
Aleksey Vaneev 623bbbc4 2025-03-31T15:40:47 LANCIR 3.0.17. Added pre-C++11 compliance. Fixed pedantic `sign conversion` and `nullptr` warnings.
Aleksey Vaneev 84b38194 2025-03-24T17:55:39 LANCIR 3.0.16. Implemented full C++ compliance.
Aleksey Vaneev 8be60ed2 2025-03-24T16:59:48 LANCIR 3.0.15. Implemented full C++ compliance.
Aleksey Vaneev 0269b5db 2025-03-19T19:28:08 LANCIR 3.0.14. Improved C++ compliance, comments. Implemented compile-time branching elimination via template parameters in the outputScanline() function. Fixed compilation error on ARM32 targets. Removed redundant ifdef's.
Aleksey Vaneev cef36b42 2025-03-16T09:35:34 LANCIR 3.0.13: Added platform detection for MSVC ARM.
Aleksey Vaneev eb89c3ba 2025-03-15T10:22:13 LANCIR 3.0.12: Improved platform detection.
Aleksey Vaneev ae50ac8c 2024-02-02T17:35:30 LANCIR 3.0.11: Minor code clean-up.
Aleksey Vaneev 643fd99e 2024-01-18T13:51:54 LANCIR 3.0.10: Considerably improved large image resizing speed. Memory overhead now became negligible. Source and destination buffers should now differ. Introduced a simpler overloaded resizeImage() function that returns a result.
Aleksey Vaneev e928341c 2023-12-07T05:40:20 LANCIR 3.0.9. Changed floating-point `0x1pN` constants not supported by some compilers, to `e` notation.
Aleksey Vaneev 9c3ffb4e 2023-12-05T05:44:39 Updated README.md.
Aleksey Vaneev 889c51f1 2023-12-05T04:01:05 Updated README.md.
Aleksey Vaneev 9a2a707c 2023-12-05T03:57:57 Updated README.md.
Aleksey Vaneev bb3482a7 2023-08-05T10:23:43 LANCIR 3.0.8. Removed _mm_cvtss_f32 SSSE3 intrinsic dependency.
Aleksey Vaneev 6fa7ef55 2023-01-19T12:51:43 Updated README.md, added Peaked Cosine graphs.
Aleksey Vaneev 8940d049 2023-01-19T09:34:23 Updated README.md, added Peaked Cosine graphs.
Aleksey Vaneev 2f4f7920 2023-01-19T09:33:44 Updated README.md, added Peaked Cosine graphs.
Aleksey Vaneev 7271d321 2021-12-30T07:22:40 LANCIR 3.0.7. Optimized 1-channel resize function for a slightly lower overhead.
Aleksey Vaneev c2d01323 2021-12-28T13:36:31 Updated README.md.
Aleksey Vaneev 1b311293 2021-12-28T10:48:48 LANCIR 3.0.6. Fixed a bug in update() that returned "true" even if filters were not updated, previously this impacted overhead when resizing many small images.
Aleksey Vaneev c43af50e 2021-12-28T07:07:57 Updated README.md.
Aleksey Vaneev 6e0a1229 2021-12-27T20:19:28 LANCIR 3.0.5. The "virtual oversampling" has been removed from this version, for an even lower overhead. While it was a correct thing overall, it does not make much of a difference for Lanczos filter. Filter oversampling will likely be used in a future AVIR refactoring to create precise filters while not inducing a computational overhead - it looks like there is no practical need to perform full-featured input image upsizing/oversampling as half of image's samples are initially zero anyway. But for precise filter design oversampling is a necessity, like described on the project page; it has to be tested and analyzed if downsampling a designed oversampled filter works well (it should). So, LANCIR is now likely has a "production" quality level, its further development is not planned at the moment.
Aleksey Vaneev c457bd53 2021-12-27T14:45:08 LANCIR 3.0.4. Rearranged final summation instructions in `resize3` yielding 2-3% performance boost in 3-channel resizing.
Aleksey Vaneev 2aceaba5 2021-12-26T19:37:19 Updated README.md.
Aleksey Vaneev aa1a1f72 2021-12-26T18:27:58 Updated README.md.
Aleksey Vaneev 7b89d36d 2021-12-26T08:14:13 LANCIR 3.0.3. Implemented the "virtual oversampling", at 4X. It is the same technique as originally used in AVIR, but completely overhead-less; improves Lanczos's filter to the maximum. Optimized filter buffer's allocation. LANCIR's cutting-edge techniques will be used in a future AVIR refactoring.
Aleksey Vaneev 3bb2bd95 2021-12-24T15:34:07 LANCIR 3.0.2. Further algorithm's refinement, now using progressive batched resizing which yields an enormous performance boost in most cases on larger images. This is a preparation for a major AVIR refactoring.
Aleksey Vaneev 5809d5b5 2021-12-22T15:41:29 LANCIR 3.0.1. A deep algorithm's redesign. Now features AVX, SSE2, and NEON optimizations out-of-the box. Now it is likely one of the fastest (if not the fastest) Lanczos algorithms available for CPUs. NOTE: resizeImage() function's arguments were changed: now also accepting NewBuf's scanline size.
Aleksey Vaneev 3c67f87c 2021-10-04T19:25:04 Updated README.md.
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 26ba9c2c 2021-10-02T09:00:08 Added Win64 binary of the "imageresize" tool.
Aleksey Vaneev 1f4f3f4c 2021-09-18T12:19:52 Updated README.md.
Aleksey Vaneev 870f471d 2021-09-18T10:58:09 Added comparison graphs to README.md.
Aleksey Vaneev 811b175a 2021-09-07T16:14:05 Updated README.md, fixed a mistakenly-removed Users topic.
Aleksey Vaneev 7fdab221 2021-05-08T22:51:47 Updated README.md.
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 86332c15 2021-04-17T08:47:30 Updated README.md.
Aleksey Vaneev f04da1fc 2021-04-16T07:09:18 Updated README.md.
Aleksey Vaneev 465435df 2021-04-16T06:58:57 Updated README.md.
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 4ee357d2 2021-02-18T15:44:12 LANCIR: added a missing `ElCount` multiplier to `memset` on empty input image.
Aleksey Vaneev d4580119 2021-01-14T09:52:09 Updated README.md.
Aleksey Vaneev a9686d0c 2020-09-10T15:50:10 Updated README.md.
Aleksey Vaneev 976e612a 2020-09-04T05:49:50 A minor fix to sRGB gamma approximation functions.
Aleksey Vaneev 7de4461a 2020-08-12T12:59:08 Updated README.md.
Aleksey Vaneev e02f3359 2020-08-12T12:48:25 Updated README.md.
Aleksey Vaneev 3c951fa5 2020-08-12T12:44:41 Create FUNDING.yml
Aleksey Vaneev 460b94a9 2020-08-12T12:30:07 Updated README.md.
Aleksey Vaneev 9f0f3266 2020-04-26T07:09:12 Version 2.5 release.
Aleksey Vaneev fa37d98a 2020-03-14T08:45:06 LANCIR: fixed a rare access violation crash.
Aleksey Vaneev 7dd9515e 2019-07-29T07:43:23 Version 2.4 release.
Aleksey Vaneev f9f79e24 2019-06-27T07:42:52 Added Patreon support link.
Aleksey Vaneev 96d6501c 2019-06-23T22:30:58 Fixed a crash in CLancIR.
Aleksey Vaneev ace3afd9 2019-05-31T16:12:09 Added independent "kx" and "ky" step parameters to the CLancIR resizing function.
Aleksey Vaneev 24c1c928 2019-05-19T09:08:34 Updated README.md and binary tools.
Aleksey Vaneev f3d8c344 2019-05-18T08:42:00 Made minor text description updates in "lancir".
Aleksey Vaneev 10e74833 2019-05-17T22:44:26 Added "lancir" filter normalization.
Aleksey Vaneev 30447d6c 2019-05-17T10:03:37 Made minor optimizations to "lancir".
Aleksey Vaneev 5ab3db5a 2019-05-16T13:01:38 Made minor "lancir" optimizations.
Aleksey Vaneev 13d00bb2 2019-05-16T06:30:49 Fixed a minor image offset on image upsizing.
Aleksey Vaneev 244414db 2019-05-16T05:17:44 Implemented fast CLancIR image resizing algorithm.
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 e1bda515 2018-08-02T12:31:41 Updated a tip on affine transformations.
Aleksey Vaneev 21d4ed6f 2018-08-02T12:09:53 Updated a tip on affine transforms.
Aleksey Vaneev eeda9d70 2018-08-02T12:06:36 Updated tip on affine transforms.
Aleksey Vaneev 3381196e 2018-08-02T11:51:23 Added a tip on affine transforms.
Aleksey Vaneev 94773eaa 2018-05-15T23:27:21 Added note about EWA filtering.
Aleksey Vaneev f07e40e5 2018-05-13T22:38:48 Updated readme file.
Aleksey Vaneev 0b909ea3 2018-05-13T01:57:08 Added note about disabling gamma-correction in the imageresize tool.
Aleksey Vaneev 823f3508 2018-05-12T17:19:40 Fixed readme file formatting mistakes.
Aleksey Vaneev d02243c8 2016-12-09T16:05:54 Added gamma correction usage information.
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 f0371b13 2016-08-05T12:49:16 Fixed PNG-48 operation on Mac OS X.
Aleksey Vaneev 000fc4a7 2016-08-03T10:34:34 imageresize: fixed PNG-48 handling bug, fixed PNG file DPI scaling.
Aleksey Vaneev 8850cde0 2016-06-17T14:06:32 Added 16-bit depth (PNG-48) file support to "imageresize" tool.
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 c9c3720b 2016-06-04T07:09:10 Minor README.md refinement.
Aleksey Vaneev d09e9758 2016-03-25T20:09:18 Added corrections to the "why 2X upsizing?" topic.
Aleksey Vaneev ed062fc6 2016-03-21T12:12:53 Minor changes to the README.md file.
Aleksey Vaneev 37bfe8b7 2016-03-16T11:50:38 Added a note about "ultimate" quality of this algorithm.
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 50d90182 2015-11-10T17:49:55 Updated license version.
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 2ad92f54 2015-10-27T16:00:51 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 a1c4f3ae 2015-10-23T08:15:25 Updated README.md with more info.
Aleksey Vaneev ed5036fd 2015-10-21T23:25:22 Optimized float4 round() function, performance increased considerably in some cases. Optimized internal filter steps building function. Added algorithm modeling and complexity calculation functions. Added additional algorithm variation with differing efficiency. Added automatic best algorithm selection. Improved resizing quality at image edges. Made downsizing use arbitrary factors for a higher efficiency in many cases. Added 2 intermediate resizing parameter sets. Moved sub-pixel offset parameters to CImageResizerVars.