IP Library › Granted Patent US 50,792
Granted Patent E1
US 50,792 · App. 18/062,784 · Granted Feb 10, 2026

Filter processing apparatus and control method thereof

Inventors: Tsewei Chen (Tokyo, JP); Masami Kato (Sagamihara, JP)
Assignee: Canon Kabushiki Kaisha
G06T1/20G06F7/5443G06F9/545G06T1/60G06T2200/04
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 50,792
App. No.
18/062,784
Granted
Feb 10, 2026
Kind
E1
Abstract

A filter processing apparatus comprises: K arithmetic operation units configured to perform predetermined arithmetic operation processing parallelly; a data holding unit configured to hold a plurality of data values; a coefficient holding unit configured to hold a plurality of filter coefficients; a first pattern holding unit configured to hold a first pattern that selects K data values from the plurality of data values; a second pattern holding unit configured to hold a second pattern that selects one filter coefficient from the plurality of filter coefficients; and a control unit configured to sequentially input the K data values to the K arithmetic operation units with reference to the first pattern and sequentially input the one common filter coefficient to the K arithmetic operation units with reference to the second pattern.

Claims (68)

1 . A filter processing apparatus for performing filter processing, for processing-target data, the filter process processing apparatus comprising:

a predetermined number of arithmetic operation units configured to perform predetermined arithmetic operation on data in parallel;

a data value holding unit configured to hold a plurality of data values included in the processing-target data as a two-dimensional orthogonal array;

a coefficient holding unit configured to hold a plurality of filter coefficients as a two-dimensional orthogonal array;

a first pattern setting unit configured to select one of a plurality of data patterns and set the selected a data value transfer pattern that selects represents an order of reading out sets of the predetermined number of data values, set by set from the data value holding unit, to be input to the predetermined number of arithmetic operation units, where each set of the predetermined number of data values is extracted from the plurality of data values;

a second pattern setting unit configured to select one of a plurality of coefficient transfer patterns and set the selected coefficient transfer pattern, that selects one where each of the plurality of coefficient transfer patterns represents an order of reading out the plurality of filter coefficient coefficients, one by one from the coefficient holding unit, to be input to the predetermined number of arithmetic operation units; from the plurality of filter coefficients; and

a control unit configured to sequentially input a set of the predetermined number of data values to the predetermined number of arithmetic operation units with reference to the set data value transfer pattern and sequentially input the one common filter coefficient to the predetermined number of arithmetic operation units with reference to the set coefficient transfer pattern.

2 . The apparatus according to claim 1 , wherein the predetermined number of arithmetic operation includes multiplication processing that multiplies units include the predetermined number of multipliers that multiply the one common filter coefficient and the predetermined number of data values.

3 . The apparatus according to claim 2 , wherein, in the multiplication processing, the one filter coefficient, which is common to the predetermined number of data values, is multiplied in parallel with each of the predetermined number of data values.

4 . The apparatus according to claim 2 , wherein the predetermined number of arithmetic operation units further include the predetermined number of cumulative adders that perform cumulative addition of multiplication results sequentially calculated using the predetermined number of data values and the one filter coefficient sequentially input by the control unit by the predetermined number of multipliers.

5 . The apparatus according to claim 4 , wherein each of the predetermined number of arithmetic operation units multiplies a data value and a filter coefficient sequentially input by the control unit, and performs cumulative addition of multiplication results.

6 . A filter processing apparatus for performing filter processing using a filter kernel, for processing-target data, the filter processing apparatus comprising:

K arithmetic operation units configured to perform predetermined arithmetic operation processing parallelly;

a data value holding unit configured to hold a plurality of data values included in the processing-target data as an L-dimensional orthogonal array;

a coefficient holding unit configured to hold a plurality of filter coefficients included in the filter kernel as an L-dimensional orthogonal array;

a first pattern holding unit configured to hold a first transfer pattern that selects represents an order of reading out set of K data values, set by set from the data value holding unit, to be input to the K arithmetic operation units, where each set of the K data values is extracted from the plurality of data values;

a second pattern holding unit configured to (a) select one of a plurality of transfer patterns each representing an order of reading out the plurality of filter coefficients, one by one from the coefficient holding unit, to be input to the K arithmetic operation units, and (b) hold the selected transfer pattern as a second transfer pattern; that selects one filter coefficient input to the K arithmetic operation units from the plurality of filter coefficients; and

a control unit configured to sequentially input the K data values to the K arithmetic operation units with reference to the first transfer pattern and sequentially input the one filter coefficient to the K arithmetic operation units with reference to the second transfer pattern,

