一种同步拼接显示方法及装置与流程

文档序号:12497126阅读:197来源:国知局
一种同步拼接显示方法及装置与流程

本发明属于视频监控技术领域,具体涉及一种同步拼接显示方法及装置。



背景技术:

随着拼接显示的应用场合越来越复杂,系统的设计也越来越复杂,显示同步问题越来越明显。

同步显示是指同一帧视频源图像的不同图像分割块在同一个显示刷新周内,在不同的屏上进行跨屏显示时,图像无视觉撕裂感,前后帧同时切换,与整幅图像在单个屏上播放效果一致。

在同步显示过程中,若图像源帧率与显示帧率不一致时,一般需要进行帧复制,复制帧的同步也非常重要,各个显示口需要保证在某一显示时刻,各个分块图像的复制帧是来自源图像的同一帧。

显示的不同步,主要原因来自于以下几个方面:

1)各输出(显示)业务板时钟的差异性,随着长时间的系统运行,各个显示时钟各自都会有一定的偏差,若偏差累计达到一定阈值的时候,导致场同步信号偏差过大,视觉上就会出现不同步。

2)各输出端由于接收到的视频帧时间不完全相同,有先后差异,在某一时刻,有的输出端FPGA收到了该视频帧分块的全部,而另一个FPGA没有收到该流或收到了该流分块的部分图像,此时若收到了该流分块的全部则显示该帧图像,另一个没有收到该流分块的全部可能只能显示上一帧图像,此时就会出现明显的不同步。

3)视频源帧率与显示帧率不一致,比如视频源帧率为25,显示帧率为60,则其中必然有复制帧,各个显示端口在显示复制帧分块的时候在同一时刻可能来自于不同的图像源帧。

4)输出端显示端正在处理显示的某一帧视频分块由于发送端视频速度过快而被下一帧视频分块覆盖,从而显示的是下一帧图像,另外一个输出端显示端的下一帧视频分块可能没有到达而正常显示本应该显示的那一帧,这样会导致也有前后帧的差异,导致不同步。

因此,为保证显示同步,必须确保以下两个条件:

同一时刻,各显示端口对某一路视频的显示必须是来自于源图像同一帧;

同一时刻,对于源图像帧率与显示帧率不一致的情况下,确保各个分块复制是来自于源图像的同一帧图像。

为解决同步性问题,有如下几个解决方案:

方案一、利用基准时钟作为显示时钟源,避免显示端时钟偏差累计;

方案二、各视频帧带送显时间戳;

方案三、时钟同步请求,每个业务板需要显示下一帧时,向时钟同步模块发送请求,时钟同步模块收到请求后输出各业务板显示使能;

方案四、各图像源畅显处理,处理成相同的帧率显示。

以上各个解决方案尽管能够解决拼接显示的同步性,但是也存在各自的缺陷,针对方案一,由于对于跨板的输出端口,采用同个基准时钟源由于线路较长,不能保证时钟质量,对硬件设计要求较高;针对方案二,处理复杂,不适合FPGA处理;针对方案三,时钟同步请求容错性较差,若某个业务板出现故障导致时钟同步模块没有收到同步请求,导致整个系统显示异常。针对方案四,消耗资源大。



技术实现要素:

针对现有技术的不足,本发明提供了一种同步拼接显示方法及装置,以确保拼接显示时各个显示器的图像完全同步。

一种同步拼接显示方法,用于对来自视频源的分块视频图像在不同的显示器上进行显示,所述同步拼接显示方法以与所述显示器的刷新频率相同的脉冲信号作为基准同步脉冲,包括如下步骤:

将视频源的视频图像按照各个显示器的显示比例进行切割分块后的各个视频帧分别发送到不同的输出端,并在各个视频帧都发送完毕后向各个输出端发送包含处理次数的结束包;

各输出端接收对应的视频帧放入前级缓存,在基准同步脉冲的控制下,根据接收到的结束包中包含的处理次数对前级缓存中的一个视频帧进行图像处理,并在图像处理完成后缓存至相应的后级缓存中;

各输出端在基准同步脉冲的控制下,将后级缓存中的一个视频帧按照送显时序发送至相连接的显示器进行显示。

