采用FPGA构建数字视频矩阵的一些设计思路和设计需求

采用FPGA构建数字视频矩阵的一些设计思路和设计需求

音视频数字矩阵
高清视频矩阵
高清视频模拟数字混合矩阵

设计需求,方案讨论。

矩阵描述

输入视频经过专用的视频芯片转换位RGB/YUV444/LVDS进 FPGA 将输入音视频转换为 Serdes 数字差分信号,进背板,经过数字差分交换到输出板的FPGA Serdes,经过FPGA将视频还原到DDR3 SDRAM 经过视频裁剪缩放分割等输出到专用视频输出芯片再输出到显示器。

矩阵组成

视频矩阵由机箱、电源、背板、数字高速差分交换板、系统控制板(嵌入式系统管理)、基础视频输入卡、基础视频输出卡。以HDMI接口为例子,简单描述输入卡输出卡。考虑代码移植的兼容性,板卡采用ARM CPU,没有采用FPGA内嵌CPU。

A. 视频输入卡,HDMI 视频经过HDMI 接收芯片转换成 RGB888/YUV422/YUV444/LVDS 可选,进入FPGA,视频与 FPGA 下的DDRS SDRAM 中的多个OSD叠加后,与音频同步编码转换成Serdes发送到背板。ARM CPU管理CAN总线,HDMI输入视频接口芯片的舒适化设置,管理FPGA内部寄存器的设置。实现去隔行功能,视频缩放(任意比列、支持4K)、每路视频支持多个OSD与视频透明半透明叠加,OSD 任意尺寸(不大于原视频输入的尺寸)的静态真彩位图、动态OSD视频、动态中英文字母。

B. 视频输出卡,背板来的Serdes 经FPGA 解码成音频和视频流,视频经过FPGA存入DDR3 SDRAM,再从DDR3 SDRAM中读出经过裁剪、缩放(任意比列、支持4K)、分割等处理将视频与音频送到视频输出芯片转换成HDMI送到显示器。

C. 多画面分割卡,将背板来的多路Serdes输入信号裁剪缩放后重新组成一路输出。画面分割的数量与视频输入Serdes的数量有直接关系,视频放大需占用DDR3内存的带宽,缩小不占DDR3的带宽。

D. 多画面拼接卡,比如3X3的9块屏组成大大屏,需要9个拼接单元,这每个拼接单元能实现多个视频在一个显示器上分割显示,这就实现了多路视屏在同一个3x3的大屏上任意位置,任意层次,漫游叠加遮挡等多画面拼接显示。

E. 多画面融合卡,主要用在多投影机拼接融合,在球体、锥体、立体建筑物、立体舞台上投影,将多个视频融合显示组成一个立体的动态视频场景。融合单元在实现分割单元、拼接单元的同时要实现视频的各种梯形、枕形、球面、锥面、不规则图形的拉伸、旋转等算法。要消除多投影机投影边缘亮带。

F. FPGA视频接口 RGB888/YUV422/YUV444/LVDS 可选,8-48位并行,SDR/DDR 165MHz。支持 1.2Gbps LVDS 可支持4K_24@60Hz。

G. FPGA DDR3 SDRAM接口 800MHz 32BIT 512M 字节。

H. FPGA Serdes 实现音频视频同步传输。实现USB的鼠标键盘、RS232等数据传输。

DDR3 数据带宽,Serdes收发速率的计算推导

A. DDR3 数据吞吐量,理论上800M DDR3的数据吞吐量为 800x32=25.6Gbps。考虑多路视频读写(CPU读写很慢,忽略CPU读写),DDR3自动刷新,实际使用不能超过80%,超过这个视频会有抖动等不稳定现象。我们按2K_24位视频计算,2K视频的点时钟位148.5MHz 按150M算,忽略行场逆程时间,考虑视频在内存中实现分割,按32对齐 150x32=4.8Gbps,(25.6/4.8)x0.8=4.3。在我们实际应用中800M 32位DDR3 一般只实现2路2K@60视频的输入+2路2K@60视频的输出。

B. DDR3带宽问题,多画面拼接和多画面融合面临同一问题。在视频裁剪后再大比例放大,由于FPGA内部FIFO/RAM资源不可能兜住哪怕非常小的一帧画面,需要在放大时得用DDR3 SDRAM 来兜,这就需要占用DDR3的读写带宽。在这类单元卡中要扩展视频输入的路数,要考虑板卡Serdes 的数量,FPGA Serdes的数量,还要考虑DDR3 SDRAM的带宽。在做视频拉伸、旋转的算法也需要占用DDR3 SDRAM的带宽。