wherein the data value holding unit is configured to sequentially provide, to the K arithmetic operation units, K data values arrayed in a predetermined range out of the plurality of data values arranged in the L-dimensional orthogonal array, and

wherein the control unit sequentially inputs the K data values to the K arithmetic operation units by sequentially shifting a data storage position in the data value holding unit with reference to the first transfer pattern.

7 . The apparatus according to claim 6 , wherein the coefficient holding unit is configured to sequentially provide, to the K arithmetic operation units, the one filter coefficient arrayed at a predetermined position out of the plurality of filter coefficients arrayed in the L-dimensional orthogonal array, and

wherein the control unit sequentially inputs the one filter coefficient to the K arithmetic operation units by sequentially shifting a filter coefficient storage position in the coefficient holding unit with reference to the second transfer pattern.

8 . A filter processing apparatus for performing filter processing using a filter kernel, for processing-target data, the filter processing apparatus comprising:

K arithmetic operation units configured to perform predetermined arithmetic operation processing parallelly;

a data value holding unit configured to hold a plurality of data values included in the processing-target data as an L-dimensional orthogonal array;

a coefficient holding unit configured to hold a plurality of filter coefficients included in the filter kernel as an L-dimensional orthogonal array;

a first pattern holding unit configured to hold a first transfer pattern that selects represents an order of reading out sets of K data values, set by set from the data value holding unit, to be input to the K arithmetic operation units, where each set of the K data values is extracted from the plurality of data values;

a second pattern holding unit configured to (a) select one of a plurality of transfer patterns each representing an order of reading out the plurality of filter coefficients, one by one from the coefficient holding unit, to be input to the K arithmetic operation units, and (b) hold the selected transfer pattern as a second transfer pattern; that selects one filter coefficient input to the K arithmetic operation units from the plurality of filter coefficients; and

a control unit configured to sequentially input the K data values to the K arithmetic operation units with reference to the first transfer pattern and sequentially input the one filter coefficient to the K arithmetic operation units with reference to the second transfer pattern,

wherein the first transfer pattern is a pattern set such that all significant data values included in the plurality of data values are input set by set to the K arithmetic operation units by a plurality of times of shifting of a data storage position by the control unit, and the number of times of input of each set of K data value values is one, and

wherein the second transfer pattern is a pattern set such that all significant filter coefficients included in the plurality of filter coefficients are input one by one to the K arithmetic operation units by a plurality of times of shifting of a filter coefficient storage position by the control unit, and the number of times of input of each filter coefficient is one.

9 . The apparatus according to claim 1 , wherein the processing-target data corresponding to the plurality of data values is image data.

10 . The apparatus according to claim 9 , wherein the apparatus further comprises a changing unit configured to change an orientation of the transfer second pattern in accordance with an orientation of the image data in an the orthogonal array in the data value holding unit.

11 . The apparatus according to claim 7 , wherein the processing-target data corresponding to the plurality of data values is two-dimensional data, and

L=2.

12 . The apparatus according to claim 11 , wherein the control unit shifts a data storage position in the data value holding unit and a filter coefficient storage position in the coefficient holding unit to one of four directions along the respective array directions of the orthogonal array.

13 . The apparatus according to claim 11 , wherein if the processing-target data includes plurality of data values are P×Q data values, the filter kernel includes X×Y filter coefficients, and a result of the filter processing includes M×N processing result, the following equations are satisfied:

K=M×N;

P+1=M+X; and

Q+1=N+Y.

14 . The apparatus according to claim 13 , wherein the M×N processing results are obtained as results of cumulative addition, for each arithmetic operation unit, of multiplication results sequentially calculated by the K arithmetic operation units.

15 . The apparatus according to claim 12 , wherein the control unit sequentially shifts a data storage position in the data value holding unit and a filter coefficient storage position in the coefficient holding unit along a substantially zig-zag path.

16 . The apparatus according to claim 12 , wherein the control unit sequentially shifts a data storage position in the data value holding unit and a filter coefficient storage position in the coefficient holding unit along a substantially spiral path.

17 . The apparatus according to claim 7 , wherein the processing-target data corresponding to the plurality of data values is three-dimensional data, and

L=3.

18 . The apparatus according to claim 17 , wherein the control unit shifts a data storage position in the data value holding unit and a filter coefficient storage position in the coefficient holding unit to one of six directions along the respective array directions of the orthogonal array.

19 . A control method of a filter processing apparatus for performing filter processing for processing-target data, the filter processing apparatus including:

a predetermined number of arithmetic operation units configured to perform predetermined arithmetic operation on data in parallel,

a data holding unit configured to hold a plurality of data values included in the processing-target data,

