当前位置: 首页 > news >正文

企业做网站的多吗修改文章缩略字数 WORDPRESS

企业做网站的多吗,修改文章缩略字数 WORDPRESS,宜和购物电视购物官方网站,wordpress数据库密码错误目录 1、前言版本更新说明给读者的一封信FPGA就业高端项目培训计划免责声明 2、相关方案推荐我这里已有的FPGA图像缩放方案我已有的FPGA视频拼接叠加融合方案本方案的Xilinx Kintex7系列FPGA上的ov5640版本本方案的Xilinx Kintex7系列FPGA上的HDMI版本 3、设计思路框架设计框图… 目录 1、前言版本更新说明给读者的一封信FPGA就业高端项目培训计划免责声明 2、相关方案推荐我这里已有的FPGA图像缩放方案我已有的FPGA视频拼接叠加融合方案本方案的Xilinx Kintex7系列FPGA上的ov5640版本本方案的Xilinx Kintex7系列FPGA上的HDMI版本 3、设计思路框架设计框图视频源选择ov5640 i2c配置及采集silcon9011的i2c配置动态彩条图像缩放模块详解图像缩放模块使用多路视频拼接算法图像缓存视频输出工程源码架构 4、工程代码1详解ov5640版本--掌握2路视频缩放拼接5、工程代码2详解ov5640版本--掌握4路视频缩放拼接6、工程代码3详解HDMI版本--掌握2路视频缩放拼接7、工程代码4详解HDMI版本--掌握4路视频缩放拼接8、工程移植说明vivado版本不一致处理FPGA型号不一致处理其他注意事项 9、上板调试验证并演示准备工作工程1ov5640输入版本--2路视频缩放拼接输出演示工程2ov5640输入版本--4路视频缩放拼接输出演示工程3HDMI输入版本--2路视频缩放拼接输出演示工程4HDMI输入版本--4路视频缩放拼接输出演示 10、福利工程源码获取 FPGA高端项目Xilinx Artix7系列FPGA 多路视频缩放拼接 工程解决方案 提供4套工程源码技术支持 1、前言 没玩过图像缩放和视频拼接都不好意思说自己玩儿过FPGA这是CSDN某大佬说过的一句话鄙人深信不疑。。。本文使用Xilinx的Artix7系列FPGA实现多路视频缩放拼接方案视频源有两种分别对应开发者手里有没有摄像头的情况一种是使用廉价的OV5640摄像头模组或者板载的HDMI输入接口HDMI解码采用silcon9011芯片解码方式如果你的手里没有摄像头或者没有摄像头输入接口亦或者你的开发板没有HDMI输入接口或者HDMI解码不是silcon9011芯片解码方式则可使用代码内部生成的动态彩条模拟摄像头视频视频源的选择通过代码顶层的define宏定义进行选择默认使用ov5640或者HDMI作为视频源FPGA采集到输入视频后首先经过图像缩放模块对图像进行缩放操作图像缩放模块支持领域插值和双线性插值2种算法通过模块顶层参数选择默认使用双线性插值缩放后的图像进入我常用的FDMA图像缓存架构进行图像拼接和缓存这里需要注意的是我的手里没有多路摄像头所以用采集到的视频复制N路以模拟N路视频视频拼接在调用FDMA的不同方案中得以实现比如你需要进行4路视频拼接则需要调用4路FDMA并对其进行不同的配置具体方案在后面会介绍拼接缓存的图像写入DDR中然后在VGA时序生成模块的控制下读出视频最后送入板载的silcon9134芯片编码为HDMI视频后发送视频至显示器即可如果你的开发板HDMI输出接口不是芯片驱动而是直连FPGA引脚代码里也预留了纯verilog代码实现的HDMI输出模块来适应这种情况针对目前市面上主流的FPGA本纯verilog图像缩放拼接方案一共移植了18套工程源码本博文介绍其中基于Xilinx Artix7系列FPGA ov5640版本的4套工程详情如下 这里说明一下提供的4套工程源码的作用和价值如下 工程源码1ov5640输入版本–2路视频缩放拼接 ov5640或者动态彩条输入输入视频分辨率为1280x720经过图像缩放模块后视频辨率为960x1080缩放后的视频复制2份用以模拟2路视频调用2路FDMA图像缓存架构做视频拼接和图像缓存最后HDMI输出1920x1080的输出分辨率背景上叠加2路分辨率为960x1080的缩放拼接的视频即2分屏输出显示此工程目的是让读者掌握2路视频缩放拼接的用法以便能够移植和设计自己的项目 工程源码2ov5640输入版本–4路视频缩放拼接 ov5640或者动态彩条输入输入视频分辨率为1280x720经过图像缩放模块后视频辨率为960x540缩放后的视频复制4份用以模拟4路视频调用4路FDMA图像缓存架构做视频拼接和图像缓存最后HDMI输出1920x1080的输出分辨率背景上叠加4路分辨率为960x540的缩放拼接的视频即4分屏输出显示此工程目的是让读者掌握4路视频缩放拼接的用法以便能够移植和设计自己的项目 工程源码3HDMI输入版本–2路视频缩放拼接 HDMI或者动态彩条输入输入视频分辨率为1920x1080经过图像缩放模块后视频辨率为960x1080缩放后的视频复制2份用以模拟2路视频调用2路FDMA图像缓存架构做视频拼接和图像缓存最后HDMI输出1920x1080的输出分辨率背景上叠加2路分辨率为960x1080的缩放拼接的视频即2分屏输出显示此工程目的是让读者掌握2路视频缩放拼接的用法以便能够移植和设计自己的项目 工程源码4HDMI输入版本–4路视频缩放拼接 HDMI或者动态彩条输入输入视频分辨率为1920x1080经过图像缩放模块后视频辨率为960x540缩放后的视频复制4份用以模拟4路视频调用4路FDMA图像缓存架构做视频拼接和图像缓存最后HDMI输出1920x1080的输出分辨率背景上叠加4路分辨率为960x540的缩放拼接的视频即4分屏输出显示此工程目的是让读者掌握4路视频缩放拼接的用法以便能够移植和设计自己的项目 本博客详细描述了Xilinx Artix7系列FPGA 多路视频缩放拼接工程解决方案的设计方案工程代码可综合编译上板调试可直接项目移植适用于在校学生、研究生项目开发也适用于在职工程师做学习提升可应用于医疗、军工等行业的高速接口或图像处理领域 提供完整的、跑通的工程源码和技术支持 工程源码和技术支持的获取方式放在了文章末尾请耐心看到最后 版本更新说明 此版本为第3版根据读者的建议对第1版工程做了改进和更新形成如下第2版本 1增加了输入视频动态彩条的选择有的读者说他手里没有OV5640摄像头或者摄像头原理图和我的不一致导致在移植过程中困难很大基于此增加了动态彩条它由FPGA内部产生不需要外接摄像头就可以使用使用方法在后文有说明 2优化了FDMA之前的FDMA内AXI4的数据读写突发长度为256导致在低端FPGA上带宽不够从而图像质量不佳基于此将FDMA内AXI4的数据读写突发长度改为128 3优化了HDMI输出模块之前用的自定义IP有读者说IP无法更新虽能正常使用但看源码不方便基于此将HDMI输出模块改为纯verilog实现的直接了当 4:更新了输出时序模块我的输出时序模块采用1080P背景中显示有效区域图像的方式之前的版本除有效区域图像外其他区域是花屏的有读者说看着不舒服基于此将除有效区域图像外的图像优化为黑色即黑色背景中显示有效区域图像的方式在后面有贴图 根据读者的建议对第2版工程做了改进和更新形成如下第3版本 1优化了图像缩放模块代码结构将原来的跨时钟域FIFO纳入图像缩放模块内部并添加了新的顶层接口和配置参数使能原来复杂的顶层接口和参数变得十分简洁 2新增了纯verilog实现的异步FIFO代码里可选Xilinx的FIFO IP核也可选verilog实现的异步FIFO通过顶层参数选择这样就使得图像缩放模块移植性和通用性更强 3工程整体使用难度大大降低由于优化了图像缩放模块和整体代码架构加之将原来很多参数进行了统一的设置代码量和行数减少了近45%仅需修改集合参数就能快速实现工程的移植和修改 给读者的一封信 FPGA作为当今热门行业入行门槛很高工资待遇不错一时间引无数英雄尽折腰但很多初学者甚至工程师都还有很多误区现给读者一封信如下 1、矮要承认挨打站稳 要学FPGA甚至吃这碗饭每个人都是从零基础开始的你对自己有自信认为你行就自学你不自信就找别人学和古代拜师学艺是一回事儿首先思维要符合逻辑 2、基础问题需要自己解决 最基础的知识比如verilog语法、vivado工具使用、模电数电基础常识、电脑使用、计算机基本结构。。。这些基础知识在网上都是免费的既有文字资料也有视频资料这些基础知识你一定要具备因为这是你能获得的性价比最高的东西了首先它免费其次它简单只需要你花时间不需要花脑子最后它重要这是你干FPGA的基础 3、有了源码等于零 你可能认为我有了源码就能做项目了我可以肯定的告诉你该醒醒了原子弹的详细原理和原料配方甚至生产工艺流程在网上都是公开的为啥全世界就那联合国几大流氓能造出来的同样的源码给你你看得懂吗你知道怎么用吗看不懂不会用的源码跟废物有什么区别你需要的是源码工程最完美的是源码工程技术支持有了源码就有了可开发的底层架构有了工程就知道源码或者模块怎么使用有了技术支持就可以根据源码修改开发自己的项目 4、先学会爬在学会跑 对于初学者没有资格研究代码你首先需要做的是对工程进行复现比如给你一个图像的工程你首先在自己的开发板上复现这个工程的功能然后再去阅读理解代码然后对代码的功能部分做小幅修改比如改一下接口增加几个输出接口比如加一个LED输出小幅修改后再慢慢增加修改幅度以符合自己的需求 5、学FPGA要不求甚解 学FPGA要不求甚解甚至不需要理解这句话咋听着有点不符合逻辑呢对于很多功能性模块而言你不需要理解它怎么实现的你只需要知道怎么使用它比如一个图像缩放模块这种东西都是很老的知识以你目前的知识水平该模块的代码你怎么看也看不懂的但你只要知道怎么使用它就行了知道怎么使用就能做项目就能在公司呆下去了原因很简单老板招你来是干活儿的不是招你来学习的那是学校的事儿如果要等什么都懂了才干活儿那公司早垮了学FPGA就是在实践中学习先上前线去干活边干边学在实践中遇到问题并主动去查资料问大佬理解问题才是成长最快的而不是一味的咬文嚼字刨根问底 FPGA就业高端项目培训计划 鉴于目前的FPGA就业和行业现状本博推出了FPGA就业高端项目培训纯verilog多路视频缩放拼接 工程解决方案的计划该计划旨在让一部分人先学会FPGA纯verilog图像缩放提高从业者的技术水平和工资待遇详细计划如下 FPGA就业高端项目培训计划细节 1、我发你上述18套工程源码和对应的工程设计文档网盘链接你保存下载作为培训的核心资料 2、你根据自己的实际情况安装好对应的开发环境然后对着设计文档进行浅层次的学习 3、遇到不懂的随时问我包括代码、职业规划、就业咨询、人生规划、战略规划等等 4、每周末进行一次腾讯会议我会检查你的学习情况和面对面沟通交流 5、你可以移植代码到你自己的FPGA开发板上跑如果你没有板子你根据你自己的需求修改代码后编译工程把bit发我我帮你下载到我的板子上验证 免责声明 本工程及其源码即有自己写的一部分也有网络公开渠道获取的一部分(包括CSDN、Xilinx官网、Altera官网等等)若大佬们觉得有所冒犯请私信批评教育基于此本工程及其源码仅限于读者或粉丝个人学习和研究禁止用于商业用途若由于读者或粉丝自身原因用于商业用途所导致的法律问题与本博客及博主无关请谨慎使用。。。 2、相关方案推荐 我这里已有的FPGA图像缩放方案 我的主页目前有FPGA图像缩放专栏改专栏收录了我目前手里已有的FPGA图像缩放方案从实现方式分类有基于HSL实现的图像缩放、基于纯verilog代码实现的图像缩放从应用上分为单路视频图像缩放、多路视频图像缩放、多路视频图像缩放拼接从输入视频分类可分为OV5640摄像头视频缩放、SDI视频缩放、MIPI视频缩放等等以下是专栏地址 点击直接前往 我已有的FPGA视频拼接叠加融合方案 我的主页目前有FPGA视频拼接叠加融合专栏改专栏收录了我目前手里已有的FPGA视频拼接叠加融合方案从实现方式分类有基于HSL实现的视频拼接、基于纯verilog代码实现的视频拼接从应用上分为单路、2路、3路、4路、8路、16路视频拼接视频缩放拼接视频融合叠加从输入视频分类可分为OV5640摄像头视频拼接、SDI视频拼接、CameraLink视频拼接等等以下是专栏地址 点击直接前往 本方案的Xilinx Kintex7系列FPGA上的ov5640版本 本方案适应于所有FPGA平台针对目前市面上主流的FPGA本博将本方案分别移植到了Xilinx 的Artix7、Kintex7、Zynq7020、紫光同创等平台共计18套工程源码本文讲述的是在Xilinx Artix7系列FPGA上的应用想要直接应用于Xilinx Kintex7系列FPGA上的ov5640视频缩放拼接应用的读者可以参考我之前写得博客以下是博客地址 点击直接前往 本方案的Xilinx Kintex7系列FPGA上的HDMI版本 本方案适应于所有FPGA平台针对目前市面上主流的FPGA本博将本方案分别移植到了Xilinx 的Artix7、Kintex7、Zynq7020、紫光同创等平台共计18套工程源码本文讲述的是在Xilinx Artix7系列FPGA上的应用想要直接应用于Xilinx Kintex7系列FPGA上的HDMI视频缩放拼接应用的读者可以参考我之前写得博客以下是博客地址 点击直接前往 3、设计思路框架 设计框图 本博客提供4套vivado工程源码设计框图如下 视频源选择 工程1和工程2的输入默认为OV5640摄像头模组视频源有两种分别对应开发者手里有没有摄像头的情况一种是使用廉价的OV5640摄像头模组如果你的手里没有摄像头或者你的开发板没有摄像头接口则可使用代码内部生成的动态彩条模拟摄像头视频视频源的选择通过代码顶层的define宏定义进行默认使用ov5640作为视频源视频源的选择通过代码顶层的define宏定义进行如下 选择逻辑代码部分如下 选择逻辑如下 当(注释) define COLOR_TEST时输入源视频是ov5640摄像头 当(不注释) define COLOR_TEST时输入源视频是动态彩条 工程3和工程4的输入默认为HDMI视频源有两种分别对应开发者手里有没有摄像头的情况板载的HDMI输入接口HDMI解码采用silcon9011芯片解码方式如果你的开发板没有HDMI输入接口或者HDMI解码不是silcon9011芯片解码方式则可使用代码内部生成的动态彩条模拟摄像头视频视频源的选择通过代码顶层的define宏定义进行默认使用HDMI作为视频源视频源的选择通过代码顶层的define宏定义进行如下 选择逻辑代码部分如下 选择逻辑如下 当(注释) define COLOR_TEST时输入源视频是HDMI输入视频 当(不注释) define COLOR_TEST时输入源视频是动态彩条 ov5640 i2c配置及采集 工程1和工程2的输入默认为OV5640摄像头模组视频源有两种分别对应开发者手里有没有摄像头的情况一种是使用廉价的OV5640摄像头模组如果你的手里没有摄像头或者你的开发板没有摄像头接口则可使用代码内部生成的动态彩条模拟摄像头视频视频源的选择通过代码顶层的define宏定义进行默认使用ov5640作为视频源ov5640需要i2c配置才能使用需要i2c配置分辨率然后将DVP接口的两个时钟一个像素的GRB565视频数据采集为一个时钟一个像素的RGB565或者RGB888视频数据ov5640i2c配置及采集代码如下 ov5640配置和采集模块顶层参数如下 module helai_ov5640_rx #(parameter RGB_TYPE 1b0 , // 设为0--输出RGB565设为1--输出RGB888parameter SENSOR_ADDR 8h78, // i2c 从机器件地址parameter DISPAY_H 1280 , // ov5640输出视频宽度parameter DISPAY_V 720 // ov5640输出视频高度 )(input clk , // 输入时钟input rst_n , // 低电平复位input [15:0] clk_div_cnt , // 分频参数 clk_div_cntclk/(5*i2c_scl)-1 inout cam_scl , //cmos i2c clock 即上面公式里的i2c_sclinout cam_sda , //cmos i2c datainput cam_vsync , //cmos vsyncinput cam_href , //cmos hsync refrence,data validinput cam_iclk , //cmos pxiel clock input cam_pclk , //cmos pxiel clockoutput cam_xclk , //cmos externl clock input [7:0] cam_data , //cmos dataoutput cam_rst_n , //cmos reset output cam_pwdn , //cmos power downoutput o_ov5640_hs , // 输出的RGB视频行同步信号 output o_ov5640_vs , // 输出的RGB视频场同步信号 output o_ov5640_de , // 输出的RGB视频像素数据有效信号 output [23:0] o_ov5640_data // 输出的RGB视频像素数据 );ov5640配置和采集模块的例化请参考工程源码的顶层代码 silcon9011的i2c配置 工程3和工程4的输入默认为HDMI视频源有两种分别对应开发者手里有没有摄像头的情况板载的HDMI输入接口HDMI解码采用silcon9011芯片解码方式如果你的开发板没有HDMI输入接口或者HDMI解码不是silcon9011芯片解码方式则可使用代码内部生成的动态彩条模拟摄像头视频视频源的选择通过代码顶层的define宏定义进行默认使用HDMI作为视频源silcon9011需要i2c配置才能使用配置代码如下 更多关于更多silcon9011的信息请参考我之前的博客链接如下 直接点击前往 动态彩条 如果你的手里没有Sensorov5640或者HDMI或者你得开发板没有Sensorov5640或者HDMI接口则可使用代码内部生成的动态彩条模拟摄像头视频视频源的选择通过代码顶层的define宏定义进行动态彩条可配置为不同分辨率的视频视频的边框宽度动态移动方块的大小移动速度等都可以参数化配置动态彩条模块代码位置和顶层接口和例化如下 动态彩条模块的例化请参考工程源码的顶层代码 图像缩放模块详解 图像缩放模块功能框图如下由跨时钟FIFO、插值RAM阵列构成跨时钟FIFO的目的是解决跨时钟域的问题比如从低分辨率视频放大到高分辨率视频时像素时钟必然需要变大这是就需要异步FIFO了插值算法和RAM阵列具体负责图像缩放算法层面的实现 插值算法和RAM阵列以ram和fifo为核心进行数据缓存和插值实现设计架构如下 图像缩放模块代码架构如下模块的例化请参考工程源码的顶层代码 图像缩放模块FIFO的选择可以调用工程对应的vivado工具自带的FIFO IP核也可以使用纯verilog实现的FIFO可通过接口参数选择图像缩放模块顶层接口如下 module helai_video_scale #(//---------------------------Parameters----------------------------------------parameter FIFO_TYPE xilinx, // xilinx for xilinx-fifo ; verilog for verilog-fifoparameter DATA_WIDTH 8 , //Width of input/output dataparameter CHANNELS 1 , //Number of channels of DATA_WIDTH, for color imagesparameter INPUT_X_RES_WIDTH 11 //Widths of input/output resolution control signals )(input i_reset_n , // 输入--低电平复位信号input [INPUT_X_RES_WIDTH-1:0] i_src_video_width , // 输入视频--即缩放前视频的宽度input [INPUT_X_RES_WIDTH-1:0] i_src_video_height, // 输入视频--即缩放前视频的高度input [INPUT_X_RES_WIDTH-1:0] i_des_video_width , // 输出视频--即缩后前视频的宽度input [INPUT_X_RES_WIDTH-1:0] i_des_video_height, // 输出视频--即缩后前视频的高度input i_src_video_pclk , // 输入视频--即缩前视频的像素时钟input i_src_video_vs , // 输入视频--即缩前视频的场同步信号,必须为高电平有效input i_src_video_de , // 输入视频--即缩前视频的数据有效信号,必须为高电平有效input [DATA_WIDTH*CHANNELS-1:0] i_src_video_pixel , // 输入视频--即缩前视频的像素数据input i_des_video_pclk , // 输出视频--即缩后视频的像素时钟,一般为写入DDR缓存的时钟output o_des_video_vs , // 输出视频--即缩后视频的场同步信号,高电平有效output o_des_video_de , // 输出视频--即缩后视频的数据有效信号,高电平有效output [DATA_WIDTH*CHANNELS-1:0] o_des_video_pixel // 输出视频--即缩后视频的像素数据 );FIFO_TYPE选择原则如下 1总体原则选择xilinx好处大于选择verilog 2当你的FPGA逻辑资源不足时请选xilinx 3当你图像缩放的视频分辨率较大时请选xilinx 4当你的FPGA没有FIFO IP或者FIFO IP快用完了请选verilog 5当你向自学一下异步FIFO时请选verilog 6不同FPGA型号对应的工程FIFO_TYPE参数不一样但选择原则一样具体参考代码 2种插值算法的整合与选择 本设计将常用的双线性插值和邻域插值算法融合为一个代码中通过输入参数选择某一种算法 具体选择参数如下 input wire i_scaler_type //0--bilinear;1--neighbor通过输入i_scaler_type 的值即可选择 输入0选择双线性插值算法 输入1选择邻域插值算法 代码里的配置如下 图像缩放模块使用 图像缩放模块使用非常简单顶层代码里设置了四个参数如下 上图视频通过图像缩放模块但不进行缩放操作旨在掌握图像缩放模块的用法如果需要将图像放大到1080P则修改为如下 当然需要修改的不仅仅这一个地方FDMA的配置也需要相应修改详情请参考代码但我想要证明的是图像缩放模块使用非常简单你都不需要知道它内部具体怎么实现的上手就能用 多路视频拼接算法 纯verilog多路视频拼接方案如下以4路OV5640摄像头拼接为例 输出屏幕分辨率为1920X1080 输入摄像头分辨率为960X540 4路输入刚好可以占满整个屏幕 多路视频的拼接显示原理如下 以把 2 个摄像头 CAM0 和 CAM1 输出到同一个显示器上为列为了把 2 个图像显示到 1 个显示器首先得搞清楚以下关系 hsize每 1 行图像实际在内存中占用的有效空间以 32bit 表示一个像素的时候占用内存大小为 hsize X 4 hstride用于设置每行图像第一个像素的地址,以 32bit 表示一个像素的时候 v_cnt X hstride X 4 vsize有效的行 因此很容易得出 cam0 的每行第一个像素的地址也是 v_cnt X hstride X 4 同理如果我们需要把 cam1 在 hsize 和 vsize 空间的任何位置显示我们只要关心 cam1 每一行图像第一个像素的地址可以用以下公式 v_cnt X hstride X 4 offset uifdma_dbuf 支持 stride 参数设置stride 参数可以设置输入数据 X(hsize)方向每一行数据的第一个像素到下一个起始像素的间隔地址利用 stride 参数可以非常方便地摆放输入视频到内存中的排列方式。 关于uifdma_dbuf可以参考我之前写的文章点击查看FDMA实现视频数据三帧缓存 根据以上铺垫每路摄像头缓存的基地址如下 CAM0ADDR_BASE0x80000000 CAM1ADDR_BASE0x80000000(1920-960)X4 CAM2ADDR_BASE0x80000000(1080-540)X1920X4 CAM3ADDR_BASE0x80000000(1080-540)X1920X4(1920-960)X4 地址设置完毕后基本就完事儿了 注意 注意 注意 在Zynq的地址分配中FDMA的基地址不是上述的0x80000000而是0x01000000因为0x00000000是Zynq内核启动及其片内外设的基地址所以不能以0x00000000作为PL端设备的基地址由于Zynq地址分配从0x00000000开始所以也不可能将FDMA基地址人为设置为0x80000000了 图像缓存 经常看我博客的老粉应该都知道我做图像缓存的套路是FDMA他的作用是将图像送入DDR中做3帧缓存再读出显示目的是匹配输入输出的时钟差和提高输出视频质量关于FDMA请参考我之前的博客博客地址点击直接前往 FDMA图像缓存架构如下图所示截图为4路视频拼接其他多路视频拼接与之类似 需要注意的是Xilinx系列的Artix7、Kintex7以及紫光和高云工程都使用DDR3作为缓存Zynq7020工程使用PS端的DDR3作为缓存Artix7、Kintex7工程调用MIG IP实现DDR3读写Zynq7020工程调用Zynq软核实现DDR3读写没有用到VDMA之类的IP所以不需要SDK配置 这里多路视频拼接时调用多路FDMA进行缓存具体讲就是每一路视频调用1路FDMA以4路视频拼接为例 调用4路FDMA其中三路配置为写模式因为这三路视频在这里只需要写入DDR3读出是由另一个FDMA完成配置如下 另外1路FDMA配置为读写模式因为4路视频需要同时一并读出配置如下 视频拼接的关键点在于4路视频在DDR3中缓存地址的不同还是以4路视频拼接为例4路FDMA的写地址以此为 第一路视频缓存写基地址0x80000000 第二路视频缓存写基地址0x80000f00 第三路视频缓存写基地址0x803f4800 第四路视频缓存写基地址0x803f5700 视频缓存读基地址0x80000000 视频输出 拼接缓存的图像写入DDR中然后在VGA时序生成模块的控制下读出视频最后送入板载的silcon9134芯片编码为HDMI视频后发送视频至显示器即可如果你的开发板HDMI输出接口不是芯片驱动而是直连FPGA引脚代码里也预留了纯verilog代码实现的HDMI输出模块来适应这种情况silcon9134需要i2c配置才能使用配置代码如下 更多关于更多silcon9011的信息请参考我之前的博客链接如下 直接点击前往 如果你的开发板HDMI输出接口不是芯片驱动而是直连FPGA引脚代码里也预留了纯verilog代码实现的HDMI输出模块来适应这种情况如下 纯verilog代码实现的HDMI输出模块代码如下 关于纯verilog代码实现的HDMI输出模块请参考我之前的博客博客地址点击直接前往 工程源码架构 Xilinx Artix7系列FPGA工程源码架构具有高度相似性以工程1为例截图如下 4、工程代码1详解ov5640版本–掌握2路视频缩放拼接 开发板FPGA型号Xilinx–Artix7–xc7a35tfgg484-2 开发环境Vivado2019.1 输入OV5640摄像头或动态彩条分辨率1280x720 输出1920x1080的输出分辨率背景上叠加2路分辨率为960x1080的缩放拼接的视频即2分屏输出显示 视频缩放方案输入1280x720–输出960x1080 视频拼接方案2路视频拼接 工程作用此工程目的是让读者掌握2路视频缩放拼接的用法以便能够移植和设计自己的项目 工程Block Design请参考第3章节“设计思路框架”的“图像缓存”小节内容 工程代码架构请参考第3章节“设计思路框架”的“工程源码架构”小节内容 工程的资源消耗和功耗如下该工程使用的是Xilinx fifo方案 5、工程代码2详解ov5640版本–掌握4路视频缩放拼接 开发板FPGA型号Xilinx–Artix7–xc7a35tfgg484-2 开发环境Vivado2019.1 输入OV5640摄像头或动态彩条分辨率1280x720 输出1920x1080的输出分辨率背景上叠加4路分辨率为960x540的缩放拼接的视频即4分屏输出显示 视频缩放方案输入1280x720–输出960x540 视频拼接方案4路视频拼接 工程作用此工程目的是让读者掌握4路视频缩放拼接的用法以便能够移植和设计自己的项目 工程Block Design请参考第3章节“设计思路框架”的“图像缓存”小节内容 工程代码架构请参考第3章节“设计思路框架”的“工程源码架构”小节内容 工程的资源消耗和功耗如下该工程使用的是Xilinx fifo方案 6、工程代码3详解HDMI版本–掌握2路视频缩放拼接 开发板FPGA型号Xilinx–Artix7–xc7a35tfgg484-2 开发环境Vivado2019.1 输入HDMI或动态彩条分辨率1920x1080 输出1920x1080的输出分辨率背景上叠加2路分辨率为960x1080的缩放拼接的视频即2分屏输出显示 视频缩放方案输入1920x1080–输出960x1080 视频拼接方案2路视频拼接 工程作用此工程目的是让读者掌握2路视频缩放拼接的用法以便能够移植和设计自己的项目 工程Block Design请参考第3章节“设计思路框架”的“图像缓存”小节内容 工程代码架构请参考第3章节“设计思路框架”的“工程源码架构”小节内容 工程的资源消耗和功耗如下该工程使用的是Xilinx fifo方案 7、工程代码4详解HDMI版本–掌握4路视频缩放拼接 开发板FPGA型号Xilinx–Artix7–xc7a35tfgg484-2 开发环境Vivado2019.1 输入HDMI或动态彩条分辨率1920x1080 输出1920x1080的输出分辨率背景上叠加4路分辨率为960x540的缩放拼接的视频即4分屏输出显示 视频缩放方案输入1920x1080–输出960x540 视频拼接方案4路视频拼接 工程作用此工程目的是让读者掌握4路视频缩放拼接的用法以便能够移植和设计自己的项目 工程Block Design请参考第3章节“设计思路框架”的“图像缓存”小节内容 工程代码架构请参考第3章节“设计思路框架”的“工程源码架构”小节内容 工程的资源消耗和功耗如下该工程使用的是Xilinx fifo方案 8、工程移植说明 vivado版本不一致处理 1如果你的vivado版本与本工程vivado版本一致则直接打开工程 2如果你的vivado版本低于本工程vivado版本则需要打开工程后点击文件–另存为但此方法并不保险最保险的方法是将你的vivado版本升级到本工程vivado的版本或者更高版本 3如果你的vivado版本高于本工程vivado版本解决如下 打开工程后会发现IP都被锁住了如下 此时需要升级IP操作如下 FPGA型号不一致处理 如果你的FPGA型号与我的不一致则需要更改FPGA型号操作如下 更改FPGA型号后还需要升级IP升级IP的方法前面已经讲述了 其他注意事项 1由于每个板子的DDR不一定完全一样所以MIG IP需要根据你自己的原理图进行配置甚至可以直接删掉我这里原工程的MIG并重新添加IP重新配置 2根据你自己的原理图修改引脚约束在xdc文件中修改即可 3纯FPGA移植到Zynq需要在工程中添加zynq软核 9、上板调试验证并演示 准备工作 需要如下器材设备 1、FPGA开发板 2、OV5640摄像头或HDMI输入设备比如笔记本电脑两者都没有则使用动态彩条 2、HDMI连接线和显示器 工程1ov5640输入版本–2路视频缩放拼接输出演示 工程1输出演示我将动态彩条和ov5640摄像头缩放拼接输出的视频剪辑整理后如下 视频前半段为动态彩条缩放拼接输出 视频前后段为ov5640摄像头缩放拼接输出 ov5640输入2路视频缩放拼接输出演示 工程2ov5640输入版本–4路视频缩放拼接输出演示 工程2输出演示我将动态彩条和ov5640摄像头缩放拼接输出的视频剪辑整理后如下 视频前半段为动态彩条缩放拼接输出 视频前后段为ov5640摄像头缩放拼接输出 ov5640输入4路视频缩放拼接输出演示 工程3HDMI输入版本–2路视频缩放拼接输出演示 工程3输出演示我将动态彩条和HDMI缩放拼接输出的视频剪辑整理后如下 视频前半段为动态彩条缩放拼接输出 视频前后段为HDMI缩放拼接输出 HDMI输入2路视频缩放拼接输出演示 工程4HDMI输入版本–4路视频缩放拼接输出演示 工程4输出演示我将动态彩条和HDMI缩放拼接输出的视频剪辑整理后如下 视频前半段为动态彩条缩放拼接输出 视频前后段为HDMI缩放拼接输出 HDMI输入4路视频缩放拼接输出演示 10、福利工程源码获取 福利工程代码的获取 代码太大无法邮箱发送以某度网盘链接方式发送 资料获取方式私或者文章末尾的V名片。 网盘资料如下
http://www.ho-use.cn/article/10823393.html

