自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 收藏
  • 关注

原创 【Camera KMD ISP SubSystem笔记】Request 流转与Bubble机制

/把出现bubble request开始到last appiled之间的request都标为CRM_SLOT_STATUS_REQ_ADDED,__cam_req_mgr_apply_on_bubble(link, err_info);

2024-04-27 16:54:40 955 2

原创 【Camera KMD ISP SubSystem笔记】CRM V4L2驱动模型

2. cpas为子设备 /dev/v4l2-subdev0,先创建 v4l2_subdev,v4l2_subdev的list指向v4l2_device的subdevs(链表节点)v4l2_subdev的v4l2_dev指向v4l2_device,v4l2_subdev的entity链接到media_device的entities上(链表节点)v4l2_device的mdev指向media_device,v4l2_device的entity链接到media_device的entities上(链表节点)

2024-04-23 23:47:44 377 2

原创 【Camera Sensor Driver笔记】七、点亮指南之Flash

registerAddr 0x2 flashhigh setting寄存器地址。echo 1 >` led\:flash_0/brightness //开启flash,高亮几秒后熄灭。echo 1 >` led\:torch_0/brightness //开启手电筒,闪光灯常亮。echo 0 >` led\:flash_0/brightness //关闭flash。echo 0 >` led\:torch_0/brightness //关闭手电筒。

2024-04-22 22:35:23 407

原创 【Camera Sensor Driver笔记】六、点亮指南之PDAF

> ① 图像数据 -> PD Pixel correction 进行坏点矫正(将PD点还原为正常的像素点) -> ISP -> ② PD Buffer相位计算 -> ISP。PDStride 1984 pd stats 行buffer大小(一个pixel占两个字节,sensor中pd的width * 2)PDPixelCount 32 一个block里pd点数量,包括左右pd。PDYCoordinate 0 y坐标。

2024-04-22 12:53:57 866

原创 【Camera Sensor Driver笔记】五、点亮指南之Actuator配置

dampingStep 0x3FF dac最大值,未使用。dampingStep 0x3FF dac最大值,未使用。<registerConfig> DAC register 配置信息。registerAddr 0xED IC寄存器地址。registerData 0xAB IC寄存器值。registerAddr 0x03 寄存器地址。registerData 0 dac值,未使用。

2024-04-22 00:10:56 484

原创 【Camera Sensor Driver笔记】四、点亮指南之EEPROM配置

lensSagCalMac DEFAULT/DEG0_OTP/DEG180_OTP 近焦姿势差补偿。lensSagCalInf DEFAULT/DEG0_OTP/DEG180_OTP 远焦姿势差补偿。illuminantType D65/TL84/A/D50/H 色温。configValue 0 电压/电平/时钟状态。configValue 0 电压/电平/时钟状态。

2024-04-22 00:08:00 1017

原创 【Camera Sensor Driver笔记】三、点亮指南之Sensor DTS

== camera sensor 接口配置xxsensor.cpp -> xxxsensor.soCalculateExposure 函数 pCalculateExposure函数 (平台)输入参数: pCalculateExposureData realgain :total gain,ae算法传过来的值或者手动曝光的值 linecount:经过平台已经转换过的曝光时间 middlerealg

2024-04-19 12:24:18 642

原创 【Camera Sensor Driver笔记】二、点亮指南之Sensor Module XML

registerAddr 0x0600 sensor寄存器地址。registerAddr 0x0112 sensor寄存器地址。registerAddr 0x0136 sensor寄存器地址。registerAddr 0x0100 sensor寄存器地址。registerAddr 0x0104 sensor寄存器地址。registerAddr 0x0104 sensor寄存器地址。

2024-04-18 23:07:04 869

原创 【Camera Sensor Driver笔记】一、Sensor基本概念

