最近我将手机从S2(三星)升级到了S4。我开发了一个应用程序,它在帧上进行一些处理。在不改变代码中的任何内容的情况下,S4中的fps速率已经降低。我真的没有答案,因为我只更改了minSDk版本和TargetSdk版本......
这是代码
public void onPreviewFrame(byte[] data, Camera camera)
{
if (Debug_fps) Log.d("Fps","....");
// processing 30 ms
camera.addCallbackBuffer(data);
}
一些相关数据
AverageTime between frames S2: 5 - 10 ms
AverageTime between frames S4: 30- 35 ms
AverageTime processing S2: 32 ms
AverageTime processing S4: 30 ms
我真的不明白为什么会有这么大的差异,为什么接收框架需要这么长时间。
如果有人能提供答案我真的很感激,
提前谢谢
答案 0 :(得分:1)
我的第一个猜测是S2的相机具有较小的分辨率(~8 MP),而S4的相机具有~13 MP。更多像素意味着需要更多时间来处理它们。另一个原因可能是两部手机上的不同框架。也许Galaxy S4通过不绘制超过绝对需要的帧数来节省能量(30ms约为30 fps),因此android将帧限制为每秒30帧。