CN111562948A - 在实时图像处理系统中实现串行任务并行化的系统及方法 - Google Patents

在实时图像处理系统中实现串行任务并行化的系统及方法 Download PDF

Info

Publication number
CN111562948A
CN111562948A CN202010600153.5A CN202010600153A CN111562948A CN 111562948 A CN111562948 A CN 111562948A CN 202010600153 A CN202010600153 A CN 202010600153A CN 111562948 A CN111562948 A CN 111562948A
Authority
CN
China
Prior art keywords
queue
image processing
image
real
result
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
Application number
CN202010600153.5A
Other languages
English (en)
Other versions
CN111562948B (zh
Inventor
陈海波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenlan industrial intelligent Innovation Research Institute (Ningbo) Co.,Ltd.
Original Assignee
DeepBlue AI Chips Research Institute Jiangsu Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by DeepBlue AI Chips Research Institute Jiangsu Co Ltd filed Critical DeepBlue AI Chips Research Institute Jiangsu Co Ltd
Priority to CN202010600153.5A priority Critical patent/CN111562948B/zh
Publication of CN111562948A publication Critical patent/CN111562948A/zh
Application granted granted Critical
Publication of CN111562948B publication Critical patent/CN111562948B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Image Processing (AREA)
  • Image Input (AREA)

Abstract

本发明公开了一种在实时图像处理系统中实现串行任务并行化的系统及方法,包括:图像输入步骤;图像处理步骤;显示结果步骤;上述三个过程并行处理,都有一个缓存队列,且队列长度如果处于已满的状态,则不能入队操作,如果未满,则进入处理,同时该缓存队列对上一个过程可见。本发明在实时图像处理系统中,将原本串行执行的步骤并行化,在不影响系统延迟的情况下,减少了每个处理流程的等待时间,提高了系统的帧率。同时采用数组模拟循环队列的方式,用空间换取时间,进一步缩短了流程中的耗时。

Description

在实时图像处理系统中实现串行任务并行化的系统及方法
技术领域
本发明涉及图像处理领域,更具体地涉及一种在实时图像处理系统中实现串行任务并行化的系统及方法。
背景技术
从图像输入到结果输出可能要经过多个处理过程,每个过程的输入又依赖前一个过程的输出,即中间处理流程为逻辑上串行的流程。在有限的运算资源前提下,为了提高结果输出的帧率(每秒输出的结果/图像数),需要通过将多个处理过程并行化。在并行的框架下,数据的同步、共享等问题需要被严格控制,本发明旨在提供一种在软件层面易于实现的串行任务并行化策略。
在图像处理领域,常用的提高效率的方法是利用成熟的并行计算框架(例如CUDA或OpenGL等),通过并行加速计算过程,但要求这个计算过程内部具有独立性(例如对一张图像的每个像素做一次色彩转换,像素之间没有互相依赖)。同时有些并行框架依赖于特定硬件(例如CUDA只针对英伟达公司的部分图像处理单元)。并且这些并行计算方法是针对单个处理过程的加速,并没有对整体处理流程的并行。
发明内容
1、本发明的目的
本发明为了解决现有技术中未整体并行处理的问题,而提出了一种在实时图像处理系统中实现串行任务并行化的系统及方法。
2、 本发明所采用的技术方案
本发明公开了一种在实时图像处理系统中实现串行任务并行化的方法,包括图像输入步骤;
图像处理步骤;
显示结果步骤;
上述三个过程并行处理,都有一个缓存队列,且队列长度如果处于已满的状态,则不能入队操作,如果未满,则进入处理,同时该缓存队列对上一个过程可见。
更进一步,图像输入步骤为A、图像处理步骤为B、显示结果步骤为C,对于任意一个 过程P,都有一个输入缓存队列
Figure 858840DEST_PATH_IMAGE001
,并规定队列长度为N时队列处于已满的状态,不能进行 入队操作,同时该缓存队列对过程P的上一个过程可见;对于上一场景中的过程B,其输入缓 存队列
Figure 723678DEST_PATH_IMAGE002
对于过程A可见,因为过程A需要将输出结果填入该队列,同时过程B可以将结果 填入过程C的输入缓存
Figure 232894DEST_PATH_IMAGE003
;每个处理过程都在一个独立的线程中运行,只要其输入缓存中 有值,即队列长度大于0,并且其下一个过程的输入缓存队列未满,即队列长度小于N就进行 处理,并将处理结果入队
Figure 693526DEST_PATH_IMAGE003
,否则等待直到满足上述条件。
更进一步,三个处理过程的耗时分别为
Figure 288193DEST_PATH_IMAGE004
Figure 864711DEST_PATH_IMAGE005
Figure 867915DEST_PATH_IMAGE006
,系统的帧率为
Figure 86667DEST_PATH_IMAGE007
更进一步,对于每个过程的输入缓存队列,采用数组模拟循环队列的方式,即在系 统初始化时就分配好N块内存空间,每一块内存空间对应存储一帧图像的数据,包括这一帧 图像在每个处理过程后的中间结果;同时维护一个长度为N的标记数组F,
Figure 480215DEST_PATH_IMAGE008
表示第
Figure 358959DEST_PATH_IMAGE009
块 内存空间中的数据的状态,且对于任意一块缓存空间
Figure 406549DEST_PATH_IMAGE009
,可以保证其中的所有数据均为同一 帧图像的结果。
更进一步,其中
Figure 333617DEST_PATH_IMAGE008
应在以下的状态之间循环切换,对于每个处理过程P,其都维 护一个仅自身可见的指针,其指向某一块缓存
Figure 528975DEST_PATH_IMAGE009
,只有当
Figure 143234DEST_PATH_IMAGE008
的状态为P的前一个过程处理 完成时,P再开始在缓存
Figure 284146DEST_PATH_IMAGE009
中读取需要的结果,并进行处理,之后把结果写入缓存
Figure 466604DEST_PATH_IMAGE009
中对应的 位置,并将
Figure 461559DEST_PATH_IMAGE008
置为“P完成”状态,同时指针指向下一块缓存区,并循环执行以上步骤。
本发明公开了一种在实时图像处理系统中实现串行任务并行化的系统包括图像输入模块;
图像处理模块;
显示结果模块;
上述三个模块并行执行,都有一个缓存队列,且队列长度如果处于已满的状态,则不能入队操作,如果未满,则进入处理,同时该缓存队列对上一个过程可见。
更进一步,图像输入模块为A、图像处理模块为B、显示结果模块为C,对于任意一个 过程P,都有一个输入缓存队列
Figure 735634DEST_PATH_IMAGE001
,并规定队列长度为N时队列处于已满的状态,不能进行 入队操作,同时该缓存队列对过程P的上一个过程可见;对于上一场景中的过程B,其输入缓 存队列
Figure 554554DEST_PATH_IMAGE002
对于过程A可见,因为过程A需要将输出结果填入该队列,同时过程B可以将结果 填入过程C的输入缓存
Figure 835144DEST_PATH_IMAGE003
;每个处理过程都在一个独立的线程中运行,只要其输入缓存中 有值,即队列长度大于0,并且其下一个过程的输入缓存队列未满,即队列长度小于N就进行 处理,并将处理结果入队
Figure 441312DEST_PATH_IMAGE003
,否则等待直到满足上述条件。
更进一步,三个处理过程的耗时分别为
Figure 961155DEST_PATH_IMAGE004
Figure 150695DEST_PATH_IMAGE005
Figure 363371DEST_PATH_IMAGE006
,系统的帧率为
Figure 259432DEST_PATH_IMAGE007
更进一步,对于每个过程的输入缓存队列,采用数组模拟循环队列的方式,即在系 统初始化时就分配好N块内存空间,每一块内存空间对应存储一帧图像的数据,包括这一帧 图像在每个处理过程后的中间结果;同时维护一个长度为N的标记数组F,
Figure 628972DEST_PATH_IMAGE008
表示第
Figure 484801DEST_PATH_IMAGE009
块 内存空间中的数据的状态,且对于任意一块缓存空间
Figure 361054DEST_PATH_IMAGE009
,可以保证其中的所有数据均为同一 帧图像的结果。
更进一步,其中
Figure 99071DEST_PATH_IMAGE008
应在以下的状态之间循环切换,对于每个处理过程P,其都维 护一个仅自身可见的指针,其指向某一块缓存
Figure 350930DEST_PATH_IMAGE009
,只有当
Figure 67125DEST_PATH_IMAGE008
的状态为P的前一个过程处理 完成时,P再开始在缓存
Figure 356024DEST_PATH_IMAGE009
中读取需要的结果,并进行处理,之后把结果写入缓存
Figure 283135DEST_PATH_IMAGE009
中对应的 位置,并将
Figure 903733DEST_PATH_IMAGE008
置为“P完成”状态,同时指针指向下一块缓存区,并循环执行以上模块。
3、本发明所采用的有益效果
(1)本发明在实时图像处理系统中,将原本串行执行的步骤并行化,在不影响系统延迟的情况下,减少了每个处理流程的等待时间,提高了系统的帧率。同时采用数组模拟循环队列的方式,用空间换取时间,进一步缩短了流程中的耗时。
(2)本发明在实时图像处理系统中对逻辑上严格串行的处理过程进行并行化,提高系统帧率。
(3)本发明利用数组模拟循环队列的思想,通过对一个标记数组的维护与查询实 现多线程间的数据共享与状态控制,相比直接用队列数据结构节省了执行过程中的时间开 销。在该策略下,所有的处理过程在遵循上述策略的条件下可以并发执行,则整个系统的帧 率变为
Figure 265313DEST_PATH_IMAGE007
,相比原先的
Figure 9934DEST_PATH_IMAGE010
有很大提高,而延迟则保持不变。
附图说明
图1为图像处理系统处理流程图;
图2为每一帧图像的处理流程抽象为A、B、C这3个过程的顺序执行流程图;
图3为独立的线程处理过程流程图;
图4为数组模拟循环队列示意图;
图5为状态循环切换示意图;
图6为缓存读取流程图。
具体实施方式
下面结合本发明实例中的附图,对本发明实例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域技术人员在没有做创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
下面将结合附图对本发明实例作进一步地详细描述。
实施例1
实时图像处理方法中,对于每一帧图像,都要经过如图1的步骤:
现将每一个图像处理的过程抽象为过程P,该过程可能是从摄像头获取图像、对图像进行色彩变化、对图像应用机器学习算法进行目标检测等,而通常这些过程是需要严格顺序执行的,且前一个步骤的输出会作为后一个结果的输入。于是我们将方法对于每一帧图像的处理流程抽象为A、B、C这3个过程的顺序执行,如图2。
假设三个处理过程的耗时分别为
Figure 784861DEST_PATH_IMAGE004
Figure 676725DEST_PATH_IMAGE005
Figure 860188DEST_PATH_IMAGE006
,则整个系统的帧率为
Figure 422713DEST_PATH_IMAGE010
,系统延迟为
Figure 324417DEST_PATH_IMAGE011
,这里的系统延迟指一帧图像从第一个处理过程(通常是摄像 头取图)开始,到最后一个处理过程(通常为显示器显示)结束所经过的时间。
现提出一种并行化策略,对于任意一个过程P,都有一个输入缓存队列
Figure 456190DEST_PATH_IMAGE001
,并规定 队列长度为N时队列处于已满的状态,不能进行入队操作,同时该缓存队列对过程P的上一 个过程可见。例如对于上述场景中的过程B,其输入缓存队列
Figure 939167DEST_PATH_IMAGE002
对于过程A可见,因为过程 A需要将输出结果填入该队列,同时过程B可以将结果填入过程C的输入缓存
Figure 803086DEST_PATH_IMAGE003
。每个处理 过程都在一个独立的线程中运行,只要其输入缓存中有值(队列长度大于0),并且其下一个 过程的输入缓存队列未满(队列长度小于N)就进行处理,并将处理结果入队
Figure 864190DEST_PATH_IMAGE003
,否则等待 直到满足上述条件。因此对于每一个处理过程流程图如图3(以上述场景中的过程B为例): (其中
Figure 754915DEST_PATH_IMAGE012
)表示B的缓存队列的长度)。
在该策略下,所有的处理过程在遵循上述策略的条件下可以并发执行,则整个系 统的帧率变为
Figure 522757DEST_PATH_IMAGE007
,相比原先的
Figure 823158DEST_PATH_IMAGE010
有很大提高,而延迟则保持不变。
在实现细节上,对于每个过程的输入缓存队列,采用数组模拟循环队列的方式以 节省时间,即在系统初始化时就分配好N块内存空间,每一块内存空间对应存储一帧图像的 数据,包括这一帧图像在每个处理过程后的中间结果。同时维护一个长度为N的标记数组F,
Figure 941198DEST_PATH_IMAGE008
表示第
Figure 414774DEST_PATH_IMAGE009
块内存空间中的数据的状态,且对于任意一块缓存空间
Figure 427336DEST_PATH_IMAGE009
,可以保证其中的所 有数据均为同一帧图像的结果。如图4:
其中
Figure 955095DEST_PATH_IMAGE008
应在以下的状态之间循环切换,如图5,而对于每个处理过程P,其都维护一 个仅自身可见的指针,其指向某一块缓存
Figure 288993DEST_PATH_IMAGE009
,只有当
Figure 503943DEST_PATH_IMAGE008
的状态为P的前一个过程处理完成 时,P再开始在缓存
Figure 189920DEST_PATH_IMAGE009
中读取需要的结果,并进行处理,之后把结果写入缓存
Figure 894440DEST_PATH_IMAGE009
中对应的位 置,并将
Figure 981213DEST_PATH_IMAGE008
置为“P完成”状态,同时指针指向下一块缓存区,并循环执行以上步骤。于是 每个处理过程的流程图改写为如图6的形式(以上述场景中的过程B为例);这样的实现方法 相当于在实际运行过程中把队列的出队和入队操作简化为了对一个标记位的赋值操作,把 所有申请或释放空间的操作集中在系统初始化阶段,进一步节省了系统运行时的耗时。
实施例2
本发明中,任务队列的长度是固定的,一般是根据硬件支持的并行线程数量来定,可以充分利用多核cpu的各个核心进行并行运算从而提高图像处理的帧率,旨在通过压榨硬件资源提高处理效率。本发明一帧图片在有限固定的处理流程之后就会输出,不会对后续的图片产生任何影响,即每张图片都是一次性处理完成,也不存在回溯的操作,从而保证系统的流畅。
实时图像处理系统中,对于每一帧图像,都要经过如图1的步骤:
图像输入模块;
图像处理模块;
显示结果模块;
实时图像处理系统中,对于每一帧图像,都要经过如图1的执行步骤:
每一个图像处理模块的过程抽象为过程P,该过程可能是从摄像头获取图像、对图像进行色彩变化、对图像应用机器学习算法进行目标检测等,而通常这些过程是需要严格顺序执行的,且前一个步骤的输出会作为后一个结果的输入。于是我们将系统对于每一帧图像的处理模块抽象为A、B、C这3个模块的顺序执行,如图2。
现提出一种并行化策略,对于任意一个过程P,都有一个输入缓存队列
Figure 796591DEST_PATH_IMAGE001
,并规 定队列长度为N时队列处于已满的状态,不能进行入队操作,同时该缓存队列对过程P的上 一个过程可见。
例如对于上述场景中的过程B,其输入缓存队列
Figure 99526DEST_PATH_IMAGE002
对于过程A可见,因为过程A需 要将输出结果填入该队列,同时过程B可以将结果填入过程C的输入缓存
Figure 411165DEST_PATH_IMAGE003
。每个处理过程 都在一个独立的线程中运行,只要其输入缓存中有值(队列长度大于0),并且其下一个过程 的输入缓存队列未满(队列长度小于N)就进行处理,并将处理结果入队
Figure 719656DEST_PATH_IMAGE003
,否则等待直到 满足上述条件。因此对于每一个处理过程流程图如图3(以上述场景中的过程B为例):(其中
Figure 656169DEST_PATH_IMAGE013
表示B的缓存队列的长度)。
在实现细节上,对于每个过程的输入缓存队列,采用数组模拟循环队列的方式以 节省时间,即在系统初始化时就分配好N块内存空间,每一块内存空间对应存储一帧图像的 数据,包括这一帧图像在每个处理过程后的中间结果。同时维护一个长度为N的标记数组F,
Figure 999294DEST_PATH_IMAGE008
表示第
Figure 45617DEST_PATH_IMAGE009
块内存空间中的数据的状态,且对于任意一块缓存空间
Figure 569964DEST_PATH_IMAGE009
,可以保证其中的所 有数据均为同一帧图像的结果。如图4:
其中
Figure 664828DEST_PATH_IMAGE008
应在以下的状态之间循环切换,如图5,而对于每个处理过程P,其都维护一 个仅自身可见的指针,其指向某一块缓存
Figure 190356DEST_PATH_IMAGE009
,只有当
Figure 849658DEST_PATH_IMAGE008
的状态为P的前一个过程处理完成 时,P再开始在缓存
Figure 742527DEST_PATH_IMAGE009
中读取需要的结果,并进行处理,之后把结果写入缓存
Figure 14983DEST_PATH_IMAGE009
中对应的位 置,并将
Figure 786498DEST_PATH_IMAGE008
置为“P完成”状态,同时指针指向下一块缓存区,并循环执行以上步骤。于是 每个处理过程的流程图改写为如图6的形式(以上述场景中的过程B为例);这样的实现方法 相当于在实际运行过程中把队列的出队和入队操作简化为了对一个标记位的赋值操作,把 所有申请或释放空间的操作集中在系统初始化阶段,进一步节省了系统运行时的耗时。
假设三个处理模块执行的耗时分别为
Figure 49989DEST_PATH_IMAGE004
Figure 934549DEST_PATH_IMAGE005
Figure 636795DEST_PATH_IMAGE006
,则整个系统的帧率为
Figure 426328DEST_PATH_IMAGE010
,系统延迟为
Figure 860721DEST_PATH_IMAGE011
,这里的系统延迟指一帧图像从第一个处理过程 (通常是摄像头取图)开始,到最后一个处理过程(通常为显示器显示)结束所经过的时间。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。

