一种二维图像数据的并行传输计算方法及系统的制作方法

文档序号:6604237阅读:165来源:国知局
专利名称:一种二维图像数据的并行传输计算方法及系统的制作方法
技术领域
本发明涉及数字图像处理技术领域,特别是涉及一种二维图像数据的并行传输计 算方法及系统。
背景技术
在数字图像处理过程中,最为常见的是对二维数据的处理,例如图像滤波、压缩编 码时的运动搜索等,较为明显的特征是需要一个参考数据区域,利用该区域数据计算获得 结果,并且相邻位置的计算结果所需要的参考数据区域大量重叠。用于完成上述计算的装置,称为PU (Process Unit,处理单元),例如,我们常见的 CPU就是一种通用化并成为系统核心的PU。在PU的处理芯片内部和外部一般都设有缓冲 区,其中位于处理芯片内部的缓冲区称为片内缓存(片内Buffer),片内缓存的访问速度较 快,容量成本较高,比较典型的例子是CPU的Cache或S0C系统的Internal缓存;而位于 处理芯片外部的缓冲区称为片外缓存(片外Buffer),其访问速度相对较慢,容量成本也较 低,典型的例子如DDR内存等。数字图像的处理过程一般如下首先将图像数据读入片外缓存,然后将片外缓存 中的数据传输至片内缓存,在片内缓存中进行计算并输出计算结果。由于片内缓存的容量 有限而且使用成本很高,因此,在实际应用中,一般会根据计算需求(例如滤波窗口大小等 因素),分配一定容量的片内缓存用于计算。这样,在整个处理过程中,就要涉及到计算和传输两部分,其中计算指的是在片内 缓存中的计算,传输指的是由片外缓存向片内缓存的数据传输。为了提高处理效率,目前大 部分系统都会将计算和传输分开为两个可以独立工作的装置,同时,将所分配的片内缓存 也分为A和B两部分,在时间T,A用于存放传输自片外缓存的数据,B则存放着现有数据并 正在被计算,在时间T+1,两部分片内缓存的功能互换。这种方法能够实现传输和计算的并 行处理,消耗的总时间为传输时间和计算时间的较大值,从而明显提高了处理效率。对于图像的处理而言,其数据处理是按照像素的二维分布逐行处理的,除去一些 位于图像边缘的像素外,对其他每个像素的计算都需要一个与其临近的二维的参考区域的 数据。应用前述的并行计算传输方法,在每行数据处理过程中,由于当前计算和下一次计算 所需的参考数据存在重复,因此可以在片内计算当前数据的同时,传输一部分后面计算所 需的参考数据,待当前计算结束后,会有一部分参考数据不再有用,这部参考数据所占用的 片内缓存容量可以用于下次传输。但是在处理到每行的末端数据时,由于当前计算和下一 次计算所需的参考数据没有重复,所以必须等到当前的计算结束后,才能开始下一行参考 数据的传输。也就是说,对二维图像进行跨行处理时,数据的计算和传输仍然是串行的,造 成处理效率的下降。

