一.人脸解锁的关键过程
1. 按下power键
2. 屏幕点亮
3. 打开前摄
4. 获取第一帧并传给算法
5. 算法完成并返回结果
6. 解锁完成并关闭相机
二. 相机优化点
1. 定制人脸解锁自己的pipeline,去掉不必要的node,理论上只需要一个preview的pipeline
2. 使用AE warm up,减少ae收敛时间
3. 减少上电时序中的延时(不同sensor不同,要进行稳定性测试,patch在driver中做,只有当人脸解锁app时才进行跳过,其他app走正常时序)
4. 查看sensor init setting寄存器是否可精简,并且提高I2C速率到plus模式
5. 根据clientname判断,将cameraservice中的不相关资源加载去除
diff --git a/services/camera/libcameraservice/CameraService.cpp b/services/camera/libcameraservice/CameraService.cpp index 5a49613..b11653 100644 --- a/services/camera/libcameraservice/CameraService.cpp +++ b/services/camera/libcameraservice/CameraService.cpp @@ -1992,16 +1992,18 @@ MediaPlayer* CameraService::newMediaPlayer(const char *file) { return mp;} LOG1("CameraService::loadSound ref=%d", mSoundRef); if(mSoundRef++) return;- if(clientPackageName != "com.android.xxx") { mSoundPlayer[SOUND_SHUTTER] = newMediaPlayer("/system/media/audio/ui/camera_click.ogg"); mSoundPlayer[SOUND_RECORDING_START] = newMediaPlayer("/system/media/audio/ui/VideoRecord.ogg"); mSoundPlayer[SOUND_RECORDING_STOP] = newMediaPlayer("/system/media/audio/ui/VideoStop.ogg");- } }
6. 关键路径上确保perflock生效