古镇 网站建设,商赢网站建设,国外做详情页网站,婚纱摄影网站目录1、前言2、设计思路和框架SDI接收SDI缓存写方式处理SDI缓存读方式处理SDI缓存的目的SDI发送3、工程1详解4、工程2详解5、上板调试验证并演示6、福利#xff1a;工程代码的获取1、前言
FPGA实现SDI视频编解码目前有两种方案#xff1a; 一是使用专用编解码芯片#xff0…
目录1、前言2、设计思路和框架SDI接收SDI缓存写方式处理SDI缓存读方式处理SDI缓存的目的SDI发送3、工程1详解4、工程2详解5、上板调试验证并演示6、福利工程代码的获取1、前言
FPGA实现SDI视频编解码目前有两种方案 一是使用专用编解码芯片比如典型的接收器GS2971发送器GS2972优点是简单比如GS2971接收器直接将SDI解码为并行的YCRCBGS2972发送器直接将并行的YCRCB编码为SDI视频缺点是成本较高可以百度一下GS2971和GS2972的价格 另一种方案是使用FPGA实现编解码利用FPGA的GTP/GTX资源实现解串优点是合理利用了FPGA资源GTP/GTX资源不用白不用缺点是操作难度大一些对FPGA水平要求较高。 本文详细描述了FPGA纯verilog编解码SDI视频的实现设计方案工程代码编译通过后上板调试验证文章末尾有演示视频可直接项目移植适用于在校学生、研究生项目开发也适用于在职工程师做项目开发可应用于医疗、军工等行业的数字成像和图像传输领域 提供完整的、跑通的工程源码和技术支持 工程源码和技术支持的获取方式放在了文章末尾请耐心看到最后 本设计提供两套vivado工程 工程1 SDI 1080P30Hz帧视频输入解码后经DDR3缓存SDI发送1080P30Hz帧输出 工程2 FPGA内部生成测试彩条视频SDI发送出去SDI接收后无缓存HDMI输出 关于SDI的理论知识部分可自行搜索一下很多大佬讲得很详细也可以参考我之前写的文章点击查看SDI理论
2、设计思路和框架
设计思路和框架如下 SDI经DDR3环出工程设计思路如下
SDI接收
SDI解码部分之前写过一篇文章详细描述了这里不再赘述请参考我之前写的文章点击查看SDI解码 这里重点将SDI图像缓存和发送部分
SDI缓存写方式处理
SDI 接收解串后把 20 位数据异步 FIFO 方式8 个数据一起打包成并行数据送入 DDR3。通过 rx_usrclk 时钟送入 20 位到 FIFO然后再用 DDR 的 ui_clk 时钟把 8 个数据并行送入DDR3。每帧数据满了后我们就把帧号加 1即 ddr3_addr_bank_wr 变量加 1这样使得我们在 DDR3 内存颗粒放置了3帧数据。
SDI缓存读方式处理
通过ui_clk一个时钟读出 8 个 SDI 数据送入 FIFO通过异步方式也就是通过 tx_usrclk时钟读出 1 个 sdi 数据也就是 20bit 的 sdi 数据。每读满一帧我们就通过ddr3_addr_bank_rd ddr3_addr_bank_wr ‐2’b1;方式让读帧号跟随着写帧号。
SDI缓存的目的
rx_usrclk 时钟是来自信号源但是 SDI 发送必须要使用本地晶振也就是硬件上连接到GTX 的参考时钟晶振。由于时钟的不同源所以我们不能把接收的信号源直接送到 SDI 发送引擎上去必须要经过 DDR 方式做帧处理才能做 SDI 环出。
SDI发送
SDI发送是SDI接收的逆过程即使用SDI IP编码将视频数据编码为SDI格式再使用GTX将并行SDI数据串化为高速串行数据通过GTX发送出去经过GV8500增强驱动后给到SDI发送的BNC座子。
SDI发送接收彩条视频工程设计思路如下 FPGA内部生成3G-SDI彩条视频不缓存直接经前文介绍的SDI发送通路发送出去再经前文介绍的SDI接收通路后送HDMI输出显示。
3、工程1详解
开发板Xilinx Kintex7开发板 开发环境Vivado2019.1 输入SDI摄像头分辨率1080p30帧 输出SDI分辨率1080p30帧 工程代码架构如下 资源消耗和功耗预估如下
4、工程2详解
开发板Xilinx Kintex7开发板 开发环境Vivado2019.1 输入FPGA内部生成彩条分辨率1080p30帧 输出HDMI分辨率1080p30帧 工程代码架构如下 资源消耗和功耗预估如下
5、上板调试验证并演示 演示视频如下 FPGA实现SDI视频解码SDI发送提供2套工程源码和技术6、福利工程代码的获取
福利工程代码的获取 代码太大无法邮箱发送以某度网盘链接方式发送 资料获取方式私或者文章末尾的V名片。 网盘资料如下