lineLengthPixelClock(hts):对应sensor实际寄存器值, width + HBlank。frameLengthLines(vts):对应sensor实际寄存器值,height + VBlank。2. OutputPixelClock:给mipi传输使用的,影响sensor传输的速率。LineReadoutTime:sensor是行曝光,即一行数据读完的时间。1. VTPixelClock:会影响sensor内部的帧率、曝光。== Sensor 帧率。== Sensor 曝光。

2024-04-17 23:17:57 623

原创 【Camera Framework笔记】四、流程梳理 - getCharacteristics&openCamera

score 打开当前Camera的客户端进程oom_adj score,这个值越大越容易被LMK干掉,前台进程这个值为0。score 打开当前Camera的客户端进程oom_adj score,这个值越大越容易被LMK干掉,前台进程这个值为0。state 打开当前Camera的客户端进程的状态,值越小优先级越高。state 打开当前Camera的客户端进程的状态,值越小优先级越高。权限检查、输入参数检查->camera抢占逻辑->client初始化->device初始化。

2024-04-15 13:12:41 413

原创 【Camera Framework笔记】三、Camera Native Framework架构②

FrameProcessorBase拿到Result Metadata后会回调给CameraDeviceClient,CameraDeviceClient再通过onResultReceived接口回调给上层。camera3device根据配置信息决定创建 camera3inputstream camera3outputstream camera3sharedstream。CameraDeviceClient收到上层的调用后,会对应调用到Camera3Device,进而调用到HAL层的接口。

2024-04-14 18:09:18 358

原创 【Camera Framework笔记】二、Camera Native Framework架构①

上层调用到 cameraservice后,cameraservice 调用cameraprovidermanager, cameraprovidermanager 通过 providerinfo对象 调用到 providerinfo类,providerinfo 中通过遍历 device调用到 deviceinfo -> deviceinfo3 -> aidlDeviceinfo3/hidlDeviceinfo3 类中。basicClient又可以调用到 cameraservice。

2024-04-14 18:07:00 396

原创 【Camera 性能笔记】六、Perfetto分析及SQL

uninterruptible sleep NON IO 不可中断的休眠,非IO 在等内核锁,通常是低内存导致等待。mem.locked VmLck VmLck代表进程已经锁住的物理内存的大小.锁住的物理内存不能交换到硬盘。mem.rss VmRSS RSS值,这里的值是RssAnon、RssFile和RssShmem的和。oom_score_adj oom_score_adj 当前该进程的OOM Score ADJ值。

2024-04-13 00:23:21 498

原创 【Camera Framework笔记】一、Cameraserver简介及启动、实例化流程

并将以上两个参数add到 servicemanager,这时cameraservice就已经成功注册到servicemanager中了,查看命令:service list | grep -i “media.camera”此时new出来的 cameraservice 会赋值给sp(调用完cameraservice构造函数后,继续调用CameraService::onfirstRef)tcp通信中,比如 a与b通信,如果b关闭了通信,系统会发出一个sigpipe信号给a,告诉a连接已经断开。

2024-04-10 23:41:45 406

原创 【Camera 性能笔记】五、启动、切换、拍照性能分析

initializeimpl、cameradeviceclient::initializeimpl、camera2clientbase::initializeimpl、camera3device的initializeimpl、camerahal::opensession。cameraserver:createstream-> cameraserver:endConfigure的结束点。调用camera3device的createstream、new camera3outputstream。

2024-04-09 13:22:58 530

原创 【Camera 性能笔记】四、帧率之预览、录像trace分析

EmulateSensor中有threadlloop和processresult,鼠标全选整个周期,用selected range / (result的occurrences / 2) ,除以2是因为result中同时包含meta和buffer,我们只需要buffer。从app角度做第一手分析,看是hal送的帧率问题,还是app处理buffer导致的问题。如果deepth是8个,fw下8个pcr,hal处理8个pcr,fw下第9个时会卡住。1.HAL处理慢:cameraserver的pcr时间会很长。

2024-04-07 13:10:09 419

原创 【Camera 性能笔记】二、软件栈

