Especially in the mid-range scanline strength you have false colours in every second line if you simply subtract a constant value. The example above shows that clearly. There not that much different in the low range and high range strength region; that’s also true.
To be 100% precisely the multiplication has some slight amount of discolouring, too. Ideally you have to go into another color space, e.g. YPbPr, to set the scanlines without discolouring. But then you have to go back.
However, back your hybrid implementation 😉
I merged it with mine. I kept the choice between generation methods as well as kept hybrid adjustment strength separately. So the user can combine as he likes.
Could you please take a look into the implementation and look if your logic has been retained?
Just a remark:
1. I started with the adjustment of strength value after the reverse LPF
2. Due to 1., the pipeline length has been increased a bit.
3. The hybrid contrast on/off is done in stage 1 of the strength modification
4. I have 100% the same commits in my local upstream branch but hasn’t pushed them as I wait for your feedback first.
Link to branch with the changes: https://github.com/borti4938/ossc/tree/dev_lcdbl