首页问答详情

请教大神HI_MPI_VPSS_GetChnFrame数据读取慢的问题

 
zyqhziee
zyqhziee  发布于  2017-06-07 14:05:59
采纳率 0%
3个问答
本帖最后由 zyqhziee 于 2017-6-7 14:16 编辑

小弟调用HI_MPI_VPSS_GetChnFrame得到VPSS处理后的帧数据,打算做一下处理,结果发现读取数据速度超级慢。做了一下实验,直接用for循环拷贝到一个同样大小的数组,分辨率是1920x1080,花了接近0.5秒的时间才拷完。而同样的拷贝处理,如果来自于另外一个用户空间的数组可以达到0.03秒就拷完。
看了HI_MPI_VPSS_GetChnFrame接口是通过mmap接口映射/dev/mem到虚拟地址来访问物理帧存,应该是mmap函数映射的空间没有开cache功能导致的效率低下。
应该改什么地方能够实现开cache访问帧存呢?要该mmap函数实现么?

我来回答
4436
1
0
回答
11个
易百纳技术社区
hi3519v101 发布于2017-06-07 18:04:22
本帖最后由 hi3519v101 于 2017-6-8 10:53 编辑

                               1         
0
易百纳技术社区
吴少雄 发布于2017-06-08 10:02:08
[quote][url=forum.php?mod=redirect&goto=findpost&pid=51066&ptid=15459]hi3519v101 发表于 2017-6-7 18:04[/url]
自己分配一块可以cache的内存,dma搬过来再处理。[/quote]

楼主,你好
    离线模式,使用HI_MPI_VPSS_GetChnFrame过程中,并没有你所说的出现在0.5s左右,我们测下来大概在30-40ms中间,还有Frame的虚拟地址一般是无效的,需要将Frame结构中的物理地址映射到虚拟地址,如果还有其他操作的话,建议开cache,然后IVE来操作。
0
易百纳技术社区
hi3519v101 发布于2017-06-08 10:28:38
[quote][url=forum.php?mod=redirect&goto=findpost&pid=51099&ptid=15459]吴少雄 发表于 2017-6-8 10:02[/url]
楼主,你好
    离线模式,使用HI_MPI_VPSS_GetChnFrame过程中,并没有你所说的出现在0.5s左右,我们测 ...[/quote]

楼主就是要问,怎么开cache。
0
易百纳技术社区
zhuangweiye 发布于2017-06-08 10:37:00
本帖最后由 zhuangweiye 于 2017-6-8 10:44 编辑

[quote][url=forum.php?mod=redirect&goto=findpost&pid=51104&ptid=15459]hi3519v101 发表于 2017-6-8 10:28[/url]
楼主就是要问,怎么开cache。[/quote]

难道大家是说的是HI_MPI_SYS_Mmap()/HI_MPI_SYS_MmapCache()

不过话说回来, 以海思芯片arm的处理能力, 搞一个1080P的图像过来处理, 实时就不用考虑了( 除非用IVE, 用IVE就不用mmap了)
0
易百纳技术社区
hi3519v101 发布于2017-06-08 10:50:21
[quote][url=forum.php?mod=redirect&goto=findpost&pid=51105&ptid=15459]zhuangweiye 发表于 2017-6-8 10:37[/url]
难道大家是说的是HI_MPI_SYS_Mmap()/HI_MPI_SYS_MmapCache()

不过话说回来, 以海思芯片arm的处理能 ...[/quote]

就是这个吧,昨天看了一眼文档,居然没找到。:Q
0
易百纳技术社区
zyqhziee 发布于2017-06-08 10:51:36
本帖最后由 zyqhziee 于 2017-6-8 11:04 编辑

[quote][url=forum.php?mod=redirect&goto=findpost&pid=51105&ptid=15459]zhuangweiye 发表于 2017-6-8 10:37[/url]
难道大家是说的是HI_MPI_SYS_Mmap()/HI_MPI_SYS_MmapCache()

不过话说回来, 以海思芯片arm的处理能 ...[/quote]

直接用户态带cache的数组试过,速度还可以,拷贝能够到30fps。其实就是cache问题,如果用memcpy,由于里面有PLD这样的cache line预取指令,从frame buffer中拷出来3516a速度也能到30fps。但是我的操作不是纯拷贝,还带有地址跳转运算。所以只能真正开cache才可能提速。
0
易百纳技术社区
zyqhziee 发布于2017-06-08 11:10:18
本帖最后由 zyqhziee 于 2017-6-8 11:15 编辑

[quote][url=forum.php?mod=redirect&goto=findpost&pid=51106&ptid=15459]hi3519v101 发表于 2017-6-8 10:50[/url]
就是这个吧,昨天看了一眼文档,居然没找到。[/quote]

