Interesting you default to paeth.
Only working on grayscale 16bit images with only the lower 10bits populated I never found it reduced image size. But I was doing per scan adaptive filtering so maybe if I was only allowed one filter for the entire image that would be it?
Just wondering if you did any experiments with different filter strategies?