展锐平台的手机camera 系统isptool 架构

展锐平台的isptool 主要用于支持展锐各代芯片isp的各效果模块快速tuning和参数生成打包。

具体需要:
一、工具段能在线实时预览到调试sensor经过isp 处理后的图像,也就是各模块的参数在当下实时生效,通过工具能在PC 上在线观看到修改的效果。
二、工具能进行拍照,生成过程中不同格式的图片,包括raw图,yuv图,jpeg图三种格式。其中jpeg 图中的exif 暂存了tuning效果模块的参数。这样tuning 人员对比raw图,jpeg图就能分析到tuning模块的配置和原始和最终效果全部的信息。这样能离线后能方便不同人员的分享对比。
三、 针对各种场景的效果参数打包优化,做到能整体参数压缩优化,在手机上相机运行加载时快速解析。

建立关闭工具链接

展锐isptool 通过usb 和手机连接,在手机侧的驱动默认集成在camera的HAL分层驱动里面,它通过socket 这套接字接口来实现建立侦听,实现和pc tool建立链接和断开关闭。在手机相机HAL 驱动open的时候,自动打开这个usb socket的侦听,如果pc 端的isptool 通过usb 插入手机,这个连接的请求会被侦听到,手机端和pc端就会建立连接。后续通过自定义的usb 协议来完成上述的预览拍照,传递tuning参数的功能。如果pc端断开usb 链接,在主动断开或者被动断开超时时关闭这个socket连接,重新进行下一次的侦听。

手机侧的isptool驱动在camera 分层驱动的位置如图所示,在sprd_oem 的位置红色框图位置,在HAL open的时候,socket server 生成,随后进行侦听,在usb 链接到PC后,可以通过isptool 主动打开手机相机,开启PC端摄像头预览界面,也可以先打开手机相机,让isptool 开启PC端摄像头预览。
在这里插入图片描述

工具预览

在isptool 打开摄像头成功后,默认就是实时预览的界面,能在PC 上看到每一帧的活动视频,选择使用对应的芯片版本,选择配置各种效果模块的参量,就能通过usb 协议将效果参数实时刷入到ISP的硬件系统中去,在PC 端看到效果的变化。

预览的实现是通过cmr_preview 模块输出给hal的图像帧数据包复制,然后通过usb server socker传输到isptool,这样在pc端预览的时候,也不妨碍手机端的预览。
参数下发是usb server socker接收到isptool发过来的各种参数,解析后通过isp tuning para 的接口,将参数层层下发到最终的ISP硬件系统的各效果模块中。

参数打包

如果在预览界面选择工具条上的“参数打包输出”,将效果参数整体都按照手机上需要的格式打包保存,输出的文件格式为C 的结构数组格式,可以复制到上图的 isp tuning para层的效果源文件去,这样编译hal分层驱动会整体编译到项目中。

工具拍照

工具拍照和手机端离线的raw 拍照过程是一样的,所不同的是在拍照的阶段将拍照所得的raw图,yuv图,jpeg图都通过usb 上传到工具了。也是和预览类似,在cmr_snapshot模块输出帧到HAL的同时,复制这个帧通过usb server socker传输到isptool。这样手机端就能接收到各种格式的图像了,所不同的是,手机端不再保存raw图,jpeg图到本地了。

在这里插入图片描述

raw 拍照和工具拍照的流程图如上。
首先sensor通过mipi dphy->mipi rx->DCAM0 的没有任何效果的full path 输出sensor 过来的原始raw image,给到HAL 驱动的cmr_snapshot 的这个拍照模块,拍照模块会根据当前的模式,实现本地暂存或者通过usb传输送到isptool去。
然后这个这个raw image会从cmr_snapshot模块传递回内核驱动,通过offline的fetch 送到DCAM1模块,通过bin path 输出到内部 使用的raw1 image,这个raw1 image 是经过isp tool 配置到dcam 部分的效果参数配置,由DCAM bin path 上生成的raw1 image,和原始的raw image不一样。
这个处理后的raw1 image 然后输入到 isp模块,最终经过full RGB,YUB 域处理,输出YUV 图。传递到HAL的cmr_snapshot拍照模块,由该模块决定根据当前的模式,实现本地暂存或者通过usb传输送到isptool去,然后是变换成320*240的图标小图,再一起合成jpeg图,实现本地暂存通过usb传输送到isptool去。
raw 拍照和工具拍照的整体流程是这样设计完成的

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

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