HI_MPI_SYS_MmapCache有这个操作么?我用的是3516A V40版本的SDK是没有的。
0
易百纳技术社区
zhuangweiye 发布于2017-06-08 11:17:41
[quote][url=forum.php?mod=redirect&goto=findpost&pid=51111&ptid=15459]zyqhziee 发表于 2017-6-8 11:10[/url]
HI_MPI_SYS_MmapCache有这个操作么?我用的是3516A V40版本的SDK是没有的。[/quote]

mpp ipc2.0 没有, 只能用HI_MPI_SYS_Mmap
0
易百纳技术社区
zyqhziee 发布于2017-06-08 12:05:40
本帖最后由 zyqhziee 于 2017-6-8 12:07 编辑

[quote][url=forum.php?mod=redirect&goto=findpost&pid=51112&ptid=15459]zhuangweiye 发表于 2017-6-8 11:17[/url]
mpp ipc2.0 没有, 只能用HI_MPI_SYS_Mmap[/quote]

看了几个版本的SDK发现3516是从V60版本开始支持的。升级一下SDK估计可以搞定了。看样子海思也发现这个问题了。本来要解决的话好像要改mmap函数实现,挺麻烦的。
0
易百纳技术社区
吴少雄 发布于2017-06-08 13:08:30
[quote][url=forum.php?mod=redirect&goto=findpost&pid=51118&ptid=15459]zyqhziee 发表于 2017-6-8 12:05[/url]
看了几个版本的SDK发现3516是从V60版本开始支持的。升级一下SDK估计可以搞定了。看样子海思也发现这个 ...[/quote]

庄工:看来我们使用多了一步,我们先是GetFrame--》MMap到物理地址后--》IVE的,
我们软编码的用这个流程的,是用来支持H261 、H263、MPEG4的,提高帧率的!
0
易百纳技术社区
qn1586499849 发布于2020-04-11 20:43:16
[quote][url=forum.php?mod=redirect&goto=findpost&pid=51099&ptid=15459]吴少雄 发表于 2017-6-8 10:02[/url]
楼主,你好
    离线模式,使用HI_MPI_VPSS_GetChnFrame过程中,并没有你所说的出现在0.5s左右,我们测 ...[/quote]

谢谢,你这句话解了我许多疑惑。看文档里说, frame 结构体的虚拟地址是内核态的,而海思的官方 sample 里又把 用户空间的虚拟地址直接赋给 frame 结构体的内核态虚拟地址。此外,打印出来的 frame 结构体的虚拟地址总是怪怪的。
0

Markdown 语法

  • 加粗 **内容**
  • 斜体 *内容*
  • 删除线 ~~内容~~
  • 引用 > 引用内容
  • 代码 `代码`
  • 代码块 ```编程语言↵代码```
  • 链接 [链接标题](url)
  • 无序列表 - 内容
  • 有序列表 1. 内容
  • 缩进 内容
  • 图片 ![alt](url)

Markdown 语法

  • 加粗 **内容**
  • 斜体 *内容*
  • 删除线 ~~内容~~
  • 引用 > 引用内容
  • 代码 `代码`
  • 代码块 ```编程语言↵代码```
  • 链接 [链接标题](url)
  • 无序列表 - 内容
  • 有序列表 1. 内容
  • 缩进 内容
  • 图片 ![alt](url)
+ 添加网盘链接/附件
或将文件直接拖到这里
悬赏:
EBC
网盘
* 网盘链接:
* 提取码:
悬赏:
EBC
相关问答
无更多相似问答 去提问
Loading...
易百纳技术社区
确定要删除此文章、专栏、评论吗?
确定
取消
易百纳技术社区
易百纳技术社区
在专栏模块发布专栏,可获得其他E友的打赏
易百纳技术社区
回答悬赏问答,被题主采纳后即可获得悬赏金
易百纳技术社区
在上传资料时,有价值的资料可设置为付费资源
易百纳技术社区
达到一定金额,收益即可提现~
收益也可用来充值ebc,下载资料、兑换礼品更容易
易百纳技术社区
活动规则
  • 1.周任务为周期性任务,每周周一00:00刷新,上周完成的任务不会累计到本周,本周需要从头开始任务,当前任务完成后才可以完成下一个任务
  • 2.发布的专栏与资料需要与平台的板块有相关性,禁止注水,专栏/资料任务以审核通过的篇数为准
  • 3.任务完成后,现金奖励直接打款到微信账户;EBC/收益将自动发放到个人账户,可前往“我的钱包”查看;其他奖励请联系客服兑换
  • 4.每周最后三个任务将会有以下奖品掉落:社区热卖开发板、小米音响、视频年度会员、京东卡、华为手机等等
易百纳技术社区
升级提醒
易百纳技术社区

恭喜您由入门

社区送出礼品一份

请填写您的收件地址,礼品将在3个工作日寄出

易百纳技术社区