CAF是一步一步推进lens直到画面清晰
PDAF 经常与 CAF 配合使用
PDAF软件流程:
sensor输出带有PD信息的图像数据 -> 经过分离模块
-> ① 图像数据 -> PD Pixel correction 进行坏点矫正(将PD点还原为正常的像素点) -> ISP -> ② PD Buffer相位计算 -> ISP
sensor PD type:
type1 sensor进行 分离 、坏点矫正 、相位计算
type2 sensor进行 分离 、坏点矫正,其他由平台处理
type3 sensor只输出带有PD信息的图像数据,其他由平台处理
1.在eeprom xml中配置PDAF的信息
2.在sensor xml中配置PDAF的信息
3.配置PDAF xml
<PDCommonInfo>
PDAFName imx586_pdaf pdaf 驱动名称
PDOrientation DEFAULT mirror/flip/both
PDDefocusConfidenceThreshold 200
</PDCommonInfo>
<PDModeInfo>
PDSensorMode 0 对应sensor resolution idx
PDType PDType2 type 1 2 3
PDAFLibraryName com.qti.stats.pdlib pd 算法库
<PDSensorNativePatternInfo>
PDNativeBufferFormat MIPI10 pd 数据格式
PDBlockCountHorizontal 248 width,单位block
PDBlockCountVertical 186 height, 单位block
<PDBlockPattern>
PDPixelCount 32 一个block里pd点数量,包括左右pd
<PDPixelCoordinates>
PDXCoordinate 19 x坐标
PDYCoordinate 13 y坐标
PDPixelShieldInformation RIGHTSHIELDED LEFT pd,屏蔽右半部
</PDPixelCoordinates>
<PDBlockDimensions>
width 16 Block分辨率
height 16 Block分辨率
</PDBlockDimensions>
PDOffsetHorizontal 17 Block 第一个pixel偏移
PDOffsetVertical 12 Block 第一个pixel偏移
</PDBlockPattern>
<PDCropRegion>
xStart 0 x坐标
yStart 0 y坐标
width 4000 frame 宽
height 3000 frame 高
</PDCropRegion>
PDDownscaleFactorHorizontal 1 水平下采样
PDDownscaleFactorVertical 1 垂直下采样
</PDSensorNativePatternInfo>
<PDBufferBlockPatternInfo>
PDStride 1984 pd stats 行buffer大小(一个pixel占两个字节,sensor中pd的width * 2)
PDBufferFormat UNPACKED16 一个pd占16个bit
<PDBlockPattern>
PDPixelCount 32 pd像素个数
<PDPixelCoordinates>
PDXCoordinate 0 x坐标
PDYCoordinate 0 y坐标
PDPixelShieldInformation RIGHTSHIELDED left pd
…
</PDPixelCoordinates>
<PDBlockDimensions>
width 4 pd宽(block)
height 8 pd高(block)
</PDBlockDimensions>
PDOffsetHorizontal 0 Block 第一个pixel偏移
PDOffsetVertical 0 Block 第一个pixel偏移
</PDBlockPattern>
</PDBufferBlockPatternInfo>
</PDModeInfo>
PDAF 验证
echo “enablePDLibDump=1” >> /vendor/etc/camera/camxoverridesettings.txt
adb shell killall android.hardware.camera.provider@2.4-service_64
Open camera and focus
adb pull /data/vendor/camera/pdaf_input_single.raw