在 Android 相机上测量 fps 的准确方法

Accurate way to measure fps on Android camera

我尝试了两种不同的方法来计算 fps:

  1. 通过SystemClock.elapsedRealtime()和fps = 1000 / timeDiff
  2. 求帧时间差
  3. 计算开始后的时间差除以抓取的帧数。

观察

  1. 方法一:fps疯狂波动,从15跳到40再跳到20,再跳到30,以此类推。
  2. 它更稳定(我可以看到它 ~ 30fps )但它不反映最新的 fps 因为它只是长 运行 平均 fps。

我的问题是计算 fps 的最佳公式是什么?

ps: 我用的是Camera2接口

谢谢。

执行第一种方法,但在最后 10 帧(或 5 帧,这是个人喜好问题,但不要在较长范围内取平均值)取平均值。这样它就不太容易出现波动。

在我看来,方法 2 会隐藏许多局部的细微差别,您最终会通过大量平均来消除所有细节。