Filter, filtering method, data processing system, and chip

By segmenting the N-dimensional data set and using one-dimensional Gaussian core for one-dimensional Gaussian filtering, the shortcomings of traditional Gaussian filters in PPA are solved, and high-efficiency and low-power Gaussian filtering are achieved.

WO2025050765A1PCT designated stage expired Publication Date: 2025-03-13SHENZHEN MICROBT ELECTRONICS TECH CO LTD
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2024/100871
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-09-07
Filing Date
2024-06-24
Publication Date
2025-03-13

AI Technical Summary

Technical Problem

Traditional Gaussian filters have room for improvement in performance, power consumption and area (PPA). Especially in Gaussian filtering processing of two-dimensional or three-dimensional data sets, it is necessary to cache a large amount of data and provide a large number of multiplier and adder units, resulting in large chip area and high power consumption.

Method used

One-dimensional Gaussian filtering of the data set is performed by splitting the N-dimensional data set into several small parts and using the N-dimensional Gaussian kernels obtained by vector decomposition of the N-dimensional Gaussian kernel as the calculation factor. This method reduces cache resource requirements and computing resource requirements, and reduces chip area and power consumption.

Benefits of technology

It significantly saves chip area and power consumption, improves the performance indicators (PPA) of the filter, and realizes efficient Gaussian filtering.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024100871_13032025_PF_FP_ABST
    Figure CN2024100871_13032025_PF_FP_ABST
Patent Text Reader

Abstract

The present disclosure relates to a filter, a filtering method, a data processing system, and a chip. Disclosed is a filter for performing N-dimensional Gaussian filtering on an N-dimensional data set, wherein N is 2 or 3. The filter comprises: a computation factor acquisition module configured to acquire N computation factors for N dimensions, wherein the N computation factors correspond to N one-dimensional Gaussian kernels obtained by performing N-dimensional vector decomposition on an N-dimensional Gaussian kernel to be used for the N-dimensional data set; and a computation module comprising N computation sub-modules for the N dimensions, wherein the N computation sub-modules are cascaded, wherein each computation sub-module is configured to use, in a corresponding dimension, a corresponding computation factor to perform one-dimensional Gaussian filtering on the N-dimensional data set input to the computation module.
Need to check novelty before this filing date? Find Prior Art

Description