Claims (10)

1.一种在实时图像处理系统中实现串行任务并行化的方法,其特征在于包括:
图像输入步骤;
图像处理步骤;
显示结果步骤;
上述三个过程并行处理,都有一个缓存队列,且队列长度如果处于已满的状态,则不能入队操作,如果未满,则进入处理,同时该缓存队列对上一个过程可见。
2.根据权利要求1所述的在实时图像处理系统中实现串行任务并行化的方法,其特征 在于:图像输入步骤为A、图像处理步骤为B、显示结果步骤为C,对于任意一个过程P,都有一 个输入缓存队列
Figure 523822DEST_PATH_IMAGE001
,并规定队列长度为N时队列处于已满的状态,不能进行入队操作,同时 该缓存队列对过程P的上一个过程可见;对于上一场景中的过程B,其输入缓存队列
Figure 639545DEST_PATH_IMAGE002
对 于过程A可见,因为过程A需要将输出结果填入该队列,同时过程B可以将结果填入过程C的 输入缓存
Figure 734452DEST_PATH_IMAGE003
;每个处理过程都在一个独立的线程中运行,只要其输入缓存中有值,即队列 长度大于0,并且其下一个过程的输入缓存队列未满,即队列长度小于N就进行处理,并将处 理结果入队
Figure 900598DEST_PATH_IMAGE004
,否则等待直到满足上述条件。
3.根据权利要求2所述的在实时图像处理系统中实现串行任务并行化的方法,其特征 在于:三个处理过程的耗时分别为
Figure 583252DEST_PATH_IMAGE005
Figure 379299DEST_PATH_IMAGE006
Figure 24651DEST_PATH_IMAGE007
,系统的帧率为
Figure 863163DEST_PATH_IMAGE008
4.根据权利要求2所述的在实时图像处理系统中实现串行任务并行化的方法,其特征 在于:对于每个过程的输入缓存队列,采用数组模拟循环队列的方式,即在系统初始化时就 分配好N块内存空间,每一块内存空间对应存储一帧图像的数据,包括这一帧图像在每个处 理过程后的中间结果;同时维护一个长度为N的标记数组F,
Figure 898027DEST_PATH_IMAGE009
表示第
Figure 854088DEST_PATH_IMAGE010
块内存空间中的 数据的状态,且对于任意一块缓存空间
Figure 855411DEST_PATH_IMAGE010
,可以保证其中的所有数据均为同一帧图像的结 果。
5.根据权利要求4所述的在实时图像处理系统中实现串行任务并行化的方法,其特征 在于:其中
Figure 858965DEST_PATH_IMAGE009
应在以下的状态之间循环切换,对于每个处理过程P,其都维护一个仅自身 可见的指针,其指向某一块缓存
Figure 312949DEST_PATH_IMAGE010
,只有当
Figure 197335DEST_PATH_IMAGE009
的状态为P的前一个过程处理完成时,P再开 始在缓存
Figure 59024DEST_PATH_IMAGE010
中读取需要的结果,并进行处理,之后把结果写入缓存
Figure 613239DEST_PATH_IMAGE010
中对应的位置,并将
Figure 616836DEST_PATH_IMAGE009
置为P完成状态,同时指针指向下一块缓存区,并循环执行以上步骤。
6.一种在实时图像处理系统中实现串行任务并行化的系统,其特征在于包括图像输入模块;
图像处理模块;
显示结果模块;
上述三个模块并行执行,都有一个缓存队列,且队列长度如果处于已满的状态,则不能入队操作,如果未满,则进入处理,同时该缓存队列对上一个过程可见。
7.根据权利要求6所述的在实时图像处理系统中实现串行任务并行化的系统,其特征 在于:图像输入模块为A、图像处理模块为B、显示结果模块为C,对于任意一个过程P,都有一 个输入缓存队列
Figure 807645DEST_PATH_IMAGE001
,并规定队列长度为N时队列处于已满的状态,不能进行入队操作,同 时该缓存队列对过程P的上一个过程可见;对于上一场景中的过程B,其输入缓存队列
Figure 580297DEST_PATH_IMAGE002
对 于过程A可见,因为过程A需要将输出结果填入该队列,同时过程B可以将结果填入过程C的 输入缓存
Figure 993830DEST_PATH_IMAGE003
;每个处理过程都在一个独立的线程中运行,只要其输入缓存中有值,即队列 长度大于0,并且其下一个过程的输入缓存队列未满,即队列长度小于N就进行处理,并将处 理结果入队
Figure 428266DEST_PATH_IMAGE003
,否则等待直到满足上述条件。
8.根据权利要求7所述的在实时图像处理系统中实现串行任务并行化的系统,其特征 在于:三个处理过程的耗时分别为
Figure 155919DEST_PATH_IMAGE005
Figure 783078DEST_PATH_IMAGE006
Figure 1134DEST_PATH_IMAGE007
,系统的帧率为
Figure 25328DEST_PATH_IMAGE011
9.根据权利要求7所述的在实时图像处理系统中实现串行任务并行化的系统,其特征 在于:对于每个过程的输入缓存队列,采用数组模拟循环队列的方式,即在系统初始化时就 分配好N块内存空间,每一块内存空间对应存储一帧图像的数据,包括这一帧图像在每个处 理过程后的中间结果;同时维护一个长度为N的标记数组F,
Figure 556672DEST_PATH_IMAGE009
表示第
Figure 981881DEST_PATH_IMAGE010
块内存空间中的 数据的状态,且对于任意一块缓存空间
Figure 314380DEST_PATH_IMAGE010
,可以保证其中的所有数据均为同一帧图像的结 果。
10.根据权利要求9所述的在实时图像处理系统中实现串行任务并行化的系统,其特征 在于:其中
Figure 857746DEST_PATH_IMAGE009
应在以下的状态之间循环切换,对于每个处理过程P,其都维护一个仅自身 可见的指针,其指向某一块缓存
Figure 244646DEST_PATH_IMAGE010
,只有当
Figure 784080DEST_PATH_IMAGE009
的状态为P的前一个过程处理完成时,P再开 始在缓存
Figure 349797DEST_PATH_IMAGE010
中读取需要的结果,并进行处理,之后把结果写入缓存
Figure 906506DEST_PATH_IMAGE010
中对应的位置,并将
Figure 215872DEST_PATH_IMAGE009
置为P完成状态,同时指针指向下一块缓存区,并循环执行以上模块。
CN202010600153.5A 2020-06-29 2020-06-29 在实时图像处理系统中实现串行任务并行化的系统及方法 Active CN111562948B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010600153.5A CN111562948B (zh) 2020-06-29 2020-06-29 在实时图像处理系统中实现串行任务并行化的系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010600153.5A CN111562948B (zh) 2020-06-29 2020-06-29 在实时图像处理系统中实现串行任务并行化的系统及方法

