首页 > 其他分享 >Pipeline Model

Pipeline Model

时间:2024-04-17 10:46:45浏览次数:20  
标签:Pipeline 创建 配置 PipelineContext 信息 Policy Model

Pipline Model Session

Pipeline Setting Policy

overview:

  

    IPipelineModelManager:一个Logic Device对应于一个Manager。用于创建和管理PipelineModel。

        API:

          get() / getPipelineModel()   当调用 IPipelineModelManager 的 get() 接口时会创建一个IPipelineModel,并会创建一个保存(openID,deviceID,DualCamera)信息的Static Info对象

    IPipelineModel:

        API:

          open() / close()  当调用 IPipelineModel 的 open() 接口时,会创建Open Info,并调用到 IHalDeviceAdapter给sensor上电。

           configure()  当调用 IPipelineModel 的 configure() 接口时,会创建IPipelineModelSession和IPipelineSettingPolicy,

                  通过session和policy去创建PipelineContext,PipelineContext会把各个Node串联起来组成一个Pipeline。

          submitRequest()  当调用 IPipelineModel 的 configure() 接口时,会调用到IPipelineModelSession,创建一个PipelineFrame,放到Pipeline中跑。

          beginFlush() / endFlush()  

    Static Info:get() / getPipelineModel() 被调用时创建,创建后不可更改。

    Open Info:open() / close()被调用时创建,创建后不更改。

    IPipelineModelSession:第一阶段配置时,会产生与Pipeline 和 Policy不相关的信息(openmode,sessionParams,metadata)。创建后不可更改。

               第二阶段配置时,会产生与Pipeline 和 Policy强相关的信息。创建后不可更改。

    IPipelineSettingPolicy: 创建一些策略,并

    IHalDeviceAdapter: 管理sensor的上电下电

    OperationTimeoutHandler:

    IPipelineModelCallback:

 

IPipeline 数据域:

     

    第一阶段的配置信息是独立于Pipeline的,当第一阶段的配置信息输入到IPipelineSettingPolicy会产生第二阶段的信息,根据第二阶段信息产生特定的Pipeline。

    第一阶段的信息:Stream相关信息。

        

    

      第二阶段信息:sensor的设置信息,P1Node硬件设置信息,Pipeline需要哪些Node,streamfeature的设置。

      

       

Pipeline Model:

      

      配置阶段经过第一阶段配置和第二阶段配置后,会根据配置信息生成特定的PipelineContext。

      请求阶段会创建一个PipelineFrame放到PipelineContext 的 Pipeline Queue 运行。

   

ConfigState:

        

         配置Pipeline时,根据第一阶段的信息和IPipelineSettingPolicy,会产生和PipelineContext相关的信息(stream中buffer的数量,CPU的控制),

        最后会这些信息创建出一个PipelineContext

 

RequestState:

 

     

    上层通过函数submitRequest()下放Request到IPipelineModel中的IPipelineModelSession,此时IPipelineModelSession根据IPipelineModelPolicy得到PipelineFrame配置信息。

    再创建出PipelineFrame,放到PipelineContext中跑。

   

IPipelineModelPolicy:

    配置阶段决定一些用于创建PipelineContext的信息。请求阶段决定一些用于创建PipelineFrame的信息。

     

      最上层提供一个IPipelineModelPolicy接口,下层又分为ConfigSettingPolicyMediator 和 RequestSettingPolicyMediator,分别对应以上的配置阶段和请求阶段

      通过以上两个Mediator来串联起各个Policy

 ConfigSettingPolicyMediator :

       

      ConfigSettingPolicyMediator 是一个容器,其中包含了不同模块的Policy,全部Policy进行先后排序产生完整的一个PipelineContext的配置信息。

           PipelineNodeNeed:决定哪些节点是要添加到管道的

          SensorSettingPolicy:决定sensor的mode,size属性

          Configuation_P1HSettingPolicy:摄像头P1的硬件设置

          Configuation_P1DmaNeedPolicy:摄像头P1是否需要DMA

          Configuration_StreamInfo_P1Policy:摄像头P1对应的Stream中的buffer数量(RAW buffer数量)

          Configuration_StreamInfo_NonP1Policy:非摄像头P1对应的Stream中的buffer数量(FD buffer数量)

          StreamingFeatureSettingPolicy:Streaming Feature Setting(VHDR,NR3D)

          ConfigSettingPolicyMediator:确定需要哪些Policy 和 各个policy之间的先后联系。

          ConfigurationAPPStreamInfoMaxBufNumPolicy:app image stream流中跑的最多buffer数量。 

 RequestSettingPolicyMediator:

        

        同样的一个request经过各个Policy进行配置,最后通过IOMAP生成一个Pipeline Frame放到PipelineContext跑。

         FacingDetectionIntent Policy:决定是否使能面部识别

        CaptureSettingUpdate Policy:

        P2NodeDecision Policy:决定哪个P2节点来产生 output image和meta stream

        FeatureSetting Policy:决定streaming和capture所需要的feature,以及这些feature什么时候开关。

        Topology Policy:节点拓扑图,也就是这一次所要跑的Node,以及跑Node的先后顺序。

        IOMAP Policy;P2StreamNode和P2CaptureNode的输入输出。

         RequestSettingPolicyMediator:决定这一个Request需要哪些Policy,以及Policy先后关系。

 源码地址:

    

