海思拍照

使用函数:
HI_MPI_SNAP_EnablePipe
HI_MPI_SNAP_TriggerPipe

注意
WDR 模式不支持拍照
单pipe 使用startpipe 和 trigger
双pipe 使用enablepipe 和 trigger

ZSL 模式拍照
ZSL 模式的拍照通路和双 pipe 离线模式的拍照通路一样, 区别是 VI 驱动内部会缓存
一个 RAW 数据的队列。 在调用 HI_MPI_SNAP_EnablePipe 接口后, VI 内部就开始缓
存 RAW 数据, 调用 HI_MPI_SNAP_TriggerPipe 接口会选择 ZSL 的拍照帧,然后将拍
照的帧送给 ISP 做处理。
并行模式拍照
由于 VI_PROC 性能最大是 [email protected], 在 VI_CAP 输入大数据量的时序超过
[email protected] 时,需要采用并行模式。 在这种模式下,也支持调用 MPI 接口来拍照。
单 pipe 离线模式拍照
海思拍照
相对使用较多。
海思拍照
感觉上与在线没什么区别,进入了一次DDR 。 使用一个pipe 情况,可能是因为多sensor 方案,8个pipe 不够分的情况。这两种情况适用于拍摄 NORMAL 和 PRO 模式的照片。

如果显示分辨率和拍照分辨率不相同,相当于DV相机一样,可以使用双pipe离线和双pipe在线两种方式。推荐双离线方式,这种方案在功耗控制上是最优的。

双pipe 离线模式
海思拍照
上pipe 用于录像和视频的预览。下面的pipe 用于拍照。lcd 等一般分辨率较小,使用了bayer scale 功能。
曝光是由上面的pipe 控制的。

用户设置拍照相关的属性和触发拍照接口,用的 pipe 号都是下面那个拍照用的 pipe,
内部的数据同步由 VI 和 ISP 的驱动来完成。

这个地方不太明白, 如果在PRO拍照,控制曝光,需要控制sensor,但是控制sensor 的重任是在上面的pipe,那么如何知道是上面的pipe 哪。一会看看软件代码。也许这部分想多了。

这种数据通路可以用于 NORMAL 和 PRO 模式的拍照。 PRO 模式是在用户调用
HI_MPI_SNAP_TriggerPipe 接口之后才开始控制 sensor 进行长短曝光的。

双pipe离线时,拍照的pipe在用户调用HI_MPI_SNAP_TriggerPipe 接口时才打开中断做数据处理,并且并且只处理抓拍的那几帧数据,抓拍完成后VI 内部自动关闭拍照的那个pipe的中断,定制数据处理。理论上来说从调用HI_MPI_SNAP_TriggerPipe 接口到VI 输出第一张正常的YUV数据,理论上的耗时时3帧。

双pipe 在线模式
海思拍照
双pipe 在线拍照,用户调用HI_MPI_SNAP_EnablePipe之后就有数据流处理,但VI 并不输出YUV,只有用户调用了 HI_MPI_SNAP_TriggerPipe 之后才输出YUV。trigger 后理论上的时间小于1帧。但是要求enable 和 trigger 两个接口的调用时间要大于两帧。 就是说准备拍照的时候就要提前打开enable了。

normal 模式包括ZSL 模式。
拍照时候可以加载自己的CCM 矩阵。
pro类型拍照要设置自动还是手动模式
手动模式设置ISP的曝光时间 (微秒)和 ISP 手动模式的系统增益,10bit 精度。但是没有提及此ISP 增益是属于sensor 的还是整个ISP 。 如果整个ISP 的,那么ISPgain again 和 dgain 如何分配。 还是否按照ae route的方式进行分配。
自动模式设置每张图片的曝光等级。是以当前的通道的曝光量为基准,增益保持不变,根据曝光时间等级调节曝光时间。
ExpTime_i = ExpTime_base*au16ProExpStep[i]/256
ExpTime_i大于当前设置的最大曝光时间时,ISP会自动进入慢快门模式,是曝光时间等于ExpTime_i
当 ExpTime_i 小于设置的最小曝光时间时,实际曝光时间等于设置的最小曝光时间
可以设置PRO的sharpen 参数 和BNR 参数。 不确定整个auto模式下, 是怎么个情况。 是按照ISO去选择对应的等级?那么这拍照的设置可能要累死人了。

拍照后处理算法(Hi3519AV100,hi3516cv500 不支持 ,3559A和HI3556av100 支持)、
后处理算法有HDR,MFNR,SFNR,DE 这几种。 拍照的算法是运行在cpu和dsp上的软件算法。海思已经弄好了,加载bin文件的方式去使用。 也可以自己使用cadence dsp 软件进行dsp 的开发。

 HDR(High Dynamic Range)
HDR 图像后处理算法,能提升图像的动态范围;通过拍照的 PRO 模式拍照,得
到多张曝光时间和增益可调的图片,然后经过 HDR 算法模块合成为一张具有高动
态范围的图像,相比普通的图像, HDR 可以提供更多的动态范围和图像细节。
 SFNR(Single frame noise reduction)
单帧降噪。
 MFNR(Multi-frame noise reduction)
多帧降噪。
 DE(Detail enhancement)
细节增强。 ISP 中的 BNR 处理, 会造成图像中一些细节信息的丢失, DE 算法可
以补偿这些丢失的图像细节信息。 DE 算法的输入是一张 YUV 和 BNR 写出的
RAW, 输出是一张细节增强过的 YUV。

HDR 合成当前仅支持三合一, 就是输入三帧不同曝光的连续 YUV,输出一帧高
动态范围的 YUV。三帧的输入顺序依次是短曝光的 YUV, 正常曝光的 YUV, 长
曝光的 YUV。
MFNR 当前仅支持四合一,输入是四帧连续的正常曝光的 YUV, 输出是一帧经过
时域和空域降噪的 YUV。
DE 算法需要的 BNR RAW 数据是通过 HI_MPI_VI_GetPipeBNRRaw 接口获取的
算法处理的输入 YUV 数据,仅支持处理 NV21 格式(也就是
PIXEL_FORMAT_YVU_SEMIPLANAR_420 格式)的非压缩数据,输入图像的动
态范围仅支持 DYNAMIC_RANGE_SDR8 的。
MFNR 算法做完后,可以再对输出后的 YUV 做一次 DE 算法处理。 DE 算法需要
的 BNR RAW 数据可以是 MFNR 输入的四帧 YUV 里面任意一帧 YUV 对应的
BNR RAW。‘