Publications (2)

Publication Number Publication Date
CN111562948A true CN111562948A (zh) 2020-08-21
CN111562948B CN111562948B (zh) 2020-11-10

Family

ID=72075361

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010600153.5A Active CN111562948B (zh) 2020-06-29 2020-06-29 在实时图像处理系统中实现串行任务并行化的系统及方法

Country Status (1)

Country Link
CN (1) CN111562948B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112487034A (zh) * 2020-12-01 2021-03-12 上海思客琦智能装备科技股份有限公司 双队列异步图像处理方法及装置
CN113625934A (zh) * 2021-09-07 2021-11-09 东莞市盈聚电源有限公司 一种高效的环形缓存adc采集方法
CN113703998A (zh) * 2021-08-25 2021-11-26 深圳市慧鲤科技有限公司 图像转换方法、装置、电子设备及计算机可读存储介质
CN114065797A (zh) * 2021-11-12 2022-02-18 南京比邻智能软件有限公司 一种异步影像式高速条码识别方法
CN115514940A (zh) * 2022-11-22 2022-12-23 天地伟业技术有限公司 一种多目视频监控系统搭建方法及电子设备

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1577305A (zh) * 2003-07-28 2005-02-09 华为技术有限公司 一种并行处理的方法及系统
CN105136804A (zh) * 2014-05-28 2015-12-09 宝山钢铁股份有限公司 高速带钢表面图像采集及图像处理装置和方法
CN105787865A (zh) * 2016-03-01 2016-07-20 西华大学 基于游戏引擎和gpu并行处理的分形图生成与渲染方法
CN106453834A (zh) * 2016-09-07 2017-02-22 努比亚技术有限公司 移动终端和相机拍摄方法
CN109922322A (zh) * 2019-04-10 2019-06-21 Oppo广东移动通信有限公司 拍照方法、图像处理器、拍照装置及电子设备
CN110337002A (zh) * 2019-08-15 2019-10-15 南京邮电大学 一种在多核处理器平台上hevc多层次高效并行解码算法
CN111045732A (zh) * 2019-12-05 2020-04-21 腾讯科技(深圳)有限公司 数据处理方法、芯片、设备及存储介质
CN111131698A (zh) * 2019-12-23 2020-05-08 RealMe重庆移动通信有限公司 图像处理方法及装置、计算机可读介质、电子设备

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1577305A (zh) * 2003-07-28 2005-02-09 华为技术有限公司 一种并行处理的方法及系统
CN105136804A (zh) * 2014-05-28 2015-12-09 宝山钢铁股份有限公司 高速带钢表面图像采集及图像处理装置和方法
CN105787865A (zh) * 2016-03-01 2016-07-20 西华大学 基于游戏引擎和gpu并行处理的分形图生成与渲染方法
CN106453834A (zh) * 2016-09-07 2017-02-22 努比亚技术有限公司 移动终端和相机拍摄方法
CN109922322A (zh) * 2019-04-10 2019-06-21 Oppo广东移动通信有限公司 拍照方法、图像处理器、拍照装置及电子设备
CN110337002A (zh) * 2019-08-15 2019-10-15 南京邮电大学 一种在多核处理器平台上hevc多层次高效并行解码算法
CN111045732A (zh) * 2019-12-05 2020-04-21 腾讯科技(深圳)有限公司 数据处理方法、芯片、设备及存储介质
CN111131698A (zh) * 2019-12-23 2020-05-08 RealMe重庆移动通信有限公司 图像处理方法及装置、计算机可读介质、电子设备

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112487034A (zh) * 2020-12-01 2021-03-12 上海思客琦智能装备科技股份有限公司 双队列异步图像处理方法及装置
CN113703998A (zh) * 2021-08-25 2021-11-26 深圳市慧鲤科技有限公司 图像转换方法、装置、电子设备及计算机可读存储介质
CN113625934A (zh) * 2021-09-07 2021-11-09 东莞市盈聚电源有限公司 一种高效的环形缓存adc采集方法
CN113625934B (zh) * 2021-09-07 2024-03-26 东莞市盈聚电源有限公司 一种高效的环形缓存adc采集方法
CN114065797A (zh) * 2021-11-12 2022-02-18 南京比邻智能软件有限公司 一种异步影像式高速条码识别方法
CN114065797B (zh) * 2021-11-12 2023-05-30 南京比邻智能软件有限公司 一种异步影像式高速条码识别方法
CN115514940A (zh) * 2022-11-22 2022-12-23 天地伟业技术有限公司 一种多目视频监控系统搭建方法及电子设备

