高通 Camera HAL3:添加一条PipeLine

news2024/12/27 12:42:03

一.概述

添加一条PipeLine实现两路Raw进,一路Raw出

二.简介

要添加的PipeLine:SWMFMergeRawTwo2One

  • 包含1个memcpy node,
  • 这个node用于将2个raw buffer input输入 变为 1个raw buffer output输出

三.添加 

3.1 在相应的Usecase下添加一个pipeline xml

vendor\qcom\proprietary\chi-cdk\oem\qcom\topology\usecase\components\usecases\UsecaseZSL\pipelines\
目录下放置pipline文件:camxSWMFMergeRawTwo2One.xml

3.2 填充pipline xml文件

填充camxSWMFMergeRawTwo2One.xml

  • (1).SWMFMergeRawTwo2One //PipelineName 是唯一的
  • (2).在NodesList里链接所有需要链接的Node //List all nodes required by the pipeline in

3.3 修改NodesList:

 

  • NodeId:外部定制的Node使用 NodeId 255 (例如自己加的算法Node)
  • NodePropertyId:1是定制的Lib
  • NodePropertyValue:填入chi node lib name

关于 NodeProperty 的相关定义可以在 vendor\qcom\proprietary\chi-cdk\api\common\chi.h 中查到

3.4 修改PortLinkages

PortLinkages:input target,chi/camx Node 和 output target 的链接链表

  • SourceBuffer:NodeId 4
  • SinkBuffer:NodeId 2

所有软件softeware和硬件hardware NodeId的定义可以在 vendor\qcom\proprietary\camx\src\core\Camxhwdefs.h文件中查阅到

Source Target:

  • TARGET_BUFFER_RAW_IN0
  • TARGET_BUFFER_RAW_IN1

需要被填写不同的 NodeInstanceId 

3.5 CamxInclude添加对 pipeline 的引用

在相应的Usecase xml文件中,使用CamxInclude添加对 pipeline 的引用

vendor\qcom\proprietary\chi-cdk\oem\qcom\topology\usecase\components\usecases\usecasezsl\camxUsecaseZSL.xml

3.6 为pipeline添加一个新的target(TARGET_BUFFER_RAW_OUT2)

在camxUsecaseZSL.xml中为 pipeline 添加一个新的 target 定义

3.7 更新vendor\qcom\proprietary\chi\cdk\core\chifeature2\Chifeature2utils.h 文件中的 TargetStreamMap

3.8 为ChiUseCase添加pipeline Id

这个pipeline Id必须和pipeline name一致

\chi-cdk\core\chiusecase\chxadvancedcamerausecase.cpp

3.9 对pipeline id进行添加 

3.10 添加pipeline type

添加pipeline type:\chi-cdk\core\chiframework\chxfeature.h

四.使用

4.1 在Feature2架构的Feature中使用pipeline

在ChiFeature2PipelineDescriptor数组中添加 pipeline

feature target descriptor的target name 必须和pipeline xml文件中的target name保持一致

五.结束

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/610125.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring Cloud Alibaba - Nacos源码分析(一)

目录 一、源码 1、为什么要分析源码 2、看源码的方法 二、Nacos服务注册与发现源码剖析 1、Nacos核心功能点 2、Nacos服务端/客户端原理 2.1、nacos-example 2.2、Nacos-Client测试类 3、项目中实例客户端注册 一、源码 1、为什么要分析源码 1. 提升技术功底&#x…

NB使用MQTT连接格物平台

内容简介: 本文主要记述了怎么使用NB-IoT模块,采用MQTT协议连接联通的格物平台,并且实现单属性和多属性数据的上报。 1 创建产品 打开格物平台,进行注册登录;之后点击页面的控制台,进入设备管理引擎&#x…

爬取中文新闻+正向、逆向最大匹配算法分词+算法优化+P、R、F值评估(完整详细过程+Python源码)

如标题所示,本文旨在记录这次分词实验,将主要从以下四点展开: 1、新闻文本的获取(完整爬虫过程) 爬取新闻网站中多个板块的新闻,这里建议可以多爬一些板块,保证新闻内容主题丰富,分…

计算机网络 - 移动网络

Wireless links and network Characterstics 无线网络信号会衰减很快, 会被别的source影响, 传播过程中经历多个路径比如经过建筑, 树木等收到影响. 所以就有了信噪比的概念 CDMA CDMA是一种在多点连接时候避免collision的一种算法. 主要是每个sender都用不同的编码, 然后se…

chatgpt赋能python:Python声音处理入门指南

Python声音处理入门指南 如果你是一个音乐爱好者或者处理声音的工程师,Python语言是值得你考虑的一种工具,它拥有丰富的库,可以帮助你在声音分析、编辑、压缩和转换等方面做出成果。 Python声音处理库 Python语言拥有一个大量的声音处理库…

电脑通过VNC连接树莓派

