Обнаружил следующее неприятное поведение у IM:у jpeg, при конвертации из неидеального исходника (низкого качества сканы из интернета и прочее), очень сильно лезут артефакты (а этот кодек даёт результат наиболее близкий к идеалу, если только не лезут артефакты), файл получается излишне большим и значительная часть битрейта уходит именно на точную передачу артефактов.
при этом, webp выдаёт файл в 2 раза меньше при очень сопоставимом качестве (конечно лезет тот же шум, поменьше, за исключением градиентов -- они отвратны, от битрейта не зависит) и сильного искажения цвета (что исправляется -define webp:use-sharp-yuv=1)
avif(aom) - вымарывает детали даже на высоком битрейте где webp вполне справляется и так (артефактов тоже меньше, градиенты в целом чаще удобоваримые), но это вполне терпимо (на q90 и выше). однако, границы объектов почему-то оказываются ощутимо за пределами их контура, что уже видно и не так хорошо (терпимо), а главное, этот кодек вымарывает цвета, совсем как webp без use-sharp-yuv, и такой опции у этого кодера просто нет! как бы сохранить цвета?
heic(x265) - даёт стабильно наилучший результат, но вот только "границы объектов почему-то оказываются ощутимо за пределами их контура" и они в этом случае совсем уж страшные и корявые, а многие края превращаются в радужные артефакты, что совсем уже ни в какие ворота, и есть ровно то же самое вымарывание цветов.
Что это, баги в IM? Почему их не исправляют уже лет 5, они же очевидные? Как бы мне сохранить оттенки без искажения на avif, ведь кому нужны файлы с убитыми цветами?