多屏显卡输出的分布式网络上屏同步方法、系统及设备
文献发布时间:2023-06-19 11:27:38
技术领域
本发明属于控制系统,具体涉及了一种多屏显卡输出的分布式网络上屏同步方法、系统及设备。
背景技术
随着科技的不断进步,社会的不断发展。在各种监控、调度、指挥显示系统中运用了大量的多屏显卡的PC机,它能够在多个屏幕上显示各自不同的画面,并可显示拼接的组合大画面。近年来又为了扩大监控、调度、指挥显示系统的规模,优化办公环境,办公区设备简化、降低噪音,增大视频的传输距离等,分布式网络的音视频管控系统又得到了更加广泛的应用。分布式系统中的上屏同步方法是基于整个网络的时间同步的,即在每帧视频输入到编码设备的时候加上当前时间的时间戳,然后在输出上屏的时候每个解码设备都挑选与同一个设定标准时间最接近的视频帧输出,以达到输出上屏显示同步的效果。
多屏输出的显卡在大屏拼接模式下多个视频输出口输出的视频的视频场同步信号有时候并不是完全对齐的,大概会有一帧时间10%的偏差,这就意味着多个视频输出口输出的每帧视频不是同一时间输出的。在通过分布式网络系统传输过程中,由于多屏显卡多个视频输出口输出的视频帧不是同一时间输入到编码设备的,就会导致在加到视频帧中的时间戳是不一样的,输出的上屏的时候解码设备挑选的视频帧可能会挑选错误的帧显示,造成多屏显卡输出的视频通过分布式网络上屏后不同步的效果。
发明内容
为了解决现有技术中的上述问题,即现有的多屏显示技术容易出现时间戳不同而导致解码设备可能会挑选错误的帧进行显示的问题,本发明提供了一种多屏显卡输出的分布式网络上屏同步方法,所述方法包括:
步骤S100,将与相同多屏显卡拼接大屏的编码设备编为一组,并设定组号和节点号;
步骤S200,将所有组号相同的编码设备加入同一个以太网组播;
步骤S300,通过竞争的方式选择1个编码设备设置为喊号节点,其余为跟随节点;
步骤S400,多屏显卡PC主机将视频信息包输入编码设备并将输入到编码设备的时间戳添加进信息包,获得带有时间戳的视频数据包;
步骤S500,喊号节点向跟随节点发送多屏显卡时间戳同步包;其中,所述多屏显卡时间戳同步包的内容包括下一帧的时间戳、喊号节点的组号和节点号;喊号节点在传输第s帧视频帧的中间时刻,发送第s+1帧视频对应的多屏显卡时间戳同步包;
步骤S600,当所述跟随节点收到同组的喊号节点发送的第s+1帧对应多屏显卡时间戳同步包时,将第s+1帧对应的带有时间戳的视频数据包中的时间戳替换为多屏显卡时间戳同步包中的时间戳;
步骤S700,解码设备根据时间戳选取带有时间戳的视频数据包进行解码并上屏输出显示。
在一些优选的实施方式中,所述步骤S300包括:
步骤S310,令所有编码设备节点向外以组播的方式发送带有时间戳的网络包;
步骤S320,若编码设备节点收到与自身组号相同但节点号比自身节点号小的网络包时,停止向外发送带有时间戳的网络包;
步骤S330,重复步骤S310-步骤S320的方法,最终还在向外发送带有时间戳的网络包的编码设备设置为喊号节点。
在一些优选的实施方式中,所述方法还包括相位调整的步骤,包括:
当喊号节点与跟随节点之间的相位差大于预设的阈值时,通过所述服务器发出控制命令,控制喊号节点提前或滞后发出多屏显卡时间戳同步包。
在一些优选的实施方式中,所述方法还包括分辨率异常处理的步骤,包括:
当所述喊号节点输入的视频信息包的分辨率参数与同组内其他节点输入的视频信息包的分辨率参数不同时,所述喊号节点停止发送信息,并通过如步骤S310-步骤S330的方法选取新的喊号节点。
在一些优选的实施方式中,所述方法还包括时序异常处理的步骤,包括:
当所述喊号节点输入的视频信息包没有时序时,所述喊号节点停止发出多屏显卡时间戳同步包,直至输入的视频信息包恢复时序。
在一些优选的实施方式中,所述方法还包括无时间戳时备选的步骤,包括:
当所述跟随节点在需要替换时间戳且未收到喊号节点的带有时间戳的网络包时,所述跟随节点使用全网时间同步的时间戳,若连续5帧仍未收到喊号节点发送的时间戳,则通过如步骤S310-步骤S330的方法选取新的喊号节点。
本发明的另一方面,提出了一种多屏显卡输出的分布式网络上屏同步系统,包括编组模块、以太组网模块、喊号节点设置模块、信息输入模块、时间戳喊号模块、时间戳调整模块和上屏输出模块;
所述编组模块,配置为将与相同多屏显卡拼接大屏的编码设备编为一组,并设定组号和节点号;
所述以太组网模块,配置为将所有组号相同的编码设备加入同一个以太网组播;
所述喊号节点设置模块,配置为通过竞争的方式选择1个编码设备设置为喊号节点,其余为跟随节点;
所述信息输入模块,配置为多屏显卡PC主机将视频信息包输入编码设备并将输入到编码设备的时间戳添加进信息包,获得带有时间戳的视频数据包;
所述时间戳喊号模块,配置为喊号节点向跟随节点发送多屏显卡时间戳同步包;其中,所述多屏显卡时间戳同步包的内容包括下一帧的时间戳、喊号节点的组号和节点号;喊号节点在传输第s帧视频帧的中间时刻,发送第s+1帧视频对应的多屏显卡时间戳同步包;
所述时间戳调整模块,当所述跟随节点收到同组的喊号节点发送的s+1帧多屏显卡时间戳同步包时,将所述时间戳进行储存并在第s+1帧时使用;
所述上屏输出模块,配置为解码设备根据时间戳选取带有时间戳的视频数据包进行解码并上屏输出显示。
在一些优选的实施方式中,所述系统还包括相位调整模块;
所述相位调整模块,配置为当喊号节点与跟随节点之间的相位差大于预设的阈值时,通过所述服务器发出控制命令,控制喊号节点提前或滞后发出多屏显卡时间戳同步包。
本发明的第三方面,提出了一种电子设备,其特征在于,包括:至少一个处理器;以及与至少一个所述处理器通信连接的存储器;其中,所述存储器存储有可被所述处理器执行的指令,所述指令用于被所述处理器执行以实现上述的多屏显卡输出的分布式网络上屏同步方法。
本发明的第四方面,提出了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于被所述计算机执行以实现上述的多屏显卡输出的分布式网络上屏同步方法。
本发明的有益效果:
本发明多屏显卡输出的分布式网络上屏同步方法在现有的系统架构上实现多屏显卡输出的视频通过分布式网络上屏同步的技术效果,不用额外增加其他成本,避免了现有的上屏方法容易引起的画面不同步的问题,提升了视频传输质量及多屏显示质量,实现上屏后每帧视频都快速同步。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是本发明实施例的多屏显卡输出的分布式网络上屏同步方法的流程示意图;
图2是本发明实施例的多屏显卡输出的分布式网络上屏同步系统的具体装置示意图;
图3是本发明实施例中的多个编码节点视频输入的场同步相位关系图;
图4是本发明实施例中抽象的全网同步时间戳和多屏显卡同步的时间戳连接图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
本发明的一种多屏显卡输出的分布式网络上屏同步方法,包括步骤S100-步骤S700;
步骤S100,将与相同多屏显卡拼接大屏的编码设备编为一组,并设定组号和节点号;
步骤S200,将所有组号相同的编码设备加入同一个以太网组播;
步骤S300,通过竞争的方式选择1个编码设备设置为喊号节点,其余为跟随节点;
步骤S400,多屏显卡PC主机将视频信息包输入编码设备并将输入到编码设备的时间戳添加进信息包,获得带有时间戳的视频数据包;
步骤S500,喊号节点向跟随节点发送多屏显卡时间戳同步包;其中,所述多屏显卡时间戳同步包的内容包括下一帧的时间戳、喊号节点的组号和节点号;喊号节点在传输第s帧视频帧的中间时刻,发送第s+1帧视频对应的多屏显卡时间戳同步包;
步骤S600,当所述跟随节点收到同组的喊号节点发送第s+1帧多屏显卡时间戳同步包时,将第s+1帧对应的带有时间戳的视频数据包中的时间戳替换为多屏显卡时间戳同步包中的时间戳;
步骤S700,解码设备根据时间戳选取带有时间戳的视频数据包进行解码并上屏输出显示。
为了更清晰地对本发明多屏显卡输出的分布式网络上屏同步方法进行说明,下面结合图1对本发明实施例中各步骤展开详述。
本发明第一实施例的多屏显卡输出的分布式网络上屏同步方法,包括步骤S100-步骤S700,各步骤详细描述如下:
本方法可直接运用在现有的系统架构上,如图2所示,现有的系统架构单个子系统包括多屏显卡PC机、M个编码设备、N个解码设备、N块显示屏、1个以太网交换机和1个服务器。所述多屏显卡PC机的输出口与编码设备的输入口相连,用于视频输入。所述编码设备的输出口与交换机的输入口相连,所述交换机的输出口与解码设备相连,解码设备与显示器相连。服务器与交换机相连,用于传输视频传输的控制指令。
步骤S100,将与相同多屏显卡拼接大屏的编码设备编为一组,并设定组号和节点号;
所述编码设备每一个输入的图像都是不同的,同一个组内所有的编码设备输入的视频图像可拼接为一个完整的图像。
具体为,每次系统重启或创建新的多屏显卡拼接大屏应用时,将控制所述拼接大屏的编码设备编为1组,并设定组号和节点号,优选的,本实施例中节点号为1-M。
步骤S200,将所有组号相同的编码设备加入同一个以太网组播;在本实施例中,以太网的组播包括多个多屏显示子系统,本发明通过将编码设备进行编组的方式避免了多个子系统接入同一个以太网组播进行网络数据交换容易发生错误的问题。
步骤S300,通过竞争的方式选择1个编码设备设置为喊号节点,其余为跟随节点;本实施例中,即步骤S310-步骤S330的过程。
在本实施例中,所述步骤S300包括:
步骤S310,令所有编码设备节点向外以组播的方式发送带有时间戳的网络包;
步骤S320,若编码设备节点收到与自身组号相同但节点号比自身节点号小的网络包时,停止向外发送带有时间戳的网络包;
步骤S330,重复步骤S310-步骤S320的方法,最终还在向外发送带有时间戳的网络包的编码设备设置为喊号节点。
步骤S400,多屏显卡PC主机将视频信息包输入编码设备并将输入到编码设备的时间戳添加进信息包,获得带有时间戳的视频数据包;
步骤S500,喊号节点向跟随节点发送多屏显卡时间戳同步包;其中,所述多屏显卡时间戳同步包的内容包括喊号节点的下一帧的时间戳、喊号节点的组号和节点号;喊号节点在传输第s帧视频帧的中间时刻,发送第s+1帧视频对应的多屏显卡时间戳同步包;现有的技术方案中,通常是在每个视频帧开始的时刻发送带有时间戳的网络包,在具体的应用环境中,可能仍有编码设备处于s-1帧视频末尾,而仍处于s-1帧视频末尾的编码设备收到带有时间戳的网络包后就会在s帧中间使用,容易造成编码设备相同帧使用了不同的时间戳的错误,通过本发明的在s帧视频的中间时刻发送带有时间戳的网络包有效避免了这种错误。更进一步的,能够有半帧的时间让其他的编码设备收到带有时间戳的网络包,避免在每帧开始时刻发送带有时间戳的网络包出现的使用错误的情况。
步骤S600,当所述跟随节点收到同组的喊号节点发送的第s+1帧对应多屏显卡时间戳同步包时,将第s+1帧对应的带有时间戳的视频数据包中的时间戳替换为多屏显卡时间戳同步包中的时间戳;通过替换时间戳,使得一个组内的所有编码设备发出的给编码设备的视频数据网络包中的时间戳信息都是相同的。
步骤S700,解码设备根据时间戳选取带有时间戳的视频数据包进行解码并上屏输出显示。
在本实施例中,所述方法还包括相位调整的步骤,包括:
当喊号节点与跟随节点之间的相位差大于预设的阈值时,通过所述服务器发出控制命令,控制喊号节点提前或滞后发出多屏显卡时间戳同步包。多个编码节点视频输入的场同步相位关系如图3所示,在图3中,每一个VSYNC表示每一个编码设备的视频输入,VSYNC的上升沿代表一个视频帧的开始,上升沿所处位置不同表示视频帧到编码设备的时间不同,输出的上屏的时候解码设备挑选的视频帧可能会挑选错误的帧显示,造成多屏显卡输出的视频通过分布式网络上屏后不同步的效果。喊号节点在中间虚线的时刻向跟随节点发送出下一个视频帧所要使用的时间戳,在下一个视频帧的时候喊号节点和跟随节点都使用此时间戳,就不会存在编码设备向解码设备发送的视频数据的网络包中的时间戳信息不同的情况了。假如由于多屏显卡输出的视频在传输的过程中由于延迟不同造成到达编码设备时视频帧之间的相位增大以至于在每帧中间时刻发送不能满足要求,例如VSYNCm第一个上升沿在中间虚线之后才到来,那么中间虚线时候喊号节点向跟随节点喊号就满足不了,这是可以通过服务器下发控制命令滞后发送的时刻(中间虚线向后移动)来达到同步的效果。
在本实施例中,所述方法还包括分辨率异常处理的步骤,包括:
当所述喊号节点输入的视频信息包的分辨率参数与同组内其他节点输入的视频信息包的分辨率参数不同时,所述喊号节点停止发送信息,并通过如步骤S310-步骤S330的方法选取新的喊号节点。
在本实施例中,所述方法还包括时序异常处理的步骤,包括:
当所述喊号节点输入的视频信息包没有时序时,所述喊号节点停止发出多屏显卡时间戳同步包,直至输入的视频信息包恢复时序。
在本实施例中,所述方法还包括无时间戳时备选的步骤,包括:
当所述跟随节点在需要替换时间戳且未收到喊号节点的带有时间戳的网络包时,所述跟随节点使用全网时间同步的时间戳,若连续5帧仍未收到喊号节点发送的时间戳,则通过如步骤S310-步骤S330的方法选取新的喊号节点。全网同步时间戳和多屏显卡同步的时间戳连接如图4所示。
本发明第二实施例的多屏显卡输出的分布式网络上屏同步系统,包括编组模块、以太组网模块、喊号节点设置模块、信息输入模块、时间戳喊号模块、时间戳调整模块和上屏输出模块;
所述编组模块,配置为将与相同多屏显卡拼接大屏的编码设备编为一组,并设定组号和节点号;
所述以太组网模块,配置为将所有组号相同的编码设备加入同一个以太网组播;
所述喊号节点设置模块,配置为将通过竞争的方式选择1个编码设备设置为喊号节点,其余为跟随节点;
所述信息输入模块,配置为多屏显卡PC主机将视频信息包输入编码设备并将输入到编码设备的时间戳添加进信息包,获得带有时间戳的视频数据包;
所述时间戳喊号模块,配置为喊号节点向跟随节点发送多屏显卡时间戳同步包;其中,所述多屏显卡时间戳同步包的内容包括下一帧的时间戳、喊号节点的组号和节点号;喊号节点在传输第s帧视频帧的中间时刻,发送第s+1帧视频对应的多屏显卡时间戳同步包;
所述时间戳调整模块,配置为当所述跟随节点收到同组的喊号节点发送第s+1帧带时间戳的网络包时,将第s+1帧对应的带有时间戳的视频数据包中的时间戳替换为多屏显卡时间戳同步包中的时间戳;
所述上屏输出模块,配置为解码设备根据时间戳选取带有时间戳的视频数据包进行解码并上屏输出显示。
在本实施例中,所述系统还包括相位调整模块;
所述相位调整模块,配置为当喊号节点与跟随节点之间的相位差大于预设的阈值时,通过所述服务器发出控制命令,控制喊号节点提前或滞后发出多屏显卡时间戳同步包。
所属技术领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统的具体工作过程及有关说明,可以参考前述方法实施例中的对应过程,在此不再赘述。
需要说明的是,上述实施例提供的多屏显卡输出的分布式网络上屏同步系统,仅以上述各功能模块的划分进行举例说明,在实际应用中,可以根据需要而将上述功能分配由不同的功能模块来完成,即将本发明实施例中的模块或者步骤再分解或者组合,例如,上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块,以完成以上描述的全部或者部分功能。对于本发明实施例中涉及的模块、步骤的名称,仅仅是为了区分各个模块或者步骤,不视为对本发明的不当限定。
本发明第三实施例的一种电子设备,其特征在于,包括:至少一个处理器;以及与至少一个所述处理器通信连接的存储器;其中,所述存储器存储有可被所述处理器执行的指令,所述指令用于被所述处理器执行以实现上述的多屏显卡输出的分布式网络上屏同步方法
本发明第四实施例的一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于被所述计算机执行以实现上述的多屏显卡输出的分布式网络上屏同步方法。
所属技术领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的存储装置、处理装置的具体工作过程及有关说明,可以参考前述方法实施例中的对应过程,在此不再赘述。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
术语“第一”、 “第二”等是用于区别类似的对象,而不是用于描述或表示特定的顺序或先后次序。
术语“包括”或者任何其它类似用语旨在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备/装置不仅包括那些要素,而且还包括没有明确列出的其它要素,或者还包括这些过程、方法、物品或者设备/装置所固有的要素。
至此,已经结合附图所示的优选实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征做出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。
- 多屏显卡输出的分布式网络上屏同步方法、系统及设备
- 多屏显卡输出的分布式网络上屏同步方法、系统及设备