a coefficient holding unit configured to hold a plurality of filter coefficients,

a first pattern setting unit configured to select one of a plurality of data patterns and set the selected data pattern that selects the predetermined number of data values input to the predetermined number of arithmetic operation units from the plurality of data values, and

a second pattern setting unit configured to select one of a plurality of coefficient patterns and set the selected coefficient pattern that selects one filter coefficient input to the predetermined number of arithmetic operation units from the plurality of filter coefficients,

the method comprising:

inputting the predetermined number of data values to the predetermined number of arithmetic operation units with reference to the set data pattern and inputting the one common filter coefficient to the predetermined number of arithmetic operation units with reference to the coefficient pattern; and

multiplying the one filter coefficient and the predetermined number of data values using the predetermined number of arithmetic operation units.

20 . A non-transitory computer-readable recording medium storing a program that causes a computer to function as a filter processing apparatus for performing filter processing, for processing-target data the filter processing apparatus comprising:

a predetermined number of arithmetic operation units configured to perform predetermined arithmetic operation on data in parallel;

a data value holding unit configured to hold a plurality of data values included in the processing-target data; as a two-dimensional orthogonal array;

a coefficient holding unit configured to hold a plurality of filter coefficients as a two-dimensional orthogonal array;

a first pattern setting unit configured to select one of a plurality of data patterns and set the selected a data value transfer pattern that selects represents an order of reading out sets of the predetermined number of data values, set by set from the data value holding unit, to be input to the predetermined number of arithmetic operation units, where each set of the predetermined number of data values is extracted from the plurality of data values;

a second pattern setting unit configured to select one of a plurality of coefficient transfer patterns and set the selected coefficient transfer pattern, that selects one where each of the plurality of coefficient transfer patterns represents an order of reading out the plurality of filter coefficient coefficients, one by one from the coefficient holding unit, to be input to the predetermined number of arithmetic operation units; from the plurality of filter coefficients; and

a control unit configured to sequentially input a set of the predetermined number of data values to the predetermined number of arithmetic operation units with reference to the set data value transfer pattern and sequentially input the one common filter coefficient to the predetermined number of arithmetic operation units with reference to the set coefficient transfer pattern.

21 . The apparatus according to claim 1 , wherein the data value holding unit is configured to sequentially provide, to the predetermined number of arithmetic operation units, a predetermined number of data values arrayed in a predetermined range out of the plurality of data values, and

wherein the control unit sequentially inputs a set of the predetermined number of data values to the predetermined number of arithmetic operation units by sequentially shifting a data storage position in the data value holding unit with reference to the set data value transfer pattern.

22 . The apparatus according to claim 1 , wherein the set data value transfer pattern is a pattern set such that all significant data values included in the plurality of data values are input to the predetermined number of arithmetic operation units by a plurality of times of shifting of a data storage position by the control unit, and the number of times of input of each data value is one, and

wherein the set coefficient transfer pattern is a pattern set such that all significant filter coefficients included in the plurality of filter coefficients are input to the predetermined number of arithmetic operation units by a plurality of times of shifting of a filter coefficient storage position by the control unit, and the number of times of input of each filter coefficient is one.

23. The apparatus according to claim 1 , wherein the second pattern setting unit selects and sets another one of a plurality of coefficient transfer patterns so as to change the order of the reading out of the plurality of filter coefficients to be input to the predetermined number of arithmetic operation units.

24. The apparatus according to claim 1 , wherein in each of the plurality of coefficient transfer patterns, the plurality of filter coefficients are read out one by one such that a next filter coefficient which is to be read out next to a current filter coefficient is selected from filter coefficients adjacent to the current filter coefficient in the two-dimensional array and a number of times of reading out each filter coefficient is one.