PipelineModel and PipelineSession:
            /vendor/mediatek/proprietary/hardware/mtkcam3/pipeline/model/

PipelineContext:
            /vendor/mediatek/proprietary/hardware/mtkcam3/pipeline/pipeline/

 

标签:Pipeline,创建,配置,PipelineContext,信息,Policy,Model
From: https://www.cnblogs.com/zsy12138/p/11393352.html

相关文章

  • Pipeline Plugin
    Overview: 1.CameraSetting-->FeatureSetting: 访问一些Pipeline的Plugin的一些信息来决定一个Request走哪条管道和三方算法的挂载点Plugin。2.P2CaptureNode -->CaptureFeaturePipe-->pipelinePlugin:拍照时图片经这个挂载点的三方算法处理(具体包含以下挂载点R......
  • 借助Messenger实现ViewModel间通信(communitytoolkit-mvvm)
    两个VM:MainViewModel,TestViewModel需求:TestViewModel中发消息到MainViewModel处理写法1:  1.MainViewModel中注册消息处理函数WeakReferenceMessenger.Default.Register<string,string>(this,"AddItem",DoMessage)  2.参数2用于校验,参数3为消息处理函数  3.TestViewM......
  • DOM(Document Object Model,文档对象模型)
    DOM(DocumentObjectModel,文档对象模型)是一个跨平台和语言独立的接口,它允许程序和脚本能够动态地访问和更新文档的内容、结构和样式。DOM将文档解析为一个由节点(nodes)和对象(objects)组成的结构集合,这种结构集合是表示文档内容的树形结构。通过DOM,开发者可以创建动态网页,并通过Ja......
  • BOM(Browser Object Model,浏览器对象模型)
    BOM(BrowserObjectModel,浏览器对象模型)是指浏览器提供的一系列与浏览器窗口及脚本进行交互的对象和方法。BOM与DOM有所不同,DOM主要关注于HTML和XML文档的解析和访问,而BOM则更侧重于浏览器窗口和框架,以及浏览器与脚本之间的交互。BOM提供了一些核心对象,这些对象允许开......
  • WPF新建viewModel实例化成员的注意事项
    不要用表达式体去初始化一个用做数据源(比如ItemSource)的引用类型成员。比如这种publicList<MainWindowItem>Items=>newList<MainWindowItem>(){newMainWindowItem{title="项目管理",icon="\ue613",type=typeof(项目管理Control),group="内部管理"},new......
  • 52 Things: Number 51: What is the security model for ID-based encryption, and de
    52Things:Number51:WhatisthesecuritymodelforID-basedencryption,anddescribeoneIBEscheme.52件事:第51件:基于ID的加密的安全模型是什么,并描述一个IBE方案。 Thisisthelatestinaseriesofblogpoststoaddressthelistof '52ThingsEveryPhDStu......
  • OpenFOAM查看Y+报错:Unable to find turbulence model in the database
    计算完成并使用 reconstructPar 重组计算结果之后,使用 postProcess-funcyPlus 查看Y+,报错显示:-->FOAMFATALERROR:UnabletofindturbulencemodelinthedatabaseFromfunctionvirtualboolFoam::functionObjects::yPlus::execute()infileyPlus/yPlu......
  • 【论文随笔】推荐系统综述_推荐模型、推荐技术与应用领域(A Survey of Recommendation
    前言今天读的论文为一篇于2022年1月3日发表的论文,这篇文章是关于推荐系统的综述,主要研究了推荐系统在不同服务领域的应用趋势,包括推荐模型、技术和应用领域。通过分析2010年至2021年间发表的顶级文章和顶级会议论文,系统化了推荐系统模型和技术的研究,并分析了按年份的研究趋势。文......
  • Django ModelSerializer 中如何实现自定义验证
    随着Web开发的日益复杂化,对数据验证的需求也日益增加。DjangoRESTframework提供了一套强大的、灵活的验证系统,帮助开发者轻松处理各种复杂情况。本文将重点探讨DjangoModelSerializer中如何实现自定义验证。1.简介DjangoModelSerializer不仅简化了序列化过程,还内建了......
  • Bridging Causal Discovery and Large Language Models
    本文是LLM系列文章,针对《BridgingCausalDiscoveryandLargeLanguageModels:AComprehensiveSurveyofIntegrativeApproachesandFutureDirections》的翻译。连接因果发现和大型语言模型:集成方法和未来方向的综合综述摘要1引言2背景3问题定义4当前的......