2016-10-11 7 views
0

Скажем, у меня есть 5 изображений, которые очень похожи. Я хотел бы сжать изображения 2, 3, 4 и 5 на основе первого изображения, несколько похожего на то, как P-кадры генерируются из I-кадра.Создание кадра P на основе кадра I

  • В общем, что это лучший способ/инструмент для этого?
  • Например, используя FFMPEG, возможно ли сгенерировать P-кадры и сохранить их в отдельном файле?

Edit: Хотя похоже, я не ищу просто генерируя различий между двумя изображениями. Моя цель - как-то использовать информацию на первом изображении, чтобы сделать последовательные изображения намного меньше. Если я просто делаю diff, то сама разница примерно одинакового размера (примерно на 10% уменьшена), что не так сильно, как я ожидаю. Если я создаю видео mp4, включающее эти 5 кадров, размер видео намного меньше, чем создание 5 кадров в файле, что, вероятно, связано с предсказаниями кадров на основе I кадров. Есть ли способ генерировать эти предсказанные кадры по одному и хранить их отдельно?

+0

Вы можете использовать фильтр смешивания в ffmpeg в режиме разности и сохранить результат. Это не будет строго P-кадрами, но вы можете сгенерировать оригинал, выполнив смешение режима добавления. – Mulvya

+0

Я проверил фильтр смеси. Кажется, он используется для наложения кадров, а не для последовательных кадров. Можете ли вы привести пример? –

+0

Наложение фреймов - одна из функций фильтра смешивания. Вычисление различий пикселей - другое. Уже поздно, поэтому я приведу пример завтра. – Mulvya

ответ

1

Вот базовый синтаксис:

Допустим I.png ваша базовая рама и P1.png является кадр, который вы хотите, чтобы уменьшить его отличии от I.png

Тогда

ffmpeg -i P1.png -i I.png -lavfi blend=all_expr='A-B' D1.png 

производит разницу рама D1.png.

Для восстановления P1 от I и D1, запустить

ffmpeg -i D1.png -i I.png -lavfi blend=all_expr='A+B' P1-r.png 

PI-r.png будет идентичен P1.png.

+0

Спасибо за код, но это, кажется, простой diff изображений, что я мог бы также достичь с помощью ImageMagick. Я отредактирую вопрос, чтобы объяснить, что я ищу. –

+0

Да. Вам также нужен интра + inter-прогноз? – Mulvya

+0

Наверное, да, если интра + inter предсказания - это то, что приводит к тому, что видеофайлы намного меньше, чем просто объединение нескольких кадров. Есть ли способ достичь этого с помощью ffmpeg? Я отредактировал вопрос, чтобы объяснить это лучше. Благодарю. –