CN112104819B - 一种基于fpga的多路视频同步切换系统及方法 - Google Patents
一种基于fpga的多路视频同步切换系统及方法 Download PDFInfo
- Publication number
- CN112104819B CN112104819B CN202010919713.3A CN202010919713A CN112104819B CN 112104819 B CN112104819 B CN 112104819B CN 202010919713 A CN202010919713 A CN 202010919713A CN 112104819 B CN112104819 B CN 112104819B
- Authority
- CN
- China
- Prior art keywords
- video
- switching
- module
- frame synchronization
- synchronization module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/222—Studio circuitry; Studio devices; Studio equipment
- H04N5/262—Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
- H04N5/268—Signal distribution or switching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/76—Television signal recording
- H04N5/907—Television signal recording using static stores, e.g. storage tubes or semiconductor memories
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Studio Circuits (AREA)
Abstract
本发明涉及一种基于FPGA的多路视频同步切换系统及方法。该系统包括一个仲裁模块、一个视频矩阵模块、两个帧同步模块和一个视频同步切换模块。该方法在N路视频需要做同步切换时,只需根据当前正在显示的视频源和待切换的目标视频源来动态配置每一路视频访问DDR的许可,只允许正在显示和即将显示的视频流访问DDR,并关闭空闲视频流对DDR的占用,以提高多路视频同步时的内存优化利用。在切换结束后,新的视频切换指令来临之前,只需要对当前显示的视频进行帧同步即可,即没有切换命令时,只允许1路视频访问DDR,节约DDR的使用。
Description
技术领域
本发明涉及视频切换技术领域,尤其涉及一种基于FPGA的多路视频同步切换系统及方法。
背景技术
在广电播出控制中非常重要的一个部分就是不同视频源之间的切换。不论是录制节目时多机位切换或是播出过程中的视频插播,其中必不可少的环节便是统一的帧同步,这是为了确保视频切换过程中所有视频流保持对齐。将不同步的多路视频写入缓存,并在同一时刻从各自同一坐标位置读取多路视频,并保持每路视频的缓存至少预留两帧空间用来划分读写分区,这样在任何时候切换都不会造成视频丢失或画面撕裂。
通常情况下,需要用DDR SDRAM(Double Data Rate SDRAM,双倍速率同步动态随机存储器)作为帧缓存,接收不同视频源数据,再利用统一的参考信号同步读取。若以FPGA(Field Programmable Gate Array,现场可编程门阵列)作为处理单元,以常见的FHD(FullHigh Definition,全高清)1080P60 YUV422/16bit视频格式为例,每一路视频帧同步需要占用至少3.98Gbit/s的DDR带宽,在大部分只能支持DDR3(一种计算机内存规格)的FPGA系统中,多路视频同时帧同步非常考验DDR的吞吐量,主频相同情况下只能通过增加DDR颗粒提高带宽,显然对于成本和功耗来说代价是很大的。
在大多数硬件设计时,都会根据产品需要做同步切换的通道数去设计提供足够多的DDR颗粒确保带宽和容量满足需求。在这种资源足够的情况下,只需要将所有视频做统一的帧同步处理就可以直接进行切换,这种做法虽然对FPGA开发设计较为方便,但缺乏对成本和有效利用率的考虑。
发明内容
鉴于上述现有技术的不足,本申请的目的在于提供一种多路视频同步切换系统及方法,旨在解决现有技术中多路视频同步切换时,将多路视频一并缓存从而浪费资源的问题,实现根据当前正在显示的视频源和待切换的目标视频源来动态配置每一路视频访问DDR的许可,只允许正在显示和即将显示的视频流访问DDR,并关闭空闲视频流对DDR的占用,以提高多路视频同步时的内存优化利用。
本发明的技术方案如下:
本发明第一方面提供一种基于FPGA的多路视频同步切换系统,装载在FPGA上的程序,按照计算机程序实现的功能划分,其包括仲裁模块、视频矩阵模块、帧同步模块和视频同步切换模块;
仲裁模块,用于1)实时收集视频切换指令;2)将实时更新的视频切换映射表发送给视频矩阵模块;3)实时监控切换过程中帧同步模块B的DDR写入状态,当收到帧同步模块B发送的响应信号时就将该帧同步模块的输出定义为可用,当收到视频画面切换命令后,发送第一视频切换使能信号给视频同步切换模块;4)接收到视频同步切换模块发送的第一视频切换完成响应信号后,向视频矩阵模块发送视频源复制指令;5)实时监控切换过程中帧同步模块A的DDR写入状态,当收到帧同步模块A发送的响应信号时,发送第二视频切换使能信号给视频同步切换模块;6)接收到视频同步切换模块发送的第二视频切换完成响应信号后,向视频矩阵模块发送停止向帧同步模块B输出内容的指令;所述视频切换指令包括视频切换映射表,所述视频切换映射表中含有当前视频源和目标切换视频源两个信息;
视频矩阵模块,用于1)根据从仲裁模块接收的实时更新的视频切换映射表,在同一个时钟下,从输入的经过时钟域转换的各路视频数据中实时选择目标切换视频数据发送给帧同步模块B;2)从仲裁模块接收到视频源复制指令后,将发送给帧同步模块B的目标切换视频源数据进行复制并发送给帧同步模块A,使得输送给帧同步模块A和帧同步模块B的视频数据相同;3)从仲裁模块接收到停止向帧同步模块B输出内容的指令后,停止向帧同步模块B路输出内容。
帧同步模块,包括帧同步模块A和帧同步模块B,这两个帧同步模块将输入视频以帧为单位存入DDR SDRAM缓存,且均按照统一的同步时钟和帧头信息读出帧,当写满一帧画面的空间时,均会发送给仲裁模块一个响应信号,表示缓存中有完整的视频帧,可以进行切换;
视频同步切换模块,对帧同步模块A和帧同步模块B两路帧同步模块输出的对齐视频进行选择,根据仲裁器的指令选择其中一个源输出:1)当接收到仲裁模块发送的第一视频切换使能信号时,将从接收帧同步模块A的视频源数据切换到接收帧同步模块B的视频源数据进行输出,切换完成向仲裁模块发送第一视频切换完成响应信号;2)当接收到仲裁模块发送的第二视频切换使能信号时,将从接收帧同步模块B的视频源数据切换到接收帧同步模块A的视频源数据进行输出,切换完成向仲裁模块发送第二视频切换完成响应信号。
本发明第二方面提供一种基于FPGA的多路视频同步切换方法,包括如下步骤:
步骤01.在未收到视频切换指令时,将帧同步模块A中的视频数据作为当前视频源数据,始终输出帧同步模块A中的视频数据;所述视频切换指令包括视频切换映射表和视频画面切换命令,所述视频切换映射表中含有当前视频源和目标切换视频源两个信息;
步骤02.实时收集视频切换指令,当收集到更新的视频切换映射表时,将其发送给视频矩阵模块;
步骤03.视频矩阵模块根据视频切换映射表中给出的需切换的目标视频源,将目标切换视频源数据发送给帧同步模块B;
步骤04.帧同步模块B将其接收的目标切换视频源数据以帧为单位写入DDR,且按照同步时钟和帧头信息读出帧,当帧同步模块B写满一个完整的帧时,就发送给仲裁模块一个响应信号;
步骤05.仲裁模块收到帧同步模块B发送的响应信号就将该帧同步模块的输出定义为可用,表示可以进行切换;
步骤06.仲裁模块等待视频画面切换命令;
步骤07.仲裁模块收到视频画面切换命令后,发送第一视频切换使能信号给视频同步切换模块;
步骤08.视频同步切换模块收到仲裁模块发送的第一视频切换使能信号后,将当前的从帧同步模块A接收视频源数据切换到从帧同步模块B接收视频源数据进行输出,切换完成时向仲裁模块发送第一视频切换完成响应信号;
步骤09.仲裁模块接收到视频同步切换模块发送的第一视频切换完成响应信号后,向视频矩阵模块发送视频源复制指令;
步骤010.从仲裁模块接收到视频源复制指令后,视频矩阵模块将发送给帧同步模块B的目标切换视频源数据进行复制并发送给帧同步模块A,使得输送给帧同步模块A和帧同步模块B的视频数据相同;
步骤011.帧同步模块A将其接收的目标切换视频源数据以帧为单位写入DDR,并将其存满1帧画面空间的响应信号反馈给仲裁模块;
步骤012.仲裁模块接收到帧同步模块A存满一帧的响应后,发送第二视频切换使能信号给视频同步切换模块;
步骤013.视频同步切换模块收到仲裁模块发送的第二视频切换使能信号时,将从帧同步模块B接收视频源数据切换到从帧同步模块A接收视频源数据进行输出,切换完成时向仲裁模块发送第二视频切换完成响应信号;
步骤014.仲裁模块接收到视频同步切换模块发送的第二视频切换完成响应信号后,向视频矩阵模块发送停止向帧同步模块B输出内容的指令;
步骤015.从仲裁模块接收到停止向帧同步模块B输出内容的指令后,视频矩阵模块停止向帧同步模块B输出内容,并返回步骤01,等待视频切换映射表的更新。
本发明基于FPGA的多路视频同步切换系统及方法的有益效果:根据当前显示的视频源和目标切换视频源来动态配置每一路视频访问DDR的许可,只允许正在显示和即将显示的视频流访问DDR,并关闭空闲视频流对DDR的占用,节约DDR的使用;其他功能如图片存储、音频缓存等都需要使用DDR,节约DDR的使用可以为其他的功能留出更多空间;此外,DDR是一种对布线要求很高的器件,节约DDR的使用可以有效减小PCB设计难度,从而缩短开发调试周期。
附图说明
图1为本实施方式基于FPGA的多路视频同步切换系统硬件结构示意图;
图2为本实施方式基于FPGA的多路视频同步切换系统装载在FPGA上的软件结构示意图;
图3为本实施方式中目标切换源更新时目标视频源数据送入帧同步模块B的状态示意图;
图4为本实施方式中帧同步模块B已写满完整一帧数据时切换到输出帧同步模块B中视频数据的状态示意图;
图5为本实施方式中仲裁模块控制视频矩阵模块将帧同步模块B的视频源数据复制到帧同步模块A的状态示意图;
图6为本实施方式中帧同步模块A已写满完整一帧数据时切换到输出帧同步模块A中视频数据并停止向帧同步模块B输出内容的状态示意图;
图7为本实施方式基于FPGA的多路视频同步切换方法流程。
具体实施方式
为了便于理解本申请,下面将参照相关附图对本申请进行更全面的描述。附图中给出了本申请的较佳实施方式。但是,本申请可以以许多不同的形式来实现,并不限于本文所描述的实施方式。相反地,提供这些实施方式的目的是使对本申请的公开内容理解的更加透彻全面。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中在本申请的说明书中所使用的术语只是为了描述具体的实施方式的目的,不是旨在于限制本申请。
以下所述的本申请的实施方式,均是基于FPGA(Field Programmable GateArray,现场可编程门阵列)作为信号处理单元即主处理器,DDR SDRAM(Double Data RateSDRAM,双倍速率同步动态随机存储器)作为缓存器件,以下简称为DDR。
假设当前有A,B,C,…,N共N路视频需要做同步切换,N为大于等于2的整数。而在大多数情况下只能看到画面从一个视频源转换为另一个视频源,如从A路视频切换到B路视频,这时其他路视频是无法被观测的。所以在A路视频和B路视频切换的过程中,其他视频可以停止进行帧同步。这样不管有多少路视频需要切换,在切换过程中始终只有至多2路视频访问DDR。在切换结束后,新的切换指令来临之前,只需要对当前显示的视频进行帧同步即可,即没有切换命令时,只允许1路视频访问DDR。
基于上述构思,本申请第一方面提供一种基于FPGA的多路视频同步切换系统,包括硬件和软件。如图1所示,所述硬件包括一张多路视频同步切换板卡和外部设备。在该多路视频同步切换板卡上设有一个FPGA、一个本地晶振、一个DDR SDRAM内存组、N个与FPGA相连的输入接口单元、一个与FPGA相连的输出接口单元和一个视频同步信号提取单元;置于板卡外部的外部设备,包括N路视频输入设备、一路视频同步参考信号输入设备、视频显示设备,以及一个视频切换控制器;上述N为大于等于2的正整数。
FPGA作为主处理器,本实施方式中采用的FPGA为1枚带有N路高速串行收发器(GT)的FPGA芯片;
输入接口单元,用于采集N路视频输入设备发出的N路视频信号并传送给FPGA,位于外部的视频输入设备与FPGA之间,即视频输入设备通过输入接口单元连接FPGA。视频输入设备一般使用SDI或HDMI线缆传输视频数据。对于使用SDI线缆传输视频数据的视频输入设备,与其对应的输入接口单元可以采用GS2994芯片,将串行SDI信号转换为一对差分信号直接连接到FPGA的GT接收端,或者采用GS2971芯片将GS2994输出的差分信号转换成并行视频数据再连接到FPGA输入引脚。对于使用HDMI线缆传输视频数据的视频输入设备,与其对应的输入接口单元可以采用SII9135芯片,将HDMI信号转换成并行视频信号连接到FPGA输入引脚。
输出接口单元,用于将切换的目标视频源的视频图像数据传送给外部的视频显示设备,位于FPGA与外部的视频显示设备之间,即视频显示设备通过输出接口单元连接FPGA。外部的视频显示设备一般使用SDI或HDMI线缆接收视频数据。对于使用SDI接收视频数据的视频显示设备,与其对应的输出接口单元可以采用GS2988芯片,直接将FPGA的GT发送端输出的一对差分信号转换成串行SDI信号通过线缆传输,也可以采用GS2972芯片将FPGA输出引脚的并行视频数据转换成差分信号再经过GS2988转换成串行SDI信号通过线缆传输。对于使用HDMI接收视频数据的视频显示设备,与其对应的输出接口单元可以采用SII9134芯片,将FPGA输出的并行视频信号转换成HDMI信号后通过线缆传输。
视频同步信号提取单元,将板卡外部连接的一路视频输入设备输入的视频信号作为帧同步参考源,有着固定的帧率如50frame/s、60frame/s,提取参考源信号中的同步信息,包括帧头(FS)、行同步(HS)信息、场同步(VS)信息、奇偶场(OE)等,将这些同步信号送入FPGA中,用来作为帧同步的参考校准信号。可以使用LMH1981芯片实现上述功能。
本地晶振,提供主时钟给FPGA,FPGA通过将该时钟倍频或分频得到想要的时钟频率。例如一个50MHz的本地晶振连接到FPGA作为主时钟,FPGA可以通过锁相环PLL将它倍频到200MHz作为高速时钟处理视频流。
DDR SDRAM内存,用于视频同步处理时的视频缓存,与FPGA内部的DDR SDRAM控制器相连,由控制器来进行读写操作。可以采用标准的DDR颗粒直接焊接到板卡上,或采用可插拔的内存条方式。
视频切换控制器,是负责控制视频切换操作的主设备,用来向FPGA传送视频切换指令。所述视频切换指令中含有视频切换映射表和视频画面切换命令,所述视频切换映射表中含有当前视频源和目标切换视频源两个信息。该设备可以是板卡上的微处理器MCU通过程序进行交互,也可以是外部设备例如专用切换台通过实体按键例如GPIO(General-Purpose Input/Output Ports,通用I/O端口)进行交互。
视频输入设备,支持标准视频接口的任意视频源,如摄影机,播放器,PC主机等,由于要进行视频同步切换,因此所有视频输入必须采用完全相同的视频格式。
视频显示设备,支持标准视频接口的视频接收设备,用于显示视频输出接口单元输出的视频图像数据,如电视机,监视器,网络编码器等。
软件为装载在FPGA上的程序,如图2所示,按照计算机程序实现的功能可以划分为一个仲裁模块、一个视频矩阵模块、两个帧同步模块即帧同步模块A和帧同步模块B、一个视频同步切换模块、一个DDR SDRAM控制模块、一个高速时钟生成模块和一个时钟同步锁相模块。
仲裁模块,用于1)实时从视频切换控制器收集视频切换指令;2)将实时更新的视频切换映射表发送给视频矩阵模块;3)实时监控切换过程中帧同步模块B的DDR写入状态,并根据DDR写入状态判断是否能够进行视频切换,在未收到帧同步模块B发送的响应信号时将该帧同步模块的输出定义为不可用,表示不可以进行切换,对应地,当收到帧同步模块B发送的响应信号时,将该帧同步模块的输出定义为可用,表示可以进行切换,发送第一视频切换使能信号给视频同步切换模块;4)接收到视频同步切换模块发送的第一视频切换完成响应信号后,向视频矩阵模块发送视频源复制指令;实时监控切换过程中帧同步模块A的DDR写入状态,当收到帧同步模块A发送的响应信号时,发送第二视频切换使能信号给视频同步切换模块;接收到视频同步切换模块发送的第二视频切换完成响应信号后,向视频矩阵模块发送停止向帧同步模块B输出内容的指令。
高速时钟生成模块,通过将本地晶振输入的时钟使用锁相环进行倍频,产生一个比输入的每一路并行视频数据的时钟速度更快的时钟,即高速时钟,并将该高速时钟发送给视频矩阵模块和帧同步模块作为采样时钟。一般生成200MHz的时钟就能够满足高清和标清格式的要求。
视频矩阵模块,用于1)先将N路视频源输入设备输入的多个视频源变为标准的视频流格式,删除消隐区只留下视频有效部分,节省带宽而且方便进行同步处理;2)利用从高速时钟生成模块接收的高速时钟,对N路视频输入设备输入的视频流进行重采样,将输入的多个视频流转换到同一时钟域下,可以使用FIFO或专用的时钟域转换IP核,用统一的高速时钟对每个视频数据重采样;3)视频矩阵模块本质上是N选2的选择器,根据从仲裁模块接收的实时更新的视频切换映射表,在同一个时钟下从经过时钟域转换的各路数据中实时选择当前视频数据和目标切换视频数据,将当前视频数据发送给帧同步模块A,同时将目标切换视频数据发送给帧同步模块B;4)从仲裁模块接收到视频源复制指令后,将发送给帧同步模块B的目标切换视频源数据进行复制发送给帧同步模块A,使得输送给帧同步模块A和帧同步模块B的视频数据相同;从仲裁模块接收到停止向帧同步模块B输出内容的指令后,停止向帧同步模块B路输出内容。
帧同步模块,包括帧同步模块A和帧同步模块B,这两个帧同步模块均将输入视频以帧为单位存入DDR SDRAM缓存,且均按照统一的同步时钟和帧头信息读取帧,当写满一帧画面的空间时,均会发送给仲裁模块一个响应信号,表示缓存中有完整的视频帧,可以进行切换。其中帧同步模块A是将输入的当前视频源数据以帧为单位存入缓存,帧同步模块B是将输入的目标切换视频源数据以帧为单位存入缓存,并保证所有读取到的视频流是点对齐的。每路视频至少要有两帧的缓存,构成一个标准乒乓缓存,即写入第一帧时读取第二帧,写入第二帧时读取第一帧,往复循环。因为读写时序不同步,如果只有一帧缓存在一定时间内必然会产生指针重合,造成明显的画面撕裂,使用乒乓缓存可以通过重复上一帧的方式让读取到的数据始终保持完整的内容。两个帧同步模块需要一个统一的同步时钟和帧头信息,保证所有读取到的视频流是点对齐的。同步信号可以由前述的视频同步信号提取单元转换的帧头信号作为同步起始脉冲即外同步,当然也可以由FPGA内部自行产生(Freerun)。
视频同步切换模块,根据同步时钟,对帧同步模块A和帧同步模块B两路帧同步模块输出的对齐视频进行选择,根据仲裁器的指令选择其中一个源输出,即由当前视频源切换到目标切换视频源进行输出:1)当接收到仲裁模块发送的第一视频切换使能信号时,将从帧同步模块A接收视频源数据切换到从帧同步模块B接收视频源数据进行输出,切换完成即向仲裁模块发送第一视频切换完成响应信号;2)当接收到仲裁模块发送的第二视频切换使能信号时,将从帧同步模块B接收视频源数据切换到从帧同步模块A接收视频源数据进行输出,切换完成时向仲裁模块发送第二视频切换完成响应信号。需要注意的是,切换的时刻应当在视频流的消隐时间,才能始终保持输出视频的画面完整性。
同步时钟锁相模块:用于接收同步信号并进行锁相后输出同步时钟。对于FPGA内部自行产生(Freerun)的同步信号,可以由带GT的FPGA内部锁相,对于从前述视频同步信号提取单元提取同步信号的可以使用如LMH1983这样的锁相芯片锁相。该模块根据其接收的帧头、行同步信息、场同步信息、奇偶场等同步信息,通过对视频输出时钟相位进行调整产生一个与前述同步信息同步的视频时钟,用该同步时钟作为帧同步的输出时钟,后级的同步切换模块和输出接口单元均使用该时钟;
DDR SDRAM控制模块:该模块是FPGA内部控制逻辑与外部DDR芯片的交互部分,FPGA通过逻辑程序向DDR控制器发送读写数据的请求,通过内部的DDR硬核将请求转换成读写操作控制DDR SDRAM。
上述程序被FPGA运行时,实现以下步骤:
上述程序在上述硬件的基础上运行时,实现以下步骤。
步骤1.多路视频同步切换板卡初始化复位上电;
步骤2.接收N路相同格式的输入视频以及一路提供同步参考信号的视频,N为大于等于2的正整数;
步骤3.高速时钟生成模块将本地晶振输入的时钟使用锁相环进行倍频,产生一个比外部N路视频源输入设备输入的视频流速度更快的时钟,即高速时钟,发送给视频矩阵模块和两个帧同步模块A和B,作为它们的采样时钟。同时根据外部视频同步参考信号提取出的帧头、行同步、场同步等同步信息,锁相出同步视频时钟,作为输出的视频时钟同时送给帧同步模块A、帧同步模块B、视频同步切换模块和输出接口单元;
步骤4.利用高速时钟,视频矩阵模块将N路视频源输入设备输入的视频数据进行重采样,将多个视频流转换到同一时钟域下,经过时钟域转换的各路数据就能在同一个时钟下可以根据仲裁模块发来的视频切换映射表中的源映射信息随时进行视频源切换;
步骤5.视频矩阵模块将一个默认的初始视频源,例如第1路视频源输入设备输入的视频,作为当前视频源数据发送给帧同步模块A,并使用视频同步参考信号的帧头进行帧同步处理,同时,同步切换模块也选择帧同步模块A输出的视频数据进行输出;
步骤6.视频切换控制器向FPGA发送一条视频切换指令,指出要切换的目标视频源;
步骤7.仲裁模块接收到该视频切换指令后,立即更新视频切换映射表,并将更新后的视频切换映射表发送给视频矩阵模块;
步骤8.视频矩阵模块根据更新后的视频切换映射表,将目标切换视频源数据发送给帧同步模块B,如图3所示;
步骤9.帧同步模块B将其接收的目标切换视频源数据以帧为单位写入DDR,共有两帧的缓存空间,在两帧空间内循环覆盖写入,同时在参考信号的帧头信号使能时将缓存的读指针也对齐到缓存空间的帧头部分,读与写始终在不同的帧空间,使用同步时钟将读回的数据恢复成同步视频流;当帧同步模块B写满一帧的空间,就发送给仲裁模块一个响应信号,表示缓存中有完整的视频帧,可以进行切换;
步骤10.仲裁模块收到帧同步模块B发送的响应信号时,将该帧同步模块的输出定义为可用,表示可以进行切换;
步骤11.仲裁模块等待视频切换控制器发来视频画面切换命令;
步骤12.仲裁模块收到视频画面切换命令即发送第一视频切换使能信号给视频同步切换模块;
步骤13.同步切换模块收到仲裁模块发送的第一视频切换使能信号时,将从帧同步模块A接收视频源数据切换到从帧同步模块B接收视频源数据进行输出,如图4所示,该切换时机需要同步切换模块控制在视频的消隐区以防止画面分裂。此时从外部显示设备来看已经完成了画面内容的切换,切换完成时向仲裁模块发送第一视频切换完成响应信号;
步骤14.仲裁模块接收到视频同步切换模块发送的第一视频切换完成响应信号后,向视频矩阵模块发送视频源复制指令;
步骤15.从仲裁模块接收到视频源复制指令后,视频矩阵模块将发送给帧同步模块B的目标切换视频源数据进行复制发送给帧同步模块A,使得输送给帧同步模块A和帧同步模块B的视频数据相同,如图5所示;
步骤16.依照步骤9给出的帧同步模块B进行帧同步操作的方法,帧同步模块A也进行相同的帧同步操作,并将其存满1帧画面空间的响应信号反馈给仲裁模块;
步骤17.仲裁模块接收到帧同步模块A存满一帧的响应后,发送第二视频切换使能信号给视频同步切换模块;
步骤18.视频同步切换模块收到仲裁模块发送的第二视频切换使能信号时,将从帧同步模块B接收视频源数据切换到从帧同步模块A接收视频源数据进行输出,切换完成时向仲裁模块发送第二视频切换完成响应信号;
步骤19.仲裁模块接收到视频同步切换模块发送的第二视频切换完成响应信号后,向视频矩阵模块发送停止向帧同步模块B输出内容的指令;
步骤20.从仲裁模块接收到停止向帧同步模块B输出内容的指令后,如图6所示,停止向帧同步模块B路输出内容,并转至步骤5,等待视频切换控制器发出的新的视频切换指令,然后继续执行步骤6之后的内容。
本发明第二方面提供了一种基于FPGA的多路视频同步切换方法,其特殊之处在于,如图7所示,包括以下步骤:
步骤01.在未收到视频切换指令时,即在非切换状态下,将帧同步模块A中的视频数据作为当前视频源数据,始终输出帧同步模块A中的视频数据;
步骤02.实时收集视频切换指令,当收集到更新的视频切换映射表时,将其发送给视频矩阵模块;
步骤03.视频矩阵模块根据更新后的视频切换映射表中给出的需切换的目标视频源,将目标切换视频源数据发送给帧同步模块B;
步骤04.帧同步模块B将其接收的目标切换视频源数据以帧为单位写入DDR,且按照同步时钟和帧头信息读出帧,当帧同步模块B写满一个完整的帧时,就发送给仲裁模块一个响应信号;
步骤05.仲裁模块收到帧同步模块B发送的响应信号就将该帧同步模块的输出定义为可用,表示可以进行切换;
步骤06.仲裁模块等待视频切换控制器发来视频画面切换命令;
步骤07.仲裁模块收到视频画面切换命令即发送第一视频切换使能信号给视频同步切换模块;
步骤08.视频同步切换模块收到仲裁模块发送的第一视频切换使能信号后,将当前的从帧同步模块A接收视频源数据切换到从帧同步模块B接收视频源数据进行输出,切换完成时向仲裁模块发送第一视频切换完成响应信号;
步骤09.仲裁模块接收到视频同步切换模块发送的第一视频切换完成响应信号后,向视频矩阵模块发送视频源复制指令;
步骤010.从仲裁模块接收到视频源复制指令后,视频矩阵模块将发送给帧同步模块B的目标切换视频源数据进行复制发送给帧同步模块A,使得输送给帧同步模块A和帧同步模块B的视频数据相同;
步骤011.依照步骤04给出的帧同步模块B进行帧同步操作的方法,帧同步模块A也进行相同的帧同步操作,帧同步模块A将其接收的目标切换视频源数据以帧为单位写入DDR,并将其存满1帧画面空间的响应信号反馈给仲裁模块;
步骤012.仲裁模块接收到帧同步模块A存满一帧的响应后,发送第二视频切换使能信号给视频同步切换模块;
步骤013.视频同步切换模块收到仲裁模块发送的第二视频切换使能信号时,将从帧同步模块B接收视频源数据切换到从帧同步模块A接收视频源数据进行输出,切换完成时向仲裁模块发送第二视频切换完成响应信号;
步骤014.仲裁模块接收到视频同步切换模块发送的第二视频切换完成响应信号后,向视频矩阵模块发送停止向帧同步模块B输出内容的指令;
步骤015.从仲裁模块接收到停止向帧同步模块B输出内容的指令后,视频矩阵模块停止向帧同步模块B输出内容,并返回步骤01,等待视频切换映射表更新。
整个方法过程中的耗时主要发生在步骤04和步骤09等待写满一帧的部分,每一次等待时间在1~2帧之间,在下次切换之前至多需要4帧的等待。而在实际应用中,不会出现如此快速频繁切换视频源的情况,因此完全可以满足广电设备的需求。即使是混合层数多的视频,也可以通过多次调用的方法对画面中其他显示的内容做同步切换,如画中画,键信号等,确保只有被观测到的画面访问DDR,这样既能节省内存带宽,又解决了一次只能仲裁两路信号的不足。
应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。
Claims (2)
1.一种基于FPGA的多路视频同步切换系统,其特征在于,装载在FPGA上的程序,按照计算机程序实现的功能划分,其包括仲裁模块、视频矩阵模块、帧同步模块和视频同步切换模块;
仲裁模块,用于1)实时收集视频切换指令;2)将实时更新的视频切换映射表发送给视频矩阵模块;3)实时监控切换过程中帧同步模块B的DDR写入状态,当收到帧同步模块B发送的响应信号时就将该帧同步模块B的输出定义为可用,当收到视频画面切换命令后,发送第一视频切换使能信号给视频同步切换模块;4)接收到视频同步切换模块发送的第一视频切换完成响应信号后,向视频矩阵模块发送视频源复制指令;5)实时监控切换过程中帧同步模块A的DDR写入状态,当收到帧同步模块A发送的响应信号时,发送第二视频切换使能信号给视频同步切换模块;6)接收到视频同步切换模块发送的第二视频切换完成响应信号后,向视频矩阵模块发送停止向帧同步模块B输出内容的指令;所述视频切换指令包括视频切换映射表,所述视频切换映射表中含有当前视频源和目标切换视频源两个信息;
视频矩阵模块,用于1)根据从仲裁模块接收的实时更新的视频切换映射表,在同一个时钟下,从输入的经过时钟域转换的各路视频数据中实时选择目标切换视频数据发送给帧同步模块B;2)从仲裁模块接收到视频源复制指令后,将发送给帧同步模块B的目标切换视频源数据进行复制并发送给帧同步模块A,使得输送给帧同步模块A和帧同步模块B的视频数据相同;3)从仲裁模块接收到停止向帧同步模块B输出内容的指令后,停止向帧同步模块B路输出内容;
帧同步模块,包括帧同步模块A和帧同步模块B,这两个帧同步模块将输入视频以帧为单位存入DDR SDRAM缓存,且均按照统一的同步时钟和帧头信息读出帧,当写满一帧画面的空间时,均会发送给仲裁模块一个响应信号,表示缓存中有完整的视频帧,可以进行切换;
视频同步切换模块,对帧同步模块A和帧同步模块B两路帧同步模块输出的对齐视频进行选择,根据仲裁器的指令选择其中一个源输出:1)当接收到仲裁模块发送的第一视频切换使能信号时,将从接收帧同步模块A的视频源数据切换到接收帧同步模块B的视频源数据进行输出,切换完成向仲裁模块发送第一视频切换完成响应信号;2)当接收到仲裁模块发送的第二视频切换使能信号时,将从接收帧同步模块B的视频源数据切换到接收帧同步模块A的视频源数据进行输出,切换完成向仲裁模块发送第二视频切换完成响应信号。
2.一种基于FPGA的多路视频同步切换方法,其特征在于,包括如下步骤:
步骤01.在未收到视频切换指令时,将帧同步模块A中的视频数据作为当前视频源数据,始终输出帧同步模块A中的视频数据;所述视频切换指令包括视频切换映射表和视频画面切换命令,所述视频切换映射表中含有当前视频源和目标切换视频源两个信息;
步骤02.实时收集视频切换指令,当收集到更新的视频切换映射表时,将其发送给视频矩阵模块;
步骤03.视频矩阵模块根据视频切换映射表中给出的需切换的目标视频源,将目标切换视频源数据发送给帧同步模块B;
步骤04.帧同步模块B将其接收的目标切换视频源数据以帧为单位写入DDR,且按照同步时钟和帧头信息读出帧,当帧同步模块B写满一个完整的帧时,就发送给仲裁模块一个响应信号;
步骤05.仲裁模块收到帧同步模块B发送的响应信号就将该帧同步模块B的输出定义为可用,表示可以进行切换;
步骤06.仲裁模块等待视频画面切换命令;
步骤07.仲裁模块收到视频画面切换命令后,发送第一视频切换使能信
号给视频同步切换模块;
步骤08.视频同步切换模块收到仲裁模块发送的第一视频切换使能信号后,将当前的从帧同步模块A接收视频源数据切换到从帧同步模块B接收视频源数据进行输出,切换完成时向仲裁模块发送第一视频切换完成响应信号;
步骤09.仲裁模块接收到视频同步切换模块发送的第一视频切换完成响应信号后,向视频矩阵模块发送视频源复制指令;
步骤010.从仲裁模块接收到视频源复制指令后,视频矩阵模块将发送给帧同步模块B的目标切换视频源数据进行复制并发送给帧同步模块A,使得输送给帧同步模块A和帧同步模块B的视频数据相同;
步骤011.帧同步模块A将其接收的目标切换视频源数据以帧为单位写入DDR,并将其存满1帧画面空间的响应信号反馈给仲裁模块;
步骤012.仲裁模块接收到帧同步模块A存满一帧的响应后,发送第二视频切换使能信号给视频同步切换模块;
步骤013.视频同步切换模块收到仲裁模块发送的第二视频切换使能信号时,将从帧同步模块B接收视频源数据切换到从帧同步模块A接收视频源数据进行输出,切换完成时向仲裁模块发送第二视频切换完成响应信号;
步骤014.仲裁模块接收到视频同步切换模块发送的第二视频切换完成响应信号后,向视频矩阵模块发送停止向帧同步模块B输出内容的指令;
步骤015.从仲裁模块接收到停止向帧同步模块B输出内容的指令后,视频矩阵模块停止向帧同步模块B输出内容,并返回步骤01,等待视频切换映射表的更新。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010919713.3A CN112104819B (zh) | 2020-09-04 | 2020-09-04 | 一种基于fpga的多路视频同步切换系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010919713.3A CN112104819B (zh) | 2020-09-04 | 2020-09-04 | 一种基于fpga的多路视频同步切换系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112104819A CN112104819A (zh) | 2020-12-18 |
CN112104819B true CN112104819B (zh) | 2022-11-29 |
Family
ID=73757674
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010919713.3A Active CN112104819B (zh) | 2020-09-04 | 2020-09-04 | 一种基于fpga的多路视频同步切换系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112104819B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113141487A (zh) * | 2021-04-13 | 2021-07-20 | 合肥宏晶微电子科技股份有限公司 | 视频传输模组、方法、显示装置和电子设备 |
CN113596348B (zh) * | 2021-04-29 | 2023-11-03 | 青岛信芯微电子科技股份有限公司 | 图像处理方法及设备 |
CN113119866B (zh) * | 2021-05-12 | 2022-12-02 | 中国第一汽车股份有限公司 | 一种基于流媒体的后视镜显示方法及显示装置 |
CN113473060B (zh) * | 2021-07-02 | 2023-12-15 | 北京格非科技股份有限公司 | 一种4k超高清无压缩ip信号处理器及处理方法 |
CN114567712B (zh) * | 2022-04-27 | 2022-07-26 | 成都卓元科技有限公司 | 一种基于sdi视音频信号的多节点净信号调度方法 |
CN115460422B (zh) * | 2022-08-20 | 2023-04-11 | 北京流金岁月传媒科技股份有限公司 | 一种超高清网络视音频专业解码器和视频帧同步方法 |
CN115550693B (zh) * | 2022-11-30 | 2023-04-18 | 苏州浪潮智能科技有限公司 | 视频流加密的配置信息同步的方法、装置、设备及介质 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002101351A (ja) * | 2000-09-26 | 2002-04-05 | Toshiba Corp | チャンネル切換手段を備えた映像表示装置 |
JP4577768B2 (ja) * | 2005-01-27 | 2010-11-10 | 株式会社コルグ | 映像信号切り換え装置 |
US9542914B2 (en) * | 2008-12-31 | 2017-01-10 | Apple Inc. | Display system with improved graphics abilities while switching graphics processing units |
CN101547317B (zh) * | 2009-05-14 | 2011-11-02 | 武汉新宏博科技有限公司 | 多路视频矩阵软切换系统和方法 |
CN102025889B (zh) * | 2010-11-29 | 2013-01-09 | 大连捷成实业发展有限公司 | 基于fpga和sdram的高清数字视频帧同步的系统 |
CN202856875U (zh) * | 2012-07-27 | 2013-04-03 | 北京威泰嘉业科技有限公司 | 高清混合矩阵无缝切换vga输出系统 |
CN102752543A (zh) * | 2012-07-27 | 2012-10-24 | 北京威泰嘉业科技有限公司 | 高清混合矩阵无缝切换方法及系统 |
US20140125802A1 (en) * | 2012-11-08 | 2014-05-08 | Microsoft Corporation | Fault tolerant display |
CN107390893A (zh) * | 2017-07-17 | 2017-11-24 | 核动力运行研究所 | 基于fpga实现kvm切换器无闪烁切换的系统及方法 |
CN207067943U (zh) * | 2017-07-17 | 2018-03-02 | 核动力运行研究所 | 一种基于fpga实现kvm切换器无闪烁切换的装置 |
US10412320B1 (en) * | 2018-03-29 | 2019-09-10 | Wipro Limited | Method and system for switching display from first video source to second video source |
CN110460784B (zh) * | 2019-08-19 | 2022-02-25 | 京东方科技集团股份有限公司 | 显示通道的切换方法及模块、显示驱动装置、显示设备 |
-
2020
- 2020-09-04 CN CN202010919713.3A patent/CN112104819B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112104819A (zh) | 2020-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112104819B (zh) | 一种基于fpga的多路视频同步切换系统及方法 | |
CN102193865B (zh) | 存储系统、存储方法和使用其的终端 | |
EP0988756B1 (en) | Apparatus and method for controlling transfer of data between processing elements | |
CN107249107B (zh) | 视频控制器和图像处理方法及装置 | |
WO2014079303A1 (zh) | 一种视频多画面合成方法、装置和系统 | |
CN115103208A (zh) | 一种视频数据的行缓存方法、行读取方法及处理系统 | |
US6029221A (en) | System and method for interfacing a digital signal processor (DSP) to an audio bus containing frames with synchronization data | |
JP3952226B2 (ja) | バス通信システム | |
CN111208965B (zh) | 拼接显示系统及其显示方法 | |
CN108134912A (zh) | 一种视频流转换方法 | |
CN116016823B (zh) | 一种视频注入装置及系统 | |
CN217406647U (zh) | 一种led屏同异步播放切换装置 | |
CN111225242A (zh) | 视频播放容灾方法、装置及计算机存储介质 | |
CN115955589A (zh) | 基于mipi的优化视频拼接方法、系统和存储介质 | |
US20020089940A1 (en) | Duplexing apparatus and method in large scale system | |
WO2007060932A1 (ja) | 動的再構成論理回路を有するマルチスレッドプロセッサ | |
CN110012254B (zh) | 电视及实时可视信源切换处理方法 | |
US7248663B2 (en) | Apparatus and method for transforming data transmission speed | |
CN113365118A (zh) | 基于大屏智能设备的智能终端外设操作方法、装置及系统 | |
US6721832B2 (en) | Data processing system and bus control method for stream data transfer | |
KR100306371B1 (ko) | 두개의메모리제어기를가지는엠펙(mpeg)복원장치및복원방법 | |
CN217406648U (zh) | 一种led屏同异步播放切换与控制装置 | |
Sun et al. | Real Time Controllable Multi Channel HD Digital Video Processing System Based on FPGA and MicroBlaze | |
CN113965702B (zh) | 一种基于国产化平台的多通道视频无缝切换电路及其方法 | |
CN116095257A (zh) | 一种多路hdmi视频切换显示系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |