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

Linux上位机开发实践(MPP平台的核心构成)

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

        芯片行业是一个赢者通吃的行业。也就是说细分领域的前两名,相比较后来者而言,拥有很多无可比拟的优势。以安防市场的soc来说,曾经的某思基本上主导了国内安防soc的半壁江山。只是后来因为制裁的原因,让渡出来的市场,迅速被后来者占领。这些后来者为了兼容之前开发者的习惯,也快速复制了某思的软件开发模式,mpp就是其中的一个环节。

        所谓的mpp,就是media process platform的意思,有的厂家叫其它名字,比如media development platform,或者叫smart video platform,其实都是差不多的意思。mpp平台是对video、audio、isp、encode、decode、npu做了一层封装,用户可以在用户层快速处理音视频,而不用知道实现的细节,大大降低了软件开发的成本。本身这些sdk,很多都是算法硬加速的部分,即使用在工业、医疗项目,也是非常合适的。

1、mpp的组成

        mpp本身是对底层硬件加速的封装。这些硬件加速驱动是闭源的,厂家不提供源代码。mpp也一样,厂家只提供h、.a、.so文件。用户一般通过文档和demo去熟悉和了解。mpp是独立于uboot、kernel和rootfs的,属于应用层的范畴。底层驱动则是正常的ko文件形式。

2、视频输入

        广义的视频输入包括好几个方面,例如mipi camera输入、usb camera输入、rtsp图像输入、文件输入等等。这些部分一般都可以通过demo code找到对应的使用方式。

3、视频输出

        视频输出,就是把处理好的图像送出去显示,一般有mipi lcd、lvds lcd、bt1120输出、hdmi输出等等。其中soc本身未必支持hdmi,有时候需要通过mipi或者bt1120转一下,这方面有专门的芯片。有了视频输出api,我们就不再需要单独处理/dev/fb0节点了。

4、isp处理

        所谓的isp处理,就是soc从mipi csi拿到图像之后,需要通过isp对图像进行处理下。经典的3a算法,即awb、ae、af就是isp处理的内容。当然,isp的处理不仅仅是这些。为了对这些sensor做tuning,除了基本的sensor驱动之外,soc厂家一般还会提供isp tuning工具,供用户调优处理。

5、视频编解码

        传统的软件也可以对图像进行编解码处理。但是纯软件的图像编解码,速度比较慢,用硬件来做加速,则又好又快。低端的soc一般只是支持低分辨率的h264编解码,高端一点的soc则支持h265编解码。当然,除了视频之外,很多soc还支持图像jpg的编解码。

6、音频输入、输出

        作为多媒体处理的另一个环节,音频的输入、输出也很重要。只是和视频相比较,音频数据量少,难度没有视频那么大,一般就是稍微提一下。

7、音频编解码

        和视频一样,音频也需要进行编解码处理。这中间,如果涉及到多媒体的保存、网络传送,就会涉及到音视频的同步,处理的时候注意下即可。另外,对于多媒体来说,ffmpeg是标配,但是用好ffmpeg的前提,是需要把soc上面对应音视频的编解码api,和对应的ffmpeg接口做一个适配。这样开发出来的软件,才能又快又好地去执行。

8、NPU的使用

        随着AI的流行,很多地soc都开始集成npu。为了用好这些npu,厂家也会提供一些model供用户使用,只不过一些model是收费的。除此之外,用户也可以自己训练model,最后通过厂家提供的翻译工具,把这些自己训练的model部署到npu上面。

9、模块直连、数据0拷贝

        上面这些sdk里面的模块,一般的多媒体soc都会提供。另外一个比较有特色的地方,就是这些model,可以通过link的方式,直接进行关联处理。简单来说,用户通过进行模块关联,就可以让数据快速地在这些模块之间流动。一方面,简化了客户开发的流程;另外一方面,数据不需要模块之间来回copy和发送,减少拷贝次数,大大提供了数据处理速度,因为底层就实现了数据之间的快速处理。

10、proc调试

        有开发就有调试。实际调试的时候,大部分调试都是放在/proc下面进行的。比如cat /proc/mpp/vi确认数据进来了没;cat /proc/mpp/venc确认编码有没有启动;cat /proc/mpp/vo确认有没有收到isp送过来的数据等等。大家如果多用几个厂家的soc,就会对调试有更加深刻的印象。

        目前不管是安防,还是智慧出行,或者是消费类的soc,音视频领域的芯片竞争非常激烈。除了大家知道的某思、某芯微和某志,还有不是那么出名的soc公司也在做,比如某智、某正、某宸,某瀚,某科微等等。所以,把这些成熟的ipcam soc拿过来,换一个领域使用,无论是在成本上,还是在功能上都是非常合适的。对于我们来说,没有必要把视线都放在ti、nxp、nvidia、samsung这些国际大厂,一方面是成本未必能降下来,二是售后服务这块远没有国内好。

http://www.dtcms.com/a/99342.html

相关文章:

  • 【Linux网络与网络编程】02.初识Socket编程
  • ACL 访问控制列表配置命令2
  • 每日算法-250329
  • 注意力蒸馏技术
  • 深度学习处理时间序列(7)
  • Github 2025-03-28 Java开源项目日报Top10
  • 手机硬件检测详解:从版本信息到相机功能的全面指南
  • [Java微服务架构]7-1_事务处理——事务特性与本地事务
  • 【商城实战(101)】电商未来已来:新技术引领商城发展新航向
  • 查看显卡算力
  • 使用LangChain Agents构建Gradio及Gradio Tools(1)——LangChain Agent概念
  • RCE--解法
  • 基于SpringBoot的“医疗设备管理系统”的设计与实现(源码+数据库+文档+PPT)
  • MySQL源码学习系列(一)-- 环境准备及常用命令
  • 【LeetCode】—169.多数元素
  • Java基础-21-基本语法-封装
  • 聚合根的特性
  • CI/CD-Jenkins安装与应用
  • 【网络编程】搭建一个简单的UDP通信服务器和客户端
  • c#winform,倒鸭子字幕效果,typemonkey字幕效果,抖音瀑布流字幕效果
  • uniapp中的流式输出
  • 蓝桥杯 14 天 十五届蓝桥杯 数字诗意
  • 雨云云应用测评!内测持续进行中!
  • 深度学习中常见的专业术语汇总
  • SQL Server 可用性组自动种子设定失败问题
  • .NET开发基础知识1-10
  • 无人机宽带自组网机载电台技术详解,50KM超远图数传输系统实现详解
  • Python控制结构详解
  • 群体智能优化算法-流向算法(Flow Direction Algorithm, FDA,含Matlab源代码)
  • FALL靶机渗透实战:从信息收集到特权升级的完整链分析