CN108230229A - 图像处理装置以及图像处理方法 - Google Patents
图像处理装置以及图像处理方法 Download PDFInfo
- Publication number
- CN108230229A CN108230229A CN201810008431.0A CN201810008431A CN108230229A CN 108230229 A CN108230229 A CN 108230229A CN 201810008431 A CN201810008431 A CN 201810008431A CN 108230229 A CN108230229 A CN 108230229A
- Authority
- CN
- China
- Prior art keywords
- mentioned
- pixel
- block
- pixels
- source
- 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
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
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Processing (AREA)
Abstract
图像处理装置以及图像处理方法。该图像处理装置包括一缓冲器、一指针寄存器以及一算术逻辑单元。该缓冲器缓冲存储多个来源像素块。该指针寄存器包括至少一指令指针。该算术逻辑单元利用上述至少一指令指针自上述缓冲器中抓取上述多个来源像素块中的一第一来源像素块及上述第一来源像素块的邻接来源像素块中的邻接来源像素,以生成一第一目标像素块。
Description
技术领域
本申请涉及图像处理技术。
背景技术
图像处理装置(graphics processing unit,GPU)通常用在个人计算机、工作站、游戏机和一些移动装置(如平板计算机、智能手机等)上进行图像处理,涉及频繁抓取图像内容进行处理。如何降低图像抓取所耗费的系统资源为本技术领域一项重要议题。
发明内容
本申请以包含多个像素的“块”为单位来进行图像处理,使取得的像素复用率提升,减轻反复自系统存储器读取像素数据的负担。
根据本申请一种实施方式所实现的一图像处理装置包括一缓冲器、至少一指针寄存器以及一算术逻辑单元。该缓冲器缓冲存储多个来源像素块。该指针寄存器包括至少一指令指针。该算术逻辑单元利用上述至少一指令指针自上述缓冲器中抓取上述多个来源像素块中的一第一来源像素块及上述第一来源像素块的邻接来源像素块中的邻接来源像素,以生成一第一目标像素块。
根据本申请一种实施方式所实现的一图像处理方法器包括:在一图像处理装置内部设置一缓冲器,缓冲存储多个来源像素块;在该图像处理装置内部设置一指针寄存器,包括至少一指令指针;以及利用上述至少一指令指针自上述缓冲器中抓取上述多个来源像素块中的一第一来源像素块及上述第一来源像素块的邻接来源像素块中的邻接来源像素,以生成一第一目标像素块。
本申请的上述实施方式可以用“块”为单位进行图像处理,提高了对读取的图像数据的利用率以及图像处理的效率,避免了自系统存储器反复载入图像处理装置内的缓冲器,减少了抓取数据的次数。
下文特举实施例,并配合所附图示,详细说明本发明内容。
附图说明
图1根据本申请一种实施方式图解一图像处理装置100;
图2图解本申请图像处理的一种实施概念,其中各“块”尺寸为4x4像素;
图3图解本申请图像处理的另一种实施例,其中各“块”尺寸为8x8像素;
图4为流程图,基于图1根据本申请一种实施方式说明如何实施对图像的图像处理;以及
图5A及5B为基于图1说明当缓冲器106仅包括两个向量寄存器时如何实施对系统存储器102中的图像进行图像处理的流程图。
【符号说明】
100~图像处理装置;
102~系统存储器;
104~算术逻辑单元;
106~缓冲器;
108-V0、108-V1、108-V2以及108-V3~多个向量寄存器;
110~指针寄存器;
112~结果寄存器;
202、204、206、208~目标像素块;
201、201’、201”、201”’、203、203”、205、205’、207~来源像素块;
212…228、232…248、252…268以及272…288~标示以指针寄存器所进行的缓冲像素读取;
300~目标像素块;
302、304、306与308~目标块300的5x5视窗滤波所需要的来源像素;
312…360~标示以指针寄存器所进行的缓冲像素读取;
S402…S408、S502…S522~步骤。
具体实施方式
以下叙述列举本发明的多种实施例。以下叙述介绍本发明的基本概念,且并非意图限制本发明内容。实际发明范围应依照权利要求书界定。
图1根据本申请一种实施方式图解一图像处理装置100,对一图像进行图像处理。图像可为图片或是视频中的一画面,该图像数据可存储于系统存储器(system memory)102中。图像处理装置100可以“块”(包括n行及m列来源像素的nxm像素矩阵,n与m为大于1的整数)为单位(非单一个像素)从系统存储器102中抓取图像中的像素数据,以“块”为单位将抓取的像素数据缓冲存储于缓冲器106中的一向量寄存器(例如,108-V0…108-V3之一),并抓取缓冲器106中的像素数据进行处理获得以“块”(包括n行及m列目标像素的nxm像素矩阵,n与m为大于1的整数)为单位的处理结果,最终获得图像的图像处理结果。本申请旨在以“块”为单位进行图像处理,提高了对读取的图像数据的利用率以及图像处理的效率,避免了自系统存储器反复载入图像处理装置内的缓冲器。本发明的图像处理装置100可以是图像处理器(graphic processing unit,GPU)、视觉处理器(vision processing unit,VPU)或数字信号处理模块(digital signal processing,DSP)等。
所述图像处理包括对来源像素数据进行处理以得到目标像素。例如,以pxq的滤波器(filter)或核(kernel)对视窗像素(即p行及q列的来源像素)进行滤波运算,得到一视窗中心像素,该视窗中心像素为目标像素,其中,滤波器的宽度p与滤波器的高度q为大于1的整数。更具体而言,所述图像处理包括以来源像素块(nxm像素矩阵)进行处理以得到目标像素块(nxm像素矩阵),在该以块为单位进行图像处理的过程中,用于生成同一目标像素块中的不同目标像素的像素数据可能重叠;用于生成不同目标像素块的像素数据可能会有重叠。相比于以单一个像素进行抓取的现有技术中的高读取重复率,本申请所公开的以块为单位进行图像处理的技术可以降低图像处理装置100自系统存储器102抓取来源像素数据的次数,并提高对抓取的来源像素数据的复用率以及图像处理的效率。
图像处理装置100包括一算术逻辑单元(arithmetic logic unit,ALU)104以及多个寄存器。图示寄存器包括由多个向量寄存器(vector registers)108-V0…108-V3组合成的缓冲器106、一指针寄存器110以及用于块处理结果的暂存的一个结果寄存器112。关于以来源像素块进行图像处理生成一目标像素块的过程中,算术逻辑单元104除了自系统存储器102抓取一来源像素块中的来源像素外,更抓取该来源像素块的邻接来源像素块中的邻接来源像素。算术逻辑单元104将一个来源像素块的来源像素完整地缓冲存储在缓冲器106(如,向量寄存器108-V0、108-V1、108-V2以及108-V3之一_)。向量寄存器108-V0、108-V1、108-V2以及108-V3可以缓冲存储多个来源像素块。如此一来,对来源像素块中的来源像素进行图像处理(如采用3x3的滤波器进行滤波处理)就不需再自存储图像的系统存储器102中反复抓取来源像素,即使在进行图像处理时需要用到该来源像素块的邻接来源像素块中的邻接来源像素,也可以从缓冲器106中进行抓取,而不需再自系统存储器102中反复抓取进行图像处理的所需的来源像素。更具体而言,算术逻辑单元104通过利用指针寄存器110中的指令指针自该缓冲器106多个位置读取来源像素数据,并且对来源像素数据进行运算获得目标像素数据,以完成对目标像素块的图像处理。该算术逻辑单元104还将该目标像素块的图像处理结果暂存至结果寄存器112,用以生成图像的最终完整的处理结果。在一些实施例中,可用多个寄存器物理实现指针寄存器110的功能,其中,每一个寄存器存放一个或多个用于读取来源像素块中的来源像素的指令指针。在一些实施例中,可将暂存在结果寄存器112中的目标数据块写出到系统存储器102。
此外,缓冲器106可包含多个向量寄存器108-V0、108-V1、108-V2以及108-V3,每一个向量寄存器可能会缓存一个或多个来源像素块,在算术逻辑单元104对一向量寄存器中的来源像素块的利用暂时结束后,该向量寄存器中缓存的来源像素块会被更新,在一个向量寄存器缓存一个来源像素块的实施方式中,该个向量寄存器(例如向量寄存器108-V0)会释放所缓存的全部来源像素,重新从外部存储器102中读取图像中的像素数据,并以块为单位缓存入该向量寄存器108-V0,即从系统存储器102中载入一个新的来源像素块以更新向量寄存器108-V0。会被继续利用的来源像素块中的来源像素则可继续缓存在原来的向量寄存器中,而不需要更新其对应的向量寄存器。
图2图解本申请图像处理的一种实施概念。以下以各“块”尺寸为4x4像素,例如,各为4x4像素的来源像素块201、203、205和207以及目标像素块202、204、206和208,值得注意的是,来源像素块及目标像素块的尺寸为4x4仅为举例说明,本发明并不局限于此。图像处理以视窗为3x3的滤波器进行图像滤波处理,值得注意的是,滤波器的尺寸为3x3也仅为举例说明,本发明并不局限于此。
此段落讨论生成目标像素块202的图像处理。如图所示,缓冲器106缓冲存储从系统存储器102读取的一个8x8像素的来源像素组(group),将该来源像素组分成四个来源像素块分别缓存在向量寄存器108-V0、108-V1、108-V2以及108-V3,即各为4x4像素的来源像素块201、203、205和207分别缓冲存储在向量寄存器108-V0、108-V1、108-V2以及108-V3。在本实施例中,可称来源像素块201为第一来源像素块,称目标像素块202为第一目标像素块。详细而言,可对第一来源像素块201及第一来源像素块的邻接来源像素块(例如来源像素块203、205和207)中的部分与第一来源像素块201邻接的邻接来源像素进行滤波处理后生成第一目标像素块202,可采用3x3视窗的滤波器进行上述滤波处理,这样,算术逻辑单元104在执行16次3x3滤波运算后生成第一目标像素块202,其中,上述16次3x3滤波运算包括一个第一3x3滤波运算用于生成第一目标像素块202的最左上角目标像素(如图2所示来源像素220所处位置的目标像素),第一3x3滤波运算以第一来源像素块201的最左上角来源像素(如图2所示来源像素212)作为3x3视窗像素(该3x3视窗包括如图2所示来源像素212、214、216、218、220、222、224、226以及228)的最左上角视窗像素。在以3x3视窗的滤波器对九个来源像素进行滤波处理获得一个目标像素的实施例中,为了生成目标像素块202,除了需要第一来源像素块201中的全部来源像素外,还需要第一来源像素块201邻接来源像素块中的邻接来源像素(这里的“邻接来源像素”包括缓存在向量寄存器108-V1、108-V2以及108-V3中的来源像素块203、205以及207的部分来源像素),第一来源像素块201的来源像素及其邻接来源像素块中的邻接来源像素构成用以生成目标像素块202所需的所有来源像素。算术逻辑单元104可以通过利用指针寄存器110中的一个指令指针自缓冲器106读取生成目标像素块202所需的所有来源像素数据。具体而言,在一实施例中,若该指令指针先跳转到以像素212(即将像素212视为4x4视窗的最左上角像素)为起始点,第一次读取到4x4个来源像素(即整个来源像素块201);该指令指针跳转到像素214,并以像素214为4x4视窗的最左上角像素,第二次读取到4x4个来源像素;该指令指针跳转到像素216,并以像素216为4x4视窗的最左上角像素,第三次读取到4x4个来源像素;该指令指针跳转到像素218,并以像素218为4x4视窗的最左上角像素,第四次读取到4x4个来源像素;依次进行读取,直到该指令指针第9次跳转到像素228,并以像素228为4x4视窗的最左上角像素,第九次读取到4x4个来源像素,这样就可以读取生成目标像素块202所需的所有来源像素。算术逻辑单元104通过该指令指针的9次跳转,每次取得一个4x4像素块的操作,通过9次读取获得生成目标像素块202所需要的所有来源像素数据,包括缓冲存储在向量寄存器108-V0的整个来源像素块201以及其邻接来源像素块203、205及207中的邻接来源像素,其中邻接来源像素块203、205及207的邻接来源像素分别提前缓冲存储在向量寄存器108-V1、108-V2及108-V3。然后,算术逻辑单元104以读取到的上述所有来源像素数据实现3x3视窗滤波处理,生成目标像素块202。视窗滤波后的结果可存储至另一向量寄存器,如图1中所示的结果寄存器112。值得注意的是,在本实施例中,此时向量寄存器108-V1、108-V2及108-V3已经缓存完整的邻接来源像素块203、205及207,而计算来源像素块201仅需使用邻接来源像素块203、205及207的部分来源像素。在另一实施例中,向量寄存器108-V1、108-V2及108-V3可以仅缓存邻接来源像素块203、205及207中的部分来源像素(即“邻接来源像素”)。此外,在其它实施方式中,算术逻辑单元104也可不必通过9次读取从而读取到生成目标像素块202所需要的所有来源像素数据,指针寄存器110也可做其它设计从而实现不同的读取方式。
总的来说,同块像素的图像处理可共享缓冲器106所缓冲存储的来源像素。相较于以像素为图像处理单位的传统技术,以块为图像处理单位的图像处理装置100可一次性地读取多个来源像素,而无须频繁自系统存储器102抓取像素数据,并且图像处理装置100可并行地实现多个3x3视窗滤波处理,以块为图像处理单位一次性地生成一个目标像素块,该目标像素块由多个目标像素组成,提高了图像处理的效率。
在一种实施方式中,也可以通过三个指令指针来读取生成目标像素块202所需的来源像素数据。具体而言,算术逻辑单元104执行指令:
rep3mac P0,W0,acc0,step
rep3mac P1,W1,acc0,step
rep3mac P2,W2,acc0,step
三个指令指针P0、P1、P2都是以4x4视窗像素为单位进行像素读取。“rep3”是指重复指令三次,step为指令指针跳转的步进值。指令指针P0负责分三次读取以像素标号212、214、216为视窗最左上角像素的4x4来源像素。指令指针P1负责分三次读取以像素标号218、220、222为视窗最左上角像素的4x4来源像素。指令指针P2负责分三次读取以像素标号224、226、228为视窗最左上角像素的4x4来源像素。“mac”指乘加运算。以上程序包括执行三次acc0=P0xW0+acc0,三次acc0=P1xW1+acc0以及三次acc0=P2xW2+acc0。W0、W1及W2为图像滤波器的权重,图像滤波器经妥善设计可实现对3x3来源像素的滤波处理。例如,若权重值设为1/9可实现均值滤波。在一些实施例中,乘加运算“mac”也可以其他线性运算(如高斯滤波)替代,实现对来源像素块的图像处理。在前述实施例中,指令指针是先按列再按行进行跳转,在一些实施例中,指令指针也可以先按行再按列进行跳转。
可以通过硬件多工器以及移位器实现指针寄存器110中的指令指针(例如以上指令所提及的P0、P1、P2)的操作。例如,多工器用于自多个向量寄存器108-V0、108-V1、108-V2及108-V3取出像素数据;移位器负责将多工器取出的像素数据正确排序。
在利用来源像素块201及205进行处理生成目标像素块202完成后,读取系统存储器102中未被读取的来源像素,并缓冲存储在向量寄存器108-V0、108-V2中以更新向量寄存器108-V0、108-V2中的来源像素(图2中的201’表示用以更新向量寄存器108-V0的来源像素块,205’表示用以更新向量寄存器108-V2的来源像素块),而向量寄存器108-V1以及向量寄存器108-V3中缓冲存储的像素数据(来源像素块203及207)暂不更新。算术逻辑单元104开始生成下一个目标像素块204。在本实施例中,称来源像素块203为第二来源像素块,称目标像素块204为第二目标像素块。与对第一目标像素块202的生成类似,算术逻辑单元104可以通过利用指针寄存器110中的指令指针来读取生成目标像素块204所需的所有来源像素。具体而言,该指令指针跳转到以像素232(即将像素232视为为4x4视窗的最左上角像素)为起始点,第一次读取到4x4个来源像素(即整个来源像素块203);该指令指针跳转到像素234,并以像素234为4x4视窗的最左上角像素,第二次读取到4x4个来源像素;该指令指针跳转到像素236,并以像素236为4x4视窗的最左上角像素,第三次读取到4x4个来源像素;该指令指针跳转到像素238,并以像素238为4x4视窗的最左上角像素,第四次读取到4x4个来源像素;依次进行读取,直到该指令指针第九次跳转到像素248,并以像素248为4x4视窗的最左上角像素,第九次读取到4x4个来源像素,这样就可以读取生成目标像素块204所需的所有来源像素。然后,算术逻辑单元104采用3x3视窗的滤波器对其所读取的所有来源像素进行处理以生成第二目标像素块204。在一实施例中,上述第九次读取到的4x4个来源像素可为从向量寄存器108-V0、108-V1、108-V2以及108-V3中各读取2x2个来源像素,其中,向量寄存器108-V0在之前已进行了数据更新,如图2中的201’表示用以更新向量寄存器108-V0的来源像素块,向量寄存器108-V2在之前已进行了数据更新,如图2中的205’表示用以更新向量寄存器108-V2的来源像素块。在一实施例中,上述第九次读取到的4x4个来源像素可为从向量寄存器108-V0、108-V1、108-V2以及108-V3中各读取2x2个来源像素,其中,向量寄存器108-V0以及108-V2在之前已用如图2中201’以及205’所示来源像素块更新。在一实施例中,上述第九次读取到的4x4个来源像素可为从向量寄存器108-V0、108-V1、108-V2以及108-V3中各读取2x2个来源像素,其中,向量寄存器108-V0以及108-V2在之前已采用如图2中的201’以及205’所示来源像素块的部分来源像素更新,与之前实施例不同的是,这里仅以目标像素块204所需要的来源像素更新向量寄存器108-V0以及108-V2。在一实施例中,缓冲器106还包括一向量寄存器108-V4,上述第九次读取到的4x4个来源像素可为从向量寄存器108-V0、108-V1、108-V3以及108-V4中各读取2x2个来源像素,其中,向量寄存器108-V0在之前已用如图2中的201’所示来源像素块更新,向量寄存器108-V4缓冲存储如图2中的205’所示来源像素块,在另一实施例中,向量寄存器108-V4仅缓冲存储如图2中的205’所示来源像素块中,目标像素块204计算所需要的部分来源像素。
另一种实施方式中,选择第一目标像素块202下侧邻接的目标像素块206为第二目标像素块,对应地,第一来源像素块201下侧邻接的来源像素块205为第二来源像素块。具体而言,在生成目标像素块202完成后,读取系统存储器102中未被读取的来源像素,并缓冲存储在向量寄存器108-V0、108-V1中以更新向量寄存器108-V0、108-V1中的像素数据(图2中的201”表示用以更新向量寄存器108-V0的来源像素块,203”表示用以更新向量寄存器108-V1的来源像素块),而向量寄存器108-V2以及向量寄存器108-V3中缓冲存储的来源像素数据暂不更新。在本实施例中,可称来源像素块205为第二来源像素块,称目标像素块206为第二目标像素块。与目标像素块202的生成类似,算术逻辑单元104可以通过利用指针寄存器110中的指令指针来读取生成目标像素块206所需的所有来源像素数据。具体而言,该指令指针跳转到以来源像素252(即将像素252视为4x4视窗的最左上角像素)为起始点,第一次读取到4x4个来源像素(即整个来源像素块205);该指令指针跳转到像素254,并以像素254为4x4视窗的最左上角像素,第二次读取到4x4个来源像素;该指令指针跳转到像素256,并以像素256为4x4视窗的最左上角像素,第三次读取到4x4个来源像素;该指令指针跳转到像素258,并以像素258为4x4视窗的最左上角像素,第四次读取到4x4个来源像素;依次进行读取,直到该指令指针第9次跳转到像素268,并以像素268为4x4视窗的最左上角像素,第九次读取到4x4个来源像素,这样就可以读取生成第二目标像素块206所需的所有来源像素。在一实施例中,上述第九次读取到的4x4个来源像素可为从向量寄存器108-V0、108-V1、108-V2以及108-V3中各读取2x2个来源像素,其中,向量寄存器108-V0已进行了数据更新,如图2中的201”表示用以更新向量寄存器108-V0的来源像素块,向量寄存器108-V1已进行了数据更新,如图2中的203”表示用以更新向量寄存器108-V1的来源像素块。在一实施例中,上述第九次读取到的4x4个来源像素可为从向量寄存器108-V0、108-V1、108-V2以及108-V3中各读取2x2个来源像素,其中,仅采用如图2中的201”以及203”所示来源像素块的部分来源像素更新向量寄存器108-V0以及108-V1。在一实施例中,缓冲器106还包括一向量寄存器108-V4,上述第九次读取到的4x4个来源像素可为从向量寄存器108-V0、108-V1、108-V3以及108-V4中各读取2x2个来源像素,其中,已用如图2中的201”所示来源像素块更新向量寄存器108-V0,向量寄存器108-V4缓冲存储如图2中的203”所示来源像素块,在另一实施例中,向量寄存器108-V4仅缓冲存储如图2中的203”所示来源像素块中的部分来源像素。
在生成目标像素块202、204及206后,读取系统存储器102中未被读取的来源像素,并以块为单位依次缓冲存储在向量寄存器108-V0、108-V1及108-V2中以更新向量寄存器108-V0、108-V1及108-V2中的来源像素数据(图2中的201”’、203”及205’表示用以更新向量寄存器108-V0、108-V1及108-V2的来源像素块),而向量寄存器108-V3中缓冲存储的像素数据不变。然后,算术逻辑单元104生成目标像素块208。算术逻辑单元104可以通过利用指针寄存器110中的指令指针来读取生成目标像素块208所需的所有来源像素数据。具体而言,该指令指针跳转到以像素272(即将像素272视为为4x4视窗的最左上角像素)为起始点,第一次读取到4x4个来源像素(即整个像素块207);该指令指针跳转到像素274,并以像素274为4x4视窗的最左上角像素,第二次读取到4x4个来源像素;该指令指针跳转到像素276,并以像素276为4x4视窗的最左上角像素,第三次读取到4x4个来源像素;该指令指针跳转到像素278,并以像素278为4x4视窗的最左上角像素,第四次读取到4x4个来源像素;依次进行读取,直到该指令指针第9次跳转到像素288,并以像素288为4x4视窗的最左上角像素,第九次读取到4x4个来源像素(各自从向量寄存器108-V0、108-V1、108-V2以及108-V3中读取有2x2个像素,其中,向量寄存器108-V0、108-V1及108-V2中存储的是更新后的像素数据块,向量寄存器108-V3中存储的是未经更新的像素数据块),这样就可以读取生成目标像素块208所需的所有来源像素数据。然后,算术逻辑单元104采用3x3视窗的滤波器对其所读取的来源像素数据进行处理以生成目标像素块208。
需要注意的是,本申请并不限于以上述所披露的如图2所示的201为第一来源像素块,例如,也可以如图2所示的203为第一来源像素块。特别是,“组”(例如,以所有向量寄存器都更新过一轮来界定)尺寸不限定为8x8像素。各“块”尺寸不限定为4x4像素。一种实施方式中,“组”尺寸可设定为64x64像素,各“块”尺寸可设定为8x8像素。“组”以及各“块”形状也无限定。一种实施方式中,设置“组”以及各“块”为狭长画面,如将“组”尺寸设置为4x64像素,各“块”尺寸为2x32像素。相应地,将缓冲器106设置为可缓冲存储至少一“组”的像素数据以及各向量寄存器108分别设置为可缓冲存储各自对应的至少一“块”像素数据。可根据系统存储器102的带宽来设置向量寄存器的尺寸,当“块”的尺寸越大时,像素数据越无须重复载入,图像处理的效率也越高。
用于图像处理的各滤波器视窗也不限定为3x3。一种实施方式,可采用5x5视窗或其他尺寸视窗的滤波器来进行图像处理。一般情况下,算术算术逻辑单元可基于滤波器的宽度设置指令指针的跳变范围来读取生成目标像素块所需的所有来源像素。图3图解本申请图像处理的另一种实施例。各“块”尺寸为8x8像素。图像处理以视窗为5x5的滤波器进行图像滤波。
图3是关于生成目标像素块300。在一实施方式中,图示的四个各为8x8像素的来源像素块302、304、306以及308分别缓存在向量寄存器108-V0、108-V1、108-V2以及108-V3。若要生成目标像素块300,算术逻辑单元104除了需要读取整个来源像素块302中的来源像素外,还需要读取来源像素块302邻接来源像素块中的邻接来源像素(缓存在向量寄存器108-V1、108-V2以及108-V3中的来源像素块304、306以及308的部分像素数据)。算术逻辑单元104可以通过利用指针寄存器110中的一个指令指针来读取生成目标像素块300所需的来源像素数据。具体而言,若该指令指针先跳转到以像素312(即将像素312视为8x8视窗的最左上角像素)为起始点,第一次读取到8x8个来源像素(即整个来源像素块302);该指令指针跳转到像素314,并以像素314为8x8视窗的最左上角像素,第二次读取到8x8个来源像素;该指令指针跳转到像素316,并以像素316为8x8视窗的最左上角像素,第三次读取到8x8个来源像素;依次进行读取,直到该指令指针跳转到以像素320(即将像素320视8x8视窗的最左上角像素)为起始点,第五次读取到8x8个来源像素;然后,该指令指针将跳转到像素322,并以像素322为8x8视窗的最左上角像素依次进行读取,依次进行读取,直到该指令指针第十次跳转到像素330,并以像素330为8x8视窗的最左上角像素,第十次读取到8x8个来源像素;依次进行读取,直到该指令指针第二十五次跳转到像素360,并以像素360为8x8视窗的最左上角像素,第二十五次读取到8x8个来源像素,这样就可以读取生成目标像素块300所需的所有来源像素数据。算术逻辑单元104通过该指令指针的二十五次跳转,每次取得一个8x8像素块的操作,读取到了缓冲存储在向量寄存器108-V0的整个来源像素块302以及其邻接来源像素块304、306及308中的邻接来源像素(分别缓冲存储在向量寄存器108-V1、108-V2及108-V3)。然后,算术逻辑单元104对读取到的上述所有来源像素数据进行5x5视窗滤波处理,生成如图3所示目标像素分布的目标像素块300。视窗滤波后的结果可存储至另一向量寄存器,如图1中所示的结果寄存器112。在一些实施例中,可以通过五个指令指针,各指令指针读取五次的方式读取到用于生成目标像素块300的上述所有来源像素数据。
图4为流程图,基于图1根据本申请一种实施方式说明如何实施对图像的图像处理。步骤S402,算术逻辑单元104自缓冲器106为一目标像素块抓取图像处理所需的所有来源像素。步骤S404,算术逻辑单元104操作指针寄存器110,使自缓冲器106逐步取得像素数据并进行运算,完成该目标像素块的图像处理。步骤S406判断图像是否还有像素未做图像处理。若有,步骤S408切换目标像素块(与前一目标像素块邻接),并局部更新缓冲器106内容,以应付新的目标像素块的图像处理。步骤S408可以仅更新缓冲器106中的部分向量寄存器,有效降低算术逻辑单元104自系统存储器102抓取的数据量。若步骤S406判断图像102的图像处理完成,则图4程序结束。特别是,图像边界的处理可能不足“块”,可以镜像填充数据,使向量寄存器的维护以及目标像素块的生成仍是以“块”为单位。
图5A及5B为基于图1说明当缓冲器106仅包括两个向量寄存器时如何实施对系统存储器102中的图像进行图像处理的流程图。步骤S502,从系统存储器102读取像素数据存储至向量寄存器108-V0和108-V1,其中,108-V0缓冲存储第一来源像素块,108-V1缓冲存储第二来源像素块。步骤S504,算术逻辑单元104通过利用指针寄存器110中的指令指针自缓冲器106中抓取用于产生第一目标像素块所需的所有来源像素,并将第一目标像素块缓冲存储至结果寄存器112,其中,所有来源像素包括第一来源像素块和与该第一来源像素块邻接的来源像素块中的邻接来源像素。步骤S506,判断是否更新向量寄存器108-V0,即判断图像是否还有像素数据未被读取到缓冲器106中。若无,步骤S508,算术逻辑单元104通过利用指针寄存器中的指令指针自缓冲器106中抓取用以生成一第二目标像素块的所有来源像素数据,并将第二目标像素块缓冲存储至结果寄存器112,其中,所有来源像素数据包括第二来源像素块以及与该第二来源像素块邻接的来源像素块中的邻接来源像素。然后,执行步骤S510,将结果寄存器112中的所有目标像素块组合以生成系统存储器102中图像的处理结果。若有(步骤S506的判断结果),步骤S512,从系统存储器102读取一个新的第一来源像素块用于更新向量寄存器108-V0,并且,算术逻辑单元104通过利用指针寄存器中的指令指针自缓冲器106中抓取用以生成一第二目标像素块的所有来源像素数据,并将第二目标像素块缓冲存储至结果寄存器112,所有来源像素数据包括第二来源像素块以及与该第二来源像素块邻接的来源像素块中的邻接来源像素。然后,步骤S514,判断是否更新向量寄存器108-V1,即判断图像是否还有像素数据未被读取到缓冲器106中。若无,步骤S516,算术逻辑单元104通过利用指针寄存器110中的指令指针抓取用以生成新的第一目标像素块的所有来源像素数据,并将新的第一目标像素块缓冲存储至结果寄存器112,其中,所有来源像素数据包括在步骤S512获得的新的第一目标像素块和与该新的第一目标像素块邻接的来源像素块中的邻接来源像素。然后,执行步骤S510,将结果寄存器112中的所有目标像素块组合以生成系统存储器102中图像的处理结果。若有(步骤S514的判断结果),步骤S518,从系统存储器102读取一个新的第二来源像素块用于更新向量寄存器108-V1,并且,算术逻辑单元104通过利用指针寄存器110中的指令指针抓取用以生成新的第一目标像素块的所有来源像素数据,并将新的第一目标像素块缓冲存储至结果寄存器112,其中,所有来源像素数据包括在步骤S512获得的新的第一目标像素块和与该新的第一目标像素块邻接的来源像素块中的邻接来源像素。然后,步骤S520,判断是否更新向量寄存器108-V0,即判断图像是否还有像素数据未被读取到缓冲器106中。若无,步骤S522,算术逻辑单元104通过利用指针寄存器110中的指令指针对新的第二来源像素块进行处理以生成一新的第二目标像素块,并将新的第二目标像素块缓冲存储至结果寄存器112。然后,执行步骤S510,将结果寄存器112中的所有目标像素块组合以生成系统存储器102中图像的处理结果。若有(步骤S520的判断结果),步骤S512,从系统存储器102读取一个新的第一来源像素块用于更新向量寄存器108-V0,并且,算术逻辑单元104通过利用指针寄存器中的指令指针自缓冲器106中抓取用以生成新的第二目标像素块的所有来源像素数据,并将新的第二目标像素块缓冲存储至结果寄存器112,其中,所有来源像素包括在步骤S518获得的新的第二目标像素块和与该新的第二目标像素块邻接的来源像素块中的邻接来源像素。然后,循环执行步骤S514至步骤S520,直至完成对向量寄存器108-V0和108-V1所缓存像素数据的处理。
其他采用上述概念实现的图像处理都属于本申请所欲保护的范围。基于以上技术内容,本申请更可发展出图像处理方法。
虽然本发明已以优选实施例公开如上,然其并非用以限定本发明,本领域技术人员在不脱离本发明的精神和范围内,当可做些许更动与润饰,因此本发明的保护范围当视所附权利要求书界定范围为准。
Claims (20)
1.一种图像处理装置,包括:
缓冲器,缓冲存储多个来源像素块;
指针寄存器,包括至少一指令指针;以及
算术逻辑单元,利用上述至少一指令指针自上述缓冲器中抓取上述多个来源像素块中的第一来源像素块及上述第一来源像素块的邻接来源像素块中的邻接来源像素,以生成第一目标像素块。
2.如权利要求1所述的图像处理装置,其中:
上述缓冲器,缓冲存储从系统存储器中抓取图像的来源像素组,其中,上述来源像素组包括上述多个来源像素块,上述缓冲器还包括多个向量寄存器,每一上述向量寄存器对应存储上述多个来源像素块之一。
3.如权利要求1所述的图像处理装置,其中:
上述第一目标像素块及每一上述来源像素块为nxm像素矩阵,均包括n行及m列的像素,其中,n与m为大于1的整数。
4.如权利要求1所述的图像处理装置,其中:
上述算术逻辑单元对利用上述指令指针抓取的所有来源像素执行线性运算以生成上述第一目标像素块,上述所有来源像素包括上述第一来源像素块的来源像素及上述邻接来源像素。
5.如权利要求4所述的图像处理装置,其中:
上述算术逻辑单元执行的上述线性运算为采用pxq滤波器的滤波处理,其中,上述滤波器的输入包括pxq视窗像素矩阵,其包含p行及q列的来源像素,上述滤波器的输出为上述第一目标像素块的目标像素,p与q为大于1的整数。
6.如权利要求5所述的图像处理装置,其中:
上述算术逻辑单元基于上述滤波器的宽度p设置上述至少一指令指针跳变的范围。
7.如权利要求5所述的图像处理装置,其中:
上述滤波处理为均值滤波,以pxq个上述来源像素的加权均值设定视窗中心像素作为上述目标像素。
8.如权利要求5所述的图像处理装置,其中:
上述算术逻辑单元执行的上述滤波处理包括用于生成上述第一目标像素块的最左上角目标像素的第一滤波运算,上述第一滤波运算涉及nxm像素矩阵的来源像素,且是以上述第一来源像素块的最左上角来源像素作为上述nxm像素矩阵的最左上角视窗像素。
9.如权利要求1所述的图像处理装置,其中:
在生成对应上述第一目标像素块后,上述算术逻辑单元利用上述至少一指令指针自上述缓冲器中抓取第二来源像素块及上述第二来源像素块的邻接来源像素块中的邻接来源像素,以生成第二目标像素块,其中上述第二来源像素块是上述第一来源像素块的上述邻接来源像素块之一;且
在生成上述第一目标像素块后,从系统存储器中读取新的来源像素块以局部更新该缓冲器。
10.如权利要求1所述的图像处理器,其中:
在生成上述第一目标像素块后,从系统存储器中读取新的来源像素块以更新上述缓冲器。
11.一种图像处理方法,包括:
在图像处理装置内部设置缓冲器,缓冲存储多个来源像素块;
在该图像处理装置内部设置指针寄存器,包括至少一指令指针;以及
利用上述至少一指令指针自上述缓冲器中抓取上述多个来源像素块中的第一来源像素块及上述第一来源像素块的邻接来源像素块中的邻接来源像素,以生成第一目标像素块。
12.如权利要求11所述的图像处理方法,其中:
上述缓冲器,缓冲存储从系统存储器中抓取图像的来源像素组,其中,上述来源像素组包括上述多个来源像素块,上述缓冲器还包括多个向量寄存器,每一上述向量寄存器对应存储上述多个来源像素块之一。
13.如权利要求11所述的图像处理方法,其中:
上述第一目标像素块及每一上述来源像素块为nxm像素矩阵,均包括n行及m列的像素,其中,n与m为大于1的整数。
14.如权利要求11所述的图像处理方法,还包括:
对利用上述指令指针抓取的所有来源像素执行线性运算以生成上述第一目标像素块,上述所有来源像素包括上述第一来源像素块的来源像素及上述邻接来源像素。
15.如权利要求14所述的图像处理方法,其中:
上述线性运算为采用pxq滤波器的滤波处理,其中,上述滤波器的输入包括pxq视窗像素矩阵,其包含p行及q列的来源像素,上述滤波器的输出为上述第一目标像素块的目标像素,p与q为大于1的整数。
16.如权利要求15所述的图像处理方法,其中:
上述算术逻辑单元基于上述滤波器的宽度p设置上述至少一指令指针跳变的范围。
17.如权利要求15所述的图像处理方法,其中:
上述滤波处理为均值滤波,以pxq个上述来源像素的加权均值设定视窗中心像素作为上述目标像素。
18.如权利要求15所述的图像处理方法,其中:
上述滤波处理包括用于生成上述第一目标像素块的最左上角目标像素的第一滤波运算,上述第一滤波运算涉及nxm像素矩阵的来源像素,且是以上述第一来源像素块的最左上角来源像素作为上述nxm像素矩阵的最左上角视窗像素。
19.如权利要求11所述的图像处理方法,还包括:
在生成对应上述第一目标像素块后,利用上述至少一指令指针自上述缓冲器中抓取第二来源像素块及上述第二来源像素块的邻接来源像素块中的邻接来源像素,以生成第二目标像素块,其中上述第二来源像素块是上述第一来源像素块的上述邻接来源像素块之一;且
在生成上述第一目标像素块后,从系统存储器中读取新的来源像素块以局部更新该缓冲器。
20.如权利要求11所述的图像处理方法,其中:
在生成上述第一目标像素块后,从系统存储器中读取新的来源像素块以更新上述缓冲器。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810008431.0A CN108230229B (zh) | 2018-01-04 | 2018-01-04 | 图像处理装置以及图像处理方法 |
US15/953,794 US10565674B2 (en) | 2018-01-04 | 2018-04-16 | Graphics processing device and graphics processing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810008431.0A CN108230229B (zh) | 2018-01-04 | 2018-01-04 | 图像处理装置以及图像处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108230229A true CN108230229A (zh) | 2018-06-29 |
CN108230229B CN108230229B (zh) | 2021-07-06 |
Family
ID=62643048
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810008431.0A Active CN108230229B (zh) | 2018-01-04 | 2018-01-04 | 图像处理装置以及图像处理方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10565674B2 (zh) |
CN (1) | CN108230229B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112862725A (zh) * | 2021-03-12 | 2021-05-28 | 上海壁仞智能科技有限公司 | 用于计算的方法、计算设备和计算机可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1873685A (zh) * | 2005-06-03 | 2006-12-06 | 富士施乐株式会社 | 图像处理设备、方法和存储有程序的存储介质 |
CN103942018A (zh) * | 2013-01-18 | 2014-07-23 | 辉达公司 | 分布式处理像素重叠部分的系统、方法和计算机程序产品 |
CN104143186A (zh) * | 2014-07-04 | 2014-11-12 | 华南理工大学 | 一种slic超像素分块优化方法 |
CN107133908A (zh) * | 2016-02-26 | 2017-09-05 | 谷歌公司 | 用于图像处理器的编译器管理存储器 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7728840B2 (en) | 2003-09-04 | 2010-06-01 | Texas Instruments Incorporated | Sliding data buffering for image processing |
US9473784B2 (en) * | 2013-05-20 | 2016-10-18 | Texas Instruments Incorporated | Sample adaptive offset (SAO) filtering in video coding |
US9454841B2 (en) * | 2014-08-05 | 2016-09-27 | Qualcomm Incorporated | High order filtering in a graphics processing unit |
-
2018
- 2018-01-04 CN CN201810008431.0A patent/CN108230229B/zh active Active
- 2018-04-16 US US15/953,794 patent/US10565674B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1873685A (zh) * | 2005-06-03 | 2006-12-06 | 富士施乐株式会社 | 图像处理设备、方法和存储有程序的存储介质 |
CN103942018A (zh) * | 2013-01-18 | 2014-07-23 | 辉达公司 | 分布式处理像素重叠部分的系统、方法和计算机程序产品 |
CN104143186A (zh) * | 2014-07-04 | 2014-11-12 | 华南理工大学 | 一种slic超像素分块优化方法 |
CN107133908A (zh) * | 2016-02-26 | 2017-09-05 | 谷歌公司 | 用于图像处理器的编译器管理存储器 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112862725A (zh) * | 2021-03-12 | 2021-05-28 | 上海壁仞智能科技有限公司 | 用于计算的方法、计算设备和计算机可读存储介质 |
CN112862725B (zh) * | 2021-03-12 | 2023-10-27 | 上海壁仞智能科技有限公司 | 用于计算的方法、计算设备和计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108230229B (zh) | 2021-07-06 |
US20190206019A1 (en) | 2019-07-04 |
US10565674B2 (en) | 2020-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101972250B1 (ko) | 이미지 신호 프로세서들을 위한 가상 라인버퍼들 | |
JP5593060B2 (ja) | 画像処理装置、および画像処理装置の動作方法 | |
KR101617492B1 (ko) | 픽셀 레이트에서의 이미지 처리를 위한 방법 및 장치 | |
WO2017027169A1 (en) | Data reordering using buffers and memory | |
US20080320038A1 (en) | Method for Processing an Object on a Platform Having One or More Processors and Memories, and Platform Using Same | |
CN111915673B (zh) | 图像处理方法、装置、终端设备及存储介质 | |
CN107590811B (zh) | 基于场景分割的风景图像处理方法、装置及计算设备 | |
JPWO2003001458A1 (ja) | 情報処理装置 | |
JP2002328881A (ja) | 画像処理装置および画像処理方法並びに携帯用映像機器 | |
CN110062282A (zh) | 一种超分辨率视频重建方法、装置及电子设备 | |
CN108509241B (zh) | 一种图像的全屏显示方法、全屏显示装置及移动终端 | |
JP2010108084A (ja) | 画像処理装置 | |
US20150242996A1 (en) | Image processing apparatus and image processing method | |
CN109447239B (zh) | 一种基于arm的嵌入式卷积神经网络加速方法 | |
CN108230229A (zh) | 图像处理装置以及图像处理方法 | |
CN108198125B (zh) | 一种图像处理方法及装置 | |
CN105427235B (zh) | 一种图像浏览方法及系统 | |
JP4432786B2 (ja) | カメラ装置、画像処理方法 | |
CN106780291B (zh) | 一种实时畸变图像处理加速装置 | |
US11915338B2 (en) | Loading apparatus and method for convolution with stride or dilation of 2 | |
CN115914497A (zh) | 视频处理方法、装置、设备、介质及程序产品 | |
CN111831207A (zh) | 一种数据处理方法、装置及其设备 | |
JP5658612B2 (ja) | 画像処理装置、画像処理システム及び画像処理方法 | |
JP3553376B2 (ja) | 並列画像処理プロセッサ | |
CN112511765B (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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20210310 Address after: 201203 3rd floor, building 2, No. 200, zhangheng Road, Pudong New Area pilot Free Trade Zone, Shanghai Applicant after: Gryfield Intelligent Technology Co.,Ltd. Address before: Room 301, 2537 Jinke Road, Zhangjiang hi tech park, Shanghai 201203 Applicant before: Shanghai Zhaoxin Integrated Circuit Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |