一种电视墙的图像显示方法转让专利

申请号 : CN201010580751.7

文献号 : CN102098544B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陈百利董平张占华谢斌林大镰

申请人 : 南京中兴力维软件有限公司

摘要 :

本发明公开了一种电视墙的图像显示方法,包括:主机的应用程序在内存中创建一个显示容器1,在显示容器1内部创建N个可视化的视频播放模块,并将显示容器1和视频播放模块集中显示于其中一个显示器上;在接收到多路视频数据时,对于所接收到的每路视频数据,主机的应用程序调用对应的视频播放模块对当前的视频数据进行解码还原后得到RGB格式的图像信息,之后将该图像输出至视频播放模块内部显示;在启动电视墙布局调整时,主机的应用程序将每个视频播放模块移动至对应的目标显示器。采用本发明,增强了主机的应用程序对电视墙显示设备的兼容性和通用性;同时,提高了软件解码和显示的效率,主机具有更强的视频解码能力和播放显示能力。

权利要求 :

1.一种电视墙的图像显示方法,应用于电视墙图像输出系统,该电视墙图像输出系统包括由N个显示器组成的电视墙显示设备和通过显卡与电视墙显示设备连接的主机,其特征在于,所述方法包括:所述主机的应用程序在内存中创建一个显示容器1,在该显示容器1内部创建N个包含可视化子模块的视频播放模块,并将该显示容器1和视频播放模块集中显示于其中一个显示器上;

在所述主机接收到多路视频数据时,对于所接收到的每路视频数据,主机的应用程序调用对应的视频播放模块对当前的视频数据进行解码还原后得到RGB格式的图像信息,之后将该图像信息输出至视频播放模块内部显示;

在用户启动电视墙布局调整时,主机的应用程序将每个视频播放模块移动至对应的目标显示器上;

所述电视墙布局调整的过程进一步包括:

设置所述显示容器1的最大尺寸、实际尺寸和位置:在所述N个显示器组成横向的扩展桌面时,设置显示容器1的最大尺寸和实际尺寸的宽度分量大于或者等于单个显示器的分辨率的宽度分量的N倍、其高度分量等于单个显示器的分辨率的高度分量;在所述N个显示器组成纵向的扩展桌面时,设置显示容器1的最大尺寸和实际尺寸的宽度分量等于单个显示器的分辨率的宽度分量、其高度分量大于或者等于单个显示器的分辨率的高度分量的N倍;同时,设置显示容器1的左上角起始位置坐标为(0,0);

设置所述显示容器1内部的N个视频播放模块的尺寸和位置:对于每个视频播放模块,设置其宽度分量等于单个显示器的分辨率的宽度分量、其高度分量等于单个显示器的分辨率的高度分量;将其左上角的起始位置坐标设为对应的目标显示器所在扩展桌面区域的左上角位置坐标;

当电视墙播放命令结束时,应用程序将显示容器1及N个视频播放模块的尺寸和位置还原。

2.如权利要求1所述的电视墙的图像显示方法,其特征在于,所述将解码还原后得到的图像信息输出至对应的视频播放模块内部显示的步骤进一步包括:主机的应用程序获取对应的视频播放模块的可视化子模块句柄;

主机的应用程序在内存创建内存位图对象和内存绘图设备,利用内存绘图设备将所述图像信息存储于所述内存位图对象中,之后将该内存位图对象复制输出至所述对应的视频播放模块的可视化子模块句柄所指示的屏幕绘图区域。

3.如权利要求1所述的电视墙的图像显示方法,其特征在于,所述N个显示器具有相同的分辨率,且组成横向或者纵向的扩展桌面;所述显示容器1及N个视频播放模块集中显示于组成该扩展桌面的第一个显示器上。

4.如权利要求1所述的电视墙的图像显示方法,其特征在于,所述显示器的接口为VGA接口、HDMI接口或者DVI接口。

5.一种电视墙的图像显示方法,应用于电视墙图像输出系统,该电视墙图像输出系统包括由N个显示器组成的电视墙显示设备和通过显卡与电视墙显示设备连接的主机,其特征在于,所述方法包括步骤:所述主机的应用程序在内存中创建N个显示容器2,且在每个显示容器2中创建一个包含有可视化子模块的视频播放模块,之后将每个显示容器2输出至对应的显示器上,在每个显示容器2中创建一个包含有可视化子模块的视频播放模块时,将该视频播放模块填满其所在的显示容器2;

