[CTS10R3]android.hardware.camera2.cts.StillCaptureTest#testAeCompensation fail

问题描述

CtsCameraTestCases
android.hardware.camera2.cts.StillCaptureTest#testAeCompensation
Fail:
java.lang.Exception: There were 4 errors:
java.lang.Throwable(Test failed for camera 0: Exposure compensation ratio exceeds error tolerence: expected(0.015625) observed(0.061857). Normal exposure time 30000 us, sensitivity 431. Compensated exposure time 7271 us, sensitivity 110, value 3.958843000773395 is out of range [0.8, 1.2])
java.lang.Throwable(Test failed for camera 0: Exposure compensation ratio exceeds error tolerence: expected(0.031250) observed(0.062430). Normal exposure time 30000 us, sensitivity 493. Compensated exposure time 8394 us, sensitivity 110, value 1.997760649087221 is out of range [0.8, 1.2])
java.lang.Throwable(Test failed for camera 0: Exposure compensation ratio exceeds error tolerence: expected(32.000000) observed(15.938196). Normal exposure time 30000 us, sensitivity 455. Compensated exposure time 59999 us, sensitivity 3626, value 0.49806862179487177 is out of range [0.8, 1.2])
java.lang.Throwable(Test failed for camera 0: Exposure compensation ratio exceeds error tolerence: expected(64.000000) observed(16.076068). Normal exposure time 30000 us, sensitivity 524. Compensated exposure time 59999 us, sensitivity 4212, value 0.25118856154580155 is out of range [0.8, 1.2])

解决方案

  1. 先看CTS錯誤訊息

Exposure compensation ratio exceeds error tolerence: expected(0.015625) observed(0.062660). Normal exposure time 30000 us, sensitivity 512. Compensated exposure time 8995 us, sensitivity 107, value 4.010270833333333 is out of range [0.8, 1.2]

如果value值都在2.0上下, 且該顆senso為4cell sensor, 可能為是AE以為要切sensor mode來拍照(但實際上沒有), 並且把亮度墊了一倍上去。 請MW 4cell flow這邊檢查是否沒有正確告知AE有沒有在拍照時切成capture mode

 

  1. 若value值不規則且非4cell sensor,再從MTK debugger log分析

TestRunner: junit.framework.AssertionFailedError: The static info key 'android.control.aeCompensationRange'  range value must be at least [-12, 12], actual [-4, 4], compensation step 1/6

TestRunner:   java.lang.Throwable(Test failed for camera 0: Exposure compensation ratio exceeds error tolerence: expected(0.015625) observed(0.062717). Normal exposure time 30000 us, sensitivity 545. Compensated exposure time 8995 us, sensitivity 114, value 4.013915596330275 is out of range [0.8, 1.2])

TestRunner:   java.lang.Throwable(Test failed for camera 0: Exposure compensation ratio exceeds error tolerence: expected(0.031250) observed(0.062430). Normal exposure time 30000 us, sensitivity 493. Compensated exposure time 8394 us, sensitivity 110, value 1.997760649087221 is out of range [0.8, 1.2])

TestRunner:   java.lang.Throwable(Test failed for camera 0: Exposure compensation ratio exceeds error tolerence: expected(64.000000) observed(16.100899). Normal exposure time 30000 us, sensitivity 514. Compensated exposure time 59999 us, sensitivity 4138, value 0.25157654628728926 is out of range [0.8, 1.2])

 

若出現'android.control.aeCompensationRange'這一行,代表這顆sensor的metadata被動過,理論上必須符合EV範圍-4~+4且step為1/2,才保證MTK的流程無誤。請客戶自行修改成正確metadata

若沒有上述情況,確認類似ALPS05110467的patch有出現在客戶的code base內

q0.mp1.tc16sp: ALPS05110467

原理

測項在設AE Lock且調EV後過一段時間拍照

需在這段時間內把調完EV後的預覽曝光參數交給拍照曝光參數

上述patch就是在實作這件事

作者: RESSRC

个人资源站

发表评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据