Как оценить размер файла GIF?
Мы создаем онлайн-сервис для редактирования видео. Одна из функций позволяет пользователям экспортировать короткий фрагмент из своего видео в виде анимированного GIF. Имгур имеетограничение размера файла 2Mb за загруженный анимированный GIF.
Размер файла Gif зависит от количества кадров, глубины цвета и самого содержимого изображения: сплошной плоский цвет приводит к очень легкому изображению, в то время как некоторые случайные цвета анимации телевизионного шума будут довольно тяжелыми.
Сначала я экспортирую каждый видеокадр в формате PNG конечного размера кадра GIF (фиксированный, 384x216).
Затем, чтобы максимизировать качество изображения, я предпринимаю несколько попыток рендеринга изображения с немного отличающимися параметрами - различным количеством кадров и количеством цветов в палитре изображений. Рендеринг с наилучшим качеством при ограничении размера файла загружается в Imgur.
Каждый рендер требует времени и ресурсов процессора - это я хочу оптимизировать.
Вопрос: Какой может быть разумный способ оценить наилучшие настройки рендеринга в зависимости от фактических изображений, максимально приблизить их к пределу размера файла и, по крайней мере, минимизировать количество попыток рендеринга до 2–3?