FPGA纯逻辑资源实现SDI视频解码,提供工程源码详解和技术支持

目录

  • 1、前言
  • 2、总体方案
  • 3、GTX的使用
  • 4、SDI IP的使用
  • 5、工程架构
  • 7、板级调试
  • 8、福利:工程代码的获取

1、前言

前言:SDI视频编解码目前有两种方案,一是使用专用编解码芯片,比如典型的接收器GS2971,发送器GS2972,优点是简单,比如GS2971直接将SDI解码为并行的YCRCB,缺点是成本较高,可以百度一下GS2971的价格;另一种方案是使用FPGA实现编解码,利用FPGA的GTP/GTX资源实现解串,优点是合理利用了FPGA资源,GTP/GTX资源不用白不用,缺点是操作难度大一些,对FPGA水平要求较高。

开发板:Kintex7板子;
开发环境:vivado2019.1;
输入:sdi摄像头;
输出:hdmi;

2、总体方案

FPGA纯逻辑资源实现SDI视频解码,提供工程源码详解和技术支持_第1张图片

SDI摄像头输入视频为1080P@30Hz,经过Gv8601a单端转差分后进入FPGA的GTX,GTX负责解串,将原始SDI视频解为20位的并行数据,再送入Xilinx的SDI IP核进行解码,解出行场和控制信号以及像素数据,此时的数据是YCrCb格式,还需要转为RGB格式,然后用FDMA架构进行三帧缓存输出,FDMA三帧架构是一种经典的图像缓存架构,不懂的可以看我前面关于FDMA图像缓存的文章。

3、GTX的使用

我用的开发板是K7,所以使用GTX,不用调用IP,直接使用GTX的源语,我们知道,一个GTX的 Quad由四个GTXE2_CHANNEL源语和一个GTXE2_COMMON源语组成,所以在调用GTX时可直接使用源语,如下:
FPGA纯逻辑资源实现SDI视频解码,提供工程源码详解和技术支持_第2张图片
FPGA纯逻辑资源实现SDI视频解码,提供工程源码详解和技术支持_第3张图片
根据Xilinx的参考设计文档,解码SDI时,GTX需要两个差分时钟,148.5M和148.35M,如下:
FPGA纯逻辑资源实现SDI视频解码,提供工程源码详解和技术支持_第4张图片
其他的建议参考我的代码,这里写不完;

4、SDI IP的使用

直接调用Xilinx的官方IP,如下图:
FPGA纯逻辑资源实现SDI视频解码,提供工程源码详解和技术支持_第5张图片
SDI IP解码出SDI的控制信号和视频信号,然后根据这些信号还原出视频的vs、hs、de和ycrcb。
然后是ycrcb转rgb,很简单,这里不多阐述;
最后是送ddr三帧缓存,由于前面的文章讲了很多,这里也不再阐述;

5、工程架构

BD工程如下:主要是FDMA的三帧缓存,关于FDMA三帧缓存,请参考我之前写的文章点击查看:FDMA三帧缓存方案
FPGA纯逻辑资源实现SDI视频解码,提供工程源码详解和技术支持_第6张图片
工程代码架构如下:
FPGA纯逻辑资源实现SDI视频解码,提供工程源码详解和技术支持_第7张图片

7、板级调试

硬件连接如下:

输出结果如下:
FPGA纯逻辑资源实现SDI视频解码,提供工程源码详解和技术支持_第8张图片

8、福利:工程代码的获取

代码太大,无法邮箱发送,以某度网盘链接方式发送,
资料获取方式1:文章末尾的V名片。
资料获取方式2:文章末尾的XX号,回复 001000
网盘资料如下:
在这里插入图片描述

你可能感兴趣的:(菜鸟FPGA图像处理专题,FPGA编解码SDI视频专题,fpga开发,SDI,SDI解码,图像处理,FPGA解码SDI)