zyqhziee

zyqhziee

0个粉丝

3

问答

0

专栏

0

资料

zyqhziee  发布于  2017-06-07 14:05:59
采纳率 0%
3个问答
4995

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

 
本帖最后由 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函数实现么?

我来回答
回答11个
时间排序
认可量排序

hi3519v101

0个粉丝

5

问答

0

专栏

0

资料

hi3519v101 2017-06-07 18:04:22
认可0
本帖最后由 hi3519v101 于 2017-6-8 10:53 编辑

                               1         

吴少雄

0个粉丝

15

问答

0

专栏

0

资料

吴少雄 2017-06-08 10:02:08
认可0
[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来操作。

hi3519v101

0个粉丝

5

问答

0

专栏

0

资料

hi3519v101 2017-06-08 10:28:38
认可0
[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。

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2017-06-08 10:37:00
认可0
本帖最后由 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了)

hi3519v101

0个粉丝

5

问答

0

专栏

0

资料

hi3519v101 2017-06-08 10:50:21
认可0
[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

zyqhziee

0个粉丝

3

问答

0

专栏

0

资料

zyqhziee 2017-06-08 10:51:36
认可0
本帖最后由 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才可能提速。

zyqhziee

0个粉丝

3

问答

0

专栏

0

资料

zyqhziee 2017-06-08 11:10:18
认可0
本帖最后由 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是没有的。

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2017-06-08 11:17:41
认可0
[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

zyqhziee

0个粉丝

3

问答

0

专栏

0

资料

zyqhziee 2017-06-08 12:05:40
认可0
本帖最后由 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个粉丝

15

问答

0

专栏

0

资料

吴少雄 2017-06-08 13:08:30
认可0
[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的,提高帧率的!

qn1586499849

0个粉丝

0

问答

0

专栏

0

资料

qn1586499849 2020-04-11 20:43:16
认可0
[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 结构体的虚拟地址总是怪怪的。
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

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

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
相关问答
无更多相似问答 去提问
举报反馈

举报类型

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

详细说明

易百纳技术社区