Filter, filtering method, data processing system and chip CROSS-REFERENCE TO RELATED APPLICATIONS This application is based on an application with CN application number 202311150821.9 and application date September 7, 2023, and claims its priority. The disclosed content of the CN application is hereby introduced as a whole into this application. Technical Field The present disclosure generally relates to an implementation method of Gaussian filtering, and more specifically, to a filter, a filtering method, a data processing system and a chip for Gaussian filtering. Background Art Gaussian filtering is a linear smoothing filter that is suitable for eliminating Gaussian noise. For example, most image noise is Gaussian noise. Therefore, Gaussian filtering is widely used in the noise reduction process of image processing. In the chip design process of the filter, performance, power consumption and area (PPA for short) are three indicators that designers pay great attention to. Therefore, improving the PPA of the filter chip has a wide range of application needs. Summary of the invention According to one aspect of the present disclosure, a filter is provided for performing N-dimensional Gaussian filtering on an N-dimensional data set, wherein N is 2 or 3, the filter comprising: a calculation factor acquisition module, configured to obtain N calculation factors for N dimensions, wherein the N calculation factors correspond to N one-dimensional Gaussian kernels obtained by performing N-dimensional vector decomposition on the N-dimensional Gaussian kernel to be used for the N-dimensional data set; and a calculation module, comprising N calculation sub-modules for N dimensions, the N calculation sub-modules being arranged in cascade, wherein each calculation sub-module is configured to perform one-dimensional Gaussian filtering on the N-dimensional data set input to the calculation module using the corresponding calculation factor on the corresponding dimension. According to another aspect of the present disclosure, there is provided a data processing system, comprising: the filter as described above; and a control device configured to provide the N calculation factors described above to the filter. According to another aspect of the present disclosure, a chip is provided, which includes the filter or the data processing system as described above. According to another aspect of the present disclosure, a filtering method is provided for performing N-dimensional Gaussian filtering on an N-dimensional data set, wherein N is 2 or 3, the filtering method comprising: obtaining N calculation factors for N dimensions, The N calculation factors correspond to N one-dimensional Gaussian kernels obtained by performing N-dimensional vector decomposition on the N-dimensional Gaussian kernel to be used for the N-dimensional data set; and the input N-dimensional data set is subjected to one-dimensional Gaussian filtering in N dimensions in turn using the corresponding calculation factors. Other features and advantages of the present disclosure will become more apparent from the following detailed description of exemplary embodiments of the present disclosure with reference to the accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS The accompanying drawings, which constitute a part of the specification, illustrate embodiments of the present disclosure and, together with the description, serve to explain the principles of the present disclosure. The present disclosure may be more clearly understood from the following detailed description with reference to the accompanying drawings, in which: FIG. 1A is a schematic block diagram showing a configuration of a three-dimensional Gaussian filter according to the related art. FIG. 1B is a schematic diagram showing a specific example of performing three-dimensional Gaussian filtering using a three-dimensional Gaussian kernel according to the related art. FIG. 2 is a schematic diagram showing an example of the architecture of a filter and a data processing system including the filter according to an embodiment of the present disclosure. FIG. 3 is a schematic diagram illustrating an example of three-dimensional vector decomposition of a three-dimensional Gaussian kernel according to an embodiment of the present disclosure. FIG. 4 is a schematic block diagram showing an example of a configuration of a computing module according to an embodiment of the present disclosure. FIG. 5 is a schematic diagram showing an example of segmenting a three-dimensional data set according to an embodiment of the present disclosure. FIG. 6 is a flowchart illustrating an example of data segmentation control using the segmentation number according to an embodiment of the present disclosure. 7A-7C are schematic diagrams showing an example of performing Gaussian filtering on a segmented three-dimensional data set in three dimensions in sequence according to an embodiment of the present disclosure. FIG. 8 is a flowchart illustrating an example of steps of a filtering method according to an embodiment of the present disclosure. Note that in the embodiments described below, sometimes the same reference numerals are used in common between different drawings to represent the same parts or parts with the same functions, and their repeated descriptions are omitted. In some cases, similar numbers and letters are used to represent similar items, so once an item is defined in one drawing, it does not need to be further discussed in subsequent drawings. For ease of understanding, the position, size, range, etc. of each structure shown in the drawings and the like may not represent the actual position, size, range, etc. Therefore, the present disclosure is not limited to the position, size, range, etc. disclosed in the drawings and the like. DETAILED DESCRIPTION The inventors of the present application realize that there is still much room for improvement in the PPA aspect of the traditional Gaussian filter. In particular, in the Gaussian filtering of a two-dimensional or three-dimensional data set, a Gaussian kernel of the same dimension is generally used to perform sliding window calculations on the data set, so that the data value at each point is obtained by weighted averaging its own value and the data values ​​of adjacent points in each dimension. However, this solution requires caching a large amount of data, and at the same time requires providing a large number of multiplier units and adder units. In chip design, this requires occupying a large chip area, generating large power consumption, and is extremely unfriendly to PPA. In the following description, the case where a three-dimensional Gaussian filter is performed on a three-dimensional data set of U×V×W using a three-dimensional Gaussian kernel of S×P×Q is used as an example for analysis. Among them, S, P, and Q represent the number of factors of the three-dimensional Gaussian kernel in each dimension, all of which are positive odd numbers; U, V, and W represent the amount of data of the three-dimensional data set in each dimension, all of which are positive integers; and S≤U, P≤V, Q≤W. However, it is easy for those skilled in the art to understand that the present application is not limited to this. For example, the following analysis is also applicable to the case where a two-dimensional Gaussian filter is performed on a two-dimensional data set using a two-dimensional Gaussian kernel. For ease of illustration, the XYZ coordinate system is used herein to exemplarily represent three corresponding dimensions. That is, the X direction, the Y direction, and the Z direction may correspond to three corresponding dimensional directions, respectively. In addition, in order to conveniently represent each data in the data set, in some examples, the XYZ coordinate system may be appropriately set so that each data may be indicated by an integer coordinate point position. It is easy for those skilled in the art to understand that the present application is not limited thereto. Fig. 1A is a schematic block diagram showing a configuration of a three-dimensional Gaussian filter according to the related art. Fig. 1B is a schematic diagram showing a specific example of performing three-dimensional Gaussian filtering using a three-dimensional Gaussian kernel according to the related art. As shown in FIG. 1A , a three-dimensional Gaussian filter according to the related art may be configured to receive a three-dimensional data set, perform three-dimensional Gaussian filtering on the received three-dimensional data set, and output a calculation result (ie, a filtered three-dimensional data set). According to the related art, a three-dimensional Gaussian filter may include a three-dimensional data cache module, a three-dimensional data flow control module, and a three-dimensional Gaussian calculation module. The three-dimensional data cache module is configured to cache data required for three-dimensional Gaussian calculation; the three-dimensional data flow control module is configured to control the reading and writing of data in the three-dimensional Gaussian filter; and the three-dimensional Gaussian calculation module is configured to use a three-dimensional Gaussian kernel to perform three-dimensional Gaussian calculation on data read from the three-dimensional data cache module. As shown in FIG1A , the data of the input three-dimensional data set is sent to the three-dimensional data cache module through the three-dimensional data flow control module. The three-dimensional data flow control module counts the amount of data in the three-dimensional data cache module. When the cached data is sufficient to perform a three-dimensional Gaussian calculation with the three-dimensional Gaussian kernel, the cached data is read out and sent to the three-dimensional Gaussian calculation module. When the calculation is completed, the three-dimensional Gaussian calculation module returns the calculation result to the three-dimensional data flow control module. The three-dimensional data flow control module outputs the calculation result after receiving it. It is worth noting that the reading and writing of two-dimensional or three-dimensional data sets are generally performed in order of dimensions. As an example, When caching a three-dimensional data set, only after completely caching the data of a plane consisting of two dimensions, can you slide along the third dimension to start caching the data of the next plane consisting of the first two dimensions. For example, a three-dimensional data set can be cached in the order of X, Y, and Z directions, where it is necessary to slide along the Z direction after completely caching the data of an XY plane to start caching the data of the next XY plane. Therefore, the inventor of the present application realizes that in the three-dimensional Gaussian filtering of the related art, in each Gaussian calculation performed on the three-dimensional data set using the three-dimensional Gaussian kernel, data in three dimensions need to be used, so a large amount of data on multiple complete planes needs to be cached. Since the amount of data in each dimension of the three-dimensional data set may be large, the amount of data on the complete plane is very considerable, and the amount of data on multiple complete planes that need to be cached is even more considerable. Specifically, when S, P, and Q represent the number of factors of the three-dimensional Gaussian kernel in the X, Y, and Z directions, respectively, as described above, when the last sliding window direction (i.e., the cache direction) is the X direction, it is necessary to cache at least (S-1) data on the YZ plane; or, when the last sliding window direction is the Y direction, it is necessary to cache at least (P-1) data on the XZ plane; or, when the last sliding window direction is the Z direction, it is necessary to cache at least (Q-1) data on the XY plane. In addition, the inventors of the present application recognized that in the three-dimensional Gaussian filtering of the related art, in each Gaussian calculation performed on a three-dimensional data set using a three-dimensional Gaussian kernel, it is necessary to use all the factors in the three-dimensional Gaussian kernel to multiply the corresponding data in the data set separately, and then sum the products, so a large number of multiplier units and adder units are required. Specifically, when S, P, and Q represent the number of factors of the three-dimensional Gaussian kernel in the X, Y, and Z directions, respectively, in each Gaussian calculation, the S×P×Q factors in the three-dimensional Gaussian kernel are respectively multiplied by the S×P×Q data in the data set, and then the products are summed. That is, S×P×Q multiplier units and (S×P×Q-1) adder units need to be provided. For example, in the specific example shown in FIG. 1B , the three-dimensional Gaussian kernel includes 3×5×3 factors, and the three-dimensional data set to be processed includes 15×24×10 data. Therefore, if the 45 factors in the three-dimensional Gaussian kernel can be represented as kernel[0], kernel[1], ...kernel

[0044] , then the Gaussian filtering result data_guass at any point in the three-dimensional data set can be expressed as follows: data_guass=(kernel[0]×data[0]+kernel[1]×data[1]+....+kernel

[0044] ×data

[0044] ) / (kernel[0]+kernel[1]+....+kernel

[0044] ), Among them, data[0], data[1]...data

