一种嵌入式音视频监控系统的进程间通信方法及系统与流程

文档序号:17669949发布日期:2019-05-15 22:59阅读:368来源:国知局
一种嵌入式音视频监控系统的进程间通信方法及系统与流程

本发明涉及安防技术领域,特别涉及一种嵌入式音视频监控系统的进程间通信方法及系统。



背景技术:

随着公共安全意识的提升,视频监控行业得到了迅速的发展,视频监控行业历经了几代发展之后,进入了网络传输时代。在网络传输时代,前端设备的实现方案大多都是高可靠性和低成本兼顾的嵌入式方案。同时,随着嵌入式cpu的发展,其性能越来越强,视频监控前端设备的功能不仅局限于音视频的编码、存储和传输,而是结合互联网,产生了多样化的应用,因此,嵌入式应用软件的规模越来越大,嵌入式前端的产品也趋于多样化。

为了方便实现各个功能模块之间的数据和状态交换,一般情况下都倾向于在一个系统进程中完成所有需求的功能,这种做法的有点是效率高且占用的资源少,非常适合嵌入式处理器性能低、资源存储不足的情况。

但是这种做法会导致单个进程的代码过于庞大,带来后期维护性差、新功能添加不方便以及系统较难稳定等一系列问题。因此,还有一种常见的方法是分成多个进程来实现各个功能模块,但由于嵌入式处理器性能低、内存和存储资源有限,这种做会带来进程间的通信效率低、实时性不够等问题。



技术实现要素:

本发明的目的在于提供一种嵌入式音视频监控系统的进程间通信方法,以提供多进程间的通信效率。

为实现以上目的,本发明采用一种嵌入式音视频监控系统的进程间通信方法,包括:

获取系统中各进程间的通信信息,对获取的通信信息进行分类,通信信息的分类结果包括多媒体数据和信令数据;

在获取的进程间通信信息为多媒体数据类型时,根据系统中各进程的功能,对各进程进行分类,该分类结果包括数据源程序、数据中心程序和数据消费程序;

利用数据源程序接收外部的多媒体数据请求指令,并将多媒体数据请求指令发送至数据中心程序,其中该多媒体数据请求指令携带请求的音视频数据信息;

数据中心程序将共享内存中存储的相应音视频数据分享至数据消费程序。

优选地,在所述利用数据源程序接收外部的多媒体数据请求指令,并将多媒体数据请求指令发送至数据中心程序之后,还包括:

所述数据中心程序判断所述多媒体数据请求的音视频数据是否已有所述数据消费程序申请过;

若是,则直接将共享内存中存储的相应音视频数据分享至所述数据消费程序;

若否,则所述数据中心程序向所述数据源程序发起申请指令,该申请指令携带所述多媒体数据请求的音视频数据信息;

所述数据源程序根据接收到的申请指令,将所述多媒体数据请求指令请求的音视频数据分配至共享内存中;

所述数据中心程序将共享内存中的相应音视频数据分享至所述数据消费程序。

优选地,在所述进程间通信信息的类型为信令数据时,采用星形结构进行各个进程之间的信令数据交互。

优选地,所述采用星形结构进行各进程之间的信令数据交互,包括:

根据系统中各进程的功能,对各进程进行分类,该分类结果包括信令中心程序和功能程序;

利用信令中心程序接收外部的请求信令,并通过查询信令路由表确定该请求信令的传输路径;

按确定的传输路径将请求信令传输至相应的功能程序;

功能程序接收到请求信令后,将该请求信令的响应原路返回至信令中心程序;

信令中心程序将该请求信令的相应发送至外部请求的发起者。

优选地,所述功能程序和信令中心程序之间通过tcp通道进行双向通信。

另一方面,采用一种嵌入式音视频监控系统的进程间通信系统,包括第一分类模块和第一通信交互模块,其中:

第一分类模块用于获取系统中各进程间的通信信息,对获取的通信信息进行分类,通信信息的分类结果包括多媒体数据和信令数据;

第一通信交互模块用于根据系统中各进程的功能,对各进程进行分类,该分类结果包括数据源程序、数据中心程序和数据消费程序;

利用数据源程序接收外部的多媒体数据请求指令,并将多媒体数据请求指令发送至数据中心程序以使数据中心程序将共享内存中存储的相应音视频数据分享至数据消费程序,其中该多媒体数据请求指令携带请求的音视频数据信息。

优选地,还包括第二通信交互模块,用于在所述进程间通信信息的类型为信令数据时,采用星形结构进行各个进程之间的信令数据交互。

与现有技术相比,本发明存在以下技术效果:本发明通过对音视频监控系统中各进程之间的通信信息分为多媒体数据和信令数据。针对多媒体数据采用一个数据中心程序进行集中交互管理,并利用共享内存来完成多媒体数据的高效分发。针对信令数据,采用一个信令中心程序进行集中交互管理,由信令中心程序完成各个进城之间的通信指令数据的转发。从而有效的提高了各个进程之间通信的效率,同时也解决了各个进程间通信的即时性的问题。

