CN116152043B - 一种基于图像处理的内存管理方法及装置、电子设备 - Google Patents
一种基于图像处理的内存管理方法及装置、电子设备 Download PDFInfo
- Publication number
- CN116152043B CN116152043B CN202310395592.0A CN202310395592A CN116152043B CN 116152043 B CN116152043 B CN 116152043B CN 202310395592 A CN202310395592 A CN 202310395592A CN 116152043 B CN116152043 B CN 116152043B
- Authority
- CN
- China
- Prior art keywords
- pixel
- block
- parallel processing
- storage
- blocks
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 166
- 238000007726 management method Methods 0.000 title claims abstract description 18
- 238000000034 method Methods 0.000 claims abstract description 49
- 238000004590 computer program Methods 0.000 claims description 13
- 230000005055 memory storage Effects 0.000 claims description 10
- 238000005516 engineering process Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 24
- 230000006870 function Effects 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 8
- 230000010365 information processing Effects 0.000 description 4
- 238000013507 mapping Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 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/60—Memory management
-
- 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/5011—Allocation 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/5016—Allocation 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
-
- 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)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本公开涉及计算机技术领域,公开了一种基于图像处理的内存管理方法及装置、电子设备,所述方法应用于目标内存,所述目标内存被划分为N个像素存储组,N是大于等于2的正整数,所述方法包括:接收数据并行处理请求,所述数据并行处理请求用于请求并行处理目标图像中的2n个像素块,2n是大于等于2且小于等于N的正整数;确定所述2n个像素块中每个像素块对应的像素存储组标识,所述2n个像素块中的相邻像素块对应不同的像素存储组标识;根据所述每个像素块对应的像素存储组标识,对所述2n个像素块进行并行处理。本公开实施例可以实现利用目标内存对目标图像中相邻的多个像素块进行并行处理,有效提高图像处理效率。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种基于图像处理的内存管理方法及装置、电子设备。
背景技术
图像处理中可能会涉及像素数据处理,像素产生模块/程序将图像的像素数据写入内存中进行存储,像素处理模块/程序从内存中读取图像的像素数据,进而对读取到的图像的像素数据进行图像处理操作,得到图像处理结果。但是,相关技术中的像素数据处理过程,受限于内存的数据读写速率,导致图像处理效率较低。
发明内容
本公开提出了一种基于图像处理的内存管理方法及装置、电子设备的技术方案。
根据本公开的一方面,提供了一种基于图像处理的内存管理方法,所述方法应用于目标内存,所述目标内存被划分为N个像素存储组,其中,N是大于等于2的正整数,所述方法包括:接收数据并行处理请求,其中,所述数据并行处理请求用于请求并行处理目标图像中的2n个像素块,其中,2n是大于等于2且小于等于N的正整数;确定所述2n个像素块中每个像素块对应的像素存储组标识,其中,所述2n个像素块中的相邻像素块对应不同的像素存储组标识;根据所述每个像素块对应的像素存储组标识,对所述2n个像素块进行并行处理。
在一种可能的实现方式中,所述数据并行处理请求包括:数据并行写入请求、数据并行读取请求。
在一种可能的实现方式中,所述方法还包括:根据并行处理需求,确定所述N个像素存储组的个数,其中,所述并行处理需求用于指示单次最大并行处理的像素块的个数。
在一种可能的实现方式中,在所述目标内存为线性内存存储排布的情况下,所述确定所述2n个像素块中每个像素块对应的像素存储组标识,包括:在所述2n个像素块为所述目标图像中横向相邻的2n个像素块时,确定所述2n个像素块分别对应不同的像素存储组标识;或,在所述2n个像素块为所述目标图像中纵向相邻的2n个像素块时,确定所述2n个像素块分别对应不同的像素存储组标识。
在一种可能的实现方式中,在所述目标内存为Z型内存存储排布的情况下,所述确定所述2n个像素块中每个像素块对应的像素存储组标识,包括:在所述2n个像素块包括所述目标图像中至少一个2×2结构时,确定每个所述2×2结构中的4个像素块分别对应不同的像素存储组标识。
在一种可能的实现方式中,每个像素存储组中包括多个像素存储行;在所述数据并行处理请求为数据并行写入请求的情况下,所述根据所述每个像素块对应的像素存储组标识,对所述2n个像素块进行并行处理,包括:针对所述2n个像素块中的任意一个像素块,确定所述像素块对应的像素存储行标识;将所述像素块对应的像素数据写入所述目标内存中的目标位置,其中,所述目标位置为所述像素块对应的像素存储组标识指示的像素存储组中,所述像素块对应的所述像素存储行标识指示的像素存储行。
在一种可能的实现方式中,每个像素存储组中包括多个像素存储行;在所述数据并行处理请求为数据并行读取请求的情况下,所述根据所述每个像素块对应的像素存储组标识,对所述2n个像素块进行并行处理,包括:针对所述2n个像素块中的任意一个像素块,确定所述像素块对应的像素存储行标识;从所述目标内存中的目标位置读取所述像素块对应的像素数据,其中,所述目标位置为所述像素块对应的像素存储组标识指示的像素存储组中,所述像素块对应的所述像素存储行标识指示的像素存储行。
根据本公开的一方面,提供了一种基于图像处理的内存管理装置,所述装置应用于目标内存,所述目标内存被划分为N个像素存储组,其中,N是大于等于2的正整数,所述装置包括:接收模块,用于接收数据并行处理请求,其中,所述数据并行处理请求用于请求并行处理目标图像中的2n个像素块,其中,2n是大于等于2且小于等于N的正整数;存储分组选择模块,用于确定所述2n个像素块中每个像素块对应的像素存储组标识,其中,所述2n个像素块中的相邻像素块对应不同的像素存储组标识;处理模块,用于根据所述每个像素块对应的像素存储组标识,对所述2n个像素块进行并行处理。
根据本公开的一方面,提供了一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为调用所述存储器存储的指令,以执行上述方法。
根据本公开的一方面,提供了一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述方法。
在本公开实施例中,在利用被划分为N个像素存储组的目标内存进行图像处理时,接收用于请求并行处理目标图像中的2n个像素块数据的并行处理请求;确定2n个像素块中每个像素块对应的像素存储组标识,其中,2n个像素块中的相邻像素块对应不同的像素存储组标识;根据每个像素块对应的像素存储组标识,对2n个像素块进行并行处理。通过将目标内存划分为不同像素存储组,以及将目标图像中相邻的多个像素块映射到不同的像素存储组,从而可以实现利用目标内存对目标图像中相邻的多个像素块进行并行处理,有效提高图像处理效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开。根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。
图1示出根据本公开实施例的一种基于图像处理的内存管理方法的流程图。
图2示出根据本公开实施例的目标内存的结构示意图。
图3示出根据本公开实施例的一个像素点的示意图。
图4示出根据本公开实施例的一个2×2结构像素块的示意图。
图5示出根据本公开实施例的图4所示的2×2结构像素块的数据排布示意图。
图6示出根据本公开实施例的目标图像到像素存储组的映射关系示意图。
图7示出根据本公开实施例的一种基于图像处理的内存管理装置的框图。
图8示出根据本公开实施例的一种电子设备的框图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
另外,为了更好地说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
图像处理中会涉及像素数据处理,在处理过程中,通常相邻像素块会被一起请求,或者在处理后合并在一起做数据传输,因此,如果能将相邻像素块的像素数据并行写入内存,以实现后续并行读取,从而有效加速像素数据的读写速率,进而可以有效提高图像的处理效率和传输效率。
本公开提供了一种应用于目标内存的基于图像处理的内存管理方法,可以有效实现利用目标内存对目标图像中多个相邻像素块进行并行处理。下面对本公开提供的基于图像处理的内存管理方法进行详细描述。
图1示出根据本公开实施例的一种基于图像处理的内存管理方法的流程图。该方法可以由终端设备或服务器等电子设备执行,终端设备可以为用户设备(User Equipment,UE)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字助理(Personal DigitalAssistant,PDA)、手持设备、计算设备、车载设备、可穿戴设备等,该方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。或者,可通过服务器执行该方法。该方法应用于利用目标内存进行图像处理,目标内存被划分为N个像素存储组,其中,N是大于等于2的整数。图2示出根据本公开实施例的目标内存的结构示意图。如图2所示,目标内存被划分为4个像素存储组:组0至组3。
如图1所示,该方法包括:
在步骤S11中,接收数据并行处理请求,其中,数据并行处理请求用于请求并行处理目标图像中的2n个像素块,其中,2n是大于等于2且小于等于N的正整数。
目标图像包括多个像素点,每个像素点的像素数据的数据量可以根据实际情况进行灵活设置,本公开对此不作具体限定。图3示出根据本公开实施例的一个像素点的示意图。如图3所示,一个像素点包括四个通道:通道0至通道3(例如,常见的四通道ARGB),每个通道包括16比特(bits)数据,因此,一个像素点包括64bits像素数据。一个像素点包括的通道数,以及每个通道包括的数据量,可以根据实际情况灵活设置,本公开对此不作具体限定。
为了提高图像处理效率,对目标图像中由多个像素点构成的像素块为单位进行图像处理。一个像素块包括的像素点的个数可以根据实际情况灵活设置,本公开对此不作具体限定。图4示出根据本公开实施例的一个2×2结构像素块的示意图。如图4所示,2×2结构像素块包括四个像素点,按照右上、左上、右下、左下的顺序依次是像素0至像素3。像素块中包括的多个像素点的个数,以及多个像素点的顺序可以根据实际情况灵活设置,本公开对此不作具体限定。
图5示出根据本公开实施例的图4所示的2×2结构像素块的数据排布示意图。如图5所示,图4所示的2×2结构像素块中每个像素点包括64bits像素数据,像素0对应的像素数据在最低64bits位,像素3对应的像素数据在最高64bits位,2×2结构像素块共包括256bits像素数据。单次最小并行处理的像素块的个数为1。以图4、图5为例,最小并行处理的像素块的个数为1时,即最小并行处理4个像素点,256bits像素数据;最小并行处理的像素块的个数为2时,即最小并行处理8个像素点,2×256bits像素数据;以此类推。并行处理的像素块的上限取决去系统硬件具体配置,本公开对此不作具体限定。
为了进一步提高图像处理效率,利用目标内存单次最大并行处理的像素块的个数通常大于1,即并行处理多个像素块。因此,基于数据并行处理请求,以用于请求利用目标内存并行处理2n个像素块。根据n的取值不同,利用目标内存可以对2个、4个、8个、16个等像素块进行并行处理,此处不作赘述。
在步骤S12中,确定2n个像素块中每个像素块对应的像素存储组标识,其中,2n个像素块中的相邻像素块对应不同的像素存储组标识。
考虑到图像处理过程中存在对目标图像中相邻像素数据的运算处理,或者在处理结束后存在多个相邻像素数据的一起打包传输以减少交互接口,因此,将2n个像素块中的相邻像素块映射到目标内存中的不同像素存储组,以实现利用目标内存对相邻像素块进行并行处理。
在步骤S13中,根据每个像素块对应的像素存储组标识,对2n个像素块进行并行处理。
在本公开实施例中,通过将目标内存划分为不同像素存储组,以及将目标图像中相邻像素块映射到不同的像素存储组,从而可以实现利用目标内存对目标图像中多个相邻像素块进行并行处理,有效提高图像处理效率。
在一种可能的实现方式中,该方法还包括:根据并行处理需求,确定N个像素存储组的个数,其中,并行处理需求用于指示单次最大并行处理的像素块的个数。
目标内存中N个像素存储组的个数需要满足单次最大并行处理的像素块的个数。例如,在单次最大并行处理的像素块的个数为2时,将目标内存至少划分为N=2个像素存储组。
考虑到系统并行化扩展性能,目标内存划分为的N个像素存储组的个数可以大于当前单次最大并行处理的像素块的个数。例如,在当前单次最大并行处理的像素块的个数为2时,将目标内存至少划分为N=4个像素存储组,为后续将单次最大并行处理的像素块的个数扩展为4提供支持。
在一种可能的实现方式中,在目标内存为线性内存存储排布的情况下,确定2n个像素块中每个像素块对应的像素存储组标识,包括:在2n个像素块为目标图像中横向相邻的2n个像素块时,确定2n个像素块分别对应不同的像素存储组标识;或,在2n个像素块为目标图像中纵向相邻的2n个像素块时,确定2n个像素块分别对应不同的像素存储组标识。
在目标内存为线性内存存储排布的情况下,目标图像中的像素块逐行逐列写入目标内存进行存储,为了确保目标图像中2n个相邻像素块能够并行处理,将目标图像中横向相邻的2n个像素块映射到不同的像素存储组;和/或,将目标图像中纵向相邻的2n个像素块映射到不同的像素存储组。
将目标图像中横向相邻的2n个像素块映射到不同的像素存储组,纵向相邻的2n个像素块映射到不同的像素存储组的方式可以根据实际情况采用任意方式,本公开对此不作具体限定。
在一种可能的实现方式中,在目标内存为Z型内存存储排布的情况下,确定2n个像素块中每个像素块对应的像素存储组标识,包括:在2n个像素块包括目标图像中至少一个2×2结构时,确定每个2×2结构中的4个像素块分别对应不同的像素存储组标识。
在目标内存为Z型内存存储排布的情况下,目标图像中的像素块按照2×2结构写入目标内存进行存储,为了确保目标图像中2n个相邻像素块能够并行处理,将目标图像中每个2×2结构中的4个像素块分别映射到不同的像素存储组。
将目标图像中每个2×2结构中的4个像素块分别映射到不同的像素存储组的方式可以根据实际情况采用任意方式,本公开对此不作具体限定。
图6示出根据本公开实施例的目标图像到像素存储组的映射关系示意图。目标内存被划分为4个像素存储组:组0至组3,且单次能够并行处理4个像素块,在此情况下,如图6所示,目标图像中横向相邻的4个像素块分别映射到不同的像素存储组、纵向相邻的4个像素块也分别映射到不同的像素存储组、以及每个2×2结构中的4个像素块分别映射到不同的像素存储组。
在一种可能的实现方式中,数据并行处理请求包括:数据并行写入请求、数据并行读取请求。
在图像处理过程中,可以向目标内存写入像素数据,也可以从目标内存中读取像素数据。
如图2所示,在目标内存前级存在一个像素产生模块,像素产生模块与目标内存之间有一组写入接口;目标内存后级存在一个像素处理模块,像素处理模块与目标内存之间有两组读取接口:读取接口0和读取接口1。像素产生模块和像素处理模块的具体个数、写入接口和读取接口的具体组数可以根据实际情况进行灵活设置,本公开对此不作具体限定。
目标内存前级的像素产生模块,后级的像素处理模块可以是硬件模块,也可以是软件程序,本公开对此不作具体限定。
基于像素产生模块发送的数据并行写入请求,利用写入接口向目标内存并行写入像素数据;基于像素处理模块发送的数据并行读取请求,利用读取接口从目标内存并行读取像素数据。
在并行处理的像素块个数为2时,以图2为例,写入接口单个时钟周期可写入两个像素块,即2×256bits像素数据;每组读取接口一次可读取一个像素块,因此,单个时钟周期可同时读取两个像素块,即2×256bits像素数据。
由于不同的像素产生模块对应的是不同的图像处理任务,因此,还可以根据像素产生模块的个数,将每个像素存储组划分为不同的存储区域。例如,在目标内存前级存在两个像素产生模块A和B时,将每个像素存储组划分为两个不同的存储区域a和b,进而将像素产生模块A对应的像素数据存储在每个像素存储组的存储区域a,将像素产生模块B对应的像素数据存储在每个像素存储组的存储区域b,以使得后续可以对不同像素产生模块对应的像素数据进行并行读取,提高图像处理效率。
像素处理模块从目标内存中并行读取多个像素块后,可以进一步对读取到的多个像素块执行并行运算处理,其中,并行运算处理包括:加减乘除、矩阵运算、数据压缩以及其他算法运算或功能性运算等,本公开对此不作具体限定。
在一种可能的实现方式中,每个像素存储组中包括多个像素存储行。
每个像素存储组被划分为多个像素存储行,其中,一个像素存储行用于存储一个像素块的像素数据。
每个像素存储组对应的像素存储行的个数,需要根据目标内存能够容纳的像素数据量来确定。在一示例中,一个像素块包括256bits像素数据,则一个像素存储行的行宽为256bits。在一示例中,目标内存被划分为4个像素存储组,目标内存能够容纳8×8×8个像素块的像素数据量,则每个像素存储组对应的像素存储行的个数为8×8×8/4=128。
在一种可能的实现方式中,在数据并行处理请求为数据并行写入请求的情况下,根据每个像素块对应的像素存储组标识,对2n个像素块进行并行处理,包括:针对2n个像素块中的任意一个像素块,确定像素块对应的像素存储行标识;将像素块对应的像素数据写入目标内存中的目标位置,其中,目标位置为像素块对应的像素存储组标识指示的像素存储组中,像素块对应的像素存储行标识指示的像素存储行。
针对数据并行写入请求,在单次可并行写入的2n个像素块时,确定每个像素块对应的像素存储组标识和像素存储行标识;进而,针对2n个像素块中的任意一个像素块,将该像素块对应的像素数据写入目标内存中该像素块对应的像素存储组标识指示的像素存储组中,该像素块对应的像素存储行标识指示的像素存储行。2n个像素块可并行写入目标内存。确定每个像素块对应的像素存储组标识可以参考上述实施例相关描述,此处不作赘述。
例如,针对像素块A,确定像素块A对应的像素存储组标识为组0,对应的像素存储行标识为第6行,则将像素块A对应的像素数据,写入目标内存中像素存储组0中的第6个像素存储行。
在将目标图像对应的像素数据写入目标内存之后,可以通知像素处理模块从目标内存中读取相应的像素数据进行像素处理。
在一种可能的实现方式中,在数据并行处理请求为数据并行读取请求的情况下,根据每个像素块对应的像素存储组标识,对2n个像素块进行并行处理,包括:针对2n个像素块中的任意一个像素块,确定像素块对应的像素存储行标识;从目标内存中的目标位置读取像素块对应的像素数据,其中,目标位置为像素块对应的像素存储组标识指示的像素存储组中,像素块对应的像素存储行标识指示的像素存储行。
针对数据并行读取请求,在单次可并行读取的2n个像素块时,确定每个像素块对应的像素存储组标识和像素存储行标识;进而,针对2n个像素块中的任意一个像素块,从目标内存中该像素块对应的像素存储组标识指示的像素存储组中,该像素块对应的像素存储行标识指示的像素存储行中,读取该像素块对应的像素数据。可从目标内存中并行读取2n个像素块。确定每个像素块对应的像素存储组标识可以参考上述实施例相关描述,此处不作赘述。
例如,针对像素块B,确定像素块B对应的像素存储组标识为组2,对应的像素存储行标识为第9行,则从目标内存中像素存储组2中的第9个像素存储行,读取像素块B对应的像素数据。
在本公开实施例中,在利用被划分为N个像素存储组的目标内存进行图像处理时,接收用于请求并行处理目标图像中的2n个像素块数据的并行处理请求;确定2n个像素块中每个像素块对应的像素存储组标识,其中,2n个像素块中的相邻像素块对应不同的像素存储组标识;根据每个像素块对应的像素存储组标识,对2n个像素块进行并行处理。通过将目标内存划分为不同像素存储组,以及将目标图像中相邻的多个像素块映射到不同的像素存储组,从而可以实现利用目标内存对目标图像中相邻的多个像素块进行并行处理,有效提高图像处理效率。
可以理解,本公开提及的上述各个方法实施例,在不违背原理逻辑的情况下,均可以彼此相互结合形成结合后的实施例,限于篇幅,本公开不再赘述。本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
此外,本公开还提供了一种基于图像处理的内存管理装置、电子设备、计算机可读存储介质、程序,上述均可用来实现本公开提供的任一种基于图像处理的内存管理方法,相应技术方案和描述和参见方法部分的相应记载,不再赘述。
图7示出根据本公开实施例的一种基于图像处理的内存管理装置的框图。该装置应用于利用目标内存进行图像处理,目标内存被划分为N个像素存储组,其中,N是大于等于2的正整数。如图7所示,装置70包括:
接收模块71,用于接收数据并行处理请求,其中,数据并行处理请求用于请求并行处理目标图像中的2n个像素块,其中,2n是大于等于2且小于等于N的正整数;
存储分组选择模块72,用于确定2n个像素块中每个像素块对应的像素存储组标识,其中,2n个像素块中的相邻像素块对应不同的像素存储组标识;
处理模块73,用于根据每个像素块对应的像素存储组标识,对2n个像素块进行并行处理。
在一种可能的实现方式中,数据并行处理请求包括:数据并行写入请求、数据并行读取请求。
在一种可能的实现方式中,装置70还包括:
存储分组确定模块,用于根据并行处理需求,确定N个像素存储组的个数,其中,并行处理需求用于指示单次最大并行处理的像素块的个数。
在一种可能的实现方式中,在目标内存为线性内存存储排布的情况下,存储分组选择模块72,具体用于:
在2n个像素块为目标图像中横向相邻的2n个像素块时,确定2n个像素块分别对应不同的像素存储组标识;或,
在2n个像素块为目标图像中纵向相邻的2n个像素块时,确定2n个像素块分别对应不同的像素存储组标识。
在一种可能的实现方式中,在目标内存为Z型内存存储排布的情况下,存储分组选择模块72,具体用于:
在2n个像素块包括目标图像中至少一个2×2结构时,确定每个2×2结构中的4个像素块分别对应不同的像素存储组标识。
在一种可能的实现方式中,每个像素存储组中包括多个像素存储行;
在数据并行处理请求为数据并行写入请求的情况下,处理模块73,包括:
第一像素存储行选择子模块,用于针对2n个像素块中的任意一个像素块,确定像素块对应的像素存储行标识;
像素写入子模块,用于将像素块对应的像素数据写入目标内存中的目标位置,其中,目标位置为像素块对应的像素存储组标识指示的像素存储组中,像素块对应的像素存储行标识指示的像素存储行。
在一种可能的实现方式中,每个像素存储组中包括多个像素存储行;
在数据并行处理请求为数据并行读取请求的情况下,处理模块73,包括:
第二像素存储行选择子模块,用于针对2n个像素块中的任意一个像素块,确定像素块对应的像素存储行标识;
像素读取子模块,用于从目标内存中的目标位置读取像素块对应的像素数据,其中,目标位置为像素块对应的像素存储组标识指示的像素存储组中,像素块对应的像素存储行标识指示的像素存储行。
该方法与计算机系统的内部结构存在特定技术关联,且能够解决如何提升硬件运算效率或执行效果的技术问题(包括减少数据存储量、减少数据传输量、提高硬件处理速度等),从而获得符合自然规律的计算机系统内部性能改进的技术效果。
在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。
本公开实施例还提出一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述方法。计算机可读存储介质可以是易失性或非易失性计算机可读存储介质。
本公开实施例还提出一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为调用所述存储器存储的指令,以执行上述方法。
本公开实施例还提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备的处理器中运行时,所述电子设备中的处理器执行上述方法。
电子设备可以被提供为终端、服务器或其它形态的设备。
图8示出根据本公开实施例的一种电子设备的框图。参照图8,电子设备1900可以被提供为一服务器或终端设备。参照图8,电子设备1900包括处理组件1922,其进一步包括一个或多个处理器,以及由存储器1932所代表的存储器资源,用于存储可由处理组件1922的执行的指令,例如应用程序。存储器1932中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1922被配置为执行指令,以执行上述方法。
电子设备1900还可以包括一个电源组件1926被配置为执行电子设备1900的电源管理,一个有线或无线网络接口1950被配置为将电子设备1900连接到网络,和一个输入输出接口1958。电子设备1900可以操作基于存储在存储器1932的操作系统,例如微软服务器操作系统(Windows ServerTM),苹果公司推出的基于图形用户界面操作系统(Mac OS XTM),多用户多进程的计算机操作系统(UnixTM),自由和开放原代码的类Unix操作系统(LinuxTM),开放原代码的类Unix操作系统(FreeBSDTM)或类似。
在示例性实施例中,还提供了一种非易失性计算机可读存储介质,例如包括计算机程序指令的存储器1932,上述计算机程序指令可由电子设备1900的处理组件1922执行以完成上述方法。
本公开可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是(但不限于)电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考,为了简洁,本文不再赘述。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
若本申请技术方案涉及个人信息,应用本申请技术方案的产品在处理个人信息前,已明确告知个人信息处理规则,并取得个人自主同意。若本申请技术方案涉及敏感个人信息,应用本申请技术方案的产品在处理敏感个人信息前,已取得个人单独同意,并且同时满足“明示同意”的要求。例如,在摄像头等个人信息采集装置处,设置明确显著的标识告知已进入个人信息采集范围,将会对个人信息进行采集,若个人自愿进入采集范围即视为同意对其个人信息进行采集;或者在个人信息处理的装置上,利用明显的标识/信息告知个人信息处理规则的情况下,通过弹窗信息或请个人自行上传其个人信息等方式获得个人授权;其中,个人信息处理规则可包括个人信息处理者、个人信息处理目的、处理方式以及处理的个人信息种类等信息。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (8)
1.一种基于图像处理的内存管理方法,其特征在于,所述方法应用于目标内存,所述目标内存被划分为N个像素存储组,其中,N是大于等于2的正整数,所述方法包括:
接收数据并行处理请求,其中,所述数据并行处理请求用于请求并行处理目标图像中的2n个像素块,其中,2n是大于等于2且小于等于N的正整数;
确定所述2n个像素块中每个像素块对应的像素存储组标识,其中,所述2n个像素块中的相邻像素块对应不同的像素存储组标识;
根据所述每个像素块对应的像素存储组标识,对所述2n个像素块进行并行处理;
所述方法还包括:
根据并行处理需求,确定所述N个像素存储组的个数,其中,所述并行处理需求用于指示单次最大并行处理的像素块的个数,单次最大并行处理的像素块的个数取决于系统硬件配置;
每个像素存储组中包括多个像素存储行,一个像素存储行用于存储一个像素块的像素数据,其中,图像处理的单位是多个像素点构成的像素块;
在所述数据并行处理请求为数据并行读取请求的情况下,所述根据所述每个像素块对应的像素存储组标识,对所述2n个像素块进行并行处理,包括:
针对所述2n个像素块中的任意一个像素块,确定所述像素块对应的像素存储行标识;
从所述目标内存中的目标位置读取所述像素块对应的像素数据,其中,所述目标位置为所述像素块对应的像素存储组标识指示的像素存储组中,所述像素块对应的所述像素存储行标识指示的像素存储行。
2.根据权利要求1所述的方法,其特征在于,所述数据并行处理请求包括:数据并行写入请求、数据并行读取请求。
3.根据权利要求1或2所述的方法,其特征在于,在所述目标内存为线性内存存储排布的情况下,所述确定所述2n个像素块中每个像素块对应的像素存储组标识,包括:
在所述2n个像素块为所述目标图像中横向相邻的2n个像素块时,确定所述2n个像素块分别对应不同的像素存储组标识;或,
在所述2n个像素块为所述目标图像中纵向相邻的2n个像素块时,确定所述2n个像素块分别对应不同的像素存储组标识。
4.根据权利要求1或2所述的方法,其特征在于,在所述目标内存为Z型内存存储排布的情况下,所述确定所述2n个像素块中每个像素块对应的像素存储组标识,包括:
在所述2n个像素块包括所述目标图像中至少一个2×2结构时,确定每个所述2×2结构中的4个像素块分别对应不同的像素存储组标识。
5.根据权利要求2所述的方法,其特征在于,每个像素存储组中包括多个像素存储行;
在所述数据并行处理请求为数据并行写入请求的情况下,所述根据所述每个像素块对应的像素存储组标识,对所述2n个像素块进行并行处理,包括:
针对所述2n个像素块中的任意一个像素块,确定所述像素块对应的像素存储行标识;
将所述像素块对应的像素数据写入所述目标内存中的目标位置,其中,所述目标位置为所述像素块对应的像素存储组标识指示的像素存储组中,所述像素块对应的所述像素存储行标识指示的像素存储行。
6.一种基于图像处理的内存管理装置,其特征在于,所述装置应用于目标内存,所述目标内存被划分为N个像素存储组,其中,N是大于等于2的正整数,所述装置包括:
接收模块,用于接收数据并行处理请求,其中,所述数据并行处理请求用于请求并行处理目标图像中的2n个像素块,其中,2n是大于等于2且小于等于N的正整数;
存储分组选择模块,用于确定所述2n个像素块中每个像素块对应的像素存储组标识,其中,所述2n个像素块中的相邻像素块对应不同的像素存储组标识;
处理模块,用于根据所述每个像素块对应的像素存储组标识,对所述2n个像素块进行并行处理;
所述装置还包括:
存储分组确定模块,用于根据并行处理需求,确定所述N个像素存储组的个数,其中,所述并行处理需求用于指示单次最大并行处理的像素块的个数,单次最大并行处理的像素块的个数取决于系统硬件配置;
每个像素存储组中包括多个像素存储行,一个像素存储行用于存储一个像素块的像素数据,其中,图像处理的单位是多个像素点构成的像素块;
在所述数据并行处理请求为数据并行读取请求的情况下,所述处理模块,包括:
第二像素存储行选择子模块,用于针对所述2n个像素块中的任意一个像素块,确定所述像素块对应的像素存储行标识;
像素读取子模块,用于从所述目标内存中的目标位置读取所述像素块对应的像素数据,其中,所述目标位置为所述像素块对应的像素存储组标识指示的像素存储组中,所述像素块对应的所述像素存储行标识指示的像素存储行。
7.一种电子设备,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为调用所述存储器存储的指令,以执行权利要求1至5中任意一项所述的方法。
8.一种计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求1至5任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310395592.0A CN116152043B (zh) | 2023-03-24 | 2023-03-24 | 一种基于图像处理的内存管理方法及装置、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310395592.0A CN116152043B (zh) | 2023-03-24 | 2023-03-24 | 一种基于图像处理的内存管理方法及装置、电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116152043A CN116152043A (zh) | 2023-05-23 |
CN116152043B true CN116152043B (zh) | 2024-03-08 |
Family
ID=86360302
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310395592.0A Active CN116152043B (zh) | 2023-03-24 | 2023-03-24 | 一种基于图像处理的内存管理方法及装置、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116152043B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101340580A (zh) * | 2008-08-15 | 2009-01-07 | 上海龙晶微电子有限公司 | 视频硬件解码器的片外动态存储器的地址映射方法 |
CN109255784A (zh) * | 2018-09-13 | 2019-01-22 | 北京市商汤科技开发有限公司 | 图像处理方法及装置、电子设备和存储介质 |
CN111915673A (zh) * | 2020-07-22 | 2020-11-10 | 深圳云天励飞技术有限公司 | 图像处理方法、装置、终端设备及存储介质 |
WO2021072592A1 (zh) * | 2019-10-14 | 2021-04-22 | 深圳市大疆创新科技有限公司 | 连通域分析方法、数据处理设备及计算机可读存储介质 |
WO2022218253A1 (zh) * | 2021-04-16 | 2022-10-20 | 维沃移动通信有限公司 | 图像块的处理方法、装置、电子设备、可读存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111108527B (zh) * | 2017-05-19 | 2023-06-30 | 莫维迪乌斯有限公司 | 用于当取回像素核时降低存储器延迟的方法、系统和设备 |
-
2023
- 2023-03-24 CN CN202310395592.0A patent/CN116152043B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101340580A (zh) * | 2008-08-15 | 2009-01-07 | 上海龙晶微电子有限公司 | 视频硬件解码器的片外动态存储器的地址映射方法 |
CN109255784A (zh) * | 2018-09-13 | 2019-01-22 | 北京市商汤科技开发有限公司 | 图像处理方法及装置、电子设备和存储介质 |
WO2021072592A1 (zh) * | 2019-10-14 | 2021-04-22 | 深圳市大疆创新科技有限公司 | 连通域分析方法、数据处理设备及计算机可读存储介质 |
CN111915673A (zh) * | 2020-07-22 | 2020-11-10 | 深圳云天励飞技术有限公司 | 图像处理方法、装置、终端设备及存储介质 |
WO2022218253A1 (zh) * | 2021-04-16 | 2022-10-20 | 维沃移动通信有限公司 | 图像块的处理方法、装置、电子设备、可读存储介质 |
Non-Patent Citations (1)
Title |
---|
遥感影像并行处理的数据划分及其路径优化算法;方雷;姚申君;包航成;康俊峰;刘婷;;测绘学报;20190515(第05期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116152043A (zh) | 2023-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11023801B2 (en) | Data processing method and apparatus | |
CN110058936B (zh) | 用于确定专用处理资源的资源量的方法、设备和计算机程序产品 | |
CN110516678B (zh) | 图像处理方法和装置 | |
CN110825436B (zh) | 应用于人工智能芯片的计算方法和人工智能芯片 | |
CN116431099B (zh) | 数据的处理方法、多输入输出队列电路及存储介质 | |
CN112929300B (zh) | 一种数据处理装置、方法、基站和存储介质 | |
CN116483584B (zh) | Gpu的任务处理方法、装置、电子设备和存储介质 | |
CN117130663B (zh) | 一种指令读取方法及l2指令缓存、电子设备和存储介质 | |
CN111914987A (zh) | 基于神经网络的数据处理方法及装置、设备和可读介质 | |
CN116152043B (zh) | 一种基于图像处理的内存管理方法及装置、电子设备 | |
CN112199404A (zh) | 报表的创建方法、装置、电子设备及计算机可读存储介质 | |
CN116962813A (zh) | 一种yuv数据渲染系统及方法、电子设备和存储介质 | |
CN111158907A (zh) | 数据处理方法及装置、电子设备和存储介质 | |
CN113204706B (zh) | 基于MapReduce的数据筛选抽取方法及系统 | |
CN115965520A (zh) | 特效道具、特效图的生成方法、装置、设备及存储介质 | |
CN116009792B (zh) | 一种图像处理中的数据读取、写入装置及方法、电子设备 | |
CN116737390B (zh) | 原子操作的处理方法、装置、电子设备和存储介质 | |
CN116360708B (zh) | 数据写入方法及装置、电子设备和存储介质 | |
CN111338827A (zh) | 表格数据的粘贴方法、装置以及电子设备 | |
CN113326942A (zh) | 模型推理方法及装置、电子设备和存储介质 | |
CN112711588A (zh) | 多表连接的方法和装置 | |
CN116643698B (zh) | 数据写入方法及装置、电子设备和存储介质 | |
CN116048816B (zh) | 数据请求处理方法、装置、电子设备和存储介质 | |
CN109377177B (zh) | 流程处理方法、装置、设备和计算机可读存储介质 | |
CN116643697A (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 |