一种基于FPGA的多路视频平滑切换系统及方法与流程

摘要: 本发明属于视频处理,具体涉及一种基于fpga(现场可编程门阵列)的多路视频平滑切换系统及方法,适用于航空机载显示等对视频切换画面质量要求较高的应用场景。背景技术...
一种基于FPGA的多路视频平滑切换系统及方法与流程

本发明属于视频处理,具体涉及一种基于fpga(现场可编程门阵列)的多路视频平滑切换系统及方法,适用于航空机载显示等对视频切换画面质量要求较高的应用场景。

背景技术:

1、在航空机载显示系统中,飞行员需要根据实际需求察看不同的显示画面,这些显示画面会根据飞行员下发的指令在不同视频源之间进行快速切换,最终通过机载显示器进行显示。对于显示设备而言,这些来自不同设备源的输入视频在分辨率、帧率、时序上都是不同的。

2、一些设计为了简化电路和节约成本,显示处理机会使用多路复用器将多路同格式、不同分辨率的视频进行多转一切换,而显示器只能被动接收一路视频并显示,且通常不提供给显示器特定的切换指令,导致显示器在重新锁定信号时出现画面撕裂、抖动甚至黑屏现象。特别是对于输入源存在模拟视频信号的情形,模拟视频解码器在接收到新信号后,其内部的时钟锁相环、自动增益控制等模拟电路需要数十甚至数百毫秒量级的稳定时间才能输出稳定的视频时序,如果不进行有效处理,画面抖动、撕裂或黑屏等现象会更加明显。这种切换瞬间的视觉干扰大大影响了飞行员的视觉体验。

3、对于如何避免这种切换瞬间带来的视觉干扰,传统的方法是使用带“无缝”切换功能的矩阵切换器,内部通常集成了帧同步器和双缓冲机制。但大多情况下,产品供应商为了节约成本,通常使用多路模拟开关集成电路用于视频选择和切换,因此,对显示器而言,切换时刻完全是随机且不连续的。显示器只能自行识别切换时刻,并对切换瞬间进行相关处理。

4、现有技术中存在一些基于fpga的视频切换方案,但往往需要依赖外部主控单元发送的切换指令来触发选通操作,且多采用双缓存或普通先入先出(fifo)缓冲方式。此类方案在面对模拟视频解码器因信号切换导致的时钟锁相环和自动增益控制重新锁定期间,由于无法自主识别切换时刻,容易在显示器端出现画面撕裂、抖动或黑屏现象,无法满足航空机载等高可靠性场景的要求。此外,现有方案中亦有通过统一时钟源实现多路视频切换的技术,但其针对的是多主机时钟不同步问题,并不涉及模拟视频解码器的信号稳定时间问题。

5、因此,亟需一种无需依赖前端切换指令、能够在显示器端自主检测视频切换并实现画面平滑过渡的技术方案。

技术实现思路

1、本发明的目的在于克服现有技术的不足,提出了一种基于fpga的多路视频平滑切换系统及方法,该系统及方法无需依赖前端切换指令,在显示器端即可实现视频切换画面的平滑处理,确保输出视频的时序连续性与稳定性,实现真正的无缝或平滑切换,不出现画面抖动、撕裂或黑屏等现象。

2、为实现上述目的,本发明采用如下技术方案:

3、一种基于fpga的多路视频平滑切换系统,包括fpga以及与所述fpga连接的外部存储器。

4、所述fpga内部设置有视频时序产生模块、外视频检测模块、视频切换控制模块和缓存控制模块。

5、所述视频时序产生模块用于根据输出视频像素时钟进行计数,产生输出视频所需的行同步信号(hsync)、场同步信号(vsync)以及数据使能信号(den)。该模块将产生的时序信号送至缓存控制模块进行fifo(先入先出队列)的数据读操作,将产生的场同步信号送至视频切换控制模块用于帧计数,同时将时序信号与rgb数据同步输出给外部视频编码器进行编码输出。

6、所述外视频检测模块用于使用与外视频同频率的本地时钟对输入的行同步信号的周期进行判断。当行同步周期大于或小于正常周期的五个时钟时,将不稳定指示信号(sig_no)拉高,否则将不稳定指示信号拉低,并将该信号送至视频切换控制模块。正常周期指输入视频标准格式所对应的行同步信号的标准周期值。

