P
USRE50792EActiveUtilityPatentIndex 62

Filter processing apparatus and control method thereof

Assignee: CANON KKPriority: Oct 17, 2017Filed: Dec 7, 2022Granted: Feb 10, 2026
Est. expiryOct 17, 2037(~11.3 yrs left)· nominal 20-yr term from priority
Inventors:CHEN TSEWEIKATO MASAMI
G06F 7/5443G06T 1/60G06F 9/545G06T 2200/04G06T 1/20
62
PatentIndex Score
0
Cited by
56
References
24
Claims

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

exact text as granted — not AI-modified
What is claimed is: 
     
         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 multipliesunits 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 unitby 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 anthe 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 includesplurality 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 datathe 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.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.