前言:

  Camera 需要快速启动, 以第一时间抓拍到图像,君正官方给的第一帧图像是200ms,实际应用中时间会长不少。

1.尽快运行主程序

 主程序应该放置在 rootfs 中并第一时间加载运行。 例如在 rcS 中, 在环境变量设置完成之后即可运行主程序
 主程序依赖的动态库要放在 rootfs 中, 例如 libimp.so
 主程序启动后首先初始化视频, 之后可以并行处理其他的业务(比如 P2P、 认证鉴权等等)
 如果对某些配置文件有依赖, 例如 config 分区下的配置文件, 可以使用如下的方式探测等待

2.缩短 rootfs 的加载时间

 缩短加载时间的方式就是尽量优化 rootfs 的大小。 有以下几个方面:
  非启动必须的资源, 尽量放置在 system 分区中, 例如配网音频, 字库文件等
  主程序依赖的动态库, 如果不是启动依赖, 可以放到 system 分区中, 但是要用过dl_open 的方式加载。 例如 libcrypto, 这个库的大小比较大, 只有个别时候才用得到,可以把要的接口简单封装, 然后通过 dl_open 的方式动态调用这些接口。

3.快速启动分辨率和 nrvbs 设置方法

 由于上层与驱动层需要密切配合, 所以, 有些配置信息需要提前配置, 如 sensor
的宽高信息和所配置的 video buffer 个数。

 在实际使用过程中,分辨率越高,启动的时间就会越慢

4.帧率的修改

&emsp由于 T31 中有 riscv, riscv 推荐使用高帧率, 但是实际产品帧率通常为 15fps, 那实际的降帧是怎么操作的呢?
 Riscv 中的帧率由 Sensor 初始化序列决定, 也就是tools/make_tag/sensor_init_setting 文件夹中对应的 Sensor 初始化序列决定。
 在内核期间, ISP 驱动中, 我们提供了一些回调以及 API, 如tx_isp_frame_done_int_hander 回调函数, 该回调函数是硬件产生 frame done 中断之后, 每产生一个中断, 则会回调该函数, count 为 1 开始计数。
 我们可以在该回调函数中来切换帧率, 由于 Sensor 一般配置都是隔帧生效, 所以通常在第一帧的时候设置帧率, 实际在第 3 帧的时候生效。 这样做的目的是前两帧还是高帧率出图, 第 3 帧切到 15fps, 如果存在前两帧图像效果较差的话, 我们可以将其丢弃, 从而提高第一帧图像出图速度。

5.出图时间优化

 内核时间打印可以通过 DEBUG_TTFF();来打印对应的时间, 该时间从上电开始计时。
 部分 sensor 由于帧率达不到很高, risc-v 中统计的帧数不是很多, 在内核默认是等 6 帧, 有可能会出现等的时间较长, 这个时候, 可以将tx-isp-fast.c 文件中的frame_count 值降低

247         timeout = 1000;
248         while(timeout--) {
249             ret = tx_isp_get_riscv_framecount(&frame_count);
250             if(ret < 0) {
251                 printk("Error: %s tx_isp_get_riscv_framecount failed ret:%d\n", __func__, ret);
252                 return ret;
253             }
254
255             if((frame_count >= 6) && (frame_count != -1))
256                 break;
257
258             mdelay(1);
259         }
260
261         DEBUG_TTFF("wait 8 frame done");

 内核默认丢帧参数配置的是两帧, 要求是至少丢一帧, 所以在优化出图时间的时候, 可以将丢帧参数改为一帧, 只要图像没有明显异常即可。 这样可以优化一帧的时间。 另外, 上面提到的帧率切换, 帧率切换配合丢帧来操作, 丢弃的帧跑较高帧率,这样可以节省一定时间。



######################2022.08.28######################

该博客将停止更新

新的文章内容和附件工程文件

请到 liwen01 博客首页信息查询

liwen01 2022.08.28 日更新

######################2022.08.28######################