在所述主机接收到多路视频数据时,对于所接收到的每路视频数据,主机的应用程序调用对应的视频播放模块对当前的视频数据进行解码还原后得到RGB格式的图像信息,之后将该图像信息输出至视频播放模块内部显示;

将每个显示容器2输出至对应的显示器上的过程进一步包括:

在输出时设置每个显示容器2的尺寸和位置:对于每个显示容器2,设置其宽度分量等于单个显示器的分辨率的宽度分量、其高度分量等于单个显示器的分辨率的高度分量,同时设置视频播放模块的宽度分量、高度分量与显示容器2的相同;将每个显示容器2的左上角的起始位置坐标设置为对应的目标显示器所在扩展桌面区域的左上角位置坐标。

说明书 :

一种电视墙的图像显示方法

技术领域

[0001] 本发明属于网络视频技术领域,尤其涉及一种电视墙的图像显示方法。

背景技术

[0002] 目前,很多视频监控项目都采用电视墙做为显示设备,使用电视墙进行监控有直观、方便的特点,便于监控人员实时发现被监控目标的异常状况。申请号为200810180493.6的中国专利公开了一种“电视墙图像输出系统及方法”,如图1所示,其中的电视墙图像输出方法包括:101、 前端单元对采集到的视频信号进行编码并传送到电视墙服务器;102、电视墙服务器调用对应的解码库对所接收到的视频流进行软件编码和还原;103、将解码还原后的视频信号转换为与电视墙显示设备的接口对应的视频信号,然后输出到电视墙显示设备上进行显示。该方法中,软件解码是针对硬件解码而言的,就是采用软件借助CPU的计算能力的方式将经压缩的视频流解析成裸码流以便进行最后的显示,而硬件解码是采用DSP的处理能力进行解码;视频流仅仅为视频信息变换处理、传送过程的一个形态,还原是指将视频流恢复成原始的图像信号。
[0003] 上述方法存在以下缺陷:该方法通过软件实现了信号解码和转换的过程,但是由于需要对解码、还原后的视频信号需要再次进行转换以便与电视墙显示设备接口相匹配,而且这种转换通过操作显示设备完成,与设备配置参数(如显示模式、分辨率、像素深度等参数)紧密相关,这样不仅会导致整个系统对硬件兼容性差,而且实际的图像输出性能受到电视墙显示设备的硬件处理能力的制约。

发明内容

