本技术属于图像处理,具体涉及一种选择滤波器电路、图像处理方法、装置、电子设备及芯片。
背景技术:
1、滤波算法在图像处理领域被广泛应用,滤波算法的核心是滤波器的窗口选取和运算处理,比如以中心像素和周围设定范围的像素组成像素窗口,通过对像素窗口内像素的运算得出滤波后的中心像素。
2、相关技术中的选择滤波器电路,图像数据逐行/列按像素顺序输入寄存器模块,寄存器模块构建像素窗口,像素窗口的每个像素对应设置一个运算单元,用于获取该像素对应的运算结果,通过从像素窗口中选择符合条件的像素,对符合条件的像素的对应的运算结果进行处理,输出滤波后的图像数据。
3、但是,运算单元的数量会随着像素窗口中的像素数量线性增长,当像素窗口尺寸较大或运算过程较复杂的情况下,导致所需的运算单元资源在选择滤波器电路中占据较大的逻辑面积,造成电路面积开销大的问题。
技术实现思路
1、本技术实施例的目的是提供一种选择滤波器电路、图像处理方法、装置、电子设备及芯片,能够解决运算单元资源在选择滤波器电路中占据较大的逻辑面积,造成电路面积开销大的问题。
2、第一方面,本技术实施例提供了一种选择滤波器电路,所述选择滤波器电路包括:n个运算单元、第一寄存器模块、第二寄存器模块和滤波处理模块;
3、所述运算单元与所述第一寄存器模块的输入端连接,任一所述运算单元用于接收图像数据的m个像素分量中的一个所述像素分量,并对所述像素分量中的像素进行运算,以及将获得的运算结果发送给所述第一寄存器模块;其中,所述像素分量包括多个像素;
4、所述第一寄存器模块的输出端与所述滤波处理模块连接,所述第一寄存器模块用于根据所述m个像素分量对应的运算结果构建运算结果窗口,并将所述运算结果窗口中的运算结果发送给所述滤波处理模块;
5、所述第二寄存器模块的输出端与所述滤波处理模块连接,所述第二寄存器模块用于接收所述m个像素分量,并根据所述m个像素分量构建像素窗口,以及将所述像素窗口中的像素发送给所述滤波处理模块;其中,所述像素窗口中的像素的寄存位置,与所述像素对应的运算结果在所述运算结果窗口中的寄存位置一一对应;
6、所述滤波处理模块用于根据所述像素窗口中的像素和所述运算结果窗口中的运算结果进行滤波处理,并输出滤波后的图像数据。
7、可选的,所述第一寄存器模块包括n个第一寄存器组;一个所述运算单元连接一个所述第一寄存器组;
8、所述第一寄存器组用于寄存一个所述像素分量的运算结果;其中,所述n个第一寄存器组寄存的所述m个像素分量对应的运算结果构成所述运算结果窗口。
9、可选的,所述第一寄存器组包括多个寄存器;
10、所述运算单元具体用于,按照像素顺序接收所述像素分量中的一个像素,并对所述像素进行运算,以及将所述像素的运算结果发送给所述第一寄存器组;
11、所述第一寄存器组具体用于,按照所述像素顺序将一个所述像素分量中各所述像素的运算结果,分别寄存到所述多个寄存器中对应顺序的寄存器。
12、可选的,所述滤波处理模块包括:判断单元、选择单元和输出单元;
13、所述判断单元的输入端与所述第二寄存器模块的输出端连接,所述判断单元的输出端与所述选择单元的输入端连接,所述判断单元用于根据预设条件从所述像素窗口的各像素中确定目标像素;
14、所述选择单元的输入端还与所述第一寄存器模块的输出端连接,所述选择单元的输出端与所述输出单元连接,所述选择单元用于接收所述运算结果窗口中的运算结果,并将所述目标像素的运算结果发送给所述输出单元;
15、所述输出单元用于根据所述目标像素的运算结果输出所述滤波后的图像数据。
16、可选的,所述选择单元包括多个多路选择器;所述多路选择器的数量不小于所述像素窗口中的像素数量;所述多路选择器的输入端与所述判断单元的输出端、所述第一寄存器模块的输出端分别连接,所述多路选择器的输出端与所述输出单元连接;
17、所述多路选择器用于接收所述判断单元发送的所述像素窗口中一个像素对应的判断结果,并在所述判断结果表征所述像素是所述目标像素的情况下,将所述运算结果窗口中所述目标像素对应的运算结果发送给所述输出单元。
18、可选的,所述多路选择器的输入端包括第一输入端、第二输入端和控制端;
19、所述多路选择器的控制端与所述判断单元的输出端连接,所述控制端用于接收所述判断单元发送的所述像素窗口中一个像素对应的判断结果;
20、所述多路选择器的第一输入端与所述第一寄存器模块的输出端连接,所述第一输入端用于接收所述运算结果窗口中所述目标像素对应的运算结果;
21、所述多路选择器还用于,在所述判断结果表征所述像素不是所述目标像素的情况下,将所述第二输入端接收的预设数值输出给所述输出单元。
22、可选的,所述第二寄存器模块包括n个第二寄存器组;
23、所述第二寄存器组用于,按照像素顺序寄存一个所述像素分量中的所述多个像素;其中,所述n个第二寄存器组寄存的所述m个像素分量构成所述像素窗口。
24、第二方面,本技术实施例提供了一种图像处理方法,应用于如第一方面所述的选择滤波器电路;所述方法包括:
25、接收图像数据的m个像素分量中的一个所述像素分量,并对所述像素分量中的像素进行运算;其中,所述像素分量包括多个像素;
26、根据所述m个像素分量对应的运算结果构建运算结果窗口,并根据所述m个像素分量构建像素窗口;其中,所述像素窗口中的像素的寄存位置,与所述像素对应的运算结果在所述运算结果窗口中的寄存位置一一对应;
27、根据所述像素窗口中的像素和所述运算结果窗口中的运算结果进行滤波处理,并输出滤波后的图像数据。
28、第三方面,本技术实施例提供了一种图像处理装置,所述图像处理装置包括:
29、接收模块,用于接收图像数据的m个像素分量中的一个所述像素分量,并对所述像素分量中的像素进行运算;其中,所述像素分量包括多个像素;
30、构建模块,用于根据所述m个像素分量对应的运算结果构建运算结果窗口,并根据所述m个像素分量构建像素窗口;其中,所述像素窗口中的像素的寄存位置,与所述像素对应的运算结果在所述运算结果窗口中的寄存位置一一对应;
31、输出模块,用于根据所述像素窗口中的像素和所述运算结果窗口中的运算结果进行滤波处理,并输出滤波后的图像数据。
32、第四方面,本技术实施例提供了一种电子设备,包括如第一方面所述的选择滤波器电路,用于执行如第二方面所述的图像处理方法。
33、第五方面,本技术实施例提供了一种电子设备,所述电子设备包括处理器和存储器,所述存储器存储可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第二方面所述的图像处理方法的步骤。
34、第六方面,本技术实施例提供了一种存储介质,所述存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第二方面所述的图像处理方法的步骤。
35、第七方面,本技术实施例提供了一种芯片,包括如第一方面所述的选择滤波器电路,用于执行如第二方面所述的图像处理方法。
36、第八方面,本技术实施例提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现如第二方面所述的图像处理方法。
37、第九方面,本技术实施例提供一种计算机程序产品,该程序产品被存储在存储介质中,该程序产品被至少一个处理器执行以实现如第二方面所述的图像处理方法。
38、本技术实施例的选择滤波器电路,运算单元与第一寄存器模块的输入端连接,运算单元接收图像数据的m个像素分量中对应顺序的一个像素分量,并对像素分量中的像素进行运算,以及将获得的运算结果发送给第一寄存器模块,使得第一寄存器模块构建m个像素分量对应的运算结果窗口,并将运算结果窗口中的运算结果发送给滤波处理模块,第二寄存器模块接收m个像素分量,根据m个像素分量构建像素窗口,并将像素窗口中的像素发送给滤波处理模块,这样,由于像素窗口中的像素的寄存位置,与像素对应的运算结果在运算结果窗口中的寄存位置一一对应,因此可以通过第一寄存器模块构建与第二寄存器模块所构建的像素窗口相对应的运算结果窗口,从而通过第一寄存器模块和第二寄存器模块分别寄存m个像素分量的运算结果和像素,并且像素窗口和运算结果窗口中相对应的寄存位置处的像素和运算结果也相匹配,然后滤波处理模块根据像素窗口中的像素和运算结果窗口中的运算结果进行滤波处理,从而实现对m个像素分量的滤波处理并输出滤波后的图像数据。相比于相关技术中的选择滤波器电路为每个像素对应设置一个运算单元,本技术的选择滤波器电路,由于像素分量包括多个像素,通过n个运算单元中的一个运算单元,可以对m个像素分量中的一个像素分量也即多个像素点进行运算,因此,可以减少所需运算单元的数量,只需一个第一寄存器模块为m个像素分量寄存运算结果,可以减少运算单元的逻辑面积开销,因此,可以降低选择滤波器电路的电路面积开销,可以降低电路硬件成本。