我正在开发一个应用程序,对 GPU 上的相机预览流进行实时过滤(OpengGL ES 2.0)。它类似于著名的应用程序“纸相机”(付费)和“卡通相机”(免费)。
它在我的 Galaxy s2 上运行良好且速度非常快,在 s3 上甚至更快,在旧的三星设备上也可以。我还在 Sony Xperia Arc S 和 htc 的欲望上以及我不记得的其他几台设备上对其进行了测试,在这些设备上它的速度不如我的 s2 但至少高于 10 fps。
现在问题来了:昨天我能够在 HTC One X+ 和 Galaxy Tab 10.1(分别为 tegra 3 和 tegra 2)上测试它。在 x+ 上,它以大约 5 fps 的速度运行,在平板电脑上以大约 2 fps 的速度运行。
我还在 x+ 上尝试了前面提到的类似应用程序(纸质相机和卡通相机),与我的 Galaxy s2 相比,它们的运行速度也慢得多,尽管由于硬件更好,它们应该运行得更快。
tegra GPU 是否存在与纹理上传速度有关的已知问题(我必须为每个视频帧创建一个纹理)或其他可以大大降低速度的问题?
PS:降低相机预览分辨率可以让它稍微快一些,但它仍然慢得令人讨厌。