【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】
图像处理与音视频处理,是嵌入式soc非常大的一个处理门类。从前在pc上面做开发,大部分都是以软件开发为主,也就是音视频的编码、解码、输出以及信号处理,都是通过软件的编写来完成了。但是到嵌入式设备上,这部分的很多工作,很多都是通过硬件加速来完成的。这无疑就解决了很多的问题,最主要的还是降低了cpu的负担,使得整个soc对cpu的要求就没有那么高。
1、传统音视频到智能音视频
过去的音视频处理,集中在编码、解码,不管是音频,还是视频,都是如此。最多再加上一个网络,做成类似于ipcam、dvr这样的产品。不过随着ai的引入,越来越多的嵌入式soc上面集成了npu这样的ip,这使得智能属性可以在嵌入式产品上落地生根,大大拓展了传统soc的应用范围。
2、越来越多的资源放到了嵌入式soc上
之前soc上面的资源确实不多,除了cpu之外,就是简单的音视频编码。现在的soc,除了这些ip和简单的外设之外,还集成了fpga、gpu、dsp、mcu、npu等多个处理单元。这意味着,除了可以进行传统软件的开发之外,可以把soc上面其他ip的资源利用起来,我们可以利用这些硬件资源对特定的算法进行优化处理,从而实现一个好的应用场景。在这之前,是没有办法做到的。
3、软硬结合才是嵌入式的灵魂
和pc相比较,嵌入式soc的cpu要弱得多。但是很多时候,一些应用对实时性要求又非常高,这种情况下我们能做的,就是利用soc上面的硬件资源,来做到实时处理。
以图像处理为例,一般来说,我们要对图像进行网络输出,出于压缩带宽的目的,就要进行图像编码。但是图像编码,本身是非常消耗时间的,完全靠cpu来做,实时性没有办法得到保证。这个时候,比较合适的做法,就是用cpu实现组包、拆包和网络发送的工作,实际编码的动作,让硬件去完成,软件负责给ip送数据、收数据,这样可以最大程度上实现信号的实时处理,而且不增加cpu的负担。
4、被忽视的sensor
大部分专业的sensor都是通过mipi csi接口导入的,但是sensor进来之后,如何通过isp进行质量调优,这也是很重要的一个方面。sensor的类型也非常广,行业上面涉及到消费、工业、医疗和军工,再加上光源、镜头、isp和算法的加持,其实用嵌入式soc来完成特定的场景应用,是再合适不过的应用案例。
5、soc厂家提供的软件开发平台
过去soc仅仅提供ip资源,特定的软件应用、或者驱动都是需要开发者自己去完成的,这中间就会非常地费时费力。目前,大部分soc厂家,都会提供对应的软件开发平台。以海思为例,它提供的平台,一般就称之为media process platform,简称mpp。当然其他soc厂家也会提供类似的开发平台,大家自己找一下即可。
在这个平台上面,一般集成了audio input、audio output、video input、video output、 video encode、video decode、video process sub-system、artificial intellegence等很多子模块。不同模块之间可以通过串行的方式进行彼此绑定,使用上面非常容易。灵活掌握这些模块,基本上可以满足大部分客户的落地要求。
6、soc的性价比越来越高
之前的soc价格并不便宜,很多功能一般的soc动不动就是大几十块,资料还不全,开发难度比较高。这方面尤其是以台湾地区的soc,特征最为明显。与此相比,现在很多soc不仅资料多,价格还非常便宜。比如说海思hi3516cv610,不仅内部集成了ddr模块,而且也提供了完善的mpp开发平台,整体性价比就非常高,我们完全可以用它来做行车记录仪、ipcam、中低端的工业摄像头、内窥镜产品,满足不同用户的需求。
7、开发方式的转变
较早之前的soc,需要自己port uboot、kernel、rootfs等开源软件。底层这些驱动,也是需要看芯片手册来完成的。而现在的,底层的开源软件都是soc厂家移植好的,video input、video output、video encode、 video decode这些驱动呢,通常也是由厂家负责的。开发者需要做的,就是拿着厂家给的header文件、so或者a库文件,进行应用开发就可以了。
硬件方面,基本上也有厂家给出来的推荐电路,照着进行裁剪就可以了。所以说,对于现在智能产品的开发,第一,我们要了解客户的需求;第二,有一个自己熟悉的soc平台,特别是上面的软件平台,要做到了然于胸;第三,就是要进行两者之间的绑定和融合,需不需要移植其他第三方库,比如qt、boost、opencv,是否涉及到行业知识,看看目前业内做的比较好的产品,是什么样的,这是比较好的一个处理方法。