0

我正在将一个旧的 4.8 应用程序移植到 5.2.1 并回到那个时候,我使用 QImage 在屏幕上以 QLabel 呈现一些原始数据。

我正在从相机中抓取图像,所以我想实时显示这些图像。到目前为止,使用 QImage,我实现了超过 20FPS(相机能够抓取 30 FPS)。

我想知道在 OpenGL 上渲染这些数据(可能在 QML Quick / Qt Widgets 新应用程序中)是否会比当前开发的方法更快?

4

1 回答 1

2

考虑到下一个假设:

  • 您在 OpenGL 中的实现正在使用硬件加速
  • 您的实现正在使用最佳纹理参数来显示图像(即驱动程序没有进行一些转换)

您可以使用 OpenGL 获得更好的性能。QImage 仍然必须在内存和 GPU 上保存数据,这意味着在更新 QImage 时至少需要一个额外的副本。使用 OpenGL,您可以将数据直接复制到 GPU 内存,而无需将数据存储在内存中的某个位置。

但是,在一个 GPU 上可能是最佳的,不一定在另一个 GPU 上是最佳的。因此,如果您要实现需要在各种硬件上运行的东西,我建议您选择 QImage。

但如前所述,唯一的方法是实施和衡量。

于 2014-03-27T13:32:38.937 回答