附图说明

下面结合附图,对本发明的具体实施方式进行详细描述:

图1是一种嵌入式音视频监控系统的进程间通信方法的流程示意图;

图2是多媒体数据交互时进程的功能划分示意图;

图3是多媒体数据交互的流程示意图;

图4是信令数据交互时进程的功能划分示意图;

图5是信令数据交互的流程示意图;

图6是嵌入式音视频监控系统的进程间通信系统的结构示意图。

具体实施方式

为了更进一步说明本发明的特征,请参阅以下有关本发明的详细说明与附图。所附图仅供参考与说明之用,并非用来对本发明的保护范围加以限制。

如图1所示,本实施例公开了一种嵌入式音视频监控系统的进程间通信方法,包括如下步骤s1至s4:

s1、获取系统中各进程间的通信信息,对获取的通信信息进行分类,通信信息的分类结果包括多媒体数据和信令数据;

s2、在获取的进程间通信信息为多媒体数据类型时,根据系统中各进程的功能,对各进程进行分类,该分类结果包括数据源程序、数据中心程序和数据消费程序;

s3、利用数据源程序接收外部的多媒体数据请求指令,并将多媒体数据请求指令发送至数据中心程序,其中该多媒体数据请求指令携带请求的音视频数据信息;

s4、数据中心程序将共享内存中存储的相应音视频数据分享至数据消费程序。

需要说明的是,本实施例中的多媒体数据主要是音视频数据,信令数据主要是各种配置的获取及设置的控制命令,以及其它的一些交互控制命令。在获取各进程间的通信信息后,根据数据的特性比如数据量的大小和通信的频次等进行分类。

在实际应用中,考虑到多媒体数据具有数据量大、交互频繁等特点,本方案采用如图2所示的结构来完成各个进程间多媒体数据的交互,本实施例中根据进程的功能不同对各进程进行分类,分成了数据源程序、数据中心程序以及数据消费程序三种角色,这三种角色实际上述媒体数据处理流程中的三个环节,并在各个进程之间通过共享内存来实现多媒体数据的高效交互。

优选地,如图3所示,在所述利用数据源程序接收外部的多媒体数据请求指令,并将多媒体数据请求指令发送至数据中心程序之后,还包括如下步骤:

a)数据中心程序判断所述多媒体数据请求的音视频数据是否已有所述数据消费程序申请过,若是则执行步骤d),若否则执行步骤b);

b)数据中心程序向数据源程序发起申请指令,该申请指令携带所述多媒体数据请求的音视频数据信息;

c)数据源程序根据接收到的申请指令,将多媒体数据请求指令请求的音视频数据分配至共享内存中;

d)由于通过共享内存是操作系统中进程间最高效的交互方式,本实施例通过数据中心程序将共享内存中的相应音视频数据分享至数据消费程序。

优选地,数据消费程序读取到多媒体数据后,根据用户的需求度多媒体数据进行处理,比如将视频数据发送给申请查看监控视频的用户。

优选地。如图4所示,在进程间通信信息的类型为信令数据时,采用星形结构进行各个进程之间的信令数据交互。

如图5所示,采用星形结构进行各进程之间的信令数据交互,包括:

根据星形机构的位置,对各进程进行分类,该分类结果包括信令中心程序和功能程序,其中,功能程序和信令中心程序之间通过tcp通道进行双向通信;

利用命令中心程序接收外部的请求信令,并通过查询信令路由表确定该请求信令的传输路径;

按确定的传输路径,通过信令中心程序将请求信令传输至相应的功能程序;

功能程序接收到请求信令后,将该请求信令的响应原路返回至命令中心程序;

信令中心程序将该请求信令的相应发送至外部请求的发起者。

需要说明的是,命令中心程序的作用是对所有外界的信令进行接收和发送,其具体的实现与视频监控系统对外的通信协议相关,通信协议一般可选用个onvif协议、tcp/ip协议等。

如图6所示,本实施例公开了一种嵌入式音视频监控系统的进程间通信系统,包括第一分类模块10和第一通信交互模块20,其中:

第一分类模块10用于获取系统中各进程间的通信信息,对获取的通信信息进行分类,通信信息的分类结果包括多媒体数据和信令数据;

第一通信交互模块20用于根据系统中各进程的功能,对各进程进行分类,该分类结果包括数据源程序、数据中心程序和数据消费程序;

利用数据源程序接收外部的多媒体数据请求指令,并将多媒体数据请求指令发送至数据中心程序以使数据中心程序将共享内存中存储的相应音视频数据分享至数据消费程序,其中该多媒体数据请求指令携带请求的音视频数据信息。

优选地,还包括第二通信交互模块30,用于在所述进程间通信信息的类型为信令数据时,采用星形结构进行各个进程之间的信令数据交互。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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