CN113012023B - 基于众核处理器的视频分析加速方法及系统 - Google Patents
基于众核处理器的视频分析加速方法及系统 Download PDFInfo
- Publication number
- CN113012023B CN113012023B CN202110196844.8A CN202110196844A CN113012023B CN 113012023 B CN113012023 B CN 113012023B CN 202110196844 A CN202110196844 A CN 202110196844A CN 113012023 B CN113012023 B CN 113012023B
- Authority
- CN
- China
- Prior art keywords
- core
- image
- calculation
- video
- frame
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 41
- 230000001133 acceleration Effects 0.000 title claims abstract description 25
- 238000004458 analytical method Methods 0.000 title claims abstract description 24
- 238000004364 calculation method Methods 0.000 claims abstract description 81
- 238000004891 communication Methods 0.000 claims abstract description 11
- 230000008569 process Effects 0.000 claims description 23
- 239000011159 matrix material Substances 0.000 claims description 14
- 238000012821 model calculation Methods 0.000 claims description 12
- 230000000694 effects Effects 0.000 abstract description 6
- 230000007246 mechanism Effects 0.000 description 11
- 238000004422 calculation algorithm Methods 0.000 description 7
- 238000001514 detection method Methods 0.000 description 5
- 239000000203 mixture Substances 0.000 description 5
- 238000012544 monitoring process Methods 0.000 description 5
- 230000003139 buffering effect Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 3
- 238000010223 real-time analysis Methods 0.000 description 3
- 238000002474 experimental method Methods 0.000 description 2
- 238000005286 illumination Methods 0.000 description 2
- 230000033001 locomotion Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000011410 subtraction method Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 229920006235 chlorinated polyethylene elastomer Polymers 0.000 description 1
- 238000000136 cloud-point extraction Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000003709 image segmentation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/545—Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
-
- 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)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明公开了一种基于众核处理器的视频分析加速方法,包括众核处理器,视频分析加速方法包括:对计算模型参数进行初始化;读取视频帧,主核在回送从核数据的并行程序异步通信等待期间,计算存储一帧图像所需的内存空间大小;在内存中创建两块所需内存空间大小的内存空间,当第n次计算时,若n为奇数时使用第一内存空间发送数据到从核,异步等待,此时第二内存存储下一帧的图像数据;若n为偶数时则与之相反,依次交替;从核上创建一个相同空间的内存空间,从核计算完成一帧的图像数据后直接取得下一帧的图像数据;对图像进行解码;通过计算模型进行计算;对图像进行编码。合理调度了从核计算资源,具有较好的加速效果,大大缩短了运行时间。
Description
技术领域
本发明属于监控视频快速实时分析技术领域,具体地涉及一种基于众核处理器的视频分析加速方法及系统。
背景技术
智能视频分析系统能够对视频区域内出现的运动目标自动识别出目标类型并跟踪,对目标进行标记并画出目标运动轨迹,能够同时监测同一场景里多个目标,可以根据防范目标的特点进行灵活设置;它能够适应不同的环境变化,包括光照、四季、昼夜、晴雨等,并能够很好地抗摄像头抖动。其改变了以往视频“被动”监控的状态,不仅仅局限于提供视频画面,而且能主动对视频信息进行智能分析,识别和区分物体,可自定义事件类型,一旦发现异常情况或者突发事件能及时的发出警报,其在安防领域的应用必然有助于克服了人力疲惫的局限性,从而更加有效地协助安全人员处理突发事件。
目前,对GMM算法应用与机器学习、神经网络等多个方面,基于大多的GMM算法优化的基础之上,在全新的申威SW26010国产平台上以新的视觉实现并行化GMM算法的加速方法,具有良好的可扩展性,选用基于GMM的运动目标检测能够很好的展现加速效果。
背景减除法是十分有效的运动对象检测的方法,算法思想是利用背景的参数模型来近似背景图像的像素值,通过当前帧分离得到背景图和运动区域,背景图像是需要随着光照等外部因素的变化而更新模型的参数。混合高斯模型(GMM)是背景减除法中最常用的模型,GMM是通过高斯概率密度函数来描述同一事物的多种状态模型,能够有效提取运动前景和背景。
GMM模型的应用场景有语音识别和运动目标检测等,在公共场合的智能视频监控也越来越多,为了满足大型公众场所的监控视频快速实时分析的要求,需要在异构众核处理器上实现通用加速算法。本发明因此而来。
发明内容
针对上述存在的技术问题,本发明提出了一种基于众核处理器的视频分析加速方法,在异构众核处理器上实现通用加速方法,在读取帧采用了双缓冲的机制,实现主从核并行化,从核计算期间,主核预取下一帧数据。在图像解码环节,对图像数据进行划分,使用窗口滑动机制,合理调度从核计算资源。
本发明的技术方案是:
一种基于众核处理器的视频分析加速方法,包括众核处理器,所述众核处理器的视频分析加速方法包括以下步骤:
S01:对计算模型参数进行初始化;
S02:读取视频帧,所述读取视频帧时,主核在回送从核数据的并行程序异步通信等待期间,计算存储一帧图像所需的内存空间大小;在内存中创建两块所需内存空间大小的内存空间,分别标记为第一内存空间和第二内存空间,当第n次计算时,若n为奇数时使用第一内存空间发送数据到从核,异步等待,此时第二内存存储下一帧的图像数据;若 n为偶数时则与之相反,依次交替;从核上创建一个相同空间的内存空间,从核计算完成一帧的图像数据后直接取得下一帧的图像数据;
S03:对图像进行解码;
S04:通过计算模型进行计算;
S05:对图像进行编码。
优选的技术方案中,所述步骤S01中还包括,将每个像素点的计算模型参数放至在从核的局部缓存上。
优选的技术方案中,所述步骤S05中对图像进行编码时,主核对图像数据进行划分,包括:每次计算模型迭代前得到一个视频帧,根据图像像素的宽度设置滑动窗口的大小,将图像像素的宽度作为一个数据块;在数据块分配完成后,通知从核进行数据读取运算,每次每个从核读取一个数据块和对应的计算模型参数矩阵,当某个从核计算完成后通过DMA将计算结果和更新的模型参数传回主核,再取下一次的计算区域,直到计算完成为止;从核计算过程中主核处于等待状态,直到所有的从核计算任务完成,主核汇聚当前帧的前景图像并写入新的计算模型参数值,进行编码转化写入视频,再读取下一帧视频。
优选的技术方案中,当存在多个核组数时,对每一帧的视频图像按照行进行分割处理,当多个核组同时工作时,进程为0的负责视频流的编码、解码和视频帧的转码,剩余的核组进行计算模型计算,每个核组再依次取得对0号进程所分配的像素坐标区域的像素值,模型参数矩阵存储在每个主核的主存中,取得任务的主核再划分数据块,分配给自己的从核阵列进行计算。
本发明还公开了一种基于众核处理器的视频分析加速系统,包括众核处理器和视频分析加速系统,所述视频分析加速系统包括以下模块:
参数初始化模块:对计算模型参数进行初始化;
视频帧读取模块:读取视频帧,所述读取视频帧时,主核在回送从核数据的并行程序异步通信等待期间,计算存储一帧图像所需的内存空间大小;在内存中创建两块所需内存空间大小的内存空间,分别标记为第一内存空间和第二内存空间,当第n次计算时,若n为奇数时使用第一内存空间发送数据到从核,异步等待,此时第二内存存储下一帧的图像数据;若 n为偶数时则与之相反,依次交替;从核上创建一个相同空间的内存空间,从核计算完成一帧的图像数据后直接取得下一帧的图像数据;
图像解码模块:对图像进行解码;
模型计算模块:通过计算模型进行计算;
图像编码模块:对图像进行编码。
优选的技术方案中,所述参数初始化模块中还包括,将每个像素点的计算模型参数放至在从核的局部缓存上。
优选的技术方案中,所述图像编码模块中对图像进行编码时,主核对图像数据进行划分,包括:每次计算模型迭代前得到一个视频帧,根据图像像素的宽度设置滑动窗口的大小,将图像像素的宽度作为一个数据块;在数据块分配完成后,通知从核进行数据读取运算,每次每个从核读取一个数据块和对应的计算模型参数矩阵,当某个从核计算完成后通过DMA将计算结果和更新的模型参数传回主核,再取下一次的计算区域,直到计算完成为止;从核计算过程中主核处于等待状态,直到所有的从核计算任务完成,主核汇聚当前帧的前景图像并写入新的计算模型参数值,进行编码转化写入视频,再读取下一帧视频。
优选的技术方案中,当存在多个核组数时,对每一帧的视频图像按照行进行分割处理,当多个核组同时工作时,进程为0的负责视频流的编码、解码和视频帧的转码,剩余的核组进行计算模型计算,每个核组再依次取得对0号进程所分配的像素坐标区域的像素值,模型参数矩阵存储在每个主核的主存中,取得任务的主核再划分数据块,分配给自己的从核阵列进行计算。
与现有技术相比,本发明的优点是:
1、本发明在异构众核处理器上实现通用加速方法,在读取帧采用了双缓冲的机制,实现主从核并行化,从核计算期间,主核预取下一帧数据,缓冲机制的加入使得并行程序运行时间明显减少。
2、在图像解码环节,对图像数据进行划分,使用窗口滑动机制,合理调度从核计算资源,数据的划分平衡了从核计算量的负载均衡,大大缩短了运行时间。
附图说明
下面结合附图及实施例对本发明作进一步描述:
图1为本发明基于众核处理器的视频分析加速方法的流程图;
图2为本发明基于众核处理器的视频分析加速系统的原理框图;
图3为本实施例视频分析的检测流程;
图4为本实施例双缓冲机制示意图;
图5为本实施例滑动窗口分配图;
图6为本实施例352*240视频流提取前景的效果;
图7为本实施例800*600视频流提取前景的效果;
图8为本实施例576*1024视频流提取前景的效果。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本发明进行进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
实施例:
下面结合附图,对本发明的较佳实施例作进一步说明。
如图1所示,一种基于众核处理器的视频分析加速方法,包括众核处理器,所述众核处理器的视频分析加速方法包括以下步骤:
S01:对计算模型参数进行初始化;
S02:读取视频帧,所述读取视频帧时,主核在回送从核数据的并行程序异步通信等待期间,计算存储一帧图像所需的内存空间大小;在内存中创建两块所需内存空间大小的内存空间,分别标记为第一内存空间和第二内存空间,当第n次计算时,若n为奇数时使用第一内存空间发送数据到从核,异步等待,此时第二内存存储下一帧的图像数据;若 n为偶数时则与之相反,即若n为偶数时使用第二内存空间发送数据到从核,异步等待,此时第一内存存储下一帧的图像数据,依次交替;从核上创建一个相同空间的内存空间,从核计算完成一帧的图像数据后直接取得下一帧的图像数据;
S03:对图像进行解码;
S04:通过计算模型进行计算;
S05:对图像进行编码。
这里的计算模型可以为混合高斯模型(GMM)等其他的计算模型,本实施例以混合高斯模型(GMM)为例进行说明,模型参数主要有均值、方差矩阵。
一较佳的实施例中,步骤S01中还包括,将每个像素点的计算模型参数放至在从核的局部缓存上。更加方便模型计算,节省了模型参数更迭的回送主核的时间。
一较佳的实施例中,步骤S05中对图像进行编码时,主核对图像数据进行划分,使用窗口滑动机制,合理调度从核计算资源。划分方法包括以下步骤:
每次计算模型迭代前得到一个视频帧,根据图像像素的宽度设置滑动窗口的大小,将图像像素的宽度作为一个数据块;在数据块分配完成后,通知从核进行数据读取运算,每次每个从核读取一个数据块和对应的计算模型参数矩阵,当某个从核计算完成后通过DMA将计算结果和更新的模型参数传回主核,再取下一次的计算区域,直到计算完成为止;从核计算过程中主核处于等待状态,直到所有的从核计算任务完成,主核汇聚当前帧的前景图像并写入新的计算模型参数值,进行编码转化写入视频,再读取下一帧视频。
一较佳的实施例中,当存在多个核组数时,对每一帧的视频图像按照行进行分割处理,当多个核组同时工作时,进程为0的负责视频流的编码、解码和视频帧的转码,剩余的核组进行计算模型计算,每个核组再依次取得对0号进程所分配的像素坐标区域的像素值,模型参数矩阵存储在每个主核的主存中,取得任务的主核再划分数据块,分配给自己的从核阵列进行计算。不同的核组之间不需要交换高斯模型参数,模型参数矩阵存储每个MPE自己主存中,从而减少的核组之间的通信次数。
如图2所示,本发明还公开了一种基于众核处理器的视频分析加速系统,包括众核处理器和视频分析加速系统,提供视频流结构,接入公众场合的监控实现实时分析,能够对公众场合的人流量等关键数据进行统计,用于资源的合理调度。可以对底层视频流编码解码FFMPEG软件库进行对SW26010的适配,在X86、NMS架构下有单指令多命令等加速,可以结合申威异构众核处理器进一步进行加速。
视频分析加速系统包括以下模块:
参数初始化模块:对计算模型参数进行初始化;
视频帧读取模块:读取视频帧,所述读取视频帧时,主核在回送从核数据的并行程序异步通信等待期间,计算存储一帧图像所需的内存空间大小;在内存中创建两块所需内存空间大小的内存空间,分别标记为第一内存空间和第二内存空间,当第n次计算时,若n为奇数时使用第一内存空间发送数据到从核,异步等待,此时第二内存存储下一帧的图像数据;若 n为偶数时则与之相反,依次交替;从核上创建一个相同空间的内存空间,从核计算完成一帧的图像数据后直接取得下一帧的图像数据;
图像解码模块:对图像进行解码;
模型计算模块:通过计算模型进行计算;
图像编码模块:对图像进行编码。
在一具体的实施例中,如图3所示,将每个像素点的模型参数放至在从核的局部缓存上(LDM),更加方便模型计算,节省了模型参数更迭的回送主核的时间。在读取帧的模块环节和读取视频帧,通过移植的FFMPEG视频编码解码库来实现对图像的解码过程,通常像素编码选用YUV格式转化成RGB格式进行计算。模型计算是由从核阵列(CPEs)负责,主核负责帧的读取和保存,将RGB格式数据划分送到从核的局部缓存上,从核获取数据计算模型参数迭代,将模型分类得到的视频格式转化成GRAY像素格式,最后通过DMA方式将结果回送到主核的主存中。图像的编码是利用FFMPEG库将像素格式GRAY直接转化成YUV格式,进行视频编码,最后封装到视频容器中。在读取帧采用了双缓冲的机制,实现在主从核并行化,从核计算期间,主核预取下一帧数据。在图像解码环节,对图像数据进行划分,使用窗口滑动机制,合理调度从核计算资源。
从核(CPE)阵列计算过程中,主核(MPE)一直处于等待状态,我们在此引入双缓冲区的机制,双缓冲是在并行程序异步等待期间,通过空间换时间的思想,依据图像的视频大小计算需要存储一帧图像所需的内存空间大小,dWidth*dHeight*4字节的内存空间,dWidth、dHeight分别为图像的宽度和高度,在内存中开辟两块如上相同大小的内存空间,分别标号为内存1和内存2,当第n次计算时,n为奇数使用内存1发送数据到从核,异步等待,此时内存2存储下一针需要的图像数据,当n为偶数则与之相反,依次交替。我们在主核的主存空间划分通过开辟新的缓冲区使得等待程序提前处理下一次不依赖上一次结果的计算。图4为双缓冲模型,算法思想是基于主核和从核同时运行,主核算法是在回送从核数据的异步通信等待期间,加入新的任务,使得主核在等待期间进行下一帧图像预加载。从核上同样开辟一个相同空间的内存空间,从核计算完成一帧的视频图像可以直接取得下一帧的图像,无需再异步等待。MPE和CPE对双缓冲的优化,在读取的不是第一帧和最后一帧的情况下,CPE计算期间MPE保存上一帧的前景视频流,同时预取下一帧数据解码传入下一次从核计算预取缓冲区,创建两个缓冲区,改变以往从核运算时主核是处于等待状态的计算资源闲置,从而减少主从核的串行等待时间,使得CPE尽可能地处于计算状态。
数据的划分平衡从核计算量的负载均衡,图5是滑动窗口分配图,每次GMM迭代前得到一个视频图像帧,MPE对图像进行数据划分,针对神威每个CPE的LDM都是64KB的大小限制,按照视频像素的宽度为一个数据块,每滑动窗口的大小为1*dWidth,一共有dHeight个数据块。在数据块分配完成以后,通知从核进行数据读取运算,每次每个从核读取1*dWidth的RGB和对应的混合高斯模型参数矩阵,当某个CPE计算完成后通过DMA(直接存储器访问)将计算结果和更新的模型参数传回主核,再去跨64行取的下一次的计算区域。例如从核号为0的窗口,每次滑动的间距是64行,第一次计算第0号数据块,第二次计算第64号数据块,直到没有任务可以计算为止。从核计算过程中主核处于等待状态,直到所有的从核计算任务完成,主核汇聚当前帧的前景图像并写入新的混合高斯模型参数值,进行编码转化写入视频,再去读取下一帧视频。
多核组并行化算法如下:
在多节点的并行方案采用的是对每一帧的视频图像分割处理,为了保证视频图像尽可能地连续存储要求,按照行的性质进行划分。当并行的节点有n个时候,即有4n个核组同时工作,进程为0的负责视频流的编码解码和视频帧的转码,则剩余的4n-1的核组进行高斯模型计算。每个核组再依次取得对0号进程所分配的像素坐标区域的像素值,多核的并行化比从核的并行化多了独立的内存空间,又由于高斯模型参数对于每个像素点的独立性,不同的核组之间不需要交换高斯模型参数,模型参数矩阵存储每个MPE自己主存中,从而减少的核组之间的通信次数。取得任务的主核再分划数据块,分配给自己的从核阵列进行计算。
表1展示了在不同平台单元上GMM检测的运行时间,在单核组上计算能力上也有很好的加速效果,同时加入了双缓冲的对比。对比了不同架构的Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz处理器,实验结果证明video1、video2、video3不同视频流在SW26010的处理,双缓冲的加入相比没有双缓冲的并行程序分别提升了24.4%、43.7%、29.6%的性能提升。下表所示双缓冲机制的加入使得并行程序运行时间明显减少。
表1 运动目标检测在不同架构下和优化后的运行时间对比
X86运行时间 | SW串行时间 | SW并行 | SW双缓冲并行 | |
1000/240*352 | 42.13S | 164.82S | 103.18S | 77.96S |
630/600*800 | 195.14S | 1013.26S | 788.15S | 443.91S |
4542/576*1024 | 1331.92S | 7458.76 | 5618.43S | 3954.63S |
本实验选取了1、2、4、8个节点上进行并行程序的测试,即有1、4、8、16、32个核组的实验数据。表2显示了在不同核组数下对不同视频流处理的程序运行时间记录,证明了GMM模型应用在“神威太湖之光”上拥有良好的可扩展性。结合图6、7、8不同视频流提取前景的效果,从中我们可以看出,在计算量不变的前提下,随着核组个数的增加,程序的运行时间逐渐缩短。初段的加速比明显高于后端的加速比例,原因是随着核组数量的增加,不同的MPE之间通信次数也再增加,同时对于同一视频流的每一帧像素大小固定,而主核个数增加使得划分的数据块大小逐渐减小,不利于DMA的大数据块传输。
表2 不同核组数下运行的时间结果
核组数 | 1 | 4 | 8 | 16 | 32 |
1000/240*352 | 77.96 | 22.13 | 13.26 | 8.22 | 8.13 |
630/600*800 | 443.91 | 130.29 | 73.30 | 54.86 | 47.25 |
4542/576*1024 | 3954.23 | 1023.66 | 606.37 | 402.59 | 341.60 |
应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。
Claims (6)
1.一种基于众核处理器的视频分析加速方法,其特征在于,包括众核处理器,所述众核处理器的视频分析加速方法包括以下步骤:
S01:对计算模型参数进行初始化;
S02:读取视频帧,所述读取视频帧时,主核在回送从核数据的并行程序异步通信等待期间,计算存储一帧图像所需的内存空间大小;在内存中创建两块所需内存空间大小的内存空间,分别标记为第一内存空间和第二内存空间,当第n次计算时,若n为奇数时使用第一内存空间发送数据到从核,异步等待,此时第二内存存储下一帧的图像数据;若 n为偶数时则与之相反,依次交替;从核上创建一个相同空间的内存空间,从核计算完成一帧的图像数据后直接取得下一帧的图像数据;
S03:对图像进行解码;
S04:通过计算模型进行计算;
S05:对图像进行编码;
所述步骤S05中对图像进行编码时,主核对图像数据进行划分,包括:每次计算模型迭代前得到一个视频帧,根据图像像素的宽度设置滑动窗口的大小,将图像像素的宽度作为一个数据块;在数据块分配完成后,通知从核进行数据读取运算,每次每个从核读取一个数据块和对应的计算模型参数矩阵,当某个从核计算完成后通过DMA将计算结果和更新的模型参数传回主核,再取下一次的计算区域,直到计算完成为止;从核计算过程中主核处于等待状态,直到所有的从核计算任务完成,主核汇聚当前帧的前景图像并写入新的计算模型参数值,进行编码转化写入视频,再读取下一帧视频。
2.根据权利要求1所述的基于众核处理器的视频分析加速方法,其特征在于,所述步骤S01中还包括,将每个像素点的计算模型参数放至在从核的局部缓存上。
3.根据权利要求1所述的基于众核处理器的视频分析加速方法,其特征在于,当存在多个核组数时,对每一帧的视频图像按照行进行分割处理,当多个核组同时工作时,进程为0的负责视频流的编码、解码和视频帧的转码,剩余的核组进行计算模型计算,每个核组再依次取得对0号进程所分配的像素坐标区域的像素值,模型参数矩阵存储在每个主核的主存中,取得任务的主核再划分数据块,分配给自己的从核阵列进行计算。
4.一种基于众核处理器的视频分析加速系统,其特征在于,包括众核处理器和视频分析加速系统,所述视频分析加速系统包括以下模块:
参数初始化模块:对计算模型参数进行初始化;
视频帧读取模块:读取视频帧,所述读取视频帧时,主核在回送从核数据的并行程序异步通信等待期间,计算存储一帧图像所需的内存空间大小;在内存中创建两块所需内存空间大小的内存空间,分别标记为第一内存空间和第二内存空间,当第n次计算时,若n为奇数时使用第一内存空间发送数据到从核,异步等待,此时第二内存存储下一帧的图像数据;若n为偶数时则与之相反,依次交替;从核上创建一个相同空间的内存空间,从核计算完成一帧的图像数据后直接取得下一帧的图像数据;
图像解码模块:对图像进行解码;
模型计算模块:通过计算模型进行计算;
图像编码模块:对图像进行编码;
所述图像编码模块中对图像进行编码时,主核对图像数据进行划分,包括:每次计算模型迭代前得到一个视频帧,根据图像像素的宽度设置滑动窗口的大小,将图像像素的宽度作为一个数据块;在数据块分配完成后,通知从核进行数据读取运算,每次每个从核读取一个数据块和对应的计算模型参数矩阵,当某个从核计算完成后通过DMA将计算结果和更新的模型参数传回主核,再取下一次的计算区域,直到计算完成为止;从核计算过程中主核处于等待状态,直到所有的从核计算任务完成,主核汇聚当前帧的前景图像并写入新的计算模型参数值,进行编码转化写入视频,再读取下一帧视频。
5.根据权利要求4所述的基于众核处理器的视频分析加速系统,其特征在于,所述参数初始化模块中还包括,将每个像素点的计算模型参数放至在从核的局部缓存上。
6.根据权利要求4所述的基于众核处理器的视频分析加速系统,其特征在于,当存在多个核组数时,对每一帧的视频图像按照行进行分割处理,当多个核组同时工作时,进程为0的负责视频流的编码、解码和视频帧的转码,剩余的核组进行计算模型计算,每个核组再依次取得对0号进程所分配的像素坐标区域的像素值,模型参数矩阵存储在每个主核的主存中,取得任务的主核再划分数据块,分配给自己的从核阵列进行计算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110196844.8A CN113012023B (zh) | 2021-02-22 | 2021-02-22 | 基于众核处理器的视频分析加速方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110196844.8A CN113012023B (zh) | 2021-02-22 | 2021-02-22 | 基于众核处理器的视频分析加速方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113012023A CN113012023A (zh) | 2021-06-22 |
CN113012023B true CN113012023B (zh) | 2024-03-22 |
Family
ID=76405724
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110196844.8A Active CN113012023B (zh) | 2021-02-22 | 2021-02-22 | 基于众核处理器的视频分析加速方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113012023B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114398001B (zh) * | 2021-12-03 | 2024-02-20 | 北京数字电视国家工程实验室有限公司 | 一种超大序列图像传输方法、装置以及计算机 |
CN114374848B (zh) * | 2021-12-20 | 2024-03-19 | 杭州当虹科技股份有限公司 | 一种视频编码优化方法和系统 |
CN114970294B (zh) * | 2022-08-02 | 2022-10-25 | 山东省计算中心(国家超级计算济南中心) | 基于神威架构的三维应变仿真pcg并行优化方法及系统 |
CN115629876B (zh) * | 2022-10-19 | 2023-07-28 | 慧之安信息技术股份有限公司 | 一种基于可扩展硬件加速的智能视频处理方法和系统 |
CN116485691B (zh) * | 2023-04-25 | 2024-01-26 | 西南石油大学 | 一种基于直方图均衡优化算法的图像处理方法及系统 |
CN116431562B (zh) * | 2023-06-12 | 2023-11-28 | 太初(无锡)电子科技有限公司 | 一种基于加速处理器的多头注意力机制融合计算分配方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112306678A (zh) * | 2020-10-22 | 2021-02-02 | 中国海洋大学 | 一种基于异构众核处理器的算法并行处理方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8023562B2 (en) * | 2007-09-07 | 2011-09-20 | Vanguard Software Solutions, Inc. | Real-time video coding/decoding |
-
2021
- 2021-02-22 CN CN202110196844.8A patent/CN113012023B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112306678A (zh) * | 2020-10-22 | 2021-02-02 | 中国海洋大学 | 一种基于异构众核处理器的算法并行处理方法及系统 |
Non-Patent Citations (2)
Title |
---|
庞红硕 ; .突破全息直觉理论 打造机器智能引擎――记复旦大学智能机器人研究院副院长张立华.科学中国人.2020,(11),全文. * |
赵美婷 ; 刘轶 ; 刘锐 ; 宋凯达 ; 钱德沛 ; .基于申威众核处理器的HOG特征提取算法并行加速.计算机工程与科学.2017,(04),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN113012023A (zh) | 2021-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113012023B (zh) | 基于众核处理器的视频分析加速方法及系统 | |
CN110610510B (zh) | 目标跟踪方法、装置、电子设备及存储介质 | |
US11315213B2 (en) | Unified architecture for BVH construction based on hardware pre-sorting and a parallel, reconfigurable clustering array | |
CN111614769B (zh) | 一种深度学习技术的行为智能分析引擎系统及控制方法 | |
EP3675046B1 (en) | Speculative execution of hit and intersection shaders on programmable ray tracing architectures | |
CN100336075C (zh) | 利用具有时间分配器的图形渲染引擎的装置、方法和系统 | |
US11915357B2 (en) | Apparatus and method for throttling a ray tracing pipeline | |
CN109769115B (zh) | 一种优化智能视频分析性能的方法、装置和设备 | |
CN111241343A (zh) | 一种道路信息监控与分析检测方法、智慧交通控制系统 | |
CN110751676A (zh) | 一种基于目标检测的异构计算系统、方法和可读存储介质 | |
CN105554591A (zh) | 视频分析方法和设备 | |
CN111553213A (zh) | 移动边缘云中实时分布式的身份感知行人属性识别方法 | |
Cuevas et al. | Moving object detection for real-time augmented reality applications in a GPGPU | |
US11106919B1 (en) | Processing of video streams | |
Rakhimov et al. | Parallel implementation of real-time object detection using OpenMP | |
WO2018121627A1 (zh) | 一种直方图统计电路及多媒体处理系统 | |
CN114554279B (zh) | 基于远程分析的触发器响应剪辑提取 | |
CN117170886A (zh) | 一种面向大连接视频分析的连续学习资源调度方法及装置 | |
CN114339266A (zh) | 一种基于国产cpu和操作系统的视频流队列处理方法 | |
CN112261440B (zh) | 基于镜头识别及场景识别的分布式超高清视频识别方法和系统 | |
CN110532071B (zh) | 一种基于gpu的多应用调度系统和方法 | |
CN111311603B (zh) | 用于输出目标物体数目信息的方法和装置 | |
CN109669780B (zh) | 一种视频解析方法及系统 | |
CN113255538A (zh) | 基于fpga的红外弱小目标的检测跟踪装置及方法 | |
Zhang et al. | An attention-enhanced edge-cloud collaborative framework for multi-task application |
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 |