C. Serdes 数据吞吐量,这是我们矩阵最关键的数据,越大越好。在实际中使用有多约束,背板的 Crosspoint Switches ,FPGA 的Serdes 的速率,价格因素等都在干扰我们的选择。

	常见的视频的数据带宽,忽略音频数据。     				原始流            8B10B      64B66B
	a:1920x1080_24bit@60Hz  1920x1080x24x60=   2.99Gbps     3.74Gbps       3.08Gbps
	b:1920x1200_24bit@60Hz  1920x1200x24x60=   3.32Gbps     4.15Gbps       3.42Gbps
	c:3840x2160_24bit@30Hz   3840x2160x24x30=  5.97Gbps     7.46Gbps       6.16Gbps
	d:3840x2160_24bit@60Hz  3840x2160x24x60=   11.94Gbps    14.93Gbps      12.31Gbps

D. Serdes 常见的协议。我们在Serdes中要传输很多数据,有视频,音频,控制数据也可能有USB,232,以太网等。考虑Serdes交流特性,不能长0和长1,我们一般会选择一个协议来用。

  • 8B10B协议,以太网,PCI-E采用该协议,非常成熟,应用非常广泛。但是有个致命的缺点,编码效率太低 8/10 = 0.8
    ,损失20%的带宽。
  • 3G-SDI协议,采用成熟的3G-SDI直接传输音视频,是个非常不错的建议,该协议本身就是广电系统中音视频传输用的,有很多厂家的矩阵都是采用该协议。缺点也很明显,视频只能支持1080P60 422/10bit。在要求1920x1200@60或要求24位真彩、YUV444的及苛刻挑剔的用户就不好用了。
  • 64B66B协议,万兆以太网采用该协议,非常成熟,编码效率恨高 64/66=0.97,编码实现比较复杂,一般需要FPGA芯片厂家支持。
  • NRZ扰码,封装自己的协议。可以借鉴SDI采用的NRZ扰码协议为底层,自己再定义关键字去封装自己的协议。对编程人员要求比较高,需要长时间大量的数据交换去验证自己定义的协议的稳定性。

Crosspoint Switches 高速数字差分交换芯片的选择

从上面的Serdes速率分析,我们的差分交换芯片的速率最小也要选3.125Gbps的,支持2K@60P视频无损无堵塞交换。考虑目前4K@30的视频发展很快,家用电视、显示器甚至手机的分辨率也达到4K,我们在设计初期就应该考虑兼容4K@30/4K@60的无损切换。长远考虑建议选6.25Gbps的Crosspoint Switches。这样采用单个差分对就能传输一路4K@30视频信号,附属产品的4K@30的光纤收发器也能直接进出背板。在未来的4K@60的视频采用2个差分对来传输。

厂家连接

https://www.macom.com/crosspoint

https://www.semtech.com/products/broadcast-video/crosspoints

https://www.microsemi.com/product-directory/signal-integrity/3579-digital-crosspoint-switches

https://www.analog.com/cn/products/switches-multiplexers/digital-crosspoint-switches.html

FPGA选择

FPGA选择要看设计者手上现有的代码资源,Serdes速率选择,DDR3 SDRAM 速率,FPGA 内部FIFO/RAM块的数量,FPGA 内部DSP数量(视频缩放、拉伸等算法需要大量的DSP单元支持)。一般3.125Gbps 2K@60的视频矩阵方案中,选Lattice ECP3 的厂家较多。选用6.25Gbps的支持4K@30的视频矩阵方案目前Xilinx ARTIX-7 是我建议的选择。

系统控制卡

考虑目前矩阵需要有输入输出端口的视频预览功能,系统控制卡一定需要有视频的h.264/Jpeg 编码能力。建议选用华为海思的CPU,操作系统选用Linux/Android。

FPGA 视频缩放模块

支持邻近、线性、三次插值算法,单个缩放模块最大支持166M时钟(支持1080P60),可以2个或多个模块并联实现4K@30/4K@60的缩放。支持任意比列的缩放。视频放大需占用DDR3内存的带宽,缩小不占DDR3的带宽。

关键点:

A. 3种插值的FPGA视频缩放算法的实现。(邻近插值,双线性插值,双立方次卷积分插值)

B. 多路视频读写及CPU读写同一组DDR3 SDRAM的仲裁实现。

C. Serdes 实现音视频的数据编解码发送和接收。

D. 视频融合卡的视频拉伸算法的实现。

E. 视频任意角度的旋转算法实现。

F. 多板卡间的CAN总线通讯协议的拟定和实现。

小结:

A.在用户要求不苛刻的2K视频矩阵,采用3.125Gbps Serdes的FPGA + 3.125Gbps Crosspoint Switches 就能实现性价比非常高的矩阵产品(LATTICE ECP3 FPGA就有很好)。(集中招标采购竞争激烈,对矩阵技术参数要求比较苛刻,不建议采用该方案)

