Android 降低安卓摄像头速度的帧速率

Android 降低安卓摄像头速度的帧速率,android,samsung-mobile,frame-rate,Android,Samsung Mobile,Frame Rate,最近我把我的手机从S2(三星)升级到了S4。我开发了一个应用程序,它对帧进行一些处理。在不改变代码的情况下,S4中的fps速率降低。我真的没有答案,因为我只更改了minSDk版本和TargetSdk版本 这是密码 public void onPreviewFrame(byte[] data, Camera camera) { if (Debug_fps) Log.d("Fps","...."); // processing 30 ms camera.addCallbac

最近我把我的手机从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
我真的不明白为什么会有这么大的差异,为什么要花这么长时间才能收到帧

如果有人能提供答案,我将不胜感激


提前谢谢

我的第一个猜测是S2有一个分辨率更小(~8MP)的摄像头,S4有一个分辨率约13MP的摄像头。更多的像素意味着需要更多的时间来处理它们。另一个原因可能是两款手机的网络架构不同。Galaxy S4可能通过不绘制超过绝对需要的帧数(30毫秒约为30帧/秒)来节省能源,因此android将帧数限制为每秒30帧。

您好,谢谢您的回复,两款手机的处理时间相同。但最终处理和调用onpreviewFrame()之间的时间变化很大。。。(10ms(S2)vs 30ms(S4))@IgnacioFerrero这就是我说的-更多像素->更多处理时间。那么,你是在建议进行转换以提供字节[]向量吗?因此,从13mp转换到1440x1080需要更多的时间?我真的不知道手机是如何通过摄像头提供字节[]数组的。那么,我应该在通话间隔30毫秒时接听电话吗?没有可能的解决方案?@Ignacioferero我不知道手机是如何从摄像头中获取图像的,但我认为你无论如何也无法对此采取任何措施。只要没有真正的问题(每秒30帧不是很好,但仍然是一个合理的帧速率),就可能不值得努力改进它。