相关文章

【企业微信】群机器人自动消息配置

0、群聊机器人 内部企微群聊可以添加一个机器人,这个机器人其实是个消息接口,可以外部脚本来自动定时发送消息到群里,打工人最有用的提醒就是每周提醒发周报了。 1、创建机器人 一般公司都没有人使用,我们可以手动创建一个。 …

小程序开发设计-小程序的宿主环境:宿主环境简介⑥

上一篇文章导航: 小程序开发设计-小程序代码的构成:小程序页面的组成部分详解⑤-CSDN博客https://blog.csdn.net/qq_60872637/article/details/142306902?spm1001.2014.3001.5501 注:不同版本选项有所不同,并无大碍。 目录 上…

OpenHarmony(鸿蒙南向开发)——小型系统内核(LiteOS-A)【用户态内存调测】

往期知识点记录: 鸿蒙(HarmonyOS)应用层开发(北向)知识点汇总 鸿蒙(OpenHarmony)南向开发保姆级知识点汇总~ 持续更新中…… 基本概念 Debug版本的musl-libc库为用户提供内存泄漏检测、堆内存…

2024在线翻译工具横评:准确率、速度与易用性大比拼

在日常的学习与生活中,翻译工具无疑成为了我们迅速获取国际新闻与知识的得力助手。起初,我倾向于依赖有道在线翻译这一平台来解决我的语言障碍问题。然而,随着对翻译质量要求的提升和多元化比较的需求增加,我进一步探索并发现了数…

从入门到精通:计算机视觉学习路线与实战项目推荐

全面解析计算机视觉的学习路径,深入探讨关键技术与实战项目,助您快速掌握核心技能 引言 随着人工智能的飞速发展,计算机视觉已成为AI领域中最具潜力和应用价值的分支之一。从自动驾驶到医疗影像分析,计算机视觉技术正在改变我们的…

vue/配置axios(前后端数据连通/api接口的调用)

