Great results!!
Watch out though: there is a problem with AviSynth's PSNR measurement as done by Compare(). It measures the PSNR for each individual frame and then calculates the arithmetic mean of the frame PSNRs to get a sequence PSNR.
What, you may say, is the problem with taking an average?
Taking the mean of the PSNR for every frame only ever gives a reliable result when all frames of the sequence are of similar complexity (approx same motion, texture, brightness etc.). If frames differ a lot, then the mean PSNR becomes squewed.
Worse, if a codec has very bad rate control, or something else causes a codec to produce variable quality throughout the sequence, then the mean PSNR as computed by AviSynth's Compare() will actually come out better
.
What's the solution? The best approach is to compute one PSNR for the whole sequence by treating the sequence as if it was one huge video frame. The PSNR is then a function of the total noise energy in the whole sequence and no nasty averaging effects come into play. I tried to modify AviSynth to work like this, but I couldn't get it to compile. So if anyone knows how to make this change...