第15讲 CRM之Pipeline Delay是什么

2024年11月05日 第15讲 CRM之Pipeline Delay是什么 极客笔记

本讲是Camera KMD ISP子系统专题的第15讲,我们讲解Camera KMD ISP子系统CRM之初识PipelineDelay。

更多资源:

资源 描述
在线课程 极客笔记在线课程
知识星球 星球名称:深入浅出Android Camera
星球ID: 17296815
Wechat 极客笔记圈

Realtime Pipeline

Realtime pipeline或实时Pipeline,在这个Pipeilne上的硬件设备有一些特点:

  • 实时,实时是指streamon后一直在出图,如下图的蓝色线(flash和actuator不会出图,但也是挂载到Realtime pipeline上面)
  • 图像数据不是来自DDR

Realtime Pipeline CaptureRequest的布局

什么是RPC

RPC: Realtime Pipeline CaptureRequest

RPC的布局

RPC包括Settings和Buffers,这个跟Android里面定义的CaptureRequest概念’类似’。

  • Settings里面包括各Realtime硬件设备的参数(ISP,Sesnor、Actuator等)
  • Buffers里面包括各路图像数据Buffer,各统计数据Buffer(也就是当前Request要求ISP需要输出的所有数据信息)

RPC CaptureRequest转换为Device Request

RPC CaptureRequest实际在使用的时候会拆成Device Request

  • ISP Output buffers,整个Realtime pipeilne最后只有ISP来写DDR, Buffers都给它

  • ISP Settings,比如ISP内部各IQ模块的参数设置

  • Sensor settings,比如曝光时间、Gain

  • Actuator Settings,比如马达要推到哪个位置(DAG值)

Pipeline Delay

只有Realtime pipeline才会有Pipeline delay(我们也叫Device delay),它表示的是当前硬件设备需要过多少帧才能生效当前的配置,不同的硬件设备有不同的Pipeline delay。

Sensor 设备的Pipeline Delay

假如我们在下图Frame 1的SOF修改了Sesensor的settings,实际生效的可能会在Frame 3,这样的话Sensor的Pipeilne delay就是2。

同理,Frame 2配置的参数要在Frame 4才生效,以此类推。

实际代码中Sensor的Pipeline delay配置:

int cam_sensor_publish_dev_info(struct cam_req_mgr_device_info *info)
{
    info->p_delay = CAM_PIPELINE_DELAY_2;
}

ISP 设备的Pipeline Delay

假如我们在下图Frame 1的SOF修改了ISP的settings,实际生效的会在Frame 2,这样的话ISP的Pipeilne delay就是1。

实际代码中ISP的Pipeline delay配置:

static int __cam_isp_ctx_get_dev_info_in_acquired(struct cam_context *ctx, struct cam_req_mgr_device_info *dev_info)
{
    dev_info->p_delay = CAM_PIPELINE_DELAY_1;
}

总结下:

  • Pipeline delay就是device delay,描述的是该硬件设备需要多少帧才能生效设置

  • Pipeline delay 1的硬件设备: isp, flash, actuator

  • Pipeline delay 2的硬件设备: sensor

本文链接:http://so.lmcjl.com/news/17095/

展开阅读全文