君正Zeratul开发(5)——快速启动优化相关推荐

  1. 君正Zeratul开发(2)——uboot启动分析

    前言    boot启动一般分为两个阶段,君正设备的第一阶段uboot spl 程序没有开源,用户编译的是第二阶段的boot,最后将两个阶段的boot合并到一起,写入到boot分区中去,boot分区如 ...

  2. 君正Zeratul开发(4)——图像效果调试

    前言   目前而言,君正设备的isp 图像效果还是君正的工程师在负责开发调试,如果需要添加一款新的摄像头,一般也是将新摄像头的驱动,从ISVP 版本移植到Zeratul平台.这里主要介绍:(1)摄像头 ...

  3. 君正Zeratul开发(6)——为什么禁止使用system

    (一)前言  在君正Zeratul_T31_开发指南中明确规范,禁止在主程序中使用system 等系统调用接口函数,需要在另外的一个守护进程中去实现system函数的功能.这里有两个问题:1.syst ...

  4. 君正4750开发板使用日记2-Linux环境搭建与内核编译

    为什么80%的码农都做不了架构师?>>>    Linux环境搭建与内核编译 上一篇中把4750开发板与PC的硬件连通了,这一篇记录的是基本的Linux环境的搭建.其实官方文档已经比 ...

  5. 君正x2000开发板usb口读取文件

    ## 标题君正x2000开发板USB口读取文件 (由于word文档无法上传,只复制了文字,操作过程中的图片就不做展示) 开发要求 1.外设的tf卡存储录像抓图文件需要通过USB口在电脑上进行查看.拷贝 ...

  6. Alibaba Cloud Linux 2 LTS 快速启动优化实践

    作者:阿里云操作系统:张世乐   概述/Overview Alibaba Cloud Linux 2(原Aliyun Linux 2,简称Alinux 2)是阿里云操作系统团队基于开源Linux内核4 ...

  7. 嵌入式linux系统快速启动优化的方法

    1.嵌入式设备的启动过程 (1)上电首先执行芯片内部固化的代码,这段代码会将BootLoader读取到芯片的iRAM中执行,初始化内存,并将BootLoader代码搬运到内存中继续运行: (2)Boo ...

  8. 摘自【北京迅为】itop-3568开发板快速启动手册 第一章 硬件连接

    瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工艺,搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器.RK3568 支持4K 解码和 1080P 编 ...

  9. 摘自【北京迅为】itop-3568开发板快速启动手册 第二章 Windows安装串口终端

    瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工艺,搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器.RK3568 支持4K 解码和 1080P 编 ...

最新文章

  1. 分布式事务 常见方法
  2. Andrew Ng 深度学习笔记-01-week2-课程
  3. php yaf 教程,Yaf教程2:入门使用
  4. access 增加字段 工具_Java效率工具之Lombok
  5. Innobackupx工具命令简单解析
  6. 用printf做彩色日志记录
  7. informatica如何设置失败告警_智能运维中的关键一步——告警管理
  8. 算法:24.两两交换链表中的节点
  9. ORACLE动态SQL语句
  10. php网页怎么设置背景音乐,怎么给网页添加背景音乐
  11. 如何把caj转成pdf
  12. 海纳百川下载器使用方法图文详解
  13. 计算机基础教学模式,浅谈中技计算机基础教学模式
  14. php 获取问号后面,php-重写包含问号的URL
  15. 【Linux】深入解析Linux proc文件系统
  16. linux springboot开机启动,SpringBoot 部署到Linux开机自启动和运行
  17. 在线学习及作业平台管理系统(ssm,mysql)
  18. 计算机系统中三级存储器结构,计算机三级存储体系(1)
  19. concurrent.futures模块使用
  20. html5 xdwlnjs cn,最近需要调用一个网站的js,但是发现是加密的,有大佬来解密下吗?...

热门文章

  1. 如何创建SQL Server 身份验证用户
  2. Java并发编程之锁机制之LockSupport工具
  3. 鸿蒙内核代码 行,鸿蒙内核源码分析(CPU篇) | 内核是如何描述CPU的 ? | 祝新的一年牛气冲天 ! | v36.01...
  4. 学会使用这些Lumion照片级渲染技巧,秒出大片
  5. 图像渲染测试软件,检测你的电脑是否支持Metal渲染技术的小工具
  6. block中断 virtio_virtio分析
  7. 学历重要还是能力重要?库克说:苹果公司更看重能力而非学历。
  8. 京东618和双十一,我如何做好京东旗舰级营销活动(附诀窍)
  9. Nginx启动不了原因解决
  10. 散布图 scatter plot