Android Camera MTK框架_mtk camera

AppStreamManager位于framework与pipeline之间,把android streaminfo转换成平台版本的

streaminfo。AppStreamMgr在HAL3架构中的位置(如果底层需要往上层传输数据,就在这里

打包然后传到上层)。

Open阶段:初始化函数,生成各种Handler对象。

ConfigureStreams()阶段:会对stream流做一些解析,把安卓的straminfo转换成MTK平台的

straminfo,打印config的各个steam的信息(三路:拍照,预览,录像)。

request阶段:主要是客制化修改metatada。

result阶段:回调到framework中。

PipelineModel:

PipelineModel就是对整个pipeline进行管理,PipelineModel是HAL3的核心框架,对上需要对

Pipeline创建操作API,对下需要建立Pipeline管理Pipeline生命周期。

open阶段:power on,open/close stage,Power on/off sensor,去操作sersen3A。

config阶段:创建pipelinecontext上下文,里面有很多Node,串联所有的HwNode来组成一条

完整的Pipeline。

request阶段:接到上层queue下来的request,转化为Pipleline统一的IPipelineFrame,

IPepelineFrame把请求Queue到PipelineContext里面去,决定node之间的连接关系。

APP会设置一个buffer,其实就是申请一块内存来装载图像,但是对HAL来说,一个frame它包含了

图像数据,也包含了它经过的哪些node,还有自己的metada数据。

Setting Policy:

主要职责是在Configuration阶段和Request阶段配置一些Setting信息,相当于一个容器,串联起

各个Policy,需要哪些Policy以及他们之间的先后连接关系。

Config阶段的policy主要是功能是pipeline相关setting的决定,包括需要哪些HW Node、各个

node的input/output配置及连接方式等。

Request阶段的policy主要做两件事,一是决定feature相关配置,一是决定pipelineFrame相关

配置。

PipelineContext最终会根据policy决定出来的setting build出对应PipelineFrame queue到底层

跑pipeline。

数据通路:

相机捕捉到的数据,会在TG这里收集后,由每一行转换成每一帧数据。

然后送到Pass1这里,Pass1这里分为RRZO(2400×1800)预览,IMGO(4160×3120)拍照,

YUVO(FD人脸识别),这几部分。

不管是拍照还是预览都要进过Pass2,Pass2主要是由Raw转化成YUV。由Pass2出来后接着

进入TPINode中,TPINode主要是三方算法的接口。

接着进入MDP中,这里面的主要功能是缩放相关的,会影响输出数据的大小,非4:3全尺寸的

照片,比如全屏照片,1:1照片,就是在这里实现的。

最近进过JPEGNode处理后会存入内存中。

metadata:

metadata是元数据,相机一般是根据应用层需要设置的模式,请求不同的元数据metadata,

不同模式的metadata不同。

P1Node:

主要的功能是负责出raw buffer,最后出出来RAW图给P2处理。

P2CaptureNode:

主要作用是把IPipelineFrame转换成P2FrameRequest,建立feature node之间的连接。

feature node:rootNode->p2anode->MultiframeNode(多帧降噪)->YUVNode。

rootNode:做了一些更新metadata的事情,设置需不需要做bss

p2anode:转YUV,MultiframeNode:接多帧算法,处理request的时候根据frameType决定

nodeId是NID_MULTIRAW或者NID_MULTIYUV,YUVNode:接单帧算法.。

P2StreamingNode:

最先由P2StreamingNode接收上层的PipelineFrame封装成MWFrame格式,将Request封装后

送给各个Node,送到P2S Driver去处理(封装的作用是降低耦合性)。SFP在P2StreamingNode

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年嵌入式&物联网开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新!!

入式&物联网开发知识点,真正体系化!**

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新!!

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值