[0004] 本发明的目的在于提供一种电视墙的图像显示方法,解决由视频信号需要多次转换导致的硬件兼容性差和图像输出效率低的问题。
[0005] 本发明实施例是这样实现的:一种电视墙的图像显示方法,应用于电视墙图像输出系统,该电视墙图像输出系统包括由 N 个显示器组成的电视墙显示设备和通过显卡与电视墙显示设备连接的主机,所述方法包括:
[0006] 所述主机的应用程序在内存中创建一个显示容器1,在该显示容器1内部创建N个包含有可视化子模块的视频播放模块,并将该显示容器1和视频播放模块集中显示于其中一个显示器上;
[0007] 在所述主机接收到多路视频数据时,对于所接收到的每路视频数据,主机的应用程序调用对应的视频播放模块对当前的视频数据进行解码还原后得到RGB格式的图像信息,之后将该图像信息输出至视频播放模块内部显示;
[0008] 在用户启动电视墙布局调整时,主机的应用程序将每个视频播放模块移动至对应的目标显示器上。
[0009] 其中,所述将解码还原后得到的图像信息输出至对应的视频播放模块内部显示的步骤进一步包括:
[0010] 主机的应用程序获取对应的视频播放模块的可视化子模块句柄;
[0011] 主机的应用程序在内存创建内存位图对象和内存绘图设备,利用内存绘图设备将所述图像信息存储于所述内存位图对象中,之后将该内存位图对象复制输出至所述对应的视频播放模块的可视化子模块句柄所指示的屏幕绘图区域。
[0012] 其中,所述N个显示器具有相同的分辨率,且组成横向或者纵向的扩展桌面;所述显示容器1和视频播放模块集中显示于组成该扩展桌面的第一个显示器上。
[0013] 其中,所述电视墙布局调整的过程进一步包括:
[0014] 设置所述显示容器1的最大尺寸、实际尺寸和位置:在所述N个显示器组成横向的扩展桌面时,设置显示容器1的最大尺寸和实际尺寸的宽度分量大于或者等于单个显示器的分辨率的宽度分量的N倍、其高度分量等于单个显示器的分辨率的高度分量;在所述N个显示器组成纵向的扩展桌面时,设置显示容器1的最大尺寸和实际尺寸的宽度分量等于单个显示器的分辨率的宽度分量、其高度分量大于或者等于单个显示器的分辨率的高度分量的N倍;同时,设置显示容器1的左上角起始位置坐标为(0,0);
[0015] 设置所述显示容器1内部的N个视频播放模块的尺寸和位置:对于每个视频播放模块,设置其宽度分量等于单个显示器的分辨率的宽度分量、其高度分量等于单个显示器的分辨率的高度分量;将其左上角的起始位置坐标设为对应的目标显示器所在扩展桌面区域的左上角位置坐标。
[0016] 其中,还包括:当电视墙播放命令结束时,应用程序将显示容器1及N个视频播放模块的尺寸和位置还原。
[0017] 其中,所述显示器的接口为VGA接口、HDMI接口或者DVI接口。
[0018] 一种电视墙的图像显示方法,应用于电视墙图像输出系统,该电视墙图像输出系统包括由N个显示器组成的电视墙显示设备和通过显卡与电视墙显示设备连接的主机,所述方法包括步骤:
[0019] 所述主机的应用程序在内存中创建N个显示容器2,且每个显示容器2中创建一个包含可视化子模块的视频播放模块,之后将每个显示容器2输出至对应的显示器上;
[0020] 在所述主机接收到多路视频数据时,对于所接收到的每路视频数据,主机的应用程序调用对应的视频播放模块对当前的视频数据进行解码还原后得到RGB格式的图像信息,之后将该图像信息输出至视频播放模块内部显示。
[0021] 其中,所述将每个显示容器2输出至对应的显示器上的过程进一步包括:
[0022] 在输出时设置每个显示容器2的尺寸和位置:对于每个显示容器2,设置其宽度分量等于单个显示器的分辨率的宽度分量、其高度分量等于单个显示器的分辨率的高度分量,同时设置视频播放模块的宽度分量、高度分量与显示容器2的相同;将每个显示容器2的左上角的起始位置坐标设置为对应的目标显示器所在扩展桌面区域的左上角位置坐标。
[0023] 其中,所述方法中,在每个显示容器2中创建一个包含有可视化子模块的视频播放模块时,将该视频播放模块填满其所在的显示容器2。
[0024] 本发明实施例与现有技术相比,有益效果在于:
[0025] 本发明中通过向可视化的视频播放模块直接输出图像的方式实现电视墙的图像显示,只需向位于各个显示器上的视频播放模块的屏幕绘图设备输出图像各个点的像素信息,不需要访问电视墙显示设备的硬件操作方法和硬件配置信息,就可以不管显示设备的物理配置,从而增强了对电视墙显示设备的兼容性和通用性;同时,由于中间省去了接口的匹配和信号的转换过程,提高了软件解码和显示的效率,在同样的CPU、内存和显卡配置的情况下采用本发明会使得主机有更强的视频解码和播放能力。

附图说明

[0026] 图1是现有的电视墙的图像输出方法流程图。
[0027] 图2是本发明实施例中电视墙图像输出系统中主机一侧的结构示意图。
[0028] 图3是本发明实施例一中电视墙的图像显示方法流程图。
[0029] 图4是本发明实施例三中电视墙的图像显示方法流程图。

具体实施方式