进一步地,所述根据接收到的结束包中包含的处理次数对前级缓存中的一个视频帧进行图像处理,包括:

提取所述结束包中的处理次数;

当所述结束包对应的视频帧为当前处理帧时,在接收到基准同步脉冲后,判断所述视频帧的处理次数是否与所述结束包中的处理次数相同,若不相同,则对所述视频帧进行处理,并统计所述视频帧的处理次数;若相同,则将所述视频帧从所述前级缓存中释放,对所述视频帧对应的下一视频帧进行处理,并统计所述下一视频帧的处理次数。

作为优选,所述结束包中还包含视频帧的类别,所述视频帧的类别包括首帧或非首帧,其中新建窗口或切换视频源的首个视频帧的类别为首帧。

进一步地,所述根据接收到的结束包中包含的处理次数对前级缓存中的一个视频帧进行图像处理,包括:

提取所述结束包中的处理次数和视频帧的类别;

在该视频帧的类别为首帧时,释放前级缓存中在接收该视频帧之前缓存的所有视频帧,且在接收到基准同步脉冲后对该视频帧进行处理直至达到相应的处理次数后将该视频帧从前级缓存中释放。

作为优选,所述各输出端在基准同步脉冲的控制下,将后级缓存中的一个视频帧按照送显时序发送至相连接的显示器进行显示,包括:

在接收到基准同步脉冲后重新启动送显时序,所述送显时序包括场同步信号和行同步信号。

本发明还提出了一种同步拼接显示装置,用于对来自视频源的分块视频图像在不同的显示器上进行显示,所述同步拼接显示装置以与所述显示器的刷新频率相同的脉冲信号作为基准同步脉冲,所述同步拼接显示装置包括输入端和输出端,其中:

所述输入端,用于将视频源的视频图像按照各个显示器的显示比例进行切割分块后的各个视频帧分别发送到不同的输出端,并在各个视频帧都发送完毕后向各个输出端发送包含处理次数的结束包;

所述输出端,用于接收对应的视频帧放入前级缓存,在基准同步脉冲的控制下,根据接收到的结束包中包含的处理次数对前级缓存中的一个视频帧进行图像处理,并在图像处理完成后缓存至相应的后级缓存中;还用于在基准同步脉冲的控制下,将后级缓存中的一个视频帧按照送显时序发送至相连接的显示器进行显示。

进一步地,所述输出端在根据接收到的结束包中包含的处理次数对前级缓存中的一个视频帧进行图像处理时,执行如下操作:

提取所述结束包中的处理次数;

当所述结束包对应的视频帧为当前处理帧时,在接收到基准同步脉冲后,判断所述视频帧的处理次数是否与所述结束包中的处理次数相同,若不相同,则对所述视频帧进行处理,并统计所述视频帧的处理次数;若相同,则将所述视频帧从所述前级缓存中释放,对所述视频帧对应的下一视频帧进行处理,并统计所述下一视频帧的处理次数。

作为优选,所述结束包中还包含视频帧的类别,所述视频帧的类别包括首帧或非首帧,其中新建窗口或切换视频源的首个视频帧的类别为首帧。

即所述结束包中包含处理次数和视频帧的类别,此时,所述输出端在根据接收到的结束包中包含的处理次数对前级缓存中的一个视频帧进行图像处理时,执行如下操作:

提取所述结束包中的处理次数和视频帧的类别;

在该视频帧的类别为首帧时,释放前级缓存中在接收该视频帧之前缓存的所有视频帧,且在接收到基准同步脉冲后对该视频帧进行处理直至达到相应的处理次数后将该视频帧从前级缓存中释放。

作为优选,所述输出端在基准同步脉冲的控制下,将后级缓存中的一个视频帧按照送显时序发送至相连接的显示器进行显示时,执行如下操作:

在接收到基准同步脉冲后重新启动送显时序,所述送显时序包括场同步信号和行同步信号。

