本发明涉及航空电子显示任务处理系统领域。
背景技术:
在人类日常生活中,人们需要通过各种方式来获得外部的信息,包括听觉、触觉、视觉等等。其中视觉信息更加直观、形象、易懂,并且所获得信息量更大,是人们获得信息的最主要方式。日常生活中超过80%的信息都是通过视觉来获得的,为满足航空电子领域的图形、图像清晰、流畅的呈现在用户眼前,随之衍生出了航空电子视频处理技术。
视频处理技术是机载显示控制系统的重要功能之一,其中涉及视频信号标准、视频信号接口方式、视频信号传输方式和视频信号的转换和处理等诸多方面的内容。
而随着任务处理系统对模块通用化的要求不断提高,实际应用中对于图形、图像的屏幕显示区域要求更高,对于显示控制系统的多屏输出能力提出了要求,进而衍生出多桌面窗口视频跨屏叠加的技术。
技术实现要素:
本发明的发明目的在于提供一种多桌面窗口视频跨屏叠加显示方法,通过采用拼接再裁减的处理过程,使显示效果更加平滑,不会存在缺少像素或重复像素的问题,无需进行复杂的控制和大量的计算即可完成跨屏叠加操作。
本发明的发明目的通过以下技术方案实现:
一种多桌面窗口视频跨屏叠加显示方法,由fpga芯片实现,包含以下步骤:
步骤1:根据屏幕摆放位置,对多路窗口视频进行拼接操作,拼成整幅图像;
步骤2:将多路外视频叠加到整幅图像上;
步骤3:根据屏幕摆放位置,将叠加后的整幅视频进行视频裁剪,分发到各个屏幕进行显示。
步骤1中,多路窗口视频在拼接前,先将多路窗口视频以帧为单元进行缓存,然后根据同步信息从缓存中读出窗口视频进行拼接。
步骤2中在将多路外视频叠加到整幅图像前,先在外视频待叠加处绘制一个与外视频同样大小的黑框区域,通过判断黑框区域中否有覆盖到窗口视频上用户交互标记,决定外视频的透明度,以使多路外视频叠加到整幅图像后用户交互标记可见。
外视频进入fpga芯片后,先以帧为单元进行缓存,然后根据同步信息从缓存中读出外视频进行叠加。
本发明的有益效果在于:
a)由于采用拼接再裁减的处理过程,使跨屏叠加的显示效果更加平滑,不会存在缺少像素或重复像素的问题,无需进行复杂的控制和大量的计算即可完成跨屏叠加操作;
b)由于采用叠层透明度动态控制的叠加方式,相比传统的用户标记再造保持置顶方式效果更佳清晰,用户标记不存在变形和变化迟缓等问题,对用户而言,视觉效果更加优异,表现更为出色。
附图说明
图1为多桌面窗口视频跨屏叠加显示方法的流程示意图。
图2为本发明具体实施例的拼接效果示意图。
图3为本发明具体实施例的叠加效果示意图。
图4为本发明具体实施例的用户标记置顶示意图。
图5为本发明具体实施例的视频分割示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。
本实施例以2路窗口视频和5路叠加外视频为测试激励,窗口视频主要包含由软件绘制的视频,外视频主要包含视频采集装置采集到的视频。当外视频流分别进入到fpga以后,首先进行接口转换,将外部输入接口视频转换成统一的axi4stream数据接口,再利用ddr3进行视频帧缓存,此处以帧为单位完成多帧缓存,以保证后续视频处理的同步性,接下来,如图1所示,将进行一系列的视频处理过程以完成预期需求。
1)窗口视频拼接:2路窗口视频首先进行拼接处理,通过拼接将2路窗口视频合为一整幅视频,完成拼接过程前需将2路待拼接窗口视频进行帧缓存处理,本实例采用3帧缓存设计,缓存后的视频经过同步处理再进行拼接,具体拼接效果见图2。
2)外视频叠加:将拼接后的整幅视频与外视频进行叠加,此设计方法可保证叠加后的外视频跨屏移动时操作平滑,占用更少的算力,消耗更少的资源。叠加效果见图3。
新型航空电子显示控制系统中,窗口视频包含友好的用户交互窗口,其中用户交互标记是用户控制系统的直接枢纽,最典型的应用便是鼠标指针。作为交互枢纽,用户标记必须在窗口中保持始终置顶的状态,而该标记一般位于叠加窗口最底层的操作系统叠层,为保证用户交互标记始终被用户可见,将用户拼接后的整幅视频与5路外视频进行叠加的处理过程中,采用α叠加控制,动态改变叠加图层透明度,将窗口视频置于视频最底层,用户交互标记同样来自原最底层的窗口视频,当窗口视频与外视频进行叠加时,为防止用户交互标记被外视频遮挡,操作系统层面通过开窗操作,在桌面区域作一副同样大小的黑框区域,外视频叠加位置便位于该区域,通过动态比对窗口视频和外视频的视频数据数值,发现数值处于黑框设定数据范围内时,自动将外视频叠加透明度α设为0xff,即保证外视频不透,相反,如果发现视频数据不在黑框设定数据范围内,则将α设置为0x00,即全透状态,这样既可保证用户交互标记在外视频叠加区域移动时,鼠标指针依然保持置顶且用户可见的状态,具体效果如图4所示。
3)视频分割:由于上述处理过程结束后的视频仍为一整幅图像,无法直接送给两路显示器,因此送显之前仍需进行视频分割处理,分割过程利用ddr3帧缓存对视频帧的左右半屏分别进行数据读取,在分别送至两路显示器,这样就实现了左右半屏分别分割的操作需求,效果如图5所示。