[0030] 本发明的核心思想为:主机在对视频流进行解码后直接使用可视化的视频播放模块显示并随着Windows界面输出到显示器中,无需任何的信号转换处理,从而提高软件解码和图像显示的效率,并大大提高电视墙应用程序对电视墙显示设备的兼容性。
[0031] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0032] 如图2所示,下述实施例中涉及到的电视墙图像输出系统包括主机和由 N 个监视器组成的电视墙显示设备,主机与电视墙显示设备通过显卡连接。
[0033] 所有的监视器具有相同的分辨率并组成横向或者纵向的扩展桌面,通过显卡与主机连接,也可称为显示器,按图像输出原理可包括CRT显示器、液晶显示器等类型,其接口可为VGA、HDMI或者DVI等类型接口,其中VGA接口是目前主流的显卡接口类型。
[0034] 在具体实现时,主机的应用程序(以后简称为主程序)定义一个顶级的显示容器(一般是窗体),记为显示容器1,再在该显示容器1内创建N个可视化的视频播放模块。视频播放模块采用Windows COM控件或者ActiveX控件的形式,其主要属性包括播放内容、播放状态、录像状态、声音状态、码流、码率等,其主要方法包括开始播放、停止播放、抓图、录像、声音、云台控制等以及与软件解码和播放显示相关的方法;常规的视频播放模块下方会包含一个状态栏,上面显示一些有用的播放信息,如所播放的摄像头、播放状态、录像状态、码率、声音,以及播放控制按钮等。
[0035] 其工作过程为:主程序实时检测是否经压缩的视频流到来,可以使用主程序所在的线程本身来检测、也可是使用其他一个单独的线程来检测,如果使用单独的线程来检测视频流,则在视频流到来时该线程需要使用诸如信号量、消息邮箱等机制通知视频播放模块去执行后续的处理过程;在检测到视频流到来时,主程序先调用对应通道的视频播放模块将该视频流解码还原成RGB格式的图像,之后将该图像信息输出至视频播放模块内部显示。
[0036] 实施例一。
[0037] 如图3所示,本实施例中电视墙的图像输出方法具体包括以下步骤。
[0038] 301、在初始启动时刻,主程序在内存中创建一个顶级的显示容器,记为显示容器1,再在该显示容器1内部创建N个可视化的视频播放模块,并将该显示容器1和N个视频播放模块集中显示于第一个显示器上。
[0039] 302、主程序实时检测是否有经压缩的视频流到来,若检测到有视频流,则执行下一步。
[0040] 该检测过程中,可以使用主程序所在的线程本身来检测、也可是使用另一个线程来单独实现检测,如果使用另一个线程来单独检测视频流,则在视频流到来时该线程需要使用诸如信号量、消息邮箱等机制通知视频播放模块去执行后续的处理过程。
[0041] 303、在接收到视频流时,主程序调用对应通道的视频播放模块,由该视频播放模块根据当前的视频流的编码格式调用相应的解码库,将视频流解码还原得到RGB格式的图像信息。
[0042] 其中,解码库是一系列程序组件的集合,其中的各个程序组件即解码组件,由编码器的生产厂家提供,一般需要注册;不同编码器厂家的视频编码格式不同,有MPEG-2、MPEG-4、H.264、H.263、AVS等,因此主程序需要取出一帧压缩过的视频数据的头信息中标记编码格式的数据片段,并根据此编码格式到注册表中寻找对应的解码组件,执行该组件中所需的接口和方法,最终得到一帧RGB格式的图像信息;视频播放模块如果需要增加对新的视频编码格式的支持,只需要在主机上注册新的解码组件即可。
[0043] 304、对于各路经解码还原得到的图像信息,主程序调用对应的视频播放模块的播放显示方法,在该视频播放模块内部显示该图像信息。
[0044] 该步骤中主程序可以使用GDI、GDI+以及DirectDraw等上层软件方法完成图像的显示;其中使用GDI方法在视频播放模块内部显示一幅RGB格式的图像的具体方法如下。
[0045] 主程序首先获取要输出图像的视频播放模块的可视化子模块句柄;然后在内存创建内存位图对象和内存绘图设备,并用内存绘图设备把需要显示的那一幅图像信息存储在这个内存位图对象中,最后将内存位图对象复制输出到可视化子模块句柄所指示的屏幕绘图区域,从而完成图像显示(该过程中,视频播放模块在内部显示RGB格式图像涉及到的可视化子模块,一般是指用以显示图像的控件,可以是视频播放模块本身,也可以是它的某一级子模块或者子控件,本实施例中以后面一种方式为例)。
[0046] 305、在启动电视墙布局调整时,主程序将每个视频播放模块移动至对应的目标显示器中,具体包括步骤如下。
[0047] A1、主程序设置显示容器1的最大尺寸、实际尺寸、位置:若所有显示器组成横向的扩展桌面,则设置显示容器1的最大尺寸和实际尺寸的宽度分量大于或者等于单个显示器的分辨率的宽度分量的N倍、其高度分量等于单个监视器的分辨率的高度分量;若所有显示器组成纵向的扩展桌面,则设置显示容器1的最大尺寸和实际尺寸的宽度分量等于单个监视器的分辨率的宽度分量,其高度分量大于或者等于单个监视器分辨率的高度分量的N倍;同时将显示容器1的左上角起始位置坐标设为(0,0)。
[0048] A2、设置显示容器1内部的N个视频播放模块的尺寸和位置:对于每个视频播放模块,设置其宽度分量等于单个显示器的分辨率的宽度分量、其高度分量等于单个显示器的分辨率的高度分量;将其左上角的起始位置坐标设为对应的目标显示器所在扩展桌面区域的左上角位置坐标。这些视频播放模块是显示容器1的子模块,一般会把它们放置在一个外围的界面模块内,以便在执行界面布局调整的时候只把所需的可视化的视频播放模块局部调整。至此,即实现了将各视频播放模块移动至对应的目标显示器上。
[0049] 306、当退出电视墙播放命令时,主程序把显示容器1和内部的视频播放模块的大小和位置还原,集中显示到第一个显示器,便于用户进行其他操作,如关闭程序等。 [0050] 实施例二。
[0051] 本实施例中,实现原理与实施例一完全相同,区别仅在于:实施例一中在主程序初始化之后先输出图像至各视频播放模块内部显示、后对各视频播放模块的布局进行调整,而本实施例中在主程序初始化之后先对各视频播放模块的布局进行调整、后输出经解码还原的图像信息至各显示器上的视频播放模块内部显示。此处不再赘述相同部分。
[0052] 实施例三。
[0053] 本实施例中,采用了与实施例一和实施例二中的不一样的布局调整方法,受之影响,具体的实现过程也稍有不同,仅能采用先进行布局调整后进行图像显示的方式,如图4所示,具体实现步骤如下。
[0054] 401、在初始启动时刻,主程序在内存中创建一个顶级的显示容器1并显示于任一显示器上,用以提供与用户交互的用户界面。
[0055] 402、主程序在内存中创建N个显示容器(一般用窗体),记为显示容器2,且每个显示容器2包含上述视频播放模块的一个实例,并让该视频播放模块总是正好填满所在的显示容器2,这样不管该显示容器2如何移动和调整大小,此视频播放模块总是位于所在显示容器2的左上角(0,0)位置,且正好填满显示容器2。
[0056] 403、设置每个显示容器2的尺寸和位置,以实现将各个显示容器2移动至对应的目标显示器上:对于每个显示容器2,设置其宽度分量等于单个显示器的分辨率的宽度分量、其高度分量等于单个显示器的分辨率的高度分量,同时设置视频播放模块的宽度分量、高度分量与显示容器2的相同;将每个显示容器2的左上角的起始位置坐标设置为对应的目标显示器所在扩展桌面区域的左上角位置坐标。
[0057] 404、主程序实时检测是否有经压缩的视频流到来,若检测到有视频流,则执行下一步。
[0058] 405、在接收到视频流时,主程序调用对应通道的视频播放模块,由该视频播放模块根据当前的视频流的编码格式调用相应的解码库,将视频流解码还原得到RGB格式的图像信息。
[0059] 406、对于各路经解码还原得到的图像信息,主程序调用对应的视频播放模块的播放显示方法,在该视频播放模块内部显示该图像信息,即可实现在所在显示器上显示图像。
[0060] 综上,本发明实施例中,主程序向可视化的视频播放模块直接输出图像,而不需要访问电视墙显示设备的硬件操作方法和硬件配置信息,就可以不管显示设备的物理配置,主程序只负责向视频播放模块的屏幕绘图设备输出图像各个点的像素信息,从而增强了对电视墙显示设备的兼容性和通用性;同时,由于中间省去了接口的匹配和信号的转换过程,提高了软件解码和显示的效率,在同样的CPU、内存和显卡配置的情况下采用本发明会使得主机有更强的视频解码和播放能力。
[0061] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。