与现有技术相比,本发明的同步拼接显示方法及装置采用同一个基准同步脉冲,使各个输出端的处理过程完全同步,进而保证显示的同步性,同时能解决源图像帧率(即视频源帧率)与显示帧率不匹配的帧率适配问题,保证拼接显示的同步性。且操作简单,无繁琐其它技术的时间戳计算过程。

附图说明

图1为本发明同步拼接显示装置的结构示意图;

图2为本发明同步显示拼接方法的流程图;

图3为本发明送显时序调整示意图;

图4为本发明同步拼接显示方法的处理过程示意图。

具体实施方式

为了更好的理解本发明,下面将结合具体实施例和附图进一步阐述本发明的方案,但本发明的内容不仅仅局限于下面的实施例。

如图1所示,一种同步拼接显示装置,用于对来自视频源的分块视频图像在不同的显示器上进行显示,本实施例同步拼接显示装置以与所述显示器的刷新频率相同的脉冲信号作为基准同步脉冲,该装置包括输入端和输出端。

其中:

输入端,用于将视频源的视频图像按照各个显示器的显示比例进行切割分块后的各个视频帧分别发送到不同的输出端,并在各个视频帧都发送完毕后向各个输出端发送包含处理次数的结束包;

输出端,用于接收对应的视频帧放入前级缓存,在基准同步脉冲的控制下,根据接收到的结束包中包含的处理次数对前级缓存中的一个视频帧进行图像处理,并在图像处理完成后缓存至相应的后级缓存中;然后在基准同步脉冲的控制下,将后级缓存中的一个视频帧按照送显时序发送至相连接的显示器进行显示。

本实施例各输出端与显示器相连,各个输入端和输出端之间通过数据线或PCIE SWITCH连接以进行数据交互。

本实施例图1所示的拼接显示装置为跨4屏的拼接显示装置,设有4个输出端,分别记为输出端1、输出端2、输出端3、输出端4。每个输出端连接有相应的显示器,4个显示器的编号分别为显示器1,显示器2,显示器3,显示器4,4个显示器拼接为一个显示屏。从而可以对视频源的视频图像分割为4块进行显示,容易理解的是,根据视频图像需要分块的数量不同,对应的输出端及其连接的显示器数量也不同,本实施例不限于具体连接的输出端和显示器数量,以下以视频图像分割为4块为例进行说明,以下不再赘述。

本实施例的拼接显示装置进行显示前,在各个输出端需要预先针对该视频流设置前级缓存和后级缓存,前级缓存为4个视频帧空间,后级缓存的大小为2个视频帧空间,前级缓存的4个视频帧空间分别编号为A、B、C、D。

需要说明的是,前级缓存和后级缓存的大小可以根据实际应用情况或需求进行调整。

如图2所示,一种同步拼接显示方法,用于上述同步拼接显示装置,对来自同一视频源的分块视频图像在不同的显示器上进行显示,该同步拼接显示方法包括:

S1、输入端将同一视频源的视频图像按照各个显示器的显示比例进行切割分块后的各个视频帧分别发送到不同的输出端,并在各个视频帧都发送完毕后向各个输出端发送包含处理次数的结束包;

S2、各输出端接收对应的视频帧放入前级缓存,在基准同步脉冲的控制下,根据接收到的结束包中包含的处理次数对前级缓存中的一个视频帧进行图像处理,并在图像处理完成后缓存至相应的后级缓存中;

S3,各输出端在基准同步脉冲的控制下,将后级缓存中的一个视频帧按照送显时序发送至相连接的显示器进行显示。

本实施例中步骤S1具体实现时,输入端接收外部视频源(摄像机)发来的视频图像,并将接收到的视频图像按照四个显示器的显示比例切割分块,然后将得到的每个分块的视频帧分别发送给相应的输出端。

发送时,输入端将各分块的视频帧分别编号为1、2、3、4,输出到对应输出端,且对应于编号相同的显示器。

待该视频图像的分割后得到的四个视频帧都发送完成后,输入端以组播形式向各个输出端发送结束包。

结束包的包含的信息和格式可以根据实际应用情况调整。

作为本实施例的一种实现方式,该结束包包含有处理次数和缓存位置,其中处理次数为该视频帧需要进行图像处理的次数(即被复制的次数),缓存位置用于指定该视频帧在前级缓存中的存储位置,对应于视频帧空间,例如本实施例前级缓存的4个视频帧空间分别编号为A、B、C、D。

