2014-03-27 113 views
0

我將一箇舊的4.8應用程序移植到5.2.1,並在那個時候,我用QImage在QLabel中渲染屏幕上的一些原始數據。QImage vs OpenGL性能

我從相機抓取圖像,所以我想要實時顯示這些圖像。到現在爲止,使用QImage,我實現了超過20FPS(相機能夠抓取30 FPS)。

我想知道如果渲染OpenGL的這個數據(可能在QML快速/ Qt控件新的應用程序)將快於目前的發展方式?

+0

的唯一途徑是實現和測量 –

+0

我創建了這個問題,因爲實施新的不同的方法之前,我想知道哪一個是速度更快,基於人的經驗。 我知道實施和測量是一個想法,但需要更長的時間。 – madduci

回答

2

考慮到未來的假設:

  • 您在OpenGL實現使用硬件加速
  • 你的實現是利用最佳的紋理參數,來顯示圖像(即司機沒有做一些轉換)

您可以實現使用OpenGL更好的性能。 QImage仍然需要在內存和GPU上保存數據,這意味着在更新QImage時至少需要一個額外的副本。藉助OpenGL,您可以將數據直接複製到GPU內存,而無需將數據存儲在內存中的某處。

但是,在一個GPU上可能是最優的,在另一個GPU上不一定是最優的。所以,如果你正在實現需要在各種硬件上運行的東西,我會建議去QImage。

但正如所說的,唯一的方法是實施和測量。