直方图均衡化和Zynq-Based硬件
这个例子展示了如何目标直方图均衡化算法Zynq®硬件使用视觉HDL工具箱™支持包Xilinx®Zynq-Based硬件。金宝app
设置先决条件
这个例子遵循算法详细的开发流程为Zynq-Based硬件开发视觉算法的例子。如果您还没有这样做,请通过这个例子来更好地了解所需的工作流。
该算法是基于视觉HDL工具箱的例子,直方图均衡化。Zynq-Base金宝appd视觉硬件的支持包,你会得到一个硬件参考设计,允许容易集成的目标算法的视觉系统。
如果您尚未这样做,通过指导运行安装向导部分Zynq支持包安装。金宝app您可能已经完成了这一步当你安装这个包的支持。金宝app
在MATLAB家选项卡,环境部分的将来发布,点击附件>管理插件。定位视觉HDL工具箱支持包Xilinx Z金宝appynq-Based硬件,然后单击设置。
引导安装向导执行一些初始设置步骤,并确认目标可以引导和主机和目标可以交流。
有关更多信息,请参见设置为视觉硬件。
Pixel-Stream模型
这个模型提供了一个pixel-stream针对高密度脂蛋白的算法的实现。致力于完整的图像,而是HDL-ready算法适用于pixel-streaming接口。这个模型使用一个YCbCr 4:2:2调整块,允许将源视频帧大小为更好的模拟性能。或者,您可能想要执行一个视频帧的作物。阴影区域的块与像素流信号转换为目标做准备。
该算法在本例中执行直方图均衡化增强的对比视频。整个视频帧直方图的计算和积累。设计均衡适用于相同的帧直方图的计算。一个帧缓冲存储输入帧直方图计算。当累积直方图计算,一个触发信号释放存储帧的帧缓冲区。
open_system (“vzHistogramEqualization_PixelStream”)
视频源这个示例的源视频来自要么从多媒体文件块,从一个多媒体文件,读取视频数据或从视频捕捉块,捕捉生活视频帧从一个HDMI源连接到Zynq-based硬件。配置源,右键单击变体选择左下角的图标图片来源块,选择标签模式积极的选择,选择文件或HW。
对于这个算法,模型配置为上市:
一个像素格式YCbCr 4:2:2。该算法写入工作YCbCr 4:2:2像素格式,和两个从多媒体文件和视频捕捉块配置为在这种格式提供视频帧。其他受支持的金宝app像素格式是RGB, Y。
算法配置算法,除了处理直方图均衡化的图像也有一些控制。
pbBypass
连接到一个按钮在黑板上显示原始图像,而不应用直方图均衡化。
的pbBypass
控制端口是一个纯硬件连接在有针对性的设计。这个端口可以运行在任何期望的速度包括像素时钟频率。
领导
被连接到一个领导董事会,定期切换配置表明比特流加载正确。
errorLED
被连接到一个董事会领导,如果不支持的视频分辨率将切换被提供在直方图均衡化算法的输入。金宝app支持的视频分辨率列表,看到的金宝app外框尺寸参数金宝搏官方网站视频捕捉(软件接口)。
该模型的特点是视频帧缓冲块提供了一个帧缓冲的简化仿真模型在外部存储器中实现。的视频帧缓冲块被配置为一个像素格式的YCbCr 4:2:2
和视频的分辨率320年x240p
。在目标设计、帧缓冲连接将与外部存储器接口选择Zynq平台。
的视频帧缓冲块输入接口特性的视频像素端口{Y, CbCr},相应的像素控制总线端口{pixelCtrl},一个帧缓冲触发{流行}端口。存储的视频的帧缓冲,和相应的视频时间信号,提供像素和控制总线上的港口。帧缓冲流行
端口是用于安排释放存储视频帧的帧缓冲区。帧的帧缓冲区的释放是在控制的直方图均衡化算法子系统,应该主张高一个时钟周期。一旦触发,帧缓冲将释放存储帧的视频像素输出端口{Y, CbCr}与相应的视频时序信号像素控制总线端口{pixelCtrl}。
注意:在模拟输出的第一帧,视频显示范围显示绿色形象。这种情况表明,没有图像数据是可用的。这种行为是因为pixel-streaming算法必须缓冲的输出形式显示之前一枚。
您可以运行这个没有硬件仿真。修改当前帧大小为模拟性能,改变帧大小的价值YCbCr 4:2:2调整,帧的像素YCbCr 4:2:2,像素帧YCbCr 4:2:2块,帧缓冲块。外框尺寸越低,仿真运行得越快。最低帧大小是240 p。
目标的算法
满意后像素流算法模拟,你可以目标像素算法的FPGA Zynq董事会。
通过右键单击启动针对工作流直方图均衡化算法
子系统和选择高密度脂蛋白HDL代码>工作流顾问
。
在步骤1.1中,选择
IP核心代
工作流和从列表中选择您的目标平台。
在步骤1.2中,选择
YCbCr 4:2:2
参考设计匹配的像素格式直方图均衡化算法子系统。设置源视频分辨率1080 p的高清电视
。
注意:如果针对ZedBoard或ZC702,这个模型可能无法满足时间限制申请解决1080 p的高清电视
。如果使用ZedBoard或ZC702,设置源视频分辨率720 p的高清电视
。
在步骤1.3中,将目标平台接口映射到输入和输出端口的设计。下面的例子使用了帧缓冲界面,相关的港口直方图均衡化算法相应的子系统必须映射。
算法的视频帧缓冲区映射到子系统帧缓冲区的主人接口,视频的帧缓冲算法子系统映射到帧缓冲区的奴隶接口。帧缓冲流行信号也被映射的一部分帧缓冲区的主人接口。
参照目标平台接口表,地图YFromFrameBuf
港口的帧缓冲区的奴隶界面,选择Y从下拉菜单中范围/地址/ FPGA销列。同样,选择帧缓冲区的奴隶界面CbCrFromFrameBuf
和ctrlFromFrameBuf
港口,CbCr和像素控制总线从范围/地址/ FPGA销分别列。
映射YToFrameBuf
,CbCrToFrameBuf
,ctrlToFrameBuf
,popFrame
港口的帧缓冲区的主人界面,选择Y,CbCr,像素控制总线,框架触发从下拉菜单中范围/地址/ FPGA销分别列。
此外,地图pbBypass
港口按钮0,犯错
和领导
港口led 0和1。
第二步准备设计一代通过做一些设计检查。
第三步生成HDL代码的IP核心。
第四步将新生成的IP核心集成到更大的视觉Zynq参考设计。
按顺序执行每一步体验完整的工作流程,或者,如果你已经熟悉,准备和HDL代码生成阶段,在目录中右键单击步骤4.1左边和选择选择任务运行
。
在步骤4.2中,工作流模型生成一个目标硬件接口,如果嵌入式程序员Zynq支持包已经安装,Zynq软件界面模型。金宝app点击
运行这个任务
按钮使用默认设置。
步骤4.3和4.4
其余的工作流程生成一个FPGA比特流,下载到目标,重新启动。
因为这个过程可能需要20 - 40分钟,你可以选择跳过这一步使用预生成的比特流对于这个示例附带的产品,放置在SDCard期间设置。
注意:ZC706 ZCU102和PicoZed板,该比特流生成与HDMI像素时钟约束为148.5 MHz最高分辨率为1080 p高清电视在60帧每秒。ZedBoard和ZC702板,该比特流生成与HDMI像素时钟约束为74.25 MHz最高分辨率为720 p高清电视在60帧每秒。Zynq硬件上运行这个例子与更高的分辨率,从下拉列表中选择源视频分辨率值在步骤1.2。
使用这个预生成的比特流执行以下:
> > vz = visionzynq ();> > changeFPGAImage (vz“visionzynq-zedboard-hdmicam-histogram_equalization.bit”);
使用另一个平台的比特流,取代“zedboard”与平台的名字。
或者,您可以继续步骤4.3和4.4。
使用高密度脂蛋白的生成模型工作流顾问
步骤4.2生成的两个或四个模型取决于嵌入式安装编码器:有针对性的硬件接口的模型和相关的库模型,和一个软件界面的模型和相关的库模型。有针对性的硬件接口的模型可以用于控制仿真软件模型的参考设计没有嵌入式编码器。金宝app软件界面的模型支持完整的软件针对Zynq当嵌入式编码器和Zyn金宝appq(嵌入式编码器)支持包安装,使外部模式模拟,Processor-in-the-loop,全面部署。
图书馆创建模型,对硬件生成模型的任何更改传播到任何自定义目标存在的硬件仿真或软件界面模型。
针对硬件接口模型:在这个模型中,您可以调整的配置参考设计和阅读或硬件的驱动控制港口用户逻辑。这些配置更改影响的设计虽然在目标系统上运行。您还可以显示视频捕获目标设备。
软件界面模型:在这个模型中,您可以运行在外部模式控制的配置参考设计,和读或驱动任何控制端口的硬件用户逻辑连接AXI-Lite寄存器。这些配置更改影响的设计虽然在目标系统上运行。您可以使用这个模型完全部署软件设计。(这个模型生成只有嵌入式编码器和Zynq(嵌入式编码器)支持包安装。)金宝app