作为本实施例的一种实现方式,该结束包包含处理次数、缓存位置以及视频帧的类别,视频帧的类别包括首帧或非首帧,其中新建窗口或切换视频源的首个视频帧的类别为首帧。此时,作为一种实现方式,结束包的格式可以如表1所示,长度为1个字节,其中[7:5]位未使用。结束包中第4位为视频帧的类别(即首帧包),第3位和第2位表示处理次数,第1位和第0位表示缓存位置(帧号)。

窗口是指显示屏上用于显示一幅完整视频图像的区域,每个窗口对一个视频源,且不同的窗口对应的视频源可以相同,也可以不同,其中,显示屏由视频监控系统中所有显示器组成,以显示器为最小组成单位。一个窗口对应的区域中至少包含一个显示器。本实施例中针对拼接显示而言,因此,至少应包含2个显示器。新建窗口是指同一个的显示器接收到的前后两个视频帧对应的视频源对应于不同的窗口。首帧包为1,则表示该视频帧为首帧;首帧包为0,则表示该视频帧不为首帧。

帧号00、01、10和11依次分别对应前级缓存中A、B、C和D的4个视频帧空间。

表1

本实施例结束包中处理次数是为了处理帧率适配:

当发送端的视频源帧率与显示器的显示帧率不一致时,涉及对视频帧进行帧复制,对每一视频帧的复制次数有可能不同,即处理次数也可能不同。当结束包中的首帧包为1时,表示该帧是首帧,此时输入端发送的视频帧的帧号重新开始编号,因此需要将前级缓存中其他的视频帧删除,不再进行处理。

例如,显示帧率为60Hz,则同步脉冲的频率为60Hz,此时,假设视频源为25fps,连续5帧的处理次数为2,3,2,3,2,若为新建窗口或切换视频源,则发送的结束包依次是:5'b1_10_00,5'b0_11_01,5'b0_10_10,5'b0_11_11,5'b0_10_00,其中,5'b表示所用的位宽为5bits,即bit0~bit4。本实施例中通过设定处理次数以达到帧率适配,根据以上5个结束包,分别的处理过程为:

输出端将第1个视频帧进行两次图像处理2次(即需要复制一次),由于第一个视频帧为首帧,在收到基准同步脉冲时,直接对该首帧进行图像处理,不再对前级缓存中尚未处理的视频帧进行图像处理,尚未处理的视频帧包括未进行图像处理的视频帧和处理次数未达到相应结束包中指定的处理次数。例如:在处理完前级缓存的视频帧空间B中的视频帧,本应接着处理视频帧空间C中的视频帧,但此时新的视频源首帧来临,该首帧包必须是存入视频帧空间A,立即停止原视频尚未处理的视频帧,在基准同步脉冲来临时立即开始处理新视频的视频帧,即处理视频帧空间A中的该首帧。后需视频帧按顺序存入视频帧空间B、C、D,循环往复。

将第2个视频帧进行两次图像处理3次(即需要复制2次)才会切换到对下一视频帧的处理,且切换时同时释放该视频的缓存;

其余视频帧均不是首帧,按照第2个视频帧的处理方法依此类推即可。

当发送端的视频源帧率与显示器的显示帧率一致时,每一个帧的进行图像处理的次数都为1。

本实施例中结束包以组播的形式发送至各输出端,保证各输出端接收到该结束包的时刻基本一致,因此可以确定当某个输出端收到该结束包的时候其它输出端也已收到该包,即可确定该图像的各个分块均已到达各目标输出端,此时该视频帧才可以进行下一步的处理。

本实施例中步骤S2中各输出端接收对应的视频帧放入前级缓存,在基准同步脉冲的控制下,根据接收到的结束包中包含的处理次数对前级缓存中的一个视频帧进行图像处理,在具体实现时根据结束包中包含的信息种类进行:

(a)当结束包中仅包含处理次数和缓存位置时,具体包括如下步骤:

提取接收到的结束包中的处理次数和缓存位置;