0. 实验准备 VNC软件 VNC Viewer 或者 MobaXterm(安装包点击即可下载) 可以使用SSH登录进去或者有屏幕的树莓派 一台可以使用的电脑 树莓派和电脑连接在同一个局域网下 0.5 树莓派的公共操作 打开树莓派的 VNC 功能 有屏幕的 打开 VNC 功能&#xff…

日志框架 --- Logback

文章目录 1. 什么是logback2. logback的日志级别3. 日志级别的层级4. logback配置文件4.1 logger标签4.2 root标签4.3 appender标签4.4 filter标签4.5 encoder标签 5. 整体演示5.1 配置文件5.2 运行结果 1. 什么是logback Logback是一个用于Java应用程序的日志框架&#xff0c…

android 如何分析应用的内存(三)

android 如何分析应用的内存(三) 接上文 细节部分包括如下 native部分 寄存器内容是什么。如pc指向何处,sp指向何处指定地址内容是什么。如变量a对应的内容线程堆栈内容是什么。如主线程的堆栈,UI线程的堆栈堆区的对象有哪些。…

图像边缘提取

什么是图像边缘: 图象的边缘是指图象局部区域亮度变化显著的部分,该区域的灰度剖面一般可以看作是一个阶跃,既从一个灰度值在很小的缓冲区域内急剧变化到另一个灰度相差较大的灰度值。 什么是灰度值: 指图像中点的颜色深度,范围一般从0到255…

C/C++性能提升之cache分析

在开发过程中,我们有时会碰到程序性能瓶颈,这时候需要我们查找热点代码,借用一些命令、工具去分析自己的程序,下面我就介绍一下如何使用perf工具分析程序的cache命中率。 在编写代码前先介绍一下我们的硬件平台,我电脑…

【LeetCode全题库算法速练】2、两数相加

文章目录 一、题目🔸题目描述🔸样例1🔸样例2🔸样例3 二、代码参考 作者:KJ.JK 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 &a…

chatgpt赋能python:Python多行代码一行展示:精简代码,高效编程的绝佳选择

Python多行代码一行展示:精简代码,高效编程的绝佳选择 介绍 在Python的开发中,我们经常需要编写较长的代码,在展示和调试代码时,多行代码会使代码显得过长和复杂。同时,多行代码还会增加代码中的空白行数…

chatgpt赋能python:Python处理颜色RGB简介

Python 处理颜色 RGB 简介 在现代 Web 设计中,颜色的使用非常重要。网站和应用程序的设计师通常需要控制经他们的项目中使用的颜色。最常见的颜色表示方法是 RGB,即红、绿、蓝。RGB 是一种添加光线颜色的方法,它基于红、绿和蓝三种颜色原料的…

Linux操作系统——第一章 进程

目录 基本概念 描述进程-PCB task_struct-PCB的一种 task_ struct内容分类 组织进程 查看进程 通过系统调用获取进程标示符 通过系统调用创建进程-fork初识 进程状态 进程状态查看 Z(zombie)-僵尸进程 僵尸进程危害 孤儿进程 进程优先级 基本概念 查看系统进程 …

【RestAPI】优秀Rest API设计规范

一、API 设计原则 将 REST 映射到 DDD 模式 实体、聚合和值对象等模式旨在对领域模型中的对象施加特定的约束。 在 DDD 的许多介绍文章中,模式是使用构造函数或属性 getter 和 setter 等面向对象的 (OO) 语言概念建模的。 设计 API 时,请考虑这些 API…

前后端分离的前端部署渲染方案总结

前后端分离主要是为了区分后端和前端,以前前端代码是直接将HTML和静态文件丢给后端,由后端完成数据动态交互,所以后端既要写后端逻辑,又要写前端的数据交互逻辑。 前后端分离后后端只需要提供接口,前端则必须要完成对…

安装lora+启动lora+训练一个model

一、安装步骤 conda create -n kohya_ss python3.10.8 cd code git clone https://github.com/bmaltais/kohya_ss.git cd kohya_ss 然后修改了setup.sh里面的xformers里面的下载地址(因为自带的那个地址,拉取需要1个小时,太慢了)…

chatgpt赋能python:Python基础词汇解析

Python基础词汇解析 作为一门流行且易学的编程语言,Python在很多场合得到了广泛的应用。在学习Python编程的过程中,掌握各类基础词汇是非常关键的。本文将介绍Python编程中一些常见且重要的基础词汇,帮助大家更好地了解和掌握Python编程。 …

chatgpt赋能python:Python多级雷达图绘制解析

Python多级雷达图绘制解析 雷达图(Radar Chart)是一种可视化工具,常用于多个指标的对比展示。与其他图形不同,雷达图中,数据不是放在X、Y轴上,而是以多边形的形式展现。利用Python语言,可以绘制…

chatgpt赋能python:Python声音检测:如何用Python实现声音检测

Python声音检测:如何用Python实现声音检测 声音检测是近年来越来越受到关注的技术,它可以应用在很多场合,如语音识别、安防监控等。Python作为一种强大的编程语言,也可以实现声音检测功能。本文将介绍Python声音检测的原理、实现…