Also Published As

Publication number Publication date
CN111562948B (zh) 2020-11-10

Similar Documents

Publication Publication Date Title
CN111562948B (zh) 在实时图像处理系统中实现串行任务并行化的系统及方法
Yang et al. Re-thinking CNN frameworks for time-sensitive autonomous-driving applications: Addressing an industrial challenge
US7526634B1 (en) Counter-based delay of dependent thread group execution
EP3496007B1 (en) Device and method for executing neural network operation
US20120256922A1 (en) Multithreaded Processor and Method for Realizing Functions of Central Processing Unit and Graphics Processing Unit
US8074224B1 (en) Managing state information for a multi-threaded processor
US7447873B1 (en) Multithreaded SIMD parallel processor with loading of groups of threads
US20030135351A1 (en) Functional pipelines
US10078879B2 (en) Process synchronization between engines using data in a memory location
US9378533B2 (en) Central processing unit, GPU simulation method thereof, and computing system including the same
US10942771B2 (en) Method, apparatus and system for multi-module scheduling
US8363059B2 (en) Rendering processing apparatus, parallel processing apparatus, and exclusive control method
US7793012B2 (en) Information processing unit, system and method, and processor
CN112258378A (zh) 基于gpu加速的实时三维测量系统及方法
WO2018126486A1 (zh) 并行视频图像对比度增强方法和装置
CN116431562B (zh) 一种基于加速处理器的多头注意力机制融合计算分配方法
US20120151145A1 (en) Data Driven Micro-Scheduling of the Individual Processing Elements of a Wide Vector SIMD Processing Unit
WO2023184754A1 (zh) 可配置实时视差点云计算装置及方法
CN116635829A (zh) 用于高吞吐量和低开销内核启动的压缩命令分组
US6614438B1 (en) Data-processing arrangement for processing different types of data
CN111274049A (zh) 一种基于异构并行加速的高效多路视频分析方法
CN115499667B (zh) 一种视频处理方法、装置、设备及可读存储介质
CN111381887B (zh) 在mvp处理器中进行图像运动补偿的方法、装置及处理器
CN116681575B (zh) 图形处理单元、图形渲染方法、存储介质、终端设备
US11436166B2 (en) Data processing systems

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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220107

Address after: 315000 No. 138-1, Zhongshan West Road, Fenghua District, Ningbo City, Zhejiang Province (self declaration)

Patentee after: Shenlan industrial intelligent Innovation Research Institute (Ningbo) Co.,Ltd.

Address before: 213000 No.103, building 4, Chuangyan port, Changzhou science and Education City, No.18, middle Changwu Road, Wujin District, Changzhou City, Jiangsu Province

Patentee before: SHENLAN ARTIFICIAL INTELLIGENCE CHIP RESEARCH INSTITUTE (JIANGSU) Co.,Ltd.