[0044] represent the data values ​​at the corresponding points in the three-dimensional data set. That is, in the calculation for each point, the 3×5×3 factors in the three-dimensional Gaussian kernel need to be multiplied by the 3×5×3 data in the data set, and then the products are summed. Therefore, 45 multiplier units and 44 Here, the division operation can be realized by cutting off the low-order data and not counting them. In addition, when the last sliding window direction is the X direction, it is necessary to cache at least 2 data on the YZ plane, that is, 24×10×2=480 data; or, when the last sliding window direction is the Y direction, it is necessary to cache at least 4 data on the XZ plane, that is, 15×10×4=600 data; or, when the last sliding window direction is the Z direction, it is necessary to cache at least 2 data on the XY plane, that is, 15×24×2=720 data. Therefore, the inventors of the present application realize that the traditional Gaussian filter needs to occupy a large chip area, generates large power consumption, and is extremely unfriendly to PPA. It is desired to provide an improved Gaussian filter that can have improved PPA. Various exemplary embodiments of the present disclosure will be described in detail below with reference to the accompanying drawings. It should be noted that unless otherwise specifically stated, the relative arrangement of components and steps, numerical expressions and numerical values ​​set forth in these embodiments do not limit the scope of the present disclosure. The following description of at least one exemplary embodiment is in fact merely illustrative and is in no way intended to limit the present disclosure and its application or use. That is, the structures and methods herein are shown in an exemplary manner to illustrate different embodiments of the structures and methods in the present disclosure. However, those skilled in the art will appreciate that they merely illustrate exemplary ways of the present disclosure that can be implemented, rather than exhaustive ways. In addition, the drawings need not be drawn to scale, and some features may be enlarged to illustrate the details of specific components. Technologies, methods, and apparatus known to ordinary technicians in the relevant field may not be discussed in detail, but where appropriate, such technologies, methods, and apparatus should be considered part of the authorization specification. In all examples shown and discussed herein, any specific values ​​should be interpreted as merely exemplary and not as limiting. Therefore, other examples of the exemplary embodiments may have different values. 2 is a schematic diagram showing an example of the architecture of a filter 200 and a data processing system 20 including the filter 200 according to an embodiment of the present disclosure. In some embodiments, the filter 200 may refer to a filtering circuit in a chip. In various embodiments of the present disclosure, the filter 200 is used to perform N-dimensional Gaussian filtering on an N-dimensional data set, where N is 2 or 3. As explained above, this article mainly describes the case of performing three-dimensional Gaussian filtering on a three-dimensional data set (N is 3) as an example, but these descriptions are also similarly applicable to the case where N is 2. In various embodiments, the filter 200 may include a calculation factor acquisition module 210 and a calculation module 220. For example, in some embodiments, the calculation factor acquisition module 210 may be a control port of the filter 200 (such as a filter circuit in a chip), and the calculation module 220 is a main circuit part of the filter 200. In various embodiments, the computing module 220 may include N computing sub-modules for N dimensions. For example, when N=3, in some embodiments, as shown in FIG. 2 , three calculations for three dimensions The submodules may include a calculation submodule for the first dimension (also called a first dimension calculation submodule) 221, a calculation submodule for the second dimension (also called a second dimension calculation submodule) 222, and a calculation submodule for the third dimension (also called a third dimension calculation submodule) 223. As described above, the X direction, the Y direction, and the Z direction may correspond to three corresponding dimensional directions, respectively. In this article, the case where the X direction, the Y direction, and the Z direction correspond to the directions of the first dimension, the second dimension, and the third dimension, respectively, is described as an example. However, this correspondence is only an example. In fact, the first dimension, the second dimension, and the third dimension may correspond to the X direction, the Y direction, and the Z direction in any order. In various embodiments, the calculation factor acquisition module 210 may be configured to acquire N calculation factors for N dimensions, wherein the N calculation factors may correspond to N one-dimensional Gaussian kernels obtained by performing N-dimensional vector decomposition on the N-dimensional Gaussian kernel to be used for the N-dimensional data set. For example, in the case of N=3, in some embodiments, as shown in FIG2 , the calculation factor acquisition module 210 may be configured to acquire three calculation factors for three dimensions, including: a calculation factor for the first dimension (also called a first dimension calculation factor) F1, a calculation factor for the second dimension (also called a second dimension calculation factor) F2, and a calculation factor for the third dimension (also called a third dimension calculation factor) F3. These three calculation factors F1, F2, and F3 correspond to three one-dimensional Gaussian kernels K1, K2, and K3 obtained by performing three-dimensional vector decomposition on the three-dimensional Gaussian kernel to be used for the three-dimensional data set. Specifically, by three-dimensional vector decomposition, the three-dimensional Gaussian kernel of S×P×Q to be used for the three-dimensional data set can be decomposed into a one-dimensional Gaussian kernel K1 of S×1, a one-dimensional Gaussian kernel K2 of P×1, and a one-dimensional Gaussian kernel K3 of Q×1. On this basis, the calculation factor acquisition module 210 can obtain the first dimension calculation factor F1 of S×1, the second dimension calculation factor F2 of P×1, and the third dimension calculation factor F3 of Q×1 corresponding to K1, K2, and K3, respectively. FIG. 3 is a schematic diagram showing an example of three-dimensional vector decomposition of a three-dimensional Gaussian kernel according to an embodiment of the present disclosure. As shown in FIG3 , through three-dimensional vector decomposition, a 3×5×3 three-dimensional Gaussian kernel can be decomposed into a 3×1 one-dimensional Gaussian kernel K1 , a 5×1 one-dimensional Gaussian kernel K2 , and a 3×1 one-dimensional Gaussian kernel K3 . In some embodiments, as shown in FIG3 , the three calculation factors F1, F2, and F3 may be equal to three one-dimensional Gaussian kernels K1, K2, and K3, respectively. Alternatively, in some embodiments, the three calculation factors may correspond to the three one-dimensional Gaussian kernels K1, K2, and K3, respectively, through specific relationships, so as to strengthen or weaken certain aspects of the processing effect on the basis of Gaussian filtering. In the following, for the convenience of description, the case where the three calculation factors F1, F2, and F3 are equal to the three one-dimensional Gaussian kernels K1, K2, and K3, respectively, is described as an example. In some embodiments, as shown in FIG2 , the calculation factor acquisition module 210 may be configured to acquire the calculation factor from a control device 240 outside the filter. In some embodiments, the control device 240 may be, for example, a central processor or other external controller. In some embodiments, the data processing system 20 including the filter 200 and the control device 240 constitutes another aspect of the present disclosure. In some embodiments, the control device 240 may be configured to provide the above-mentioned N calculation factors to the filter 200. For example, in some embodiments, the control device 240 may generate a three-dimensional Gaussian kernel to be used for a three-dimensional data set according to the received instruction, and obtain the corresponding three one-dimensional Gaussian kernels K1, K2, and K3 by performing three-dimensional vector decomposition, thereby obtaining the calculation factors F1, F2, and F3. Alternatively, in some embodiments, the control device may directly receive the three-dimensional Gaussian kernel to be used for the three-dimensional data set, and obtain the corresponding three one-dimensional Gaussian kernels K1, K2, and K3 by performing three-dimensional vector decomposition, thereby obtaining the calculation factors F1, F2, and F3. Alternatively, in some embodiments, the control device may directly determine the three one-dimensional Gaussian kernels K1, K2, and K3 corresponding to the three-dimensional Gaussian kernel to be used for the three-dimensional data set by searching or other methods without performing three-dimensional vector decomposition. For example, the control device may pre-store a plurality of commonly used one-dimensional Gaussian kernels, such as a 3×1 one-dimensional Gaussian kernel [1:2:1], a 5×1 one-dimensional Gaussian kernel [1:4:6:4:1], etc., and directly search and determine according to the three-dimensional Gaussian kernel to be used for the three-dimensional data set. It is easy for those skilled in the art to understand that the present application does not limit the specific process of providing the calculation factor (one-dimensional Gaussian kernel). In some embodiments, the N-dimensional Gaussian kernel to be used for the N-dimensional data set is a conventional N-dimensional Gaussian kernel. Alternatively, in some embodiments, the N-dimensional Gaussian kernel to be used for the N-dimensional data set is an unconventional N-dimensional Gaussian kernel. Here, the conventional Gaussian kernel may refer to a general Gaussian kernel widely used by those skilled in the art, and the unconventional N-dimensional Gaussian kernel may refer to a custom Gaussian kernel different from the general Gaussian kernel, such as a custom 3×1 one-dimensional Gaussian kernel [1:6:1]. It is easy for those skilled in the art to understand that the present application does not impose specific limitations on this. Via the calculation factor acquisition module 210 , the control device 240 can respectively configure the N calculation factors to the N calculation sub-modules in the calculation module 220 . In various embodiments, N computing submodules may be arranged in cascade, and each computing submodule may be configured to perform one-dimensional Gaussian filtering on the N-dimensional data set input to the computing module using a corresponding computing factor in a corresponding dimension. For example, when N=3, in some embodiments, as shown in FIG. 2 , the first dimension calculation submodule 221 , the second dimension calculation submodule 222 , and the third dimension calculation submodule 223 may be arranged in cascade. The first dimension calculation submodule 221 arranged at the first level can be configured to use the first dimension calculation factor F1 (corresponding to the S×1 one-dimensional Gaussian kernel K1) in the first dimension to perform one-dimensional Gaussian filtering on the three-dimensional data set of the input calculation module through sliding window calculation, and pass the processing result to the second dimension calculation submodule 222. Next, the second dimension calculation submodule 222 arranged at the second level may be configured to use The three-dimensional data set output by the first dimension calculation submodule 221 is subjected to one-dimensional Gaussian filtering by sliding window calculation using the second dimension calculation factor F2 (corresponding to the one-dimensional Gaussian kernel K2 of P×1), and the processing result is passed to the third dimension calculation submodule 223. Finally, the third dimension calculation submodule 223 arranged at the third level can be configured to use the third dimension calculation factor F3 (corresponding to the one-dimensional Gaussian kernel K3 of Q×1) in the third dimension to perform one-dimensional Gaussian filtering on the three-dimensional data set output by the second dimension calculation submodule 222 through sliding window calculation. It is worth noting that one-dimensional Gaussian filtering can be performed in any order using the corresponding calculation factors in three dimensions. Advantageously, since only one-dimensional Gaussian filtering needs to be performed in each computing submodule, the number of multipliers and adders required is greatly reduced. Specifically, when S, P, and Q represent the number of factors of the three-dimensional Gaussian kernel in three dimensions as described above, in each Gaussian calculation of the first dimension calculation submodule 221, the S×1 factors in the first dimension calculation factor F1 are used to multiply the S×1 data in the data set respectively, and then the products are summed. That is, S multiplier units and (S-1) adder units need to be provided in the first dimension calculation submodule 221. Similarly, P multiplier units and (P-1) adder units need to be provided in the second dimension calculation submodule 222; Q multiplier units and (Q-1) adder units need to be provided in the third dimension calculation submodule 223. Therefore, the total number of multiplier units required is only S+P+Q, and the total number of adder units is only S+P+Q-3, which are much smaller than the number of multiplier units and adder units required in the related art. FIG. 4 is a schematic block diagram showing an example of a configuration of the computing module 220 according to an embodiment of the present disclosure. In some embodiments, as shown in FIG4 , each computing submodule in the computing module 220 includes a cache unit, a data flow control unit, and a computing unit. The cache unit is configured to cache data required to perform the corresponding one-dimensional Gaussian filtering; the data flow control unit is configured to control the reading and writing of data in the corresponding computing submodule; and the computing unit is configured to perform one-dimensional Gaussian filtering on the read data using the corresponding computing factor. Specifically, the first dimension calculation submodule 221 includes a first cache unit 2211 , a first data flow control unit 2212 and a first calculation unit 2213 . The three-dimensional data set input to the calculation module 220 first enters the first dimension calculation submodule 221. The first data flow control unit 2212 writes the input data into the first cache unit 2211 and counts the amount of data in the first cache unit 2211. When the cached data is sufficient to perform a one-dimensional Gaussian calculation in the first dimension using the first dimension calculation factor F1, the cached data is read out and sent to the first calculation unit 2213. The first calculation unit 2213 uses the first dimension calculation factor F1 to perform a one-dimensional Gaussian calculation. When the calculation is completed, the first calculation unit 2213 calculates The calculation result is returned to the first data stream control unit 2212. After receiving the calculation result, the first data stream control unit 2212 outputs it to the second dimension calculation submodule 222. Here, the calculation result output by the first dimension calculation submodule 221 is a three-dimensional data set that has been subjected to the first dimension Gaussian filtering. It is worth noting that using the S×1 one-dimensional Gaussian kernel to perform a one-dimensional Gaussian calculation in the first dimension only requires caching (S-1) data in the first dimension. As mentioned above, the reading and writing of three-dimensional data sets are generally performed in sequence according to the dimensions. In the process of writing the three-dimensional data set to the first cache unit 2211, if the first dimension is set as the first dimension to be read and written, the first cache unit 2211 only needs to cache (S-1) data, which is sufficient to use the first calculation factor F1 (corresponding to the S×1 one-dimensional Gaussian kernel K1) to perform a one-dimensional Gaussian calculation in the first dimension. Therefore, the cache capacity requirement of the first cache unit 2211 arranged in the first-level first-dimension calculation submodule 221 is (S-1) data. The second dimension calculation submodule 222 includes a second cache unit 2221 , a second data flow control unit 2222 and a second calculation unit 2223 . The second dimension calculation submodule 222 receives the three-dimensional data set that has been filtered by one-dimensional Gaussian from the first dimension calculation submodule 221. The second data flow control unit 2222 writes the input data into the second cache unit 2221 and counts the amount of data in the second cache unit 2221. When the cached data is sufficient to use the second dimension calculation factor F2 to perform a one-dimensional Gaussian calculation in the second dimension, the cached data is read out and sent to the second calculation unit 2223. The second calculation unit 2223 uses the second dimension calculation factor F2 to perform a one-dimensional Gaussian calculation. When the calculation is completed, the second calculation unit 2223 returns the calculation result to the second data flow control unit 2222. After receiving the calculation result, the second data flow control unit 2222 outputs it to the third dimension calculation submodule 223. Here, the calculation result output by the second dimension calculation submodule 222 is a three-dimensional data set that has been filtered by the first dimension Gaussian and the second dimension Gaussian. Similar to the above analysis, using a P×1 one-dimensional Gaussian kernel to perform a one-dimensional Gaussian calculation in the second dimension only requires caching (P-1) data in the second dimension. However, it is worth noting that since the data written to the second cache unit 2221 is from the first dimension calculation submodule 221, and the first dimension calculation submodule 221 first reads and writes along the first dimension, and performs sliding window calculation along the first dimension, the (P-1) data that need to be cached for the above one-dimensional Gaussian calculation in the second dimension cannot be continuously written to the second cache unit 2221. If the second dimension is set as the second dimension for reading and writing, the second cache unit 2221 needs to cache (P-1) rows of data, which is enough to use the second calculation factor F2 (corresponding to the P×1 one-dimensional Gaussian kernel K2) to perform a one-dimensional Gaussian calculation in the second dimension. Here, a row of data refers to the amount of data of the input three-dimensional data set in the first dimension. In the case of using the U×V×W three-dimensional data set as described above, the second cache unit 2221 needs to cache (P-1)×U data Therefore, the cache capacity requirement of the second cache unit 2221 of the second-level second-dimensional calculation submodule 222 is (P-1) rows of data, where the amount of one row of data is the amount of data of the three-dimensional data set input to the calculation module 220 in the first dimension. The third dimension calculation submodule 223 includes a third cache unit 2231 , a third data flow control unit 2232 and a third calculation unit 2233 . The third dimension calculation submodule 223 receives the three-dimensional data set that has been Gaussian filtered in two dimensions from the second dimension calculation submodule 222. The third data flow control unit 2232 writes the input data set into the third cache unit 2231 and counts the amount of data in the third cache unit 2231. When the cached data is sufficient to use the third dimension calculation factor F3 to perform a one-dimensional Gaussian calculation in the third dimension, the cached data is read out and sent to the third calculation unit 2233. The third calculation unit 2233 uses the third dimension calculation factor F3 to perform a one-dimensional Gaussian calculation. When the calculation is completed, the third calculation unit 2233 returns the calculation result to the third data flow control unit 2232. The third data flow control unit 2232 outputs the calculation result after receiving it. Similar to the above analysis, using a Q×1 one-dimensional Gaussian kernel to perform a one-dimensional Gaussian calculation in the third dimension only requires caching (Q-1) data in the third dimension, but the (Q-1) data in the third dimension cannot be continuously written into the third cache unit 2231. Because the third dimension is set as the last dimension for reading, writing and sliding window calculations, the third cache unit 2231 needs to cache (Q-1) face data to be sufficient for using the third calculation factor F3 (corresponding to the Q×1 one-dimensional Gaussian kernel K3) to perform a one-dimensional Gaussian calculation in the third dimension. The data of a face here refers to the amount of data of the input three-dimensional data set on the plane formed by the first dimension and the second dimension. In the case of using the U×V×W three-dimensional data set as described above, the third cache unit 2231 needs to cache (Q-1)×U×V data. Therefore, the cache capacity requirement of the third cache unit 2231 of the third dimensional calculation submodule 222 arranged at the third level is (Q-1) planes of data, where the amount of data in one plane is the amount of data of the three-dimensional data set of the input calculation module 220 on the plane formed by the first dimension and the second dimension. The inventor of the present application realizes that the amount of data in each dimension of the N-dimensional data set input to the filter 200 may be large. Therefore, if the N-dimensional data set input to the filter 200 is directly input to the calculation module 220, the amount of data on the rows or planes that need to be cached is considerable. In order to solve the above problem, the present application proposes to divide the N-dimensional data set into several small portions before inputting the N-dimensional data set into the calculation module 220 to reduce cache resources. Generally speaking, the more portions are divided, the smaller the cache resources required, so the chip area can be greatly saved. Therefore, in some embodiments, the filter 200 may further include a data segmentation control module 230. The data segmentation control module 230 may be configured to perform a data segmentation on the input filter in any one or more dimensions of the N dimensions. The N-dimensional data set 200 is segmented and the segmented N-dimensional data set is input to the calculation module 220. Thus, the amount of data in one or more dimensions of the N-dimensional data set input to the calculation module can be advantageously reduced. In some embodiments, the data segmentation control module 230 can refer to a data segmentation circuit in a chip. For example, when N=3, in some embodiments, as shown in FIG. 2 , the data segmentation control module 230 is configured to segment the three-dimensional data set input to the filter 200 and input the segmented three-dimensional data set to the calculation module 220 . Although FIG. 2 illustrates a case where the filter 200 includes a data segmentation control module 230, the present application is not limited thereto. For example, alternatively, in some embodiments, the data segmentation control module 230 may be arranged separately from the filter 200. For example, the data segmentation control module 230 may be arranged at a separate position on the same chip as the filter 200. Alternatively, in some embodiments, the data segmentation control module 230 may be arranged on a different chip from the filter 200. FIG. 5 is a schematic diagram showing an example of segmenting a three-dimensional data set according to an embodiment of the present disclosure. In the example shown in FIG. 5 , the three-dimensional data set is segmented in the X direction. As can be observed, such segmentation of the three-dimensional data set in one dimension can be figuratively understood as "slicing" the three-dimensional data set in that dimension. For example, by evenly dividing an input 15×24×10 three-dimensional data set into five parts, five 3×24×10 three-dimensional data sets can be obtained. In this way, when it is necessary to cache data of multiple XY planes or XZ planes, the amount of data that needs to be cached can be reduced to 1 / 5 of the original amount, thereby greatly saving chip area. Although FIG. 5 illustrates the case where the three-dimensional data set is segmented in the X direction, this is only an example. In fact, in some embodiments, the data segmentation control module 230 can segment the input three-dimensional data set in any one, two or three dimensions. For example, the segmentation direction can include any one or more of the X direction, Y direction and Z direction shown in FIG. 5. Although the above example of uniformly dividing a three-dimensional data set is introduced in conjunction with FIG5, this is only an example and the present application is not limited thereto. For example, in actual operation, if it is not possible to divide the data set uniformly accurately, the data set may be divided approximately uniformly, or only one or a few of the data sets after division may be different from the others. In addition, generally speaking, each three-dimensional data set obtained by division should be no smaller than the three-dimensional Gaussian kernel to be used for three-dimensional Gaussian filtering. In some embodiments, the data segmentation control module 230 may include a segmentation parameter acquisition submodule 231 and a segmentation submodule 232. The segmentation parameter acquisition submodule 231 may be configured to acquire segmentation parameters, and the segmentation submodule 232 may be configured to segment the N-dimensional data set input to the filter 200 according to the segmentation parameters. For example, in some embodiments, the segmentation parameter acquisition submodule 231 may be a data segmentation control module 230 (such as The data slicing circuit in the chip) can be a control port, and the slicing submodule 232 can be the main circuit part of the data slicing control module 230. In some embodiments, as shown in Fig. 2, the slicing parameter acquisition submodule 231 may be configured to acquire the slicing parameter from a control device 240 outside the filter. For example, in some embodiments, the control device 240 may be, for example, a central processing unit or other external controller. In the example shown in FIG. 2 , the segmentation parameter acquisition submodule 231 and the calculation factor acquisition module 210 can obtain information from the same control device 240, but the present application is not limited thereto. For example, the segmentation parameter acquisition submodule 231 and the calculation factor acquisition module 210 can obtain information from different control devices 240. Alternatively, in some embodiments, the segmentation parameter acquisition submodule 231 can be configured to directly receive the operator's input, thereby obtaining the segmentation parameters included in the input information. In some embodiments, the segmentation parameters may include a segmentation direction and a segmentation size. In some embodiments, the segmentation direction may include directions corresponding to any one or more dimensions of the N dimensions. For example, the segmentation direction may include any one or more of the X direction, the Y direction, and the Z direction shown in FIG. 5 . In some embodiments, the segmentation size may refer to the size of the three-dimensional data set to be segmented. In the case where the three-dimensional data set input to the filter cannot be segmented into an integer number of three-dimensional data sets with the segmentation size, it can be evenly segmented according to the segmentation size first, and the last remaining three-dimensional data set that is less than the segmentation size or slightly larger than the segmentation size is output as the last three-dimensional data set segmented. In addition, in general, the segmentation size should not be less than the three-dimensional Gaussian kernel to be used for three-dimensional Gaussian filtering. In the case of "slicing" the data set only in a single direction, in some embodiments, the segmentation size can simply indicate the segmentation length in the segmentation direction. In some embodiments, the segmentation submodule 232 can perform segmentation by the following steps: repeatedly reading corresponding data sets from the N-dimensional data set of the input filter 200 according to the segmentation direction and segmentation size, and outputting them until all data in the N-dimensional data set of the input filter 200 are read. For example, in the case shown in FIG. 5 , the segmentation submodule 232 can repeatedly read the corresponding data set 3×24×10 from the three-dimensional data set 15×24×10 of the input filter 200 based on the segmentation direction being the X direction and the segmentation length being 3, and output it until all data in the three-dimensional data set 15×24×10 of the input filter 200 is read. In the above steps, it may be relatively complicated to determine whether the reading of all data is completed. In order to achieve the above determination, in some embodiments, the segmentation parameters obtained by the segmentation parameter acquisition submodule 231 may also include: The number of cuts. Therefore, in some embodiments, the segmentation submodule 232 can perform segmentation by the following steps: according to the segmentation direction and segmentation size, repeatedly read the corresponding data set from the N-dimensional data set of the input filter 200, and output it until the number of output data sets is equal to the number of segmentations. For example, in the case shown in FIG. 5 , the segmentation submodule 232 can repeatedly read the corresponding data set 3×24×10 from the three-dimensional data set 15×24×10 of the input filter 200 according to the segmentation direction being the X direction and the segmentation length being 3, and output it until the number of output data sets is equal to the segmentation number 5. 6 shows a flowchart of an example of data slicing control using slicing quantity according to an embodiment of the present disclosure. In some embodiments, the steps of data slicing control shown in FIG. 6 may be performed by the slicing submodule 232 . As shown in FIG6 , data slice control 600 according to an embodiment of the present disclosure may mainly include the following steps: In step 602, the segmentation count is set to 0; In step 604, the corresponding data set is read according to the segmentation direction and the segmentation size, and is output; In step 606, the segmentation count is increased by 1; In step 608, the cut count is compared with the cut quantity. If the cut count is less than the cut quantity (the comparison result is "yes"), the process returns to step 604. Otherwise (the comparison result is "no"), the cut process ends. By splitting the N-dimensional data set before inputting it into the computing module 220 , the amount of data in one or more dimensions of the N-dimensional data set input into the computing module 220 can be reduced, thereby advantageously reducing cache resources. For example, when the segmentation direction is the first dimension and the number of segments is M, the amount of data in the first dimension of the three-dimensional data set input to the calculation module 220 is reduced to 1 / M. Therefore, according to the above analysis, the cache capacity requirement of the second cache unit 2221 and the cache capacity requirement of the third cache unit 2231 are both reduced to 1 / M of the original. For example, the cache capacity requirement of the second cache unit 2221 is reduced to (P-1)×U / M, and the cache capacity requirement of the third cache unit 2231 is reduced to (P-1)×U×V / M. If the reading and writing are performed in the same order of the first dimension, the second dimension, and the third dimension, the cache capacity requirement of the three-dimensional Gaussian filter of the related art is (P-1)×U×V. The applicant noted that the number of divisions must be greater than 1, so the total cache capacity required by the Gaussian filter according to the embodiment of the present disclosure will be much smaller than that of the Gaussian filter of the related art, and this effect becomes more significant as the number of divisions increases. 7A-7C are schematic diagrams showing an example of performing Gaussian filtering on a segmented three-dimensional data set in three dimensions in sequence according to an embodiment of the present disclosure. Similar to the situation shown in FIG1B , a 3×5×3 three-dimensional Gaussian kernel is used to perform three-dimensional Gaussian filtering on a 15×24×10 three-dimensional data set. On the one hand, the input 15×24×10 three-dimensional data set is evenly divided into five parts in the X direction to obtain five 3×24×10 three-dimensional data sets. On the other hand, the 3×5×3 three-dimensional Gaussian kernel is decomposed into three-dimensional vectors to obtain a 3×1 one-dimensional Gaussian kernel K1 in the X direction, a 5×1 one-dimensional Gaussian kernel K2 in the Y direction, and a 3×1 one-dimensional Gaussian kernel K3 in the Z direction. According to the above analysis, one-dimensional Gaussian filtering in the X direction requires 3 multipliers and 2 adders; one-dimensional Gaussian filtering in the Y direction requires 5 multipliers and 4 adders; and one-dimensional Gaussian filtering in the Z direction requires 3 multipliers and 2 adders. Therefore, a total of 11 multiplier resources and 8 adder resources are required. In addition, when reading and writing in the order of the first dimension, the second dimension, and the third dimension, the amount of data required to be cached for the one-dimensional Gaussian calculation in the X direction is: 3-1=2; the amount of data required to be cached for the one-dimensional Gaussian calculation in the Y direction is: (3-1)×15 / 5=6; the amount of data required to be cached for the one-dimensional Gaussian calculation in the Z direction is: (3-1)×15×24 / 5=144. Therefore, the total cache resources required are 152 data. In contrast, in the related technology of directly using a 3×5×3 3D Gaussian kernel to perform 3D Gaussian filtering on a 15×24×10 3D data set, if reading and writing are performed in the same order of the first dimension, the second dimension, and the third dimension, according to the above analysis, a total of 45 multiplier resources and 44 adder resources are required, and the total cache resources required are a total of 720 data. Table 1 below gives the specific comparison. Table 1 As shown in Table 1, 78.9% of cache resources, 75.5% of multiplier resources, and 81.8% of adder resources can be saved. Advantageously, the filter according to the embodiment of the present disclosure can divide the N-dimensional data set into several small parts before performing N-dimensional Gaussian filtering on the N-dimensional data set to reduce the data cache resource requirements, thereby greatly saving chip area. In addition, the filter according to the embodiment of the present disclosure can use N one-dimensional Gaussian kernels after dimensionality reduction processing on the N-dimensional Gaussian kernel for calculation, thereby reducing a large number of adders and multipliers, reducing the computing resource requirements, saving both chip area and chip power consumption. In some embodiments, a chip including the filter 200 or the data processing system 20 described above constitutes another aspect of the present disclosure. The steps of the filtering method according to the embodiment of the present disclosure are described below with reference to FIG8 exemplarily, and the contents described above in conjunction with FIG1A-FIG1B, FIG2-FIG6 and FIG7A-FIG7C may also be applicable to the corresponding features. In some embodiments, the filtering method according to the embodiment of the present disclosure may be performed by a circuit on a chip. As shown in FIG8 , according to some embodiments of the present disclosure, a filtering method 800 may be used to perform N-dimensional Gaussian filtering on an N-dimensional data set, where N is 2 or 3. The filtering method 800 mainly includes the following steps: At step 810, N calculation factors for N dimensions are obtained, wherein the N calculation factors correspond to N one-dimensional Gaussian kernels obtained by performing N-dimensional vector decomposition on an N-dimensional Gaussian kernel to be used for the N-dimensional data set; and In step 820, one-dimensional Gaussian filtering is performed on the input N-dimensional data set using corresponding calculation factors in N dimensions in turn. In some embodiments, the filtering method 800 may further include, before step 820 , step 830 : segmenting the input N-dimensional data set in any one or more dimensions among the N dimensions. In some embodiments, step 830 may mainly include the following sub-steps: In sub-step 832: obtaining segmentation parameters; and In sub-step 834: the input N-dimensional data set is segmented according to the segmentation parameters. In some embodiments, the segmentation parameters may include a segmentation direction and a segmentation size. Therefore, sub-step 834 can be implemented in the following manner: according to the segmentation direction and the segmentation size, the corresponding data set is repeatedly read from the input N-dimensional data set and outputted until all the data in the input N-dimensional data set is read. In some embodiments, the segmentation parameters may further include the segmentation quantity. Therefore, sub-step 834 can be implemented in the following manner: according to the segmentation direction and segmentation size, the corresponding data sets are repeatedly read from the input N-dimensional data set and outputted until the number of output data sets is equal to the number of segments. In some embodiments, performing a one-dimensional Gaussian filter on the input N-dimensional data set in each dimension using a corresponding calculation factor in step 820 may include: caching data required to perform the corresponding one-dimensional Gaussian filter; reading the cached data; and performing a one-dimensional Gaussian filter on the read data using the corresponding calculation factor. The data that needs to be cached in the first-dimensional one-dimensional Gaussian filtering is (S-1) data, and the data that needs to be cached in the second-dimensional one-dimensional Gaussian filtering is (P-1) rows of data, where S and P are the number of factors of the above-mentioned N-dimensional Gaussian kernel in the first and second dimensions, and the amount of one row of data is the amount of data of the input three-dimensional data set in the first dimension. In the case of N=3, the data that needs to be cached in the last one-dimensional Gaussian filtering of the third dimension is (Q- 1) data in one plane, where Q is the number of factors of the N-dimensional Gaussian kernel in the third dimension, and the amount of data in one plane is the amount of data of the input three-dimensional data set in the plane formed by the first dimension and the second dimension. Advantageously, the filtering method according to the embodiment of the present disclosure can divide the N-dimensional data set into several small parts before performing N-dimensional Gaussian filtering on the N-dimensional data set to reduce the data cache resource requirements, thereby greatly saving chip area. In addition, the filtering method according to the embodiment of the present disclosure can use N one-dimensional Gaussian kernels after dimensionality reduction processing on the N-dimensional Gaussian kernel for calculation, thereby reducing a large number of adders and multipliers, reducing the computing resource requirements, saving both chip area and chip power consumption. It is noteworthy that the boundaries between the various steps in the method described above are merely illustrative. In actual operation, the various steps can be combined arbitrarily, or even synthesized into a single step. In addition, the execution order of the various steps is not limited by the description order, and some steps can be omitted. The operation steps of each embodiment can also be combined with each other in any appropriate order, so as to similarly implement more or less operations than described. The words "front", "rear", "top", "bottom", "above", "below", etc., if present, in the specification and claims are used for descriptive purposes and are not necessarily used to describe invariant relative positions. It should be understood that the words so used are interchangeable under appropriate circumstances, such that the embodiments of the disclosure described herein, for example, are capable of operation in other orientations than those illustrated or otherwise described herein. As used herein, the word "exemplary" means "serving as an example, instance, or illustration," rather than as a "model" to be exactly copied. Any implementation described as an example herein is not necessarily to be construed as preferred or advantageous over other implementations. Furthermore, the present disclosure is not limited by any expressed or implied theory given in the above technical field, background technology, summary of the invention, or detailed description. As used herein, the term "substantially" is intended to include any minor variations due to design or manufacturing imperfections, device or component tolerances, environmental influences, and / or other factors. The term "substantially" also allows for deviations from a perfect or ideal condition due to parasitic effects, noise, and other practical considerations that may exist in actual implementations. In addition, the foregoing description may have referred to elements or nodes or features that are "connected" or "coupled" together. As used herein, unless otherwise expressly stated, "connection" means that one element / node / feature is directly connected (or directly communicates) with another element / node / feature electrically, mechanically, logically or otherwise. Similarly, unless otherwise expressly stated, "coupling" means that one element / node / feature can be mechanically, electrically, logically or otherwise connected to another element / node / feature in a direct or indirect manner to allow interaction, even if the two features may not be directly connected. In other words, "coupling" is intended to include direct and indirect connections of elements or other features, including connections using one or more intermediate elements. In addition, the terms "first", "second" and the like may also be used herein for reference purposes only, and thus are not intended to be limiting. For example, the terms "first", "second" and other such numerical terms referring to structures or elements do not imply a sequence or order unless the context clearly indicates otherwise. It should also be understood that when the term “include / comprises” is used in this document, it indicates the presence of the specified features, integers, steps, operations, units and / or components, but does not exclude the presence or addition of one or more other features, integers, steps, operations, units and / or components and / or their combinations. In this disclosure, the term "provide" is used in a broad sense to cover all ways of obtaining an object, and thus "providing an object" includes but is not limited to "purchasing", "preparing / manufacturing", "arranging / setting up", "installing / assembling", and / or "ordering" an object, etc. Those skilled in the art will appreciate that the boundaries between the above operations are merely illustrative. Multiple operations can be combined into a single operation, a single operation can be distributed in additional operations, and operations can be performed at least partially overlapping in time. Moreover, alternative embodiments may include multiple instances of specific operations, and the order of operations may be changed in other various embodiments. However, other modifications, variations, and replacements are equally possible. Therefore, this specification and accompanying drawings should be considered illustrative, not restrictive. Although some specific embodiments of the present disclosure have been described in detail by way of example, it should be understood by those skilled in the art that the above examples are for illustration only and are not intended to limit the scope of the present disclosure. The various embodiments disclosed herein may be combined in any manner without departing from the spirit and scope of the present disclosure. It should also be understood by those skilled in the art that various modifications may be made to the embodiments without departing from the scope and spirit of the present disclosure. The scope of the present disclosure is defined by the appended claims.