相关文章:

  • 一站式wordpress 广告 统计
  • 自学网站有哪些wordpress token
  • 360建站模板低价网站建设案例
  • 做网站 新域名 还是皮肤科在线医生免费咨询
  • 写作投稿网站网上提供免费主页空间的网站
  • python一句做网站做网站几个步骤
  • 商城网站建设解决方案二级网站内容建设要求
  • 商务网站开发流程有三个阶段谷歌浏览器手机版
  • 北京的p2p网站建设深圳龙岗做网站的公司
  • 杭州住房城乡建设网站查询我想来做外贸网站来推广
  • 麒麟区住房和城乡建设局网站设计公司和装修公司的区别
  • 非凡网站建设搜索引擎是如何判断网站的结构
  • 网站建设行业分析装修网络公司
  • 城乡建设杂志社官方网站国外免费域名申请
  • 做淘宝客网站用什么系统吗淮北论坛最新招聘
  • 在印度做外贸需要什么网站辅助购卡网站怎么做
  • 自主网站怎么投诉网站制作公司
  • 网站制作怎么自己做国家职业资格证书网站
  • 国外网站网站app北京市建设工程安全质量监督总站网站
  • 网站建设上线问题网站做的简单是什么意思
  • 如何制作新型网站程序公司注册代理机构
  • 做pc网站会连带手机版如何制作短视频
  • html5 网站开发定制简洁大气企业网站模板
  • 哈密地网站建设网站建设征求意见通知
  • 新网站seo技术湖北省建筑信息平台
  • 遂宁移动端网站建设合肥百度搜索排名优化
  • 佛山网站建设公司分享微信营销的五个技巧韩国设计欣赏网站
  • 做标准件网站推广公司产品
  • 蓝田微网站建设雄安网站建设制作
  • 有本地服务器怎么做网站网页设计如何制作背景