各输出端接收对应的视频帧根据提取到缓存位置放入前级缓存中,当结束包对应的视频帧为当前处理帧时,在接收到基准同步脉冲后,判断所述视频帧的处理次数是否与所述结束包中的处理次数相同,若不相同,则对所述视频帧进行处理,并统计所述视频帧的处理次数;若相同,则将所述视频帧从所述前级缓存中释放,对所述视频帧对应的下一视频帧进行处理,并统计所述下一视频帧的处理次数。

(b)当结束包中包含处理次数和缓存位置,以及视频帧的类别时,具体包括如下步骤:

提取接收到的结束包中的处理次数、缓存位置和视频帧的类别;

各输出端接收对应的视频帧根据提取到缓存位置放入前级缓存中,在该视频帧是首帧时,释放前级缓存中其余的视频帧,即释放前级缓存中在接收该视频帧之前缓存的所有视频帧。且在接收到基准同步脉冲后对该视频帧进行处理直至达到相应的处理次数后将该视频帧从前级缓存中释放;在该视频帧不是首帧时,判断所述视频帧的处理次数是否与所述结束包中的处理次数相同,若不相同,则对所述视频帧进行处理,并统计所述视频帧的处理次数;若相同,则将所述视频帧从所述前级缓存中释放,对所述视频帧对应的下一视频帧进行处理,并统计所述下一视频帧的处理次数。

需要说明的是,本实施例中的对同一个视频帧进行多次图像处理时应理解为每收到一个基准同步脉冲对该视频帧进行一次图像处理,待接收到下一个基准同步脉冲后才进行第二次图像处理。

为保证显示效果,输出端实时监控前级缓存的状态(已满或未满),提供前级缓存是否已满的标识信息,输入端每次发送视频帧之前都查询前级缓存的状态,在前级缓存已满时,停止向输出端发送视频帧。

各输出端均在基准同步脉冲的节奏下统一处理视频帧,处理速度完全一致。输入端与输出端处理速度可能并不精确匹配,是异步的,会导致本应该处理的那一个视频帧由于输入端过快而被覆盖,这样,又会产生新的不同步。

针对该问题,本实施例中前级缓存采用反压机制。实现时,输出端实时监控前级缓存的存储空间是否已满(可通过设置状态标识位实现),在存储空间已满时,通知输入端停止发送视频帧,具体如下:

本实施例输出端前级缓存总共开辟四帧缓存(即四个视频帧空间),并提供空满指示信号,输入端发送每一个视频帧前会向目的输出端查询对应的前级缓存是否已满,若输出端前级缓存已达到4帧缓存,则前级缓存已满,不允许向该输出端发送视频帧,此时输入端可以暂停发送视频帧,将该视频帧缓存在自己的缓存中;若前级缓存不满四帧,可以继续向该输出端发送视频帧。

本实施例拼接显示方法步骤S3中,基准同步脉冲的频率与显示器的刷新频率一致,在基准同步脉冲来临时,各输出端送显时序在基准同步脉冲的控制下同时启动,即输出端开始根据自己的处理时钟来产生送显时序。但是由于输出端的处理时钟(如1080p@60时钟为148.5M)会有偏差,可能送显时序与基准同步脉冲周期不能完全一致,容易出现处于场消隐期时的最后一行最后几个时钟周期内,下一个基准同步脉冲已来临的情况。

具体地,如图3所示,输出端每接收到一个基准同步脉冲后重新启动送显时序,送显时序包括场同步信号VS和行同步信号HS。由于各个输出端处理时钟的偏差,可能出现如下两种情况:

情况一、在下一个基准同步脉冲来临时,上一个送显时序中的行同步信号的最后几个处理时钟还未结束(即送显时序未结束,基准同步脉冲已来临);

情况二、在下一个基准同步脉冲来临前,上一个送显时序中的行同步信号的最后几个处理时钟已经结束(即送显时序结束,但同步脉冲还未来临时)。

针对以上两种情况,分别采用如下方法调整送显时序:

针对送显时序未结束,基准同步脉冲已来临的情况,忽略上一个送显时序中最后几个未处理的行同步信号的处理时钟强制新的场同步信号VS,行同步信号HS重新启动计数,这样可以确保各输出端送显时序完全一致;