Claims

1. A filter for performing N-dimensional Gaussian filtering on an N-dimensional data set, wherein N is 2 or 3, the filter comprising: A calculation factor acquisition module is configured to acquire N calculation factors for N dimensions, wherein the N calculation factors correspond to N one-dimensional Gaussian kernels obtained by performing N-dimensional vector decomposition on an N-dimensional Gaussian kernel to be used for the N-dimensional data set; as well as A computing module comprises N computing submodules for N dimensions, wherein the N computing submodules are arranged in cascade, wherein each computing submodule is configured to perform one-dimensional Gaussian filtering on an N-dimensional data set input into the computing module using a corresponding computing factor on a corresponding dimension.

2. The filter according to claim 1, wherein The filter also includes a data segmentation control module configured to segment the N-dimensional data set input to the filter along any one or more dimensions among the N dimensions, and input the segmented N-dimensional data set to the calculation module.

3. The filter according to claim 2, wherein: The data segmentation control module includes: A segmentation parameter acquisition submodule is configured to acquire segmentation parameters; and The segmentation submodule is configured to segment the N-dimensional data set input into the filter according to segmentation parameters. The filter according to claim 3 , wherein the segmentation parameters include segmentation direction and segmentation size.

5. The filter according to claim 4, wherein the cutting submodule is configured as: According to the segmentation direction and the segmentation size, the corresponding data set is repeatedly read from the N-dimensional data set input to the filter and outputted until all the data in the N-dimensional data set input to the filter is read. The filter according to claim 4 , wherein the slicing parameter further comprises a slicing amount.