1.创建apis文件 2.写入调用的api地址且暴露出去。 import httpInstance from /utils/http;export function getHomeNav() {return httpInstance({url: http://10.0.11.91:91/dailyreport/getdailyreportall,}) }3.创建文件编写拦截器 代码部分 //axios基础封装 import axio…

OpenCV 3

模板匹配方法 尽量采用归一化的方法,因为它更加精细。 匹配效果展示 匹配单一图像 这是一段Python代码,主要使用了OpenCV库进行图像处理。这段代码的主要功能是通过模板匹配方法在一张大图中找到一个小图的位置。 具体来说: - 第一行的for…

Docker:解决开发运维问题的开源容器化平台

云计算de小白 Docker是一个开源的容器化平台,可以将应用程序及其依赖的环境打包成轻量级、可移植的容器。 Docker为什么这么受欢迎呢?原因很简单:Docker可以解决不同环境一致运行的问题,而且占用资源少,速度快。 所以好的东西…

Leetcode—329. 矩阵中的最长递增路径【困难】

2024每日刷题&#xff08;165&#xff09; Leetcode—329. 矩阵中的最长递增路径 dfs dp实现代码 class Solution { public:int longestIncreasingPath(vector<vector<int>>& matrix) {// 9 9 4// 6 6 8// 2 1 1// 1 1 2// 2 2 1// 3 4 2int m …

Three.js 3D人物漫游项目(下)

本文目录 前言最终效果1、效果回顾2、编写人物模型动画执行类并调用2.1 代码2.2 代码解读2.3 实例化动画类并调用2.4 效果2.4.1 休息动画2.4.2 跑步动画2.4.3 走路动画2.4.4 舞蹈1动画2.4.5 舞蹈2动画3、键盘控制动画3.1 站立休息、走、跑、舞蹈1、舞蹈2代码3.1.1 效果3.2 跳跃…

Matlab|基于遗传模拟退火算法的风电功率聚类分析

目录 主要内容 部分代码 结果一览 下载链接 主要内容 模糊C-均值聚类&#xff0c;也称FCM&#xff0c;是比较常用的一种聚类算法&#xff0c;该算法利用几何贴进度的概念将不同数据分配到不同聚类群中&#xff0c;但是作为局部搜索优化算法&#xff0c;初值选择不…

趣味运动会随机分组指南

如何实现男女比例平均分组&#xff1f; 组织趣味运动会时&#xff0c;如何确保男女比例平均且分组公平是一个关键问题。利用云分组小程序&#xff0c;我们可以轻松实现这一目标&#xff0c;让活动更加有趣和公平。 以下是详细的操作步骤&#xff1a;步骤一&#xff1a;创建分组…

生信技能59 - 基于GATK CallingSNP变异检测及注释流程

1. 流程说明 使用BWA MEM比对,如果文件较大,可使用bwa-mem2进行比对,速度会有很大提升;使用GATK对BAM进行排序和标记重复,再使用GATK HaplotypeCaller + GATK GenotypeGVCFs进行变异检测,生产.g.vcf文件,提取SNP并使用annovar进行位点注释。 使用bwa-mem2进行比对,获…

畅阅读微信小程序

畅阅读微信小程序 weixin051畅阅读微信小程序ssm 摘 要 随着社会的发展&#xff0c;社会的方方面面都在利用信息化时代的优势。互联网的优势和普及使得各种系统的开发成为必需。 本文以实际运用为开发背景&#xff0c;运用软件工程原理和开发方法&#xff0c;它主要是采用j…

MCU自动测量单元采集振弦式应变计测值的过程

振弦式应变计是一种广泛应用于土木工程、地质勘探等领域的高精度传感器&#xff0c;用于测量结构的应变变化。近年来&#xff0c;随着微控制器单元(MCU)的发展&#xff0c;自动化测量技术得到了极大的提升&#xff0c;使得振弦式应变计的测值采集更加高效和精确。本文将详细介绍…

软件测试面试八股文(含文档)

&#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 一般软件测试的面试分为三轮&#xff1a;笔试&#xff0c;HR面试&#xff0c;技术面试。 前两轮&#xff0c;根据不同企业&#xff0c;或有或无&#xff0c;但最…

html+css学习

html 元素 html元素是HTML的根元素&#xff0c;一个文档只能有一个&#xff0c;其他所有元素都是其后代元素 html有一个属性为lang&#xff0c;其作用是&#xff1a; 帮助语言合成工具确定要使用的发音帮助翻译工具确定要使用的翻译规则 当属性lang“en”则表示告诉其浏览器…

【数据结构】散列(哈希)表简单介绍

散列表也叫做哈希表&#xff08;Hash table&#xff09;&#xff0c;散列表通过关键码和存储地址建立唯一确定的映射关系&#xff0c;能够快速查找到对应的元素&#xff0c;排序算法中的计数排序就是一种利用哈希进行排序的算法。 一、散列表的概念 散列表&#xff08;Hash ta…

一篇大模型Agent记忆机制研究综述

转自&#xff1a;PaperAgent 基于大型语言模型&#xff08;LLM&#xff09;的智能体最近吸引了研究和工业社区的广泛关注。与原始的大型语言模型相比&#xff0c;基于LLM的智能体以其自我进化能力为特色&#xff0c;这是解决需要长期和复杂智能体-环境交互的现实世界问题的基础…

10.安卓逆向-安卓开发基础-api服务接口设计1

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a;图灵Python学院 本人写的内容纯属胡编乱造&#xff0c;全都是合成造假&#xff0c;仅仅只是为了娱乐&#xff0c;请不要盲目相信。 工…