kc3-lang/avir

Branch :


Log

Author Commit Date CI Message
thodg c5f2fbda 2025-11-25 11:33:48 silence warning
thodg 89b14ca9 2025-11-25 11:33:25 change encoding to utf8-unix
thodg 7a69f047 2025-11-25 10:36:26 remove misc files
1c8433cb 2025-04-10 13: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.
d4884eeb 2025-03-31 16:12:32 LANCIR 3.0.18. Added pre-C++11 compliance.
623bbbc4 2025-03-31 15:40:47 LANCIR 3.0.17. Added pre-C++11 compliance. Fixed pedantic `sign conversion` and `nullptr` warnings.
84b38194 2025-03-24 17:55:39 LANCIR 3.0.16. Implemented full C++ compliance.
8be60ed2 2025-03-24 16:59:48 LANCIR 3.0.15. Implemented full C++ compliance.
0269b5db 2025-03-19 19: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.
cef36b42 2025-03-16 09:35:34 LANCIR 3.0.13: Added platform detection for MSVC ARM.
eb89c3ba 2025-03-15 10:22:13 LANCIR 3.0.12: Improved platform detection.
ae50ac8c 2024-02-02 17:35:30 LANCIR 3.0.11: Minor code clean-up.
643fd99e 2024-01-18 13: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.
e928341c 2023-12-07 05:40:20 LANCIR 3.0.9. Changed floating-point `0x1pN` constants not supported by some compilers, to `e` notation.
9c3ffb4e 2023-12-05 05:44:39 Updated README.md.
889c51f1 2023-12-05 04:01:05 Updated README.md.
9a2a707c 2023-12-05 03:57:57 Updated README.md.
bb3482a7 2023-08-05 10:23:43 LANCIR 3.0.8. Removed _mm_cvtss_f32 SSSE3 intrinsic dependency.
6fa7ef55 2023-01-19 12:51:43 Updated README.md, added Peaked Cosine graphs.
8940d049 2023-01-19 09:34:23 Updated README.md, added Peaked Cosine graphs.
2f4f7920 2023-01-19 09:33:44 Updated README.md, added Peaked Cosine graphs.
7271d321 2021-12-30 07:22:40 LANCIR 3.0.7. Optimized 1-channel resize function for a slightly lower overhead.
c2d01323 2021-12-28 13:36:31 Updated README.md.
1b311293 2021-12-28 10: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.
c43af50e 2021-12-28 07:07:57 Updated README.md.
6e0a1229 2021-12-27 20: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.
c457bd53 2021-12-27 14:45:08 LANCIR 3.0.4. Rearranged final summation instructions in `resize3` yielding 2-3% performance boost in 3-channel resizing.
2aceaba5 2021-12-26 19:37:19 Updated README.md.
aa1a1f72 2021-12-26 18:27:58 Updated README.md.
7b89d36d 2021-12-26 08: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.
3bb2bd95 2021-12-24 15: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.
5809d5b5 2021-12-22 15: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.
3c67f87c 2021-10-04 19:25:04 Updated README.md.
24034240 2021-10-03 09: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.
26ba9c2c 2021-10-02 09:00:08 Added Win64 binary of the "imageresize" tool.
1f4f3f4c 2021-09-18 12:19:52 Updated README.md.
870f471d 2021-09-18 10:58:09 Added comparison graphs to README.md.
811b175a 2021-09-07 16:14:05 Updated README.md, fixed a mistakenly-removed Users topic.
7fdab221 2021-05-08 22:51:47 Updated README.md.
109cf2ba 2021-04-19 08: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.
86332c15 2021-04-17 08:47:30 Updated README.md.
f04da1fc 2021-04-16 07:09:18 Updated README.md.
465435df 2021-04-16 06:58:57 Updated README.md.
c6e4dead 2021-04-15 17: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.
4efa5c61 2021-04-10 22: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.
4ee357d2 2021-02-18 15:44:12 LANCIR: added a missing `ElCount` multiplier to `memset` on empty input image.
d4580119 2021-01-14 09:52:09 Updated README.md.
a9686d0c 2020-09-10 15:50:10 Updated README.md.
976e612a 2020-09-04 05:49:50 A minor fix to sRGB gamma approximation functions.
7de4461a 2020-08-12 12:59:08 Updated README.md.
e02f3359 2020-08-12 12:48:25 Updated README.md.
3c951fa5 2020-08-12 12:44:41 Create FUNDING.yml
460b94a9 2020-08-12 12:30:07 Updated README.md.
9f0f3266 2020-04-26 07:09:12 Version 2.5 release.
fa37d98a 2020-03-14 08:45:06 LANCIR: fixed a rare access violation crash.
7dd9515e 2019-07-29 07:43:23 Version 2.4 release.
f9f79e24 2019-06-27 07:42:52 Added Patreon support link.
96d6501c 2019-06-23 22:30:58 Fixed a crash in CLancIR.
ace3afd9 2019-05-31 16:12:09 Added independent "kx" and "ky" step parameters to the CLancIR resizing function.
24c1c928 2019-05-19 09:08:34 Updated README.md and binary tools.
f3d8c344 2019-05-18 08:42:00 Made minor text description updates in "lancir".
10e74833 2019-05-17 22:44:26 Added "lancir" filter normalization.
30447d6c 2019-05-17 10:03:37 Made minor optimizations to "lancir".
5ab3db5a 2019-05-16 13:01:38 Made minor "lancir" optimizations.
13d00bb2 2019-05-16 06:30:49 Fixed a minor image offset on image upsizing.
244414db 2019-05-16 05:17:44 Implemented fast CLancIR image resizing algorithm.
60b1a5aa 2019-02-13 16:55:18 Added AVIR_VERSION string macro.
cb44860f 2019-01-15 11:52:54 Released AVIR under a permissive MIT license agreement.
752557d1 2018-08-08 19:44:46 Minor improvements, see Change log 2.1.
2b51e4b0 2018-08-07 22:33:08 Made several minor improvements - see Change log 2.0.
e1bda515 2018-08-02 12:31:41 Updated a tip on affine transformations.
21d4ed6f 2018-08-02 12:09:53 Updated a tip on affine transforms.
eeda9d70 2018-08-02 12:06:36 Updated tip on affine transforms.
3381196e 2018-08-02 11:51:23 Added a tip on affine transforms.
94773eaa 2018-05-15 23:27:21 Added note about EWA filtering.
f07e40e5 2018-05-13 22:38:48 Updated readme file.
0b909ea3 2018-05-13 01:57:08 Added note about disabling gamma-correction in the imageresize tool.
823f3508 2018-05-12 17:19:40 Fixed readme file formatting mistakes.
d02243c8 2016-12-09 16:05:54 Added gamma correction usage information.
d7a04591 2016-10-30 18:31:49 Fixed image offset on enlargement with the "k" factor specified explicitly.
5421e466 2016-10-25 09:04:43 Fixed SIMD-related MS Visual C++ compile errors.
8054d05a 2016-10-24 09:57:31 Fixed MS Visual C++ compiler error.
ff4717f8 2016-08-05 19:44:20 Added the built-in sRGB gamma correction.
f0371b13 2016-08-05 12:49:16 Fixed PNG-48 operation on Mac OS X.
000fc4a7 2016-08-03 10:34:34 imageresize: fixed PNG-48 handling bug, fixed PNG file DPI scaling.
8850cde0 2016-06-17 14:06:32 Added 16-bit depth (PNG-48) file support to "imageresize" tool.
859c7dd8 2016-06-07 08:47:02 Dithering is now not used by default. Default is simple rounding. Updated "imageresize" utility with the -d switch which enables dithering.
c9c3720b 2016-06-04 07:09:10 Minor README.md refinement.
d09e9758 2016-03-25 20:09:18 Added corrections to the "why 2X upsizing?" topic.
ed062fc6 2016-03-21 12:12:53 Minor changes to the README.md file.
37bfe8b7 2016-03-16 11:50:38 Added a note about "ultimate" quality of this algorithm.
f7060ae2 2016-03-12 12:25:29 Fixed smoothing when downsizing image by a factor 1 to 2.
4222213a 2015-11-10 19:23:24 Fixed access violation due to a possible unaligned SIMD variable access.
50d90182 2015-11-10 17:49:55 Updated license version.
e8ecde3e 2015-11-10 17:49:34 Implemented de-interleaved processing useful for 1-channel image resizing. Added float8 SIMD type support.
b4ec08f2 2015-11-06 10:46:17 Made enhancements to allow de-interleaved processing. Optimized temporary buffer allocation. Updated README.md with more info.
2ad92f54 2015-10-27 16:00:51 Updated README.md with more info.
f48b1e53 2015-10-24 12:25:16 Fixed incorrect sub-pixel offsetting at some settings. Updated README.md with more info.
a1c4f3ae 2015-10-23 08:15:25 Updated README.md with more info.
ed5036fd 2015-10-21 23: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.