Что означают эти методы прогнозирования кодировщика FFmpeg APNG?

#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 разных фильтров, но может привести к лучшему сжатию. Наилучший фильтр определяется с использованием метода минимальной суммы абсолютных разностей.