发明内容
为解决上述技术问题,本发明实施例提供一种二维图像数据的并行传输计算方法及系统,以实现二维图像在跨行处理时的并行计算与传输,技术方案如下本发明实施例提供一种二维图像数据的并行传输计算方法,设待处理图像宽度为img_w,计算窗口宽为Wnd_W、高为wnd_h,所述计算窗口每次 可以得到m*n个计算结果,则分配宽度为col_w、总容量为C0l_W*(Wnd_h+n-l)+img_W的片 内缓存区域用于图像处理,其中col_w = wnd_w+m*2-l ;所述方法包括在T单位时刻,向片内缓存传输第一次计算所需的待处理图像的二维区域参考数 据;在T+1单位时刻,根据当前片内缓存中的参考数据,获得相应的本次计算结果,同 时,向片内缓存传输下一次计算所需的参考数据。优选地,当下次计算结果在所述待处理图像中与本次计算结果处于同一行时,所述向片内缓存传输的下一次计算所需的参考数据,根据所述待处理图像中数据 的二维位置分布,存储于与当前片内缓存中参考数据相邻的二维区域中。优选地,当下次计算结果在所述待处理图像中与本次计算结果不处于同一行时,所述向片内缓存传输的下一次计算所需的参考数据,存储于与当前片内缓存中参 考数据不相邻的二维区域中。优选地,所述与当前片内缓存中参考数据不相邻的二维区域,其起始地址相对于 所述片内缓存区域的起始地址偏移量为(当前行最后一个数据在片内缓存区域的地址+l)modcol_w。本发明实施例还提供一种二维图像数据的并行传输计算系统,所述系统包括片内 缓存分配装置、传输装置和计算装置;设待处理图像宽度为img_w,计算窗口宽为Wnd_W、高为wnd_h,所述计算窗口每次 可以得到m*n个计算结果,所述片内缓存分配装置,分配宽度为col_w、总容量为C0l_W*(Wnd_h+n-l)+img_W 的片内缓存区域用于图像处理,其中col_W = wnd_w+m*2-l ;所述传输装置,在T单位时刻,向片内缓存传输第一次计算所需的待处理图像的 二维区域参考数据;所述计算装置,在T+1单位时刻,根据当前片内缓存中的参考数据,获得相应的本 次计算结果,同时,所述传输装置向片内缓存传输下一次计算所需的参考数据。优选地,当下次计算结果在所述待处理图像中与本次计算结果处于同一行时,所述传输装置向片内缓存传输的下一次计算所需的参考数据,根据所述待处理图 像中数据的二维位置分布,存储于与当前片内缓存中参考数据相邻的二维区域中。优选地,当下次计算结果在所述待处理图像中与本次计算结果不处于同一行时,所述传输装置向片内缓存传输的下一次计算所需的参考数据,存储于与当前片内 缓存中参考数据不相邻的二维区域中。优选地,所述与当前片内缓存中参考数据不相邻的二维区域,其起始地址相对于 所述片内缓存区域的起始地址偏移量为(当前行最后一个数据在片内缓存区域的地址+l)modcol_w。在现有技术中,对二维图像进行处理时,传输的参考数据起始必须放在片内缓存为计算过程分配的内存的起始处,否则处理到行尾部的时候会发生越界,而在跨行处理时, 将下行数据的参考数据放到该要求的位置则会覆盖正在用于计算的参考数据,因此在进行 跨行处理时,数据的计算和传输无法实现并行处理。为解决上述问题,本发明分配宽度为 col_w,总容量为col_w* (wnd_h+n-l) +img_w的片内缓存区域用于二维图像的处理,在每行 开始的时候通过对目标位置取_模计算起始地址,在不越界的同时也保证没有交叠。以较 小的片内缓存增加为代价,实现了二维图像在跨行处理时的并行计算与传输,从而提高了 处理效率。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下, 还可以根据这些附图获得其他的附图。图1为本发明实施例的图像处理示意图,其中图la为原始图像数据,图lb为处理 后的图像数据;图2为本发明实施例以二维形式计算数据的示意图;图3为本发明实施例以二维形式传输数据的示意图;图4为本发明实施例片内缓存空间分配示意图;图5为本发明实施例步骤101后片内缓存的存储状态示意图;图6为本发明实施例步骤102后片内缓存的存储状态示意图,其中图6a和图6b 分别为存储状态两种不同表现形式的示意图;图7为本发明实施例步骤103后片内缓存的存储状态示意图;图8为本发明实施例步骤104后片内缓存的存储状态示意图;图9为本发明实施例步骤105后片内缓存的存储状态示意图;图10为本发明实施例一种二维图像数据的并行传输计算系统的结构示意图。
具体实施例方式首先对本发明实施例的一种二维图像数据的并行传输计算方法进行说明,设待处理图像宽度为img_w,计算窗口宽为Wnd_W、高为wnd_h,所述计算窗口每次 可以得到m*n个计算结果,则分配宽度为col_w、总容量为C0l_W*(Wnd_h+n-l)+img_W的片 内缓存区域用于图像处理,其中col_w = wnd_w+m*2-l ;所述方法包括在T单位时刻,向片内缓存传输第一次计算所需的待处理图像的二维区域参考数 据;在T+1单位时刻,根据当前片内缓存中的参考数据,获得相应的本次计算结果,同 时,向片内缓存传输下一次计算所需的参考数据。其中,当下次计算结果在所述待处理图像中与本次计算结果处于同一行时,向片 内缓存传输的下一次计算所需的参考数据,根据所述待处理图像中数据的二维位置分布, 存储于与当前片内缓存中参考数据相邻的二维区域中。
6
当下次计算结果在所述待处理图像中与本次计算结果不处于同一行时,向片内缓 存传输的下一次计算所需的参考数据,存储于与当前片内缓存中参考数据不相邻的二维区 域中,该二维区域的起始地址相对于所述片内缓存区域的起始地址偏移量为(当前行最后一个数据在片内缓存区域的地址+l)modcol_w。为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实 施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施 例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通 技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护 的范围。以典型的二维图像滤波计算为例,假设需要对一张11*4的图像进行5*3窗口的 FIR滤波处理,图la表示原始图像数据,图lb表示经滤波处理后的图像数据。在图lb中,f2 g8为常规5*3滤波计算的结果,例如,f2是由a0 a4、b0 b4、 c0 c4这3行5列的数据进行计算获得,以此类推,g8是由b6 bl0、c6 cl0、d6 dlO 这3行5列的数据进行计算获得;图lb中的阴影部分属于图像边缘数据,这部分数据由于 计算窗口所需数据不全而无法通过常规5*3滤波计算获得,一般可以采用直接复制原始或 相邻区域数据、或者缩小计算窗口等方法获得。为了便于描述,在后面的实施例中,均以a、b、c、d表示原始图像中的数据,而以e、 f、g、h表示计算后得到的图像数据,其中,数据的对应关系可参见图la和图lb所示。由于片内缓存的地址空间实际是一维的,而对数字图像的处理需要涉及对二维数 据的计算和传输,因此要求相应的计算装置和传输装置能够以二维的方式处理数据,以下 简单进行说明。以二维形式计算数据的意思是给出一片连续数据存储空间的首地址Addr、计算 窗宽wnd_w,计算窗高wnd_h,以及为存储空间分配的处理数据col_w,则能够计算如图2所 示阴影部分数据区域,其中alO与b0,blO与c0分别都是物理上相邻的内存位置。以二维形式传输数据的意思是给出一片连续数据存储空间的源地址srC_addr、 源数据窗宽src_w,和另一片连续数据存储空间的目的地址dst-addr,目的数据窗宽dst_ w,以及传输数据的列数W_cnt和行数h_cnt,则能够进行如图3所示的数据传输,NA表示不 关心其中内容,图2中的上下两图的前一行的末尾和后一行的开始数据都是物理上相邻的 内存位置。下面结合具体的实例,对本发明的二维图像数据的并行传输计算方法进行说明假设待处理图像宽度img_w = 11、滤波计算窗口 wnd_w = 5,wnd_h = 3,每次滤波 计算可以得到2列1行的计算结果,即m = 2,n = 1。根据以上条件,可以得到需要为处理该图像分配的片内缓存宽度col_w = wnd_w+m*2-l = 8片内缓存的总容量为 col_w*(wnd_h+n_l)+img_w = 24+11 = 35根据以上计算结果,可以得到所分配的片内缓存空间如图4所示。缓存空间分配完成后,按照如下步骤进行数据的传输和计算并行处理步骤101、在T单位时刻,向片内缓存传输6*3的数据a0 a5、b0 b5、c0 c5, 如图5所示,其中N前缀表示空置或无效数据区域步骤102、参见图lb所示,第一行数据的计算结果e0 elO、以及第二行数据的结果f0、fl都属于边缘数据,可以采用相应的边缘数据计算方法得到,本发明实施例对此并 不进行限定。而对于非边缘数据而言,在T+1单位时刻,通过一次滤波计算,可以获得结果 f2和f3。其中,f2是根据当前片内缓存中参考数据a0 a4、b0 b4、c0 c4得到,而f3 是根据参考数据al a5、bl b5、cl c5获得。在进行上述计算的同时,向片内缓存传输下一次滤波计算所需的参考数据。下一 次滤波计算所需的参考数据为a2 a7、b2 b7、c2 c7,而a2 a5、b2 b5、c2 c5 已经在当前的片内缓存中,因此本次只需传输a6、a7、b6、b7、c6、c7。根据数据在待处理图像中的二维位置分布,将传输的数据存储于与当前片内缓存 中参考数据相邻的二维区域中,即图5中冊、附、拟、吧、附、阳所示的位置。此外,由于在 下次滤波计算中,片内缓存中的前两列数据即a0、al、b0、bl、C0、Cl不再有用,因此可以以 N17,N18,N19,N20, N2UN22替换表示,本次传输后,片内缓存的存储状态如图6a所示。由于片内缓存的存储空间是1维连续的,因此为了便于观察,可以将图6a表示为 图6b形式。步骤103,在T+2单位时刻,根据当前的参考数据a2 a6、b2 b6、c2 c6获得 f4、根据a3 a7、b3 b7、c3 c7获得f5 ;同时传输下一次滤波计算所需的参考数据a8、 &9、&8、&9、08、09至附9、拟0、拟1、拟2、呢、町的位置。本次传输后,片内缓存的存储状态 如图7所示。步骤104,在T+3单位时刻,根据当前的参考数据a4 a8、b4 b8、c4 c8获 得f6、根据a5 a9、b5 b9、c5 c9获得f7 ;同时传输下一次滤波计算所需的参考数据 alO、b 10、c 10至N25、N27、N8的位置。本次传输后,片内缓存的存储状态如图8所示。步骤105、在T+4单位时刻,首先根据当前的参考数据a6 alO、b6 blO、c6 clO获得f8,由于f9和HO均为边缘数据,因此下一次滤波计算就是针对图像的第3行,所 需的参考数据为b0 b5、c0 c5、d0 d5,本次可先传输b0、bl、c0、cl、d0、dl这两列三 行的数据,由于下一行所用的参考数据与本行所用的参考数据已经没有关系,因此,b0、bl、 c0、cl、d0、dl可以存储于与当前片内缓存中参考数据不相邻的二维区域中,如图9所示。 其中,该二维区域的起始地址相对于所述片内缓存区域的起始地址偏移量为可以由下式得 到(当前行最后一个数据在片内缓存区域的地址+l)modcol_w。对本实施例而言,当前行最后一个数据在片内缓存区域的地址+1即为图8中N28 所处的位置,除以col_w后余数,即得到图8中N24所对应的位置。后续可在获得边缘值f9和f 10的时候,分别传输b2、c2、d2以及b3、c3、d3等下 一次滤波计算所需的参考数据,当然也可以根据边缘数据的具体计算方式采用其他的传输 策略,原则为所传输的数据不能覆盖正在用于滤波计算及将要用于滤波计算的参考数据, 并且要在每次滤波计算之前将所需的参考数据传输完毕。当向片内缓存传输数据b0 b5、 c0 c5、d0 d5、完毕之后,即可重复步骤上述步骤102,开始对图像的第三行数据进行计 笪弁。可见,应用本发明所提供的方法,分配宽度为col_w、总容量为col_w* (wnd_ h+n-l)+img_w的片内缓存区域用于二维图像处理,在每行开始的时候通过对目标位置取模 计算起始地址,在不越界的同时也保证没有交叠。以较小的片内缓存增加为代价,实现了二
8维图像在跨行处理时的并行计算与传输,从而提高了处理效率。相应于上面的方法实施例,本发明还提供一种二维图像数据的并行传输计算系 统,其特征在于,参见图10所示,该系统包括片内缓存分配装置1001、传输装置1002和计算 装置1003 ;设待处理图像宽度为img_w,计算窗口宽为Wnd_W、高为wnd_h,所述计算窗口每次 可以得到m*n个计算结果,所述片内缓存分配装置,分配宽度为col_w、总容量为C0l_W*(Wnd_h+n-l)+img_W 的片内缓存区域用于图像处理,其中col_W = wnd_w+m*2-l ;所述传输装置,在T单位时刻,向片内缓存传输第一次计算所需的待处理图像的 二维区域参考数据;所述计算装置,在T+1单位时刻,根据当前片内缓存中的参考数据,获得相应的本 次计算结果,同时,所述传输装置向片内缓存传输下一次计算所需的参考数据。其中,当下次计算结果在所述待处理图像中与本次计算结果处于同一行时,所述传输装置向片内缓存传输的下一次计算所需的参考数据,根据所述待处理图 像中数据的二维位置分布,存储于与当前片内缓存中参考数据相邻的二维区域中。当下次计算结果在所述待处理图像中与本次计算结果不处于同一行时,所述传输装置向片内缓存传输的下一次计算所需的参考数据,存储于与当前片内 缓存中参考数据不相邻的二维区域中。所述与当前片内缓存中参考数据不相邻的二维区域,其起始地址相对于所述片内 缓存区域的起始地址偏移量可以为(当前行最后一个数据在片内缓存区域的地址+l)modcol_w。通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可 借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质 上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品 可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备 (可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些 部分所述的方法。本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部 分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实 施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例 的部分说明即可。以上所描述的系统实施例仅仅是示意性的,其中所述作为分离部件说明 的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是 物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要 选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出 创造性劳动的情况下,即可以理解并实施。以上所述仅是本发明的具体实施方式
,应当指出,对于本技术领域的普通技术人 员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应 视为本发明的保护范围。
9
权利要求
一种二维图像数据的并行传输计算方法,其特征在于,设待处理图像宽度为img_w,计算窗口宽为wnd_w、高为wnd_h,所述计算窗口每次可以得到m*n个计算结果,则分配宽度为col_w、总容量为col_w*(wnd_h+n-1)+img_w的片内缓存区域用于图像处理,其中col-w=wnd_w+m*2-1;所述方法包括在T单位时刻,向片内缓存传输第一次计算所需的待处理图像的二维区域参考数据;在T+1单位时刻,根据当前片内缓存中的参考数据,获得相应的本次计算结果,同时,向片内缓存传输下一次计算所需的参考数据。
2.根据权利要求1所述的方法,其特征在于,当下次计算结果在所述待处理图像中与 本次计算结果处于同一行时,所述向片内缓存传输的下一次计算所需的参考数据,根据所述待处理图像中数据的二 维位置分布,存储于与当前片内缓存中参考数据相邻的二维区域中。
3.根据权利要求1所述的方法,其特征在于,当下次计算结果在所述待处理图像中与 本次计算结果不处于同一行时,所述向片内缓存传输的下一次计算所需的参考数据,存储于与当前片内缓存中参考数 据不相邻的二维区域中。
4.根据权利要求3所述的方法,其特征在于,所述与当前片内缓存中参考数据不相邻 的二维区域,其起始地址相对于所述片内缓存区域的起始地址偏移量为(当前行最后一个数据在片内缓存区域的地址+l)mod col_w。
5.一种二维图像数据的并行传输计算系统,其特征在于,所述系统包括片内缓存分配 装置、传输装置和计算装置;设待处理图像宽度为img_w,计算窗口宽为wnd_w、高为wnd_h,所述计算窗口每次可以 得到m*n个计算结果,所述片内缓存分配装置,分配宽度为col_w、总容量为C0l_W*(Wnd_h+n-l)+img_W的片 内缓存区域用于图像处理,其中col_w = wnd_w+m*2-l ;所述传输装置,在T单位时刻,向片内缓存传输第一次计算所需的待处理图像的二维 区域参考数据;所述计算装置,在T+1单位时刻,根据当前片内缓存中的参考数据,获得相应的本次计 算结果,同时,所述传输装置向片内缓存传输下一次计算所需的参考数据。
6.根据权利要求5所述的系统,其特征在于,当下次计算结果在所述待处理图像中与 本次计算结果处于同一行时,所述传输装置向片内缓存传输的下一次计算所需的参考数据,根据所述待处理图像中 数据的二维位置分布,存储于与当前片内缓存中参考数据相邻的二维区域中。
7.根据权利要求5所述的系统,其特征在于,当下次计算结果在所述待处理图像中与 本次计算结果不处于同一行时,所述传输装置向片内缓存传输的下一次计算所需的参考数据,存储于与当前片内缓存 中参考数据不相邻的二维区域中。
8.根据权利要求7所述的系统,其特征在于,所述与当前片内缓存中参考数据不相邻 的二维区域,其起始地址相对于所述片内缓存区域的起始地址偏移量为(当前行最后一个数据在片内缓存区域的地址+l)mod col_w。
全文摘要
本发明公开了一种二维图像数据的并行传输计算方法及系统。所述方法包括设待处理图像宽度为img_w,计算窗口宽为wnd_w、高为wnd_h,所述计算窗口每次可以得到m*n个计算结果,则分配宽度为col_w、总容量为col_w*(wnd_h+n-1)+img_w的片内缓存区域用于图像处理,其中col_w=wnd_w+m*2-1;在T单位时刻,向片内缓存传输第一次计算所需的待处理图像的二维区域参考数据;在T+1单位时刻,根据当前片内缓存中的参考数据,获得相应的本次计算结果,同时,向片内缓存传输下一次计算所需的参考数据。上述方案实现了二维图像在跨行处理时的并行计算与传输,从而提高了处理效率。
文档编号G06F12/02GK101859280SQ201010201190
公开日2010年10月13日 申请日期2010年6月3日 优先权日2010年6月3日
发明者俞海, 胡扬忠, 贾永华, 邬伟琪 申请人:杭州海康威视软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1