1.本技术涉及图像技术领域,特别涉及一种数据处理方法、数据处理装置、终端和非易失性计算机可读存储介质。
背景技术:
2.目前,在对数据进行处理时,需要将数据在内存和存储器之间来回传输,不同的数据处理流程需要获取的数据存在差异,因此,每个数据处理流程都需要进行内存和存储器之间的数据传输,导致数据传输量和数据传输占用的时间均较多,导致硬件的功耗增加且数据处理效率较低。
技术实现要素:
3.本技术的实施方式提供了一种数据处理方法、数据处理装置、终端和非易失性计算机可读存储介质。
4.本技术实施方式的数据处理方法包括获取预设的多个滤波层的滤波半径;根据多个所述滤波层的所述滤波半径,确定待处理数据的滤波区域;及获取所述滤波区域的图像数据。
5.本技术实施方式的数据处理装置包括第一获取模块、第一确定模块和第二获取模块。所述第一获取模块用于获取预设的多个滤波层的滤波半径;所述第一确定模块用于根据多个所述滤波层的所述滤波半径,确定待处理数据的滤波区域;所述第二获取模块用于获取所述滤波区域的图像数据。
6.本技术实施方式的终端包括处理器,所述处理器用于获取预设的多个滤波层的滤波半径;根据多个所述滤波层的所述滤波半径,确定待处理数据的滤波区域;及获取所述滤波区域的图像数据。
7.本技术的一种包含计算机程序的非易失性计算机可读存储介质,当所述计算机程序被一个或多个处理器执行时,使得所述处理器执行数据处理方法。所述数据处理方法包括获取预设的多个滤波层的滤波半径;根据多个所述滤波层的所述滤波半径,确定待处理数据的滤波区域;及获取所述滤波区域的图像数据。
8.本技术实施方式的数据处理方法、数据处理装置、终端和非易失性计算机可读存储介质,通过获取待处理数据的多个滤波层的滤波半径,从而根据多个滤波层的滤波半径,确定并获取待处理数据进行多个滤波层的滤波时,所需的全部滤波区域,相较于在对每个滤波层进行滤波时,分别获取每个滤波层的滤波区域的数据,不同的滤波层的滤波区域存在重复部分,数据传输量和数据传输占用的时间均较多,导致硬件的功耗增加且数据处理效率较低而言,数据传输量和数据传输占用的时间明显减少,硬件的功耗降低且数据处理效率提高。
9.本技术的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本技术的实践了解到。
附图说明
10.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
11.图1是本技术某些实施方式的数据处理方法的流程示意图;
12.图2是本技术某些实施方式的数据处理装置的模块示意图;
13.图3是本技术某些实施方式的终端平面示意图;
14.图4至图6是本技术某些实施方式的原理示意图;
15.图7是本技术某些实施方式的数据处理方法的流程示意图;
16.图8是本技术某些实施方式的原理示意图;
17.图9是本技术某些实施方式的数据处理方法的流程示意图;
18.图10是本技术某些实施方式的原理示意图;
19.图11和图12是本技术某些实施方式的数据处理方法的流程示意图;
20.图13本技术某些实施方式的处理器和计算机可读存储介质的连接示意图。
具体实施方式
21.以下结合附图对本技术的实施方式作进一步说明。附图中相同或类似的标号自始至终表示相同或类似的元件或具有相同或类似功能的元件。另外,下面结合附图描述的本技术的实施方式是示例性的,仅用于解释本技术的实施方式,而不能理解为对本技术的限制。
22.请参阅图1至图3,本技术实施方式的数据处理方法包括以下步骤:
23.011:获取预设的多个滤波层的滤波半径;
24.012:根据多个滤波层的滤波半径,确定待处理数据的滤波区域;及
25.013:获取滤波区域的图像数据。
26.本技术实施方式的数据处理装置10包括第一获取模块11、第一确定模块12和第二获取模块13。第一获取模块11、第一确定模块12和第二获取模块13分别用于执行步骤011、步骤012和步骤013。即,第一获取模块11用于获取预设的多个滤波层的滤波半径第一确定模块12用于根据多个滤波层的滤波半径,确定待处理数据的滤波区域;第二获取模块13用于获取滤波区域的图像数据。
27.本技术实施方式的终端100包括处理器30。处理器30用于获取预设的多个滤波层的滤波半径;根据多个滤波层的滤波半径,确定待处理数据的滤波区域;及获取滤波区域的图像数据。也即是说,步骤011、步骤012和步骤013可以由处理器30实现。
28.具体地,终端100还包括壳体40。终端100可以是手机、平板电脑、显示设备、笔记本电脑、柜员机、闸机、智能手表、头显设备、游戏机等。如图3所示,本技术实施方式以终端100是手机为例进行说明,可以理解,终端100的具体形式并不限于手机。壳体40还可用于安装终端100的显示装置、成像装置、供电装置、通信装置等功能模块,以使壳体40为功能模块提供防尘、防摔、防水等保护。
29.待处理数据可以是终端100的相机20拍摄的图像,也可以是从网上下载的图像,在
此不作限制。待处理数据还可以是相机20拍摄图像的一部分;或者,待处理数据可以是终端100获取的多帧姿态数据、加速度数据等。本技术实施方式以待处理数据为待处理图像为例进行说明。
30.在对待处理图像进行滤波时,一般会基于预设的滤波算法进行。预设滤波算法确定了待处理图像的预设尺寸、滤波层的预设个数、以及每个滤波层的预设的滤波半径。
31.在滤波时,若拍摄图像的尺寸大于预设尺寸,则可通过预设尺寸将拍摄图像分为多个待处理图像,从而使得处理器30可直接获取每个待处理图像的位置信息,如待处理图像的顶点坐标(以待处理图像为矩形为例)。同时,处理器30还能够直接获取到每个滤波层的滤波半径。
32.然后,处理器30根据待处理图像的位置信息以及每个滤波层的滤波半径,即可确定出每个滤波层的滤波区域。例如,滤波半径为与待处理图像的边缘的距离,位置信息包括待处理图像的顶点坐标,根据待处理图像的顶点坐标,即可快速确定得到待处理图像的宽度和高度。处理器30可根据待处理图像的顶点坐标及滤波半径,确定滤波区域的顶点坐标
33.在一个例子中,请参阅图4,以待处理图像a1的左上角为原点建立图像坐标系,待处理图像a1的宽度为8(沿w方向的像素数),高度为8(沿h方向的像素数),则待处理图像a1的顶点坐标分别为(0,0),(8,0),(0,8)和(8,8),如滤波半径为2个像素,在待处理图像a1的上边缘和下边缘分别增加两行像素,左边缘和右边缘分别增加两列像素,则待处理图像s1的顶点坐标分别为(-2,-2),(10,2),(-2,10)和(10,10)。如此,根据待处理图像a1的位置信息和每个滤波层的滤波半径,即可快速确定得到每个滤波层的滤波区域s1。
34.在其他实施方式中,滤波半径包括第一滤波半径(如对应图像的上边)、第二滤波半径(如对应图像的右边)、第三滤波半径(如对应图像的下边)和第四滤波半径(如对应图像的左边),第一滤波半径、第二滤波半径、第三滤波半径和第四滤波半径均相同(如图4所示的例子);或者第一滤波半径和第三滤波半径相同,第二滤波半径和第四滤波半径相同;或者,第一滤波半径、第二滤波半径、第三滤波半径和第四滤波半径互不相同。
35.在另一个例子中,请参阅图5,以待处理图像a1的左上角为原点建立图像坐标系,则待处理图像a1的顶点坐标分别为(0,0),(8,0),(0,8)和(8,8),如第一滤波半径和第三滤波半径相同且均为2个像素,第二滤波半径和第四滤波半径相同且均为1个像素,则在待处理图像a1的上边缘和下边缘分别增加两行像素,左边缘和右边缘分别增加一列像素,则待处理图像s1的顶点坐标分别为(-1,-2),(9,-2),(-1,10)和(9,10)。如此,根据待处理图像a1的位置信息和每个滤波层的滤波半径,即可快速确定得到每个滤波层的滤波区域s1。
36.在再一个例子中,请参阅图6,以待处理图像a1的左上角为原点建立图像坐标系,则待处理图像a1的顶点坐标分别为(0,0),(8,0),(0,8)和(8,8),如第一滤波半径、第二滤波半径、第三滤波半径和第四滤波半径分别为4个像素、3个像素、2个像素、1个像素,则在待处理图像a1的上边缘和下边缘分别增加4行像素和2行像素,左边缘和右边缘分别增加1列像素和3列像素,则待处理图像a1的顶点坐标分别为(-1,-4),(11,-4),(-1,10)和(11,10)。如此,根据待处理图像a1的位置信息和每个滤波层的滤波半径,即可快速确定得到每个滤波层的滤波区域s1。
37.可以理解,在进行滤波处理时,相邻两层滤波层一般是相互依赖的,例如,上一层滤波层输出图像会作为下一层滤波层的输入图像,而下一层滤波层的输入图像为下一层滤
波层的输出图像和下一层滤波层的滤波半径确定。
38.因此,可根据最后一层滤波层的输出图像和最后一层滤波层的滤波半径,确定最后一层滤波层的滤波区域,从而确定倒数第二层滤波层的输出图像(即,最后一层滤波层的滤波区域的图像数据,也是最后一层滤波层的输入图像)。然后根据倒数第二层滤波层的输出图像和倒数第二层滤波层的滤波半径,确定倒数第二层滤波层的滤波区域,从而确定倒数第三层滤波层的输出图像(即,倒数第二层滤波层的滤波区域的图像数据,也是倒数第二层滤波层的输入图像)。如此,从最后一层逐层依次进行确定到第一层,即可确定所有滤波层中,第一层滤波层的滤波区域,从而确定待处理图像的滤波区域(即,第一层滤波层的滤波区域的图像数据,也是第一层滤波层的输入图像)。
39.可以理解,滤波层的层数可以是1层、2层、3层、4层、5层等。上述实施方式以滤波层为3层及以上进行说明。若滤波层为两层,则只需确定得到上述实施方式中,倒数第二层滤波层的滤波区域,该滤波区域即为待处理图像的滤波区域。若滤波层为1层,则只需根据第一层滤波层的输出图像和第一层滤波层的滤波半径,确定第一层滤波层的滤波区域,该滤波区域即为待处理图像的滤波区域。
40.当然,也可仅获取多层滤波层中,任意相邻的2层,依次相邻的3层、4层等的滤波半径,从而得到任意相邻的2层、依次相邻的3层、4层等对应的滤波区域,实现一次滤波区域的数据的读取后即可供任意相邻的2层、依次相邻的3层、4层等使用,从而减少进行滤波时的数据读写量。
41.例如,以滤波层为4层为例,在第1层完成滤波后,可根据第2层到第4层的滤波半径来计算第二层的输入图像对应的滤波区域,计算方式参考前述实施方式中,计算第1层的滤波区域的实施方式,在此不再赘述。如此,可使得依次相邻的第2层至第4层只需一次图像数据的读取即可,从而减少进行滤波时的数据读写量。
42.另外,每层滤波层的输出的图像尺寸可以是固定的,如均与待处理图像的尺寸相同。例如,拍摄图像为100*100,待处理图像的尺寸为50*50,则拍摄图像被分为4个待处理图像。在对待处理图像进行滤波处理后,最终输出的滤波图像的尺寸也为50*50。
43.最后,处理器30直接获取待处理图像的滤波区域内的图像数据,即可得到后续要对待处理图像进行滤波处理时所需的全部图像数据。其中,对于滤波区域存在的图像数据可直接获取(如滤波区域与拍摄图像重合的部分),而对于滤波区域不存在图像数据的部分(滤波区域与拍摄图像不重合的部分),需要根据滤波区域内已存在的图像数据进行填充,从而获取到滤波区域内每个像素的图像数据。
44.本技术实施方式的数据处理方法、数据处理装置10和终端100,通过获取待处理数据的多个滤波层的滤波半径,从而根据多个滤波层的滤波半径,确定并获取待处理数据进行多个滤波层的滤波时,所需的全部滤波区域,相较于在对每个滤波层进行滤波时,分别获取每个滤波层的滤波区域的数据,不同的滤波层的滤波区域存在重复部分,数据传输量和数据传输占用的时间均较多,导致硬件的功耗增加且数据处理效率较低而言,数据传输量和数据传输占用的时间明显减少,硬件的功耗降低且数据处理效率提高。
45.请参阅图2、图3和图7,在某些实施方式中,滤波层包括m层,m为正整数,第m层的滤波区域根据第m层的滤波半径和待处理图像所在的图像区域确定,步骤012还包括:
46.0121:根据第n-1层的滤波半径及第n层的滤波区域,确定第n-1层的滤波区域,n为
小于或等于m的正整数;
47.0122:在确定得到第n-1层的滤波区域后,使n的值减少1,并再次执行步骤0121:根据第n-1层的滤波半径及第n层的滤波区域,确定第n-1层的滤波区域,直至确定第1层的滤波区域,以作为待处理图像的滤波区域。
48.在某些实施方式中,第一确定模块12还用于执行步骤0121和步骤0122。第一确定模块12还用于根据第n-1层的滤波半径及第n层的滤波区域,确定第n-1层的滤波区域,n为小于或等于m的正整数;在确定得到第n-1层的滤波区域后,使n的值减少1,并再次执行根据第n-1层的滤波半径及第n层的滤波区域,确定第n-1层的滤波区域的步骤,直至确定第1层的滤波区域,以作为待处理图像的滤波区域。
49.在某些实施方式中,处理器30还用于根据第n-1层的滤波半径及第n层的滤波区域,确定第n-1层的滤波区域,n为小于或等于m的正整数;在确定得到第n-1层的滤波区域后,使n的值减少1,并再次执行根据第n-1层的滤波半径及第n层的滤波区域,确定第n-1层的滤波区域的步骤,直至确定第1层的滤波区域,以作为待处理图像的滤波区域。也即是说,步骤0121和步骤0122可以由处理器30实现。
50.具体地,滤波层包括m层,如m为1、2、3、4、5等。第m层即为进行滤波处理的最后一层,待处理图像的滤波区域的图像数据经过m层滤波层依次处理后,即可完成滤波,以生成滤波图像。
51.在确定待处理图像的滤波区域时,处理器30可首先根据第m层的滤波半径和待处理图像所在的图像区域确定第m层的滤波区域。
52.滤波图像可与待处理图像的尺寸相同,在对第m层的滤波区域进行滤波后,仅保留待处理图像所在的图像区域内的图像数据,以生成滤波区域。因此,可根据待处理图像所在的图像区域和第m层的滤波半径,确定第m层的滤波区域。例如,滤波半径为1个像素,则在待处理图像的所在的图像区域的上边缘和下边缘分别增加一行像素,左边缘和右边缘增加一列像素,以作为第m层的滤波区域。可以理解,每一层滤波层对滤波后,待处理图像所在的图像区域的图像数据均可能会发生改变。
53.然后,处理器30再根据第n-1层的滤波半径及第n层的滤波区域,确定第n-1层的滤波区域;请参阅图8,以m为4为例进行说明,分别为第1层l1至第4层l4。初始时,n的值等于m的值,即处理器30根据第3层的滤波半径及第4层的滤波区域,确定第3层的滤波区域;在确定第3层的滤波区域后,n的值减1变为3,处理器30根据第2层的滤波半径及第3层的滤波区域,确定第2层的滤波区域;在确定第2层的滤波区域后,n的值再次减1变为2,处理器30根据第1层的滤波半径及第2层的滤波区域,确定第1层的滤波区域,在确定第1层的滤波区域后即可作为待处理图像的滤波区域。
54.请再次参阅图2、图3和图9,在某些实施方式中,滤波层包括滤波算子,第m层的滤波算子的滤波区域根据第m层的滤波算子的滤波半径和待处理图像所在的图像区域确定,步骤0121还包括:
55.01211:根据第n-1层的滤波算子的滤波半径和第n层的滤波算子的滤波区域,确定第n-1层的每个滤波算子的滤波区域。
56.在某些实施方式中,第一确定模块12还用于执行步骤01211。即第一确定模块12还用于根据第n-1层的滤波算子的滤波半径和第n层的滤波算子的滤波区域,确定第n-1层的
每个滤波算子的滤波区域。
57.在某些实施方式中,处理器30还用于根据第n-1层的滤波算子的滤波半径和第n层的滤波算子的滤波区域,确定第n-1层的每个滤波算子的滤波区域。即,步骤01211可以由处理器30实现。
58.具体地,每个滤波层可包括一个或多个滤波算子,每个滤波算子均可对上一滤波层输入的输出图像单独进行滤波,以生成中间滤波图像。请参阅图8,滤波层为4层,第1层l1包括1个滤波算子(即,op1),第2层l2包括3个滤波算子(即op2、op3和op4),第3层l3包括2个滤波算子(即op5和op6),第4层l4包括1个滤波算子(即,op7)。109*109,107*107
59.第一层的滤波算子op1对待处理图像的滤波区域的图像数据(即图8中的图像p0)进行滤波处理后,输出第一中间滤波图像p1;第一中间滤波图像p1分别输入到第二层的op2、op3和op4,op2、op3和op4可分别对第一中间滤波图像p1进行处理,即可输出3张第二中间滤波图像p2;3张第二中间滤波图像p2分别输入到第三层的op5(处理op2和op3的第二中间滤波图像p2)和op6(处理op4的第二中间滤波图像p2),op5和op6可分别对第二中间滤波图像p2进行处理,即可输出2张第三中间滤波图像p3;2张第三中间滤波图像p3均输入到第四层的op7,op7对2张第三中间滤波图像p3进行处理,即可输出第四中间滤波图像p4,可将第四中间滤波图像p4作为最终的滤波图像进行输出。
60.根据图8所示,不同的滤波算子之间存在关联,op1和op2、op1和op3、op1和op4、op2和op5、op3和op5、op4和op6、op5和op7、op6和op7关联,关联的滤波算子指的是上一层滤波算子的输出作为下一层滤波算子的输入。
61.在计算第n-1层的每个滤波算子的滤波区域时,首先根据第m层的滤波算子的滤波半径和待处理图像所在的图像区域确定第m层的滤波算子的滤波区域(即,op7的滤波区域)。然后,在确定与第n-1层的每个滤波算子关联的第n层的滤波算子后,根据第n-1层的滤波算子的滤波半径和第n层的滤波算子的滤波区域,即可确定第n-1层的每个滤波算子的滤波区域。
62.例如,n的值等于m的值为4,则根据op7的滤波区域和op5的滤波半径,确定op5的滤波区域;根据op7的滤波区域和op6的滤波半径,确定op6的滤波区域。如此,逐层计算每一层滤波层中的每个滤波算子的滤波区域,直至计算得到第一层的滤波算子op1的滤波区域,即为待处理图像的滤波区域。
63.可以理解,第n-1层的一个滤波算子可能关联多个第n层的滤波算子。第n-1层的第一滤波算子与第n层的第二滤波算子关联包括第n-1层的滤波算子的输出数据为第n层的滤波算子的输入数据,第一滤波算子为第n-1层的滤波算子中的任一个,第二滤波算子为第n层的滤波算子中的任一个。
64.例如,如图8所示,第n-1层(以第1层为例)的第一滤波算子(即op1)与第n层(即,第2层)的多个第二滤波算子(即,op2、op3和op4)关联。op1输出的第一中间滤波图像p1即为op2、op3和op4的输入图像,为了保证第一中间滤波图像p1包含op2、op3和op4所需的全部图像数据,因此,在确定op2、op3和op4的滤波区域后,可根据第n层的每个第二滤波算子的滤波区域(即,op2、op3和op4的滤波区域),确定中间滤波区域。
65.如图10所示,可将当前滤波层(如第n层)的所有滤波算子的滤波区域的并集作为中间滤波区域s2,如op2、op3和op4的滤波区域(即,op2、op3和op4分别输出的第二中间滤波
图像p2)的并集作为中间滤波区域s2,而由于滤波区域一般为矩形,因此,可将op2、op3和op4的滤波区域的并集对应的矩形区域作为中间滤波区域s2。
66.最后,根据中间滤波区域和第一滤波算子的滤波半径,确定第一滤波算子的滤波区域。从而使得第一滤波算子进行滤波处理后输出的图像数据包含op2、op3和op4所需的全部图像数据。如此,可通过一次读取当前滤波层所有滤波算子的图像数据。
67.或者,可将当前滤波层的多个滤波算子(至少两个)的滤波区域的并集作为中间滤波区域s2,如可将op2和op3的滤波区域的并集、op2和op4的滤波区域的并集、或op3和op4的滤波区域的并集作为中间滤波区域s2。
68.然后,根据中间滤波区域和第一滤波算子的滤波半径,确定第一滤波算子的滤波区域。从而使得第一滤波算子进行滤波处理后输出的图像数据包含多个滤波算子所需的全部图像数据,从而通过一次读取获取多个滤波算子的图像数据。
69.对于第n-1层(以第3层为例)的第一滤波算子为多个(即,op5和op6),且与第n层(即,第4层)的op7关联的情况,则可将多op5和op6共生成的两张第三中间滤波图像p3均输入到op7,op7分别对两张第三中间滤波图像p3进行滤波处理,以得到两张第四中间滤波图像p4,并将两张第四中间滤波图像p4进行融合,如将两张第四中间滤波图像p4中位置相同的像素进行加权融合等方式,最终输出一张融合后的第四中间滤波图像p4。
70.请参阅图2、图3和图11,在某些实施方式中,数据处理方法还包括以下步骤:
71.014:根据每个第二滤波算子的滤波区域的顶点坐标和中间滤波区域的顶点坐标,确定每个第二滤波算子的坐标偏移;
72.015:在对第n层进行滤波处理时,根据每个第二滤波算子的坐标偏移、和第n-1层的输出图像的顶点坐标,确定每个第二滤波算子的滤波区域的顶点坐标;
73.016:从输出图像中,获取并处理与每个第二滤波算子的滤波区域对应的图像数据。
74.在某些实施方式中,数据处理装置10还包括第二确定模块14、第三确定模块15和第一处理模块16。第二确定模块14、第三确定模块15和第一处理模块16分别用于执行步骤014、步骤015和步骤016。即,第二确定模块14用于根据每个第二滤波算子的滤波区域的顶点坐标和中间滤波区域的顶点坐标,确定每个第二滤波算子的坐标偏移;第三确定模块15用于在对第n层进行滤波处理时,根据每个第二滤波算子的坐标偏移、和第n-1层的输出图像的顶点坐标,确定每个第二滤波算子的滤波区域的顶点坐标;第一处理模块16用于从输出图像中,获取并处理与每个第二滤波算子的滤波区域对应的图像数据。
75.在某些实施方式中,处理器30还用于根据每个第二滤波算子的滤波区域的顶点坐标和中间滤波区域的顶点坐标,确定每个第二滤波算子的坐标偏移;在对第n层进行滤波处理时,根据每个第二滤波算子的坐标偏移、和第n-1层的输出图像的顶点坐标,确定每个第二滤波算子的滤波区域的顶点坐标;从输出图像中,获取并处理与每个第二滤波算子的滤波区域对应的图像数据。也即是说,步骤014、步骤015和步骤016可以由处理器30实现。
76.具体地,由于一个第一滤波算子可能关联多个第二滤波算子,且第一滤波算子的滤波区域根据多个第二滤波算子的滤波区域(如多个第二滤波算子的滤波区域的并集,即中间滤波区域)和第一滤波算子的滤波半径确定。
77.为了保证第二滤波算子能够准确地从第一滤波算子输出的第一中间滤波图像p1
(对应中间滤波区域)中获取所需的图像数据,需要确定第二滤波算子的滤波区域在中间滤波区域的位置。
78.因此,处理器30可根据每个第二滤波算子的滤波区域的顶点坐标和中间滤波区域的顶点坐标,确定每个第二滤波算子的坐标偏移;从而在第一滤波算子(如第1层的第一滤波算子)输出第一中间滤波图像p1(即,中间滤波区域)时,第二滤波算子可以从第一中间滤波图像p1中获取到滤波所需的图像数据。
79.例如,在第n层(如第2层)进行滤波时,第二滤波算子可根据其对应的坐标偏移和第一中间滤波图像p1的顶点坐标,计算第二滤波算子的滤波区域的顶点坐标,从而在第一中间滤波图像p1中获取与第二滤波算子的滤波区域对应的图像数据,并进行滤波处理,保证数据获取及处理的准确性。
80.请参阅图2、图3和图12,在某些实施方式中,滤波半径包括第五滤波半径和第六滤波半径,数据处理方法还包括以下步骤:
81.017:确定每个第二滤波算子的滤波区域的第五滤波半径和中间滤波区域的第五滤波半径的第一差值、及每个第二滤波算子的滤波区域的第六滤波半径和中间滤波区域的第六滤波半径的第二差值;
82.018:在对第n层进行滤波处理时,根据每个第二滤波算子的第一差值和第n-1层的输出图像的宽度,确定每个第二滤波算子的滤波区域的宽度,并根据每个第二滤波算子的第二差值和第n-1层的输出图像的高度,确定每个第二滤波算子的滤波区域的高度;
83.019:根据每个第二滤波算子的宽度和高度确定每个第二滤波算子的滤波区域;及
84.020:从输出图像中,获取并处理与每个第二滤波算子的滤波区域对应的图像数据。
85.在某些实施方式中,数据处理装置10还包括第四确定模块17、第五确定模块18、第六确定模块19和第二处理模块20。第四确定模块17、第五确定模块18、第六确定模块19和第二处理模块20分别用于执行步骤017、步骤018、步骤019和步骤020。即,第四确定模块17用于确定每个第二滤波算子的滤波区域的第五滤波半径和中间滤波区域的第五滤波半径的第一差值、及每个第二滤波算子的滤波区域的第六滤波半径和中间滤波区域的第六滤波半径的第二差值;第五确定模块18用于在对第n层进行滤波处理时,根据每个第二滤波算子的第一差值和第n-1层的输出图像的宽度,确定每个第二滤波算子的滤波区域的宽度,并根据每个第二滤波算子的第二差值和第n-1层的输出图像的高度,确定每个第二滤波算子的滤波区域的高度;第六确定模块19用于根据每个第二滤波算子的宽度和高度确定每个第二滤波算子的滤波区域;第二处理模块20用于从输出图像中,获取并处理与每个第二滤波算子的滤波区域对应的图像数据。
86.在某些实施方式中,处理器30还用于确定每个第二滤波算子的滤波区域的第五滤波半径和中间滤波区域的第五滤波半径的第一差值、及每个第二滤波算子的滤波区域的第六滤波半径和中间滤波区域的第六滤波半径的第二差值;在对第n层进行滤波处理时,根据每个第二滤波算子的第一差值和第n-1层的输出图像的宽度,确定每个第二滤波算子的滤波区域的宽度,并根据每个第二滤波算子的第二差值和第n-1层的输出图像的高度,确定每个第二滤波算子的滤波区域的高度;根据每个第二滤波算子的宽度和高度确定每个第二滤波算子的滤波区域;及从输出图像中,获取并处理与每个第二滤波算子的滤波区域对应的
图像数据。也即是说,步骤017、步骤018、步骤019和步骤020可以由处理器30实现。
87.具体地,在滤波算子的滤波半径仅包括第五滤波半径和第六滤波半径时,即滤波区域的上边和下边的滤波半径相同,均为第五滤波半径,左边和右边的滤波半径相同,均为第六滤波半径。
88.处理器30可确定每个第二滤波算子的滤波区域的第五滤波半径和中间滤波区域的第五滤波半径的第一差值、及每个第二滤波算子的滤波区域的第六滤波半径和中间滤波区域的第六滤波半径的第二差值;从而确定每个第二滤波算子的滤波区域的滤波半径相对中间滤波区域的滤波半径的偏移,从而在第一滤波算子(如第1层的第一滤波算子)的输出图像(即,第一中间滤波图像p1,对应中间滤波区域)时,第二滤波算子可以从第一中间滤波图像p1中获取到滤波所需的图像数据。
89.例如,在第n层(如第2层)进行滤波时,第二滤波算子可根据其对应的第一差值和第二差值,来分别与第一中间滤波图像p1的高度和宽度作差,从而得到每个第二滤波算子的高度和宽度。然后,处理器30根据第二滤波算子的高度和宽度,来确定每个第二滤波算子的滤波区域,例如,第一中间滤波图像p1为106*106,第一差值和第二差值分别为2和1,则第二滤波算子的宽度和高度分别为104*102,即
90.因此,在确定第二滤波算子的宽度和高度,即可快速确定每个第二滤波算子的滤波区域。最后,处理器30从第一中间滤波图像p1中获取与第二滤波算子的滤波区域对应的图像数据,并进行滤波处理,保证数据获取及处理的准确性。
91.在另一个实施方式中,滤波区域的四边的滤波半径均相同,则此时只需计算每个第二滤波算子的滤波区域的滤波半径和中间滤波区域的滤波半径的差值即可。从而方便后续进行滤波处理时,每个滤波算子快速从上一层输出的输出图像中,获取到滤波所需的全部图像数据。
92.在再一个实施方式中,滤波区域的四边的滤波半径均不相同,即滤波区域包括前述提到的第一滤波半径至第四滤波半径,在计算滤波半径的差值时,则需要分别计算每个第二滤波算子的第一滤波半径至第四滤波半径和中间滤波区域的第一滤波半径至第四滤波半径的四个差值,从而方便后续进行滤波处理时,每个滤波算子快速从上一层输出的输出图像中,获取到滤波所需的全部图像数据。
93.在一个例子中,请再次参阅图8,以上述数据处理算法进行数据处理时,每个滤波算子的输入数据和输出数据都没有进行下采样或者上采样;每个滤波算子的滤波半径都为5个像素,在一般方法中每个滤波算子规划的输出也都规划为[w,h],且假设w=128,h=64。
[0094]
对于现有的滤波算法在每一层滤波层均单独从终端100的存储器50(如动态随机存取存储器,dram)中进行数据读写而言,第一层到第四层存储器50的读写量如下表1:
[0095]
表1
[0096] dram读dram写l1(128+2*5)*(64+2*5)=10212128*64=8192l210212128*64*3=8192*3l310212*3128*64*2=8192*2l410212*2128*64=8192总计7148457344
[0097]
而使用本技术的数据处理方法进行数据处理时,存储器50的读写量如下表2:
[0098]
表2
[0099] dram读dram写总计(128+2*5*4)*(64+2*5*4)=17472w*h=8192
[0100]
可以看到,利用本方法使得dram读的数据量从71484降低到17472,dram写的数据量从57344降低到8192,算法所需读写量大大降低,从而算法效率和功耗表现也能够显著提升。
[0101]
请参阅图13,本技术实施方式的一种存储有计算机程序302的非易失性计算机可读存储介质300,当计算机程序302被一个或多个处理器30执行时,使得处理器30可执行上述任一实施方式的数据处理方法。
[0102]
例如,请结合图1,当计算机程序302被一个或多个处理器30执行时,使得处理器30执行以下步骤:
[0103]
011:获取预设的多个滤波层的滤波半径;
[0104]
012:根据多个滤波层的滤波半径,确定待处理数据的滤波区域;及
[0105]
013:获取滤波区域的图像数据。
[0106]
再例如,请结合图7,当计算机程序302被一个或多个处理器30执行时,处理器30还可以执行以下步骤:
[0107]
0121:根据第n-1层的滤波半径及第n层的滤波区域,确定第n-1层的滤波区域,n为小于或等于m的正整数;
[0108]
0122:在确定得到第n-1层的滤波区域后,使n的值减少1,并再次执行步骤0121:根据第n-1层的滤波半径及第n层的滤波区域,确定第n-1层的滤波区域,直至确定第1层的滤波区域,以作为待处理图像的滤波区域。
[0109]
在本说明书的描述中,参考术语“一个实施方式”、“一些实施方式”、“示意性实施方式”、“示例”、“具体示例”或“一些示例”等的描述意指结合实施方式或示例描述的具体特征、结构、材料或者特点包含于本技术的至少一个实施方式或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施方式或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施方式或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
[0110]
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的程序的代码的模块、片段或部分,并且本技术的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本技术的实施例所属技术领域的技术人员所理解。
[0111]
尽管上面已经示出和描述了本技术的实施方式,可以理解的是,上述实施方式是示例性的,不能理解为对本技术的限制,本领域的普通技术人员在本技术的范围内可以对上述实施方式进行变化、修改、替换和变型。
技术特征:
1.一种数据处理方法,其特征在于,包括:获取预设的多个滤波层的滤波半径;根据多个所述滤波层的所述滤波半径,确定待处理数据的滤波区域;及获取所述滤波区域的图像数据。2.根据权利要求1所述的数据处理方法,其特征在于,所述根据多个滤波层的所述滤波半径,确定所述待处理数据的滤波区域,包括:根据多个所述滤波层的所述滤波半径和所述待处理数据的位置信息,确定所述滤波区域。3.根据权利要求1所述的数据处理方法,其特征在于,所述滤波层包括m层,所述m为正整数,第m层的滤波区域根据第m层的滤波半径和所述待处理数据所在的图像区域确定,所述根据所述滤波半径和所述位置信息,确定所述待处理数据的滤波区域,包括:根据第n-1层的滤波半径及第n层的滤波区域,确定第n-1层的滤波区域,所述n为小于或等于所述m的正整数;在确定得到第n-1层的滤波区域后,使所述n的值减少1,并再次执行根据第n-1层的滤波半径及第n层的滤波区域,确定第n-1层的滤波区域的步骤,直至确定第1层的滤波区域,以作为所述待处理数据的滤波区域。4.根据权利要求3所述的数据处理方法,其特征在于,所述滤波半径包括第一滤波半径、第二滤波半径、第三滤波半径和第四滤波半径,所述第一滤波半径、第二滤波半径、第三滤波半径和第四滤波半径均相同;或者所述第一滤波半径和所述第三滤波半径相同,所述第二滤波半径和所述第四滤波半径相同;或者,第一滤波半径、第二滤波半径、第三滤波半径和第四滤波半径互不相同。5.根据权利要求3所述的数据处理方法,其特征在于,所述滤波层包括滤波算子,第m层的所述滤波算子的滤波区域根据第m层的所述滤波算子的滤波半径和所述待处理数据所在的图像区域确定,所述根据第n-1层的滤波半径及第n层的滤波区域,确定第n-1层的滤波区域,包括:根据第n-1层的所述滤波算子的所述滤波半径和第n层的所述滤波算子的滤波区域,确定第n-1层的每个所述滤波算子的所述滤波区域。6.根据权利要求5所述的数据处理方法,其特征在于,第n-1层的第一滤波算子与第n层的第二滤波算子关联,第n-1层的第一滤波算子与第n层的第二滤波算子关联包括第n-1层的所述滤波算子的输出数据为所述第n层的所述滤波算子的输入数据,所述第一滤波算子为所述第n-1层的滤波算子中的任一个,所述第二滤波算子为所述第n层的滤波算子中的任一个;所述根据第n-1层的所述滤波算子的所述滤波半径和第n层的所述滤波算子的滤波区域,确定第n-1层的每个所述滤波算子的所述滤波区域,包括:根据第n层的每个第二滤波算子的滤波区域,确定中间滤波区域;及根据所述中间滤波区域和所述第一滤波算子的滤波半径,确定所述第一滤波算子的滤波区域。7.根据权利要求6所述的数据处理方法,其特征在于,所述第一滤波算子关联的所述第二滤波算子为多个,所述根据第n层的每个第二滤波算子的滤波区域,确定中间滤波区域,
包括:根据多个所述第二滤波算子的滤波区域的并集确定所述中间滤波区域。8.根据权利要求6所述的数据处理方法,其特征在于,还包括:根据每个所述第二滤波算子的滤波区域的顶点坐标和所述中间滤波区域的顶点坐标,确定每个所述第二滤波算子的坐标偏移;在对所述第n层进行滤波处理时,根据每个所述第二滤波算子的所述坐标偏移、和第n-1层的输出图像的顶点坐标,确定每个所述第二滤波算子的滤波区域的顶点坐标;从所述输出图像中,获取并处理与每个所述第二滤波算子的滤波区域对应的图像数据。9.根据权利要求6所述的数据处理方法,其特征在于,所述滤波半径包括第五滤波半径和第六滤波半径;所述数据处理方法还包括:确定每个所述第二滤波算子的滤波区域的所述第五滤波半径和所述中间滤波区域的所述第五滤波半径的第一差值、及每个所述第二滤波算子的滤波区域的所述第六滤波半径和所述中间滤波区域的所述第六滤波半径的第二差值;在对所述第n层进行滤波处理时,根据每个所述第二滤波算子的所述第一差值和第n-1层的输出图像的宽度,确定每个所述第二滤波算子的滤波区域的高度,并根据每个所述第二滤波算子的所述第二差值和第n-1层的输出图像的高度,确定每个所述第二滤波算子的滤波区域的宽度;根据每个所述第二滤波算子的宽度和高度确定每个所述第二滤波算子的滤波区域;及从所述输出图像中,获取并处理与每个所述第二滤波算子的滤波区域对应的图像数据。10.根据权利要求1所述的数据处理方法,其特征在于,还包括:对所述滤波区域的图像数据进行滤波处理,以生成滤波图像。11.一种数据处理装置,其特征在于,包括:第一获取模块,用于获取预设的多个滤波层的滤波半径;第一确定模块,用于根据多个所述滤波层的所述滤波半径,确定待处理数据的滤波区域;及第二获取模块,用于获取所述滤波区域的图像数据。12.一种终端,其特征在于,包括处理器,所述处理器用于获取预设的多个滤波层的滤波半径;根据多个所述滤波层的所述滤波半径,确定待处理数据的滤波区域;及获取所述滤波区域的图像数据。13.一种包括计算机程序的非易失性计算机可读存储介质,所述计算机程序被处理器执行时,使得所述处理器执行权利要求1-10任意一项所述的数据处理方法。
技术总结
本申请提供了一种数据处理方法,包括获取预设的多个滤波层的滤波半径;根据多个所述滤波层的所述滤波半径,确定待处理数据的滤波区域;及获取所述滤波区域的图像数据。本申请实施方式的数据处理方法、数据处理装置、终端和非易失性计算机可读存储介质,可获取待处理数据进行多个滤波层的滤波时,所需的全部滤波区域,相较于在对每个滤波层进行滤波时,分别获取每个滤波层的滤波区域的数据,不同的滤波层的滤波区域存在重复部分,数据传输量和数据传输占用的时间均较多,导致硬件的功耗增加且数据处理效率较低而言,数据传输量和数据传输占用的时间明显减少,硬件的功耗降低且数据处理效率提高。效率提高。效率提高。
技术研发人员:李勇华 文明明
受保护的技术使用者:OPPO广东移动通信有限公司
技术研发日:2022.02.10
技术公布日:2022/5/25
转载请注明原文地址:https://tc.8miu.com/read-19238.html