#ffmpeg #png #image-compression #apng
#ffmpeg #png #сжатие изображения #apng
Вопрос:
Запустив ffmpeg -h encoder=apng
, я получаю это:
APNG encoder AVOptions:
-dpi <int> E..V..... Set image resolution (in dots per inch) (from 0 to 65536) (default 0)
-dpm <int> E..V..... Set image resolution (in dots per meter) (from 0 to 65536) (default 0)
-pred <int> E..V..... Prediction method (from 0 to 5) (default none)
none E..V.....
sub E..V.....
up E..V.....
avg E..V.....
paeth E..V.....
mixed E..V.....
Каковы различия между этими методами прогнозирования, указанными с -pred
помощью?
Я не смог найти никакой документации по ffmpeg.org или где-нибудь еще.
Комментарии:
1. Проверьте типы фильтров в спецификации PNG .
2. Спасибо, это все. Я предполагаю, что «смешанный» — это просто то, что лучше?
3. Честно говоря, я не знаю. Возможно, в этом коде есть ответ. Я вижу, что он перебирает другие типы фильтров и, похоже, выбирает то, что имеет наименьшую стоимость .
Ответ №1:
Спецификация PNG определяет 5 различных типов фильтров, которые используются для повышения сжимаемости данных изображения перед их сжатием: none, sub, up, average и Paeth. Идея каждого из фильтров состоит в том, чтобы вывести текущий пиксель из соседних пикселей, а затем сохранить только то, на сколько нужно скорректировать эту оценку, чтобы получить истинное значение. Для каждой строки развертки изображения указан фильтр. Каждый фильтр работает лучше всего в разных обстоятельствах. Фильтры не влияют на фактические данные изображения, только на то, как они хранятся.
mixed
это не фильтр, а вместо этого указывает ffmpeg выбирать наилучший фильтр для каждой строки. Это также называется динамической фильтрацией. Это замедляет кодирование, поскольку для каждой строки необходимо использовать 5 разных фильтров, но может привести к лучшему сжатию. Наилучший фильтр определяется с использованием метода минимальной суммы абсолютных разностей.