OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 1286|回复: 8

[XILINX] 关于FPGA实现帧差法的方式

[复制链接]

18

主题

51

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
231
金钱
231
注册时间
2022-10-7
在线时间
70 小时
发表于 2023-12-7 20:02:37 | 显示全部楼层 |阅读模式
115金钱
最近在做帧差法的运动目标检测,我看网上大部分都是采用zynq里的block design 里 连线 连两个dma,我想知道在纯PL的情况下,一路视频数据从经过ddr缓存出来后,该怎么实现分离两帧且同步时序实现点对点帧差?有什么好方法吗,请各位给我一些建议

最佳答案

查看完整内容[请看2#楼]

处理好写入缓存帧和 读取缓存帧1,帧2 的顺序关系就可以了 最好做一下帧同步;就是ov的vs来了再驱动lcd_driver 保证写入和读取的帧同步变化; 比如3帧缓存; 0,1,2, 缓存的第2帧 是写入帧; 缓存的第1帧 是读取帧1 缓存的第0帧 就是读取帧2 帧切换后就变为 缓存的第0帧 是写入帧; 缓存的第2帧 是读取帧1 缓存的第1帧 就是读取帧2 。。。。。 其实原子的PL教程里面的 摄像头->ddr3->lcd 就有帧同步; 你自己再 ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

5

主题

34

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
455
金钱
455
注册时间
2020-11-30
在线时间
66 小时
发表于 2023-12-7 20:02:38 | 显示全部楼层
处理好写入缓存帧和 读取缓存帧1,帧2 的顺序关系就可以了

最好做一下帧同步;就是ov的vs来了再驱动lcd_driver 保证写入和读取的帧同步变化;

比如3帧缓存;
0,1,2,
缓存的第2帧 是写入帧;
缓存的第1帧 是读取帧1
缓存的第0帧 就是读取帧2

帧切换后就变为
缓存的第0帧 是写入帧;
缓存的第2帧 是读取帧1
缓存的第1帧 就是读取帧2
。。。。。
其实原子的PL教程里面的 摄像头->ddr3->lcd 就有帧同步;
你自己再看看
回复

使用道具 举报

18

主题

51

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
231
金钱
231
注册时间
2022-10-7
在线时间
70 小时
 楼主| 发表于 2023-12-8 21:11:15 | 显示全部楼层
是用fifo先存几行ddr出来的数据然后等摄像头数据帧同步拉高了在读吗,会不会出现帧同步还没上升的时候fifo就满了的情况?还有什么其他方法吗,感谢大佬们指导
回复

使用道具 举报

5

主题

34

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
455
金钱
455
注册时间
2020-11-30
在线时间
66 小时
发表于 2023-12-9 07:43:19 | 显示全部楼层
PL也是一样的方法啊,1个vdma输入,2个vdma输出,输入的vdma单输入,输出的2个vdma单输出,采用多路缓存,3路就OK,注意输出的2个vdma的主从关系;一个主一个从,从vdma的帧输入是主vdma的帧输出,这样就可以保证2个vdma的输出帧始终相邻,从vdma比主vdma慢一帧,在后端加上帧差法hls ip就可以了,主vdma接到hls ip前帧axis,从vdma接到hls ip后帧axis
回复

使用道具 举报

5

主题

34

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
455
金钱
455
注册时间
2020-11-30
在线时间
66 小时
发表于 2023-12-9 09:20:25 | 显示全部楼层

之前的回答有问题:忽略了输出和输入帧同步;
##########################
如果使用上面回答的3个vdma,单输入,2个单输出的话;
vdma_out1和vdma_out2都是从模式,vdma_in是主模式
需要通过frame_ptr连接来实现帧同步;

vdma_in s2mm_frame_ptr_out--->vdma_out1 mm2s_frame_ptr_in
vdma_out1 mm2s_frame_ptr_out--->vdma_out2 mm2s_frame_ptr_in

############################
如果使用2个vdma,则:
一个是输入输出模式vdma1;
另一个是单输出模式vdma2;

vdma1设置为3缓存;就是正常的输入主,输出从;
vdma2也是3缓存 配置为单输出从模式;来和vdma1的输出帧同步

注意 vdma2 的 mm2s_frame_ptr_in 接 vdma1 的 mm2s_frame_ptr_out
这样就保证了输入帧,输出帧1和输出帧2之间的顺序关系;
############################
比如输入的帧号是2;
那么此时的输出帧1的帧号就是1
输出帧2的帧号就是0

对于帧差法的hls ip,axis 前后帧对应接入即可;
回复

使用道具 举报

18

主题

51

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
231
金钱
231
注册时间
2022-10-7
在线时间
70 小时
 楼主| 发表于 2023-12-9 12:07:58 | 显示全部楼层
Winkawaks 发表于 2023-12-9 09:20
之前的回答有问题:忽略了输出和输入帧同步;
##########################
如果使用上面回答的3个vdma ...

你好,请问你说的是zynq的vdma吗,我想询问的是PL端下的方法,目前的情况是PL通过axi控制器与ps的ddr进行交互,ps只有ddr,dma是通过pl实现的,dma接口只有axi协议的接口还有输入输出的视频接口
回复

使用道具 举报

5

主题

34

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
455
金钱
455
注册时间
2020-11-30
在线时间
66 小时
发表于 2023-12-10 11:52:58 | 显示全部楼层
你说的"PL端下的方法"指的是不用bd设计,用verilog代码模块实现的么?有点搞不清楚你的需求了
回复

使用道具 举报

18

主题

51

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
231
金钱
231
注册时间
2022-10-7
在线时间
70 小时
 楼主| 发表于 2023-12-10 18:38:22 | 显示全部楼层
Winkawaks 发表于 2023-12-10 11:52
你说的"PL端下的方法"指的是不用bd设计,用verilog代码模块实现的么?有点搞不清楚你的需求了

是的,就纯fpga的实现方式
回复

使用道具 举报

18

主题

51

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
231
金钱
231
注册时间
2022-10-7
在线时间
70 小时
 楼主| 发表于 2024-1-2 20:31:32 | 显示全部楼层
Winkawaks 发表于 2023-12-11 21:06
处理好写入缓存帧和 读取缓存帧1,帧2 的顺序关系就可以了

最好做一下帧同步;就是ov的vs来了再驱动lcd_ ...

好的谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 17:23

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表