7、所述视频切换控制模块连接所述外视频检测模块和所述视频时序产生模块,用于根据所述不稳定指示信号和所述场同步信号进行逻辑处理。具体地,当不稳定指示信号发生跳变时,切换变化信号(sig_chg)被拉高,计数器(cnt)在切换变化信号为高时根据场同步信号的上升沿进行累加,直到计数器达到预设值n时将计数器清零,同时将切换变化信号拉低。标志信号(flag)在不稳定指示信号跳变时拉高,直到计数器等于n-2时拉低,并将标志信号输出至缓存控制模块作为切换控制信号。视频有效判断信号(sig_dect)在计数器等于n时锁存不稳定指示信号的值,并作为新的视频有效判断信号用于判断输出正常画面还是异常画面。所述视频有效判断信号滞后所述标志信号两帧时间。

8、所述预设值n的大小取决于模拟视频解码器的性能,解码器解码后的时序锁定时间越短,n的取值越小,反之越大。在固定应用中n的值保持不变,且n大于解码器时序锁定所需的最大稳定时间。

9、所述缓存控制模块连接所述视频切换控制模块、所述视频时序产生模块和所述外部存储器,用于根据所述标志信号控制所述外部存储器的读写操作。所述外部存储器为单块静态随机存取存储器(ssram)芯片,所述缓存控制模块将该ssram划分为三个缓存区域,每个缓存区域缓存一帧完整的视频图像。所述缓存控制模块通过写数据fifo和读数据fifo对ssram进行分时复用读写操作,采用高于输入时钟和输出时钟的中间时钟进行所述读数据fifo和写数据fifo的读写操作,将写数据fifo读到的数据写入ssram,再将ssram的数据读出写入读数据fifo。所述缓存控制模块使用第一变量i和第二变量j分别指向写缓存区域和读缓存区域,其中i为0到2循环递增,j=(i+2)mod 3,形成稳定的“读第一变量、写第一变量加二取模三”的循环读写模式。

10、当标志信号拉高时,所述缓存控制模块冻结第一变量i和第二变量j,使读写指针保持不变,持续读取切换前最后一帧读指针指向的缓存区域的视频数据;当标志信号拉低后,恢复所述循环读写模式,并将切换期间被写入无效数据的缓存区域刷新为新的有效视频数据。

11、本发明还提供了一种用于如上所述系统的基于fpga的多路视频平滑切换方法,包括以下步骤:

12、步骤s1、使用与外视频同频率的本地时钟对输入的行同步信号的周期进行判断,当行同步周期偏离正常范围时产生不稳定指示信号;

13、步骤s2、根据所述不稳定指示信号和场同步信号进行逻辑处理:当所述不稳定指示信号发生跳变时启动计数,产生标志信号作为切换控制信号;所述标志信号在所述不稳定指示信号跳变时拉高,并在计数等于预设值减二时拉低;所述计数在所述标志信号为高时根据所述场同步信号的上升沿进行累加,直到计数达到所述预设值时清零并将所述标志信号拉低;

14、步骤s3、根据所述标志信号控制外部存储器的读写指针冻结,持续输出切换前最后一帧完整画面的视频数据;

15、步骤s4、在计数达到预设值时,锁存所述不稳定指示信号的值作为新的视频有效判断信号,恢复至新画面的正常输出。

16、本发明通过在视频切换前后检测行同步信号的不稳定状态,以该检测信号作为切换操作的判断依据,在检测到切换发生的瞬间立即冻结显示画面的刷新,重复输出切换前的最后一帧完整图像,直到新信号时序稳定后将显示输出无缝切换。这样显示画面始终能够保持稳定显示,且显示效果上能够平滑切换,不会出现抖动、撕裂或黑屏等异常画面。

17、与现有技术相比,本发明具有以下有益效果:

18、1.本发明无需依赖前端切换指令,完全在显示器端通过被动检测行同步信号周期来判断视频切换的发生,适用于显示器无法获取切换指令的应用场景。

19、2.本发明通过在切换期间冻结存储器读写指针,持续输出切换前最后一帧完整画面,避免了切换过程中因解码器时序不稳定而向存储器写入杂乱数据导致画面撕裂、抖动或黑屏的问题。

20、3.本发明采用单块ssram分三区域缓存的架构,引脚和pcb布线资源少,成本低;通过标志信号和视频有效判断信号的协同控制,实现了切换过程的平滑过渡。

21、4.本发明通过设置与解码器性能相匹配的预设值n,使系统能够灵活适配不同类型的模拟视频解码器,通用性强。