7. The filter according to claim 6, wherein the cutting submodule is configured as follows: According to the segmentation direction and the segmentation size, the corresponding data sets are repeatedly read from the N-dimensional data set input to the filter and output until the number of output data sets is equal to the number of segments.

8. The filter according to claim 1, wherein The calculation factor acquisition module is configured to acquire the calculation factor from a control device outside the filter.

9. The filter according to claim 1, wherein: Each computing submodule includes: a cache unit configured to cache data required to perform a corresponding one-dimensional Gaussian filter; A data flow control unit, configured to control the reading and writing of data in the corresponding computing submodule; and The calculation unit is configured to perform one-dimensional Gaussian filtering on the read data using corresponding calculation factors.

10. The filter according to claim 9, wherein In the computing module, the cache capacity requirement of the first cache unit of the first-dimensional computing submodule arranged at the first level is (S-1) data, and the cache capacity requirement of the second cache unit of the second-dimensional computing submodule arranged at the second level is (P-1) rows of data, where S and P are the number of factors of the N-dimensional Gaussian kernel in the first dimension and the second dimension, and the amount of one row of data is the amount of data of the three-dimensional data set input to the computing module in the first dimension.

11. The filter according to claim 10, wherein: When N=3, in the computing module, the cache capacity requirement of the third cache unit of the third dimensional computing submodule arranged at the third level is (Q-1) planes of data, where Q is the number of factors of the N-dimensional Gaussian kernel in the third dimension, and the amount of data in one plane is the amount of data of the three-dimensional data set input to the computing module on the plane formed by the first dimension and the second dimension.