B.支持1920x1200@60的2K视频矩阵,采用 LATTICE ECP5 FPGA 或 XILINX ARTIX-7 FPGA + 3.5Gbps Crosspoint Switches。

C.单路Serdes 支持4K@30 的视频矩阵,采用 XILINX ARTIX-7 FPGA + 6.25Gbps Crosspoint Switches。

D.单路Serdes 支持4K@60 的视频矩阵,采用 XILINX KINTEX-7 FPGA + 12.5Gbps Crosspoint Switches。

E. 采用多路Serdes 传4K方案可以降低 Crosspoint Switches 的速率要求。

成功案例:

A. 矩阵基本输入卡 2K@60 设计的,采用 2片 XILINX ARTIX-7 XC7A75T-2 FPGFA GTP(6.25Gbps) + 2组 DDR3_800MHz@32BIT + 4片 ADV7611 + 1片 ARM_CPU ,实现4路HDMI输入卡。实现去隔行功能,视频缩放(任意比列、支持4K)、每路视频支持3个OSD与视频透明半透明叠加,OSD 任意尺寸(不大于原视频输入的尺寸)的静态真彩位图、动态OSD视频、动态中英文字母。

B. 矩阵基本输出卡 2K@60 设计的,采用 2片 XILINX ARTIX-7 XC7A75T-2 FPGFA GTP(6.25Gbps) + 2组 DDR3_800MHz@32BIT + 4片 ADV7513 + 1片 ARM_CPU ,实现4路HDMI输出卡。渐变切换无缝,画面冻结,单画面拼接等功能去隔行功能。支持4K Serdes 信号缩小为2K或局部裁剪成2K输入显示。

C. 矩阵基本输出卡 4K@30 设计的,采用 2片 XILINX ARTIX-7 XC7A75T-2 FPGFA GTP(6.25Gbps) + 2组 DDR3_800MHz@32BIT + 2片 SiI9136-3 + 1片 ARM_CPU ,实现2路4K@30 HDMI输出卡。渐变切换无缝,画面冻结,单画面拼接等功能去隔行功能。支持2K/4K Serdes 信号输入显示。

D. 矩阵基本输入卡 4K@30 设计的,采用 2片 XILINX ARTIX-7 XC7A75T-2 FPGFA GTP(6.25Gbps) + 2组 DDR3_800MHz@32BIT + 2片 ADV7619 + 1片 ARM_CPU ,实现2路4K@30 HDMI输入卡。实现去隔行功能,视频缩放(任意比列、支持4K)、每路视频支持3个OSD与视频透明半透明叠加,OSD 任意尺寸(不大于原视频输入的尺寸)的静态真彩位图、动态OSD视频、动态中英文字母。

E. 矩阵多功能卡 4K@30 设计的,采用 2片 XILINX ARTIX-7 XC7A200T-2 FPGFA GTP(6.25Gbps) + 8组 DDR3_800MHz@32BIT + 2片 SiI9136-3 + 1片 ARM_CPU ,实现2路4K@30 HDMI输出。

  • a) 2路,4K@30/2K@60 HDMI输出。每个输出实现8-16路2K输入分割或4-8路4K输入分割卡(一个显示屏能显示任意位置、尺寸、层次叠加8-24路2K视频显示)。

  • b) 2路,4K@30/2K@60 HDMI输出。每个输出实现8-16路2K输入分割或4-8路4K输入拼接卡(一个NxN的大屏能任意位置、尺寸、层次叠加漫游8-24路2K视频显示)。

  • c) 2路,4K@30/2K@60 HDMI输出。每个输出实现4-8路2K输入分割或4路4K输入融合卡(多个投影在球面、锥面、不规则曲面融合组成一个动态立体造型)。

  • d) 可更换输出视频接口芯片实现单路4K@60的多功能输出。

F. Serdes 采用64B66B协议,6.25Gbps的速率。

G. Crosspoint Switches 采用 ADN4612、M21148、M21167。

H. 系统控制卡选用普通的ARM,只做管理,没做视频预览功能。

I. 计划做,但是目前没有开始实行。采用海思CPU+FPGA做2K/4K编码卡、解码卡、矩阵视频预览卡。

有兴趣的可以联系我做进一步的技术讨论,没有音视频技术基础的勿扰。

邮箱:708907433@qq.com

FPGA 多屏多画面视频拼接器
采用FPGA构建数字视频矩阵的一些设计思路和设计需求
FPGA 四画面视频分割逻辑框图
FPGA 四画面视频拼接单元逻辑框图
FPGA 视频处理中外部SDRAM的作用
FPGA 处理视频SDRAM带宽计算
FPGA 处理视频SDRAM带宽计算(四画面视频分割器)

  • 8
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老皮芽子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值