运行海思 sample 代码

merz 2019-12-28 10:35:51 6123

目录 (Table of Contents)

[TOCM]

1 梳理文档

唉,海思的文档真的是让人一言难尽...我也不多吐槽了,还是说说最近的体会吧。 大家作为开发者最关心 API 怎么用,海思也对应地提供了 API 参考文档和例程。


主要的文档

  • Hi3519A V100R001C02SPC010\ReleaseDoc\zh\01.software\board\MPP 目录下的 HiMPP V4.0 媒体处理软件开发参考.pdf
  • 以及在 Hi3519A V100R001C02SPC010\ReleaseDoc\zh\01.software\board\SVP 目录下的 HiIVE API 参考.pdfHiIVS API参考.pdf

    大部分需要用到的 API 都在 IVE 中, IVS主要对应的是 Motion Detection(移动侦测)。

主要例程

在 Linux 中进入 Hi3519AV100_SDK_V2.0.1.0/smp/a53_linux/mpp/sample 目录,里面的文件大部分都和 MPP 有关系,我们需要例程的在 Hi3519AV100_SDK_V2.0.1.0/smp/a53_linux/mpp/sample/svp/ive 目录下。 sample_ive_main.c 主要有以下功能

    printf("\t 0)BgModel,<encode>:0, not encode;1,encode.<vo>:0,not call vo;1,call vo.(VI->VPSS->IVE->VGS->[VENC_H264]->[VO_HDMI]).\n");
    printf("\t 1)Gmm,<encode>:0, not encode;1,encode.<vo>:0,not call vo;1,call vo.(VI->VPSS->IVE->VGS->[VENC_H264]->[VO_HDMI]).\n");
    printf("\t 2)Occlusion detected.(VI->VPSS->IVE->VO_HDMI).\n");
    printf("\t 3)Motion detected.(VI->VPSS->IVE->VGS->VO_HDMI).\n");
    printf("\t 4)Canny,<complete>:0, part canny;1,complete canny.(FILE->IVE->FILE).\n");
    printf("\t 5)Gmm2.(FILE->IVE->FILE).\n");
    printf("\t 6)MemoryTest.(FILE->IVE->FILE).\n");
    printf("\t 7)Sobel.(FILE->IVE->FILE).\n");
    printf("\t 8)Ann.(FILE->IVE->STDIO).\n");
    printf("\t 9)St Lk.(FILE->IVE->FILE).\n");
    printf("\t a)Svm.(FILE->IVE->STDIO).\n");
    printf("\t b)Cnn.(FILE->IVE->STDIO).\n");

关于 yuv 文件的工具

海思的图片格式为 yuv,如果我们想测试自己的图片那就要把文件格式转换为 yuv

  1. 海思提供的代码 参考文档是在 Hi3519A V100R001C02SPC010\ReleaseDoc\zh\01.software\pc\DEC_LIB 目录下的 MJPEG PC解码库软件API参考.pdf 对应的代码是 Hi3519A V100R001C02SPC010\Hi3519A V100R001C02SPC010\01.software\pc\DEC_LIB 目录下的 Hi_MJPEG_DEC_LIB_V1.0.0.6.rar ,程序的2个命令行参数分别是输入的文件名和输出的文件名。
  2. 使用 ffmpeg

    参考文档 【[FFMPE系列](https://www.ebaina.com/articles/140000003068 "FFMPE系列")】之FFMPEG常用命令

    安装 ffmpeg apt install ffmpeg

    将 MP4 视频转换为 yuv 格式文件(如果有需要也可以把 gray 改成 yuv420p 等其他格式) ffmpeg -i 1920x1080.mp4 -s 1920x1080 -pix_fmt gray 1920x1080.yuv

    播放 YUV 格式文件 ffplay -video_size 1920x1080 -pix_fmt gray -i 1920x1080.yuv

    2 运行 sample 代码

    编译

    • a53_linux 下的 mpp 目录全部复制到 nfs 服务器中。
    • 执行以下命令: cd sample source /etc/profile export LC_ALL=C make
    • 等待编译完成
    • 在开发板上挂载 nfs mount -t nfs xxx.xxx.xxx.xxx:/nfs /nfsroot -o nolock (更新) 这个命令连接不是很稳定 换成mount -t nfs -o nolock -o tcp -o rsize=32768,wsize=32768 xxx.xxx.xxx.xxx:/nfs /mnt
    • 板子加载驱动 cd /nfsroot/mpp/ko ./load3519av100 -i -sensor0 imx334

      执行程序

      cd /nfsroot/mpp/sample/svp/ive ./sample_ive_main 4 1 效果如下:

      /nfsroot/mpp/sample/svp/ive # ./sample_ive_main
      Usage : ./sample_ive_main <index> [complete] [encode] [vo]
      index:
       0)BgModel,<encode>:0, not encode;1,encode.<vo>:0,not call vo;1,call vo.(VI->VPSS->IVE->VGS->[VENC_H264]->[VO_HDMI]).
       1)Gmm,<encode>:0, not encode;1,encode.<vo>:0,not call vo;1,call vo.(VI->VPSS->IVE->VGS->[VENC_H264]->[VO_HDMI]).
       2)Occlusion detected.(VI->VPSS->IVE->VO_HDMI).
       3)Motion detected.(VI->VPSS->IVE->VGS->VO_HDMI).
       4)Canny,<complete>:0, part canny;1,complete canny.(FILE->IVE->FILE).
       5)Gmm2.(FILE->IVE->FILE).
       6)MemoryTest.(FILE->IVE->FILE).
       7)Sobel.(FILE->IVE->FILE).
       8)Ann.(FILE->IVE->STDIO).
       9)St Lk.(FILE->IVE->FILE).
       a)Svm.(FILE->IVE->STDIO).
       b)Cnn.(FILE->IVE->STDIO).
      /nfsroot/mpp/sample/svp/ive # ./sample_ive_main 4 1
      [SAMPLE_IVE_Canny]-219: Process success!

      此时在 data/output/canny 里已经生成了经过边缘检测处理后的图像。 使用 yuvplayer 打开看一下效果 :D canny

声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
merz
红包 点赞 3 评论 打赏
评论
1个
内容存在敏感词
手气红包
  • A-小鲸鱼 2020-06-13 12:22:06
    回复

    学到了,谢谢大佬分享

相关专栏
置顶时间设置
结束时间
删除原因
  • 广告/SPAM
  • 恶意灌水
  • 违规内容
  • 文不对题
  • 重复发帖
打赏作者
易百纳技术社区
merz
您的支持将鼓励我继续创作!
打赏金额:
¥1易百纳技术社区
¥5易百纳技术社区
¥10易百纳技术社区
¥50易百纳技术社区
¥100易百纳技术社区
支付方式:
微信支付
支付宝支付
易百纳技术社区微信支付
易百纳技术社区
打赏成功!

感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

审核成功

发布时间设置
发布时间:
是否关联周任务-专栏模块

审核失败

失败原因
备注
拼手气红包 红包规则
祝福语
恭喜发财,大吉大利!
红包金额
红包最小金额不能低于5元
红包数量
红包数量范围10~50个
余额支付
当前余额:
可前往问答、专栏板块获取收益 去获取
取 消 确 定

小包子的红包

恭喜发财,大吉大利

已领取20/40,共1.6元 红包规则

    易百纳技术社区