海思MPP:

海思系列芯片网络摄像头开发主要就是使用海思提供的MPP(媒体处理软件平台Media Process Platform,简称 MPP),说简单点MPP就是一套封装好的系统,这套系统包含了已经编译好的硬件驱动及函数依赖库封装屏蔽芯片底层寄存器操作而可以直接调用相应功能的函数接口MPI(MPP Programe Interface)操作芯片,利用这套系统我们可以快速开发应用软件。

MPP的目录结构:

海思媒体处理平台的主要媒体业务分为视频输入(VI)视频处理(VPSS)视频编码(VENC)视频解码(VDEC)视频输出(VO)音频输入(AI)音频输出(AO)音频编码(AENC)音频解码(ADEC)区域管理(REGION) 等模块。

 

其中:

  • VI模块捕获视频图像,可对其做剪切、缩放等处理,并输出多路不同分辨率的图像数据。
  • VDEC模块对编码后的视频码流进行解码,并将解析后的图像数据送VPSS进行图像处理或直接送 VO 显示。(可对 H264/MPEG4/MPEG2 格式的视频码流进行解码。)
  • VPSS模块接收VI和VDEC发送过来的图像,可对图像进行去噪、图像增强、锐化等处理,并实现同源输出多路不同分辨率的图像数据用于编码、预览或抓拍。
  • VENC模块接收 VI 捕获并经 VPSS 处理后输出的图像数据,可叠加用户通过 Region模块设置的 OSD 图像,然后按不同协议进行编码并输出相应码流。
  • VDA模块接收 VI 的输出图像,并进行移动侦测和遮挡侦测,最后输出侦测分析结果。
  • VO模块接收 VPSS 处理后的输出图像,可进行播放控制等处理,最后按用户配置的输出协议输出给外围视频设备。

海思提供的sample如下:

sample_venc(视频数据编码)

sample_vdec(视频数据解码)

sample_audio(音频相关)

sample_snap(拍照)

sample_dpu_main(Depth Process Unit,深度图)

sample_avs(Any View Stitching,全景拼接)

sample_fisheye(鱼眼模式)

sample_vio(视频输入输出)

sample_vgs(Video Graphics Sub-System,视频图形子系统)

sample_tde(Two Dimensional Engine,利用硬件为OSD和GUI提供快速的图形绘制功能)

sample_hifb(Hisilicon Framebuffer,基于Linux FB 基本功能扩展了一些图形层控制功能)

sample_awb_calibration(自动白光平衡测量)

sample_ive_main(智能加速引擎)

sample_dis(Digital Image Stabilization,数字稳像)

sample_dsp_main(DSP测试)

sample_nnie_main(神经网络硬件加速单元测试)

代码: [36]_海思SDK编码部分之sample_venc.c详解_好习惯成就伟大-CSDN博客

#ifdef __cplusplus     <span style="color:rgb(255,102,102);background-color:rgb(204,204,204);">//__cplusplus是C++中定义的一个宏,如果这个宏被定义,说明这个程序是C++程序</span>
#if __cplusplus     //那么如果C++程序要调用C实现的函数或库等,则需要使用extern "C"{ 
extern "C"{        //这是实现C++调用C库或函数的一种手段,原因是因为C++和C语言的编译器不同导致
#endif
#endif /* End of #ifdef __cplusplus */

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