12. A data processing system comprising: The filter according to any one of claims 1 to 11; The control device is configured to provide the N calculation factors to the filter.

13. A chip, wherein: The chip comprises the filter according to any one of claims 1 to 11 or the data processing system according to claim 12.

14. A filtering method for performing N-dimensional Gaussian filtering on an N-dimensional data set, wherein N is 2 or 3, the filtering method comprising: Obtaining N calculation factors for N dimensions, wherein the N calculation factors correspond to N one-dimensional Gaussian kernels obtained by performing N-dimensional vector decomposition on an N-dimensional Gaussian kernel to be used for the N-dimensional data set; as well as The corresponding calculation factors are used in N dimensions in turn to perform one-dimensional Gaussian filtering on the input N-dimensional data set.

15. The filtering method according to claim 14, further comprising: Before performing one-dimensional Gaussian filtering on the input N-dimensional data set using corresponding calculation factors in N dimensions in sequence, the input N-dimensional data set is segmented in any one or more dimensions among the N dimensions.

16. The filtering method according to claim 15, wherein: The input N-dimensional data set is segmented as follows: Get the segmentation parameters; and Split the input N-dimensional data set according to the splitting parameters. The filtering method according to claim 16 , wherein the segmentation parameters include segmentation direction and segmentation size.

