QImage против производительности OpenGL

Я портирую старое приложение 4.8 на 5.2.1 и в то время я использовал QImage для рендеринга некоторых необработанных данных на экране, в QLabel.

Я снимаю изображения с камеры, поэтому хочу отображать эти изображения в режиме реального времени. До сих пор, с QImage, я достигаю более 20FPS (камера способна захватить 30 FPS).

Мне интересно, будет ли рендеринг этих данных в OpenGL (возможно, в новом приложении QML Quick / Qt Widgets) быстрее, чем в настоящее время разработанный метод?

0

Решение

Имея в виду следующие предположения:

  • ваша реализация в OpenGL использует ускорение HW
  • ваша реализация использует оптимальные параметры текстуры для отображения изображения (то есть драйвер не выполняет какое-либо преобразование)

Вы можете добиться лучших результатов, используя OpenGL. QImage по-прежнему должен хранить данные как в памяти, так и в графическом процессоре, то есть при обновлении QImage требуется как минимум одна дополнительная копия. С OpenGL вы можете копировать данные непосредственно в память графического процессора, и вам не нужно хранить данные где-то в памяти.

Однако то, что может быть оптимальным для одного графического процессора, не обязательно должно быть оптимальным для другого. Итак, если вы реализуете что-то, что должно работать на различном оборудовании, я бы посоветовал перейти на QImage.

Но, как сказано, единственный способ — это реализовать и измерить.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]