高通平台可以dump两种RAW图,一种RAW图遵循标准MIPI CSI2协议,一种RAW遵循高通自有的压缩格式
对于高通MSM8953 android 7.1平台,dump RAW图的指令为:
adb shell setprop persist.camera.raw_yuv 1
adb shell setprop persist.camera.preview_raw 1
adb shell setprop persist.camera.dumpimg 16711696
以RAW10为例,
当rdi模式enable时候
adb shell setprop persist.camera.rdi.mode enable
dump出来的RAW图符合MIPI CSI2协议,具体协议如下图所示

即用5个字节代表4个pixel, 对于RAW10,每个pixel占用10bit,4个pixel = 40bit = 5个字节
默认情况下,高通平台按照64bit对齐
当rdi 模式disable的时候
adb shell setprop persist.camera.rdi.mode disable
dump 出来的RAW遵循QCOM RAW格式

即64bit的word类型存放 6个pixel,每个pixel占用10bit,多出来的4bit为符号位。补0
关于mipi raw数据格式类型,定义在
hardware/qcom/camera/QCamera2/stack/common/cam_types.h
RAW图控制流程的代码位于
hardware\qcom\camera\QCamera2\HAL\QCameraParameters.cpp
int32_t QCameraParameters::getStreamFormat(cam_stream_type_t streamType,cam_format_t &format) {
RAW图查看
使用高通chromatix工具查看时,对于mipi csi2协议的raw,选择mipi格式来查看

对于QCOM RAW, 选择packed格式来查看

另外可以通过属性来修改raw图格式
property_get("persist.camera.raw.format", raw_format, "17");
默认为17,
在hardware/qcom/camera/QCamera2/stack/common/cam_types.h 中有详细介绍,这里不详细阐述
高通不建议同时使能rdi mode和dump raw图,会有一些奇奇怪怪的问题,涉及到ISP内部的设计了,所以高通的CE也无法提供支持
网友评论