18. The filtering method according to claim 17, wherein segmenting the input N-dimensional data set according to the segmentation parameter comprises: According to the segmentation direction and the segmentation size, the corresponding data set is repeatedly read from the input N-dimensional data set and outputted until all the data in the input N-dimensional data set is read. The filtering method according to claim 17 , wherein the segmentation parameter further includes the segmentation quantity.

20. The filtering method according to claim 19, wherein segmenting the input N-dimensional data set according to the segmentation parameter comprises: According to the segmentation direction and segmentation size, the corresponding data sets are repeatedly read from the input N-dimensional data set and output until the number of output data sets is equal to the number of segments.

21. The filtering method according to claim 14, wherein: Performing a one-dimensional Gaussian filter on an input N-dimensional data set using the corresponding calculation factors in each dimension includes: Cache the data required to perform the corresponding one-dimensional Gaussian filtering; Read cached data; and Perform a one-dimensional Gaussian filter on the read data using the corresponding calculation factor.

22. The filtering method according to claim 21, wherein: The data that needs to be cached in the one-dimensional Gaussian filtering of the first dimension is (S-1) data, and the data that needs to be cached in the one-dimensional Gaussian filtering of the second dimension is (P-1) rows of data, where S and P are the number of factors of the N-dimensional Gaussian kernel in the first dimension and the second dimension, and the amount of one row of data is the amount of data of the input three-dimensional data set in the first dimension.

23. The filtering method according to claim 22, wherein: When N=3, the data that needs to be cached in the final one-dimensional Gaussian filtering in the third dimension is (Q-1) planes of data, where Q is the number of factors of the N-dimensional Gaussian kernel in the third dimension, and the amount of data in one plane is the amount of data of the input three-dimensional data set on the plane formed by the first dimension and the second dimension.

Citation Information

Patent Citations

  • Image Gaussian filtering method with dynamically configured mode and realization device thereof

    CN102486867A

  • Shearlet transform and fast bilateral filter image denoising method

    CN106127711A

  • Data processing method and related product

    CN114065119A

  • Filter, filtering method, data processing system and chip

    CN116882358A

  • Image filter arithmetic device, gaussian kernel arithmetic device, and program

    JP2016122430A