针对送显时序结束,但同步脉冲还未来临时的情况,送显时序强制处于消隐期,等待同步脉冲的来临再启动下一帧的送显时序,强制新的场同步信号VS,行同步信号HS重新启动计数,这样可以确保各输出端送显时序完全一致。

该方法的原理实际上就是在下一个基准同步脉冲来临时,利用显示消隐期,调整各输出端送显时序,使各输出端显示每个视频帧的送显时序完全一致,完全同步。

需要说明的是,所述步骤(2)中,每接收到一个基准同步脉冲,均从前级缓存中取出一个视频帧进行图像处理,并在处理完成后缓存至相应的后级缓存中,以等待发送至相应的显示器。且需要在接收到下一个同步脉冲前完成对所取出的视频帧的图像处理并存入后级缓存中。

各个输出端针对接收到的每个视频帧,在每个脉冲周期内均处理一个视频帧,且每次均在接收到同步脉冲后开始处理,由于每个输出端采用同一个同步脉冲,进而使得每个输出端的处理过程完全同步。

本实施例中处理后完成图像显示前的所有业务,存入后级缓存,后级缓存开辟2帧缓存空间,分别为后级缓存0和后级缓存1,交替存储,读写采用“乒乓”操作,交替将2个帧缓存空间中缓存的视频帧发送至显示器进行显示。

基于上述同步拼接显示方法,每幅视频图像的显示流程如图4所示,首先输入端对视频图像进行切割分块划分为四个视频帧分别发送至4个输出端,其中1号视频帧在T1时刻发送至输出端1;2号视频帧在T2时刻发送至输出端2;3号视频帧在T3时刻发送至输出端3;4号视频帧在T4时刻发送至输出端4。

1号视频帧在T1时刻发送的视频帧在T1+ΔT1时刻缓存至输出端1中相应的前级缓存中;2号视频帧在T1时刻发送的视频帧在T2+ΔT2时刻缓存至输出端2中相应的前级缓存中;3号视频帧在T3时刻发送的视频帧在T3+ΔT3时刻缓存至输出端3中相应的前级缓存中;4号视频帧在T4时刻发送的视频帧在T4+ΔT4时刻缓存至输出端4中相应的前级缓存中。

本实施例中基准同步脉冲的脉冲周期为T,假设T时刻接收到一个同步脉冲,因此,1号视频帧在T1时刻发送的视频帧、2号视频帧在T2时刻发送的视频帧、3号视频帧在T3时刻发送的视频帧,以及4号视频帧在T4时刻发送的视频帧均在T~2T内完成处理并存储至相应的后级缓存中,且都在2T时刻发送至显示器进行显示。

在接收到基准同步脉冲后,判断当前处理的视频帧的处理次数是否达到对应结束包中的处理次数,若达到则从所述前级缓存中释放,并处理下一个视频帧,否则,继续处理该视频帧。

需要说明的是,以上方法适用于针对输出端输出一个窗口的情况,该窗口为各个输出端连接的显示器所组成的显示屏上显示的一副图像。在实际应用时,一个输出端可以输出多个窗口,此时本发明的方法同样适用,仅仅需要针对每个窗口分别设置前级缓存和后级缓存,以及送显时序,且要求在每个脉冲周期内对每个窗口对应的视频帧进行相同的操作(包括图像处理、存入后级缓存以及发送至显示器显示等)即可。当输出端对应的显示屏显示多个窗口时,输出端对每个窗口单独进行处理,各个窗口之间针对各自视频帧的处理以及、缓存、送显均不存在交叉。当有多个窗口时,在同一个脉冲周期内,需保证每个窗口对应的视频帧都能处理完毕,不会占用下一个脉冲周期内的时间。

每个脉冲周期内处理完各个窗口的视频帧后,可能还存在空闲时间,说明该拼接显示装置还可以同时完成更多窗口的同步拼接显示。

未做特殊说明,本实施例中对每个视频帧的图像处理包括缩放、拼接,叠层等存入后级缓存前的所有操作。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1