一.人臉解鎖的關鍵過程
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生效