本申请涉及视频领域,具体而言,涉及一种分布式显示同步方法、装置及系统。
背景技术:
分布式显示是将视频数据发送到多个显示设备节点上进行显示,每个节点根据其在集群中所在的位置显示整个图像的一部分,由各个节点拼接完成整个画面的显示。现有技术中,通过预设一显示设备为主解码器,主解码器发送广播包,申请获取各个从解码器的当前待解码帧的接收时间,根据从解码器的反馈结果计算出主解码器需要的延时时间,再将结果发送给从解码节点,从解码节点收到后计算出自己的延时时间。现有技术存中,如果主解码器出现故障,整个系统就无法进行同步。
技术实现要素:
为了克服现有技术中的上述不足,本申请的目的在于提供一种分布式显示同步方法,应用于与多个第二显示设备通信的第一显示设备,所述方法的步骤包括:
获取所述多个第二显示设备当前显示图像的帧编号,所述帧编号表示所述显示图像的显示顺序,其中,所述第一显示设备和所述多个第二显示设备所显示图像的帧编号按照相同的预设规则编排;
计算所述第一显示设备当前帧编号和所述多个第二显示设备当前显示图像的帧编号的平均值,将所述平均值作为校准帧编号;
判断所述第一显示设备当前显示图像的帧编号和所述校准帧编号的大小,如果大于或者等于所述校准帧编号,继续显示当前显示图像;如果小于所述校准帧编号,则显示当前显示图像的下一帧图像。
可选地,所述第一显示设备预存有待显示图像,所述待显示图像携带有时间戳,所述时间戳和所述第一显示设备的系统时间参考相同的时间校对源,所述方法还包括:
获取所述第一显示设备当前系统时间和所述待显示图像的时间戳;
显示所述时间戳小于或者等于所述系统时间的待显示图像。
可选地,所述方法还包括:
间隔预设时间,将所述第一显示设备的当前显示图像的帧编号广播到局域网中,其中,所局域网由所述第一显示设备和所述多个第二显示设备组成;
获取所述多个第二显示设备广播的当前显示图像的帧编号。
可选地,所述帧编号存储于所述显示图像预设位置的像素值中。
可选地,所述帧编号为通过预设第三参数对所述图像的第一帧编号求余获得的第二帧编号。
可选地,所述第一显示设备和视频服务器通信,所述第一显示设备包括解码器和缓冲队列,所述方法还包括:
获取所述视频服务器发送的编码图像;
通过所述解码器解码所述编码图像获得所述显示图像,并将所述编码图像放入所述缓冲队列。
本申请的另一目的在于提供一种分布式显示同步系统,所述分布式显示同步系统包括视频服务器和多个显示设备,所述多个显示设备通过网络从所述视频服务器获取图像数据,其中所述多个显示设备和所述视频服务器的系统时间参考同一时间校对源;
所述视频服务器向所述多个显示设备发送不同的图像数据,所述图像数据中携带有帧编号,期望所述多个显示设备同时显示的图像具有相同的帧编号;
所述显示设备间隔预设时间将当前显示图像的帧编号广播到所述网络中;
所述显示设备通过所述网络获得其他显示设备当前显示图像的帧编号;
所述显示设备计算所述其他显示设备当前显示图像的帧编号和设备当前显示图像帧编号的平均值,将所述平均值作为校准帧编号;
所述显示设备判断当前显示图像的帧编号和所述校准帧编号的大小,如果大于或者等于所述校准帧编号,继续显示当前显示图像;如果小于所述校准帧编号,则显示当前显示图像的下一帧图像。
本申请的另一目的在于提供一种分布式显示同步装置,应用于与多个第二显示设备通信的第一显示设备,所述分布式显示同步装置包括编号获取模块、校准帧模块和调整模块;
所述编号获取模块用于获取所述多个第二显示设备当前显示图像的帧编号,所述帧编号表示所述显示图像的显示顺序,其中,所述第一显示设备和所述多个第二显示设备所显示图像的帧编号按照相同的预设规则编排;
所述校准帧模块用于分别计算计算所述第一显示设备当前帧编号和所述多个第二显示设备当前显示图像的帧编号的平均值,将所述平均值作为校准帧编号;
所述调整模块用于判断所述第一显示设备当前显示图像的帧编号和所述校准帧编号的大小,如果大于或者等于所述校准帧编号,继续显示当前显示图像;如果小于所述校准帧编号,则显示当前显示图像的下一帧图像。
可选地,所述分布式显示同步装置还包括广播模块;
所述广播模块用于间隔预设时间,将所述第一显示设备的当前显示图像的帧编号广播到局域网中,其中,所局域网由所述第一显示设备和所述多个第二显示设备组成;
所述编号获取模块模块还用于获取获取所述多个第二显示设备广播的当前显示图像的帧编号。
可选地,所述第一显示设备和视频服务器通信,所述第一显示设备包括解码器和缓冲队列,所述分布式显示同步装置还包括图像获取模块和解码模块;
所述图像获取模块用于获取所述视频服务器发送的编码图像;
所述解码模块用于通过所述解码器解码所述编码图像获得所述显示图像,并将所述编码图像放入所述缓冲队列。
相对于现有技术而言,本申请具有以下有益效果:
本申请提供的分布式显示同步方法、装置及系统,所述视频服务器发送不同的视频数据给多个显示设备,其中,所述图像数据携带有帧编号,期望所述多个显示设备同时显示的图像具有相同的帧编号。所述显示设备每间隔预设时间向网络中广播当前显示图像的帧编号。所述显示设备获取网络中的帧编号数据,并计算所述网络中的帧编号数据的平均值获得平均帧编号。所述显示设备根据所述平均帧编号调整当前显示的图像。本申请不依赖于单一的控制节点同步多个显示设备的图像,提高整个系统的可用性和稳定性。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的应用场景示意图;
图2为本申请实施例提供的显示设备的硬件结构图;
图3为本申请实施例提供的分布式显示同步方法的步骤流程图;
图4为本申请实施例提供的分布式显示同步装置的结构图。
图标:100-视频服务器;300-网络;200-显示设备;140-通信单元;130-处理器;110-分布式显示同步装置;120-存储器;1101-编号获取模块;1102-校准帧模块;1103-调整模块;1104-广播模块;1105-图像获取模块;1106-解码模块。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本申请的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。
请参照图1,图1是本申请较佳实施例提供的视频服务器100与多个显示设备200通信的应用场景示意图。所述视频服务器100可通过网络300与所述显示设备200进行通信,以实现视频服务器100与显示设备200之间的数据通信或交互。
所述网络300可以是,但不限于,有线网络或无线网络。
所述显示设备200的操作系统可以是,但不限于,安卓(android)系统、ios(iphoneoperatingsystem)系统、windowsphone系统、windows系统等。
请参照图2所示的显示设备200的硬件结构图。所述显示设备200包括分布式显示同步装置110、存储器120、处理器130、通信单元140。
所述存储器120、处理器130以及通信单元140各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。
其中,所述存储器120可以是,但不限于,随机存取存储器(randomaccessmemory,ram),只读存储器(readonlymemory,rom),可编程只读存储器(programmableread-onlymemory,prom),可擦除只读存储器(erasableprogrammableread-onlymemory,eprom),电可擦除只读存储器(electricerasableprogrammableread-onlymemory,eeprom)等。其中,存储器120用于存储程序,所述处理器130在接收到执行指令后,执行所述程序。所述通信单元140用于通过所述网络300建立所述视频服务器100与显示设备200之间的通信连接,并用于通过所述网络300收发数据。
所述处理器130可能是一种集成电路芯片,具有信号的处理能力。上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
请参照图3所示的应用于所述显示设备200的分布式显示同步方法的步骤流程图,以下将对所述方法包括各个步骤进行详细阐述。
步骤s100,获取所述多个第二显示设备当前显示图像的帧编号,所述帧编号表示所述显示图像的显示顺序,其中,所述第一显示设备和所述多个第二显示设备所显示图像的帧编号按照相同的预设规则编排。
值得说明的是,所述第一显示设备200和所述第二显示设备为具有相同功能的显示设备200,为了便于描述,这里将所述显示设备200分为第一显示设备和第二显示设备。
可选地,为了使得所述多个显示节点在相同的时刻,显示图像的帧编号相同,所述显示设备200和所述视频服务器100根据同一个时间源校对系统时间。所述视频服务器100向所述多个显示设备200发送不同的图像数据,所述图像数据中携带有帧编号以及时间戳,所述时间戳基于所述视频服务器100的系统时间。同时,不同的显示设备200所显示的图像的帧编号基于相同的预设规则编排,以期望所述多个显示设备200同时显示的图像具有相同的帧编号。所述显示设备200获取到所述视频服务器100发送的图像数据,通过解码器将所述图像数据解码后放入存储待显示图像的缓存队列中。所述显示设备200获取当前系统时间以及所述待显示时间的时间戳,显示时间戳小于或者等于所述系统时间的待显示图像。
其中,为了进一步的同步多个所述显示设备200显示的图像,所述第一显示设备、多个第二显示设备以及视频服务器100组成一个局域网。
所述显示设备200每隔预设时间向所述局域网中广播当前显示图像的帧编号。所述第一显示设备获取所述局域网中的多个第二显示设备当前显示图像帧编号。所述第一显示设备根据所述多个第二显示设备当前显示图像的帧编号实时调整当前显示图像。
步骤s200,计算所述第一显示设备当前帧编号和所述多个第二显示设备当前显示图像的帧编号的平均值,将所述平均值作为校准帧编号。
本实施例提供的一种具体的实施方式中,所述第一显示设备获得当前显示图像帧编号。所述第一显示设备根据设备自身当前显示图像的帧编号和获取到的第二显示设备当前显示的图像帧编号,计算其平均值,并将所述平均值作为校准帧编号。
本实施例提供的另一种具体的实施方式中,从所述多个显示设备200中选取一个显示设备作为参考显示设备。所述第一显示设备分别计算所述多个第二显示设备当前显示图像的帧编号和参考显示设备的预设帧编号之间的差值,进而获得多个帧编号差值,并计算所述多个帧编号差值的平均值获得平均帧编号差值,其中,所述参考帧编号为所述参考显示设备当前显示图像的帧编号。。
步骤s300,判断所述第一显示设备当前显示图像的帧编号和所述校准帧编号的大小,如果大于或者等于所述校准帧编号,继续显示当前显示图像;如果小于所述校准帧编号,则显示当前显示图像的下一帧图像。
所述第一显示设备将当前显示图像的帧编号和所述校准帧编号比较,如果所述第一显示设备当前显示图像的帧编号大于或者等于所述校准帧编号,继续显示所述第一显示设备当前显示的图像。如果所述第一显示设备当前显示图像的帧编号小于所述校准帧编号,所述第一显示设备则显示当前显示图像的下一帧图像。
值得说明的是,所述第一显示设备和所述第二显示设备,在调整当前显示图像的过程中,没有先后顺序,理论上是各个显示设备200同时进行调整当前显示图像的步骤。
可选地,由于所述显示设备200的解码器模块和显示模块往往是相互独立的,没有其他的信令传输途径,将所述显示图像的帧编号存放于显示图像中的预设位置的像素值中。同时,由于所述帧编号数值较大,所述视频服务器100将所述帧编号对一个预设值求余,将获得的余数存入所述显示图像的预设位置的像素值中,进而减小对原始图像的影响。
可选地,所述显示设备200包括解码器和缓冲队列,为了提高所述显示设备200显示图像的实时性,所述显示设备200从所述视频服务器100获取编码图像,通过所述解码器解码所述编码图像获得显示图像,并将所述显示图像存入缓冲队列中。
本申请的另一目的在于提供一种分布式显示同步系统,所述分布式显示同步系统包括视频服务器100和多个显示设备200,所述多个显示设备200通过网络300从所述视频服务器100获取图像数据,其中所述多个显示设备200和所述视频服务器100的系统时间参考同一时间校对源。所述视频服务器100向所述多个显示设备200发送不同的图像数据,所述图像数据中携带有帧编号,期望所述多个显示设备200同时显示的图像具有相同的帧编号。
所述显示设备200间隔预设时间将当前显示图像的帧编号广播到所述网络300中。所述显示设备200通过所述网络300获得其他显示设备200当前显示图像的帧编号。所述显示设备200计算所述其他显示设备200当前显示图像的帧编号和设备当前显示图像帧编号的平均值,将所述平均值作为校准帧编号。所述显示设备200判断所述第一显示设备200当前显示图像的帧编号和所述校准帧编号的大小,如果大于或者等于所述校准帧编号,继续显示当前显示图像;如果小于所述校准帧编号,则显示当前显示图像的下一帧图像。
请参考图4所示的分布式显示同步装置的结构图,所述分布式显示同步装置110包括至少一个可以软件或固件(firmware)的形式存储于所述存储器120中或固化在所述视频服务器100的操作系统(operatingsystem,os)中的软件功能模块。所述处理器130用于执行所述存储器120中存储的可执行模块,例如所述分布式显示同步装置110所包括的软件功能模块及计算机程序等。
所述分布式显示同步装置包括编号获取模块1101、校准帧模块1102和调整模块1103。
所述编号获取模块1101用于获取所述多个第二显示设备当前显示图像的帧编号,所述帧编号表示所述显示图像的显示顺序,其中,所述第一显示设备和所述多个第二显示设备所显示图像的帧编号按照相同的预设规则编排。
在本实施例中,所述编号获取模块1101用于执行图3中的步骤s100,关于所述编号获取模块1101的详细描述可以参考步骤s100的详细描述。
所述校准帧模块1102用于分别计算计算所述第一显示设备当前帧编号和所述多个第二显示设备当前显示图像的帧编号的平均值,将所述平均值作为校准帧编号。
在本实施例中,所述校准帧模1102用于执行图3中的步骤s200,关于所述校准帧模1102的详细描述可以参考步骤s200的详细描述。
所述调整模块1103用于判断所述第一显示设备当前显示图像的帧编号和所述校准帧编号的大小,如果大于或者等于所述校准帧编号,继续显示当前显示图像;如果小于所述校准帧编号,则显示当前显示图像的下一帧图像在本实施例中,所述调整模块1103用于执行图3中的步骤s300,关于所述调整模块1103的详细描述可以参考步骤s300的详细描述。
可选地,所述分布式显示同步装置110还包括广播模块1104;
所述广播模块1104用于间隔预设时间,将所述第一显示设备的当前显示图像的帧编号广播到局域网中,其中,所局域网由所述第一显示设备和所述多个第二显示设备组成。
所述编号模块还用于获取获取所述多个第二显示设备设备广播的当前显示图像的帧编号。
可选地,所述第一显示设备和视频服务器100通信,所述第一显示设备包括解码器和缓冲队列,所述分布式显示同步装置110还包括图像获取模块1105和解码模块1106;
所述图像获取模块1105用于获取所述视频服务器100发送的编码图像;
所述解码模块1106用于通过所述解码器解码所述编码图像获得所述显示图像,并将所述编码图像放入所述缓冲队列。
综上所述,本申请提供的分布式显示同步方法、装置及系统,所述视频服务器100发送不同的视频数据给多个显示设备200,其中,所述图像数据携带有帧编号,期望所述多个显示设备200同时显示的图像具有相同的帧编号。所述显示设备200每间隔预设时间向网络300中广播当前显示图像的帧编号。所述显示设备200获取网络300中的帧编号数据,并计算所述网络300中的帧编号数据的平均值获得平均帧编号。所述显示设备200根据所述平均帧编号调整当前显示的图像。本申请不依赖于单一的控制节点同步多个显示设备200的图像,提高整个系统的可用性和稳定性。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。