CN116055664A - 一种用于视频处理进程的共享内存方法、装置及存储介质 - Google Patents
一种用于视频处理进程的共享内存方法、装置及存储介质 Download PDFInfo
- Publication number
- CN116055664A CN116055664A CN202310309544.5A CN202310309544A CN116055664A CN 116055664 A CN116055664 A CN 116055664A CN 202310309544 A CN202310309544 A CN 202310309544A CN 116055664 A CN116055664 A CN 116055664A
- Authority
- CN
- China
- Prior art keywords
- shared memory
- video processing
- memory data
- data
- video
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/76—Television signal recording
- H04N5/907—Television signal recording using static stores, e.g. storage tubes or semiconductor memories
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/14—Picture signal circuitry for video frequency region
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种用于视频处理进程的共享内存方法、装置及存储介质,方法包括:确定出每个视频处理进程相对应的共享内存数据块的名称;每个视频处理进程基于相对应的共享内存数据块的名称,确定出相对应的共享内存数据地址;针对于每个视频处理进程,读取共享内存数据地址映射到共享内存数据块提供的视频数据,并在读取过程中对视频数据进行锁定;针对于每个视频处理进程,利用相对应的视频数据进行视频处理过程中,确定出视频处理结果,将视频处理结果发送至共享内存数据地址映射到共享内存数据块对应的数据区域之内。在视频处理进程较多的情况下,共享内存数据通信,通过共享内存的方式减少了视频数据拷贝的次数,提高了数据通信效率。
Description
技术领域
本申请涉及视频处理技术领域,尤其是涉及一种用于视频处理进程的共享内存方法、装置及存储介质。
背景技术
在视频处理领域,为了提供系统的鲁棒性,减少视频数据之前处理过程的耦合性,对于视频的处理算法模块、视频的解码模块、视频任务的分发模块、视频处理过程中数据的统计等不同功能模块,往往都不在同一个进程中实现。都是通过tcp、udp或其他跨进程的通信方式实现对各个模块的数据统计,包括某一路视频解码的图像数量、针对某一路视频做人脸识别的图像结果以及目标识别的结果等。
现阶段,针对不同模块的数据统计方法是针对不同进程分别建立一个tcp连接,通过tcp协议获取到每个进程的数据信息进而做统计,但对数据处理结果延迟要求较高的情况下,该方法并不能快速实现数据信息的统计。尤其是在统计进程不确定何时需要获取其他模块数据信息的情况下,一般都需要先往其他模块所属进程发送数据请求,然后该模块收到数据请求后,读取当前数据状态,然后再发送给统计模块中间延迟时间较长。所以,如何提高视频处理进程的数据通信的效率成为了不容小觑的技术问题。
发明内容
有鉴于此,本申请的目的在于提供一种用于视频处理进程的共享内存方法、装置及存储介质,在视频处理进程较多的情况下,共享内存数据通信,通过共享内存的方式减少了视频数据拷贝的次数,提高了数据通信效率。
本申请实施例提供了一种用于视频处理进程的共享内存方法,所述共享内存方法包括:
获取多个视频处理进程,并确定出每个所述视频处理进程相对应的共享内存数据块的名称;
每个所述视频处理进程基于相对应的所述共享内存数据块的名称,确定出相对应的共享内存数据地址;
针对于每个所述视频处理进程,基于相对应的所述共享内存数据块的获取接口读取所述共享内存数据地址映射到共享内存数据块提供的视频数据,并在读取过程中对所述视频数据进行锁定;
针对于每个所述视频处理进程,根据相对应的所述视频数据进行视频处理,确定出视频处理结果,将所述视频处理结果基于相对应的所述共享内存数据块的接收接口发送至所述共享内存数据地址映射到共享内存数据块对应的数据区域之内。
在一种可能的实施方式中,在所述获取多个视频处理进程,并确定出每个所述视频处理进程相对应的共享内存数据块的名称之前,所述共享内存方法还包括:
统计多个所述视频处理进程的数量,根据所述数量启动与所述数量相对应的多个所述共享内存数据块;
根据配置文件中的每个所述共享内存数据块的名称相对应的所述共享内存数据块的数据接口,完成每个所述共享内存数据块的结构分配与数据初始化。
在一种可能的实施方式中,所述获取多个视频处理进程,并确定出每个所述视频处理进程相对应的共享内存数据块的名称,包括:
对每个所述视频处理进程分配共享内存之后,并将所述共享内存数据块的名称与相对应的所述视频处理进程进行关联,以使确定出每个所述视频处理进程相对应的共享内存数据块的名称。
在一种可能的实施方式中,所述每个所述视频处理进程基于相对应的所述共享内存数据块的名称,确定出相对应的共享内存数据地址,包括:
获取预设的共享内存映射表;
在所述共享内存映射表之中查找出每个所述共享内存数据块的名称相对应的共享内存数据地址。
在一种可能的实施方式中,在所述读取过程中对所述视频数据进行锁定之后,所述共享内存方法还包括:
对所述视频数据读取过程结束后,对所述视频数据进行解锁。
在一种可能的实施方式中,在所述针对于每个所述视频处理进程,根据相对应的所述视频数据进行视频处理,确定出视频处理结果,将所述视频处理结果基于相对应的所述共享内存数据块的接收接口发送至所述共享内存数据地址映射到共享内存数据块对应的数据区域之内之后,所述共享内存方法还包括:
对各个所述视频处理进程的视频处理结果进行统计,将统计后的各个所述视频处理结果进行数据存储。
本申请实施例还提供了一种用于视频处理进程的共享内存装置,其所述共享内存装置包括:
获取模块,用于获取多个视频处理进程,并确定出每个所述视频处理进程相对应的共享内存数据块的名称;
数据地址确定模块,用于每个所述视频处理进程基于相对应的所述共享内存数据块的名称,确定出相对应的共享内存数据地址;
数据读取模块,用于针对于每个所述视频处理进程,基于相对应的所述共享内存数据块的获取接口读取所述共享内存数据地址映射到共享内存数据块提供的视频数据,并在读取过程中对所述视频数据进行锁定;
数据发送模块,用于针对于每个所述视频处理进程,根据相对应的所述视频数据进行视频处理,确定出视频处理结果,将所述视频处理结果基于相对应的所述共享内存数据块的接收接口发送至所述共享内存数据地址映射到共享内存数据块对应的数据区域之内。
在一种可能的实施方式中,所述共享内存装置还包括配置模块,所述配置模块用于:
统计多个所述视频处理进程的数量,根据所述数量启动与所述数量相对应的多个所述共享内存数据块;
根据配置文件中的每个所述共享内存数据块的名称相对应的所述共享内存数据块的数据接口,完成每个所述共享内存数据块的结构分配与数据初始化。
本申请实施例还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如上述用于视频处理进程的共享内存方法的步骤。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上述的用于视频处理进程的共享内存方法的步骤。
本申请实施例提供的一种用于视频处理进程的共享内存方法、装置及存储介质,所述共享内存方法包括:获取多个视频处理进程,并确定出每个所述视频处理进程相对应的共享内存数据块的名称;每个所述视频处理进程基于相对应的所述共享内存数据块的名称,确定出相对应的共享内存数据地址;针对于每个所述视频处理进程,基于相对应的所述共享内存数据块的获取接口读取所述共享内存数据地址映射到共享内存数据块提供的视频数据,并在读取过程中对所述视频数据进行锁定;针对于每个所述视频处理进程,根据相对应的所述视频数据进行视频处理,确定出视频处理结果,将所述视频处理结果基于相对应的所述共享内存数据块的接收接口发送至所述共享内存数据地址映射到共享内存数据块对应的数据区域之内。在视频处理进程较多的情况下,共享内存数据通信,通过共享内存的方式减少了视频数据拷贝的次数,提高了数据通信效率。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例所提供的一种用于视频处理进程的共享内存方法的流程图;
图2为本申请实施例所提供的共享内存数据块的接口示意图;
图3为本申请实施例所提供的一种用于视频处理进程的共享内存装置的结构示意图之一;
图4为本申请实施例所提供的一种用于视频处理进程的共享内存装置的结构示意图之二;
图5为本申请实施例所提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的每个其他实施例,都属于本申请保护的范围。
另外,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的全部其他实施例,都属于本申请保护的范围。
本申请实施例下述方法、装置、电子设备或计算机可读存储介质可以应用于任何需要对视频处理进程进行数据存储的场景,本申请实施例并不对具体的应用场景作限制,任何使用本申请实施例提供的一种用于视频处理进程的共享内存方法、装置及存储介质的方案均在本申请保护范围内。
首先,对本申请可适用的应用场景进行介绍。本申请可应用于视频处理技术领域。
经研究发现,现阶段,针对不同模块的数据统计方法是针对不同进程分别建立一个tcp连接,通过tcp协议获取到每个进程的数据信息进而做统计,但对数据处理结果延迟要求较高的情况下,该方法并不能快速实现数据信息的统计。尤其是在统计进程不确定何时需要获取其他模块数据信息的情况下,一般都需要先往其他模块所属进程发送数据请求,然后该模块收到数据请求后,读取当前数据状态,然后再发送给统计模块中间延迟时间较长。所以,如何提高视频处理进程的数据通信的效率成为了不容小觑的技术问题。
基于此,本申请实施例提供了一种用于视频处理进程的共享内存方法,在视频处理进程较多的情况下,共享内存数据通信,通过共享内存的方式减少了视频数据拷贝的次数,提高了数据通信效率。
请参阅图1,图1为本申请实施例所提供的一种用于视频处理进程的共享内存方法的流程图。如图1中所示,本申请实施例提供的共享内存方法,包括:
S101:获取多个视频处理进程,并确定出每个所述视频处理进程相对应的共享内存数据块的名称。
该步骤中,获取多个视频处理进程,并确定出每个视频处理进程相对应的共享内存数据块的名称。
这里,视频处理进程为视频解码进程、视频编码进程等其他有关于视频处理过程的进程。
其中,每个视频处理进程对应一个共享内存数据块的名称。
其中,对于各个共享内存数据块,根据实际的应用场景分配其对应的内存空间大小,并且每个共享内存数据块内存都有相应的名称,其他使用共享内存数据块的视频处理进程可以通过共享内存数据块的名称获取共享内存空间,并对该内存空间做读写操作。
这里,采用stl 的map或者哈希列表的形式实现对各个共享内存数据块的管理,每个共享内存数据块对应一个name,通过name获取到相应的共享内存数据地址。
进一步的,请参阅图2,图2为本申请实施例所提供的共享内存数据块的接口示意图。如图2所示,共享内存数据块有5个对外访问接口,分别为获取接口(get_data接口)、接收接口(set_data接口)、数据接口(init接口)、地址接口(get_ptr接口)以及释放接口(release接口)。init接口完成共享内模块的内存分配、进程锁的初始化、以及数据的初始化;get_ptr接口主要用于获取共享内存的地址,然后其他的set_data、get_data操作基于该地址实现对共享内存的数据读写;release接口完成对共享内存模块的进程锁的销毁、内存的释放等操作;get_data接口完成对共享内存数据的读取,且读取前加锁,防止数据读取时被其他进程修改,读取完以后解锁;set_data接口完成对共享内存数据的修改,修改前加锁,修改后解锁。
在一种可能方式之中,在所述获取多个视频处理进程,并确定出每个所述视频处理进程相对应的共享内存数据块的名称之前,所述共享内存方法还包括:
A:统计多个所述视频处理进程的数量,根据所述数量启动与所述数量相对应的多个所述共享内存数据块。
这里,统计多个视频处理进程的数量,根据数量启动与该数量相对应的多个共享内存数据块。
其中,视频处理进程的数量与需要启动的共享内存数据块的数量相一致,以避免资源浪费。
B:根据配置文件中的每个所述共享内存数据块的名称相对应的所述共享内存数据块的数据接口,完成每个所述共享内存数据块的结构分配与数据初始化。
这里,根据配置文件中的每个共享内存数据块的名称相对应的共享内存数据块的数据接口,完成每个共享内存数据块的结构分配与数据初始化。
其中,根据共享内存数据块的名称相对应的共享内存数据块的数据接口完成共享内存数据块的结构分配与数据初始化。
其中,结构分配为对该共享内存数据块进行内存分配。
在一种可能的实施方式中,所述获取多个视频处理进程,并确定出每个所述视频处理进程相对应的共享内存数据块的名称,包括:
对每个所述视频处理进程分配共享内存之后,并将所述共享内存数据块的名称与相对应的所述视频处理进程进行关联,以使确定出每个所述视频处理进程相对应的共享内存数据块的名称。
这里,根据多个视频处理进程,对每个视频处理进程分配共享内存之后,将共享内存数据块的名称与相对应的视频处理进程进行关联,以使根据视频处理进程确定出相对应的共享内存数据块的名称。
S102:每个所述视频处理进程基于相对应的所述共享内存数据块的名称,确定出相对应的共享内存数据地址。
该步骤中,每个视频处理进程根据相对应的共享内存数据块的名称,确定出相对应的共享内存数据地址。
这里,一个视频处理进程对应一个共享内存数据块,一个共享内存数据块对应一个共享内存数据地址。
这里,在视频处理进程执行过程中,需要访问该视频处理进程的处理过程中的数据时,通过共享内存数据块的名称在共享内存映射表中查询到该视频处理进程对应的共享内存数据地址,然后访问该视频处理进程的数据。
在一种可能的实施方式中,所述每个所述视频处理进程基于相对应的所述共享内存数据块的名称,确定出相对应的共享内存数据地址,包括:
a:获取预设的共享内存映射表。
这里,共享内存预设表是预先设定好的,每个共享内存数据块的名称对应一个共享内存数据地址。
b:在所述共享内存映射表之中查找出每个所述共享内存数据块的名称相对应的共享内存数据地址。
这里,在共享内存映射表之中查找出每个工想内存数据块的名称相对应的共享内存数据地址,以使在视频处理进程执行过程中,需要访问该视频处理进程的处理过程中的数据时,通过共享内存数据块的名称在共享内存映射表中查询到该视频处理进程对应的共享内存数据地址,然后访问该视频处理进程的数据。
S103:针对于每个所述视频处理进程,基于相对应的所述共享内存数据块的获取接口读取所述共享内存数据地址映射到共享内存数据块提供的视频数据,并在读取过程中对所述视频数据进行锁定。
该步骤中,对于每个视频处理进程,根据相对应的共享内存数据块的获取接口读取共享内存数据地址映射到的共享内存数据块所提供的视频数据,并在读取过程中国对视频数据进行锁定,以防止该视频数据在被读取的过程中被更改。
这里,对于每个共享内存数据块的读写,采用进程锁的形式实现对数据的互斥访问。
在一种可能的实施方式中,在所述读取过程中对所述视频数据进行锁定之后,所述共享内存方法还包括:
对所述视频数据读取过程结束后,对所述视频数据进行解锁。
这里,对视频数据读取过程结束之后,对该视频数据进行解锁,以实现根据需求该视频数据进行更改。
S104:针对于每个所述视频处理进程,根据相对应的所述视频数据进行视频处理,确定出视频处理结果,将所述视频处理结果基于相对应的所述共享内存数据块的接收接口发送至所述共享内存数据地址映射到共享内存数据块对应的数据区域之内。
该步骤中,对于每个视频处理进程,根据相对应的视频数据进行视频处理,确定出视频处理结果,将视频处理结果根据相对应的共享内存数据块的棘手接口发送至共享内存数据地址映射到共享内存数据块对应的数据区域之内。
这里,在每个视频处理过程中,对于产生的视频处理结果,调用set_data接口,实现将统计结果写入至共享内存数据块对应的数据区域之内。
举例来讲,对于视频解码和图像分析进程,只是获取到共享内存数据地址,不对共享内存数据块做初始化及释放操作。通过共享内存数据块的名称获取到自己所属的共享内存数据地址,在进程执行过程中,将产生的统计数据通过每块共享内存提供的set_data接口写入共享内存,供数据统计进程做对应的读写操作。当数据统计进程访问某个视频处理进程的结果时,由于共享内存使用了进程锁,可保证数据在读写时,不会存在读写冲突。
在一种可能的实施方式中,在所述针对于每个所述视频处理进程,根据相对应的所述视频数据进行视频处理,确定出视频处理结果,将所述视频处理结果基于相对应的所述共享内存数据块的接收接口发送至所述共享内存数据地址映射到共享内存数据块对应的数据区域之内之后,所述共享内存方法还包括:
对各个所述视频处理进程的视频处理结果进行统计,将统计后的各个所述视频处理结果进行数据存储。
这里,对各个视频处理进程的视频处理结果进行统计,将统计后的各个视频处理结果进行数据存储,以使根据其他需求对该视频处理结果进行使用。
这里,在使用共享内存做通信时,整个需要通信的系统主要由数据统计进程(datastatics process)、视频解码进程(video decode process)、图片分析进程(imageanalyze process)三种不同的进程组成。另外还包含进程管理脚本(process managerscript)、系统配置文件(config file)。进程管理脚本负责所有进程的启动。系统配置文件中会配置要启动的进程数量、不同进程对应的共享内存名称。与现有技术相比,本方案将原有的使用tcp或udp等方式实现的数据通信修改为共享内存数据通信,通过共享内存的方式,减少了数据拷贝的次数,提高了数据通信效率。
在具体实施例中,进程管理脚本根据系统配置文件,首先启动数据统计视频处理进程,数据统计视频处理进程根据配置文件中的共享内存名称,使用共享内存数据块的init接口,完成用于数据统计的共享内存数据结构分配与初始化;进程管理脚本启动每个视频处理进程,包括视频解码进程、各种视频处理进程,启动过程中通过传参的形式,将每个视频处理进程对应的共享内存数据块的名称传递给相对应的视频处理进程;每个视频处理进程根据传入的参数,通过get_ptr接口,获取数据统计进程中分配的共享内存数据;每个视频处理过程中,对产生的视频处理结果,调用set_data接口,实现统计结果到共享内存数据块的数据写入;数据统计进程通过调用get_data接口,实现对各个进程的数据结果的统计。然后根据具体的应用需求,写入数据库或日志等。
本申请实施例提供的一种用于视频处理进程的共享内存方法,所述共享内存方法包括:获取多个视频处理进程,并确定出每个所述视频处理进程相对应的共享内存数据块的名称;每个所述视频处理进程基于相对应的所述共享内存数据块的名称,确定出相对应的共享内存数据地址;针对于每个所述视频处理进程,基于相对应的所述共享内存数据块的获取接口读取所述共享内存数据地址映射到共享内存数据块提供的视频数据,并在读取过程中对所述视频数据进行锁定;针对于每个所述视频处理进程,根据相对应的所述视频数据进行视频处理,确定出视频处理结果,将所述视频处理结果基于相对应的所述共享内存数据块的接收接口发送至所述共享内存数据地址映射到共享内存数据块对应的数据区域之内。在视频处理进程较多的情况下,共享内存数据通信,通过共享内存的方式减少了视频数据拷贝的次数,提高了数据通信效率。
请参阅图3、图4,图3为本申请实施例所提供的一种用于视频处理进程的共享内存装置的结构示意图之一;图4为本申请实施例所提供的一种用于视频处理进程的共享内存装置的结构示意图之二。如图3中所示,用于视频处理进程的共享内存装置300包括:
获取模块310,用于获取多个视频处理进程,并确定出每个所述视频处理进程相对应的共享内存数据块的名称;
数据地址确定模块320,用于每个所述视频处理进程基于相对应的所述共享内存数据块的名称,确定出相对应的共享内存数据地址;
数据读取模块330,用于针对于每个所述视频处理进程,基于相对应的所述共享内存数据块的获取接口读取所述共享内存数据地址映射到共享内存数据块提供的视频数据,并在读取过程中对所述视频数据进行锁定;
数据发送模块340,用于针对于每个所述视频处理进程,根据相对应的所述视频数据进行视频处理,确定出视频处理结果,将所述视频处理结果基于相对应的所述共享内存数据块的接收接口发送至所述共享内存数据地址映射到共享内存数据块对应的数据区域之内。
在一种可能的实施方式中,如图4所示,所述共享内存装置还包括配置模块350,所述配置模块350用于:
统计多个所述视频处理进程的数量,根据所述数量启动与所述数量相对应的多个所述共享内存数据块;
根据配置文件中的每个所述共享内存数据块的名称相对应的所述共享内存数据块的数据接口,完成每个所述共享内存数据块的结构分配与数据初始化。
在一种可能的实施方式中,获取模块310在用于所述获取多个视频处理进程,并确定出每个所述视频处理进程相对应的共享内存数据块的名称时,获取模块310具体用于:
对每个所述视频处理进程分配共享内存之后,并将所述共享内存数据块的名称与相对应的所述视频处理进程进行关联,以使确定出每个所述视频处理进程相对应的共享内存数据块的名称。
在一种可能的实施方式中,数据地址确定模块320在用于所述每个所述视频处理进程基于相对应的所述共享内存数据块的名称,确定出相对应的共享内存数据地址时,数据地址确定模块320具体用于:
获取预设的共享内存映射表;
在所述共享内存映射表之中查找出每个所述共享内存数据块的名称相对应的共享内存数据地址。
在一种可能的实施方式中,用于视频处理进程的共享内存装置300还包括解锁模块360,所述解锁模块360用于:
对所述视频数据读取过程结束后,对所述视频数据进行解锁。
在一种可能的实施方式中,用于视频处理进程的共享内存装置300还包括存储模块370,所述存储模块370用于:
对各个所述视频处理进程的视频处理结果进行统计,将统计后的各个所述视频处理结果进行数据存储。
本申请实施例提供的一种用于视频处理进程的共享内存装置,所述共享内存装置包括:获取模块,用于获取多个视频处理进程,并确定出每个所述视频处理进程相对应的共享内存数据块的名称;数据地址确定模块,用于每个所述视频处理进程基于相对应的所述共享内存数据块的名称,确定出相对应的共享内存数据地址;数据读取模块,用于针对于每个所述视频处理进程,基于相对应的所述共享内存数据块的获取接口读取所述共享内存数据地址映射到共享内存数据块提供的视频数据,并在读取过程中对所述视频数据进行锁定;数据发送模块,用于针对于每个所述视频处理进程,根据相对应的所述视频数据进行视频处理,确定出视频处理结果,将所述视频处理结果基于相对应的所述共享内存数据块的接收接口发送至所述共享内存数据地址映射到共享内存数据块对应的数据区域之内。
请参阅图5,图5为本申请实施例所提供的一种电子设备的结构示意图。如图5中所示,所述电子设备500包括处理器510、存储器520和总线530。
所述存储器520存储有所述处理器510可执行的机器可读指令,当电子设备500运行时,所述处理器510与所述存储器520之间通过总线530通信,所述机器可读指令被所述处理器510执行时,可以执行如上述图1所示方法实施例中的用于视频处理进程的共享内存方法的步骤,具体实现方式可参见方法实施例,在此不再赘述。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时可以执行如上述图1所示方法实施例中的用于视频处理进程的共享内存方法的步骤,具体实现方式可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种用于视频处理进程的共享内存方法,其特征在于,所述共享内存方法包括:
获取多个视频处理进程,并确定出每个所述视频处理进程相对应的共享内存数据块的名称;
每个所述视频处理进程基于相对应的所述共享内存数据块的名称,确定出相对应的共享内存数据地址;
针对于每个所述视频处理进程,基于相对应的所述共享内存数据块的获取接口读取所述共享内存数据地址映射到共享内存数据块提供的视频数据,并在读取过程中对所述视频数据进行锁定;
针对于每个所述视频处理进程,根据相对应的所述视频数据进行视频处理,确定出视频处理结果,将所述视频处理结果基于相对应的所述共享内存数据块的接收接口发送至所述共享内存数据地址映射到共享内存数据块对应的数据区域之内。
2.根据权利要求1所述的共享内存方法,其特征在于,在所述获取多个视频处理进程,并确定出每个所述视频处理进程相对应的共享内存数据块的名称之前,所述共享内存方法还包括:
统计多个所述视频处理进程的数量,根据所述数量启动与所述数量相对应的多个所述共享内存数据块;
根据配置文件中的每个所述共享内存数据块的名称相对应的所述共享内存数据块的数据接口,完成每个所述共享内存数据块的结构分配与数据初始化。
3.根据权利要求1所述的共享内存方法,其特征在于,所述获取多个视频处理进程,并确定出每个所述视频处理进程相对应的共享内存数据块的名称,包括:
对每个所述视频处理进程分配共享内存之后,并将所述共享内存数据块的名称与相对应的所述视频处理进程进行关联,以使确定出每个所述视频处理进程相对应的共享内存数据块的名称。
4.根据权利要求1所述的共享内存方法,其特征在于,所述每个所述视频处理进程基于相对应的所述共享内存数据块的名称,确定出相对应的共享内存数据地址,包括:
获取预设的共享内存映射表;
在所述共享内存映射表之中查找出每个所述共享内存数据块的名称相对应的共享内存数据地址。
5.根据权利要求1所述的共享内存方法,其特征在于,在所述读取过程中对所述视频数据进行锁定之后,所述共享内存方法还包括:
对所述视频数据读取过程结束后,对所述视频数据进行解锁。
6.根据权利要求1所述的共享内存方法,其特征在于,在所述针对于每个所述视频处理进程,根据相对应的所述视频数据进行视频处理,确定出视频处理结果,将所述视频处理结果基于相对应的所述共享内存数据块的接收接口发送至所述共享内存数据地址映射到共享内存数据块对应的数据区域之内之后,所述共享内存方法还包括:
对各个所述视频处理进程的视频处理结果进行统计,将统计后的各个所述视频处理结果进行数据存储。
7.一种用于视频处理进程的共享内存装置,其特征在于,所述共享内存装置包括:
获取模块,用于获取多个视频处理进程,并确定出每个所述视频处理进程相对应的共享内存数据块的名称;
数据地址确定模块,用于每个所述视频处理进程基于相对应的所述共享内存数据块的名称,确定出相对应的共享内存数据地址;
数据读取模块,用于针对于每个所述视频处理进程,基于相对应的所述共享内存数据块的获取接口读取所述共享内存数据地址映射到共享内存数据块提供的视频数据,并在读取过程中对所述视频数据进行锁定;
数据发送模块,用于针对于每个所述视频处理进程,根据相对应的所述视频数据进行视频处理,确定出视频处理结果,将所述视频处理结果基于相对应的所述共享内存数据块的接收接口发送至所述共享内存数据地址映射到共享内存数据块对应的数据区域之内。
8.根据权利要求7所述的共享内存装置,其特征在于,所述共享内存装置还包括配置模块,所述配置模块用于:
统计多个所述视频处理进程的数量,根据所述数量启动与所述数量相对应的多个所述共享内存数据块;
根据配置文件中的每个所述共享内存数据块的名称相对应的所述共享内存数据块的数据接口,完成每个所述共享内存数据块的结构分配与数据初始化。
9.一种电子设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过所述总线进行通信,所述机器可读指令被所述处理器运行时执行如权利要求1至6任一所述的用于视频处理进程的共享内存方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1至6任一所述的用于视频处理进程的共享内存方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310309544.5A CN116055664B (zh) | 2023-03-28 | 2023-03-28 | 一种用于视频处理进程的共享内存方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310309544.5A CN116055664B (zh) | 2023-03-28 | 2023-03-28 | 一种用于视频处理进程的共享内存方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116055664A true CN116055664A (zh) | 2023-05-02 |
CN116055664B CN116055664B (zh) | 2023-06-02 |
Family
ID=86122098
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310309544.5A Active CN116055664B (zh) | 2023-03-28 | 2023-03-28 | 一种用于视频处理进程的共享内存方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116055664B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117009114A (zh) * | 2023-10-07 | 2023-11-07 | 联通(广东)产业互联网有限公司 | 一种数据共享方法、装置、电子设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105323586A (zh) * | 2015-04-07 | 2016-02-10 | 佛山世寰智能科技有限公司 | 一种用于多核并行视频编码和解码的共享内存接口 |
US20170264604A1 (en) * | 2016-03-08 | 2017-09-14 | Dean Drako | Apparatus for sharing private video streams with first responders and method of operation |
CN112511840A (zh) * | 2020-12-24 | 2021-03-16 | 北京睿芯高通量科技有限公司 | 一种基于ffmpeg与硬件加速设备的解码系统及方法 |
CN112637634A (zh) * | 2020-12-24 | 2021-04-09 | 北京睿芯高通量科技有限公司 | 一种多进程共享数据的高并发视频处理方法及系统 |
CN112860458A (zh) * | 2021-02-22 | 2021-05-28 | 北京睿芯高通量科技有限公司 | 一种基于共享内存的进程间通信方法及系统 |
CN113221706A (zh) * | 2021-04-30 | 2021-08-06 | 西安聚全网络科技有限公司 | 基于多进程的多路视频流的ai分析方法及系统 |
CN114528126A (zh) * | 2022-02-25 | 2022-05-24 | 京东方科技集团股份有限公司 | 业务处理方法及装置 |
-
2023
- 2023-03-28 CN CN202310309544.5A patent/CN116055664B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105323586A (zh) * | 2015-04-07 | 2016-02-10 | 佛山世寰智能科技有限公司 | 一种用于多核并行视频编码和解码的共享内存接口 |
US20170264604A1 (en) * | 2016-03-08 | 2017-09-14 | Dean Drako | Apparatus for sharing private video streams with first responders and method of operation |
CN112511840A (zh) * | 2020-12-24 | 2021-03-16 | 北京睿芯高通量科技有限公司 | 一种基于ffmpeg与硬件加速设备的解码系统及方法 |
CN112637634A (zh) * | 2020-12-24 | 2021-04-09 | 北京睿芯高通量科技有限公司 | 一种多进程共享数据的高并发视频处理方法及系统 |
CN112860458A (zh) * | 2021-02-22 | 2021-05-28 | 北京睿芯高通量科技有限公司 | 一种基于共享内存的进程间通信方法及系统 |
CN113221706A (zh) * | 2021-04-30 | 2021-08-06 | 西安聚全网络科技有限公司 | 基于多进程的多路视频流的ai分析方法及系统 |
CN114528126A (zh) * | 2022-02-25 | 2022-05-24 | 京东方科技集团股份有限公司 | 业务处理方法及装置 |
Non-Patent Citations (1)
Title |
---|
厉海燕,李新明: "实时Linux中共享内存的实现", 计算机应用, no. 11, pages 75 - 76 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117009114A (zh) * | 2023-10-07 | 2023-11-07 | 联通(广东)产业互联网有限公司 | 一种数据共享方法、装置、电子设备及存储介质 |
CN117009114B (zh) * | 2023-10-07 | 2024-05-28 | 联通(广东)产业互联网有限公司 | 一种数据共享方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116055664B (zh) | 2023-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107491519B (zh) | 区块链账本的查询方法及装置 | |
CN110380864B (zh) | 人脸数据采集、验证的方法、设备及系统 | |
CN108881228B (zh) | 云端注册激活方法、装置、设备和存储介质 | |
CN111447102B (zh) | Sdn网络设备访问方法、装置、计算机设备及存储介质 | |
CN116055664B (zh) | 一种用于视频处理进程的共享内存方法、装置及存储介质 | |
CN112819617B (zh) | 数据上链方法及装置、电子设备、存储介质 | |
WO2018010480A1 (zh) | eSIM卡锁网方法、终端及锁网认证服务器 | |
CN112688799B (zh) | 基于Redis集群的客户号分配方法以及分配装置 | |
CN108595346B (zh) | 一种特征库文件管理方法和装置 | |
CN111090616B (zh) | 一种文件管理方法、对应装置、设备及存储介质 | |
CN113872990B (zh) | 基于ssl协议的vpn网络证书认证方法、装置和计算机设备 | |
CN111585987A (zh) | 身份认证方法、装置、电子设备及计算机可读存储介质 | |
CN112162797B (zh) | 数据处理方法、系统、存储介质以及电子设备 | |
CN114845084B (zh) | 一种多用户的屏幕管理方法、装置、设备及存储介质 | |
CN111324906A (zh) | 基于数据接口的自动接入方法、装置、电子设备 | |
CN114417069A (zh) | 页面数据交互方法、装置及电子设备 | |
CN113836331A (zh) | 图像查询方法、设备及存储介质 | |
CN114338060B (zh) | 一种权限校验方法、装置、系统、设备及存储介质 | |
CN112311551B (zh) | 保护可证明的资源所有权 | |
CN103051607B (zh) | 访问方法、设备及系统 | |
CN113032820A (zh) | 文件存储方法、访问方法、装置、设备及存储介质 | |
CN114979996B (zh) | 基于sim卡的名片生成方法、装置及电子设备 | |
RU2750642C2 (ru) | Система и способ регистрации уникального идентификатора мобильного устройства | |
CN113992742B (zh) | 接口接入方法、装置、设备及存储介质 | |
CN113179380B (zh) | 签名录制方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |