Bug 333167

Summary: GIMP 2.10 like high quality scaling algorithms
Product: [Applications] krita Reporter: JayJay <mnkyshield>
Component: GeneralAssignee: Krita Bugs <krita-bugs-null>
Status: CONFIRMED ---    
Severity: wishlist CC: halla, miabraha, shreyeslata, tamtamy.tymona
Priority: NOR    
Version: git master (please specify the git hash!)   
Target Milestone: ---   
Platform: unspecified   
OS: Linux   
Latest Commit: Version Fixed In:

Description JayJay 2014-04-07 17:53:24 UTC
Wish: Krita had the high quality scaling algorithms like GIMP 2.10
http://www.gimpusers.com/tutorials/whats-new-in-gimp-2-10


Reproducible: Always
Comment 1 Michael 2015-08-18 19:23:51 UTC
I thought this was interesting so I looked into it.  Unfortunately there is no detailed description of the algorithm apart from the code itself, which is highly wrapped up in the GEGL / GObject framework.  The code itself is not well documented... for some reason the author decided to spend many paragraphs giving textbook definitions of Jacobian matrix and writing out inverse of a 2x2 matrix, but very little explanation of the algorithm itself.  (Also, Mr. Robidoux mentions his own name in the source file lohalo.c no fewer than 26 times...)

The basic idea is that you apply a logistic transform to your data before doing the scaling.  That is, you compute atanh(scale_fn(tanh(data)). He calls this sigmoidization.  This gives a visually pleasing effect because it preserves very bright and very dark areas.  The main complexity is that it blends together mip-maps in a clever way to perform downscaling.
Comment 2 Halla Rempt 2016-01-24 14:56:46 UTC
WISHGROUP: Stretchgoal
Comment 3 Shreyash 2021-03-15 16:02:58 UTC
Hi, I want to contribute to this project as a GSoC participant. I am currently studying the scaling algorithms for image scaling with high boost filtering and I want to implement it in the krita codebase. This will include linear interpolation, high boost filtering for image enhancement as well. Looking forward to make a worthy contribution. Please guide me through the process.
Comment 4 Tiar 2021-03-15 16:57:19 UTC
Hi,
that's great! Welcome to Krita.

A short introduction for GSOC in Krita is here: https://docs.krita.org/en/untranslatable_pages/participating_in_gsoc.html (but note that the ideas list link is incorrect, the current one is here: https://community.kde.org/GSoC/2021/Ideas#Krita - I will fix it asap...)

What you need to do next is (1) contact us on some communication channel (preferably IRC: irc.freenode.net:8001 channel #krita, but it can be mailing list `kimageshop@kde.org`, too), (2) build Krita (manual: https://docs.krita.org/en/untranslatable_pages/building_krita.html), (3) fix your first issue or implement a simple feature request. A list of accessible feature requests to start with is here: https://krita-artists.org/t/beginner-coding-tasks-in-krita-easy-and-short-feature-requests-ready-to-implement/5851 (still please check the bug report or ask if no one started to work on a specific bug/wish).
Comment 5 Shreyash 2021-03-15 18:06:39 UTC
Sure, thanks.