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