Priority Claims (1)
JP 2017-201247 · Oct 17, 2017 · national
Continuity (1)
Reissue 16157281 · Oct 11, 2018
References Cited (41)
US 6292621B1 · Tanaka et al. · 2001 [cited by applicant]
US 7432985B2 · Ishikawa et al. · 2008 [cited by applicant]
US 8320696B2 · Yamamoto et al. · 2012 [cited by applicant]
US 8832004B2 · Kato et al. · 2014 [cited by applicant]
US 9135553B2 · Kato et al. · 2015 [cited by applicant]
US 10387988B2 · Meixner et al. · 2019 [cited by applicant]
US 10387989B2 · Meixner et al. · 2019 [cited by applicant]
US 11450086B2 · Cho · 2022 [cited by examiner]
US 20060228027A1 · Matsugu · 2006 [cited by examiner]
US 20100046851A1 · Inoue · 2010 [cited by examiner]
US 20110239032A1 · Kato · 2011 [cited by examiner]
US 20130259142A1 · Ikeda · 2013 [cited by examiner]
US 20140337262A1 · Kato et al. · 2014 [cited by applicant]
US 20160297191A1 · Murasawa · 2016 [cited by examiner]
US 20160335082A1 · Sadeh · 2016 [cited by examiner]
US 20170011006A1 · Saber et al. · 2017 [cited by applicant]
US 20170116495A1 · Nomura · 2017 [cited by examiner]
US 20170249716A1 · Meixner et al. · 2017 [cited by applicant]
US 20170287103A1 · Meixner et al. · 2017 [cited by applicant]
US 20170300776A1 · Yamamoto · 2017 [cited by examiner]
US 20190212982A1 · Yoda · 2019 [cited by examiner]
US 20200020069A1 · Meixner et al. · 2020 [cited by applicant]
JP 2010015257A · 2010 [cited by applicant]
JP 2010134697A · 2010 [cited by applicant]
JP 5376920B2 · 2013 [cited by applicant]
WO 2017146816A1 · 2017 [cited by applicant]
Majida Kazmi, et al., “A Low Cost Structurally Optimized Design for Divers Filter Types”, PLoS One 11(11) e0166056, doi:10.1371/journal.pone.0166056 (Nov. 10, 2016), pp. 1-25. [cited by applicant]
Christian Tenllado, et al., “Parallel Implementation of the 2D Discrete Wavelet Transform on Graphics Processing Units: Filter Bank versus Lifting,” IIEEE Transactions on Parallel and Distributed Systems, vol. 19, No. 3… [cited by applicant]
Norihiro Takahashi, “A Pixel-Parallel Self-Similitude Processing for Multiple-Resolution Edge-Filtering Analog Image Sensors,” IEEE Transactions on Circuits and Systems-I: Regular Papers, vol. 56, No. 11, Nov. 2009, pp.… [cited by applicant]
Anil K. Jain, “Advances in Mathematical Models for Image Processing,” Proceedings of the IEEE, vol. 69, No. 5, May 1981, pp. 502-528. [cited by applicant]
Viktor Gruev, et al., “Implementation of Steerable Spatiotemporal Image Filters on the Focal Plane,” IEEE Transactions on Circuits and Systems-II: Analog and Digital Signal Processing, vol. 49, No. 4, Apr. 2002, pp. 233… [cited by applicant]
Hiroyuki Takeda, et al., “Kernel Regression for Image Processing and Reconstruction,” IEEE Transactions on Image Processing, vol. 16, No. 2, Feb. 2007, pp. 349-366. [cited by applicant]
Hiroyuki Yamasaki, et al., “Application of the massively parallel embedded processor (MX) to real-time image processing,” IEICE Technical Report, Japan, The Institute of Electronics, Information and Communication Engine… [cited by applicant]
Kota Ando, “Data-flow reconfigurable processor array architecture for deep convolutional neural networks,” IEICE Technical Report, Japan, The Institute of Electronics, Information and Communication Engineers, vol. 116, … [cited by applicant]
Oct. 25, 2021 Japanese Official Action in Japanese Patent Appln. No. 2017-201247. [cited by applicant]
Christian Tenllado,Parallel Implementation of the 2D Discrete Wavelet Transform on Graphics Processing Units: Filter Bank versus Lifting,IEEE Transactions on Parallel and Distributed Systems, vol. 19, No. 3, Mar. 2008,p… [cited by examiner]
Norihiro Takahashi,A Pixel-Parallel Self-Similitude Processing for Multiple-Resolution Edge-Filtering Analog Image Sensors, IEEE Transactions on Circuits and Systems—I: Regular Papers, vol. 56, No. 11, Nov. 2009,pp. 238… [cited by examiner]
Nil K. Jain,Advances in Mathematical Models for Image Processing, Proceedings of the IEEE, vol. 69, No. 5, May 1981, pp. 510-519. [cited by examiner]
Viktor Gruev,Implementation of Steerable Spatiotemporal Image Filters on the Focal Plane,IEEE Transactions on Circuits and Systems—II: Analog and Digital Signal Processing, vol. 49, No. 4, Apr. 2002,pp. 233-239. [cited by examiner]
Hiroyuki Takeda,Kernel Regression for Image Processing and Reconstruction,IEEE Transactions on Image Processing, vol. 16, No. 2, Feb. 2007,pp. 349-357 . [cited by examiner]
Mar. 19, 2019 European Search Report in European Patent Appln. No. 18198792.6. [cited by applicant]