2.still capture结束会有一个 queuebuffer上来,binder transaction调用到app进程imageReader。4.继续 queuebuffer,onframeavailable,binder transaction调用到sufaceFligure。(queuebuffer:送 buffer,dequeuebuffer:取 buffer)3.binder transaction 调用到app进程的binder reply。为1时表示 预览或拍照buffer。

2024-04-01 13:07:08 171

原创 【Camera 性能笔记】一、perfetto关键操作

flow events : 通常用于binder transaction 到 binder reply之间,可以通过[ 和 ] 进行切换。privot table弹出框中点击edit -> select a cloumn 选择name stack -> add、query。perfetto网站 -> support flag -> privot table -> enable。搜索关键词之后,可以点击f 进行快速显示。如何打开privot table。shift m 永久选中区域。

2024-04-01 00:09:35 186

原创 【OHOS】Camera - NAPI 异步编程

目前鸿蒙媒体框架相机部分,常见的异步方式共两种。表现形式:func(): Promise<Object>表现形式:func(callback: AsyncCallback<boolean>): void两者的差异:通过参数中是否传递callback函数进行区分。本文主讲cameraPicker中遇到的Promise异步方式。

2024-03-18 13:19:23 391

原创 【OHOS】相机框架学习大纲

官网参考资料:OpenHarmony: OpenHarmony是由开放原子开源基金会(OpenAtom Foundation)孵化及运营的开源项目,目标是面向全场景、全连接、全智能时代,搭建一个智能终端设备操作系统的框架和平台,促进万物互联产业的繁荣发展。CSDN openharmony社区资料:https://bbs.csdn.net/forums/openharmony?typeId=21526CSDN参考资料:【OpenHarmony】首次开发指南_hdc loader-CSDN博客官网参考资料: m

2024-03-18 13:10:02 998

原创 【Qcom Camera】Camx架构Chi External Node 三部曲之简单集成

2.1 更改文件名称,并在camxchinodememcpy2.cpp中,需要将node的 sectionname更改为com.qti.node.memcpy2.到这里,基本集成流程也差不多了,当然,算法集成不可能一帆风顺,也不会这么简单。这里只介绍大概的流程,仅供了解,有错误的地方欢迎指出。每个node的sectionname需要与mk文件中要生成的so文件名相对应。二、现在已经有了算法库,该如何应用到具体的相机场景中去呢?这里我们不去关注算法本身,只关注集成流程----简单集成。

2023-06-13 22:06:39 886

原创 【Qcom Camera】Camx架构Chi External Node 三部曲之如何加载

qcom camx

2023-04-13 21:23:07 1290 1

原创 【PCK】Camera性能与内存 Q&A

Camera性能与内存 Q&A

2022-09-20 22:23:00 678

原创 【MTK Camera】sensor bringup guide [随笔]

mtk camera

2022-09-20 22:08:00 1689

原创 【Qcom Camera】基于OTP物料代码区分前摄硬件信息的代码实现

camera eeprom

2022-09-18 14:37:53 859

原创 【Qcom Camera】Outlook v4.2032.2新建邮件拍照,预览画面和拍照卡顿

三方app卡顿

2022-09-18 14:28:56 1109

原创 【Qcom Camera】HEIC fail相关的CTS 问题

camera cts

2022-09-18 14:24:20 257

原创 【Qcom Camera】解决CTS testFlashControl fail

Camera cts

2022-09-18 14:22:00 638

原创 【Qcom Camera】照片模式连拍定屏分析

连拍定屏

2022-09-18 14:17:23 250

原创 【Qcom Camera】发送彩信时拍照切换图库在切换相机时出现短暂黑屏

warm start

2022-09-18 14:10:17 479

原创 【Qcom Camera】骁龙相机如何添加picturesize

骁龙相机如何添加picturesize

2022-09-18 14:03:27 269

原创 【Qcom Camera】后主摄启动慢问题分析

camera 启动慢

2022-09-18 13:56:52 836

原创 【Qcom Camera】微距eeprom调试

微距eeprom调试

2022-09-18 13:45:30 1002

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除