yiyaolin

yiyaolin

0个粉丝

7

问答

0

专栏

0

资料

yiyaolin  发布于  2017-09-09 02:20:51
采纳率 0%
7个问答
4955

VPSS 不同通道同步问题

 

请教大神,
在同个VPSS下,可以有多个通道,想要取一个低分辨率通道用作IVE,另个高分辨率通道用作快照,取大图jpeg
目前遇到问题是两个通道间的影像不同步,常常IVE分析完,快照已经是不同祯画面?

我的方式是先建一个VPSS Group,取两个channel
channel 0 (1920*1080), 原始画面
channel 1(720*480), 小画面,IVE用
两个channel 都设为user mode

对两个channel各取HI_MPI_VPSS_GetChnFrame
如何同步两个VPSS channel,可以让两个不同分辨率的vpss channel取得相同画面?
我来回答
回答9个
时间排序
认可量排序

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2017-09-11 08:46:13
认可0
要想完全同步, 就不能两路了, vpss只开一个channel, get到的图分别去编码和IVE处理

yiyaolin

0个粉丝

7

问答

0

专栏

0

资料

yiyaolin 2017-09-12 05:14:50
认可0
因为IVE没有办法处理HD的图,想要用小图给IVE处理,之后取大原图的影像
在3519上可以有IVE_Resize可以用,但是在3516A似乎就没有办法作了,
或是直接由memcpy给CPU做?这样效能会不会太差?

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2017-09-12 07:40:39
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=63848&ptid=23441]yiyaolin 发表于 2017-9-12 05:14[/url]
因为IVE没有办法处理HD的图,想要用小图给IVE处理,之后取大原图的影像
在3519上可以有IVE_Resize可以用, ...[/quote]


如果图像要求不高(允许丢点downsample)可以直接用HI_MPI_IVE_DMA()来实现缩小(支持1080P)

限制是缩小的比例不能任意选定,一般只能做有限的几个整数倍缩小,颜色可能会有混叠

nomark

0个粉丝

1

问答

0

专栏

0

资料

nomark 2017-09-12 09:41:34
认可0
需要把获取到的原始画面图像缓存起来, 比如通过链表,缓存指定帧数的1080p图像。实现如下:通过HI_MPI_VPSS_GetChnFrame获取图像后,不调用HI_MPI_VPSS_ReleaseChnFrame,把它放到图像链表尾部。如果当前缓存帧数到了指定的帧数,则需要先Release掉头结点的图像,从链表中删除,再获取新的图像,即始终缓存最近一段时间的图像。缓存帧数的最小值根据IVE分析的延迟来,如果分析延迟为1秒,那设置的缓存的帧数需要大于25帧,缓存帧数最大值不能超过VB分配的1080p缓存块个数。低分辨率通道图像送分析的时候,记下送分析的图像时间戳pstVideoFrame->stVFrameInfo.stVFrame.u64pts,分析完之后,根据这个时间戳和1080p的图像缓存链表里的图像时间戳去匹配实现同步:从头结点遍历1080p的图像缓存链表,如果u64pts小于送分析的u64pts,则直接Release当前的1080p图像,从链表中删除;如果u64pts等于送分析的u64pts,执行画图操作后,Release当前的1080p图像,从链表中删除;否则不做操作。

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2017-09-12 10:17:32
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=63855&ptid=23441]nomark 发表于 2017-9-12 09:41[/url]
需要把获取到的原始画面图像缓存起来, 比如通过链表,缓存指定帧数的1080p图像。实现如下:通过HI_MPI_VPS ...[/quote]

缓存1秒1080P的图, 如果是25fps的话,要25个VB, 75M内存, 压力比较大

nomark

0个粉丝

1

问答

0

专栏

0

资料

nomark 2017-09-12 10:41:28
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=63862&ptid=23441]zhuangweiye 发表于 2017-9-12 10:17[/url]
缓存1秒1080P的图, 如果是25fps的话,要25个VB, 75M内存, 压力比较大[/quote]

这种方法是比较耗MMZ内存,分配的帧数要看IVE的延迟,实际上一般不需要分配这么多帧,VB有6帧以上留给编码就没什么问题,并且同步了之后就释放了旧的,不会一直缓存指定帧数的图像。但如果MMZ内存不足,那就不能用这种方法,还是需要用VGS或IVE的接口来缩放图像去分析

yiyaolin

0个粉丝

7

问答

0

专栏

0

资料

yiyaolin 2017-09-14 11:30:26
认可0
感谢前辈提点,大概有想法,会先试试看downsample方式试试看。

另外请问,VGS和IVE缩图方法,那一个效率比较高?

wfknife_free

0个粉丝

4

问答

0

专栏

0

资料

wfknife_free 2017-09-10 17:16:27
认可0
同步不了。

hero

0个粉丝

1

问答

0

专栏

0

资料

hero 2017-09-14 12:06:09
认可0
marking......
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

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

Markdown 语法

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

举报类型

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

详细说明

易百纳技术社区