当前位置: 首页 > article >正文

基于海思soc的智能产品开发(视频的后续开发)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        前面我们讨论了camera,也讨论了屏幕驱动,这些都是基础的部分。关键是,我们拿到了这些视频数据之后,是否还需要做一些后面的工作。难道,拿到这些视频数据之后,仅仅是为了lcd显示一下,是否有必要保存下来、送出去,或者是从视频中提一些信息呢。

        截图是hdmi转csi2的设计,呼应文章最后一小段内容。

1、mcu、fpga、soc处理视频的驱动差不多

        其实,不光soc可以处理视频,mcu和fpga也是可以处理视频的。只不过mcu处理的视频,一般sensor都自带isp功能,fpga处理sensor则比较麻烦一点,编译起来也不方便。相比较而言,soc处理视频会复杂一点,分成了i2c驱动、mipi驱动、isp驱动、uvc驱动等几个部分。对于mcu和fpga的驱动,大家可以参考某火、某原子的资料。对于soc资料,i2c驱动、mipi驱动、uvc驱动这些都可以找到,但是isp,一般厂家都只是提供工具,不会提供对应驱动代码的。客户会使用、会配置isp即可。

        比如,这是v3s驱动中mipi的代码,

https://github.com/aodzip/sun6i-mipi-csi

        假设sensor用的是ov5640,驱动代码在这,

https://elixir.bootlin.com/linux/v5.2.21/source/drivers/media/i2c/ov5640.c

2、视频编码

        和传统pc编码相比较,嵌入式soc上面的视频编码一般都是硬件完成的。常见的编码有h264、h265。具体的编码,通常都是硬件来完成的,而把h264、h265组合成mp4、avi这样的工作,就会用ffmepg来完成。毕竟对于软件来说,实时编码几乎是不可能的,只要靠硬件来实现实时的编码操作。

3、视频解码

        很多时候,视频编、解码不一定是同时存在的。比如说,ipcam上面,很多soc只有编码。而dvr等很多设备,则只有视频解码。这里面主要还是基于成本和市场的考虑。当然,如果不考虑成本,或者soc的价格足够高,这个时候视频编、解码就会都存在了。

4、isp功能

        虽然都叫isp,但是不同厂家的isp差异很大。可以这么说,一般的小厂soc也就是做一些基本的图像处理,比如自动曝光、自动白平衡、自动对焦、黑电平、左右翻转、上下反转、噪声处理、osd这些。而大厂的soc,这方面做的要多得多,不仅引入更多的isp图像算法,比如去雾算法、畸变矫正等等,还会引入更多的ai model对isp进行处理。所以大家虽然名字都叫isp,但是差异还是非常大的。

        如果本身对isp的要求比较高,可以考虑大厂的soc,反之为了降成本的话,则可以选择一般的soc,甚至是自带部分isp功能的sensor,都是可以的。

5、存储

        本地存储是最容易想到的功能。一般的行车记录仪、运动相机,基本上就是编码+lcd显示/本地保存这样的思路。

6、npu处理

        现在图像处理,除了图像本身,还会引入越来越多的ai功能。目前来说,刚需的ai功能有这几个部分,人脸识别、车牌识别、ocr识别、指纹识别等等。npu的话,不必注重数值越大越好,主打一个够用就行。毕竟一分钱,一分货。

7、机器视觉

        图像本身除了用来看,还可以从中提取到很多的有用信息。这个时候,可以把一些常规的机器视觉算法移植到嵌入式设备上,这样设备摇身一变,就是智能嵌入式设备了。

8、网络处理

        目前视频处理这块很火,有一部分就是基于网络的处理。网络的带宽一般都是大小一定的,我们总是希望图像要尽量地好,但是带宽要尽量地低,延迟也要尽可能地低,所以这里面能做的工作还是非常多的。常见的rtsp、rtmp未必能满足我们要求,有些场景需要我们自定义协议才能去解决。

        网络这部分,如果是后端处理,一般就是ipcam;如果是前端处理,一般就是dvr。不过大家可以扩展一下思路,毕竟还可以用于飞控、监控、医疗等很多领域。

9、fpga导出,接入csi2

        有些算法如果为了低延时和高性能,引入fpga也是有可能的。这种情况下,就是fpga接入sensor,对图像进行预处理之后,再把图像传给soc的csi2接口,进行后续的处理。fpga虽然处理图像比较方便,但是没有linux的帮助,很多事情都做不了,也不方便。所以,fpga+soc这样的处理模式,还是非常方便的。

10、csi2接入转换芯片

        很多时候,我们会认为,csi2接口只能接入sensor,其实除了camera sensor之外,还可以是fpga的接口,甚至是其他芯片转换过来的数据,比如hdmi转换过来的mipi数据。大家试想一下,如果是hdmi转换过来的数据,不就是一个视频采集设备吗?现在的销售直播、游戏直播、综艺直播这么火,这方面肯定有很大的市场。


http://www.kler.cn/a/512688.html

相关文章:

  • SDL2:arm64下编译使用 -- SDL2多媒体库使用音频实例
  • ubuntu系统文件查找、关键字搜索
  • 使用 HTML 开发 Portal 页全解析
  • 【AI | pytorch】torch.polar的使用
  • 【2025】拥抱未来 砥砺前行
  • 鸿蒙开发中的骨架图:提升用户体验的关键一环
  • 什么宠物最好养?
  • PhyCAGE:符合物理规律的图像到 3D 生成
  • 思维的进化:从链式推理到元链式推理的算法探秘
  • go语言两个协程goroutine交替打印1-100
  • 解决用 rm 报bash: /usr/bin/rm: Argument list too long错
  • Javascript 将页面缓存存储到 IndexedDB
  • BH1750使用程序
  • 基于SpringBoot和PostGIS的各国及所属机场信息检索及可视化实现
  • Debian常用命令
  • C 语言雏启:擘画代码乾坤,谛观编程奥宇之初瞰
  • Linux之网络套接字
  • C语言/C++——递归、递推、动态规划
  • 各语言镜像配置汇总
  • Unity中用触发器模拟碰撞效果
  • 为什么相关性不是因果关系?人工智能中的因果推理探秘
  • 【深度学习】利用Java DL4J 训练金融投资组合模型
  • 【漫话机器学习系列】056.F1值(F1 score)
  • 前端——JS
  • STM32 FreeRTOS任务通知
  • C++设计新思维:泛型编程与设计模式之应用学习笔记