FPGA对4K30Hz的SDI视频的接收,处理及发送的实现笔记

1,硬件实现框架

SDI的视频数据经M22564接收后转为差分信号输入到FPGA,FPGA经过处理后通过M22428转为同轴信号输出。
在这里插入图片描述
我实现的功能是将输入的4K30Hz的SDI视频流加上OSD显示,在将其输出。

2,FPGA处理流程图

在这里插入图片描述

说明

1,GTP Transceivers

这是Xilinx自带的IP核,实现信号的串并转换,根据ug482可知,其支持的速率是在500 Mb/s 到 6.6 Gb/s之间,所以完全可以实现 4K30Hz(6 Gb/s)视频串行信号的转换。所以这个模块是将SDI的串行信号转换为FPGA可以处理的 20bit 的并行信号,然后FPGA处理过后的信号有转为SDI的串行信号输出。

2,Data Process

我用的是XILINX的ARTIX-7 FPGA,由于没有找到支持4k30Hz的SAMPTE IP核(有处理3G,HD,SD的IP核),所以只能自己写关于4K处理。

①,SDI Descrambler 和 SDI Scrambler

为了有效的GTP传输,在传输之前需要将数据编码加扰,所以接收之后要对数据进行解码解扰,才能得到正确有用的数据,加扰和解扰的方法如下:在这里插入图片描述
特别注意:这呈现的是对单bit数据加扰解扰的情况,而在4K的处理中是需要对20bit的数据进行加扰解扰的。

②,Data align

数据解扰后,得到的就是有效的并行数据,并行数据是从串行数据中连续的取出来的,所以取的位置很大的几率不是我们想要的位置,也就是数据没有对齐,这样在数据流中就找不到SMPTE标准中的EAVSAV等信息,所以必须有数据对齐的处理,对齐后就可以根据ST 2081-1中的标准检测数据流中的行场信号,有效视频数据等。

③,OSD

有效数据得到后,就在数据流中嵌入自己想要显示的文字等,嵌入完成并加扰后就能输出到GTP。

3,补充说明

①,GTP的时钟(RXOUTCLK)需要配置,4K30Hz需要显示的话,RXOUTCLK频率为297MHz
②,297MHz的时钟较高,在确保时序约束正确后,尽量采用流水线设计,使时序达到要求
③,本文适合有一定SDI视频处理基础的同伴阅读。

4,成品展示

图中的彩条是自己生成的4K的彩条
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qsj_csdn/article/details/107469596