完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我是FPGA和Xilinx设计的新手。
我目前正在使用赛灵思的Atlys主板和XAPP495 HDMI驱动程序。 我正在使用Digilent'Atlys HDMI演示项目'应用程序,在将输出帧输出到HDMI输出端口之前,将每个视频帧存储在外部存储器中。 我正在尝试使用HDMI源的动态背景进行色度键效果。 我的想法是使用2个HDMI输入和1个HDMI输出。 我想使用Atlys的两个HDMI输入并逐个像素地混合两个帧。 然后将混合帧输出到HDMI输出端口。 混合包括将第一个输入的每个像素值与阈值进行比较: - 如果它大于阈值,我想输出FIRST视频的像素值。 - 如果它低于该值,我想输出SECOND视频的像素值。 然后,输出视频缓冲器由来自第一和第二HDMI输入的像素组成。 输入和输出都具有相同的分辨率。 我想知道这个实现是否可行。 我想到了两个解决方案: 1.硬件搅拌机: 在输入解码器和DDR2之间放置一个多路复用器块。该块接收来自两个输入的像素值(来自解码器块的输出),并将正确的值输出到存储在DDR2中的值。 对于帧中的所有其他像素重复此操作。 1.使用micrlaze: 使用处理器比较两个输入并输出混合帧,而不使用外部存储器帧存储。 理想情况下,我想做硬件实现。 是否有可能在3周内完成(总共20小时)? 如果是这样,你有什么想法,如何输入像素块的多个输入块? 谢谢! 以上来自于谷歌翻译 以下为原文 I'm new to FPGA and Xilinx design. I'm currently using the Atlys board and the XAPP495 HDMI drivers from Xilinx. I'm using the Digilent 'Atlys HDMI Demo Project' application that stores each video frame in the external memory before outputing the frame in the HDMI output port. I'm trying to do a chroma key effect with a dynamic background from a HDMI source. My idea is to use 2 HDMI inputs and 1 HDMI output. I'd like to use both HDMI inputs of the Atlys and mix both frames pixel by pixel. The mixed frame is then output to the HDMI output port. The mixing consists in comparing each pixel value of the first input to a threshold: - If it's greater than the threshold, I'd like to output the FIRST video's pixel value. - If it's below the value, I'd like to output the SECOND video's pixel value. The output video buffer is then composed of pixels from the first and the second HDMI inputs. Both inputs and output have the SAME RESOLUTION. I'd like to know if this implementation is doable. I thought of 2 solutions: 1. Hardware mixer: Place a multiplexer block between the inputs decoders and the DDR2. The block receives the pixel values from both inputs (output from the decoder blocks) and outputs the correct value to the be stored in the DDR2. This is repeated for all the other pixels in the frame. 1. Using microblaze: Using the processor to compare both inputs and output the mixed frame, without using the external memory frame storage. Ideally, I'd like to do the hardware implementation. Is it possible to be done in like 3 weeks (20 hours total)? If so, do you have any ideas as HOW TO INPUT BOTH INPUT PIXEL VALUES TO THE MULTIPLEXER BLOCK? Thanks! |
|
相关推荐
3个回答
|
|
如果你想让它实时运行,我认为Microblaze不是一个很好的方法。
我认为同步将是棘手的部分。 如果你的两个输入不同步,你将无法在它们之间切换 - 一个可能只在另一个是帧的一半时才开始发送帧。 我最初的想法是你需要存储四个帧 - 每个输入两个帧。 存储了两个完整帧后,您可以从另一个MIG端口读取这些帧(同时存储接下来的两个帧)并使用单个时钟进程进行比较,然后将结果直接输出到HDMI端口。 您需要考虑内存带宽是否能够支持两次写入(每次输入一次)和一次读取(需要以两倍的速度运行,因为您需要同时读取两个存储的帧) - 在1080P上实现你的结果可能很棘手,但640x480可能没问题:) 如果您是HDL设计的新手,我会说这将是一个非常雄心勃勃且难以在20小时内实现的项目,因为它需要对Xilinx MIG(存储器接口生成器)有一个合理的理解。 我没有看过Digilent'Atlys HDMI演示项目'(它是基于Microblaze?)但我可以指出一些资源,使用HDL(Verilog)的Spartan-6 MIG作为HDMI的帧缓冲器。 以上来自于谷歌翻译 以下为原文 If you want it to run in real time, I don't think that Microblaze would be a good way to do it. I think that synchronisation will be the tricky part. If your two inputs are not in sync, you won't be able to switch between them on the fly - one might only start sending a frame when the other is half way through a frame. My initial thought is that you will need to store four frames - two from each input. Once you have two full frames stored, you can read those frames back out of another MIG port (while simultaneously storing the next two frames) and compare them using a single clock process, and then output the result straight out the HDMI port. You will need to think about whether the memory bandwidth will be able to sustain two writes (one for each input) and one read (which needs to operate at double the speed, since you need to read both stored frames at the same time) - it might be tricky to achieve your result at 1080P, but 640x480 might be okay :) If you're new to HDL design, I'd say that this would be a very ambitious and difficult project to achieve in 20 hours as it will require a reasonable understanding of the Xilinx MIG (memory interface generator). I haven't looked at the Digilent 'Atlys HDMI Demo Project' (is it based on Microblaze?) but I can point you to some resources for using the Spartan-6 MIG from HDL (Verilog) as a frame buffer for HDMI. |
|
|
|
如果您对HDL设计非常熟悉,可以在3周内全天(120小时)进行管理。
事实上,你正在为失败做好准备。 ------------------------------------------“如果它不起作用 模拟,它不会在板上工作。“ 以上来自于谷歌翻译 以下为原文 If you were reasonably familiar with HDL design, you might manage it in 3 weeks full-time (120 hours). As it is, you are setting yourself up for failure. ------------------------------------------ "If it don't work in simulation, it won't work on the board." |
|
|
|
嗨乔尔,
您能否指出我使用HDL(Verilog)的Spartan-6 MIG作为HDMI的帧缓冲器的资源? 我想用alpha混合功能进行HDMI混音。 非常感谢您的帮助! 罗伯特 以上来自于谷歌翻译 以下为原文 Hi Joel, Could you point me to some resources for using the Spartan-6 MIG from HDL (Verilog) as a frame buffer for HDMI? I want to do the HDMI mixing with alpha blending function. Thanks very much for your help! Robert |
|
|
|
只有小组成员才能发言,加入小组>>
2380 浏览 7 评论
2797 浏览 4 评论
Spartan 3-AN时钟和VHDL让ISE合成时出现错误该怎么办?
2262 浏览 9 评论
3335 浏览 0 评论
如何在RTL或xilinx spartan fpga的约束文件中插入1.56ns延迟缓冲区?
2428 浏览 15 评论
有输入,但是LVDS_25的FPGA内部接收不到数据,为什么?
756浏览 1评论
请问vc707的电源线是如何连接的,我这边可能出现了缺失元件的情况导致无法供电
545浏览 1评论
求一块XILINX开发板KC705,VC707,KC105和KCU1500
366浏览 1评论
1963浏览 0评论
682浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-23 03:07 , Processed in 1.830854 second(s), Total 82, Slave 66 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号