Lately I’m a bit busy with real life, but I’ll try to explain your question here. Sorry for my weird english, kkk:
2p, 3p are related to the numbers of passes. So, super-xbr-2p-xxx delivers sxbr filtering in only two passes. Though I can filter in only two passes, it can be improved with an aditional pass. So, usually, I upscale (with sxbr algorithm) at 2x scale in two or three passes. The 3p version is a bit better than 2p in IQ, though a bit slower. The 3p versions fix the half pixel offset result of the sxbr (in two passes) and smooths the overall image quality.
And, the 6p version is just sxbr-3p applied two times so that we can get a 4x scaling.
Now, about the LVL keyword I use (It’s used only for XBR, not super-xbr), it’s related to the kind of staircase that can be completely smoothned by the algorithm. So, for example, a XBR-LV1 can only smooths perfectly a staircase of 45 degree. If the staircase is 60 degree, for example, the result will be a softened staircase not entirely smoothened. For that I need a LVL2 version. The LVL2 takes care of staircases of 30, 45 and 60 degree staircases. And LVL3 takes care of even more kinds of staircases.
The most advanced XBR I could implement is the mlv4, which means multilevel4. While the others use a greedy implementation where they always try to smooth with the biggest LVL possible. This one use some euristics where it always decides the most appropriate LVL (among 1 to 4) for each staircase kind. It’s a bit complex so I had to implement it in four passes.
For future develpment, I think it’s possible to achieve LVL6 (like in ScaleFX), though I couldn’t find an easy way to make it, yet. Maybe someone else can continue from here (@guest.r ?
).