Мне пришлось создать систему, которая может обрабатывать изображения в реальном времени.Я реализовал в C ++ систему преобразования форматов пикселей, которая также может выполнять некоторые простые преобразования (в настоящее время: поворот и зеркальное отображение).
Формат ввода / вывода системы - это фреймы в следующих форматах:
- RGB (24, 32)
- YUYV420, YUYV 422
- JPEG
- Необработанная шкала серого
Например, одна операцияможет быть:
- YUYV422 -> поворот 90 -> поворот по горизонтали -> RGB24
- оттенки серого -> поворот 270 -> поворотный поворот -> YUYV420
Цель системы - предложить лучшую производительность для вращения / зеркального отображения и преобразования формата пикселей.Моя текущая реализация опирается на OpenCV, но у меня возникают проблемы с производительностью при обработке данных с разрешением выше 2k.
Текущая реализация использует cv :: Mat и cv :: transpose / cv :: flip / cv :: cvtColor,и я оптимизировал систему, чтобы удалить переходные буферы и копировать как можно больше.
Не очень рад изобретать велосипед, я знаю, что используя swscale и некоторые фильтры из FFMpeg, можно добиться того же результата.У меня вопрос:
Система FFMpeg довольно универсальна, как вы думаете, я мог бы пострадать из-за снижения производительности / производительности с этим решением?
Преобразование формата в OpenCV выглядит несколько оптимистично, но я понятия не имею о реализации FFMpeg ... (примечание: я работаю на платформе Intel x86_64 с SSE)
Знаете ли вы какую-либо библиотеку, кромеМожно ли обрабатывать такие простые преобразования в режиме реального времени?
Спасибо