While testing integer scaling, I’ve noticed that no matter how you scale your video, the rendering process will filter your video with a bilinear or linear filter.
I’ve attached two images: first is how the video looks right before rendering it in the editor and the second image shows what I get after the video is rendered. The applied filter ruins the ‘pixel perfect’ fidelity of pixely low-resolution content.
I’m unable to find any settings that would let me change the filtering applied during the rendering process or any documentation on how it could be done so I’ve decided to ask about it here.
The “big” video is the one I’m integer scaling and is exactly 3x the resolution of the source (256x192 to 768x576). It is nearest neighbor filtered in the editor. The second one is only 1.5x scaled and is therefore scaled with a bilinear filter in the editor.
Haven’t you asked this before? Have you tried any of the special scaling effects/filters I suggested?
In my answer to your first question I said that scaling with the Transform and Position and Zoom effects cannot be (further) controlled wrt the algorithm(s) used. Kdenlive uses the MLT Framework for effects, so you need to ask the MLT devs whether they will change the filters to allow for that. Until that happens you have to either suck it up or try using other scaling effects like I suggested.
Also keep in mind that unless you render with a lossless codec, the video encoding will always result in some quality degradation simply due to the way (lossy) encoding works. You can try to play with the quality settings and different encoders (some are better for movies, other for animation) to see whether the results are more what you want. Higher quality encoding mostly creates bigger files, though.